DES algoritmas

Įvadas

Šiuolaikinėse sąlygose informacija sudaro pagrindinį vaidmenį tiek ekonomikos vystymosi procese, tiek konkurencinėse kovose nacionaliniuose ir tarptautinėse rinkose. Kova išsivystė tose srityse , kurios turėjo mokslinę techninę pakraipą. Realaus biznio pasaulyje , konkurencija rinkos dalyvius įspraudžia į tokius griežtus rėmus, kad daugeliui iš jų reikia vadovautis tokiais principais „ nugalėtojų neteisia“ ar „ tikslas pateisina priemones“ . Tose sąlygose pramoninis špionažas tampą realus kaip informacijos rinkimo, analizės, saugojimo ir konfidencialumo slapta veikla. Tai grindžiama tuo, kad gavimas nors kokios informacijos apie objektus įstatymišku būdu yra negalimas, nes yra sukurta ir palaikoma vertingos informacijos apsaugos sistema, kad nebūtų galima jos gauti piktais kėslais. Duomenų apsaugos standartai nuo nesankcionuoto priėjimo reikalaujami tokiose srityse kaip šifravimas, tapatybės nustatymas , prieigos kontrolė, patikimas duomenų saugojimas ir perdavimas. Trijų organizacijų: JAV- nacionalinių standartų biuras(NBC), nacionalinio saugumo valdymo (NSA) ir IBM firmos bendradarbiavimo dėka paskelbtas standartas, kuris buvo pavadintas DES ( Data Encryption Standart) buvo sukurtas ir išviešintas 1975 m. specialiame leidinyje Federal Register. Jo publikacija iššaukė polemiką tarp specialistų , kurie dirbo duomenų apsaugos srityje. Po dviejų metų bandymų , kurio tikslas buvo rasti DES algoritme „ slaptą landą“ , o taip pat ekonominių klausimų atžvilgiu, buvo nuspręsta palikti standartą be pakeitimų. Algoritme nebuvo aptikta jokių trūkumų. Efektyvus rakto ilgis, 56 bitai, pilnai patenkino potencialius vartotojus artimiausiems 15 ..20 metų, nes bendras raktų skaičius šiuo atveju buvo skaičius 7.6*10^16. DES tapo vienu iš pirmųjų „atvirų“ šifravimo algoritmų. Visos schemos, naudojamos jo realizacijai, buvo paskelbtos ir kruopščiai patikrintos. Slaptas buvo tik raktas kurio pagalba buvo vykdomas informacijos kodavimas ir dekodavimas. DES algoritmas grindžiamas Šenono 1949 m. moksliniu darbu, kuris sujungia kriptografiją su informacijos teorija. Šenonas išskyrė du bendrus principus, kurie buvo naudojami praktiniuose šifruose : išsklaidymas ir sumaišymas. Išsklaidymu jis pavadino išplatinimą vieno atviro teksto ženklo įtakos daugeliams šifroteksto ženklams, kas leidžia nuslėpti statistines atviro teksto savybes. Sumaišymo atveju Šenonas suprato , kad reikia naudoti tarpusavio ryšį tarp statistinių atviro ir šifruoto teksto savybių. Tačiau šifras ne tik turi apsunkinti atidarymą, bet ir užtikrinti šifravimo ir dešifravimo paprastumą esant žinomam slaptam raktui. Todėl buvo priimta idėja panaudoti paprastų šifrų kūrinius, kur kiekvienas įdeda nedidelį indelį į suminį išsklaidymą ir sumaišymą.

Atitinkamai priimtiems JAV standartams, kiekvienas iš gamintojų, norinčių pardavinėti kriptografinę įrangą neslaptam naudojimui turi aprūpinti savo produkcijos atitikimą visiems federaliniams standartams ir saugumo agentūros reikalavimams algoritmo užslaptinimo lygmenyje. DES standarto vartojimo instrukcijoje esančioje suglaustoje formoje yra išaiškintos užduotys, kurias turi išspręsti patvirtintas standartas, duoti pagrindiniai nustatymai ir terminologijos , duomenų užslaptinimo algoritmo naudojimo pavyzdžiai įvairiems slapto ryšio rėžimams. Į dokumento užduotis įeina :· Duoti supratimą apie duomenų perdavimo ryšio saugumo užtikrinimo pagrindus.· Suformuluoti supratimą apie sistemų pažeidžiamumą perduodant duomenis ir jų analizės kryptis.· Duoti pagrindinius supratimus apie duomenų kriptografiją ir šifravimą.· Sukurti perspektyvą užslaptintų duomenų esančių apdorojimo sistemose naudojimui.· Duoti supratimą apie metodus, kurie užtikrina perduotų duomenų saugumą esant jų perėmimo ir turinio iššifravimo konkrečiam pavojui

DES šifravimo algoritmas

Duomenų užslaptinimo algoritmas sukurtas duomenų blokų šifravimui ir dešifravimui , kurie yra sudaryti iš 64 bitų . Tai blokinio tipo šifravimas, kuriame 64 bitų duomenų blokai užšifruojami naudojant 56 bitų privatų raktą. Dešifravimas atliekamas naudojant tą patį raktą, kuris naudojamas užšifravimui, tačiau su bitų adresacija, kuri yra paveikta taip, kad dešifravimas butų atbulinis procesas šifravimo atžvilgiu. Blokas, kuris turi būti užšifruojamas, pirmiausia yra atliekamas pirminis IP pertvarkymas, po to atliekamas sudėtingas perskaičiavimas, kuris priklauso nuo rakto ir pabaigoje IP-1 pertvarkymas, kuris yra inversinis pradiniams pertvarkymams. Perskaičiavimas, kuris priklauso nuo rakto, kali būti nustatomas kaip pasikeitimas atitinkamai su šifravimo funkcijos „f“ į raktų paskirstymo funkciją „KS“ . Paveikslėlyje Nr 1 yra parodytas struktūrinė šifravimo algoritmo struktūra.

Duomenų įvedimas atliekamas blokais, kurie sudaryti iš 64 bitų. Pirmiausiai yra atliekami pertvarkymai pagal duotą lentelę .Lentelė Nr. 1 Pradiniai pertvarkymai (IP).58 50 42 34 26 18 10 260 52 44 36 28 20 12 462 54 46 38 30 22 14 664 56 48 40 32 24 16 857 49 41 33 25 17 9 159 51 43 35 27 19 11 361 53 45 37 29 21 13 563 55 47 39 31 23 15 7

Esant, pavyzdžiui, įėjimo bloko 58-as informacinis bitas išeis kaip pirmas, 50 kaip antras, 2 bitas aštuntu, 1 bitas – 40.

Po to įėjimo blokas su perstatytais bitais patenka į perskaičiavimų schemą, kuri yra sudaryta iš 16 paeiliui sujungtų taškų – kartotinių ( pertvarkymai kiekviename iš jų atkartojami pagal ankstesnius )

Čia informacinis blokas (64 bitai) suskaldomas į dvi dalis L ir R po 32 bitus, kurie patenka į du kartotuvo įėjimus. Įeinantį bloką galime dabar žymėti kaip LR. Į trečią kartotuvo įėjimą patenka blokai K po 48 bitus , turintys „rakto“ sudarymo schemą. Blokai R ir K apdorojami pagal dėsnius, kurie yra užduodami šifravimo funkcijos f(R,K) . Kiekvienas gauto 32 bitų bloko bitas sudedamas su antro modulio bitais bloko L. Šiuo atveju kartotuvo įėjimo blokai L‘ ir R‘ esant įėjimo blokams L ir R, ir raktui K bus lygūs :L‘=RR’=L(+) f(R,K)kur (+) – žymi dviejų informacinių modulių bitų sudėtį , patenkančių iš vienos ir kitos krypties.Skaičiavimo algoritmas f(R,K) pavaizduotas pav. Nr. 2 .

Kur E – funkcija kuri paverčia 32 bitus ( įėjime) į 48 bitus ( išėjime ). 48 įėjimo bitai ( 8 blokai po 6 bitus) gaunami bitų išrinkimu atitinkamai pagal lentelę Nr. 2

Lentelė nr. 2. ”Е” (bitinio išrinkimo lentelė)32 1 2 3 4 54 5 6 7 8 98 9 10 11 12 1312 13 14 15 16 1716 17 18 19 20 2120 21 22 23 24 2524 25 26 27 28 2928 29 30 31 32 1

Toliau 6 bitų funkcija Sn ( įėjime) keičia į 4 bitus ( išėjime) . Galime panagrinėti pavyzdį pagal S1 :Eilutė Stulpelio Nr. № 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 71 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 82 4 1 14 8 13 6 2 11 15 12 9 7 13 10 5 03 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 3

Jeigu S1 – šios lentelės nustatymo funkcija ir B – blokas sudarytas iš 6 bitų, tai S(B) nustatomi : pirmas ir paskutinis bitas bloke B dvejetainėje sistemoje duoda skaičių nuo 0 iki 3. Taigi manykime, kad skaičius lygus i. Viduriniai 4 bitai B bloke dvejetainėje sistemoje atitinka skaičius nuo 0 iki 15. Tegul šis skaičius bus lygus j . Surasime lentelėje skaičių i-joje eilutėje ir j-ame stulpelyje. Tas skaičius aibėje nuo 0 iki 15 ir dvejetainėje formoje yra 4 bitų blokas. Šis blokas yra S1 išėjimas įvestajam B. Pavyzdžiui, jei B=011011, tai eilutės numeris bus lygus 1 (01B), o stulpelio nr.= 13 (1101B). Lentelėje surandame 1 eilutėje ir 13 stulpelyje, skaičių 5. Tai yra išėjime gautas skaičius lygus 0101. Funkcijos S1,S2 …. S8 pateiktos lentelėje nr. 3

Lentelė Nr.3. Funkcijos S1…S8S114 4 13 1 2 15 11 8 3 10 6 12 5 9 0 70 15 7 4 14 2 13 1 10 6 12 11 9 5 3 84 1 14 8 13 6 2 11 15 12 9 7 3 10 5 015 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13S215 1 8 14 6 11 3 4 9 7 2 13 12 0 5 103 13 4 7 15 2 8 14 12 0 1 10 6 9 11 50 14 7 11 10 4 13 1 5 8 12 6 9 3 2 1513 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9S310 0 9 14 6 3 15 5 1 13 12 7 11 4 2 813 7 0 9 3 4 6 10 2 8 5 14 12 11 15 113 6 4 9 8 15 3 0 11 1 2 12 5 10 14 71 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12S47 13 14 3 0 6 9 10 1 2 8 5 11 12 4 1513 8 11 5 6 15 0 3 4 7 2 12 1 10 14 910 6 9 0 12 11 7 13 15 1 3 14 5 2 8 43 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14S52 12 4 1 7 10 11 6 8 5 3 15 13 0 14 914 11 2 12 4 7 13 1 5 0 15 10 3 9 8 64 2 1 11 10 13 7 8 15 9 12 5 6 3 0 1411 8 12 7 1 4 2 3 6 15 0 9 10 4 5 3S612 1 10 15 9 2 6 8 0 13 3 4 14 7 5 1110 15 4 2 7 12 9 5 6 1 13 14 0 11 3 89 14 15 5 2 8 12 3 7 0 4 10 1 13 11 64 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13S74 11 2 14 15 0 8 13 3 12 9 7 5 10 6 113 0 11 7 4 9 1 10 14 3 5 12 2 15 8 61 4 11 13 12 3 7 14 10 15 6 8 0 5 9 26 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12S813 2 8 4 6 15 11 1 10 9 3 14 5 0 12 71 15 13 8 10 3 7 4 12 5 6 11 0 14 9 27 11 4 1 9 12 14 2 0 6 10 13 15 3 5 82 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

Pertvarkymo funkcija P nustatoma pagal lentelę Nr. 4 Lentelė Nr. 4. Pertvarkymo Р.16 7 20 2129 12 28 171 15 23 265 18 31 102 8 24 1432 27 3 919 13 30 622 11 4 25

Išėjimo reikšmė P(L) duotajam P nustatyto pagal lentelę gaunama sekančiu būdu : iš bloko L imama 16-os bitų L kaip pirmasis bitas P(L), 7–asis bitas kaip antras P(L) bitas ir taip toliau , kol 25-asis bitas L nebus paimtas kaip 32-asis bitas P(L). Taigi dabar S1,…,S8 bus aštuonios išrinkimo funkcijos, P – pertvarkymo funkcija ir E bus nustatymo funkcija. Dėl to, kad nustatyti f(R,K) mes iš pradžių nustatome B1,…,B8 ( po 6 bitus kiekvienas) : B1 B2… B8 = K(+)E(R) (1)blokas f(R,K) nustatomas : P(S1(B1)S2(B2)….S8(B8)) (2)Tokiu būdu K(+)E(R) iš pradžių dalinamas į 8 blokus kaip parodyta (1) . Po to kiekvienas Bi paimtas kaip įvedimas į Si ir 8 blokų (S1(B1)S2(B2)…..S8(B8) po 4 bitus kiekvienas , persiverčia į vieną 32 bitų bloką , kuris įvedamas į P. Išėjimas P iš (2) tampa funkcijos f išėjimu įvedimams R ir K. Yra priimta , kad KS(n,KEY) yra funkcija, kuri nustatoma sveiku skaičiumi n, kuris keičiasi nuo 1 iki 16 (n- kartotinio numeris) raktu (KEY) sudarytu iš 64 bitų. Skaičiavimo algoritmas Kn pavaizduotas pav. 3

Peržiūrėkime funkcijos Kn gavimo algoritmą. Pradžioje 64 bitų raktui yra atliekamas perstatymas pagal PC-1 (lentelė 5)Lentelė Nr.5. Papildomi perstatymai PC-1.57 49 41 33 25 17 91 58 50 42 34 26 1810 2 59 51 43 35 2719 11 3 60 52 44 36

63 55 47 39 31 23 157 62 54 46 38 30 2214 6 61 53 45 37 2921 13 5 28 20 12 4

Lentelė yra padalinta į dvi dalis. Pirmoje dalyje yra išrenkami C0 bitai, antroje- D0 bitai. Rakto bitai išvardinti nuo 1 iki 64. C0 bitai yra atitinkamai lygus bitams 57,49,41,…,44 ir 36 raktui, D0 bitai yra 63, 55, 47,…, 12 ir 4 rakto. Po C0 ir D0 nustatymo mes apibrėšime blokus Cn ir Dn, kurie gaunami iš blokų Cn-1 ir Dn-1, atitinkami , kur n=1,2,….., 16. Tai atliekama naudojant blokų paslinkimą kairėn prisilaikant taisyklių iš lentelės nr. 6 .

Lentelė Nr. 6 Poslinkių sąrašas.№ kartotinio Poslinkių skaičius1 12 13 24 25 26 27 28 29 110 211 212 213 214 215 216 1

Pavyzdžiui, C3 ir D3 gaunami iš C2 ir D2 , atitinkamai dviem postūmiais kairėn C16 ir D16 gaunami iš C15 ir D15 , atitinkamai vienu poslinkiu kairėn. PC-2 pertvarkymai nustatomi iš lentelės nr. 7Lentelė Nr.7. Papildomi pertvarkymai РС-2.14 17 11 24 1 53 28 15 6 21 1023 19 12 4 26 816 7 27 20 13 241 52 31 37 47 5530 40 51 45 33 4844 49 39 56 34 5346 42 50 36 29 32

Atitinkamai , pirmas bitas Kn – tai 14-asis bitas CnDn, , antras bitas – 17 ir taip toliau nuo 47-asis – 29 –asis ir 48-asis bitas -32. Išėjime gauta paskutinio (16-ojo) kartotinio išankstinė eiliškumo reikšmė yra pertvarkoma atitinkamai inversiniu pirminiu ir užduotu pagal lentelę nr. 8. Lentelė Nr. 8. Pertvarkymai pirminiu inversiniu (IP-1).40 8 48 16 56 24 64 3239 7 47 15 55 23 63 3138 6 46 14 54 22 62 3037 5 45 13 53 21 61 2936 4 44 12 52 20 60 2835 3 43 11 51 19 59 2734 2 42 10 50 18 58 2633 1 41 9 49 17 57 25

Atliekant dešifravimą naudojamas tiks pat algoritmas ir raktas, kaip ir užšifravime. Tačiau būtina naudoti atbulinę padavimo tvarką į raktinių blokų kartotinį. Į pirmą kartotinį paduodamas 16-asis raktinis blokas (K16), į antrą – 15(K15) ir taip toliau.

Literatūros sąrašas1. http://www.esecurity.lt/2. http://www.aci.net/kalliste/des.htm3. http://www.cryptographyworld.com/des.htm4. http://www.abisoft.net/des.html5. http://book.itep.ru/6/des_641.htm6. http://www.racal.ru/rsp/des_2.htm7. http://www.mif.vu.lt/ttsk/bylos/sta/kr.html

Išvados

JAV nacionalinis standartizacijos ir technologijų institutas (NIST) oficialiai pripažino, kad populiarusis šifravimo standartas DES yra neveiksnus, ir pranešė, kad valstybinis patentas jo naudojimui bus panaikintas. Priežastis – nepakankamas patikimumas. Jeigu anksčiau, 56-bitų rakto nulaužimui reikėdavo metų, tai dabar galingas kompiuteris “grubios jėgos” metodu, tokį raktą iššifruos per pora dienų. Pasinaudojant “žodyno” metodu ir dar greičiau. Vietoj DES patariama naudoti triguba DES (triple DES) arba AES, kurių patikimumas yra trilijonus kartų didesnis nei DES.Yra nusistovėjusi nuomonė, kad žmogus šifruoja duomenis, todėl, kad daro kažką nelegalaus. Dauguma pasakys, kad jie neturi ką slėpti. Tačiau šiame informacijos amžiuje kiekviena gauta informacijos dalelytė gali būti panaudota prieš jus. Tai ypač aktualu konkurentams. Kam naudoti pinigus ir resursus, jei galima visą reikiamą informaciją gauti iš savo priešininkų. Šifravimas taip pat labai svarbi elektroninės komercijos dalis. Norint įgyti klientų pasitikėjimą turi būti užtikrintas jų duomenų saugumas.