* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download i+1
Mathematics of radio engineering wikipedia , lookup
Georg Cantor's first set theory article wikipedia , lookup
List of prime numbers wikipedia , lookup
Large numbers wikipedia , lookup
Infinite monkey theorem wikipedia , lookup
Collatz conjecture wikipedia , lookup
Central limit theorem wikipedia , lookup
Elementary mathematics wikipedia , lookup
Quadratic reciprocity wikipedia , lookup
Proofs of Fermat's little theorem wikipedia , lookup
Index of cryptography articles wikipedia , lookup
Stream cipher diagram + Recall: One-time pad in Chap. 2 + Advantage of stream cipher With proper design of PRNG, stream cipher is as secure as block cipher of comparable key length (?) Stream cipher is faster than block cipher Disadvantage of stream cipher never reuse the same key c.f. you can reuse keys in block cipher Ciphertext 1 = plaintext 1 keystream Ciphertext 2 = plaintext 2 keystream Ciphertext 1 Ciphertext 2 = (plaintext 1 keystream) (plaintext 2 keystream) = plaintext 1 plaintext 2 If plaintexts are text string, credit card no., or other streams with known properties, then cryptanalysis may be successful. ?[DAWS96] Random Numbers many uses of random numbers in cryptography keystream for a one-time pad nonces in authentication protocols to prevent replay session keys public key generation Requirement for a sequence of random numbers: Randomness Uniform distribution: freq. of occurrence of each number should be approximately the same Independence: no one value in the seq. can be inferred from the others Unpredictability cannot infer future sequence on previous values Application: randomization Goal: determine if a given number N is prime Brute-force search: divide N by odd integers less than N => N tests N=10150 => 10150 Randomization: test using a (sufficiently long) sequence of randomly chosen integers Source of random numbers: 1. Natural Random Noise best source is natural randomness in real world find a regular but random event and monitor do generally need special h/w to do this eg. radiation counters, radio noise, audio noise, thermal noise in diodes, leaky capacitors, mercury discharge tubes etc starting to see such h/w in new CPU's problems of bias or uneven distribution in signal have to compensate for this when sample and use best to only use a few noisiest bits from each sample 2. Published Sources a few published collections of random numbers Rand Co, in 1955, published 1 million numbers generated using an electronic roulette wheel has been used in some cipher designs cf Khafre earlier Tippett in 1927 published a collection issues are that: these are limited too well-known for most uses 3. Pseudorandom Number Generators (PRNGs) algorithmic technique to create “random numbers” deterministic algorithm although not truly random can pass many tests of “randomness” Linear Congruential Generator common iterative technique using: Xn+1 = (aXn + c) mod m X0: initial seed How to choose suitable values of parameters ? a=1, c=1 a=7, c=0, m=32, X0=1 {1, 7, 17, 23, 1, …} Congruence: Integers Modulo 7 Example ... -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ... Z7: residue class modulo n congruence 一致(from Gauss) Integers a and b are congruence modulo n : a ≡ b mod n Linear Congruential Generator (cont.) Xn+1 = (aXn + c) mod m Suitable criteria to have are: 1. function generates a full-period {1,…, m-1} 2. generated sequence should appear random 3. efficient implementation (eg. with 32-bit arithmetic) To satisfy 1. c=0, m is a prime, and certain a (?) 3. For 32-bit arithmetic, m = 232 – 1 (prime?) Xn+1 = (aXn) mod (232 - 1) 2. Few a satisfy random: ex. a=75 =16807 Primitive root Attacks on linear congruential method All parameters are known A single number is discovered, subsequent numbers are known Only know the linear congruential method Know a small sequence of numbers X0 X1 = (aX0 + c) mod m X2 = (aX1 + c) mod m X3 = (aX2 + c) mod m Cryptographically generated random numbers can use block cipher to generate numbers 1. use Counter Mode Xi = EKm[i] (protected) Cryptographically generated random numbers (cont.) 2. use Output Feedback Mode Xi = EKm[Xi-1] Looks like RC4 stream cipher Cryptographically generated random numbers (cont.) 3. ANSI X9.17 PRNG (one of the strongest PRNGs) uses date-time + seed inputs and 3 triple-DES encryptions to generate new seed & random (triple-DES keys) (date/time) (next seed) (seed) (random output) Blum Blum Shub (BBS) random bit generator based on public key algorithms use least significant bit from iterative equation: xi+1 = xi2 mod n Bi+1 = xi+1 mod 2 where n=p•q, and primes p,q=3 mod 4 n=192649 =383x503 Blum Blum Shub (BBS) random bit generator (cont.) unpredictable, passes next-bit test (prediction based on previous k bits) security rests on difficulty of factoring n is unpredictable given any run of bits slow, since very large numbers must be used too slow for cipher use, good for key generation