DES - okol.org

Download Report

Transcript DES - okol.org

DES
Antti Junttila
Horst Feistel
• IBM:n tutkija
• Kehitti 1960-luvun
lopussa Feistelin
salaimen johon DES
pohjautuu
• Elegantti ja nopea
ratkaisu, koska salaus
purkautuu ajamalla
algoritmi takaperin
DESin historia
• IBM alkoi kehittää DSD-salausohjelmaa
pankeille. Oli luonnollista, että sen pohjaksi
otettiin talon oma 128-bittinen Lucifer.
• Lucifer-nimi johtuu siitä, että kun Feistel kehitti
DSDtä, hän antoi sille nimeksi demonstration.
IBM:n keskuskone salli vain 5 merkin
tiedostonimet -> nimeksi demon.
• Feistel nimesi demoninsa Luciferiksi (1971).
IBM ja NSA
• IBM oli kehittämässä salainta pankkien
käyttöön. Mikäli myöhemmin salauksessa
havaittaisiin jokin heikkous, joka tekisi sen
murtamisesta helppoa, IBM:n uskottavuus
olisi jossain nollan lähimaastossa -> NSA
avuksi.
• NSA (National Security Agency) on
sähköisen tiedustelun erikoislaitos
USAssa (mm. Echelon)
NSA:n sormet pelissä
• IBM ja NSA tekivät salaisen sopimuksen:
– NSA tarkistaa salaimen turvallisuuden
parhaan taitonsa mukaan ja saa tehdä
haluamansa muutokset
– IBM sitoutui vaikenemaan kaikista
keksinnöistä mitä sen tutkijat olivat DSD:n
kehittämisen yhteydessä tehneet
– NSA oli luultavimmin tehnyt samat havainnot
jo aiemmin
NSA hoitaa homman
• DSD:n avainpituutta lyhennettiin 64 bit -> 56 bit
• Selitys se, että joka 8. bitti varattiin
synkronointiin huonojen datalinjojen yli.
• Kylmä totuus: NSA luultavasti kykeni
supertietokoneillaan murtamaan 56-bittisiä
salauksia silloin, mutta 64-bit oli liikaa.
• NSA sai takaportin salausten murtamiseen brute
force:lla
• 1977 DSD astui Yhdysvaltojen liittovaltion
viralliseksi salausstandardiksi nimellä DES (Data
Encryption Standard)
Kriittiset mitat
•
•
•
•
Nimellinen avainpituus 64 bit
Tehollinen avainpituus 56 bit
Lohkon koko 64 bit
Kierrosten määrä 16
– Jokainen salattava 64 bit lohko ajetaan
algoritmin läpi 16 kertaa. Jokaisella kerralla
bittejä sekoittamassa on vaihtuva
kierrosavain, joka johdetaan varsinaisesta
salausavaimesta modifioimalla.
Toiminnan pääkohdat
• Aloituspermutaatio
– Tarkoittaa sitä, että käsiteltävät bitit
järjestetään uudestaan, 1->58, 2->50, 3->42,
4->34.
– DESissä tarvitaan vain laitetason toteutuksen
yksinkertaistamiseen
Varsinainen temppu
• 64-bit lohko pannaan puoliksi -> 32 bit R ja
32 bit L
• Kukin 16 kierroksesta menee seuraavasti:
– R-lohko syötetään funktiolle f kierroskohtaisen
avaimen kanssa. Saatu tulos XOR yhteen Llohkon kanssa jonka tuloksesta tulee
seuraavan kierroksen R-lohko. Vanhasta Rlohkosta tulee puolestaan seuraavan
kierroksen L-lohko ja kierros alkaa alusta.
Samalla tehtävä salausavaimen
käsittely
• Jokaisen kierroksen aikana tehdään
vastaava temppu salausavaimelle (56-bit > 28 bit x 2
• Siirrellään bittejä avaimissa päistä toiseen
jne.
• Kun koko hommaa on pyöritetty 16
kierrosta, R- ja L-lohkot yhdistetään
uudelleen peräkkäin ja yksi kokonainen
lohko on saatu käsiteltyä.
Funktio f
• Sisällä ovat:
– Laajenus (E)
– S-laatikko
– Permutointi (P)
• Laajennus pidentää sisääntulevan R-lohkon 32 bit -> 48
bit käyttämällä jotkut bitit kahteen kertaan (tässä on Etaulukko joka kertoo mitkä ne ovat)
• Näin saatu 48-bit lohko XORataan kierrosavaimen
kanssa ja viedään S-laatikon läpi
• S-laatikkoja on 8, jokaiseen pudotetaan 6 bittiä 48-bit
lohkosta siten, että 1-6 laatikkoon 1, 7-12 laatikkoon 2
jne.
• S-laatikot ovat DESin tärkein osa. Ilman niitä salaus olisi
helposti avattavissa.
Miten S-laatikko toimii?
• 32-bit lohko sisään
• E-laatikossa lisää bittejä
käyttämällä osa kahteen
kertaan ->48 bit lohko
• XORaus kierrosavaimella
• Ripottelu 6 bittiä kerrallaan 8
laatikkoon
• S-laatikoista monimutkaisten
taulukoiden avulla ulos 4 bittiä
• Viimeisenä tehdään
käänteisesti alussa tehty
permutaatio
S-laatikon pimeä puoli
• S-laatikon suunnitteluperusteet olivat salaisuus
vuoteen 1992 asti. Arveltiin, että NSA tiesi
ainoana jostain niihin piilotetusta takaovesta.
• Kun IBM kehitti DESiä, NSA puuttui juuri Slaatikoiden rakenteeseen. Syynä ei kuitenkaan
ilmeisesti ollut mikään tarve takaovelle, vaan se,
että NSA tiesi jo tuolloin differentiaalisesta
kryptoanalyysistä, joka virallisesti keksittiin vasta
1991. NSA:n tekemät numeromuutokset Slaatikoihin ainoastaan vahvistivat DESiä.
Differentiaalinen kryptoanalyysi
• Toimii siten, että muutellaan selvätekstiä ja
katsotaan miten se vaikuttaa salatekstiin
• Koetetaan tällä tavalla selvittää avain
• DES avautuu jos voidaan kokeilla 2^47
erilaista valittua selvätekstiä
• Käytännössä tällaisen aineiston
hankkiminen on mahdotonta
• -> DES aukeaa ainoastaan raa’alla
voimalla
DESin hyvät ja huonot puolet
• Hajautus
– Yhden bitin muutos 64-bit selvätekstilohkossa aiheuttaa 34 bitin
muutoksen vastaavaan salatekstilohkoon. 1 bit muutos avaimessa
muuttaa 35 bit salatekstilohkossa.
• Heikot avaimet
– 4 heikkoa avainta:
•
•
•
•
01 01 01 01 01 01 01 01
FE FE FE FE FE FE FE FE
1F 1F 1F 1F 1F 1F 1F 1F
E0 E0 E0 E0 E0 E0 E0 E0
– Kierrosavaimen muodostusmekanismi tuottaa pelkkää ykköstä tai nollaa
joten salattu teksti pysyy samana kuin alkuperäinen -> katastrofi
• Puoliheikot avaimet
– Tunnettuja on ainakin 12
– Niitä käytettäessä on olemassa toinenkin avain jolla sama viesti aukeaa
• 4 heikkoa, 12 puoliheikkoa, 72 kvadriljoonaa avainta -> pieni
mahdollisuus
Kuinka turvallinen?
• Avain 56-bit -> 2^56 mahdollisuutta
– = 72 057 594 037 927 936 kappaletta
• 1977 olisi maksanut 20 M$ rakentaa kone, joka olisi
avannut DESin alle 24 h
• 1993 muuan suunnitelmalla olisi 100 000 $ laitteilla
saatu avattua DES puolessatoista vuorokaudessa
• 1998 EFF rakensi koneen jossa oli 1536 kpl 40 MHz
CPU -> DES challenge II-2 avautui 56 tunnissa
• 1999 DES challenge III murtui 22:15:00 käyttämällä
tavallisia Internet-PC-koneita (kuten Seti@Home)
• NSA:lla ja muilla tiedusteluorganisaatioilla oletettavasti
ollut DES-murtokelpoisia koneita jo vuosikaudet
Parannetut versiot
• Double-DES (kaksi kertaa peräkkäin ->
112 bit avain)
• 3DES (3-kertainen ajo DESin läpi -> 168
bit avain, hidas)
• DESX (käytetään kahta 64-bit lisäavainta,
jossa ensimmäinen XORataan
selvätekstiin ennen salausta ja toinen
salatekstiin, käytetään Windows 2000
salatussa tiedostojärjestelmässä)