Title: Klassikaliste
1Klassikaliste šifrite murdmine
2Kerckhoffi eeldused
- Carol teab, kuidas krüpteerimisalgoritm ja
dekrüpteerimisalgoritm töötavad. - Kogu salastus tagatakse võtme salastusega.
- Põhjused
- Algoritme on üsna raske varjata, kui need on
tehtud paljude spetsialistide ühistööna. - Tavainimeste poolt välja mõeldud algoritmid on
enamjaolt kergesti murtavad.
3Rünnete tüübid passiivsed
- Teadaolev krüptogramm -- ründajal on teada
krüptogramm Y. Ründaja püüab leida avateksti X. - Teadaolev avatekst -- ründajal on teada mingi
hulk avatekst-krüptogramm paare (X1,Y1),,(Xn,Yn)
ja krüptogramm Y. Ründaja püüab leida vastavat
avateksti X.
4Rünnete tüübid aktiivsed
1. Faas
2. Faas
y
xi
x yEK(x)
EK
Carol
Carol
yi EK(xi)
(x1,y1), , (xn,yn)
- Valitav avatekst --
- Ründajal on teatava aja jooksul kasutada algoritm
EK() musta kastina. - Seejärel antakse ründajale krüptogramm y ja ta
peab ära arvama vastava avateksti x.
5Rünnete tüübid aktiivsed
1. Faas
2. Faas
y
yi
x yEK(x)
DK
Carol
Carol
xi DK(yi)
(x1,y1), , (xn,yn)
- Valitav krüptogramm --
- Ründajal on teatava aja jooksul kasutada algoritm
DK() musta kastina. - Seejärel antakse ründajale krüptogramm y ja ta
peab ära arvama vastava avateksti x.
6Rünnetes kasutatavad põhivõtted
- Võtmekandidaatide läbiproovimine.
- Loomuliku keele statistiliste omaduste (tähtede
ja täheühendite sagedus jne.) ülekanduvus
krüptogrammile. - Võtme vahetu leidmine avatekst-krüptogramm
paaridest.
7Tähtede sagedusvahemikud eestikeelses
proosatekstis
A 0.115 0.140 B 0.007 0.010 D 0.036 0.047 E 0.105
0.124 F 0.000 0.001 G 0.017 0.022 H 0.015 0.021 I
0.087 0.102 J 0.018 0.022 K 0.045 0.055 L 0.057 0
.064 M 0.035 0.042
N 0.042 0.052 O 0.034 0.044 P 0.015 0.022 R 0.021
0.032 S 0.080 0.096 T 0.068 0.080 U 0.056 0.067 V
0.019 0.026 Õ 0.010 0.015 Ä 0.010 0.015 Ö 0.003 0
.006 Ü 0.006 0.010
8Tähtede sagedused ingliskeelses proosatekstis
A 0.082 B 0.015 C 0.028 D 0.043 E 0.127 F 0.022 G
0.020 H 0.061 I 0.070 J 0.002 K 0.008 L 0.040 M 0.
024
N 0.067 O 0.075 P 0.019 Q 0.001 R 0.060 S 0.063 T
0.091 U 0.028 V 0.010 W 0.023 X 0.001 Y 0.020 Z 0.
001
9Afiinse šifri murdmine
- Olgu meil järgmine krüptogramm, mis on saadud
ingliskeelsest tekstist - ZRHKREOFZFMMPZKEVNIMRHHRRPROHVUFEFTFZ
- Tähtede sagedused 37-tähelises krüptogrammis on
järgmised
Z 4 R 6 H 4 K 2 E 3 O 2 F 5
M 3 P 2 V 2 N 1 I 1 U 1 T 1
10Hüpotees 1
- R tähendab e-d ja F tähendab t-d. Saame
võrrandisüsteemi - 4 a b 17
- 19 a b 5
- millest järeldub, et (arvuvallas Z26) 15a -12
14. Aga 14 on nullitegur, sest 14 ? 13 7 ? 2 ?
13 7 ? 26 ? 0 (mod 26), kuid samal ajal
süt(15,26)1 ja seega peaks ka a olema
nullitegur, mis on vastuolus krüpteerimisfunktsioo
ni injektiivsusega. - Seetõttu puudub süsteemil lahend arvuvallas Z26
ja hüpotees on ebakorrektne.
11Hüpotees 2
- R tähendab e-d ja F tähendab a-d. Saame
võrrandisüsteemi - 4 a b 17
- 0 a b 5
- Siit saame, et b5 ja 4a12, millest a3.
- Leiame a-1 9 ja seega on dekrüpteerimisfunktsioo
n kujul x D(y) 9(y-5) mod 26. - Proovime dekrüpteerida ja saame
- YESTERDAYALLMYTROUBLESSEEMEDSOFARAWAY
- Kuna tulemus on ingliskeelne tekst, siis on
ülesanne lahendatud.
12Asendusšifri murdmine
- Olgu meil järgmine eestikeelse sõnumi
krüptogramm, kus sõnavahed on säilinud. - pün gõtu näglg puurnsgoog obüinä urni öüttni
oühg grgtüi puurnbvjögog püöäüä sbrjsgi öüvvg
pbtjrjä tjtijlg tgöüpj gjlg pdäpnä gõtur urrg
muurgä og puõõgrnp og äjginä ög ännä vntpn fmj
vnppgij oüüäöjlg vunän pbõagrj näöüsg ännä gtinä
puurnbvjögog ögrrj õggsgöüäö snigln pnõoüögig og
gõtur jn urtüi tffi jtgs gjlg süürj sböjrig ög
aböönä ögmarn og mgppgä pnõoüögsg pün ög urn
pnõoüögtüi üshjä vggõ õnig püssgõiüä vnppgij
oüüäöjlg vunää öjsg pbõag oüüõij og pfänä äuäntgr
snä puursjnäöjõ förjä pün öj öjsg öugä urnöj
131 etapp sagedustabeli koostamine
a 4 0.009 b 9 0.021 d 1 0.002 e 0 f 5 0.012 g 65
0.150 A h 2 0.005 i 19 0.044 j 31 0.072 E,I,S k 0
l 7 0.016 m 4 0.009
n 41 0.095 E,I,S o 17 0.039 p 28 0.065 r 25 0.058
s 17 0.039 t 17 0.039 u 23 0.053 v 10 0.023 õ 16 0
.037 ä 34 0.079 E,I,S ö 29 0.067 ü 29 0.067
Järeldus g tähistab suure tõenäosusega A tähte.
Tähed j, n ja ä tähistavad suure tõenäosusega
tähti E,I,S mingis järjestuses.
14Tähtede esinemissagedus sõna esimese tähena
- Eesti keele proosatekstides on tähtede
esinemissagedused sõna esimese tähena
väljendatavad järgmise tabelina - Krüptogrammis on tähtede esinemissagedused
esitähena väljendatavad järgmise tabelina
K 0.130 T 0.110 S 0.095 M,V 0.085 P 0.070 A,E,O,J
0.060
p 18 0.225 K g 7 0.086 M,V,T,S n 2 0.025 o 10 0.1
25 S,T,M,V u 5 0.063 ö 11 0.136 S,T,M,V s 5 0.063
t 3 0.038
m 2 0.025 ä 4 0.050 f 2 0.025 v 6 0.075 M,V,T,S
õ 2 0.025 j 2 0.025 ü 1 0.013
15Tähtede esinemissagedus sõna teise tähena
A 0.200 E 0.150 I 0.110 U 0.100 O,Õ,Ä 0.060 N 0.05
0 Ö,Ü 0.015
- Eesti keele proosatekstides on tähtede
esinemissagedused sõna esimese tähena
väljendatavad järgmise tabelina - Krüptogrammis on tähtede esinemissagedused
esitähena väljendatavad järgmise tabelina
ü 12 0.150 E,I,U õ 3 0.036 ä 2 0.025 u 10 0.125
E,I,U b 6 0.075 r 6 0.075 j 7 0.086 g 14 0.175
A
d 1 0.013 n 12 0.150 E,I,U m 1 0.013 t 2 0.025
f 2 0.025 s 1 0.013 ö 1 0.013
16- PPeale tõenäolisi asendusi g?A, p?K, ä?S, ö?T
saame järgmise teksti - Kün Aõtu nSAlA KuurnsAooA obüinS urni Tüttni oühA
ArAtüi KuurnbvjTAoA KüTSüS sbrjsAi TüvvA KbtjrjS
tjtijlA tATüKj AjlA KdSKnS Aõtur urrA muurAS oA
KuõõArnK oA SjAinS TA SnnS vntKn fmj vnKKAij
oüüSTjlA vunSn KbõaArj nSTüsA SnnS AtinS
KuurnbvjTAoA TArrj õAAsATüST sniAln KnõoüTAiA oA
Aõtur jn urtüi tffi jtAs AjlA süürj sbTjriA TA
abTTnS TAmarn oA mAKKAS KnõoüTAsA Kün TA urn
KnõoüTAtüi üshjS vAAõ õniA KüssAõiüS vnKKAij
oüüSTjlA vunSS TjsA KbõaA oüüõij oA KfSnS SuSntAr
snS KuursjnSTjõ fTrjS Kün Tj TjsA TuAS urnTj - Sõnas KüTSüS peab ü tähendama mingit
täishäälikut. Kõige tõenäolisemalt E, I või U.
Ainult U annab üldtarvitatava sõna KUTSUS,
mistõttu eeldame edaspidi asendust ü?U
17Peale asendust ü?U ja saame teksti KUn Aõtu
nSAlA KuurnsAooA obUinS urni TUttni oUhA ArAtUi
KuurnbvjTAoA KUTSUS sbrjsAi TUvvA KbtjrjS tjtijlA
tATUKj AjlA KdSKnS Aõtur urrA muurAS oA KuõõArnK
oA SjAinS TA SnnS vntKn fmj vnKKAij oUUSTjlA
vunSn KbõaArj nSTUsA SnnS AtinS KuurnbvjTAoA
TArrj õAAsATUST sniAln KnõoUTAiA oA Aõtur jn
urtUi tffi jtAs AjlA sUUrj sbTjriA TA abTTnS
TAmarn oA mAKKAS KnõoUTAsA KUn TA urn KnõoUTAtUi
UshjS vAAõ õniA KUssAõiUS vnKKAij oUUSTjlA vunSS
TjsA KbõaA oUUõij oA KfSnS SuSntAr snS
KuursjnSTjõ fTrjS KUn Tj TjsA TuAS urnTj
Seega tõenäoliselt on n, u ja j tähendused kas E
või I. Vaadates esimest sõna KUn, saame et
ainult I sobib nendel eeldustel n tähenduseks.
Seega võtame edaspidises aluseks asenduse n?I.
Järelikult kas u või j peaksid teisenema täheks
E. Vaadates samas kontekstis sõna TuAS, ei
sobiks u koodiks kuidagi E, sest sõna TEAS ei
ole üldtarvitatav eestikeelne sõna. Seega võib
oletada, et j?E.
18Tehes asendused n?I ja j?E, saame teksti KUI
Aõtu ISAlA KuurIsAooA obUiIS urIi TUttIi oUhA
ArAtUi KuurIbvETAoA KUTSUS sbrEsAi TUvvA KbtErES
tEtiElA tATUKE AElA KdSKIS Aõtur urrA muurAS oA
KuõõArIK oA SEAiIS TA SIIS vItKI fmE vIKKAiE
oUUSTElA vuISI KbõaArE ISTUsA SIIS AtiIS
KuurIbvETAoA TArrE õAAsATUST sIiAlI KIõoUTAiA oA
Aõtur EI urtUi tffi EtAs AElA sUUrE sbTEriA TA
abTTIS TAmarI oA mAKKAS KIõoUTAsA KUI TA urI
KIõoUTAtUi UshES vAAõ õIiA KUssAõiUS vIKKAiE
oUUSTElA vuISS TEsA KbõaA oUUõiE oA KfSIS SuSItAr
sIS KuursEISTEõ fTrES KUI TE TEsA TuAS urITE
19Ja veidi veel nuputamist annab avateksti KUI
ARNO ISAGA KOOLIMAJJA JÕUDIS OLID TUNNID JUBA
ALANUD KOOLIÕPETAJA KUTSUS MÕLEMAD TUPPA KÕNELES
NENDEGA NATUKE AEGA KÄSKIS ARNOL OLLA HOOLAS JA
KORRALIK JA SEADIS TA SIIS PINKI ÜHE PIKKADE
JUUSTEGA POISI KÕRVALE ISTUMA SIIS ANDIS
KOOLIÕPETAJA TALLE RAAMATUST MIDAGI KIRJUTADA JA
ARNOL EI OLNUD NÜÜD ENAM AEGA MUULE MÕTELDA TA
VÕTTIS TAHVLI JA HAKKAS KIRJUTAMA KUI TA OLI
KIRJUTANUD UMBES PAAR RIDA KUMMARDUS PIKKADE
JUUSTEGA POISS TEMA KÕRVA JUURDE JA KÜSIS SOSINAL
MIS KOOLMEISTER ÜTLES KUI TE TEMA TOAS OLITE Ja
vastava asenduse A B D E F G H I J K L M N O P R
S T U V Õ Ä Ö Ü g h i j k l m n o p r s t u v õ
ä ö ü a b d e f
20Kui sõnavahesid ei ole antud ...
- Siis kasutatakse tähepaaride ja tähekolmikute
esinemissagedusi. - Inglise keeles on kõige levinumad paarid TH, HE,
IN, ER, AN, RE, ED, ON, ES, ST, EN, AT, TO, NT,
HA, ND, OU, EA, NG, AS, OR, TI, IS, ET, IT, AR,
TE, SE, HI, OF. - Kõige levinumad kolmikud THE, ING, AND, HER, ERE,
ENT, THA, NTH, WAS, ETH, FOR, DTH.
21Vigenerei šifri murdmine
- Kõigepealt leitakse võtmemärkide arv m
statistiliste meetoditega. - Seejärel leitakse (ka statistiliste meetoditega)
võtmemärkide (k1,,km) vahed (m-1 tükki). - Avaldatakse kõik võtmemärgid üheainsa võtmemärgi
kaudu. - Proovitakse sagedusanalüüsi abil saadavaid
võtmekandidaate.
22Kasiski test
- Kirjeldati esimesena Friedrich Kasiski poolt
aastal 1863. - Idee kaks identset avateksti lõiku
krüpteeritakse identseteks lõikudeks, kui nende
lõikude alguspunktide vahe jagub m-ga. - Vastupidi Kaks identset krüptogrammi lõiku
pikkusega vähemalt kolm annavad suure
tõenäosusega identsed avateksti lõigud.
23Kokkulangevuse indeks
- Olgu Xx1x2xn, kus xi?A,Z.
- Def. Jada X kokkulangevuse indeksiks Ic(X)
nimetatakse tõenäosust, et kaks juhuslikult
valitud elementi x ja x on võrdsed. - f0,f1,f25 -- tähtede A,B,Z esinemiste arv.
Siis - Ic(X)
f0(f0-1) f25(f25-1) n(n-1)
24Tõestus
- Kahte elementi saab jadast X valida täpselt
n(n-1)/2 erineval viisil. - Otsitav tõenäosus avaldub järgmiselt
- Prxx PrxxA PrxxZ.
- PrxxA f0(f0-1)/n(n-1), sest kahte A-ga
võrdset elementi on võimalik jadast X valida
täpselt f0(f0-1)/2 erineval viisil.
25Indeks Ic(X) loomuliku keele teksti ja juhusliku
sõne korral
- Kui X on inglisekeelne tekst, siis
- Ic(X) ? p02 p252 0.065,
- kus pi on i-nda tähemärgi esinemise tõenäosus.
- Seevastu täiesti juhusliku sõne korral on
- Ic(X) ? 26?1/262 1/26 0.038.
26Võtmepikkuse leidmine põhiidee
- Valime mingi arvu m ja jagame krüptogrammi
Yy1y2yn veergudeks järgmisel viisil - Y1 y1 y1m y12m y1km
- Y2 y2 y2m y22m y2km
-
- Ym ym y2m y3m y(k1)m
- Kui m on õige võtmepikkus, siis on Yi lähedane
inglisekeelsele tekstile ja Ic(Yi) ? 0.065. - Kui aga m ei ole õige võtmepikkus, siis on Yi
lähedasem juhuslikule sõnele, sest erinevad tähed
krüpteeritakse erinevate võtmemärkidega
27Omavahelise kokkulangevuse indeks
- Olgu Xx1x2xn ja Yy1y2yn kus xi ja yi?A,Z.
- Def. Jadade X ja Y omavahelise kokkulangevuse
indeksiks Ic(X,Y) nimetatakse tõenäosust, et kaks
juhuslikult valitud elementi x?X ja y?Y on
võrdsed. - Kui f0,f1,f25 -- tähtede A,B,Z esinemiste arv
jadas X ja f0,f1,f25 -- tähtede A,B,Z
esinemiste arv jadas Y, siis - Ic(X,Y)
f0?f0 f25?f25 nn
28Tõestus
- Elemente x?X ja y?Y valida täpselt nn erineval
viisil. - Otsitav tõenäosus avaldub järgmiselt
- Prxy PrxyA PrxyZ.
- PrxyA f0f0/nn, sest kahte A-ga võrdset
elementi on võimaik valida täpselt f0f0erineval
viisil.
29Võtme K(k1,,km) leidmine (I)
- Hindame suurust Ic(Yi,Yj). Valime vastavatest
jadadest kaks elementi. Tõenäosus, et mõlemad
elemendid on võrdsed A-ga on - p-ki?p-kj
- kus indeksid on võetud mod 26. Tõenäosus, et
mõlemad valitud elemendid on B-d, on p1-ki?p1-kj
jne. - Seega Ic(Yi,Yj) ?h ph-ki?ph-kj ?h ph?phki-kj
sõltub ainult vahest ki-kj. - Kui ki-kj0, siis Ic(Yi,Yj)?0.065. Kui aga Kui
ki-kj?0, siis Ic(Yi,Yj)?0.040.
30Võtme K(k1,,km) leidmine (II)
f0?f-g f25?f25-g nn
- Olgu Ic(X,Yg)
-
- Kui Ic(Yi,Yjg) ? 0.065, siis suure tõenäosusega
gki-kj. - Kui piisaval arvul vahesid ki-kj on teada saadud,
siis lahendatakse lineaarvõrrandisüsteem, millest
kõik võtmetähed avaldatakse ühe võtme (näiteks
k1) kaudu.
31Hilli šifri murdmine (I)
- Teadaoleva krüptogrammiga rünne on suhteliselt
keeruline. - Teadaoleva avatekstiga rünne on aga lihtne.
- Olgu Xj (x1j, x2j,, xmj) ja Yj(y1j, y2j,,
ymj) ja meil on vähemalt m erinevat
m-elemendilist jada. - Olgu Xxij ja Yyij vastavad m?m maatriksid.
Siis krüpteerimisfunktsioon on maatrikskorrutis
Y XK.
32Hilli šifri murdmine (II)
- Kui maatriks X on pööratav, siis saab võtme
avadada järgmiselt - K X-1?Y.
- Kui X ei ole pööratav, siis tuleb hankida
lisainfot avatekst/krüptogramm paaridena.
33Hilli šifri murdmine näide
- Olgu m2 ja ründaja teab paare
- EK(5,17) (15,16) ja EK(8,3) (2,5).
- Vastav maatriksvõrrand on
- ? K
- ja selle võrrandi lahend
- K ? ?
?15 16? ? 2 5 ?
? 5 17? ? 8 3 ?
? 5 17?-1 ? 8 3 ?
?15 16? ? 2 5 ?
? 9 1 ? ? 2 15?
?15 16? ? 2 5 ?
? 7 19? ? 8 3 ?
34Nihkeregistri murdmine (I)
- Oletame, et ründaja teab, et võti on m-bitine ja
tema valduses on üks avatekst/krüptogramm paar
X(x1,,xn) ja Y(y1,,yn), kus n ? 2m. -
- Esimene samm leiame vastavad võtmebitid zi yi
- xi mod 2.
35Nihkeregistri murdmine (II)
- Teine samm. Kasutades seost
- zmi c0 zi c1 zi1 cm-1 zi,
- kirjutame välja järgmise maatriksvõrrandi
- (zm1,zm2,,z2m)
- (c0,c1,,cm-1)
?z1 z2 zm ? ?z2 z3 zm1?
?.? ?zm zm1 z2m-1 ?
36Nihkeregistri murdmine (III)
- Lahendame selle võrrandi ci-de suhtes ja saame
- (c0,c1,,cm-1) (zm1,zm2,,z2m)
- Registri struktuuri teadmine on piisav võtmejada
ekstrapoleerimiseks (mõlemas suunas!)
?z1 z2 zm ?-1 ?z2 z3 zm1?
?.? ?zm zm1 z2m-1 ?