pseudo-random number generation qiuliang tang. random numbers in cryptography ► the keystream in...

31
Pseudo-random Number Pseudo-random Number Generation Generation Qiuliang Tang Qiuliang Tang

Upload: todd-morris

Post on 24-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

Pseudo-random Number Pseudo-random Number Generation Generation

Qiuliang TangQiuliang Tang

Page 2: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

Random Numbers in Cryptography Random Numbers in Cryptography

► The keystream in the one-time padThe keystream in the one-time pad

► The secret key in the DES encryptionThe secret key in the DES encryption

► The prime numbers p, q in the RSA encryptionThe prime numbers p, q in the RSA encryption

► The private key in DSA The private key in DSA

► The initialization vectors (IVs) used in ciphersThe initialization vectors (IVs) used in ciphers

Page 3: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

Pseudo-random Number GeneratorPseudo-random Number Generator

► Pseudo-random number generatorPseudo-random number generator: : A polynomial-time computable function f (x) that expands A polynomial-time computable function f (x) that expands

a short random string x into a long string f (x) that appears a short random string x into a long string f (x) that appears randomrandom

► Not truly random in thatNot truly random in that: : Deterministic algorithmDeterministic algorithm Dependent on initial valuesDependent on initial values

► Objectives Objectives FastFast SecureSecure

Page 4: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

Pseudo-random Number GeneratorPseudo-random Number Generator

► Classical PRNGsClassical PRNGs Linear Congruential GeneratorLinear Congruential Generator

► Cryptographically Secure PRNGsCryptographically Secure PRNGs RSA GeneratorRSA Generator Blum-Micali GeneratorBlum-Micali Generator Blum-Blum-Shub GeneratorBlum-Blum-Shub Generator

► Standardized PRNGs Standardized PRNGs ANSI X9.17 GeneratorANSI X9.17 Generator FIPS 186 GeneratorFIPS 186 Generator

Page 5: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

Linear Congruential Generator - Linear Congruential Generator - AlgorithmAlgorithm

► Based on the linear recurrence:Based on the linear recurrence:xxii = a x = a xi-1 i-1 + b mod m+ b mod m i≥1i≥1

WhereWherexx00 is the seed or start value is the seed or start valuea is the multipliera is the multiplierb is the incrementb is the incrementm is the modulusm is the modulus

Output Output (x(x11, x, x22, …, x, …, xkk))yyii = x = xii mod 2 mod 2Y = (yY = (y11yy22…y…ykk) ) pseudo-random sequence of K pseudo-random sequence of K

bitsbits

Page 6: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

Linear Congruential Generator - Linear Congruential Generator - ExampleExample

► Let xLet xnn = 3 x = 3 xn-1 n-1 + 5 mod 31 n≥1, and x+ 5 mod 31 n≥1, and x00 = 2 = 2 3 and 31 are relatively prime, one-to-one (affine cipher) 3 and 31 are relatively prime, one-to-one (affine cipher) 31 is prime, order is 3031 is prime, order is 30

► Then we have the 30 residues in a cycle:Then we have the 30 residues in a cycle: 2, 11, 7, 26, 21, 6, 23, 12, 10, 4, 17, 25, 18, 28, 27, 24, 15, 2, 11, 7, 26, 21, 6, 23, 12, 10, 4, 17, 25, 18, 28, 27, 24, 15,

19, 0, 5, 20, 3, 14, 16, 22, 9, 1, 8, 29, 3019, 0, 5, 20, 3, 14, 16, 22, 9, 1, 8, 29, 30

► Pseudo-random sequences of 10 bits Pseudo-random sequences of 10 bits when xwhen x00 = 2 = 2

11010100011101010001 When xWhen x00 = 3 = 3

00011010010001101001

Page 7: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

Linear Congruential Generator - SecurityLinear Congruential Generator - Security

► Fast, but insecureFast, but insecure Sensitive to the choice of parameters a, b, and mSensitive to the choice of parameters a, b, and m Serial correlation between successive valuesSerial correlation between successive values Short period, often m=2Short period, often m=23232 or m=2 or m=26464

Page 8: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

Linear Congruential Generator - Linear Congruential Generator - ApplicationApplication

► Used commonly in compilersUsed commonly in compilers Rand()Rand()

► Not suitable for high-quality randomness Not suitable for high-quality randomness

applicationsapplications Issues with the RANDU random number algorithmIssues with the RANDU random number algorithm Use Mersenne Twister algorithm in Monte Carlo simulationsUse Mersenne Twister algorithm in Monte Carlo simulations Longer period 2Longer period 21993719937-1-1

► Not suitable for cryptographic applicationsNot suitable for cryptographic applications Use cryptographically secure pseudo-random number Use cryptographically secure pseudo-random number

generatorsgenerators

Page 9: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

Cryptographically Secure Cryptographically Secure

► Passing all polynomial-time statistical testsPassing all polynomial-time statistical tests There is no polynomial-time algorithm that can correctly There is no polynomial-time algorithm that can correctly

distinguish a string of k bits generated by a pseudo-random distinguish a string of k bits generated by a pseudo-random bit generator (PRBG) from a string of k truly random bits bit generator (PRBG) from a string of k truly random bits with probability significantly greater than ½with probability significantly greater than ½

Probability distributions indistinguishableProbability distributions indistinguishable

► Passing the next-bit testPassing the next-bit test Given the first k bits of a string generated by PRBG, there is Given the first k bits of a string generated by PRBG, there is

no polynomial-time algorithm that can correctly predict the no polynomial-time algorithm that can correctly predict the next (k+1)next (k+1)th th bit with probability significantly greater than ½bit with probability significantly greater than ½

Next-bit unpredictableNext-bit unpredictable

► The two notions are equivalentThe two notions are equivalent Proved by Yao Proved by Yao

Page 10: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

Cryptographically Secure PRNGsCryptographically Secure PRNGs

► A PRNG from any one-way functionA PRNG from any one-way function A function f is one-way if it is easy to compute y = f (x) but A function f is one-way if it is easy to compute y = f (x) but

hard to compute x = f hard to compute x = f -1 -1 (y) (y) There is a PRNG if and only if there is a one-way functionThere is a PRNG if and only if there is a one-way function

► One-way functions One-way functions The RSA functionThe RSA function The discrete logarithm functionThe discrete logarithm function The squaring functionThe squaring function

► Cryptographically secure PRNGsCryptographically secure PRNGs RSA GeneratorRSA Generator Blum-Micali GeneratorBlum-Micali Generator Blum-Blum-Shub GeneratorBlum-Blum-Shub Generator

Page 11: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

RSA Generator - AlgorithmRSA Generator - Algorithm

► Based on the RSA one-way function:Based on the RSA one-way function: xxii = x = xi-1i-1

b b mod n mod n i≥1i≥1

WhereWhere xx00 is the seed, an element of Z is the seed, an element of Znn

**

n = p*q, p and q are large primesn = p*q, p and q are large primes gcd (b, gcd (b, ΦΦ(n) ) = 1(n) ) = 1 where where ΦΦ(n) = (p-1)(q-1)(n) = (p-1)(q-1) n and b are public, p and q are secretn and b are public, p and q are secret

OutputOutput

(x(x11, x, x22, …, x, …, xkk) )

yyii = x = xii mod 2 mod 2

Y = (yY = (y11yy22…y…ykk) ) pseudo-random sequence of K bits pseudo-random sequence of K bits

Page 12: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

RSA Generator - SecurityRSA Generator - Security

► RSA Generator is provably secure RSA Generator is provably secure It is difficult to predict the next number in the sequence

given the previous numbers, assuming that it is difficult to invert the RSA function (Shamir)

Page 13: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

RSA Generator - EfficiencyRSA Generator - Efficiency

► RSA Generator is relatively slow RSA Generator is relatively slow Each pseudo-random bit yi requires a modular

exponentiation operation Can be improved by extracting j least significant bits of xi

instead of 1 least significant bit, where j=cloglogn and c is a constant

Micali-Schnorr Generator improves the efficiency

Page 14: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

Blum-Micali Generator - ConceptBlum-Micali Generator - Concept

► Discrete logarithm Let p be an odd prime, then (Zp

*, ·) is a cyclic group with order p-1 Let g be a generator of the group, then |<g>| = p-1, and for any

element a in the group , we have gk = a mod p for some integer k If we know k, it is easy to compute a However, the inverse is hard to compute, that is, if we know a, it

is hard to compute k = logg a

► Example (Z17

*, ·) is a cyclic group with order 16, 3 is the generator of the group and 316 = 1 mod 17

Let k=4, 34 = 13 mod 17, which is easy to compute The inverse: 3k = 13 mod 17, what is k? what about large p?

Page 15: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

Blum-Micali Generator - AlgorithmBlum-Micali Generator - Algorithm

► Based on the discrete logarithm one-way function: Let p be an odd prime, then (Zp

*, ·) is a cyclic group Let g be a generator of the group, then for any element a,

we have gk = a mod p for some k Let x0 be a seed

xi = gxi-1 mod p i≥1i≥1

OutputOutput(x(x11, x, x22, …, x, …, xkk))

yyii = 1 = 1 if xif xii ≥ (p-1)/2 ≥ (p-1)/2yyii = 0 = 0 otherwise otherwise Y = (yY = (y11yy22…y…ykk) ) pseudo-random sequence of K bits pseudo-random sequence of K bits

Page 16: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

Blum-Micali Generator - SecurityBlum-Micali Generator - Security

► Blum-Micali Generator is provably secure It is difficult to predict the next bit in the sequence given

the previous bits, assuming it is difficult to invert the assuming it is difficult to invert the discrete logarithm function (by reduction)discrete logarithm function (by reduction)

Page 17: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

Blum-Blum-Shub Generator - ConceptBlum-Blum-Shub Generator - Concept

► Quadratic residuesQuadratic residues Let p be an odd prime and a be an integerLet p be an odd prime and a be an integer a is a quadratic residue modulo p if a is not congruent to 0 a is a quadratic residue modulo p if a is not congruent to 0

mod p and there exists an integer x such that a mod p and there exists an integer x such that a ≡≡ x x22 mod p mod p a is a quadratic non-residue modulo p if a is not congruent a is a quadratic non-residue modulo p if a is not congruent

to 0 mod p and a is not a quadratic residue modulo p to 0 mod p and a is not a quadratic residue modulo p

► Example Let p=5, then 12 =1, 22 =4, 32 =4, 42 =1 1 and 4 are quadratic residues modulo 5 2 and 3 are quadratic non-residues modulo 5

Page 18: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

Blum-Blum-Shub Generator - AlgorithmBlum-Blum-Shub Generator - Algorithm

► Based on the squaring one-way functionBased on the squaring one-way function Let p, q be two odd primes and pLet p, q be two odd primes and p≡≡qq≡≡3 mod 43 mod 4 Let n = p*qLet n = p*q Let xLet x00 be a seed which is a quadratic residue modulo n be a seed which is a quadratic residue modulo n

xxii = x = xi-1i-122 mod n mod n i≥1i≥1

OutputOutput

(x(x11, x, x22, …, x, …, xkk) )

yyii = x = xii mod 2 mod 2

Y = (yY = (y11yy22…y…ykk) ) pseudo-random sequence of K bits pseudo-random sequence of K bits

Page 19: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

Blum-Blum-Shub Generator - SecurityBlum-Blum-Shub Generator - Security

► Blum-Blum-Shub Generator is provably secureBlum-Blum-Shub Generator is provably secure Euler’s criterionEuler’s criterion Legendre symbolLegendre symbol Jacobi symbolJacobi symbol Composite quadratic residuesComposite quadratic residues

Page 20: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

Blum-Blum-Shub Generator - SecurityBlum-Blum-Shub Generator - Security

► Euler’s criterionEuler’s criterion Let p be an odd prime. Then a is a quadratic residue Let p be an odd prime. Then a is a quadratic residue

modulo p if and only if modulo p if and only if aa(p-1)/2(p-1)/2 ≡≡ 1 mod p 1 mod p

► Proof:Proof: Suppose a Suppose a ≡≡ x x22 mod p, then mod p, then

aa(p-1)/2 (p-1)/2 ≡ ≡ xx2*(p-1)/22*(p-1)/2 ≡ ≡ xxp-1p-1 ≡≡ 1 mod p (By Fermat’s little 1 mod p (By Fermat’s little theorem)theorem)

Suppose aSuppose a(p-1)/2(p-1)/2 ≡≡ 1 mod p. 1 mod p. Let g be a generator of the group Let g be a generator of the group (Zp

*, ·) , then a ≡≡ gk mod p for some integer kWe have aa(p-1)/2 (p-1)/2 ≡ ≡ gk*(p-1)/2 (p-1)/2 ≡≡ gk/2 /2 ≡≡ 1 mod p 1 mod pThen k must be even Then k must be even Let k=2m, then a Let k=2m, then a ≡≡ (g (gmm))2 2 mod p mod pwhich means that a is a quadratic residue modulo p which means that a is a quadratic residue modulo p

Page 21: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

Blum-Blum-Shub Generator - SecurityBlum-Blum-Shub Generator - Security

► Legendre symbolLegendre symbol Let p be an odd prime and a be an integerLet p be an odd prime and a be an integer

If a is a multiple of p, then aIf a is a multiple of p, then a(p-1)/2 (p-1)/2 ≡ ≡ 0 mod p0 mod p If a is a quadratic residue modulo p, then aIf a is a quadratic residue modulo p, then a(p-1)/2 (p-1)/2 ≡ ≡ 1 mod p1 mod p If a is a quadratic non-residue modulo p, then aIf a is a quadratic non-residue modulo p, then a(p-1)/2 (p-1)/2 ≡ -≡ -1 1

mod p since (amod p since (a(p-1)/2(p-1)/2))2 2 ≡ ≡ aap-1 p-1 ≡ ≡ 1 mod p1 mod p

Example: Let p=5Example: Let p=5(0/5)=0; (1/5)=(4/5)=1; (2/5)=(3/5)=-1 (0/5)=0; (1/5)=(4/5)=1; (2/5)=(3/5)=-1

Page 22: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

Blum-Blum-Shub Generator - SecurityBlum-Blum-Shub Generator - Security

► Jacobi symbolJacobi symbol Let n be an odd positive integerLet n be an odd positive integer ppii is the prime factor of n and e is the prime factor of n and eii is the power of the prime is the power of the prime

factorfactor (a/p(a/pii) is the Legendre symbol and (a/n) is the Jacobi symbol) is the Legendre symbol and (a/n) is the Jacobi symbol

Example: Let n=15=3*5Example: Let n=15=3*5(9/15)=(9/3)(9/5)=0(9/15)=(9/3)(9/5)=0(11/15)=(11/3)(11/5)=(2/3)(1/5)=(-1)(1)=-1(11/15)=(11/3)(11/5)=(2/3)(1/5)=(-1)(1)=-1(8/15)=(8/3)(8/5)=(2/3)(3/5)=(-1)(-1)=1(8/15)=(8/3)(8/5)=(2/3)(3/5)=(-1)(-1)=1(4/15)=(4/3)(4/5)=(1)(1)=1(4/15)=(4/3)(4/5)=(1)(1)=1

Page 23: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

Blum-Blum-Shub Generator - SecurityBlum-Blum-Shub Generator - Security

► Composite quadratic residuesComposite quadratic residues Let p, q be two odd primes and n = p*qLet p, q be two odd primes and n = p*q If (x/n) = (x/p)(x/q) = 1, thenIf (x/n) = (x/p)(x/q) = 1, then

either (x/p) = (x/q) = 1either (x/p) = (x/q) = 1 x is a quadratic residue modulo nx is a quadratic residue modulo nor (x/p) = (x/q) = -1 or (x/p) = (x/q) = -1 x is a pseudo-square modulo nx is a pseudo-square modulo n

It is difficult to determine if x is a quadratic residue modulo n It is difficult to determine if x is a quadratic residue modulo n as factoring n=p*q is difficultas factoring n=p*q is difficult

Example: Let n=15=3*5Example: Let n=15=3*5(8/15)=(8/3)(8/5)=(2/3)(3/5)=(-1)(-1)=1; 8 is a pseudo-(8/15)=(8/3)(8/5)=(2/3)(3/5)=(-1)(-1)=1; 8 is a pseudo-squaresquare(4/15)=(4/3)(4/5)=(1)(1)=1; (4/15)=(4/3)(4/5)=(1)(1)=1; 4 is a quadratic 4 is a quadratic residue residue

Page 24: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

Blum-Blum-Shub Generator - SecurityBlum-Blum-Shub Generator - Security

► Why pWhy p≡≡qq≡≡3 mod 43 mod 4 Such that every quadratic residue x has a square root y Such that every quadratic residue x has a square root y

which is itself a quadratic residue which is itself a quadratic residue Denote the square root of x to be y, that is, x=yDenote the square root of x to be y, that is, x=y2 2 mod nmod n Let p= 4m+3, then m=(p-3)/4. Let p= 4m+3, then m=(p-3)/4.

► y = xy = x(p+1)/4(p+1)/4 mod p is a principal square root of x modulo p mod p is a principal square root of x modulo p xx(p-1)/2(p-1)/2=x=x(4m+3-1)/2(4m+3-1)/2=x=x2m+12m+1=1 mod p => x=1 mod p => x2m+22m+2=x mod =x mod

p p =>(x =>(xm+1m+1))2 2 = x mod p => y = x= x mod p => y = xm+1 m+1 = x= x(p+1)/4(p+1)/4

► y is a quadratic residuey is a quadratic residue yy(p-1)/2(p-1)/2= (x= (x(p+1)/4(p+1)/4))(p-1)/2(p-1)/2= (x= (x(p-1)/2(p-1)/2))(p+1)/4(p+1)/4=1=1(p+1)/4(p+1)/4=1 mod p=1 mod p

Similar for q, y = xSimilar for q, y = x(q+1)/4(q+1)/4 mod q mod q Since n=p*q and x is a quadratic residue modulo n, then x Since n=p*q and x is a quadratic residue modulo n, then x

has a unique square root modulo n (Chinese remainder has a unique square root modulo n (Chinese remainder theorem)theorem)

As a result, the mapping from x to xAs a result, the mapping from x to x22 mod n is a bijection mod n is a bijection from the set of quadratic residues modulo n onto itselffrom the set of quadratic residues modulo n onto itself

Page 25: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

Blum-Blum-Shub Generator - ApplicationBlum-Blum-Shub Generator - Application

► The basis for the Blum-Goldwasser probabilistic The basis for the Blum-Goldwasser probabilistic public-key encryptionpublic-key encryption To generate the keystream during encryption and To generate the keystream during encryption and

decryption decryption

Page 26: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

Standardized PRNGsStandardized PRNGs

► General characteristicsGeneral characteristics Not been proven to be cryptographically secureNot been proven to be cryptographically secure Sufficient for most applicationsSufficient for most applications Using one-way functions such as hash function SHA-1 or Using one-way functions such as hash function SHA-1 or

block cipher DES with secret key kblock cipher DES with secret key k

► ExamplesExamples ANSI X9.17 GeneratorANSI X9.17 Generator FIPS 186 GeneratorFIPS 186 Generator

Page 27: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

ANSI X9.17 GeneratorANSI X9.17 Generator

► AlgorithmAlgorithm Let s be a random secret 64-bit seed, ELet s be a random secret 64-bit seed, Ek k be the DES E-D-E be the DES E-D-E

two-key triple-encryption with key k, and m be an integer two-key triple-encryption with key k, and m be an integer

I = EI = Ek k (D), where D is a 64-bit representation of the (D), where D is a 64-bit representation of the date/time with finest available resolutiondate/time with finest available resolution

For i=1,…,m doFor i=1,…,m do

xxii = E = Ek k (I (I XOR s))

s = Es = Ek k (x(xii XOR I) XOR I)

Return (xReturn (x11, x, x22, …x, …xmm) ) m pseudo-random 64-bit strings m pseudo-random 64-bit strings

► Used as an initialization vector or a key for DESUsed as an initialization vector or a key for DES

Page 28: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

FIPS 186 GeneratorFIPS 186 Generator

► Used for DSA private keysUsed for DSA private keys► AlgorithmAlgorithm

Let q be a 160-bit prime number, and m be an integerLet q be a 160-bit prime number, and m be an integer Let (b, G) = (160, DES) or (b, G) = (160..512, SHA-1)Let (b, G) = (160, DES) or (b, G) = (160..512, SHA-1) Let s be a random secret seed with b bitsLet s be a random secret seed with b bits Let t be a 160-bit constant, t= Let t be a 160-bit constant, t= 67452301 efcdab89 98badcfe

10325476 c3d2e1f0 For i=1…m doFor i=1…m do

Either select a b-bit string yEither select a b-bit string y ii, or set y, or set yii=0 (optional user =0 (optional user input)input)

zzii = (s + y = (s + yii) mod 2) mod 2bb

aaii = G(t, z = G(t, zii) mod q) mod q

s = (1 + s + as = (1 + s + aii) mod 2) mod 2bb

Return (aReturn (a11, a, a22, …, a, …, amm) ) m pseudo-random numbers in [0, q-1] m pseudo-random numbers in [0, q-1]

Page 29: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

FIPS 186 GeneratorFIPS 186 Generator

► Used for DSA per message secret numbersUsed for DSA per message secret numbers► AlgorithmAlgorithm

Let q be a 160-bit prime number, and m be an integerLet q be a 160-bit prime number, and m be an integer Let (b, G) = (160, DES) or (b, G) = (160..512, SHA-1)Let (b, G) = (160, DES) or (b, G) = (160..512, SHA-1) Let s be a random secret seed with b bitsLet s be a random secret seed with b bits Let t be a 160-bit constant, t= Let t be a 160-bit constant, t= efcdab89 98badcfe

10325476 c3d2e1f0 67452301 For i=1…m doFor i=1…m do

kkii = G(t, s) mod q = G(t, s) mod q

s = (1 + s + ks = (1 + s + kii) mod 2) mod 2bb

Return (kReturn (k11, k, k22, …, k, …, kmm) ) m pseudo-random numbers in [0, m pseudo-random numbers in [0, q-1]q-1]

Page 30: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

ReferencesReferences

1.1. D. Stinson. D. Stinson. Cryptography, Theory and PracticeCryptography, Theory and Practice. 3. 3rdrd Ed. Chapman Ed. Chapman & Hall/CRC, 2006& Hall/CRC, 2006

2. A. J. Menezes, P. C. Van Oorschot, and S. A. Vanstone. Handbook of applied cryptography. CRC Press, 1997

3. J. Hastad, R. Impagliazzo, L. Levin, and M. Luby. A pseudorandom generator from any one-way function. SIAM Journal on Computing, 28(4): 1364-1393, 1999

4. S. Goldwasser and M. Bellare. Lecture Notes on Cryptography. 2008. http://cseweb.ucsd.edu/~mihir/papers/gb.pdf

5. P. Junod. Cryptographic Secure Pseudo-Random Bits Generation: The Blum-Blum-Shub Generator. 1999. http://crypto.junod.info/bbs.pdf

6. M. J. Fischer. Pseudorandom Sequence Generation. Yale University. http://zoo.cs.yale.edu/classes/cs467/2006f/course/handouts/ho15.pdf

7. Federal Information Processing Standards Publication. Digital Signature Standard (DSS). 2000. http://csrc.nist.gov/publications/fips/archive/fips186-2/fips186-2.pdf

Page 31: Pseudo-random Number Generation Qiuliang Tang. Random Numbers in Cryptography ► The keystream in the one-time pad ► The secret key in the DES encryption

QuizQuiz

1.1. Name one criterion when considering a pseudo-random Name one criterion when considering a pseudo-random number generator to be cryptographically securenumber generator to be cryptographically secure

2.2. Name the one-way function that the Blum-Micali generator Name the one-way function that the Blum-Micali generator is based onis based on

3.3. What are the four concepts that are used when considering What are the four concepts that are used when considering the security of the Blum-Blum-Shub generator ?the security of the Blum-Blum-Shub generator ?

4.4. Let p be an odd prime and p Let p be an odd prime and p ≡≡3 mod 4. Let x be a quadratic 3 mod 4. Let x be a quadratic residue modulo p. Let y be the principal square root of x. residue modulo p. Let y be the principal square root of x. What is y in terms of x and p ?What is y in terms of x and p ?

5.5. Name the two standardized pseudo-random number Name the two standardized pseudo-random number generatorsgenerators

Bonus:Bonus:

What are the two objectives when designing a pseudo-What are the two objectives when designing a pseudo-random number generator ?random number generator ?