DES: berrikuspenen arteko aldeak

Ezabatutako edukia Gehitutako edukia
130. lerroa:
 
Algoritmoa teorikoki sendoa da eta ez du ahulune garrantzitsurik (erabili behar ez diren gako ezagun gutxi batzuk daude). IBMk egin zuen lehen bertsioa 128 bitekoa izanik, oraindik indar gorri motako erasoak gainditzeko gai da. Hala ere, gaur egungo bilakaera teknologikoa ikusirik, DES estandarrak ematen duen segurtasuna (soilik 56 biteko gakoekin) nahiko mugatua da, are gehiago, jada inoiz bortxatua izan da. (Batzuk diote NSAk hasierako 128 bitak 56ra murriztu zituela DESrekin kodetutako mezuak deszifratu ahal izateko). Honek guztiak, beste sistema simetriko batzuen bilaketa hasi du ([[3DES]], [[IDEA]],...).
 
== Deskribapena ==
 
DES blokekako zifraketaren prototipo algoritmoa da – bit luzera jakin bateko testu garbi bat hartzen du algoritmo honek, eta eragiketa konplexu batzuren bidez luzera berdineko testu zifratuan eraldatzen du. DESren kasuan blokearen tamaina 64 bitekoa da. DESk gako kriptografiko bat ere erabiltzen du eraldaketa aldatzeko, modu honetan kodeketan erabilitako gakoa ezagutzen dutenek bakarrik egin dezakete deszifraketa. Gakoak 64 biteko luzera du, baina hauetatik bakarrik 56 erabiltzen dira algoritmoan. Gainontzeko 8 bitak paritatea egiaztatzeko bakarrik erabiltzen dira, eta gero baztertu egiten dira. Beraz, DESren gako luzera eraginkorra 56 bitekoa da, eta horrela zehazten da.
 
Beste blokekako zifratzetan bezala, DES blokekako zifratze eragiketa moduan erabili behar da 64 bit baino luzeagoko mezuetan (mezua 64 bit baino luzeagoa bada, mezua 64 biteko bloketan banatzen da, gero blokeak banan-banan kodetzen dira). FIPS-81ek DES erabiltzeko hainbat modu zehazten ditu, egiaztapenerako bat barne. FIPS-74ean DESren erabilpenerako beste dokumentu batzuk kontsulta daitezke.
 
== Oinarrizko egitura ==
 
Algoritmoaren oinarrizko egitura 1 irudian irudikatzen da: prozesuak 16 fase berdin ditu, txandak deiturikoak. Hasierako eta bukaerako permutazioak ere ditu, PI eta PF, elkarren artean alderantzizkoak direnak (PIk PFren eragina “desegiten” du, eta alderantziz). PI eta PF kriptografikoki ez dira esanguratsuak, baina ustez 70eko hamarkada erdialdeko hardware-an blokeen karga eta deskarga errazteko sartu ziren. Txanden aurretik, blokea 32 biteko bi zatitan banatzen da eta txandaka prozesatzen dira. Gurutzaketa hau Feistel eskema bezala ezagutzen da.
 
Feistel eskemak zifraketa eta deszifraketa prozesuak oso antzekoak izan daitezen bermatzen du – ezberdintasun bakarra deszifraketan azpi-gakoak aurkako ordenean erabiltzen direla da. Algoritmoaren gainontzekoa berdin-berdina da. Honek inplementazioa izugarri errazten du, hardware-an bereziki, ez baitago zifraketarako eta deszifraketarako algoritmo ezberdinak erabiltzeko beharrik.
 
Gorriz dagoen “+” simboloa OR esklusiboaren (XOR) eragitketa adierazten du. F-funtzioak blokearen erdia gakoaren zati batekin nahasten du, eta gero bi azpi-blokeak trukatu egiten dira hurrengo txanda baino lehen. Azken txandaren ondoren, bi azpi-blokeak ez dira trukatzen; hau Feistelen egituraren ezaugarri bat da zeinak zifraketa eta deszifraketa antzeko prozesuak izan daitezen egiten duen.
 
== Feistelen funtzioa (F) ==
 
F-funtzioak, 2 irudian irudikatzen da, 32 biteko bloke erdi baten gainean egiten du lan eta lau pausoz osatzen da.
 
# Hedapena – 32 biteko blokearen erdia 48 bitetara luzatzen hedapen permutazioaren bidez, diagraman E deitua, bit batzuk errepikatu egiten dira..
# Nahasketa – emaitza azpi-gakoarekin batzen da XOR eragiketaren bidez. Hasierako gakotik 16 azpi-gako (txanda bakoitzerako bat) eratortzen dira, hauek beherago azaltzen den azpi-gakoen sorkuntzaren bidez lortzen dira.
# Ordezkapena – azpi-gakoarekin nahastu ondoren, blokea 6 biteko zortzi zatitan banatzen da, eta zati bakoitza S-kutxetan, edo aldaketa kutxetan, prozesatzen dira. S-kutxetako bakoitzak sarrerako 6 bit irteerako 4 bitengatik aldatzen ditu. Aldaketa hau transformazio ez lineal baten bidez egiten da, bilaketa taulak zehazten duen bezala. S-kutxek DESren segurtasunaren muina osatzen dute – hauek gabe, zifraketa lineala izango litzateke, eta apurtzeko erraza.
# Permutazioa – azkenik, S-kutxen 32 irteerak permutazio finko batekin berrantolatzen dira; P-kutxa.
 
S-kutxen ordezkapenen txandakatzeak, eta P-kutxaren permutazioaren eta E-hedapenaren txandakatzeak “nahasmena eta zabalkundea” dakartzate. Kontzeptu hau zifratze bat segurua eta praktikoa izateko derrigorrezko baldintza bezala identifikatu zuen Claude Shannon-ek 40ko hamarkadan.
 
== Gako sorkuntza ==
 
3 irudiak zifraketarako gako sorkuntza irudikatzen du – azpi-gakoak emateaz arduratzen den algoritmoa. Lehenengo, hasierako gakoaren 64 bitetatik 56 hartzen dira Aukeraketa Permutazioa 1en bidez (PC-1) – beste zortzi bitak alde batera utz daitezke edo bestela paritatea egiaztatzeko erabili. 56 bitak 28 biteko bi zatitan banatzen dira; ondoren zati bakoitza bere aldetik maneiatzen da. Txanda bakoitzean, bi zatiak ezkerrera lekualdatzen dira bit bat edo bi bit (txandaren arabera), eta 48 biteko azpi-gakoa sortzen da Aukeraketa Permutazioa 2aren bidez (PC-2) – 24 bit ezkerreko zatikoa eta 24 bit eskuinekoa. Lekualdaketek (diagraman “<<<” ikurrarekin azaltzen da) azpi-gako bakoitzerako bit multzo ezberdina erabiltzen dela ziurtatzen dute; gutxi gorabehera bit bakoitza 14 aldiz erabiltzen da 16 azpi-gakoetan.
 
Deszifraketa prozesuan gako sorkuntza antzeko moduan egiten da – gakoak alderantzizko ordenean sortu behar dira. Beraz, desplazamenduak eskuinerantz egin behar dira ezkerrerantz beharrean.
 
== Ordezkapen algoritmoak ==