Download presentation
Presentation is loading. Please wait.
Published byClaude Day Modified over 9 years ago
1
Cryptography and Network Security Chapter 7 Fifth Edition by William Stallings Lecture slides by Lawrie Brown
2
Chapter 7 – Stream Ciphers and Random Number Generation The comparatively late rise of the theory of probability shows how hard it is to grasp, and the many paradoxes show clearly that we, as humans, lack a well grounded intuition in this matter. In probability theory there is a great deal of art in setting up the model, in solving the problem, and in applying the results back to the real world actions that will follow. — The Art of Probability, Richard Hamming
3
Random Numbers many uses of random numbers in cryptography nonces in authentication protocols to prevent replay nonces in authentication protocols to prevent replay session keys session keys public key generation public key generation keystream for a one-time pad keystream for a one-time pad in all cases its critical that these values be statistically random, uniform distribution, independent statistically random, uniform distribution, independent unpredictability of future values from previous values unpredictability of future values from previous values true random numbers provide this care needed with generated random numbers
4
Pseudorandom Number Generators (PRNGs) often use deterministic algorithmic techniques to create “random numbers” although are not truly random although are not truly random can pass many tests of “randomness” can pass many tests of “randomness” known as “pseudorandom numbers” created by “ Pseudorandom Number Generators (PRNGs)”
5
Random & Pseudorandom Number Generators
6
PRNG Requirements randomness uniformity, scalability, consistency uniformity, scalability, consistency unpredictability forward & backward unpredictability forward & backward unpredictability use same tests to check use same tests to check characteristics of the seed secure secure if known adversary can determine output if known adversary can determine output so must be random or pseudorandom number so must be random or pseudorandom number
7
PRNG Requirements Randomness Uniformity – at any point in the generation of the PRN sequence, the occurrence of a zero or a one is equally likely (i.e., p = 0.5) Uniformity – at any point in the generation of the PRN sequence, the occurrence of a zero or a one is equally likely (i.e., p = 0.5) Scalability – any test for randomness applicable to a sequence can also be applied to any random subsequence (it should pass) Scalability – any test for randomness applicable to a sequence can also be applied to any random subsequence (it should pass) Consistency – the characteristics of the PRN sequence of the PRNG must not depend on the seed used Consistency – the characteristics of the PRN sequence of the PRNG must not depend on the seed used
8
Linear Congruential Generator common iterative technique using: X n+1 = (aX n + c) mod m given suitable values of parameters can produce a long random-like sequence suitable criteria to have are: function generates a full-period function generates a full-period generated sequence should appear random generated sequence should appear random efficient implementation with 32-bit arithmetic efficient implementation with 32-bit arithmetic note that an attacker can reconstruct sequence given a small number of values have possibilities for making this harder
9
Blum Blum Shub Generator based on public key algorithms use least significant bit from iterative equation: x i = x i-1 2 mod n x i = x i-1 2 mod n where n=p.q, and primes p,q=3 mod 4 where n=p.q, and primes p,q=3 mod 4 unpredictable, passes next-bit test 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
10
Using Block Ciphers as PRNGs for cryptographic applications, can use a block cipher to generate random numbers often for creating session keys from master key CTR X i = E K [V i ] OFB X i = E K [X i-1 ]
11
ANSI X9.17 PRG Dti = date and time
12
Stream Ciphers process message bit by bit (as a stream) have a pseudo random keystream combined (XOR) with plaintext bit by bit randomness of stream key completely destroys statistically properties in message C i = M i XOR StreamKey i C i = M i XOR StreamKey i but must never reuse stream key otherwise can recover messages (cf book cipher) otherwise can recover messages (cf book cipher)
13
Stream Cipher Structure
14
Stream Cipher Properties some design considerations are: long period with no repetitions long period with no repetitions statistically random statistically random depends on large enough key depends on large enough key large linear complexity large linear complexity properly designed, can be as secure as a block cipher with same size key but usually simpler & faster
15
RC4 a proprietary cipher owned by RSA DSI another Ron Rivest design, simple but effective variable key size, byte-oriented stream cipher widely used (web SSL/TLS, wireless WEP/WPA) key forms random permutation of all 8-bit values uses that permutation to scramble input info processed a byte at a time
16
RC4 Key Schedule starts with an array S of numbers: 0..255 use key to well and truly shuffle S forms internal state of the cipher for i = 0 to 255 do S[i] = i // init S to identity T[i] = K[i mod keylen])// extend key j = 0// location of swap for i = 0 to 255 do // for each element // update location of swap j = (j + S[i] + T[i]) (mod 256) swap (S[i], S[j])// permute
17
RC4 Encryption encryption continues shuffling array values sum of shuffled pair selects "stream key" value from permutation XOR S[t] with next byte of message to en/decrypt i = j = 0 for each message byte M i i = (i + 1) (mod 256)// rotate thru S j = (j + S[i]) (mod 256)// update swap location swap(S[i], S[j])// update permutation S t = (S[i] + S[j]) (mod 256)// pick key index C i = M i XOR S[t]// encrypt
18
RC4 Overview initialize permutation extend key shuffle permutation update permutation
19
RC4 Security claimed secure against known attacks However, have some analyses, some on the verge of practical However, have some analyses, some on the verge of practical first 256 bytes have bias first 256 bytes have bias multiple keys/same plaintext attack multiple keys/same plaintext attack result is very non-linear since RC4 is a stream cipher, must never reuse a key have a concern with WEP, but due to key handling rather than RC4 itself
20
RC4 Security Probability of recovery of plaintext from 2 24 ciphertexts vs. byte position
21
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 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 CPUs – Intel Ivy Bridge, Via Padlock problems of bias or uneven distribution in signal have to compensate for this when sample, often by passing bits through a hash function have to compensate for this when sample, often by passing bits through a hash function best to only use a few noisiest bits from each sample best to only use a few noisiest bits from each sample RFC4086 recommends using multiple sources + hash RFC4086 recommends using multiple sources + hash
22
Intel Ivy Bridge TRNG Entropy Source http://electronicdesign.com/learning-resources/understanding-intels-ivy-bridge-random-number-generator Negative feedback RS-NOR latch Detect when settled, and store output Entropy Source - shared by all cores - RS-NOR latch becomes metastable when input De-asserted - Output settles to 0 or 1, depending on thermal Noise - Feedback helps reach Metastable state - Output detects when settled, stores result, reasserts input
23
Intel Ivy Bridge TRNG DRNG output fed to all processors hardware instruction-level access https://software.intel.com/en-us/articles/intel-digital-random-number-generator-drng-software-implementation-guide
24
Intel Ivy Bridge TRNG - Output is biased due to feedback - 800 MHz clock Conditioner outputs 256 bits every few microseconds Expand rate using NIST SP800-90 PRNG to rate of 800 MBps
25
Intel Ivy Bridge TRNG Health tests are basic, ad hoc, but detect RNG failure Output zero with carry zero on failure (can't read a 0) Built-In Self Test
26
Trustworthiness of TRNGs Design appears to be very sound Possible back doors Snowden leaks show NSA coerced hardware and software manufacturers to introduce back doors Snowden leaks show NSA coerced hardware and software manufacturers to introduce back doors Intel and Via hardware considered suspect Intel and Via hardware considered suspect Approach by FreeBSD Use hardware PRNG as a source Use hardware PRNG as a source Pass through Yarrow PRNG algorithm when producing cryptographically significant random numbers Pass through Yarrow PRNG algorithm when producing cryptographically significant random numbers See: https://www.schneier.com/paper-yarrow.pdf https://www.schneier.com/paper-yarrow.pdf
27
Published Sources a few published collections of random numbers Rand Co, in 1955, published 1 million numbers generated using an electronic roulette wheel generated using an electronic roulette wheel has been used in some cipher designs cf Khafre has been used in some cipher designs cf Khafre earlier Tippett in 1927 published a collection issues are that: these are limited these are limited too well-known for most uses too well-known for most uses
28
Summary pseudorandom number generation stream ciphers RC4 true random numbers
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.