Document 12919310

advertisement
Lec 10 : Data Security
Stream Cipher Systems
1
3.8 MEASURE OF RUNDOMNESS:
3.9.1 DEFINITION:
Run: sequence of identical bits (0 or 1)
Ex.01110000111
Runs are 0,111, 0000, 111
Gap: runs of zeroes
1000011 contain the gap 0000
Block: runs of ones
1111001110 contain blocks 1111,111 For with period P , Sm + p = Sm
Auto correlation function:
For any constant d, if we compare the sequence of S with Sd (after shifting d
displacement), then Auto correlation function C(t) = (A - D) / P Where :
A = no. Of identical bits.
P = period of the sequence
D = period of different bits
d = displacement 0 <= d < p
 RANDOMNESS CHARACTERISTICS:
1. If p is even then ones equal zeros, other wise they differ by one only.
i
2. 1/2 of runs with length of 1 , 1/4 of runs with length of 2 , generally l / 2 = i.
3. Auto correlation function (for d < > 0 out of phase) has constant value. Where d is
the displacement.
1. FREQUENCY TEST:
used to ensure that there is roughly the same number of O's and 1's using the
following formula:
X2 =(n0 – n1)2 / n
X2 = 0 if n0 = n1
For good sequence 0 < X2 < 3.84
Lec 10 : Data Security
Stream Cipher Systems
2
2. SERIAL TEST:
The serial test is used to ensure that the transition probabilities are reasonable.
This will give as some level of confidence that each bit is independent of its
predecessor suppose .01 occurs n 01, 10 occurs n0, 00 occurs n00…and 11 occurs
n11 times.
N01+n10=n0 or n0-1 , n10+n11 = n01 or n1-1 and
N10 + N01 + N00 + N11 = N-1 AND
X2 = 4/n - 1 Σ(nij)2 - 2/n Σ(ni)2 + 1
For good sequence X2 <= 5.99.
Ideally we wont:
n01 = n10 = n00 = n11 ≈ n-1/4
3. POKER TEST:
For any binary sequence of length m, there are 2^ different possibilities. In this test
we partition our sequence into blocks of size m (sequence of ones), and then we
count the frequency of each type of sections of length m in the sequence. If the
frequencies are
f0, f1,.. fm-1 We compute:
X2 = 2m / F Σ (Xi)2 / mi) – F
Where F = Σ fi = n/m
4. AUTO CORRELATION TEST:
For a given sequence of n bits S1,..Sn then
A (d) = ∑ai ai+d
0 <= d <= n-1
A (o) =∑ai = ni
If the sequence has ni of zeros and n1 of ones then
µ= n12 (n-d) / n2
The test will pass if
X2 = (A(d)- µ)2 /µ
X2 <=3.841 for all values of d
Lec 10 : Data Security
Stream Cipher Systems
3
5. RUNS TEST:
Devide the sequence into blocks and gaps, let r0i be the number of gaps of length i
and r1i be the number of blocks of length i. If r0 and r1 are number of gaps and
blocks respectively then:
r0 = ∑roi and r1 = ∑ r11
This test applied after the sequence had passed the serial test, then we would expect
about 1/2 the gaps with length 1 , 1/4 of gaps of length 2, and so on.
Ideally 1/2i of runs having length i.
Example:
Given
the
following
sequence
of
minimal
length
0101011101100011111001101001000
1. Frequency test
n0=15
n1=31-15=16
X2 = (15-16)2 / n = (-1)2 /31 = 1/31 = 0.0322 0.322 < 3.841
2.Serial test:
n00=6
n01=8
n10=8
n11=8
X2 = 4/n-l (n002 + n012 + n102 + n112 ) - 2/n (n02+n12) + 1
= 4/30 (36 + 64 + 64 + 64) - 2/31(152 +162) + 1
=30.4 - 31.032 + 1 = 0.368 0.368 < 5.99
Pass
Pass
of
31.
Lec 10 : Data Security
Stream Cipher Systems
also
n00+ n01 = n0 -1 =6+8 =14 = n0 - 1
n11+n10=n11 =8+8=16=n1
n00+n01+n10+n11 = 6+8+8+8= 30 = n-l
n-1/4 = 30/4 = 7.5 = 8
3.Poker test
m=5 F=n/m=31/5=6 Then we have 6 blocks of 5 digit each
01010 11101 10001 11110 01101 00100 0
We count Xi where i is number of ones in each block
X 0=0
X1=1
X2=2
X3=1
X4=2
-.
X5 = 0
X2 = 25/6 ∑ (Xi)2 /5i - 6
= 5.33(0 + 1/5 + 4/10 + 1/10 + 4/5 + 0) - 6
=5.33(2 + 4 + 1 + 8/10) – 6
=5.33*15/10 - 6 =1.995
Checking x2 table with degree of freedom of 22 - 1 = 31 then the test is pass
4.runs test
r0=9
r1=8
n01=8= r0-1
n10=8= r1
n11 =n1 –r1 = 16 - 8 = 8
4
Lec 10 : Data Security
Stream Cipher Systems
n00 = 6= n0-r0 = 15-9 = 6
r01=5
r11=4
r02=2
r12=2
r03=2
r13=1
r14=0
r15=1
5• Auto correlation test
n0= 15 n1=16
µ= (16)2 (31-l) / (31)2 =7.99 for d=l
µ = 7.72
d=2
µ = 7.45
d=3
010101110110001111100110100100
101011101100011111001101001000
A(l)=8
X2 = (8 - 7.99)2 / 7.99 = 0.0000125
010101110110001111100110100100
010111011000111110011010010000
A(2)=8
X2=(8-7.72)2/ 7.72= 0.01
010101110110001111100110100100
101110110001111100110100100000
A(3)=8
X2 = (8-7.45)2 / 7.45 = 0.04 And so on
X2 <= 3.84 for all value of d
5
Lec 10 : Data Security
Stream Cipher Systems
6
3.9 STREAM CIPHER CRYPTANALYSIS:
Stream ciphers have a wide variety of design choices, and hence, a large
number of complex stream generators have been designed with different periods and
linear complexities. On the other hand different approaches have been used by many
researchers to analyze stream ciphers, and have successfully cracked many of such
systems.
One of the earliest approaches are the matrix approach,and the Berlekamp
Massey approach. Both methods used a known-plaintext attack to determine the
linear equivalence and the primitive polynomial of the shift register.
Thomas Siegenthler presented a divide-and-conquer approach, which often called
correlation~attack, and shown that correlation immunity can be precisely defined.
The basic idea behind correlation attack is to identify some correlation between the
output of the generator and the output of one of its internal pieces, then by observing
the output sequence, information can be obtainer' about the internal output. Using
the collected information and other correlation about other internal output until the
entire generator is broken. More efficient correlation attack based on using algebraic
tools to determine the LFSR instead of the exhaustive search, this is called fast
correction attack. Artificial neural networks is been used in a known-plaintext attack
against linear feedback shift registers to obtain the linear equivalence, characteristic
polynomial, and restore missing bits in the output sequences of the shift register.
More recently, two ciphertext-only attack researches has been introduced; the first
one
uses Genetic Algorithms while the seco nd one
uses Adaptive Genetic
Programming. Both researches use the statistical properties of the natural language
heavily in formulating the fitness function. These language features make the
ciphertext-only attack possible, since it is used for measuring the fitness of the
individual programs in a population of the genetic programming.
Download