Cursus Cryptografie - Homepages of UvA/FNWI staff

45
STROOMCIJFER Cursus Cryptografie 13-03-2017

Transcript of Cursus Cryptografie - Homepages of UvA/FNWI staff

Page 1: Cursus Cryptografie - Homepages of UvA/FNWI staff

STROOMCIJFER

Cursus Cryptografie

13-03-2017

Page 2: Cursus Cryptografie - Homepages of UvA/FNWI staff

Onderwerpen• Principe• Schuifregister• Lineair schuifregister• Periode en kwaliteit• Niet-lineaire systemen• Lineaire complexiteit• Filtering• LFSR-combinaties• Correlatieaanval• Kloksturing

2

Page 3: Cursus Cryptografie - Homepages of UvA/FNWI staff

Stroomvercijfering

3

Page 4: Cursus Cryptografie - Homepages of UvA/FNWI staff

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

Page 5: Cursus Cryptografie - Homepages of UvA/FNWI staff

5

SZ42

T52

T52

Page 6: Cursus Cryptografie - Homepages of UvA/FNWI staff

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

Page 7: Cursus Cryptografie - Homepages of UvA/FNWI staff

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+�

Page 8: Cursus Cryptografie - Homepages of UvA/FNWI staff

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

Page 9: Cursus Cryptografie - Homepages of UvA/FNWI staff

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❖

Page 10: Cursus Cryptografie - Homepages of UvA/FNWI staff

Voorbeelden

10

f = + S + S S S S

f = + S + S + S S S S

Page 11: Cursus Cryptografie - Homepages of UvA/FNWI staff

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

Page 12: Cursus Cryptografie - Homepages of UvA/FNWI staff

Functie berekenen

12❖

Page 13: Cursus Cryptografie - Homepages of UvA/FNWI staff

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

Page 14: Cursus Cryptografie - Homepages of UvA/FNWI staff

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

Page 15: Cursus Cryptografie - Homepages of UvA/FNWI staff

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

Page 16: Cursus Cryptografie - Homepages of UvA/FNWI staff

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

Page 17: Cursus Cryptografie - Homepages of UvA/FNWI staff

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

Page 18: Cursus Cryptografie - Homepages of UvA/FNWI staff

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

Page 19: Cursus Cryptografie - Homepages of UvA/FNWI staff

Periode LFSR

19

Page 20: Cursus Cryptografie - Homepages of UvA/FNWI staff

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

Page 21: Cursus Cryptografie - Homepages of UvA/FNWI staff

Periode LFSR

21

Page 22: Cursus Cryptografie - Homepages of UvA/FNWI staff

Periode LFSR maximaal

22

Page 23: Cursus Cryptografie - Homepages of UvA/FNWI staff

Karakteristieke functie

23❖

= � n �n

f x = x + x + x + x +

C C C C

S S S S S S S S

Page 24: Cursus Cryptografie - Homepages of UvA/FNWI staff

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❖

Page 25: Cursus Cryptografie - Homepages of UvA/FNWI staff

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❖

Page 26: Cursus Cryptografie - Homepages of UvA/FNWI staff

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+�

Page 27: Cursus Cryptografie - Homepages of UvA/FNWI staff

LFSR cryptoanalyse

27

Page 28: Cursus Cryptografie - Homepages of UvA/FNWI staff

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

Page 29: Cursus Cryptografie - Homepages of UvA/FNWI staff

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❖

Page 30: Cursus Cryptografie - Homepages of UvA/FNWI staff

Voorbeeld complexiteit

30

Page 31: Cursus Cryptografie - Homepages of UvA/FNWI staff

Multiplexgenerator

voorbeeld cryptoanalyse zie syllabus

31

Page 32: Cursus Cryptografie - Homepages of UvA/FNWI staff

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

Page 33: Cursus Cryptografie - Homepages of UvA/FNWI staff

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

Page 34: Cursus Cryptografie - Homepages of UvA/FNWI staff

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�

Page 35: Cursus Cryptografie - Homepages of UvA/FNWI staff

Pless generator

35

Page 36: Cursus Cryptografie - Homepages of UvA/FNWI staff

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

Page 37: Cursus Cryptografie - Homepages of UvA/FNWI staff

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

Page 38: Cursus Cryptografie - Homepages of UvA/FNWI staff

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❖

Page 39: Cursus Cryptografie - Homepages of UvA/FNWI staff

Correlatie-aanval op Geffe

39

LFSR-1 LFSR-3

LFSR-2

Page 40: Cursus Cryptografie - Homepages of UvA/FNWI staff

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

Page 41: Cursus Cryptografie - Homepages of UvA/FNWI staff

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

Page 42: Cursus Cryptografie - Homepages of UvA/FNWI staff

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�

Page 43: Cursus Cryptografie - Homepages of UvA/FNWI staff

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

Page 44: Cursus Cryptografie - Homepages of UvA/FNWI staff

Krimpgenerator

44

s

t

= S t S t =S = + x

S = + x + x

s

t

= S t + S t =S = + x + x

Page 45: Cursus Cryptografie - Homepages of UvA/FNWI staff

45

GSM-generator

f

f

f

f1 = 1 + x + x2 + x5 + x19

f2 = 1 + x + x22

f3 = 1 + x + x2 + x15 + x23