170 likes | 352 Views
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.
E N D
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 L-lohkon kanssa jonka tuloksesta tulee seuraavan kierroksen R-lohko. Vanhasta R-lohkosta 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 E-taulukko 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 S-laatikoiden 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 S-laatikoihin 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ä)