Other cryptosystems ‹#› Other cryptosystems 1 CHAPTER 6: Other cryptosystems , pseudo-random numbers generators and hash functions A large number of interesting and important cryptosystems have already been designed. In this chapter we present some of them in order to illustrate principles and techniques that can be used to design cryptosystems. At first, we present several cryptosystems security of which is based on the fact that computation of discrete logarithms is infeasible in some groups. Secondly, we discuss pseudo-random number generators and hash functions – other very important concepts of modern cryptography. Finally, we discuss one of the fundamental questions of modern cryptography: when can a cryptosystem be considered as (computationally) perfectly secure? In order to do that we will: • discuss the role randomness play in the cryptography; • introduce the very fundamental definitions of perfect security of cryptosystem • present some examples of perfectly secure cryptosystems. IV054 ‹#› Other cryptosystems 2 Other cryptosystems Decryption: Using a method to compute w given c with Chinese remainder theorem one can get that w equals to one of the numbers: Indeed, it is easy to verify, using Euler's criterion which says that if c is a quadratic residue modulo p, then , that are two square roots of c modulo p and q. One can now obtain four square roots of c modulo n using the method shown in Appendix. Rabin cryptosystem Primes p, q of the form 4k + 3 are kept secret, n = pq is the public key. Encryption: of a plaintext w < n c = w2 mod n IV054 In case the plaintext w is a meaningful English text, it should be easy to determine w from w1, w2, w3, w4. However, if w is a random string (say, for a key exchange) it is impossible to determine w from w1, w2, w3, w4. Rabin did not propose this system as a practical cryptosystem. ‹#› Other cryptosystems 3 Other cryptosystems Generalized Rabin cryptosystem Public key: n, B (0 Ł B Ł n -1) Trapdoor: primes p, q (n = pq) of the form 4k+3 Encryption: e(x) = x (x + B) mod n Decryption: It is easy to verify that if is a nontrivial square root of 1 modulo n, then there are four decryptions of e(x): IV054 Example Decryption of the generalized Rabin cryptosystem can be reduced to the decryption of the original Rabin cryptosystem. Indeed, the equation => x2 + Bx º y (mod n) can be transformed by the substitution x = x1 – B/2 => into x12 º B2/4 + y (mod n) and, by defining c = B2/4 + y, => into x1 2 º c (mod n) Decryption can be done by factoring n and solving congruences x1 2 º c (mod p) x1 2 º c (mod q) ‹#› Other cryptosystems 4 Other cryptosystems Security of Rabin cryptosystem We show that any hypothetical decryption algorithm A for Rabin cryptosystem, can be used, as an oracle, in the following Las Vegas algorithm, to factor an integer n. Algorithm: 1. Choose a random r , 1 Ł r Ł n -1; 2. Compute y = (r2 - B2/4) mod n; {y = ek(r – B/2)}. 3. Call A(y), to obtain a decryption 4. Compute x1 = x + B/2; {x12 º r2 mod n} 5. if x1 = ± r then quit (failure) else gcd(x1 + r, n) = p or q IV054 Indeed, after Step 4, either x1 = ± r mod n or x1 = ± mod n. In the second case we have n | (x1 - r)(x1 + r), but n does not divide either factor x1 - r or x1 + r. Therefore computation of gcd(x1 + r, n) or gcd(x1 - r, n) must yield factors of n. ‹#› Other cryptosystems 5 Other cryptosystems ElGamal cryptosystem Design: choose a large prime p – (with at least 150 digits). choose two random integers 1 Ł q, x < p - where q is a primitive element of Z*p calculate y = qx mod p. IV054 Public key: p, q, y; trapdoor: x Encryption of a plaintext w: choose a random r and compute a = qr mod p, b = yr w mod p Cryptotext: c = (a, b) (Cryptotext contains indirectly r and the plaintext is masked by multiplying with yr (and taking modulo p)) Decryption: Proof of correctness: Note: Security of the ElGamal cryptosystem is based on infeasibility of the discrete logarithm computation. ‹#› Other cryptosystems 6 Other cryptosystems Shanks’ algorithm for discrete logarithm Let m = [sqrt(p - 1)]. The following algorithm computes lgqy in Z*p. 1. Compute qmj mod p, 0 Ł j Ł m - 1. 2. Create list L1 of m pairs (j, qmj mod p), sorted by the second item. 3. Compute yq -i mod p, 0 Ł i Ł m - 1. 4. Create list L2 of pairs (i, yq -i mod p) sorted by the second item. 5. Find two pairs, one (j, z) Î L1 and second (i, z) Î L2 IV054 If such a search is successful, then qmj mod p = z = yq -i mod p and as the result lgqy º (mj + i) mod (p -1). Therefore qmj+i º y (mod p) On the other hand, for any y we can write lgqy = mj + i, For some 0 ≤ i, j ≤ m - 1. Hence the search in the Step 5 of the algorithm has to be successful. ‹#› Other cryptosystems 7 Other cryptosystems Bit security of discrete logarithm Let us consider problem to compute Li(y) = i-th least significant bit of lgqy in Z*p. Result 1 L1(y) can be computed efficiently. To show that we use the fact that the set QR(p) has (p -1)/2 elements. Let q be a primitive element of Z*p. Clearly, qa ÎQR(p) if a is even. Since the elements q0 mod p, q2 mod p, …, q p-3 mod p are all distinct, we have that QR(p) = {q 2i mod p | 0 Ł i Ł (p - 3)/2} Consequence: y is a quadratic residue iff lgqy is even, that is iff L1(y) = 0. By Euler's criterion y is a quadratic residue if y(p-1)/2 º 1 mod p L1(y) can therefore be computed as follows: L1(y) = 0 if y(p-1)/2 º 1 mod p; L1(y) = 1 otherwise IV054 Result 2 Efficient computability of Li(y), i > 1 in Z*p would imply efficient computability of the discrete logarithm in Z*p. ‹#› Other cryptosystems 8 Other cryptosystems Williams cryptosystem - basics Similar to RSA, but number operations are performed in a quadratic field. Cryptoanalysis of Williams cryptosystem is equivalent to factoring. Consider numbers of the form where a, b, c are integers. If c remains fixed a can be viewed as a pair (a, b). a1 + a 2 = (a 1, b 1) + (a 2,b 2) = (a 1 + a 2, b 1 + b2) a 1a 2 = (a 1, b 1) · (a 2,b 2) = (a 1a 2 + c b 1b 2, a 1b 2 + b1a 2) The conjugate a of a is defined by IV054 Auxiliary functions: Hence ‹#› Other cryptosystems 9 Other cryptosystems Williams cryptosystem - efficient exponentiation Assume now a 2 - cb 2 = 1 Then aa = 1 and consequently XI 2 - cYI2 = 1 Moreover, for j ł i XI+J = 2XI XJ – XJ – I YI+J = 2YI XJ – YJ – I From these and following equations: XI+J = 2XI XJ + cYI YJ YI+J = 2YI XJ + XI YJ we get the recursive formulas: X 2i = X i2 + cY i 2 = 2X i 2 - 1 Y 2i = 2X iY i X 2i+1 = 2X iY i+1 – X 1 Y 2i+1 = 2X iY i+1 – Y 1 Consequences: 1. X i and Y i can be, given i, computed fast. Remark Since X 0 = 1, X 1 = a, X i does not depend on b. IV054 ‹#› Other cryptosystems 10 Other cryptosystems WHEN is a CRYPTOSYSTEM (perfectly) SECURE? First question:. Is it enough for perfect security of a cryptosystem that one cannot get a plaintext from a cryptotext? NO, NO, NO WHY? For many applications it is crucial that no information about the plaintext could be obtained. • Intuitively, a cryptosystem is (perfectly) secure if one cannot get any (new) information about the corresponding plaintext from any cryptotext. • It is very nontrivial to define correctly when a cryptosystem is (computationally) perfectly secure. • It has been shown that perfectly secure cryptosystems have to use randomized encryptions. IV054 > ‹#› Other cryptosystems 11 Other cryptosystems Cryptography and Randomness Randomness and cryptography are deeply related. 1. Prime goal of any good encryption method is to transform even a highly nonrandom plaintext into a highly random cryptotext. (Avalanche effect.) • Example Let ek be an encryption algorithm, x0 be a plaintext. And x i = ek (x i-1), i ł 1. It is intuitive clear that if encryption ek is “cryptographically secure'', then it is very, very likely that the sequence x 0 x 1 x 2 x 3 is (quite) random. Perfect encryption can therefore produce (quite) perfect (pseudo)randomness. IV054 2. The other side of the relation is more complex. 2. It is clear that perfect randomness together with ONE-TIME PAD cryptosystem produces perfect secrecy. The price to pay: a key as long as plaintext is needed. The way out seems to be to use an encryption algorithm with a pseudo-random generator to generate a long pseudo-random sequence from a short seed and to use the resulting sequence with ONE-TIME PAD. Basic question: When is a pseudo-random generator good enough for cryptographical purposes? ‹#› Other cryptosystems 12 Other cryptosystems Secure encryptions - basic concepts I We now start to discuss a very nontrivial question: when is an encryption scheme computationally perfectly SECURE? First ,some very basic technical concepts: Definition A function f:N ® R is a negligible function if for any polynomial p (n) it holds, for almost all n: IV054 Definition - computational distinguishibility Let X = {X n} nÎN and Y = {Y n} nÎN be probability ensembles such that each X n and Y n ranges over strings of length n. We say that X and Y are computationally indistinguishable if for every feasible algorithm A the difference is a negligible function in n. ‹#› Other cryptosystems 13 Other cryptosystems Secure encryptions - pseudorandom generators In cryptography random sequences can be usually fully replaced by pseudorandom sequences generated by (cryptographically perfect) pseudorandom generators. Definition - pseudorandom generator. Let l (n):N ® N be such that l(n) > n for all n. A (computationally indistinguishable) pseudorandom generator with stretch function l, is an efficient deterministic algorithm which on input of a random n-bit seed outputs a l(n)-bit sequence which is computationally indistinguishable from a random l(n)-bit sequence. IV054 Theorem Let f be a one-way function which is length preserving and efficiently computable, and b be a hard core predicate of f, then is a (computationally indistinguishable) pseudorandom generator with stretch function l(n). Definition A predicate b is a hard core predicate of the function f if b is easy to evaluate, but b(x) is hard to predict from f(x). (That is, it is unfeasible, given f(x) where x is uniformly chosen, to predict b(x) substantially better than with the probability 1/2.) It is conjectured that the least significant bit of the modular squaring function x2 mod n is a hard-core predicate. Theorem A (good) pseudorandom generator exists if a one-way function exists. ‹#› Other cryptosystems 14 Other cryptosystems Remark: The concept of a cryptographically strong pseudo-random generator is one of the key concepts of the foundation of computing. Indeed, a cryptographically strong pseudo-random generator exists if and only if a one-way function exists what is equivalent with P ¹ UP and what implies P ¹ NP. Cryptographically strong pseudo-random generators Fundamental question: when is a pseudo-random generator good enough for cryptographical purposes? Basic concept: A pseudo-random generator is called cryptographically strong if the sequence of bits it produces, from a short random seed, is so good for using with ONE-TIME PAD cryptosystem, that no polynomial time algorithm allows a cryptanalyst to learn any information about the plaintext from the cryptotext. A cryptographically strong pseudo-random generator would therefore provide sufficient security in a secret-key cryptosystem if both parties agree on some short seed and never use it twice. As discussed later: Cryptographically strong pseudo-random generators could provide perfect secrecy also for public-key cryptography. Problem: Do cryptographically strong pseudo-random generators exist? IV054 ‹#› Other cryptosystems 15 Other cryptosystems Candidates for cryptographically strong pseudo-random generators So far there are only candidates for cryptographically strong pseudo-random generators. For example, cryptographically strong are all pseudo-random generators that are unpredictable to the left in the sense that a cryptanalyst that knows the generator and sees the whole generated sequence except its first bit has no better way to find out this first bit than to toss the coin. It has been shown that if integer factoring is intractable, then the so-called BBS pseudo-random generator, discussed below, is unpredictable to the left. (We make use of the fact that if factoring is unfeasible, then for almost all quadratic residues x mod n, coin-tossing is the best possible way to estimate the least significant bit of x after seeing x2 mod n.) Let n be a Blum integer. Choose a random quadratic residue x0 (modulo n). For i ł 0 let x i+1 = x i2 mod n, b i = the least significant bit of x I For each integer i, let BBS n, i (x0) = b0…b i-1 be the first i bits of the pseudo-random sequence generated from the seed x0 by the BBS pseudo-random generator. IV054 > ‹#› Other cryptosystems 16 Other cryptosystems BBS pseudo-random generator - analysis Choose random x, relatively prime to n, compute x0 = x 2 mod n x i+1 = x i2 mod n, b i = the least significant bit of x I BBS n, i (x0) = b0…b i-1 IV054 Assume that the pseudo-random generator BBS with a Blum integer is not unpredictable to the left. Let y be a quadratic residue from Zn*. Compute BBS n, I -1 (y) for some i > 1. Let us pretend that last (i -1) of BBS n, i (x) are actually the first (i -1) bits of BBS n, I -1 (y), where x is the principal square root of y. Hence, if the BBS pseudo-random generator is not unpredictable to the left, then there exists a better method than coin-tossing to determine the least significant bit of x, what is, as mentioned above, impossible. ‹#› Other cryptosystems 17 Other cryptosystems Randomized encryptions From security point of view, public-key cryptography with deterministic encryptions has the following serious drawback: A cryptoanalyst who knows the public encryption function e k and a cryptotext c can try to guess a plaintext w, compute e k (w) and compare it with c. The purpose of randomized encryptions is to encrypt messages, using randomized algorithms, in such a way that one can prove that no feasible computation on the cryptotext can provide any information whatsoever about the corresponding plaintext (except with a negligible probability). IV054 Formal setting: Given: plaintext-space P cryptotext C key-space K random-space R encryption: e k: P х R ® C decryption: d k: C ® P or C ® 2P such that for any p, r: d k (e k (p, r)) = p. • d k, e k should be easy to compute. • Given e k, it should be unfeasible to determine d k. ‹#› Other cryptosystems 18 Other cryptosystems Secure encryption - First definition Definition - semantic security of encryption A cryptographic system is semantically secure if for every feasible algorithm A, there exists a feasible algorithm B so that for every two functions f, h: {0,1}* ® {0,1} n and all probability ensembles {X n} nÎN, where X n ranges over {0,1} n where is a negligible function. IV054 It can be shown that any semantically secure public-key cryptosystem must use a randomized encryption algorithm. RSA cryptosystem is not secure in the above sense. However, randomized versions of RSA are semantically secure. ‹#› Other cryptosystems 19 Other cryptosystems Secure encryptions - Second definition Definition A randomized-encryption cryptosystem is polynomial time secure if, for any cÎN and sufficiently large sÎN (security parameter), any randomized polynomial time algorithms that takes as input s (in unary) and the public key, cannot distinguish between randomized encryptions, by that key, of two given messages of length c, with the probability larger than 1/2 +1/sc. Both definitions are equivalent. IV054 Example of a polynomial-time secure randomized (Bloom-Goldwasser) encryption: p, q - large Blum primes n = p х q - key Plaintext-space - all binary strings Random-space – QR n Crypto-space - QR n х {0,1}* Encryption: Let w be a t-bit plaintext and x0 a random quadratic residue modulo n. Compute x t and BBS n,t (x0) using the recurrence x i+1 = x i2 mod n Cryptotext: (x t, w Å BBS n,t(x0)) Decryption: Legal user, knowing p, q, can compute x0 from x t, then BBS n,t(x0), and finally w. Other cryptosystems ‹#› Other cryptosystems 20 HASH FUNCTIONS Another very simple, fundamental and important cryptographic concept is that of hash functions. Hash functions h:{0,1}* → {0,1}m ; h:{0,1}n → {0,1}m, n>>m map (very) long messages w into short ones, called usually message digest or hash or fingerprints of w, in a way that has important cryptographic properties. Digital signatures are one of important applications of hash functions. In most of the digital signature schemes, to be discussed in the next chapter, the length of a signature is at least as long as of the message being signed. This is clearly a big disadvantage. To remedy this situation, signing procedure is applied to a hash of the message, rather than to the message itself. This is OK provided the hash function has good cryptographic properties, discussed next. IV054 Other cryptosystems ‹#› Other cryptosystems 21 HASH FUNCTIONS & DIGITAL SIGNATURE Basic use of hash functions for digital signatures: If Alice wants to sign a message w, she first creates hash z=h(w), then computes signature s of the hash z, using a signing algorithm sig and a key k: s=sigk(z) and transmits the pair (w,s). To verify a signature, a verification algorithm ver and the key k are used. At first z=h(w) is computed and then it is verified that verk(z,s)=true. IV054 Other cryptosystems ‹#› Other cryptosystems 22 PROPERTIES HASH FUNCTIONS SHOULD HAVE I. We now derive basic properties cryptographically good hash functions should have by analysing several possible attacks on their use. Attack 1 If Eve gets a valid signature (w,y), where y=sigk(h(w)) and she would be able to find w’ such that h(w’)=h(w), then also (w’,y), a forgery, would be a valid signature. Cryptographically good hash function should therefore have the following weak collision-free property Definition 1.Let w be a message. A hash function h is weakly collision-free for w, if it is computationally infeasible to find a w’ such that h(w)=h(w’). IV054 Other cryptosystems ‹#› Other cryptosystems 23 PROPERTIES HASH FUNCTIONS SHOULD HAVE II. Attack 2 If Eve finds two w and w’ such that h(w’)=h(w), she can ask Alice to sign h(w) to get signature s and then Eve can create a forgery (w’,s). Cryptographically good hash function should therefore have the following strong collision-free property Definition 2. A hash function h is strongly collision-free if it is computationally infeasible to find two elements w≠w’ such that h(w)=h(w’). IV054 Other cryptosystems ‹#› Other cryptosystems 24 PROPERTIES HASH FUNCTIONS SHOULD HAVE III. Attack 3 If Eve can compute signature s of a random z, and then she can find w such that z=h(w), then Eve can create forgery (w,s). To exclude such an attack, hash functions should have the following one-wayness property. Definition 3. A hash function h is one-way if it is computationally infeasible to find, given z, an w such that h(w)=z. One can show that if a hash function has strongly collision-free property, then it has one-wayness property. IV054 ‹#› Other cryptosystems 25 Other cryptosystems Hash functions and integrity of data An important use of hash functions is to protect integrity of data in the following way: The problem of protecting data of arbitrary length is reduced, using hash functions, to the problem to protect integrity of the data of fixed (and small) length fingerprints. In addition, to send reliably a message w through an unreliable (and cheap) channel, one sends also its (small) hash h(w) through a very secure (and therefore expensive) channel. The receiver, familiar also with the hash function h that is being used, can then verify the integrity of the message w’ he receives by computing h(w’) and comparing h(w) and h(w’) . > Other cryptosystems ‹#› Other cryptosystems 26 Example 2 For a vector a=(a1,…, ak ) of integers let where n is a product of two large integers. This functions is one-way, but not weakly collision-free. EXAMPLES Example 1 For a vector a=(a1,…, ak ) of integers let where n is a product of two large integers. This hash functions does not meet any of the three properties mentioned on the last slide. IV054 ‹#› Other cryptosystems 27 Other cryptosystems Hash functions and commitments A commitment to a data w, without revealing w, using a hash function h, can be done as follows: Commitment phase: To commit to a w choose a random r and make public h(wr). Opening phase: reveal r and w. For this application the hash function h has to be one-way: from h(wr) it should be unfeasible to determine wr > Other cryptosystems ‹#› Other cryptosystems 28 FINDING COLLISIONS with INVERSION ALGORITHM Theorem Let h:X→Z be a hash function where X and Z are finite and |X| ≥ 2|Z|. If there is an inversion algorithm A for h, then there exists randomized algorithm to find collisions. IV054 Sketch of the proof. One can easily show that the following algorithm 1. Choose a random and compute z=h(x); Compute x1=A(z); 2. if x1≠x, then x1 and x collide (under h – success) else failure has probability of success where, for ,[x] is the set of elements having the same hash as x. ‹#› Other cryptosystems 29 Other cryptosystems VARIATION on BIRTHDAY PARADOX It is well know that if there are 23 (39) [40] people in one room, then the probability that two of them have the same birthday is more than 50% (70%)[89%] – this is called a Birthday paradox. IV054 Another version of the birthday paradox: Let us have n objects and two groups of r people. If , then probability that someone from one group chooses the same object as someone from the other group is (1-e-λ). More generally, if we have n objects and r people, each choosing one object (so that several people can choose the same object), then if , then probability that two people choose the same object is 50% (1-e-λ)%. ‹#› Other cryptosystems 30 Other cryptosystems Birthday Paradox attack on digital signatures IV054 Similarly, Fred makes 230 changes of the fraudulent document. Considering birthday problem with n = 250, r = 230 we get that r = , with = 210 and therefore with probability 1- e-1024 1 there is a version of the good document that has the same hash as a version of the fraudulent document. Finding a match, Fred can ask Alice to sign a good version and then append the signature to the fraudulent contract. Assume Alice uses a hash function that produces 50 bits. Fred, who wants Alice to sign a fraudulent contract, find 30 places in a good document, where he can make change in the document (adding a coma, space, …) such that Alice would not notice that. By choosing at each place whether to make or not a change, he can produce 230 documents essentially identical with the original good document. ‹#› Other cryptosystems 31 Other cryptosystems HASH FUNCTION DOMAIN LOWER BOUND IV054 Birthday paradox imposes a lower bound on the sizes of message digests (fingerprints) For example a 40-bit message would be insecure because a collision could be found with probability 0.5 with just over 2020 random hashes. Minimum acceptable size of message digest seems to be 128 and therefore 160 are used in such important systems as DSS – Digital Signature Schemes (standard). ‹#› Other cryptosystems 32 Other cryptosystems AN ALMOST GOOD HASH FUNCTION IV054 We show an example of the hash function (so called Discrete Log Hash Function) that seems to have as the only drawback that it is too slow to be used in practice: Let p be a large prime such that q = (p -1)/2 is also prime and let α, β be two primitive roots modulo p. Denote a = logα β (that is β = αa). h will map two integers smaller than q to an integer smaller than p, for m = x0 + x1q, 0 Ł x0, x1 Ł q –1 as follows, h(x0, x1) = h(m) = (mod p). To show that h is one-way and collision-free the following fact can be used: FACT: If we know different messages m1 and m2 such that h(m1) = h(m2), then we can compute logα β. ‹#› Other cryptosystems 33 Other cryptosystems EXTENDING HASH FUNCTIONS IV054 Let h :{0, 1}m ® {0, 1}t be a strongly collision-free hash function, where m > t +1. We design now a strongly collision-free hash function h* : Let a bit string x, |x| = n > m, has decomposition x = x1 || x2 . . . || xk , where |xi| = m – t – 1 if i < k and |xk| = m – t – 1 – d for some d. (Hence k = én / (m – t – 1)ù.) h* will be computed as follows: 1. for i=1 to k-1 do yi := xi ; 2. yk := xk || 0d ; yk+1 := binary representation of d ; 3. g1 := h(0t+1 || y1) ; 4. for i=1 to k do gi+1 := h(gi ||1 || yi+1) ; 5. h*(x) := gk+1. Other cryptosystems ‹#› Other cryptosystems 34 HASH FUNCTIONS from CRYPTOSYSTEMS Let us have computationally secure cryptosystem with plaintexts, keys and cryptotexts being binary strings of a fixed length n and with encryption function ek . If x=x1 || x2 || … || xk is decomposition of x into substrings of length n, g0- is a random string, and gi = f(xi , gi-1) for i=1,..,k, where f is a function that “incorporates” encryption function ek of the cryptosystem, then h(x)= gk . For example such good properties have these two functions: IV054 Other cryptosystems ‹#› Other cryptosystems 35 PRACTICALLY USED HASH FUNCTIONS A variety of hash functions has been constructed. Very often used hash functions are MD4, MD5 (created by Rivest in 1990 and 1991 and producing 128 bit message digest). NIST even published, as a standard, in 1993, SHA (Secure Hash Algorithm) – producing 160 bit message digest – based on similar ideas as MD4 and MD5. A hash function is called secure if it is strongly collision-free. One of the most important cryptographic results of the last years was due to the Chinese Wang who has shown that MD4 is not cryptographically secure. IV054 ‹#› Other cryptosystems 36 Other cryptosystems Randomized version of RSA-like cryptosystems The scheme works for any trapdoor function (as in case of RSA), for any pseudorandom generator G: {0,1} k ® {0,1} l, k << l and any hash function h: {0,1} l ® {0,1} k, where n = l + k. Given a random seed s Î {0,1} k as input, G generates a pseudorandom bit-sequence of length l. IV054 Encryption of a message m Î {0,1} l is done as follows: 1. A random string r Î {0,1} k is chosen. 2. Set 3. Compute encryption c = f(x) – length of x and of c is n. Decryption of a cryptotext c. • Compute f -1(c) = a||b, |a| = l and |b| = k. • Set Comment Operation “||'' stands for a concatenation of strings. ‹#› Other cryptosystems 37 Other cryptosystems Bloom-Goldwasser cryptosystem once more Private key: Blum primes p and q. IV054 Public key: n = pq. Encryption of x Î {0,1} m. 1. Randomly choose s0 Î {0, 1, …, n}. 2. For I = 1, 2, …, m + 1 compute s i ¬ s i-12 mod n The cryptotext is (s m+1, y), where Decryption: of the cryptotext (r, y): Let d = 2 –m mod f (n). • Let s 1 = r d mod n. • For i = 1, …, m, • The plaintext x can then be computed as ‹#› Other cryptosystems 38 Other cryptosystems Global goals of cryptography Cryptosystems and encryption/decryption techniques are only one part of modern cryptography. General goal of modern cryptography is construction of schemes which are robust against malicious attempts to make these schemes to deviate from their prescribed functionality. The fact that an adversary can design its attacks after the cryptographic scheme has been specified, makes design of such cryptographic schemes very difficult - schemes should be secure under all possible attacks. In the next chapters several of such most important basic functionalities and design of secure systems for them will be considered. For example: digital signatures, user and message authentication,.... Moreover, also such basic primitives as zero-knowledge proofs, needed to deal with general cryptography problems will be presented and discussed. We will also discuss cryptographic protocols for a variety of important applications. For example for voting, digital cash,.... IV054 >