Advanced Cryptography

advertisement
Advanced Cryptography
Ligeti, Péter
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
írta Ligeti, Péter
Publication date 2015
Szerzői jog © 2015 Ligeti Péter
Created by XMLmind XSL-FO Converter.
Tartalom
Advanced Cryptography ..................................................................................................................... 1
1. 1 Introduction to Security ...................................................................................................... 1
1.1. 1.1 What is Security Engineering? ........................................................................... 1
1.2. 1.2 What is "Secure"? ............................................................................................... 2
1.3. 1.3 Mathematical Supplement .................................................................................. 3
1.3.1. Debreu's Lemma: ......................................................................................... 3
1.4. 1.4 Exercises ............................................................................................................. 3
2. 2 Multiple Threats and Defenses ........................................................................................... 3
2.1. 2.1 Threat Modeling ................................................................................................. 4
2.2. 2.2 Cooperation in Security ...................................................................................... 5
2.3. 2.3 Secrets ................................................................................................................. 6
2.3.1. 2.3.1 Shared Secrets ..................................................................................... 6
2.3.2. 2.3.2 Global Secrets ..................................................................................... 7
2.3.3. 2.3.3 Using Secrets as Security Measures .................................................... 7
2.4. 2.4 Mathematical Supplement .................................................................................. 8
2.5. 2.5 Exercises ............................................................................................................. 8
3. 3 Classical cryptography ....................................................................................................... 9
3.1. 3.1 Unconditionally secure encryption schemes ....................................................... 9
3.2. 3.2 Case study: the one-time pad ............................................................................ 11
3.3. 3.3 Drawbacks of unconditionally secure schemes ................................................ 12
3.4. 3.4 Exercises ........................................................................................................... 12
4. 4 Randomness ..................................................................................................................... 12
4.1. 4.1 Introduction ...................................................................................................... 13
4.2. 4.2 Obtaining Random Bits .................................................................................... 13
4.3. 4.3 Buying, Selling and Pricing Randomness ......................................................... 15
4.4. 4.4 Exercises ........................................................................................................... 16
5. 5 Symmetric and Asymmetric Cryptography ...................................................................... 17
5.1. 5.1 Secret key (symmetric) cryptography ............................................................... 17
5.1.1. 5.1.1 Confidentiality ................................................................................... 17
5.1.2. 5.1.2 Integrity and Authenticity ................................................................. 20
5.2. 5.2 Public key (asymmetric) cryptography ............................................................. 20
5.2.1. 5.2.1 Key Agreement ................................................................................. 21
5.2.2. 5.2.2 Public Key Encryption ...................................................................... 22
5.2.3. 5.2.3 Digital Signature ............................................................................... 22
6. 6 Cryptographic Primitives ................................................................................................. 23
6.1. 6.1 Introduction ...................................................................................................... 23
6.2. 6.2 One-Way Functions .......................................................................................... 24
6.2.1. 6.2.1 Introduction ....................................................................................... 24
6.2.2. 6.2.2 The Random Oracle .......................................................................... 24
6.2.3. 6.2.3 Linear Cryptanalysis ......................................................................... 25
6.2.4. 6.2.4 Differential Cryptanalysis ................................................................. 25
6.2.5. 6.2.5 Application Notes .............................................................................. 25
6.3. 6.3 Homomorphic One-Way Functions .................................................................. 33
6.3.1. 6.3.1 Introduction ....................................................................................... 33
6.3.2. 6.3.2 Application Notes .............................................................................. 33
6.4. 6.4 Block Ciphers ................................................................................................... 34
6.4.1. 6.4.1 Introduction ....................................................................................... 34
6.4.2. 6.4.2 Attack Models ................................................................................... 34
6.4.3. 6.4.3 Application Notes .............................................................................. 35
6.5. 6.5 Commutative Block Ciphers ............................................................................. 36
6.5.1. 6.5.1 Introduction ....................................................................................... 36
6.5.2. 6.5.2 Application Notes .............................................................................. 36
6.6. 6.6 Zero-Knowledge Proofs (ZKP) ........................................................................ 37
6.6.1. 6.6.1 Introduction ....................................................................................... 37
6.7. 6.7 Message Authentication Codes (MAC) ............................................................ 37
6.7.1. 6.7.1 Introduction ....................................................................................... 37
iii
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
6.7.2. 6.7.2 Application Notes ..............................................................................
6.8. 6.8 Digital Signatures .............................................................................................
6.8.1. 6.8.1 Introduction .......................................................................................
6.8.2. 6.8.2 Application Notes ..............................................................................
6.9. 6.9 RSA Cryptographic Primitive ...........................................................................
6.9.1. 6.9.1 Introduction .......................................................................................
6.9.2. 6.9.2 On the Difficulty of the RSA Problem ..............................................
6.9.3. 6.9.3 Mathematical Supplement .................................................................
6.10. 6.10 Goldwasser-Micali encryption ......................................................................
6.10.1. 6.10.1 Introduction ...................................................................................
6.10.2. 6.10.2 Mathematical Supplement .............................................................
6.10.3. 6.10.3 Application Notes ..........................................................................
6.11. 6.11 Rabin encryption ...........................................................................................
6.11.1. 6.11.1 Introduction ...................................................................................
6.11.2. 6.11.2 Mathematical Supplement .............................................................
6.11.3. 6.11.3 Application Notes ..........................................................................
6.11.4. 6.11.4 Comparison with the RSA encryption scheme ..............................
6.12. 6.12 Lattices and Cryptography ............................................................................
6.12.1. 6.12.1 Lattices ..........................................................................................
6.12.2. 6.12.2 LLL ...............................................................................................
6.12.3. 6.12.3 Application of lattices in cryptography .........................................
6.13. 6.13 Digital Signatures Based on Discrete Logarithms ........................................
6.13.1. 6.13.1 Overview .......................................................................................
6.13.2. 6.13.2 On the Difficulty of the Discrete Logarithm Problem ...................
6.13.3. 6.13.3 Possible Signature Equations ........................................................
6.13.4. 6.13.4 Case studies ...................................................................................
6.14. 6.14 Secure Multiparty Computation ....................................................................
6.14.1. 6.14.1 Oblivious transfer ..........................................................................
6.14.2. 6.14.2 Secret sharing ................................................................................
6.15. 6.15 Exercises .......................................................................................................
7. References ...........................................................................................................................
iv
Created by XMLmind XSL-FO Converter.
38
38
38
38
39
39
39
40
40
40
40
42
42
42
42
43
44
45
45
47
48
49
49
50
50
51
52
53
55
56
56
Advanced Cryptography
1. 1 Introduction to Security
"Many counting rods is victorious over few counting rods, How much more so over no counting rods." - Sun
Tzu: Ping Fa ("The Art of War", Denma Translation)
1.1. 1.1 What is Security Engineering?
Security considerations always arise in the context of conflicting interests. Specifically, when there is a
possibility (or threat) of such an action (called attack) that is beneficial for the initiating party, the attacker, but
harmful to some other party, the victim. While reasoning about security, we often assume the point of view of
the potential victim, referring to potential attackers as adversaries. Yet, it is very important to keep in mind that
the interests of providers and consumers of security are not perfectly aligned either.
We are primarily concerned with rational adversaries (in the economic sense), who attack if they prefer the
gains from the attack to the cost of performing the attack. While these are often difficult to quantify, using the
usual micro-economic axioms about preferences, it is always possible to assign a scalar utility function to these
gains and costs (see Debreu's Lemma in the supplement). In practice, we usually express them in terms of
monetary value. The matter is further complicated by the fact that we can only guess the preferences of the
adversaries and attackers can only estimate their costs and the gains; perfect foreknowledge is rarely available.
Anything that imposes additional costs on the attacker is a security measure (a.k.a. defensive measure). These
are not the only ways to mitigate threats (one can buy an insurance policy, for example), but alternatives are
mostly outside of the scope of security engineering. Security measures fall in two main categories: proactive
measures and reactive measures. Proactive measures make achieving the goals of the attacker more expensive,
while reactive measures help punishing the attacker after completing the attack.
Security measures also have costs associated with them; security measures that cost more than the loss caused
by successful attacks are not worth deploying. It is important to emphasize that security measures often affect
more than just the costs of the attacker and the defender. As side effects, they can alter the gains of the attacker
and the losses of the victim.
The losses of the victim and the gains of the attacker are often not commensurable, and the fact that we usually
express them in the same (monetary or time) unit does not imply that they are. The preferences of the two sides
can be very different.
Security measures can successfully prevent attacks in three cases:
1. The adversary is not able to afford the increased cost of the attack.
2. The increased cost of the attack surpasses the gains (as perceived by the adversary).
3. The increased cost renders some alternative action preferable for the adversary.
Correspondingly, in two cases attacks defy countermeasures: when effective countermeasures are beyond the
means of the victim (predatory attack), and when effective countermeasures are not worth taking (parasitic
attack). A possible avenue of attack that would not be prevented by the security measures in place is called
vulnerability.
Of course, the potential victim sleeps more soundly if the deployed security measures are of the first kind. For
preventing the attack, these do not rely on the attacker being rational and well-informed, neither of which can be
taken for granted. However, deploying such security measures is often not an option, either because they are
unaffordable or because the potential losses do not justify the costs.
1
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
In many cases, we resort to security measures of the second kind. These are effective against rational attackers
that know about the costs and the gains of the attack, but are not necessarily aware of alternatives. Performing
the attack would cause net loss to the attacker, so it is reasonable to assume that it will not be undertaken.
Unfortunately, such security measures can also be unreasonably expensive, but even that is no reason to
surrender. A security measure can make the attack expensive enough to make some alternative action on the part
of the adversary (e.g. attacking someone else) preferable to attacking, even if the attack would still result in net
gain.
Certain threats, however, are not worth defending against. In such cases, other means of damage control, such as
insurance or backup solutions, should be considered.
Security systems are collections of security measures defending the same assets against a number of threats.
Security engineering is the theory and practice of designing and maintaining security systems as to maximize
the economic benefit emerging as a result of prevented losses from attacks and incurred costs of the deployed
security measures. In the case of linear utility functions (which is often a reasonably accurate model
assumption), security system design aims to maximize the difference between prevented losses and incurred
costs.
As security measures prevent attacks by imposing costs on the attacker (cryptographic measures, in particular,
impose computational costs) in such a way that the adversaries decide against attacking, a large part of security
engineering is threat modeling, in which we estimate the potential attackers' capabilities, resources (budget) and
likely preferences. Threat modeling is the topic of the next chapter.
In the second part of this chapter, we will elaborate on the notion of security.
1.2. 1.2 What is "Secure"?
Security systems or components for such systems are often touted as "secure" by their respective vendors. Such
absolute claims come across as naive at best and misleading at worst. Security systems and their components
always address specific threats. But, as discussed in the previous part, the effectiveness of security measures is
meaningful only in the context of protected assets, which is often not available when evaluating security systems
and their components. Since one of the most efficient ways of reducing the cost of security is to spread the
considerable cost of development and testing over a large number of deployed instances, there are immense
benefits (discussed later in more detail) from using standard components in security design. Thus, we need
objective criteria for evaluating the security of components and systems, when no or little information is
available about the protected assets and their value to the defending party.
Traditionally, in order to compare the security of various defensive measures, we use various metrics capturing
the costs they impose on attackers (e.g. the minimal amount of time required to open a safe without knowing the
combination, the expected number of trials for guessing a secret key, etc.). However, improvements in such
metrics in components do not always translate into increased security for the system: Replacing a two-hour safe
with a five-hour safe in a vault that is inspected every ten minutes is not likely to prevent attacks. Using
encryption with a 256-bit symmetric key instead of 64 bits, will not prevent attacks either, if the key is derived
from a 6-digit PIN.
As a relatively recent development, an approach borrowed from the economic analysis of efficiency of resource
allocation has been adopted in security by Ian Grigg [3]. Let us call a change in a security system Pareto-secure
improvement, if it may prevent attacks without allowing for other attacks. Within a given security system, a
component the replacement of which does not result in a Pareto-secure improvement is called Pareto-secure
within the confines of the security system in question. This can happen for two reasons: either because the cost
of attacking this component is unaffordable for the adversaries (as in the example with the patrolled vault) or
because attacking other components is clearly preferable (as in the example of the 6-digit PIN). A component
that is a Pareto-secure choice for all (conceivable) security systems is called Pareto-complete.
From [3]: "Using a Pareto-complete component is always sufficient. Designers prefer and select Paretocomplete components in order to reduce local calculation costs, risks of incomplete calculations, external costs
of verification, and risks of future changes weakening the system. If unavailable, a Pareto-secure component is
also sufficient, but it carries risks that the security system may face unpredictable changes in the future that are
2
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
dramatic enough to challenge the security. It also carries external costs of analysis, in that verifiers of security
need to confirm that a component is indeed Pareto-secure within that system."
For Pareto-secure systems, it is necessary that all components be Pareto-secure.
1.3. 1.3 Mathematical Supplement
1.3.1. Debreu's Lemma:
Let
denote a completely ordered subset of a finite-dimensional Euclidean space. If for every
sets
and
are closed in
, then an ordering-preserving real-valued continuous
function exists over the elements of
. See [1] for more details.
1.4. 1.4 Exercises
1. What security measures are taken in a car? What do they protect? What threats do they counter and how?
Which ones are proactive, which ones are reactive?
2. One security measure in 2004 S-Class Mercedes is a fingerprint scanner preventing unauthorized persons
from starting the engine. Analyze this security measure from a costs-benefits point of view (hint: this
measure was removed from the 2005 model).
3. Analyze the security of the public transit system against freeriders.
4. What components in your home security system are Pareto-secure? Are there any Pareto-complete ones?
5. Nonces are random codes used to distinguish each authorization session; a security measure often used for
preventing attacks by replaying messages recorded in the past. How many binary digits would be a Paretocomplete choice for the length of nonces?
2. 2 Multiple Threats and Defenses
3
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
"And so it is saidKnow the other and know oneself,
Then victory is not in danger." - Sun Tzu: Ping Fa ("The Art of War", Denma Translation)
2.1. 2.1 Threat Modeling
From [2]: "Threat modeling is, for the most part, ad hoc. You think about the threats until you can't think of any
more, then you stop. And then you're annoyed and surprised, when some attacker thinks of an attack you didn't."
All security systems rely on some implicit or explicit assumptions about the nature of the threats they face. In
many cases, security systems fail not because their way of countering anticipated threats is inadequate, but
because attackers challenge the very assumptions upon which the security of the security system depends.
Getting the threat model right is paramount to designing successful security systems. However, starting the
above process from scratch each time is prone to result in unnecessary errors and wasted effort. Instead,
Schneier recommends a systematic way of looking at threats, which allows us to re-use results from past work
and use our present results in the future: organizing threats into what he calls an attack tree.
Some action can be considered an attack either because it is causes losses directly or because it makes other
attacks possible. Thus, following [2], attacks can be organized into a tree (actually, an acyclic directed graph)
according to what other attacks do they make possible and whether they are sufficient or necessary for
performing those attacks. Equivalently, one can think about these trees as (monotonous) logical expressions on
the leaf actions, where sufficient actions are joined by or clauses, necessary actions are joined by and clauses.
Two examples are shown on Figures 2 and 3
Attack trees reflect the (anticipated) options of attackers to achieve their goals. An actual attack consists of
actions for which the logical expression corresponding to the attack tree is true, when setting the variables
corresponding to these actions to "true" value. Because of the monotonous nature of the expression, any superset
4
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
of actions is an attack as well. Conversely, if certain actions do not result in achieving the goal, neither does any
subset thereof.
Such a representation allows for a lot more than just saving some work on enumerating threats; it allows for
predicting attack preferences and the costs of attacks, it allows for incorporating lessons learnt from past
incidents that happened to different systems into security design, it allows for evaluating the effectiveness of
various security measures and a lot more. Most importantly, it allows for efficient division of labor in security
engineering.
Using the attack tree for assessing the (minimal) costs of attacks and predicting the likely choices of a rational
attacker is quite straightforward. The minimal cost of performing an action corresponding to a specific node of
the attack tree can be expressed as the minimum of the costs of sufficient children or the total cost of necessary
children (in case of linear utility functions, the sum of the minimal costs thereof).
Even without knowing the preferences of our adversaries and the ability to model them with some scalar utility
function, we can use the attack tree to determine which attack is possible, given some assumptions about the
capabilities of the adversary.
The evaluation of the effectiveness of various security measures is also significantly aided by representing
threats in attack trees; security measures typically increase the cost of performing specific actions. How this
changes the overall costs of attacks can be deduced from re-evaluating the attack tree.
2.2. 2.2 Cooperation in Security
Several players with slightly different roles participate in the security process. They typically fall in one of the
following categories:
5
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
While they have a common interest in security, their motivation and priorities may be very different. Of course,
these roles are not necessarily distinct. When the subject is a group, the members are necessarily agents, who
share some but not necessarily all interests of the group. When a security solution is developed, deployed and
operated in-house (a scenario worth considering only for the extremely well-funded), providers are agents as
well.
All other participants can violate the security policy of the subject and thus have to be included in the threat
model on the one hand and provided with the necessary incentives on the other hand. Trusted parties (often
called trusted third parties, when used to help transactions between parties with slightly different interests)
deserve special attention, as they must, by definition, be distinct from the subject and thus necessarily constitute
a weakness in any security system. Szabo eloquently argues in [4] the reasons (and some methods) to avoid
TTPs when possible.
Combining a trusted party with any other role (except the provider) will necessarily result in a conflict of
interests compromising the integrity of one or both of the roles. Also, it is a fallacy to assume that the costs of
the trusted party can be arbitrarily reduced by spreading the cost among the many users of the trusted party,
because the more users rely on the trusted party the more is there to be gained from attacking it, thus the more
costly its security becomes. Actually, common trusted parties can easily become an obstacle for scalability for
this very reason.
2.3. 2.3 Secrets
Secrets (deliberately withheld information, known to some parties and unknown to others) play an important
role in security in general and are central to cryptographic applications. Secrets can be protected assets as well
as means to protect other assets. In this section, we will discuss some basic aspects of dealing with secrets.
2.3.1. 2.3.1 Shared Secrets
Unfortunately, two very different concepts are called shared secret in English. One is the same secret known to
more than one party, the other is a secret that can be assembled from different secrets possessed by different
parties. In this section, we deal with the former.
Shared secrets have the following undesirable property: the losses incurred by the leaked secret are suffered by
all parties, while the costs of protecting the secret are born by each one individually. Moreover, the gains from
attacking the system by leaking the secret are won only by the traitor. Thus, depending on the actual figures for
6
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
losses, costs and gains, there is a potential for what is known in game theory as prisoner's dilemma or tragedy of
commons (see the supplement and Figure 5).
As the aphorism attributed to Benjamin Franklin goes, "three can keep a secret, if two of them are dead." There
is a qualitative difference between secrets shared by two parties and secrets shared by three or more parties. The
difference is the following: if the secret is leaked, in the case of two parties, it is known (to them) who the
source of the leak was, so reactive security measures imposing various costs on the traitor are possible. If a
secret is known to three or more parties, there is no way to defend it in the (likely) case of the tragedy of
commons. Thus, secrets shared by three or more parties are to be avoided in security systems whenever
possible.
Of course, shared secrets between two parties are also more vulnerable than secrets known to one party, so it is
instrumental to keep the value (both the loss of the victim and the gain of the attacker) of the secret bounded
from above. Secrets the value of which keeps increasing over time without bounds should not be shared.
Public key cryptography is usually the tool of choice to avoid shared secrets, because it allows the use of a
secret in one party's possession by others without the need to share it.
2.3.2. 2.3.2 Global Secrets
A secret upon which the security of a whole system depends (e.g. a master key to all locks or a root password to
all computers) is of equal value to the security of the whole system. During the lifetime of the system, its value
is bound to increase. Thus, the protection of this secret easily becomes the most expensive part of the security
system. If the secret cannot be changed (that is the old secret cannot be rendered worthless for attackers), certain
security measures taken in the past to protect it (the choice of the type of the key, etc.) may become inadequate
over time. Using a probabilistic model, if the probability of a compromise during a fixed period of time has
some lower bound (determined by decisions taken in the past), the probability that the compromise has not
occurred converges to zero exponentially fast. Thus, parameters that cannot be changed (e.g. the structure of the
security system, decryption keys for information that is available in encrypted form, or biometric information of
authorized personnel) must not be used as global secrets. If possible, global secrets must be avoided in general.
A global secret that is shared (especially between three or more parties) is a recipe for disaster. Such mistakes in
security design have historically lead to spectacular failures.
2.3.3. 2.3.3 Using Secrets as Security Measures
7
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
When the cost imposed by a security measure on the attacker is that of finding out a secret, very small secrets
are sufficient to thwart attacks by brute force (enumeration of all possibilities), since the size of the secret can be
as small as the logarithm of the number of possibilities. Such secrets that are parameters of the security system
set by the subject or its agents are called keys.
The workings of the security system are known to the provider. If the security of the system or its components
depends on the secrecy of information other than the keys, it becomes a shared secret between the subject and
the provider, unless they are the same. If the same system or component is provided to many subjects, we have a
secret known by many parties, which is extremely difficult to keep. This has two very important implications:
For consumers shopping around for security systems or components, it means that providers' claims that the
security of the system would be weakened by disclosing its inner workings are best believed and such systems
and components (and providers) are best avoided. For providers, in turn, it means that publishing the details of
what they are selling makes good marketing sense; if their solutions are secure even under full disclosure of all
details (except the keys, of course) it inspires confidence.
All this, however, does not imply that subjects should also disclose everything. From their point of view, there is
often no benefit from disclosing the details of the security system they use, while it may add to the costs of the
attacker to keep certain things secret or even lie about them. It is very often beneficial to deceive the attacker
regarding the costs and benefits of the attack; if the bluff is expensive to call and cheap to make, it is a valid
security decision. The extreme case is the so-called dog-sign security, when the dominant cost on the attacker is
that of finding out what the costs of an attack would be (like placing a "beware of savage dog" sign on a fence
around a house with no dog). When the subject and the provider are the same, very sophisticated dog-sign
security measures become perfectly rational choices (e.g. there are good reasons to believe that the US ballistic
missile defense system is a dog-sign security measure).
2.4. 2.4 Mathematical Supplement
• One holder of the shared secret can chose to protect it, and pay the costs (denoted by ) or to divulge it and
not to pay the costs (which include the opportunity costs from receiving the benefits going to the traitor). If
someone fails to protect the secret and it leaks, the losses that occur to the player in question are denoted by
. In the case of two parties, there might be some penalty
that is paid by the traitor, but not the others.
Thus, we get the following payment matrix for one holder of the secret, given the two possible strategies
(protecting vs. divulging) and the two possible behaviors of the rest (with non-negative ,
and ):
The benefits from keeping the secret, if everybody else does equal
, if someone else also
divulges the secret, it becomes
. If
, the rational behavior is to become a traitor, no
matter what others do. Keep in mind that
for more than two participants,
is the loss to the
individual (not the group) and
includes the opportunity cost of not receiving the bribe, so the dangerous
situation is likely to be the case.
2.5. 2.5 Exercises
1. The assumption that the success of the attack is a monotonic function of the various actions is not selfevident. Some avenues of attack may be mutually exclusive. Think of scenarios when the proposed threat
model could lead to misplaced security measures.
2. The popular on-line auction web-site, eBay, combines the roles of a trusted third party (making sure that the
auction is fair, in exchange for a percentage of the winning bid) and an agent (by automatically bidding on
behalf of the users, who only need to tell their highest bid). This necessarily allows eBay to attack the users
and get away with it. How?
3. The default configuration of ssh, a remote administration tool, disables remote root logins. Why?
8
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
4. Analyze the economics of disclosing vulnerabilities in widely deployed security systems. Find the optimal
strategies for various players. Verify your conclusions by observations, if possible.
3. 3 Classical cryptography
3.1. 3.1 Unconditionally secure encryption schemes
There are several historical ciphers or crypto schemes which use some (more or less) sophisticated intuitions
and heuristics instead of mathematical proofs of security. Within this context historical rather means "before
RSA", not necessarily "a cipher used in the Roman Empire" (see Figure 6) and others.
The common point in these schemes is that they were be completely broken sooner or later, see Enigma 7 and
other ciphers. The description of such schemes and methods is out of the scope of this book. However, one thing
belonging to classical cryptography can be interesting from the mathematical point of view: the notion of
unconditionally - or perfectly - secure encryptions
9
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
An encryption scheme consists of three main algorithms: key generation, encryption and decryption. We give
here - a rather informal - description:
• the key generation is a probabilistic algorithm which given the security parameter outputs a random element
of the set of possible keys
(or key space)
• the encryption is a probabilistic algorithm which given a key
space
outputs an element form the set of possible ciphertexts
by
and is called ciphertext.
and a message
form the message
The output of this algorithm is denoted
• the decryption is a deterministic algorithm which given a key and a ciphertext
form the set of possible messages
The output is denoted by
.
outputs an element
Let us note, that in this general setting the decryption of an encrypted message is not necessarily the original
message. An encryption scheme is called correct if for every
and
we have
with probability one, see Figure 8. Within these notes only correct schemes are considered.
10
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
3.1. Remark We consider messages
and ciphertexts
with
and
only. This technical restriction is only for the sake of simplicity, hence we avoid the
possibilities to dividing by zero.
Now we can define unconditionally secure encryption schemes. The intuition behind this notion can be
rephrased easily: the probability distribution over messages and ciphertexts are independent. In other words, an
adversary knowing the distribution over the messages would have no knowledge about the original message
from the ciphertext sent by the communicating parties. The formal definition is the following:
3.2. Definition An encryption scheme is unconditionally secure over
over
and every
if for every probability distribution
One can give equivalent formulations of the above definition which are easier to handle, here we present some.
3.3. Lemma An encryption scheme is unconditionally secure over
and every
if for every probability distribution over
From this Lemma we get the so-called indistinguishability which is more attractive and intuitive. This
formulation says informally that an adversary cannot distinguish the encrypted version of two messages.
3.4. Lemma An encryption scheme is unconditionally secure over
and every
if for every probability distribution over
For the sake of completeness we present an informal description of a further equivalent definition called
adversarial indistinguishability. An interested reader can find a precise definition in [22]. In this setting, the
adversary knows the message space, the parameters of the encryption scheme (but not the key!) and chooses two
messages. Then a random key is chosen for the encryption of the message randomly chosen from the above two.
The adversary sees only the encryption of some message and her goal is to find out which one was encrypted.
Clearly the adversary can guess the result with probability one half, i.e. if she chooses form the messages
randomly as well. This definition says that the scheme is unconditionally secure if the adversary cannot do
anything better than a random guess.
3.2. 3.2 Case study: the one-time pad
The one-time pad was first introduced in 1882 by Frank Miller for securing telegraphy and later was patented by
Vernam in 1917. This system obtains unconditional security, however this notion was introduced (and proved
for the one-time pad) about 30 years later by Claude Shannon. In this system when a sender wants to send a
message to the receiver, then both party has to possess the same secret key. Then the encrypted text is the XOR
11
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
of the message and the key, which seemed to random for an eavesdropping attacker if the key is chosen
randomly.
More precisely the system consists of the following steps: The one-time pad encryption scheme:
• let
• choose an element from
• given a key
• given a key
uniformly at random
and a message
and a ciphertext
the ciphertext is
the output is
Note that this system is correct, since
of this cipher, the proof is left as an exercise.
.
.
We can formulate the security
3.5. Theorem The one-time pad encryption scheme is unconditionally secure.
3.3. 3.3 Drawbacks of unconditionally secure schemes
In the previous section we have seen that achieving unconditional security is not an impossible mission.
However this system has several significant drawbacks causing that the one-time pad is not practically
applicable in most scenarios. The first problem is that the secret key has to be as long as the original message
itself. This causes several problems from the secure storing of long secret keys to the secure generation of large
amount of truly random bits (these problems will be discussed in the following chapter in detail). For the sake of
these difficulties one-time pad is principally used in military and diplomacy applications. The other essential
problem can be read out from the name of the system: every key can be used for encrypting only one message.
Contrary, if the two messages are encrypted with the same key, then the XOR of the respective ciphertexts is the
XOR of the original messages. For the first sight, knowing the modulo 2 sum of two messages is not a
significant benefit for the attacker, however the messages are not random strings. Every language has known
statistical properties, based on such analysis every (sufficiently long) message can be recovered.
One can think, that these weaknesses are particular ones resulting from the one-time pad construction only.
Unfortunately, this is not the case, it can be proven, that every unconditionally secure encryption scheme has
these limitations.
3.4. 3.4 Exercises
1. Prove Lemma 3.3. (Hint: use Bayes' theorem)
2. Prove Theorem 3.5. (Hint: use the indistinguishability property)
4. 4 Randomness
12
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
"He changes his camp, Makes his route circuitous, Preventing the people from obtaining his plans." - Sun Tzu:
Ping Fa ("The Art of War", Denma Translation)
4.1. 4.1 Introduction
The notion of randomness in security engineering is quite different from that in other sciences (a fact
unfortunately often ignored with perilous consequences). In security, the randomness of a value means high
costs for the adversary to learn or guess anything about it, no more and no less. The higher the cost, the more
random the value is. This immediately implies that randomness is highly context dependent; it depends on who
the adversaries are, what information is available to them (and what the costs of learning or guessing other
information are). In cryptography, we typically use random bits. In this lecture, we shall discuss where to get
them and how for various purposes.
In order to be able to use the mathematical tools of probability and statistics, we need to define a probability
measure on the different values of random bits (and other observables). To this end, we evoke the notion of a
rational attacker maximizing his expected net gains. Consider the actual strategy of the rational attacker and a
set of distribution-dependent optimal strategies including this one. The distribution corresponding to the actual
strategy is used. Note that this is not necessarily unique. Note, furthermore, that it is often not known in advance
with the certainty what the rational attack strategy is. In such cases (i.e. in typical practical ones), the probability
distribution assigned to the values of random bits depends on our assumptions about the attacker.
Strictly speaking, statistical properties such as independence from observables, (jointly) uniform distribution
and its consequences, are neither necessary nor sufficient for security, albeit highly desirable in most cases.
Random bits with a non-uniform joint distribution can be Pareto-secure in a given context. For Paretocompleteness, the above mentioned statistical properties are necessary in the majority of cases, because the cost
of guessing the values of a number of random bits with a non-uniform joint distribution is lower than that of
guessing the values of the same number of jointly uniformly distributed random bits.
4.2. 4.2 Obtaining Random Bits
Since the notion of randomness is context dependent, so is the best way of obtaining random bits. Cryptography
(giving the adversaries problems in excess of their computational capacity available for attack) can help us
getting more and better random bits out of a few poor ones by feeding them into one-way functions. As long as
the adversary does not know (or cannot guess) something about all the inputs of the one-way function, the
output is random (according to random oracle assumptions about the one-way function).
In the simplest example, we have a secret
from a large enough set that the adversary has no hope of
guessing. Then, we can get any number of random bits by incrementing a counter of appropriate size and
feeding the secret and the counter into a one-way function
that provides at least one bit on the output.
13
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
This is a fine method, if all the assumptions are correct. However, if there is a non-negligible chance that the
attacker may learn the initial secret, while having a reasonably accurate estimate on the counter value,
randomness vanishes.
But what if our one-way function is less than perfect? In the above example, the inputs to the one-way function
are closely related. In fact, subsequent ones differ only in two bits on average. If the secret
is not known to
the attacker, neither is
, where
is another one-way function, different from
. Thus, the
sequence
where
for
is as random as
, but less vulnerable to related-input attacks against the used hash function (in
practice,
and
are two halves of the same hash function).
, however, is not a Pareto-improvement over
, because for arbitrary values of ,
can be calculated with less effort than
, because of the lack of
recursion (this property is sometimes referred to as "random access", where "random" has a slightly different
meaning, which may be confusing).
The randomness of both
and
ultimately depends on the randomness of
. However, given
and ,
the output is consistent. Such "keyed" random sources are called pseudorandom number generators, or PRNG,
an example can be seen on Figure 11.
14
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
Sometimes, guarding any particular small secret (such as
) for a long period of time is infeasible. In this
case, we resort to real random numbers, which depend on the secrecy of other parameters as well. Observe that
including additional variables in the input of the one-way function cannot deteriorate randomness (assuming the
one-way function to be a random oracle). Of course, including some inputs may have associated costs.
Typically, the following inputs are included in real random number generators: a counter of queries, to avoid
short cycles, the time of counter initialization, to avoid repeated outputs after hardware reset, external inputs of
the device outside of the attackers control or prying eyes. Dedicated hardware exists that generates additional
input from noisy resistors, semiconductors and radioactive decay. In general, the more independent inputs, the
better.
In some personal computer applications and operating systems, the state of the random pool (the input of the
one-way function, that is) is sometimes saved on disk in order to preserve randomness between reboots. If this is
just an additional input, it can't hurt (again, assuming a random oracle for the hash function). If the saved
random seed is the only input (the state of a PRNG, that is), it provides an additional avenue of attack.
NIST developed a series of standards proposals for the purpose of obtaining high quality random bits [8, 9 és
10]. By using standard procedures, one gains the scrutiny of a large community of researchers.
4.3. 4.3 Buying, Selling and Pricing Randomness
If we focus on the costs imposed on attackers, with all things (such as costs to self) being equal, everybody
should generate random values for oneself. However, humans are very bad at generating random values (most of
us are hopelessly predictable), so we must resort to using machines.
15
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
Building machines for ourselves may not be worth the random value, so we usually resort to using machines
built by others. And this raises a host of other concerns: can the attacker collude with the provider of the random
generator? How do I know that my random numbers are indeed random? These questions are the more
important, as real random number generators cannot be black-box tested for maliciously inserted back-doors
(predictability by an attacker knowing something that we do not, that is).
The problem is further aggravated, when random numbers must be shared with other parties, as in the case of
common RFID tags and pre-paid scratch-off cards - the manufacturer. How to motivate the manufacturer to
keep the secret from adversaries? How do we discover information leaks? How much does it cost?
Suppose, each scratch-off card is sold for some price, the manufacturing costs are
(typical values
would be
$0.15 vs.
$5). The total number in one batch is
(a typical value would be
).
Thus, the value of the order is
, while the value of the secret is
. It is not at all clear that reputation and
opportunity for future business are enough to keep the manufacturer honest.
The solution is using only a fraction of the random values, and not telling the manufacturer, which cards are
used and which ones are withheld. Thus, random numbers become random, to some extent, for the manufacturer
as well.
Suppose, random numbers are activated as they are sold (the typical model here is a Poisson-process with rate
). There is also a time period (typically modeled by an exponential distribution with an expected value )
while the activated number remains valid. Thus, there are some valid codes (the expected number is
in this
model) that can be "stolen" by the manufacturer. If, at a given time
codes have been sold, there are
codes, that are known to the manufacturer, have not been validated, nor invalidated. If an attempt of
using such codes is registered, the manufacturer will get caught, losing future business and the sales from this
batch will be stopped. Registering attempts of using already invalidated codes is meaningless, as it can be done
by anyone. Hence, by trying to use a stolen code that has not been invalidated, the attacker will succeed with
probability
.
For the manufacturer, the expected gain from an attack is
, where
is the cost of
losing future business.
increases with with
. As long as it is negative, the manufacturer has
effective incentives not to steal. Let
such that
but
(of course,
depends
on
). In order to keep the manufacturer honest, from a batch of
codes, we can sell only
, thus
must be paid for randomness or
for each code sold.
4.4. 4.4 Exercises
1. In the above example, we considered only one batch. What happens, if batches of codes are purchased
regularly from the manufacturer to keep up with the demand (a Poisson process with rate )? Assume an
interest rate of . In this case, it is possible to determine the optimal batch size, to estimate , etc.Using
reasonable estimates for , , , , and , give an estimate how much your cellular provider is paying for
the randomness of each top-up card.
16
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
5. 5 Symmetric and Asymmetric Cryptography
"Three can keep a secret, if two of them are dead." - Benjamin Franklin
5.1. 5.1 Secret key (symmetric) cryptography
Symmetric cryptography is a set of cryptographic security measures where various sensitive aspects of
information (such as integrity, authenticity and confidentiality) are protected by the same secret key shared by
producers and consumers of the protected piece of information. Conceptually, it is easier to understand: the
sender and the receiver(s) share some secret key and that distinguishes them from those against whom
information is protected.
The drawbacks of symmetric cryptography are twofold:
1. Sharing the secret between the protected parties requires some communication channel other than the one
through which they intend to communicate using cryptographic protection against potential attackers; it must
be protected from such attacks using other means. Thus, for multiparty communication, symmetric
cryptography is not a self-sufficient security measure.
2. Because of shared secrets, multiparty communication systems protected by symmetric cryptography are
especially vulnerable to insider attacks.
Because of the above, information security systems relying entirely on symmetric cryptography are Paretocomplete only for use cases when the producer and the consumer of the information is the same entity. The most
typical such use case is off-loading sensitive information to untrustworthy storage.
As symmetric cryptographic algorithms are computationally the least expensive, they are often used in security
systems together with more expensive asymmetric algorithms to save computational resources.
5.1.1. 5.1.1 Confidentiality
17
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
To protect the confidentiality of communication between parties sharing the same secret key, some form of
secret key encryption is used. In this setting, encryption and decryption of information requires the same secret
key, though not necessarily the same operations with them.
Secret key encryption is typically implemented in one of two ways: using a stream cipher or a block cipher as
the underlying cryptographic primitive.
In the first case, the output of the stream cipher (the so-called key stream) is added bitwise (XOR operation) to
the information for both encryption and decryption. Since using the same keystream twice is unsafe, the secret
key shared by the parties is not used directly as the key of the stream cipher. Instead, a random salt is used,
which is hashed with the secret key to form the key of the stream cipher. The salt value is appended (typically at
the beginning) to the ciphertext.
In the latter case, some form of block chaining methods is used. For those that require an initialization vector
(IV) such as CFB or CBC, it is typically chosen randomly and appended to the ciphertext the same way as the
salt value above (see Figures 14, 15 for details of CBC mode).
18
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
One of the more interesting special cases is when the block cipher is used as a building block for a stream
cipher. It is often referred to as CTR (or counter) mode, as the input of the block cipher is a counter and the
output is the corresponding block of bits in the keystream.The useful property of this mode of operation is easy
parallelism and straightforward formal proofs of security.
19
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
5.1.2. 5.1.2 Integrity and Authenticity
In order to confirm that a given piece of information has not changed since an authorized entity has worked with
it, two closely related mechanisms can be used in the context of symmetric cryptography: a message
authentication code (MAC) or a modification detection code (MDC). In some cryptographic texts, especially
those from before asymmetric cryptography became widespread, MAC and digital signature are used
interchangeably, but in these notes we reserve the use of digital signature for the corresponding asymmetrical
primitive.
MAC is a short piece of information - typically twice as long as the symmetric key length - that is a one-way
function of both the document on which it is computed and the symmetric key. The verification of a MAC
function is its repeated calculation and verifying that the two match, see the illustration on Figure 17. A typical
use case is when the untrusted counterparty is authorized to read the data but is not supposed to change it.
MDC is a hash attached to a document with which it is symmetrically encrypted. Thus, any modifications to the
ciphertext can be detected upon decryption by calculating the hash and comparing it with MDC. Using an MDC,
the sender can be assured that only recipients that also have the secret key can read the message while the
receiver can be assured that the message has not been tampered with after the sender has encrypted it.
5.2. 5.2 Public key (asymmetric) cryptography
Before the 1970's and Ralph Merkle's seminal insight (first acknowledged in a 1980 publication [15]) it was
widely believed to be necessary to have some secure (possibly slow and expensive) communication channel to
share keys in order to be able to securely communicate over untrusted channels (such as public telegraph and
telephone networks) where all communicated information is potentially subject to eavesdropping by the
attacker. It turns out, however, that it is possible to communicate securely using only one, insecure
communication channel. To achieve this, participants generate private keys and publish special one-way
functions thereof, the corresponding public keys. Every asymmetric cryptographic operation involves the
counterparty's public key or one's private key or both. As private keys are not shared, the informational
advantage of participants over the eavesdropper of all communicated information is maintained.
20
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
While in principle all cryptographic security measures can be implemented using asymmetric cryptography (the
private key can always play the role of the secret key), from a computational point of view, symmetric
cryptography is more efficient, requires less computational resources than asymmetric cryptography for the
same tasks. Thus, in practice cryptographic systems use both symmetric and asymmetric cryptographic
components. The most straightforward and conceptually easiest combination of the two is when asymmetric
cryptography is used to protect the communication channel over which secret keys of symmetric algorithms are
shared.
5.2.1. 5.2.1 Key Agreement
The most basic asymmetric cryptographic primitive is the so-called key agreement sometimes referred to as key
exchange. In this case, two parties can use their own private key and the counterparty's public key to compute
the same shared secret. As a typical use case, this shared secret can then be used as a secret key for secure
communication using symmetric cryptography, providing confidentiality, integrity and authenticity as described
above.
21
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
5.2.2. 5.2.2 Public Key Encryption
Confidentiality of communication can be protected even if the sender does not wish to reveal her digital identity
(or does not even have one), ensuring that only the intended recipient can decrypt the message. Unlike
symmetric encryption, the asymmetric variant uses the public key to encrypt the information but requires the
private key to decrypt it. The advantage over symmetric encryption is twofold:
• Each participant only needs one key pair instead of a separate secret key shared with every communication
partner.
• No additional communication channel is required for transferring the keys.
An obvious, though not the only possible way of achieving public key encryption is generating an ephemeral
key pair for key agreement, encrypting the information using the shared secret obtained from the recipient's
public key and the ephemeral private key and including the ephemeral public key in the message.
5.2.3. 5.2.3 Digital Signature
22
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
Protecting the authenticity and integrity of communication with public key cryptography is qualitatively
different from what is possible with symmetric cryptography. A short piece of information similar to MAC that
can be created using a private key and (only) verified using the corresponding private key is far more versatile
than a MAC, as it can serve not only to convince the counterparty about the authenticity and integrity of the
message, but also
• to convince any third party about the same and
• as a non-interactive proof of knowledge of the private key without having to reveal it.
As described in the next chapter, digital signatures can be constructed from asymmetric encryption or key
agreement, using certain non-general properties of the implementing primitives.
6. 6 Cryptographic Primitives
"Tastes do not exceed five, Yet all their variations cannot be tasted." - Sun Tzu: Ping Fa ("The Art of War",
Denma Translation)
6.1. 6.1 Introduction
Cryptographic security measures, by their very nature, are much cheaper to deploy than to develop and test.
Thus, in cryptography, development and testing costs can be spread over a large user base, thus reducing the
costs of each individual. Also, because of the shaky mathematical foundations of cryptography and the inherent
difficulty of the task, the testing of cryptographic components can never be considered finished. Popular
components that are used in defending many assets (and thus would result in immense gains for successful
attackers) inspire confidence (if they were not secure, they must have been attacked by now). Yet, there is no
guarantee that successful attacks will not be devised against any specific component.
Thus, "following the herd" by using popular standard components in security design is a wise strategy for
several reasons: first, such components are subject to intensive research, both well-intended and malicious, so it
is highly likely that flaws will be revealed before our particular security system gets attacked, secondly, in the
event of discovering a weakness in such a component, the security community is highly motivated to develop
23
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
alternatives. In most cases, alternatives are developed long before the need to replace a component becomes
pressing.
In order to facilitate the use of standard components, it is advantageous to design cryptographic systems and
protocols using abstract components with well-defined security objectives (called primitives) and pick actual
implementations afterwards. In this lecture, we will introduce some of the most popular cryptographic
primitives and discuss their use in security systems.
This chapter covers several lectures.
6.2. 6.2 One-Way Functions
6.2.1. 6.2.1 Introduction
Mappings for which finding a pre-image (an argument yielding a specific function value) is computationally
difficult are called one-way functions. The overwhelming majority of cryptographic measures hinges on the
security of one-way functions. It is important to emphasize that the notion of "computationally difficult" does
not have a generally applicable mathematical definition. The usual definitions from complexity theory, while
useful, are sometimes neither necessary nor sufficient for security. Furthermore, because of open problems in
complexity theory, it is not clear that families of functions, where the evaluation of the function requires
polynomial resources (in terms of the length of the argument, in the worst case), while finding a pre-image
requires exponential resources (in the typical case) exist at all. Also, one must exercise caution when applying
such asymptotic criteria to finite problems.
Depending on the size of the argument and the size of the function value, useful one-way functions fall into one
of the following categories:
One-way function varaiants:
• The argument and the value are of fixed, equal length.
• The argument and the value are of fixed length, with the argument being longer.
• The argument and the value are of fixed length, with the argument being shorter. An example is shown on
Figure 21.
• The argument is a sequence of arbitrary length, the value is of fixed length.
• The argument is of fixed length, the value is a pseudorandom sequence that can be evaluated to an arbitrary
length.
In addition to the one-way property, we often require collision resistance, which means that finding two
different arguments for which the function yields the same value is also difficult (or even impossible). For
compression functions and hash functions (a.k.a. message digests or digest functions), collision resistance
typically means that finding two colliding arguments requires, on average, resources proportional to the square
root of the range of the function.
6.2.2. 6.2.2 The Random Oracle
For design and evaluation purposes, we often use the random oracle [6] as a common abstraction for one-way
functions mentioned above. The random oracle, which is available to all parties (including the adversaries) does
the following: when given a binary vector of arbitrary length, she responds with a sequence of independent
random bits coming from a Bernoulli distribution with parameter
until stopped. The only constraint on
the oracle is that given the same vector, she responds with the same sequence.
In security proofs, we often replace certain parts of the security system with queries of one or more random
oracles (available to all parties, including attackers) and prove security for this ideal system. However, this
24
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
method has received ample criticism on the grounds that it is possible to design protocols that are secure under
random oracle assumptions, but any implementation would render them insecure (see [12] for details). Clearly,
security under random oracle assumptions is necessary; the exact conditions when it is sufficient are still subject
to intensive research. Random oracle assumptions are stronger than mere collision-resistance.
6.2.3. 6.2.3 Linear Cryptanalysis
Supposedly one-way functions are said to have a linear bias, if the modulo 2 sum of some input bits and some
output bits is 0 with a probability different from
possible inputs of equal length).
(where the probability measure is defined uniformly over all
Such bias can be fruitfully exploited for finding pre-images, collisions and other violations of security
assumptions. Linear cryptanalysis was first presented by Matsui and Yamagishi in 1992 [24] and attached the
attention of the cryptographic community when Matsui successfully applied it to the US government Data
Encryption Standard (DES) cipher [25].
6.2.4. 6.2.4 Differential Cryptanalysis
Differential cryptanalysis deals with pairs of inputs and corresponding outputs. If certain differences in inputs
lead to certain differences in outputs with a probability that is larger than what is statistically warranted then the
function is said to have differential characteristics.
Such characteristics can be used for statistical attacks in a similar manner. Although differential cryptanalysis
was first presented by Biham and Shamir in 1990 [7], it has been discovered more than a decade earlier at the
US National Security Agency (NSA) and possibly elsewhere.
6.2.5. 6.2.5 Application Notes
One-way functions with no additional special properties have several direct applications. In this section, we give
a brief overview of some of these applications.
6.2.5.1. 6.2.5.1 Authentication Using a Publicly Readable Database
Suppose that authorized access is granted to parties presenting some secret pass-code over a channel that is
secure against eavesdropping (identification is done by some other means). The equipment performing the
authorization is also assumed to be trustworthy. However, the database which is used to verify what codes are
authorized is readable by potential attackers.
We want to impose computational costs on attackers who want to learn valid pass-codes from the database. An
obvious thing to do is to store one-way mappings of passcodes using some one-way function. During
authorization, the same function is applied to the presented pass-code and the result is compared to that in the
database.
25
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
If, for some reason, there is a possibility that several identities share the same pass-code, using the above
solution would tell adversaries which ones have identical pass-codes. In order to deny attackers this information
and make sure that all records are different, a unique sequence (called salt) can be added to each pass-code
before the one-way transformation. The salt value should be stored along with the one-way image of the passcode so that it is available at the time of verification.
If the entropy of pass-codes is low enough so that an attack by enumeration (a.k.a. dictionary attack) may yield a
valid pass-code in a reasonably short time, salting imposes the additional cost of having to do the enumeration
for each identity separately. An additional measure may be using several iterations (typically tens of thousands)
of the one-way function on the salted pass-code. This may increase the time required for each enumeration by a
multiplicative factor rendering the exercise excessively expensive for the attacker at the cost of introducing
additional delay at verification time. However, the effectiveness of this measure may be questionable: attackers
may have access to a lot more computational power than that available in the equipment used for verification.
Also, there is no guarantee that the iterated function cannot be computed more efficiently. Finally, it is worth
mentioning that a common mistake is using an iterated one-way function without salting. This defeats the
purpose of the security measure, as the dictionary attack may be performed rapidly using a dictionary of precomputed images; the additional cost imposed on the attackers can be spread over an arbitrary number of attacks
on similar systems.
6.2.5.2. 6.2.5.2 Authentication Over an Insecure Channel
If all the equipment used in the authentication can be considered trustworthy (that is it is protected by various
physical security measures, as is often the case in RFID), but the communication channel is easy to eavesdrop
(such as a radio channel), the proving party may generate a unique salt and send the one-way image of the salted
pass-code and the salt to the verifying party, which, in case of successful authentication records the salt value to
prevent attacks by replaying recorded messages.
There are other similar authentication protocols (e.g. when the salt, called challenge in this context, is provided
by the verifying party), which will be discussed in detail later.
Using simple one-way functions, it is not possible to authenticate over an insecure channel using a publicly
readable database, as the corresponding authentication protocols necessarily rely on both parties having access
to the cleartext version of the secret at the time of verification due to the symmetric nature of the underlying
cryptography. If it is known to the verifying party in advance, then the database cannot be publicly readable, if it
is transferred during authentication then the channel needs additional protection. When the database is readable
and the channel is eavesdroppable, one needs either commutative or trapdoor families of one-way functions,
both of which will be discussed later.
6.2.5.3. 6.2.5.3 Stream Cipher Using a Keystream Generator
Keystreams can be used as one-time pads. It is very important not to reuse the same keystream for encrypting
two different streams. In order to use the same key for encrypting different streams, one can use salting
techniques similar to those discussed in Section 6.2.5.1 and prepending the salt vector to the encrypted
keystream.
26
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
The actual argument for the keystream generator is either the concatenation of the key and the salt, or a
(possibly iterated) one-way image thereof. The role of the second one-way function (typically a compression
function or a hash function) in this case is to thwart related key attacks in case the key-stream generator turns
out to be vulnerable to such. One alternative to iterated compression or hash functions is discarding a large part
of the keystream before using the rest as a one-time pad.
6.2.5.4. 6.2.5.4 Ciphertext Feedback (CFB) Encryption Using a Compression Function
Let
denote a one-way function where
. We can use this compression function
to encrypt a sequence of plaintext blocks
of bits each into a sequence of ciphertext blocks of
identical length
using a key
and a known initialization vector
that
should be different for different messages encrypted with the same key.
Encryption goes as follows: for each
,
and
modulo 2 sum (exclusive or). For decryption, we need the same
,
.
In a more general setting, one can use the same compression function
bits each. Let us denote the block length by
of
last
, only the first
bits of
and
and
denotes bitwise
and
to encrypt a sequence of blocks at most
. In this case,
bits should be used and
.
, where
:
and
that is
27
Created by XMLmind XSL-FO Converter.
. Instead
is the concatenation of the
Advanced Cryptography
28
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
29
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
Unlike the stream cipher in Section 6.2.5.3, this method of encryption is self-synchronizing in the sense that a
decryption using the correct key
will result in correctly decrypted blocks after a while, even if decryption
was started in the wrong state.
It is also worth mentioning, that compression functions can be used as keystream generators as well, using either
the so-called output feedback (OFB) or counter (CTR) mode. We will revisit this mode of operation when
discussing implementation details of various cryptographic primitives.
30
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
31
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
32
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
6.3. 6.3 Homomorphic One-Way Functions
6.3.1. 6.3.1 Introduction
A one-way function
is called homomorphic with respect to some algebraic operation
defined on its
domain if it is cheap to compute
from
and
, without knowing the values of
or .
For example, it is conjectured that in certain finite groups exponentiation is a one-way transformation (that is
is a one-way function of , where is a generator element of the group in question); it is homomorphic
with respect to addition modulo the order of , since
.
6.3.2. 6.3.2 Application Notes
33
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
In some applications, such homomorphism of one-way functions can be exploited by attackers, just like any
other algebraic property, as it may yield non-trivial information about the argument of the one-way function,
given the value, which is undesirable in general.
However, homomorphic one-way functions (perhaps, with other special properties) can be used for securing
distributed computing (so that those performing parts of some computational task cannot learn sensitive
information about the whole). Typical uses include voting, payment and other applications in financial
cryptography.
Homomorphic one-way functions are important building blocks of more sophisticated cryptographic primitives,
such as blind signatures.
6.4. 6.4 Block Ciphers
6.4.1. 6.4.1 Introduction
Block
ciphers
are
pairs
of
special
compression
such that
functions
and
and
for any
and
. Thus, block ciphers can be used to encrypt and decrypt blocks of bits using a symmetric
key of bits ( and are called, respectively, block size and key size of the block cipher). To reflect this use,
we often denote
by
and, similarly,
by
and regard a block cipher as a
family of automorphisms.
The algebraic properties of block ciphers (regarded as automorphisms) determine how they can be used. For
general-purpose block ciphers, it is desirable that they do not have any algebraic structure; since there are
possible automorphisms, a block cipher with similar block and key lengths (that implies
) can easily
avoid being closed under composition.
6.4.2. 6.4.2 Attack Models
In this section, some standard models of attacks on block ciphers are discussed. In order for a block cipher to be
considered Pareto complete, it must provide adequate protection in all discussed attack scenarios.
The argument of the encryption function (which is also the value of the decryption function
) is called
plaintext. The argument of the decryption function
as well as the value of the encryption function
is
called ciphertext. Attacks on block ciphers - and other encryption-decryption systems - can be characterized by
34
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
their objectives and required conditions. Achieving any attacker objective listed below implies having done so
with substantially less effort than iterating through the whole keyspace. Otherwise, we are talking about brute
force attacks.
The conditions of the attack differ by what information is available to the attacker and what actions the attacker
can take. These typically depend on the particular setup of the security system in which the encryptiondecryption primitive is used. Usually, when modeling attacks, the following conditions are distinguished: Block
cipher attack models:
• The attacker has access to ciphertext(s), but nothing else.
• The attacker has access to certain ciphertext(s) and corresponding plaintext(s).
• The attacker can choose the plaintext(s) - possibly subject to certain constraints - and obtain the
corresponding ciphertext(s).
• The attacker can choose a ciphertext - again, possibly subject to some constraints - and obtain the
corresponding plaintext(s).
The choosing of plaintexts and ciphertexts may be batch or adaptive. Respectively, batch attacks require that the
attacker does the selection before interacting with the security system, while adaptive attacks allow the choice to
depend on the output of previous operations. For example, an adaptively chosen ciphertext attack (ACCA) goes
as follows:
1. The attacker chooses a certain ciphertext and makes the block cipher decrypt it.
2. The next ciphertext is constructed on the basis of what has been learned from decrypting the previous one.
3. The procedure is repeated until the desired objective is attained.
The most important objectives (a.k.a. adversarial goals) are collected on the following figure:
Attack methods:
• Sometimes also referred to as complete break, when the attacker obtains the key.
• The attacker can decrypt any ciphertext, without having the key.
• The attacker can decrypt some ciphertext other than those corresponding to known plaintexts or those chosen
during the attack (see KPA, CPA and CCA above).
• The attacker cannot decrypt the unknown ciphertext as above, but can determine some specific partial
information about it.
• The attacker can distinguish with a certain level of confidence between valid ciphertexts corresponding to
given sets of plaintexts.
In order for a block cipher to be considered Pareto complete, it must be resistant to distinguishability (the
weakest attacker objective) under adaptively chosen ciphertext attack conditions (the strongest possible).
Related key attacks are also worth mentioning where the attacker has access to corresponding pairs of plaintexts
and ciphertexts, with different albeit related keys, where the relationship between these keys is known. A typical
example would be keys differing in one bit.
6.4.3. 6.4.3 Application Notes
Either direction of the block cipher can be used as a general-purpose compression function, but block ciphers
are typically slower than compression functions without pairs. For example, PGP-compatible encryption
systems use only the encryption direction of the supported block ciphers as a compression function for CFB
encryption; the decryption direction is not used.
35
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
Block ciphers can be used in a number of other ways to encrypt and decrypt streams of data (e.g. ECB, CBC,
etc.), which are outside of the scope of this course. For our purposes, block ciphers will be used to encrypt and
decrypt blocks of data. It is generally safe to encrypt different blocks using the same key, especially if the
number of blocks is insufficient for statistical attacks such as those mentioned before.
6.5. 6.5 Commutative Block Ciphers
6.5.1. 6.5.1 Introduction
A block cipher for which
and
is called
commutative. For a long time, commutative block ciphers were not even considered, as they were deemed
useless. In an undergraduate paper, Ralph Merkle proposed to use commutative ciphers to achieve something
that was thought to be impossible for millennia: to transmit a message over a communication channel that can
be eavesdropped, without a pre-shared secret. In his paper, he notes that using any commutative cipher (such as
one-time pads) won't work; one needs commutative block ciphers (although he didn't call them such). The paper
was rejected on the grounds that commutative block ciphers could not exist, as they would allow for something
clearly impossible.
Thus, public key cryptography was not born until the seminal paper by Diffie and Hellman in 1976 [14]. The
contribution of Merkle was acknowledged in the follow-up patent [15] granted in 1980. Several government
agencies (especially GCHQ in the UK) claim to have invented public key cryptosystems before that, but there is
little evidence of actually using them.
6.5.2. 6.5.2 Application Notes
Merkle proposed to use the following three-way communication for sending a secret message
Bob:
from Alice to
Merkle's scheme:
1. Alice generates a secret key
and sends
to Bob.
2. Bob receives the message, generates a secret key
3. Alice
receives
this
and sends
back to Alice.
message and removes her encryption
. She sends
back to Bob.
4. Bob decrypts the message by applying
:
by
applying
to
it:
.
If the goal is merely to share a secret (which can be later used, for example, to encrypt communication by using
it as a symmetric key), one can use what is known as Diffie-Hellman key agreement (or key exchange) protocol:
Diffie-Hellman key agreement:
1. Alice generates a secret key
and sends
domain of the block cipher called generator.
2. Bob generates a secret key
and sends
to Bob, where
is some public element in the
back to Alice.
3. At this point, both of them can calculate
, which is their shared secret.
Note that in general the so-called Diffie-Hellman problem, which is devising
from
,
and , is not equivalent to reversing , which is only sufficient for solving it. The actual complexity
of the D-H problem is subject of intensive research for different commutative block ciphers. In cryptographic
36
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
proofs, we often use the Diffie-Hellman assumption, which is assuming that the D-H problem is hard for our
choice of commutative block ciphers.
Commutative block ciphers can be used to implement other cryptographic primitives as well and are among the
most popular tools in public key cryptography.
6.6. 6.6 Zero-Knowledge Proofs (ZKP)
6.6.1. 6.6.1 Introduction
This cryptographic primitive lets Alice prove the possession of a secret to Bob without either revealing it to Bob
or allowing Bob to prove Alice's possession of that same secret to a third party; an eavesdropper of their
communication can learn nothing.
The protocol (which can be iterated, if necessary) works as follows:
A simple ZKP protocol:
• Alice commits to her secret by revealing a (special) one-way function thereof.
• Bob challenges Alice to calculate a function of the secret to which she committed and the challenge, which he
is able to calculate from the commitment and something else he knows (but Alice does not).
• Alice responds, by sending the result of the calculation to Bob.
This information is already known by Bob, so he cannot use it to prove anything to a third party.
The direct application of this primitive is authentication without leaving an audit trail. It can also be used to
implement other cryptographic primitives. A well-known example of an authentication scheme based on a ZKP
and a digital signature based on that authentication scheme is described in [31].
6.7. 6.7 Message Authentication Codes (MAC)
6.7.1. 6.7.1 Introduction
Message
authentication
codes
are
"keyed
hash
functions":
one-way
functions
where is the key size and is the size of the MAC. In plain English, the
MAC is calculated from a bit key and a message of arbitrary (finite) length. In some, but not all applications,
collision resistance is a requirement, so Pareto-complete implementations should be collision resistant in
addition to the usual one-way requirement.
It is cheap to compute the MAC of a given finite-length string using a known key, but calculating a valid key
given the corresponding key and MAC, as well as finding a string that produces a given MAC with a given key
is (prohibitively) expensive. Furthermore, it is expensive to forge a MAC of a given message without knowing a
key, with which a large number of messages (even if those are adaptively chosen, but not equal to the target)
with corresponding MACs are available to the attacker.
The strongest security requirement with respect to some MAC function is that of security against existential
forgery, which is, correspondingly, the weakest adversarial goal. Successful existential forgery entails the
creation of a valid message-MAC pair with no constraints on the content or the length of the message by an
attacker that does not possess the secret key. A MAC construction that is secure against existential forgery is
also secure against all other attacks, as all successful attacks against a MAC function allow for existential
forgery.
In the context of information available to the attacker, the weakest adversarial goal is that of existential forgery
with adaptively chosen plaintext; in this case, the attacker can ask the holder of the MAC key to generate valid
37
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
MACs for arbitrary messages and even make the plaintext of these messages dependent on the result of previous
requests. The attack is successful, if the attacker can present a message with a valid MAC that the holder of the
MAC key has not computed. For a Pareto-complete MAC function, even this attack is prohibitively expensive
for all possible attackers with reasonable computational constraints.
The strongest adversarial goal against a MAC function short of complete break (retrieval of the secret key) is
that of universal forgery, when the attacker successfully computes the MAC for any message. In between, there
is a wide range of selective forgery attacks, when the attacker can forge MACs on certain kinds of messages but
not others.
Finally, MAC functions need to have the same properties as one-way hash functions. In fact, a MAC function
with a publicly available key is a secure hash function.
6.7.2. 6.7.2 Application Notes
MACs are typically used as an integrity and authenticity protection measure for plaintext information handed
over to some untrustworthy party for recording, such as a http-cookie, as MAC functions allow for storing a
single secret key (with adequate protection) by the verifier and handing out large numbers of integrity-sensitive
messages to untrustworthy parties. Alternative solutions include storing the hash value (or even the complete
plaintext) of each message, which is obviously more expensive. Thus, MACs are popular components in
authentication and authorization tokens.
Encrypted information is also often protected by MACs, though it must be noted that essentially the same
security goals can be achieved by including a MDC (modification detection code, typically a hash appended to
the plaintext message before encryption) with the message, which is somewhat cheaper than a MAC in most
cases.
Depending on whether the integrity-sensitive messages are generated by some untrustworthy source or the
holder of the MAC key, collision resistance, respectively, may or may not be required of the MAC function.
In the design and evaluation of security systems relying on MACs, it is common to treat the MAC function as a
random oracle with the message plaintext and the MAC key on its input. If the used MAC function is secure
against existential forgery with adaptively chosen plaintext, this random oracle assumption may be justified in
formal proofs of security.
6.8. 6.8 Digital Signatures
6.8.1. 6.8.1 Introduction
As a concept, the digital signature was first introduced in [14] in 1976. The first construction for obtaining
digital signatures was published two years later, in [29]. In short, it is the public key variant of MAC, where the
integrity of the message can be verified using a public key. It is important to note that before the above
mentioned publications, the two terms ("digital signature" and "MAC") had been used synonymously in
cryptographic literature. It still happens occasionally, especially in texts aimed at non-specialists.
The most important property of digital signatures in addition to those of MACs is non-repudiation, which means
that a digital signature constitutes strong evidence that it has been calculated using the private key
corresponding to the public key with which it verifies correctly, thus authenticating both the signed document
and the signer. Much has been written about the essential differences between this technical use of nonrepudiation and the legal term (see [26] for a detailed explanation). Yet, this - perhaps unfortunate - coincidence
in legal and technical terminology is still causing widespread confusion, which is reflected in some particularly
unhelpful legislation in many jurisdictions.
6.8.2. 6.8.2 Application Notes
38
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
From a security engineering point of view, a digital signature is a mere authenticity and integrity protection
measure, which is verifiable by parties that cannot be trusted with providing authentication.
Digital signatures can be used for authenticating both communication and stored data. Thus, they are
particularly useful for providing authentic transcripts of communication sessions or parts thereof.
6.9. 6.9 RSA Cryptographic Primitive
6.9.1. 6.9.1 Introduction
This cryptographic primitive, first proposed in 1978 [29], was the first one to achieve a complete public key
cryptosystem envisioned in [14], useful both for public-key encryption and digital signatures. The underlying
hard problem is that of factoring composite numbers with large prime factors. Strictly speaking, it has not been
proven to be necessary for breaking RSA, but it is obviously sufficient as we shall see.
The primitive consists of a private and a public transformation that are inverses of one another (see Section 6.9.3
for more details). For encryption, one performs the public operation, so that only the owner of the private key
can calculate the original message by performing the private operation. For a digital signature, one calculates the
private operation so that everyone (in possession of the public key) can verify it.
The two operations are modular exponentiations with a modulus which is a product of at least two large
distinct primes (denoted, henceforth, by
), where the exponents
and
(public and private,
respectively) satisfy
(note, furthermore, that and must be relatively prime with
). Clearly,
. Because of Euler's theorem (see the mathematical supplement), for
any
and such that
we have
This statement is known as RSA Fundamental Theorem. Finding
given
and
is known as RSA Problem.
The precise description of the RSA scheme is the following: The RSA encryption scheme:
• Bob chooses two large enough random primes
and computes
such that
secret key is
• Alice wants to encrypt a message
and
by knowing
, computes
chooses a random element
The public key is
and the
Then she computes and sends the ciphertext
• Bob computes
6.9.2. 6.9.2 On the Difficulty of the RSA Problem
For moduli with two prime factors, it is not difficult to see that factorization, computing
and solving the RSA
Problem are equivalent. In the general case, one can prove that factorization implies , which, in turn, implies
solving the RSA Problem, but it is conjectured that the RSA Problem is no easier than factoring the modulus.
Hence, in this section we shall focus on what is known about the difficulty of factoring the modulus.
The computational effort required for most straightforward algorithms (including the brute force approach) used
for finding non-trivial divisors depends on the magnitude of the smallest prime factor. Thus, given the
39
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
magnitude of the product, the greatest cost on attackers utilizing such algorithms is incurred with two prime
factors in the same order of magnitude.
6.9.3. 6.9.3 Mathematical Supplement
• Let
and
denote two integers that are relative primes. Then
The theorem is a generalization of Fermat's Little Theorem: For any integer
and prime
In their original paper, the authors used this less general theorem to prove the correctness of RSA, but Euler's
theorem provides for a more straightforward proof.
6.10. 6.10 Goldwasser-Micali encryption
6.10.1. 6.10.1 Introduction
In the following, we review a public key system which is not so widely used than RSA and Diffie-Hellman
based encryptions. The security of the system proposed by Goldwasser and Micali [20] based on the
intractability of the quadratic residuosity problem. This problem comes from computational number theory and
is related to the hardness of factoring. This scheme was the first probabilistic scheme proven to be CPA-secure
under some well-studied cryptographic hardness assumption. The main drawback of the system is its
inefficiency: the encryption of a single bit has to be a few hundred bit long, hence the scheme is not often used
in practical applications. Furthermore, the scheme has homomorphic property, in the sense that encryption of the
sum of two messages is the product of the ciphertexts respective to the two single messages.
6.10.2. 6.10.2 Mathematical Supplement
For a given group
a group-element is said to be quadratic residue if there exist
such that
which is called a square root of furthermore, an element of the group which is not a quadratic residue is
called quadratic non-residue.
First we consider the simple case of
for an odd prime
i.e. the multiplicative group of a prime field.
In this particular case is the quadratic residue if there exists an with
As we will see, the
quadratic residuosity problem is not hard in this group.
It is easy to show that every quadratic residue in
has exactly two square roots, claiming that the half of the
elements of the group is a quadratic (non-)residue. Hence if one chooses a random element of
, then it is a
quadratic residue with probability 1/2. The main tool is the following number-theoretical function:
6.1. Definition Let
be a prime. The Jacobi symbol of
modulo
is
Let us note, that the multiplicative group of a field is cyclic, in other words there exist
such that
We get the quadratic residues by squaring the group elements, which means in this
40
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
representation that they are exactly the elements of the subgroup
(note that in every commutative
group, the set of quadratic residues is a subgroup). Using this simple argument one can prove the following:
6.2. Lemma Let
be a prime. Then
Now it is easy to check the quadratic residuosity of an arbitrary group element
modulo a prime: calculate
if it is 1, then it is a residue and otherwise it is not. Before we continue to search for other groups,
let us recall one simple and useful property of the Jacobi symbol: the multiplicativity (this means that for every
). As a consequence of Lemma 6.2 and the multiplicative property one can
see, that product of two (non-)residues is residue as well, while the product of a residue and a non-residue is
non-residue.
The next step is the characterization of the quadratic residues modulo a composite, especially in the simplest
case: modulo a product of two primes. We will see, that this problem is intractable if the prime factors are not
known. From now on let
primes and let
Our goal is to characterize the quadratic residues in
the group
In addition to the results of the previous paragraphs the Chinese Remainder Theorem is the main
helpful tool. Here we recall a related simple version of this universal theorem.
6.3. Theorem Let
be odd primes and
Then
Let us recall that this theorem guarantees one-to-one correspondence between the elements of
(denoted by
) on a very natural way, namely
and
reduce the problem to two instances of quadratic residuosity modulo prime.
6.4. Lemma Let
residue modulo
iff
be odd primes,
and
is a quadratic residue modulo
and
and
Now we can
with
Then
is a quadratic
is a quadratic residue modulo
We left the proof as an exercise. An other important consequence of this result is the simple fact that every
quadratic residue
has exactly four square roots. Indeed, from Lemma 6.4 we have that there exist
with
Then the elements corresponding to
are
square roots of and according to the Chinese Remainder Theorem they are not equal to each other. This
means that exactly 1/4 of the elements are quadratic residues modulo
Similarly to the prime case we can
introduce the Jacobi symbol for the elements of this group. This number theory function was the basic tool in
the prime case, see Lemma 6.2.
6.5. Definition Let
be two primes and
. The Jacobi symbol of
modulo
is
From Lemma 6.4 follows that if is a quadratic residue mod
, then
. However, the other
direction is not true, namely when none of
and
is quadratic non-residue mod and , respectively, then
but is not a quadratic residue mod . The Goldwasser-Micali encryption uses this interesting
observation. Before the exact formulation we need some notations. Let
denote the set of quadratic
residues,
i.e.
,
and
called pseudo-residues modulo . Let us note, that deciding
whether a given element
is quadratic residue is easy if the prime factors
are given. If the
factorization of
is not known, then one can compute the Jacobi symbol of (not so trivially than in the
prime case, but it is possible in polynomial time). If
then is a quadratic non-residue, but
otherwise there is no known polynomial algorithm which gives the correct answer. We say that the quadratic
residuosity problem is hard, if it is not possible to distinguish quadratic residues and pseudo-residues modulo a
composite. In other words, we have a group element with Jacobi symbol +1, then if we want to decide (in
poly time) whether
or
then the best what we can do is a random guess. The security of
the Goldwasser-Micali encryption based on the (assumed) hardness of this number theory problem, which is
clearly at least as hard as the factorization of integers.
41
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
6.10.3. 6.10.3 Application Notes
The Goldwasser-Micali scheme is an asymmetric encryption scheme, where two large enough prime numbers
and form the secret key and the public key is its product
(i.e. the modulus). Alice can encrypt her
message bitwise: for the encryption of a 0 bit, the sender chooses a random quadratic residue modulo
and for
the encryption of a 1 bit, Alice chooses a random pseudo-residue modulo . Bob can decrypt the ciphertext
easily by knowing the factorization of
. One can prove that if the quadratic residuosity problem is hard
modulo
then this encryption scheme is CPA secure.
Now, Alice faces two problems: how to choose random elements from the sets
and
The first
problem can be addressed easily: if Alice chooses a random
, then one can show that
is a random quadratic residue. Choosing a random pseudo-residue seems to be more complicated. Especially
there is no known algorithm for that purpose without the knowledge of the factorization of the modulus.
Fortunately a little trick works, namely Bob can help by adding some extra information to the public key. In
fact, he can choose a random element
by knowing and and add this to the public key. Let us
note that a randomly chosen pseudo-residue reveals nothing about the secret key. Now with this little push,
Alice can choose a random element from
: she chooses a random
and computes
which can be proven a random pseudo-residue (see Exercises.)
After the informal description of the scheme we are ready for the precise presentation:
The Goldwasser-Micali encryption scheme:
• Bob chooses two large enough random primes and , computes
The public key is
and the secret key is
• Alice wants to encrypt a message
and sends the ciphertext
• Bob can decide whether the ciphertext
then he decrypt to 0, otherwise to 1.
by knowing
and chooses a random element
Then she chooses a random element
is quadratic residue using the primes in the secret key
If it is,
6.11. 6.11 Rabin encryption
6.11.1. 6.11.1 Introduction
The following asymmetric cryptosystem was introduced in 1979 by Rabin [27]. The system based on the
possible intractability of computing square roots modulo a composite number with unknown factorization. For
the first sight the system is very similar to RSA but the Rabin encryption has many attractive advantages. The
most important property is that the underlying mathematical problem is proven to be exactly as hard as
factoring. Let us recall, that the similar result is not known for RSA yet. We will continue the comparison of
these two cryptosystems below in detail.
6.11.2. 6.11.2 Mathematical Supplement
In this algorithm Alice encrypts her message by taking its square modulo
, hence any party can decrypt
a ciphertext by computing a square root modulo
By analogy of the Goldwasser-Micali scheme, we will
show that it is easy modulo a prime number. To see this, we first assume that is a prime in the form of
for some
The case
can be handle as well in a bit complicated way, but here we
omit the details of this case, because in practice both prime factors of
is congruent 3 modulo 4.
42
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
Remember, that every quadratic residue modulo a prime has two square roots. Now our aim is to find one of the
square
roots
of
a
given
modulo
From
If we multiply this equality by
This yields that
Lemma
6.2
we
know
that
then we get
is one of the square roots of
Now we can turn our attention to the next step, i.e. modulo the product of two prime numbers. Let
primes and let
It is easy to see, that computing a square root of
modulo
is simple if the
factors of
are known. Really, suppose that
is a quadratic residue and consider its correspondence
given by the Chinese Remainder Theorem. Now based on the previous paragraph we can
compute the a square root
and
of
and
modulo
and
respectively. The element
corresponds to
is clearly a square root of
The other three square roots can be calculated easily form
this one. On the other hand, if the actors and are not known, then the same problem is believed to be hard.
More precisely, we say that computing a square root modulo
is hard, if there Doesn't exists any polynomial
algorithm which computes the square root of a given quadratic residue with non-negligible probability. Clearly,
when computing a square root modulo
is hard then factoring
is hard as well. However the other direction
is true, claiming that the factoring and computing square roots are equivalent from the complexity point of view:
6.6. Theorem Let
be two primes with
modulo
is hard iff factoring
is hard.
and
. Then computing square roots
6.11.3. 6.11.3 Application Notes
The following section suggests an encryption scheme where the encryption is a simple squaring. As a first step
the receiver generates the keys: he chooses two distinct large primes and with
form the
secret key and computes
, i.e. the public key. If a party wants to send a message to the receiver, he
computes the square of the message modulo
Now the receiver is able to decrypt the ciphertext, i.e. can
calculate its square root with the help of and but any adversary is able to do that iff she can factorize
Before the discussion, we present the so-called textbook Rabin scheme more precisely:
The textbook Rabin encryption scheme:
• Bob chooses two large enough random primes and
The public key is
and the secret key is
• Alice wants to encrypt a message
the ciphertext
with
and computes
by knowing
• Bob can compute the square roots of
with the help of
and
Then she calculates and sends
One of them is the original message
For the first sight one can think that Rabin is a variation of RSA by the choice
. This is not the case since
as a part of the public key in RSA has to be fulfill that
hence is necessarily odd. One
significant drawback is that the scheme is not correct, which means that the decryption of a ciphertext is not
necessarily the respective plaintext. This deficiency comes from the fact that squaring modulo the product of
two primes is a four-to-one function. Furthermore, this textbook version is deterministic, hence it cannot be
CPA-secure (note that the same is true for the above presented "textbook" RSA).
However, it is possible to modify the process to get a single square root only by adding some redundancy to the
message. Especially, by this choice of parameters only one of the square roots is a quadratic residue , suggesting
to be the message space. This means that because of the equivalence theorem 6.6 it is possible to give a
family of trapdoor permutations based on the hardness of factoring. Contrary to the above textbook version, the
following version of Rabin encryption scheme is proven to be CPA secure supposing that the factoring is hard.
Let
denote the least significant bit of
43
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
The Rabin encryption scheme:
• Bob chooses two large enough random primes and
The public key is
and the secret key is
• Alice wants to encrypt a message
and sends the ciphertext
• Bob can compute the unique square root
then he finishes the decryption by
with
by knowing
where
of
from the set
and computes
Then she chooses a random element
and
with the help of the prime factors of
6.11.4. 6.11.4 Comparison with the RSA encryption scheme
As we noted above, the Rabin and RSA schemes have a number of similarities, as we will see, from almost
every aspect the Rabin is at least as good as RSA (surprisingly the later one is still more widely used).
From theoretical point of view, the security of the Rabin scheme is based on hardness of computing which is
equivalent with the hardness of factoring. However, the same is not yet proven for RSA, hence the Rabin
scheme based on a (momentary) weaker assumption (i.e. if someone were able to break the RSA, then the
factoring problem could remain hard).
From practical point of view, basically both methods are as efficient as the other one. For the benefit of RSA the
trapdoor
permutation
acting
on
the
whole
group
44
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
in
contrast with the permutation in the Rabin scheme. On the other hand, Rabin encryption is more efficient since a
simple squaring is faster that computing th powers.
6.12. 6.12 Lattices and Cryptography
Lattices play an important role in modern cryptography, used both as an effective coding and code breaking
tool. The goal of this chapter is to present these applications. We start with some basic definitions about lattices,
followed by the famous LLL algorithm and then applications in cryptography.
6.12.1. 6.12.1 Lattices
45
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
We say that a subset
of
is a lattice if there is a basis of
,
for which
. In the special case when
, the generated lattice is called an integer
lattice. We say that
is the basis of the lattice . The basis is not unique, e.g.
and
generate the same lattice. The volume (or determinant of
is the determinant of the matrix
formed by any of its bases,
. (In the previous example .) This number does not depend on the
basis and the name comes from the fact that
equals the volume of its base parallelepiped, e.g. the
parallelepiped whose vertices are
. (If the basis is
, then this
parallelepiped is the
square.)
An important property of a lattice is the length of its shortest nonzero vector, denoted by
there is no trivial algorithm that computes
given a basis of
. In fact it is
randomized reductions) to compute it. However, we can compute an approximation for
simple observation that
with Minkowsky's theorem that gives
. Note that
-hard (under
combining the
.
The ratio
is called the orthogonality defect of the basis. This ratio plays an important role in the LLL
algorithm that outputs an approximate solution to the shortest vector problem (SVP) and even gives a basis that
is short in some sense, e.g. it has a small orthogonality defect.
46
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
6.12.2. 6.12.2 LLL
Here we suppose that our lattice is an integer lattice, given by a basis, although most observations would
generalize, e.g. for rational lattices. The most famous lattice algorithm is the Lovász-Lenstra-Lenstra (LLL)
lattice reduction algorithm [23]. The algorithm is easy to understand, so here we sketch its main steps and the
properties of its output.
Recall that the Gram-Schmidt orthogonalization of a basis
is
orthogonal vectors,
,
where
and for
we obtain
from
by taking its part that is orthogonal to the plane generated
by
for
. In more algorithmic terms, if
compared to the length of
and
(the length of the projection of
), then
. The smaller
, e.g. if their length is the same, then
notice that if
is large compared to
not guarantee a large angle.
is, the smaller is the angle between
if and only if the angle is at least
, then we cannot
to
. However,
is always small, so its (absolute) smallness does
The LLL algorithm keeps on transforming the basis and reducing these
coefficients while maintaining that
is not large compared to . This way it achieves that the vectors of the basis will become pairwise almost
perpendicular and thus the orthogonality defect will be also small. At the beginning let
be fixed. For
if
let
, where
, the closest integer to
. This way
becomes close to perpendicular to the subspace generated by the smaller index vectors. To guarantee that the
smaller index terms would not be much larger than , we do the following. We compare the lengths of the parts
of
and
that are perpendicular to the subspace generated by
. For
this is simply
,
but for
the formula is a little more complicated, it is
the smaller index vectors are not much shorter than
, we can increase
. Now if
, then
by one. Here
is almost arbitrary, it
could be any number between and . Otherwise if
, then we simply swap
and
. In
this case we have to decrease by one, as we have to recompute the
values. However, this latter step
cannot happen too many times, as
integer number.
decreased to less than
of its previous value and it is an
We mention a few properties of the reduction that follow inductively from the proof.
•
if
•
if
47
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
•
•
•
•
, where
vectors, so e.g.
is the smallest possible value of the largest length of
.
independent lattice
Using this algorithm, one can also efficiently find an approximate solution to the closest vector problem (CVP),
where the input is a lattice
and a vector
, and the problem is to find the closest lattice vector to ,
so
. This problem is also
-hard in general, for details see Babai [5].
6.12.3. 6.12.3 Application of lattices in cryptography
The first fully homomorphic encryption scheme (see Section 6.3) is based on lattices, see Craig Gentry [18].
This we will not cover here but instead focus on a classic example that can be broken using the theory of
lattices.
6.12.3.1. Knapsack cryptosystem
These systems are based on the
-hard knapsack problem, where we are given a collection of items each of
which has a size and value and our goal is to put as much value as possible into a knapsack of given size. More
precisely, we use the special case (also
-hard) when for each item its size equals its value, known as the
subset sum problem. The decision version of this problem is to decide for an input
whether there
is a subset
for which
.
The basic idea of the knapsack cryptosystem of Merkle and Hellman is that the subset sum problem is easy to
solve if
but from any such input we can make a hard one if we transform our input into a
different ring. Taking a
and a
coprime to
, we can ask for a solution
of
. While this problem looks hard for someone who does not know and the 's, we
can solve it by multiplying the equation by
. The message to be encrypted can be (an bit
sequence). Prior communication of and the 's over a secure channel is needed.
This system (and all similar ones) are broken by now. The main idea is the following. Suppose we have to find
such that
. First we solve a relaxed equation, i.e. we find
such that
48
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
. Since
, to determine the
we need to find a vector of the
dimensional lattice generated by the solutions of the equation
. The distance of this vector is
exactly
to the vector whose -th coordinate is
and no vector from the lattice can be closer to it.
(In fact all vectors this close to it give a solution to the knapsack.) Now we can apply Babai's CVP algorithm
which finds an approximate solution but in most cases can be modified to find the solution in polynomial time.
The first such algorithm is due to Shamir [30].
6.12.3.2. NTRU
The acronym stands for
-th degree Truncated polynomial Ring Units which is the basis of this system,
invented in 1996 (see [21]). We will work in the ring
where
are coprimes - typically
and
and make computations
and
. Our private keys will be polynomials
from this ring with many zero coefficients. More precisely, let
coefficients are
and
are
while the rest are zeros. Then we select a random
such that
is invertible in the ring (even
and
) where
fixed parameters. (Note that any polynomial from
is selected in an asymmetric way.)
multiplied by
such that
and
are some
equals zero, that is why
The public key is
and the message to be encrypted is converted into a polynomial
from
our ring whose coefficients are from
to
. The encryption of the message
is
where
, chosen uniformly at random for every
with some fixed
parameter
. To decrypt use that from
we can get back
(without the
) because is big compared to the other parameters. Now we can take
to
get
and multiply this by the inverse of
to get back
.
This
system
is
still
not
broken. The best known attacks use that in
the shortest vector is probably
and apply LLL.
the
lattice
6.13. 6.13 Digital Signatures Based on Discrete Logarithms
"The shih is like drawing the crossbow the node is like pulling the trigger." - Sun Tzu: Ping Fa ("The Art of
War", Denma Translation)
6.13.1. 6.13.1 Overview
Digital signatures based on the difficulty of calculating the discrete logarithm in some finite cyclic group
of
order are constructed from zero-knowledge proofs of discrete logarithms in . What makes such schemes
possible is the (additive) homomorphic and one-way properties of exponentiation (see Section 6.3). The basic
idea is to take three values, - the private key of the signer,
- a message representative (typically the hash
value of the actual message) and - a random value, and subsequently prove, using one-way images, the ability
to solve a (modular) linear equation involving ,
and of which only
is public.
All such algorithms for signing an arbitrary message
involve picking some random integer
,
committing to by calculating the
element in
(following the multiplicative group notation we write
, where is a generator element in ) and then using
to form a challenge and, finally, calculating the
zero-knowledge proof of knowing the discrete logarithm
(the private key) of some
(the
public key). The verification requires
- the public key of the signer,
, and the challenge. The latter
two constitute the digital signature of
by the entity with the public key . The authenticity of needs to be
established separately.
49
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
In all such signature schemes, the disclosure of corresponding to a particular signature leads to the disclosure
of the private key used for calculating that signature; the unique solution of the linear equation used for the
signature. Similarly, the signature of two different messages using the same value of
also causes the
disclosure of the private key. Thus, must be a collision-free random value (i.e. at least twice the size of a
symmetric key). It is important to emphasize that the randomness of is the Achilles heel of such signature
schemes, and therefore a typical target of attacks.
6.13.2. 6.13.2 On the Difficulty of the Discrete Logarithm Problem
It is necessary, albeit not sufficient, for the difficulty of discrete logarithms that the order of
have at least
one large prime factor, to thwart attacks by exhaustive search of the discrete logarithms modulo all prime factors
of and then using the Chinese Remainder Theorem to calculate the discrete logarithm in
. To prevent
existential forgery with adaptively chosen plaintext,
should be large enough not only to prevent full
enumeration but to provide collision resistance as well. Thus, it should be at least the size of a collision-free
hash function (or twice the size of a symmetric key).
The computational cost of computing discrete logarithms in
depends not only on the order of
but also on
its representation. Traditionally, the multiplicative groups of
and
or subgroups
thereof have been used, where is a large prime and
is a large power of 2. It has to be noted, however, that
using
is usually a pareto-improvement over
, because due to the ease of
computations with the latter on binary computers, equivalent strength can be achieved with longer numbers, thus
increasing the RAM costs. The only advantage of
is the reduced ROM cost for firmware
implementations on low-end microcontrollers. With today's technology, it is hardly relevant.
With this choice, the difficulty of the discrete logarithm problem requires further considerations in addition to
those regarding the largest prime factor of the order of . Namely, the value of (or
) should be large
enough to thwart the calculation of discrete logarithms using advanced sieve methods (a.k.a. index calculus).
The required size is the same as that of the modulus of RSA for equivalent strength against such attacks. Given
the size of , the value of the largest prime factor of is greatest, if is a Sophie-Germain prime, that is
is a prime as well. In this case, with a choice of such that
, the order of is
divisible by . However, similarly to the case of choosing the modulus of RSA to be the product of two equally
large primes, the security of such a choice of
is not balanced against attacks depending on the size of and
those depending on the largest prime factor of , incurring unnecessary costs in calculations in
.
To balance the security of
against these two kinds of attack, is typically chosen to be a prime of the size of
a collision-free hash function, is chosen to be a large enough prime such that
and is any integer
such that
and
. The cryptographic use of such groups has been proposed by
Claus-Peter Schnorr [31], hence they are often referred to as Schnorr-group.
Another, increasingly popular choice for
is the additive group over the points of non-singular elliptic curves
over some finite field (typically
or
). There are no known attacks that are better
than enumeration modulo the prime factors of , thus the representation of the elements of the group (two
coordinates in the finite field of choice) can be much shorter than in the traditional case, thus decreasing the
costs of calculations in . Note, however, that most research regarding elliptic curves from this perspective is
relatively recent, and there are no theoretical reasons to believe that more efficient methods for finding discrete
logarithms in such groups will not be developed in the future. Thus, the conservative choice is to resort to
elliptic curves only if the computational constraints of the chosen platform and the security requirements of the
application cannot be met using other means.
6.13.3. 6.13.3 Possible Signature Equations
The following is a fairly general form of signature and verification equations. Most digital signature schemes
based on the difficulty of the discrete logarithm problem (with the notable exception of Schnorr's scheme [31])
are special cases thereof.
50
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
The general form of the signature equation is
the one-way images:
Parameters
,
,
. The verification is performed in
, where the verifier knows
and
but not
and
, using
.
denote values from any row of the following table in any order:
The actual digital signature is the pair
. One possibility is to set
Alternatively, one can set
,
and
.
. In this case, the signature equations remain as above.
The verification equation becomes
.
, where
and
If message reconstruction is required, like in the case of RSA signatures where anyone can obtain
digital signature itself, then set
signature equation.
(or
) and set
from the
in the
6.13.4. 6.13.4 Case studies
6.13.4.1. 6.13.4.1 ElGamal
Historically, ElGamal's signature scheme [16] was the first such construction. The underlying linear equation is
. This corresponds to the first row of the table with
,
and
.
The ElGamal digital signature scheme:
•
,
•
Observe that the two most expensive calculations in the signature, namely the exponentiation
and the
modular inverse
can be computed independently of
in advance. The message-dependent calculations in
the signature are multiplications and additions in
, which are substantially faster. In particular, these
calculations are much faster than performing the RSA operation. This property is desirable for systems with
limited computational resources; most subsequent digital signature schemes based on discrete logarithms
inherited this advantage of ElGamal's digital signature.
However, this construction also has some disadvantages, when compared with RSA. With equal public key sizes
(which are believed to correspond to equivalent strength), the length of the ElGamal signature exceeds that of
RSA. Secondly, it is not possible to recover the message representative from the signature.
6.13.4.2. 6.13.4.2 Schnorr
In the equations of Figure 6.13.4.2,
denotes a general collision-resistant one-way function with range in
.
The message representative
can be (and indeed usually is) the plaintext of the message itself, not its hash
value. Operation
denotes concatenation.
The Schnorr digital signature scheme
51
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
•
,
•
, where
, where
This scheme, proposed by Claus-Peter Schnorr [31] for the purpose of further reducing the computational costs
is particularly useful for RFID applications. It is not a special case of the general scheme described in Section
6.13.3, but it is closely related to equation
also corresponding to the first row of the table with
,
and
.
Note that the signature is just twice the size of a collision-resistant hash function, which is a substantial
improvement over ElGamal signature and over RSA as well. Furthermore, there is no modular inverse
calculation on a per-signature basis, which makes it less expensive than ElGamal's algorithm. Schnorr's
algorithm also has the property that no expensive calculations (i.e. modular exponentiation) depend on the actual
message to be signed and thus can be performed in advance during idle time.
6.13.4.3. 6.13.4.3 p-NEW
The p-NEW digital signature scheme
•
,
•
6.13.4.4. 6.13.4.4 DSA
The DSA digital signature scheme:
•
,
•
, where
and
6.13.4.5. 6.13.4.5 GOST R34.10-94
The GOST R34.10-94 digital signature scheme:
•
•
,
, were
,
and
6.14. 6.14 Secure Multiparty Computation
In his pioneering work Yao [32] presented the following simple version of a multiparty computation problem,
called millionaires' problem. In this problem two millionaires, Bob and Jockey are willing to decide which of
them is richer, but both of them wants to reveal nothing about its own amount of wealth to the other. If we mean
the term "nothing" in a very strict mean then the problem cannot be solved, hence at the end of the protocol both
parties have a bound on the other's wealth (i.e. his own). But if we disclose this one possibility, then the problem
can be solved.
This problem can be rephrased in a more general context, where there is a finite amount of participants having a
private input data and a public multivariate function. The main problem in secure multiparty computation is the
evaluation of this function by the participants at their own private input such that the inputs remain in secret.
More precisely the problem is the following:
52
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
6.14.1. Problem (Secure Multiparty Computation) Let
be the number of participants
be
a function with
variables and every participant
has a private secret input
. Then the parties
communicate each other. The goal is that after this communication every participant
will be able to calculate
such that the following requirements holds:
• every
calculate the same good value
• every
calculate
• every 's knowledge about the other participant's inputs is what he can calculate from his own input and the
common output.
From the users attitude point of view the simplest case is if we suppose that every participant are honest,
meaning that they always follow the steps of the protocol and compute/send nothing more. The other extreme is
the malicious participant who follows the desired steps only if she will (possibly never) except the interruption
of the communication. This case can be handled sometimes at the cost of inefficiency, so in practical
applications we suppose a slightly weaker adversary model. This is called semi-honest participants, meaning a
kindly-but-interested party who sends and calculates what the protocol desires but makes some additional
computation on the received data. From now on, we suppose that every participant is semi-honest.
Note that one possible solution of this problem is the use of a Trusted Third Party (or TTP shortly), when the
parties send their input to a central server which send back to every participant the common value only after
taking all inputs, instead of using a pairwise secret communication channel between them. However, from both
theoretical and practical point of view this is not desirable in many applications. The first general solution which
eliminates the use of TTPs can be found in the fundamental paper of Goldreich, Micali and Widgerson [19] is
far from applicable in general real-life scenarios but there are implementations of reasonable running-time in
several important applications, like distributed voting, secure auctions or private information retrieval (in this
last problem a user is able to retrieve an item from a server in possession of a database without revealing which
item is retrieved).
First we discuss a simple 2-party communication protocol, called oblivious transfer, which is a main building
block in secure multiparty computation schemes and second a further important multiparty computation
primitive called secret sharing. An interested reader can find a more detailed description of this topic in the
overview of Cramer [13].
6.14.1. 6.14.1 Oblivious transfer
Informally in a general oblivious transfer (abbreviated by OT) there are two communicating parties: the sender
Alice has some set of secret information and a receiver Bob who wants to know a subset of these secrets. There
are two main security requirements an OT protocol has to satisfy at the end of the communication:
1. Bob knows the secrets related to his selection, but he knows nothing about the remaining secrets;
2. Alice knows nothing about the selection of Bob
Oblivious transfer was first introduced by Rabin [28], this version is called Rabin-OT. Within this framework
the sender Alice has a secret bit . The goal is that, after some messages between the parties Bob gets the bit
with probability 1/2, otherwise he gets a symbol and Alice has no knowledge which possibility occurred.
Later Even, Goldreich and Lempel [17] the so-called 1-out-of-2 oblivious transfer or
OT: Alice has two
secret bit
and Bob has a selection bit . At the end of the protocol Bob gets
but he has no knowledge
about
and Alice has no knowledge about
It can be proven that these two versions are equivalent in the sense that both given problem can be simulated by
the other one. One of the reductions preserves unconditional security but if a Rabin-OT is given as a subroutine,
then the constructed
OT will be computational secure only. There are further generalizations of the
53
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
problem, like
size , etc.
OT when Alice has secret bits
and Bob chooses a subset of
of
6.14.1.1. 6.14.1.1 Construction for Rabin-OT
We suggest the reader to refresh the theoretical knowledge behind the Rabin encryption scheme in 6.11. Briefly,
we use the following tools:
•
primes,
• squaring modulo
is a 4-to-1 function
• supposing that factoring is hard it is hard to compute a square root of a quadratic residue mod
• if the factors of
are known, then a square root of a quadratic residue can be computed
• if an attacker knows two square roots and of a quadratic residue such that they do not differ by a sign
then she can factorize
(It is easy to see, hence
yields
. On the
other hand
yields
which is possible only if e.g.
and
Now the only thing the attacker needs is to compute
(or
) in order to get a prime
factor of
)
Furthermore we suppose (but doesn't prove) the existence of a one-way function
which computes a one-way encoding of a bit such that given the factors of
the function can be inverted
(i.e.
is a trapdoor one-way function). As the first step of the protocol Alice chooses the
underlying parameters and a random bit
and send to Bob the modulus
and
Bob
chooses a random element modulo
and send to Alice its square, who can compute a square root of this
element with the help of the factors of
and send back to Bob this square root. Then with probability 1/2 Bob
gets back the same element or its additive inverse he chosen form
hence he can factorize
which allows
him to compute from its one-way image and otherwise he cannot conclude nothing. The protocol fulfills the
desired security requirements if the factoring is hard.
A construction for Rabin-OT:
1. Alice chooses
large primes, a bit
to Bob
computes
2. Bob chooses a random element
and computes
3. Alice computes
with the help of
with
4. Bob compares the square roots: if
and sends
and sends
then he computes
6.14.1.2. 6.14.1.2 Construction for
and sends
to Alice
to Bob
and
, else he gets
OT
The proposed algorithm given by Even, Goldreich and Lempel [17] based on the RSA system, especially on the
result that the least significant bit of a randomly chosen plaintext is a hardcore-bit for the RSA encryption. This
means that guessing the last bit of a random message form the ciphertext with probability significantly better
than 1/2 is as hard as guessing the whole plaintext. Here we omit the informal description of the protocol.
A construction for
1. Alice chooses
computes
OT:
large primes, an
and a with
relative prime to
and sends
54
Created by XMLmind XSL-FO Converter.
and two bits
to Bob
Next she
Advanced Cryptography
2. Bob has a selection bit
random element
string)
and he chooses a random element
sends to Alice the ordered pair
3. Alice computes the plaintexts
related to
bits masked by its least significant bits, i.e.
4. since
and computes
and a
(i.e. an RSA ciphertext and a random
with the help of
and
and sends to Bob the secret
then Bob can compute
It is easy to see, that Bob has no knowledge about the other bit of Alice and she knows nothing about the
selection bit of Bob, hence the system fulfills privacy.
6.14.1.3. 6.14.1.3 Application notes
A simple application is the so-called match-making when Alice and Bob has secret bits
and they want to compute
secret bits
OT can be formulate as
and
, respectively
such that the requirements of 6.14.1 hold. To this end they run a
of Alice and selection bit
which is
OT with
of Bob. Note that the result
of the every
in this particular case. At last, Bob sends the value
to Alice. It is an easy exercise to check whether this protocol is correct, fair and secure if the
protocol exists and both parties are semi-honest.
OT
In the above example we have seen that the logical AND function can be obviously evaluated supposing the
existence of a
OT protocol. The next question can be, which further families of functions can be
obviously evaluated. It was proven that the
OT is the bottleneck of this question: every function with
finite domain and range can be obviously evaluated if a
OT protocol exists. The proof of this deep and
general result is beyond the scope of our notes, hence we omit it.
6.14.2. 6.14.2 Secret sharing
After the description of the main tools of secure two-party communication we continue with the general case of
participants. The most important related cryptographic primitive is secret sharing. Suppose that there are
participants and an extra party called dealer and a secret information known only by the dealer. In the
first distribution phase of the protocol the dealer distributes some data related to the secret, called shares
between the participants on a private authenticated channel. After that the dealer doesn't participate in the
communication. The goal of the protocol is to find such a distribution process that only some pre-defined
coalitions of the participants were able to recover the secret from its shares after a few rounds of
communication, called reconstruction phase. In general, these coalitions, the so-called qualified subsets can
form an arbitrary upward closed set system, mean that every superset of a qualified subset is qualified as well.
Let us mention, that we discuss the case of perfect schemes where the unqualified subsets collectively yield no
extra information only, the general case of ramp schemes - where some coalitions have some partial knowledge
of the secret - is beyond the scope of this work. Here we present the simplest version of the problem, called
perfect -threshold schemes when every subset of cardinality at least is qualified. This version was first
introduced independently by Blakley [11] and Shamir [30] in 1979.
6.14.2.1. 6.14.2.1 Shamir secret sharing scheme
Suppose that there are
participants
and the goal is to construct a -threshold secret sharing
scheme (for arbitrary
). The idea is that every polynomial of degree
can be exactly
determined by distinct value but from less values it is not possible. Especially, the dealer chooses a random
polynomial
of degree at most
over a large enough finite field such that the constant term of the
polynomial is (within this context large means that more than and would be able to embedded into this
field). The share of the th participant will be
hence from at least shares (i.e. values of the polynomial)
55
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
the whole
and hence
can be determined by a simple Lagrangian interpolation. On the other hand, if
less than values are known by the participants then due to their information every element of the finite field
can be the constant coefficient of the polynomial with the same probability. Another advantage of the Shamir
construction is its efficiency in the sense that the shares are as long as the secret.
The Shamir threshold secret sharing scheme:
• Let
• Let
that
be number of participants and let
be a finite field with
be a polynomial of degree at most
. The share of participant is
• every subset of participants of cardinality at least
and let
be the secret
chosen uniformly at random by the dealer such
can calculate
by Lagrangian interpolation.
6.15. 6.15 Exercises
1. Assume that the best way of breaking the key of some block cipher
is enumerating all possibilities,
until the key is found. The composition of two such block ciphers
is a block cipher with
double key size. Can the key of this block cipher be retrieved faster than enumerating all possibilities for both
halves of the key, assuming that the block cipher has no algebraic structure?
2. Construct a protocol for secure authentication over a channel open for eavesdropping with a publicly
readable database using commutative block ciphers.
3. Implement ZKP using the other primitives.
4. Prove that in the Goldwasser-Micali encryption scheme 6.10.3 Alice can choose randomly from the
respective sets. Especially, prove that if
then for
we have
and if
then for
we have
7. References
• [1] Debreu, G. 1954. Representation of a Preference Ordering by a Numerical Function, Decision Process.
Wiley, New York, pp. 159-165. http://cowles.econ.yale.edu/P/cp/p00b/p0097.pdf
• [2] Schneier, B. 2004. Secrets and Lies, second edition. Wiley, New York http://www.schneier.com/booksandl.html
• [3] Grigg, I. Pareto-Secure (unpublished) http://iang.org/papers/pareto-secure.html
• [4] Szabo, N. Trusted Third Parties Are Security Holes (essay) http://szabo.best.vwh.net/ttps.html
• [5] Babai, L. 1986. On Lovász' lattice reduction and the nearest lattice point problem. Combinatorica, Vol 6
(1) pp. 1-13 http://link.springer.com/article/10.1007\%2FBF02579403?LI=true
• [6] Bellare, M., Rogaway, P. 1993. Oracles are Practical: A Paradigm for Designing Efficient Protocols.
ACM
Conference
on
Computer
and
Communications
Security,
pp.
62-73.
http://www.cs.ucsd.edu/users/mihir/papers/ro.html
• [7] Biham, E., Shamir, A. 1990. Differential Cryptanalysis of DES-like Cryptosystems. (Lecture notes).
Weizmann Institute of Science. http://www.cs.technion.ac.il/~biham/Reports/Weizmann/cs90-16.ps.gz
• [8] Barker, E., Kelsey, J. Recommendation for Random Number Generation Using Deterministic Random Bit
Generators (NIST Special Publication 800-90A) http://csrc.nist.gov/publications/nistpubs/800-90A/SP80090A.pdf
56
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
• [9] Barker, E., Kelsey, J. Recommendation for the Entropy Sources Used for Random Bit Generation (NIST
DRAFT Special Publication 800-90B) http://csrc.nist.gov/publications/drafts/800-90/draft-sp800-90b.pdf
• [10] Barker, E., Kelsey, J. Recommendation for Random Bit Generator (RBG) Constructions (NIST DRAFT
Special Publication 800-90C) http://csrc.nist.gov/publications/drafts/800-90/draft-sp800-90c.pdf
• [11] Blakley, G. R. 1979. Safeguarding cryptographic keys. (Proceedings of the National Computer
Conference).
Vol.
48.
pp.
313-317.
http://www.computer.org/csdl/proceedings/afips/1979/5087/00/50870313.pdf
• [12] Canetti, R., Goldreich, O., Halevi, S. The Random Oracle Methodology. Revisited (preliminary version,
unpublished) http://theory.lcs.mit.edu/~oded/rom.html
• [13] Cramer, R. 1998. Introduction to Secure Computation Lectures on Data Security LNCS 1561. pp. 16-62
http://link.springer.com/chapter/10.1007\%2F3-540-48969-X_2
• [14] Diffie, W., Hellman, M. 1976. New Directions in Cryptography. IEEE Transactions on Information
Theory. Vol. 22, pp. 644-654. http://www-ee.stanford.edu/~ hellman/publications/24.pdf
• [15] Diffie, W., Hellman, M., Merkle, R. 1980. Cryptographic apparatus and method. US Patent #4200770
http://patft.uspto.gov/netacgi/nph-Parser?patentnumber=4,200,770
• [16] ElGamal, T. 1985. A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms.
Proc. CRYPTO 84 on Advances in Cryptology http://crypto.csail.mit.edu/classes/6.857/papers/elgamal.pdf
• [17] Even, S., Goldreich, O., Lempel, A. 1985. A Randomized Protocol for Signing Contracts.
Communications of the ACM Vol. 28 (6) pp. 637-647. http://dl.acm.org/citation.cfm?id=3818
• [18] Gentry, C. 2009. Fully Homomorphic Encryption Using Ideal Lattices. 41st ACM Symposium on
Theory of Computing (STOC). pp. 169-178. http://dl.acm.org/citation.cfm?id=1536440
• [19] Goldreich, O., Micali, S., Wigderson, A. 1987. How to play ANY mental game. Proceedings of the
nineteenth
annual
ACM
conference
on
Theory
of
computing.
pp.
218-229.
http://dl.acm.org/citation.cfm?id=28420
• [20] Goldwasser, S., Micali, S. 1984. Probabilistic encryption Journal of Computer and System Sciences. Vol.
28 (2) pp. 270-299. http://www.sciencedirect.com/science/article/pii/0022000084900709
• [21] Hoffstein, J., Pipher, J., Silverman, J. H. 1998. NTRU: A Ring-Based Public Key Cryptosystem.
Algorithmic
Number
Theory,
Third
International
Symposium
(ANTS).
pp.
267-288.
http://link.springer.com/chapter/10.1007\%2FBFb0054868
• [22] Katz, J., Lindell, Y. 2007. Introduction to Modern Cryptography Chapman and Hall/Crc Cryptography
and Network Security Series. http://www.cs.umd.edu/~jkatz/imc.html
• [23] Lenstra, A. K., Lenstra, H. W., Lovász, L. 1982. Factoring polynomials with rational coefficients.
Mathematische Annalen, Vol. 261 (4) pp. 515-534. http://link.springer.com/article/10.1007\%2FBF01457454
• [24] Matsui, M. Yamagishi, A. 1992. A new method for known plaintext attack of FEAL cipher.
EUROCRYPT.
• [25] Matsui, M. 1993. Linear cryptanalysis method for
http://www.esat.kuleuven.ac.be/~abiryuko/Cryptan/matsui_des.PDF
DES
cipher.
EUROCRYPT.
• [26] McCullagh, A., Caelli, W. Non-Repudiation in the Digital Environment. First Monday, Vol. 5 (8).
http://firstmonday.org/issues/issue5_8/mccullagh/index.html
• [27] Rabin, M. 1979. Digitalized Signatures and Public-Key Functions as Intractable as Factorization. MIT
technical report. http://www.lcs.mit.edu/publications/pubs/pdf/MIT-LCS-TR-212.pdf
• [28] Rabin, M. 1981. How to exchange secrets by oblivious transfer. Technical Report TR-81, Aiken
Computation Laboratory. http://eprint.iacr.org/2005/187.pdf
57
Created by XMLmind XSL-FO Converter.
Advanced Cryptography
• [29] Rivest, R., Shamir, A., Adleman, L. 1978. A Method for Obtaining Digital Signatures and Public-Key
Cryptosystems.
Communications
of
the
ACM,
Vol.
21,
pp.
120-126.
http://people.csail.mit.edu/rivest/Rsapaper.pdf
• [30] Shamir, A. 1984. A polynomial-time algorithm for breaking the basic Merkle - Hellman cryptosystem.
IEEE
Transactions
on
Information
Theory,
Vol.
30
(5)
pp.
699-704.
http://dl.acm.org/citation.cfm?id=1382749
• [31] Schnorr, C. P. 1989. Efficient Identification and Signatures for Smart Cards. EUROCRYPT.
http://www.springerlink.com/link.asp?id=pl5laecakg98mtyd
• [32] Yao, A. C. 1982. Protocols for Secure Computations. FOCS 1982. Extended abstract. pp. 160-164.
http://research.cs.wisc.edu/areas/sec/yao1982-ocr.pdf
58
Created by XMLmind XSL-FO Converter.
Download