kriptologija - mif.vu.ltskersys/16p/riss/konsp/04 - kriptografija3... · kriptologija vilius...
Post on 07-Jul-2018
259 Views
Preview:
TRANSCRIPT
Kriptologija
Vilius Stakenas
2010 metu ruduo
2.5 Mechaniniai šifravimo prietaisai 2Jeffersono cilindrai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Enigma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Enigma su dviem rotoriais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.6 Blokiniai šifrai 6Ryšio apsauga simetrine kriptosistema . . . . . . . . . . . . . . . . . . . . . . . . . 7Pranešimu išraiškos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8KPT – keitiniu-perstatu tinklas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Feistelio schema, DES architektura . . . . . . . . . . . . . . . . . . . . . . . . . . . 10DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Viena DES iteracija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12DES dežes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13DES raktai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14DES raktai: perstatos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15UNIX slaptažodžiai ir DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16EBC režimas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Šifru bloku grandines režimas (CBC) . . . . . . . . . . . . . . . . . . . . . . . . . . 18Srauto atgalinio ryšio režimas (OFB) . . . . . . . . . . . . . . . . . . . . . . . . . . 19Šifro atgalinio ryšio režimas (CFB) . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Skaitliuko režimas (CTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Trigubas DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22DES chronologija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Kiti blokiniai šifrai: GOST 28147-89. . . . . . . . . . . . . . . . . . . . . . . . . . . . 24AES konkursas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Veiksmai su baitais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26AES variantai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1
SQUARE schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Bendra AES schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Baitu keitimo operacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Baitu postumio operacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Stulpeliu maišymo operacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32Raktu sudarymo operacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Raktu sudarymo operacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.7 Srautiniai šifrai 35Srautiniai šifrai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Tiesiniai registrai. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Tiesiniu registru sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Tiesiniu registru sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Periodines sekos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Primityvus daugianariai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Maksimalaus periodo sekos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Tiesiniu registru sistemu jungimas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Tiesiniu registru sistemu jungimas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44A5/1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45RC4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46RC4 šifravimas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2
2.5 Mechaniniai šifravimo prietaisai 2 / 47
Jeffersono cilindrai
3 / 47
Enigma
ρ =
(A B C DB C D A
), λ1 = λ2 =
(A B C DC A D B
)
Tekstas = t1t2 . . . , tk, k = m1 + 4m2 + . . .
ck = ρ−m2λ2ρm2ρ−m1λ1ρ
m1(tk),
tk = ρ−m1λ−11 ρm1ρm2λ−1
2 ρm2
4 / 47
3
Enigma su dviem rotoriais
A = {0, 1, . . . , n− 1},ρ =
(0 1 . . . n− 2 n− 11 2 . . . n− 1 0
)= [1, 2, 3, . . . , n− 1, 0],
ρm(a) = a + m (mod n)
Tekstas = t1t2 . . . , tk, k = m1 + n ·m2 + . . .
ck = ρ−m2λ2ρm2ρ−m1λ1ρ
m1(tk),
tk = ρ−m1λ−11 ρm1ρm2λ−1
2 ρm2
5 / 47
2.6 Blokiniai šifrai 6 / 47
Ryšio apsauga simetrine kriptosistema
7 / 47
Pranešimu išraiškos
Unicode Base648 / 47
4
KPT – keitiniu-perstatu tinklas
SPN – substitution-permutation network
9 / 47
Feistelio schema, DES architektura
10 / 47
5
DES
11 / 47
Viena DES iteracija
12 / 47
6
DES dežes
P
13 / 47
DES raktai
14 / 47
7
DES raktai: perstatos
15 / 47
UNIX slaptažodžiai ir DES
16 / 47
EBC režimas
Blokai gali buti pašalinti, pakeisti, sukeisti... Tas pats blokas visadašifruojamas vienodai.
17 / 47
8
Šifru bloku grandines režimas (CBC)
C1 = e(M1 ⊕ IV |K), Ci = e(Mi ⊕ Ci−1|K), i ≥ 2,
M1 = d(C1 ⊕K|IV ),Mi = e(Ci|K)⊕ Ci−1, i ≥ 2.
IV nebutinai slaptas. Kelis šifro blokus pakeitus, kiti blokai bus iššifruojamigerai.
18 / 47
Srauto atgalinio ryšio režimas (OFB)
19 / 47
9
Šifro atgalinio ryšio režimas (CFB)
20 / 47
Skaitliuko režimas (CTR)
21 / 47
10
Trigubas DES
DES: M 7→ C = e(M |K),M ∈ B64, K ∈ B56,B = {0, 1}.
Trigubas DES: M 7→ C = e(d(e(M |K1)|K2)|K3), M ∈ B64, Ki ∈ B56.
22 / 47
DES chronologija1973-05-15 NBS paskelbe kriptostandarto konkursa1974-08-27 Pakartotinas konkurso skelbimas1975-03-17 DES paskelbta aptarimui ir kritikai
1976-08 Pirmoji DES konferencija1976-09 Antroji DES konferencija1976-11 DES patvirtinta standartu
1977-01-11 Paskelbtas DES standartas FIPS PUB 461983 DES pakartotinai patvirtinta standartu
1988-01-22 DES pakartotinai patvirtinta standartu1992 Teorine DES ataka (Bihamo ir Shamiro skirtumine kriptoanalize)
1993-12-30 DES pakartotinai patvirtinta standartu1994 Eksperimentine DES ataka (Matsui tiesine kriptoanalize)1998 Kompiuteris Deep Crack rado DES rakta per 56 valandas
1999-01 Deep Crack ir lygiagreciu skaiciavimu tinklas ataka – 22 val. 15 min.1999-10-25 DES pakartotinai patvirtinta standartu – triguba DES2001-11-26 Paskelbtas AES2002-05-24 AES isigaliojo2004-07-26 DES standartas atšauktas
23 / 47
11
Kiti blokiniai šifrai: GOST 28147-89
64 bitu blokai, 256 bitu ilgio raktas24 / 47
AES konkursas
1997 JAV Nacionalinis standartu ir technologiju institutas (NIST –National Institute of Standards and Technology) paskelbe nauja konkursagarbingojo DES vietai užimti. Atsirado 15 kandidatu. I finala išejo šie:MARS, RC6, Rijndael, Serpent ir Twofish. Nugalejo Rijndael.
„Rijndael“ sudarytas sujungus jo kureju – dvieju belgu kriptografu V.Rijmen ir J. Daemen – pavardžiu skiemenis.
25 / 47
12
Veiksmai su baitais
AES kriptosistema atlieka veiksmus su baitais. Kiekviena baita, t. y.aštuoniu bitu žodi b = b7b6b5b4b3b2b1b0, interpretuokime kaip daugianari
b(x) = b7x7 + b6x
6 + . . . + b1x + b0.
Du tokius daugianarius sudeje, vel gausime tos pacios erdves daugianari.Imkime aštunto laipsnio daugianari
f(x) = x8 + x4 + x3 + x + 1
ir apibrežkime daugianariu (baitu) sandauga:
a(x)× b(x) = a(x)b(x) dalybos iš f(x) liekana.
26 / 47
AES variantaiRakto ilgis Bloko ilgis Iteraciju skaicius
AES-128 128 128 10AES-192 192 128 12AES-256 256 128 14
27 / 47
SQUARE schema
Pradiniu duomenu blokas prieš pradedant transformacijas surašomas ilentele.
s30s31s32s33
s20s21s22s23
s10s11s12s13
s00s01s02s03
AES duomenu blokas; lenteles elementai – aštuoniu bitu ilgio žodžiai(baitai).
28 / 47
13
Bendra AES schema
Tekstas
?
?
SB
?
SR
?
MC
?
k1
¾
k0
¾-
?
?
SB
?
SR
?
k10
¾
k9
¾
Šifras
AES-128 sudaro 10 vienodos strukturos žingsniu. Kiekvienai operacijai iš kriptosistemosbendro rakto sudaromas dalinis raktas. Šifravimas prasideda sudeties su pradžios raktuveiksmu. Pirmieji devyni žingsniai vienodi – atliekamos baitu keitimo (SB), eiluciupostumio (SR) ir stulpeliu maišymo (MC) operacijos.
29 / 47
Baitu keitimo operacija
b′0b′1b′2b′3b′4b′5b′6b′7
=
1 0 0 0 1 1 1 11 1 0 0 0 1 1 11 1 1 0 0 0 1 11 1 1 1 0 0 0 11 1 1 1 1 0 0 00 1 1 1 1 1 0 00 0 1 1 1 1 1 00 0 0 1 1 1 1 1
·
b0b1b2b3b4b5b6b7
+
11000110
.
Baitu keitimo operacijos matricine išraiška. Antroji matricos eilute gauta išpirmosios, atlikus jos elementu postumi, analogiškai iš antrosios eilutesgaunama trecioji ir t. t.
30 / 47
14
Baitu postumio operacija
s30s31s32s33
s20s21s22s23
s10s11s12s13
s00s01s02s03
-
s33s30s31s32
s22s23s20s21
s11s12s13s10
s00s01s02s03
31 / 47
Stulpeliu maišymo operacija
s′0c
s′1c
s′2c
s′3c
=
02 03 01 0101 02 03 0101 01 02 0303 01 01 02
·
s0c
s1c
s2c
s3c
.
AES stulpeliu maišymo operacijos matricine išraiška. Matricos elementusreikia interpretuoti kaip šešioliktaine sistema užrašytus baitus.
32 / 47
Raktu sudarymo operacija
??3
??3
??3
??+ ® U s
? ? ?
- g
?k3 k7 k11 k15
k2 k6 k10 k14
k1 k5 k9 k13
k0 k4 k8 k12
w0 w1 w2 w3
w0 w1 w2 w3
w4 w5 w6 w7
Vienas rakto išpletimo algoritmo ciklas. Pradinis AES raktas išsaugomas32 bitu žodžiuose w0, w1, w2, w3, o naudojantis jais sukuriami dar keturižodžiai
33 / 47
15
Raktu sudarymo operacija
Rakto išpletimo schemos funkcija g :
g(w) = SB(rot(w)) + Rj,
cia rot baitu postumio operacija, rot(b0b1b2b3) = b1b2b3b0; SB – baitukeitimo operacija, apibrežta anksciau, o Rj – j-ojo žingsnio konstanta.Šios konstantos sudaromos pagal paprasta taisykle ( naudojama baitudaugyba):
Rj = rj000000, r1 = 01, rj = 2 · rj−1.
34 / 47
2.7 Srautiniai šifrai 35 / 47
Srautiniai šifrai
Tegu M = m1m2 . . . dvejetaines abeceles simboliu srautas, generuokimetokio pat ilgio rakto žodi K = x1x2 . . . ir apibrežkime M šifra taip:
C = e(M |K) = c1c2 . . . , ci = mi ⊕ xi, i = 1, 2, . . .
Dešifravimas – ta pati XOR operacija, tik ja atlikti reikia su šifro ir raktosrautais:
M = d(C|K) = m1m2 . . . , mi = ci ⊕ xi, i = 1, 2, . . .
36 / 47
16
Tiesiniai registrai
Rn-
6-c1·
Rn−1 -
6-c2·
R2 -
6-cn−1·
R1 -
¾
-cn·
- -
Tiesiniu registru sistema. Kiekviename žingsnyje atliekamas registru bitupostumis: pirmojo registro bitu papildomas generuojamas bitu srautas,antrojo registro bitas perrašomas i pirmaji registra, ..., n-ojo – i n− 1-aji, oi n-aji registra irašoma registru bitu tiesine kombinacija.
37 / 47
Tiesiniu registru sistema
Jeix(t) = 〈x1(t), . . . , xn(t)〉
yra sistemos padetis laiko momentu t, tai sekanciame žingsnyje bus atliktitokie veiksmai
xi(t) = xi+1(t), 1 ≤ i ≤ n− 1, (1)xn(t + 1) ≡ c1xn(t) + . . . + cnx1(t) (mod 2), (2)
cia ci ∈ {0, 1}, 1 ≤ i ≤ n. Sakysime, kad cn 6= 0, nes priešingu atvejuregistru sistema galetume sutrumpinti.
38 / 47
17
Tiesiniu registru sistema
Kiekviename žingsnyje žodis x(t) (dvejetainis vektorius) yraatvaizduojamas i žodi x(t + 1) :
x(t + 1) = x(t)C, C =
0 0 . . . 0 cn
1 0 . . . 0 cn−10 1 . . . 0 cn−2... ... . . . ... ...0 0 . . . 1 c1
.
39 / 47
Periodines sekos
Apibrežimas. Elementu seka {yi} (i = 0, 1, . . .) vadinsime periodine,jeigu egzistuoja toks naturalusis skaicius p, kad su visais i ≥ 0 teisingalygybe yi+p = yi. Mažiausia naturaluji skaiciu p, su kuriuo visos lygybesteisingos vadinsime sekos periodu.
Teorema. Tiesine n registru sistema generuoja periodines sekas, kuriuperiodas yra ne didesnis už 2n − 1.
40 / 47
Primityvus daugianariai
Apibrežimas. n-ojo laipsnio daugianaris f(x) ∈ F2[x] vadinamasprimityviuoju, jeigu jis yra neskaidus ir nera jokio daugianario xd + 1 sud < 2n − 1 daliklis.
Rasti n-ojo laipsnio primityviuosius daugianarius nera paprastas algebrosuždavinys. Taciau žinoma, kad visiems naturaliesiems n jie egzistuoja.
41 / 47
18
Maksimalaus periodo sekos
Apibrežimas. Tiesines registru sistemos charakteringuoju daugianariuvadinsime daugianari
Pn(x) = 1 + c1x + . . . + cnxn, cn 6= 0.
Teorema. Tiesine registru sistema generuoja maksimalaus periodoseka tada ir tik tada, kai jos charakteringasis daugianaris yra primityvus.
42 / 47
Tiesiniu registru sistemu jungimas
TSRS1
?x1
TSRS2
?x2
TSRSn
?xn
f(x1, x2, . . . , xn)
?Rakto srautas
Keliu tiesiniu registru sistemu lygiagretus jungimas
TSRS3-x3
TSRS2
x2
TSRS1-x1
·
·
1+
6
?
?
-
6
?
Rakto srautas
Geffe generatorius43 / 47
19
Tiesiniu registru sistemu jungimas
- -
Valdymas
TSRS1Valdymas
TSRS2Valdymas
TSRS3--
6
-?
Golmano tiesiniu registru sistemu grandine. Jeigu i tiesines registrusistemos „valdymo“ skyriu perduoto bito reikšme lygi vienetui, sistemageneruoja eilini bita ir atlieka registru turiniu postumi; jeigu valdymo bitaslygus nuliui, registru turiniai nepasikeicia. Rakto srautas – dviejupaskutiniu registru bitu suma.
44 / 47
A5/10818 17 16 13
0102021
010 7202122
A5/1 kriptosistema45 / 47
20
RC4
Raktas: l baitu seka K[0], . . . , K[l − 1]. Inicializacija:
1. j:=0
2. for i= 0 to 255 do
3. S[i]:=i end
4. for i= 0 to 255 do
5. j:=j+S[i+K[i mod l]]
6. S[i]<–>S[j] end i:=0 j:=0
46 / 47
RC4 šifravimas
1. i:=i+1 j:=j+S[i]
2. S[i]<–>S[j]
S[S[i] + S[j]] 7→ rakto srautas47 / 47
21
top related