cursus cryptografie - homepages of uva/fnwi staff
TRANSCRIPT
STROOMCIJFER
❖
Cursus Cryptografie
13-03-2017
Onderwerpen• Principe• Schuifregister• Lineair schuifregister• Periode en kwaliteit• Niet-lineaire systemen• Lineaire complexiteit• Filtering• LFSR-combinaties• Correlatieaanval• Kloksturing
2
Stroomvercijfering
3
�
Vernam vercijfering
Gilbert S. Vernam, 1917telexcode + sleuteltape
WW-II Führer-Hauptkwartier ↔ Wehrmacht-centraLorenz Schlüßelzusatz SZ40/42 (Bletchley Park ‘Tunny’)Siemens Geheimschreiber T52-a/e (Zweden, Arne Beurling)
4❖
Baudot-code voor telex
5
SZ42
T52
T52
6❖
Stroomvercijferen
ontcijferingcijfer 00101111 11001001 00101010 10111111 00101101
sleutel 01100111 10101000 01000110 11010011 01000010klaar 01001000 01100001 01101100 01101100 01101111ASCII H a l l o
reconstructie sleutelstroomcijfer 00101111 11001001 00101010 10111111 00101101klaar 01001000 01100001 01101100 01101100 01101111
sleutel 01100111 10101000 01000110 11010011 01000010❖
vercijferingASCII H a l l oklaar 01001000 01100001 01101100 01101100 01101111
sleutel 01100111 10101000 01000110 11010011 01000010cijfer 00101111 11001001 00101010 10111111 00101101
KwaliteitGolomb criteria (Shift Register Sequences, 1967)
• aantal 1’en en 0’en zo goed mogelijk gelijk
• run = rij gelijke bits || blok = rij 1’en || gat = rij 0’en evenveel blokken als gaten van elke lengte aantal gaten en blokken kleiner naarmate langer
• uitfase-autocorrelatie is een constantep is de periode δ is de verschuiving 0,1...p -1
7
C � = �p
p�X
i=si � si+�
❖
Schuifregister
registertoestand is S7S6S5S4S3S2S1S0
opeenvolging S7S6S5S4S3S2S1S0 (t -1) ➞ S7S6S5S4S3S2S1S0 (t)
opbouw bituitvoer op tijdstip t ...st-2 st-1 ➞ st-2 st-1 st
st = S0(t), S0(t) = S1(t) ... S7(t) = f(S0...S7)(t)
8
S S S S S S S S st
❖
Terugkoppelfunctie
• voorbeeld f = 1 + S0 + S1S3 +S2S4 + S1S2S3S4
• algebraïsche normaalvormf = 1 + S0 + ... + Sn + S0S1 + ... + Sn-2Sn-1 + S0...Sn-1
• n-traps register heeft 22n terugkoppelfuncties
• terugkoppelfunctie is te bepalen uit registertoestanden
• reeks opeenvolgende registertoestanden
- losse cyclussen
- vertakkingen
• maximale periode 2n (De Bruin-rij, aantal 22n-1-n)
9❖
Voorbeelden
10
f = + S + S S S S
f = + S + S + S S S S
❖
Vertakkingspunten
11
· · · S S S t
· · · S0S0S0 t
· · · S S S t + · · · S S S t +!
S 6= S0 , i 6= ! Si = S0i
f S ,S ,S = S + f S ,S
❖
Functie berekenen
12❖
Lineair schuifregister
13
C C C C C C C C
stS S S S S S S S
f S = C S � C S � · · · � Cn� Sn�
=n�X
i=CiSi Ci 2 { , }
st = Cn� st� � · · · � C st�n
=nX
i=Cn�ist�i
❖
14
Terugkoppelfunctie
• als C0 = C1 = 0 verkorting tot vertraagd 6-traps register dus als regel C0 = 1
• Als S0 = S1 = … = Sn-1 = 0 dan st = 0 voor alle t
• er zijn daarom 2n-1 registertoestanden ≠ 0…0• dus maximaal mogelijke periode = 2n-1 maximaalrij
C C C C C C C C
stS S S S S S S S
• omdat f = S0 + S1 +…+ Sn-1 geen vertakkingen
❖
15
Werking LFSR
C7 C4 C2 C0
S7 S6 S5 S4 S3 S2 S1 S0
0
01 1 1 11 0 000 0 0 11 1 1 1
❖
1001
LFSR = Lineair Feedback Shift Register
maximaalrij
16
C C C C C C
C C C C C C
C C C C C C
C C C C C C
t S S S st
p
p
niet-maximaalrij
17
C C C
C C C
C C C
C C C
C C C
C C C
C C C
C C C
t S S S st
p
p
p
p
Alternatieve nummering
18
C C C C C C C C
stS S S S S S S S
C C C C C C C C
stS S S S S S S S
f S =n�X
i=CiSi st =
nX
i=Cn�ist�i
f S =nX
i=CiSn�i st =
nX
i=Cist�i
Periode LFSR
19
Periode LFSR
• teller hoogstens van graad n -1 en noemer van graad n
• teller representeert begintoestand van het register
• noemer onafhankelijk begintoestand = karakteristieke functie
• in alternatieve nummering karakteristieke functie is het reciprook polynoom f *(x) = xn f (x -1)
20
G x =P
n
i= C
n�i
x
i{s�i
x
�i + · · · + s� x
� }Pn
i= C
n�i
x
i
G x = s x
f x
S = · · · G x =f x
❖
Periode LFSR
21
Periode LFSR maximaal
22
Karakteristieke functie
23❖
= � n �n
f x = x + x + x + x +
C C C C
S S S S S S S S
Golomb #1
• Golomb #1: aantal enen en nullen zo gelijk mogelijk
• kijk in maximaalrij naar het bit in S0 elk bit komt erlangs
• er zijn in totaal 2n bitcombinaties van n bits
• alle bitcombinaties behalve 00…00 worden doorlopen
• hiervan 2n-1 met bit 1 in S0
• hiervan 2n-1-1 met bit 0 in S0
• verschil 1 is best mogelijke bij oneven aantal
• conclusie LFSR voldoet aan Golomb #1
24❖
Golomb #2• Golomb #2: frequentie runs neemt af met hun lengte
• blok van k 1’en betekent 01…10• resteren n-k-2 bits dus 2n-k-2 blokken van lengte k
• idem 2n-k-2 gaten 10…01 van lengte k
• samen 2n-k-1 runs van lengte k
• bijtellen bijzondere gevallen 11…11 en 10…00• totaal 2 + ∑k=1..n-2 2n-k-1 = 2n-1 runs
• fractie runs van lengte k is 2n-k-1/2n-1 = 1/2k
• conclusie LFSR voldoet aan Golomb #2
25❖
Golomb #3• Golomb #3: uitfase autocorrelatie is constant
• uitfase autocorrelatie is
• combinatie van twee verschoven rijen is weer een andere rij uit de serie
• omdat 0⊕0=1⊕1=0 en 0⊕1=1⊕0=1 is aantal 0’en het aantal overeenkomstige in de combinatie
• resultaat voor autocorrelatie -1/(2n-1) is constant
• conclusie LFSR voldoet aan Golomb #3
26
C � = �p
p�X
i=si � si+�
❖
LFSR cryptoanalyse
27
Niet-lineaire systemen• LFSR’s worden benut als bouwstenen• Lineaire complexiteit als maat• Filtering
- multiplex generator- filterfunctie
• Registercombinaties- Pless, Geffe, Bruer, som generator- correlatieaanval, correlatie-immuniteit
• Kloksturing- stop-and-go- krimpgenerator- A5/1 en A5/2 voor GSM
28
Lineaire complexiteit• lineaire complexiteit is een equivalent LFSR
• Berlekamp-Massey algoritme
- startregister reproduceert begin van bitrij- produceer bits zolang nieuw bit matcht- breidt register uit bij mismatch
• random bitrij van n bits lineaire complexiteit plm. n/2
• meer hogere termen in algebraïsche normaalvorm terugkoppelfunctie verhogen lineaire complexiteit S1 en S1S4S7 lage orde, S3S4S7S9S12S17 hoge orde
29❖
Voorbeeld complexiteit
30
Multiplexgenerator
voorbeeld cryptoanalyse zie syllabus
31
Filterfuncties
32
voorbeeld cryptoanalyse zie syllabus
f = S � S � S � S S � S � S � S � S S � S Sf = S S � S S � Sf = S S � S S � S S � Sf = S + S � S + S � S + S � S S S
Registercombinatie
33
S1 S2 f0 0 00 1 11 0 11 1 0
LFSR � LFSR =f x
+g x
= f x + g x
f x g x
f x g x
n
f
+ n
g
n
f � ,
n
g ��
�
f S = S + S
JK-flipflop
34
S1 S2 f0 0 st-1
0 1 01 0 11 1 1+st-1
! s t s t
s =! s =! s =
f = S + + S + S si�
❖
Pless generator
35
Geffe-generator
• periode is kgv van LFSR1, LFSR2, LFSR3
• lineaire complexiteit is n1 + n1n2 + n2n3
• correlatie 75% tussen uitvoer en LFSR1/LFSR2
36
S1 S2 S3 f0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 11 0 1 11 1 0 01 1 1 1
⌦
⌦
�
f = S + S S + S S
Bruer-generator
37
S1 S2 S3 f0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 01 0 1 11 1 0 11 1 1 1
f = S S + S S + S S
• periode is kgv van LFSR1, LFSR2, LFSR3
• lineaire complexiteit is n1n2 + n1n3 + n2n3
• correlatie 75% tussen uitvoer en LFSR1,LFSR2,LFSR3
Siegenthaler-aanval
• voor elke begintoestand LFSRi output s vergelijken met output z van totale combinatie
• correlatie is ∑t=1,m st⊕zt voor m ≤ 2n-1
• correlatie hoog als kans st=zt afwijkt van 50%
• correlatie-immuniteit slechter met meer hogere termen in algebraïsche normaalvorm
• Pless-generator LSFR19 vergt ± 350 bits
• als voorbeeld Geffe-generator met kleine LFSR’s en correlatiesom over 100 bits
38❖
Correlatie-aanval op Geffe
39
LFSR-1 LFSR-3
LFSR-2
Aanval op cijfertekst
• effect minder duidelijk dan bij sleutelstroom
• kans dat LFSR-bit en cijfertekstbit gelijk zijn:- p = 1 - p0 - qlfsr(1 - 2p0)- p0 is kans op klaartekstbit = 0- qlfsr is correlatie tussen lfsr en generator
• p0 kan per bit verschillen bijvoorbeeld hoogste ASCII-bit is meestal 0
40
Meier-Staffelbach• combineer meer outputbits in vergelijkingen
• voorbeeld f(x) = 1 + x + x15
(1) outputbit is st = st-14 + st-15 (2) bit in S0 is st+14 = st + st-1 (3) bit in S1 is st+15 = st+1 + st
• vervang s (output LFSR) door z (output generator) bereken kans dat vergelijkingen nog opgaanbenader iteratief st uit zt voor een reeks t
• vergroot aantal vergelijkingen met f(x)n
zelfde uitvoer zelfde aantal taps als n = 2k
• effectiviteit aanval neemt af als meer taps in f(x)41❖
Mastersectie
Somgenerator
42
• periode is LFSR1 x LFSR2
• in eerste orde correlatie-immuun
• anticorrelatie 75% tussen uitvoer en σ
S1 S2 σ f σ0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1
�t�
⌃
st = at � bt � �t��t = atbt � at � bt �t�
Stop-and-go
43
• periode is LFSR1 x LFSR2 x LFSR3
• lineaire complexiteit is periodeLFSR1 x n2 + n3
• correlatie tussen twee opeenvolgende bits en LFSR3
�
f = S � S
stop-and-go alternerend stop-and-go
�S
+ S
f = S � S
Krimpgenerator
44
s
t
= S t S t =S = + x
S = + x + x
s
t
= S t + S t =S = + x + x
45
GSM-generator
�
f
f
f
f1 = 1 + x + x2 + x5 + x19
f2 = 1 + x + x22
f3 = 1 + x + x2 + x15 + x23