DES-algoritmin salauskaavio. DES- ja AES-salausalgoritmit

symmetriset näppäimet.

IBM:n ehdottama muutos projektiin, nimeltään Lucifer, hyväksyttiin DES:ksi. DES julkaistiin luonnosmuodossa vuonna Liittovaltion rekisteri maaliskuussa 1975 as Federal Information Processing Standard (FIPS – Federal Information Processing Standard).

Julkaisemisen jälkeen luonnosta kritisoitiin ankarasti kahdesta syystä. Ensinnäkin kritisoitiin kyseenalaisen pientä avaimen pituutta (vain 56 bittiä), mikä saattaisi tehdä salauksesta alttiin raa'an voiman hyökkäyksille. Toinen syy: kriitikot olivat huolissaan DES:n sisäisen rakenteen piilotetusta suunnittelusta.

He epäilivät, että jossakin rakenteen osassa (S-laatikot) voisi olla piilotettu takaovi, joka mahdollistaisi viestien salauksen purkamisen ilman avainta. IBM:n suunnittelijat ilmoittivat myöhemmin, että sisäistä rakennetta oli muutettu krypta-analyysin estämiseksi.

DES julkaistiin lopulta nimellä FIPS 46 liittovaltion rekisterissä tammikuussa 1977. FIPS on kuitenkin julistanut DES:n standardiksi käytettäväksi epävirallisissa sovelluksissa. DES oli yleisimmin käytetty lohkosalaus symmetriset näppäimet julkaisusta alkaen. NIST ehdotti myöhemmin uutta standardia (FIPS 46-3), joka suosittelee kolminkertaisen DES:n (triple DES cipher) käyttöä tulevissa sovelluksissa. Kuten näemme myöhemmin luennoilla 9-10, uudemman AES-standardin odotetaan korvaavan DES:n.

Yleiset määräykset

Kuten kuvassa näkyy. 8.1. DES - lohkosalaus.


Riisi. 8.1.

Salauspuolella DES ottaa 64-bittisen tekstin ja tuottaa 64-bittisen salatekstin; Salauksen purkamisen puolella DES ottaa 64-bittisen salatekstin ja tuottaa 64-bittisen tavallisen tekstin. Molemmat osapuolet käyttävät samaa 56-bittistä avainta salaukseen ja salauksen purkamiseen.

8.2. DES-rakenne

Tarkastellaan ensin salausta ja sitten salauksen purkamista. Salausprosessi koostuu kahdesta permutaatiosta (P-lohkosta) - joita kutsutaan aloitus- ja loppupermutaatioiksi - ja 16 Feistel-kierrosta. Jokainen kierros käyttää eri generoitua 48-bittistä avainta. Generointialgoritmia käsitellään myöhemmin tässä luennossa. Kuva 8.2 esittää DES-salauksen elementit salauspuolella.

Alku- ja loppupermutaatiot

Kuva 8.3 näyttää alku- ja loppupermutaatiot (P-lohkot). Jokainen permutaatio ottaa 64-bittisen syötteen ja järjestää sen elementit uudelleen tietyn säännön mukaan. Olemme näyttäneet vain pienen määrän tuloportteja ja vastaavia lähtöportteja. Nämä permutaatiot ovat suoria permutaatioita ilman avaimia, jotka ovat toistensa käänteisiä. Esimerkiksi alkupermutaatiossa tulon 58. bitti menee lähdön ensimmäiseen bittiin. Vastaavasti viimeisessä permutaatiossa ensimmäinen tulobitti menee 58. lähtöbittiin. Toisin sanoen, jos näiden kahden permutoinnin välillä ei ole kierrosta, alkuperäisen permutaatiolaitteen tuloon syötetty 58. bitti toimitetaan lopullisella permutaatiolla 58. lähtöön.


Riisi. 8.2.


Riisi. 8.3

Tämän P-laatikon permutaatiosäännöt on esitetty taulukossa 8.1. Taulukko voidaan esittää 64 elementin taulukkona. Huomaa, että keskustelimme taulukon kanssa työskentelemisestä, kunkin elementin arvo määrittää tuloportin numeron ja elementin sarjanumero (indeksi) määrittää lähtöportin numeron.

Taulukko 8.1. Taulukko alku- ja loppupermutaatioista
Alkuperäiset permutaatiot Rajalliset permutaatiot
58 50 42 34 26 18 10 02 40 08 48 16 56 24 64 32
60 52 44 36 28 20 12 04 39 07 47 15 55 23 63 31
62 54 46 38 30 22 14 06 38 06 46 14 54 22 62 30
64 56 48 40 32 24 16 08 37 05 45 13 53 21 61 29
57 49 41 33 25 17 09 01 36 04 44 12 52 20 60 28
59 51 43 35 27 19 11 03 35 03 43 11 51 19 59 27
61 53 45 37 29 21 13 05 34 02 42 10 50 18 58 26
63 55 47 39 31 23 15 07 33 01 41 09 49 17 57 25

Näillä kahdella permutaatiolla ei ole merkitystä salauksen kannalta

DES-standardi on suunniteltu suojaamaan luvattomalta pääsyltä arkaluonteisiin mutta luokittelemattomiin tietoihin Yhdysvaltain hallituksen ja kaupallisissa organisaatioissa. Standardin taustalla oleva algoritmi levisi melko nopeasti, ja jo vuonna 1980 se hyväksyttiin Yhdysvaltain kansallisessa standardointi- ja teknologiainstituutissa. Tästä hetkestä lähtien DES:stä tulee standardi, ei vain nimellisesti, vaan myös itse asiassa. Ilmestyy ohjelmistoja ja erikoismikrotietokoneita, jotka on suunniteltu salaamaan ja purkamaan tietoverkoissa olevia tietoja.

Tähän mennessä DES on yleisin kaupallisissa tietoturvajärjestelmissä käytetty algoritmi. Lisäksi DES-algoritmin toteuttaminen tällaisissa järjestelmissä on merkki hyvästä muodosta.

DES-algoritmin tärkeimmät edut:

· käytetään vain yhtä avainta, jonka pituus on 56 bittiä;

· kun olet salannut viestin yhdellä paketilla, voit käyttää mitä tahansa muuta sen salauksen purkamiseen;

· algoritmin suhteellinen yksinkertaisuus takaa suuren tiedonkäsittelyn nopeuden;

· riittävän korkea algoritmin vakaus.

DES salaa 64-bittiset tietolohkot 56-bittisellä avaimella. Salauksen purku DES:ssä on salauksen käänteinen operaatio ja se suoritetaan toistamalla salausoperaatioita käänteisessä järjestyksessä (ilmeisyydestä huolimatta näin ei aina tehdä. Myöhemmin tarkastellaan salauksia, joissa salaus ja salauksen purku suoritetaan eri algoritmeilla).

Salausprosessi koostuu 64-bittisen lohkon alustavasta bittipermutaatiosta, kuudestatoista salausjaksosta ja lopuksi käänteisbittipermutaatiosta (kuva 1).

On heti huomattava, että KAIKKI tässä artikkelissa annetut taulukot ovat STANDARDIA, ja siksi ne tulisi sisällyttää algoritmin toteutukseen ennallaan. Kehittäjät valitsevat kaikki taulukoissa olevat permutaatiot ja koodit siten, että salauksen purkuprosessi on mahdollisimman vaikeaa valitsemalla avaimen. DES-algoritmin rakenne on esitetty kuvassa. 2.

Riisi. 2.

Luetaan seuraava 8-tavuinen lohko T tiedostosta, joka muunnetaan käyttämällä alkuperäistä permutaatiomatriisia IP (taulukko 1) seuraavasti: lohkon T bitistä 58 tulee bitti 1, bitistä 50 bitti 2 jne., mikä tuloksena: T(0) = IP(T).

Tuloksena oleva bittisekvenssi T(0) jaetaan kahteen 32 bitin sekvenssiin: L(0) - vasemman tai korkean kertaluvun bitit, R(0) - oikean tai matalan kertaluvun bitit.

Taulukko 1: IP-alkuperäinen permutaatiomatriisi

58 50 42 34 26 18 10 02

60 52 44 36 28 20 12 04

62 54 46 38 30 22 14 06

64 56 48 40 32 24 16 08

57 49 41 33 25 17 09 01

59 51 43 35 27 19 11 03

61 53 45 37 29 21 13 05

63 55 47 39 31 23 15 07

Sitten suoritetaan salaus, joka koostuu 16 iteraatiosta. I:nnen iteraation tulos kuvataan seuraavilla kaavoilla:

R(i) = L(i-1) xtai f (R(i-1), K(i)),

missä xor on EXCLUSIVE OR -operaatio.

Funktiota f kutsutaan salausfunktioksi. Sen argumentit ovat 32-bittinen sekvenssi R(i-1), joka saadaan (i-1):nnessä iteraatiossa, ja 48-bittinen avain K(i), joka on tulos 64-bittisen avaimen K muuntamisesta. Yksityiskohtaisesti salaustoiminto ja algoritmi avainten K(i) hankkimiseksi kuvataan alla.

16. iteraatiossa saadaan sekvenssit R(16) ja L(16) (ilman permutaatiota), jotka ketjutetaan 64-bittiseksi sekvenssiksi R(16) L(16).

Sitten tämän sekvenssin bittipaikat järjestetään uudelleen IP -1 -matriisin mukaisesti (taulukko 2).

Taulukko 2: Käänteinen permutaatiomatriisi IP -1

40 08 48 16 56 24 64 32

39 07 47 15 55 23 63 31

38 06 46 14 54 22 62 30

37 05 45 13 53 21 61 29

36 04 44 12 52 20 60 28

35 03 43 11 51 19 59 27

34 02 42 10 50 18 58 26

33 01 41 09 49 17 57 25

IP -1- ja IP-matriisit liittyvät toisiinsa seuraavasti: IP -1-matriisin 1. elementin arvo on 40 ja IP-matriisin 40. elementin arvo on 1, 2. IP -1-matriisin elementti on 8 ja 8. IP-matriisielementin arvo on yhtä suuri kuin 2 jne.

Tietojen salauksen purkuprosessi on käänteinen salausprosessille. Kaikki vaiheet on suoritettava käänteisessä järjestyksessä. Tämä tarkoittaa, että salauksesta purettu data järjestetään ensin uudelleen IP-1-matriisin mukaan ja sitten suoritetaan samat toimenpiteet bittijonolle R(16) L(16) kuin salausprosessissa, mutta käänteisessä järjestyksessä.

Iteratiivinen salauksen purkuprosessi voidaan kuvata seuraavilla kaavoilla:

R(i-1) = L(i), i = 1, 2,…, 16;

L (i-1) = R(i) xtai f (L(i), K(i)), i = 1, 2,…, 16.

16. iteraatiossa saadaan sekvenssit L(0) ja R(0), jotka ketjutetaan 64-bittiseksi sekvenssiksi L(0) R(0).

Tämän sekvenssin bittipaikat järjestetään sitten uudelleen IP-matriisin mukaan. Tällaisen permutaation tulos on alkuperäinen 64-bittinen sekvenssi.

Tarkastellaan nyt salausfunktiota f (R(i-1), K(i)). Se on esitetty kaavamaisesti kuvassa. 3.


Riisi. 3.

Funktion f arvon laskemiseen käytetään seuraavia matriisifunktioita:

E - 32-bittisen sekvenssin laajentaminen 48-bittiseksi,

S1, S2,…, S8 - 6-bittisen lohkon muuntaminen 4-bittiseksi,

P - bittien permutaatio 32-bittisessä sekvenssissä.

Laajennusfunktio E määritetään taulukon avulla. 3. Tämän taulukon mukaan E:n (R(i-1)) 3 ensimmäistä bittiä ovat bittejä 32, 1 ja 2 ja viimeiset 31, 32 ja 1.

Taulukko 3: Laajennustoiminto E

32 01 02 03 04 05

04 05 06 07 08 09

08 09 10 11 12 13

12 13 14 15 16 17

16 17 18 19 20 21

20 21 22 23 24 25

24 25 26 27 28 29

28 29 30 31 32 01

Toiminnon E (R(i-1)) tulos on 48-bittinen sekvenssi, johon lisätään modulo 2 (xor-toiminto) 48-bittisellä avaimella K(i). Tuloksena oleva 48-bittinen sekvenssi jaetaan kahdeksaan 6-bittiseen lohkoon B(1) B(2) B(3) B(4) B(5) B(6) B(7) B(8). Tuo on:

E (R(i-1)) xtai K(i) = B(1) B(2)… B(8).

Funktiot S1, S2,…, S8 on määritelty taulukossa. 4.

Taulukko 4

pöytään 4. Lisäselvennykset ovat tarpeen. Olkoon matriisifunktion Sj syöte 6-bittinen lohko B(j) = b1b2b3b4b5b6, jolloin kaksibittinen luku b1b6 ilmaisee matriisin rivinumeron ja b2b3b4b5 sarakkeen numero. Sj:n tulos (B(j)) on 4-bittinen elementti, joka sijaitsee määritetyn rivin ja sarakkeen leikkauskohdassa.

Esimerkiksi B(1)=011011. Tällöin S1 (B(1)) sijaitsee rivin 1 ja sarakkeen 13 leikkauskohdassa. Rivin 1 sarakkeessa 13 arvo on 5. Tämä tarkoittaa S1 (011011)=0101.

Kun valintaoperaatiota sovelletaan kuhunkin 6-bittiseen lohkoon B(1), B(2),…, B(8), saadaan 32-bittinen sekvenssi S1 (B(1)) S2 (B(2)) S3 (B(3))... S8 (B(8)).

Lopuksi salaustoiminnon tuloksen saamiseksi tämän sekvenssin bitit on järjestettävä uudelleen. Tätä tarkoitusta varten käytetään permutaatiofunktiota P (taulukko 5). Syöttösekvenssissä bitit järjestetään uudelleen siten, että bitistä 16 tulee bitti 1, bitistä 7 tulee bitti 2 ja niin edelleen.

Taulukko 5: Permutaatiofunktio P

Täten,

f (R(i-1), K(i)) = P (S1 (B(1)),… S8 (B(8)))

Tietojen salausalgoritmin kuvauksen täydentämiseksi on vielä esitettävä algoritmi 48-bittisten avainten K(i), i=1...16 saamiseksi. Jokaisessa iteraatiossa käytetään uutta avainarvoa K(i), joka lasketaan alkuperäisestä avaimesta K. K on 64-bittinen lohko, jossa on kahdeksan pariteettibittiä paikoissa 8,16,24,32,40,48, 56. 64.

Ohjausbittien poistamiseksi ja loput uudelleenjärjestämiseksi käytetään näppäinvalmistelun toimintoa G (taulukko 6).

Taulukko 6

Alkuavaimen valmistelun matriisi G

57 49 41 33 25 17 09

01 58 50 42 34 26 18

10 02 59 51 43 35 27

19 11 03 60 52 44 36

63 55 47 39 31 23 15

07 62 54 46 38 30 22

14 06 61 53 45 37 29

21 13 05 28 20 12 04

Muunnoksen tulos G(K) jaetaan kahteen 28-bittiseen lohkoon C(0) ja D(0), ja C(0) koostuu avaimen biteistä 57, 49, ..., 44, 36. K ja D(0) koostuvat biteistä 63, 55,…, 12, 4 avainta K. Kun C(0) ja D(0), C(i) ja D(i) on määritetty, i=1… 16, määritetään rekursiivisesti. Voit tehdä tämän käyttämällä syklistä siirtoa vasemmalle yhden tai kahden bitin verran iterointinumerosta riippuen taulukon mukaisesti. 7.

Taulukko 7. Vaihtotaulukko näppäinlaskelmaa varten

Iteraationumero

Vaihto (bittiä)

Tuloksena oleva arvo "sekoitetaan" jälleen matriisin H mukaisesti (taulukko 8).

Taulukko 8: Avainten täyttömatriisi H

14 17 11 24 01 05

03 28 15 06 21 10

23 19 12 04 26 08

16 07 27 20 13 02

41 52 31 37 47 55

30 40 51 45 33 48

44 49 39 56 34 53

46 42 50 36 29 32

Avain K(i) koostuu sekvenssin C(i) D(i) biteistä 14, 17,…, 29, 32. Täten:

K(i) = H (C(i) D(i))

Avaimen laskenta-algoritmin lohkokaavio on esitetty kuvassa. 4.

Riisi. 4.

Alkuperäisen tekstin palauttaminen tapahtuu tällä algoritmilla, mutta ensin käytetään näppäintä K(15), sitten K(14) ja niin edelleen. Nyt sinun pitäisi ymmärtää, miksi kirjoittaja ehdottomasti suosittelee annettujen matriisien käyttöä. Jos menet roistoon, saatat saada hyvin salaisen koodin, mutta et voi murtaa sitä itse!

Yli 30 vuotta on kulunut siitä, kun DES-algoritmi hyväksyttiin Yhdysvaltain salausstandardiksi. DES on salausalgoritmi, jolla on rikkain ja mielenkiintoisin historia.

Algoritmin luomisen historia

Yksi maailman tunnetuimmista kryptologeista, Bruce Schneier, kuvaili kuuluisassa kirjassaan "Applied Cryptography" tietoturvatyökalujen käyttäjien ongelmia 70-luvun alussa. XX vuosisata (puhumme luonnollisesti käyttäjistä rautaesiripun toisella puolella):

Tietojen salaukselle ei ollut yleisesti hyväksyttyä standardia eikä yksinkertaisesti käytettyjä tietoturvaalgoritmeja, joten yhteensopivuus eri ohjelmistojen tai laitteistojen salaustyökalujen välillä ei tullut kysymykseen;

Melkein mikä tahansa salaustyökalu oli "musta laatikko", jonka sisältö oli melko epäselvä: mitä salausalgoritmia käytetään, kuinka vahva se on kryptografisesti, onko se toteutettu oikein, onko salausavaimia luotu, tallennettu ja käytetty oikein, sisältääkö työkalu dokumentoimatonta kehittäjien ja jne. lisäämät ominaisuudet - kaikki tämä erittäin tärkeä tieto ei ollut suurimmalle osalle salausrahastojen ostajista.

Yhdysvaltain National Bureau of Standards (NBS) oli huolissaan tästä ongelmasta. Tämän seurauksena vuonna 1973 julkistettiin ensimmäinen avoin kilpailu salausstandardista. NBS oli valmis tutkimaan ehdokasalgoritmeja, jotka täyttivät seuraavat kriteerit standardin valitsemiseksi:

Algoritmin on oltava kryptografisesti vahva;

Algoritmin on oltava nopea;

Algoritmin rakenteen tulee olla selkeä ja tarkka;

Salauksen vahvuuden tulisi riippua vain avaimesta, itse algoritmi ei saa olla salainen;

Algoritmin tulee olla helposti sovellettavissa eri tarkoituksiin;

Algoritmi tulisi helposti toteuttaa laitteistossa olemassa olevia laitteistokomponentteja käyttäen.

Oletuksena oli, että kiinnostuneet organisaatiot tai asiantuntijat lähettäisivät NBS:lle yksityiskohtaiset eritelmät algoritmeista, jotka riittävät niiden toteuttamiseen, eli ilman "sokeita kulmia". Lisäksi oletettiin, että NBS sertifioi algoritmin yleiskäyttöön ja siitä poistettaisiin kaikki patentti- ja vientirajoitukset, minkä seurauksena tällaisen standardin olisi ratkaistava kaikki salauksen yhteensopivuusongelmat. Lisäksi NBS otti vastuulleen salaustyökalujen sertifiointitoiminnot - eli "mustista laatikoista" olisi pitänyt tulla menneisyyttä.

Itse asiassa oli vain yksi ehdokasalgoritmi: se oli ShM:n kehittämä Lucifer-salausalgoritmi. (katso kohta 3.31). Kahden vuoden aikana algoritmia jalostettiin:

Ensinnäkin NBS yhdessä Yhdysvaltain kansallisen turvallisuusviraston (NSA, National Security Agency) kanssa suoritti algoritmin perusteellisen analyysin, joka johti sen melko merkittävään tarkistamiseen;

Toiseksi kaikkien kiinnostuneiden organisaatioiden ja henkilöiden kommentit ja kritiikki otettiin huomioon.

IBM:n, NBS:n ja NSA:n yhteisten ponnistelujen tuloksena DES julkaistiin tammikuussa 1977 Yhdysvaltain standardina (tämän standardin uusin versio on asiakirjassa) tietojen salausalgoritmille (lukuun ottamatta erittäin arkaluonteisia tietoja). DES-algoritmin patentoi YuM, mutta NBS sai itse asiassa ilmaisen ja rajoittamattoman lisenssin käyttää tätä algoritmia. Vaihtoehtoinen, mutta harvemmin käytetty nimi algoritmille on DEA (Data Encryption Algorithm).

Algoritmin pääominaisuudet ja rakenne

DES-algoritmi salaa tiedot 64-bittisiksi lohkoiksi käyttämällä 64-bittistä salausavainta, joka käyttää vain 56 bittiä (avaimen laajennusmenettely kuvataan yksityiskohtaisesti alla).

Tietojen salaus suoritetaan seuraavasti (Kuva 3.56):

1. Alkupermutaatio suoritetaan 64-bittiselle datalohkolle taulukon mukaisesti. 3.16.

Taulukko 3.16

Taulukko tulkitaan seuraavasti: tulobitin 58 arvo (tässä kaikki bitit on numeroitu vasemmalta oikealle, alkaen 1) sijoitetaan lähtöbittiin 1, bitin 50 arvo sijoitetaan bittiin 2 jne.



2. Edellisen operaation tulos jaetaan kahteen 32 bitin alilohkoon (per

riisi. 3,56 merkitty A 0 ja B 0), joiden aikana suoritetaan 16 kierrosta

seuraavat muunnokset:

Kuten edellä mainittiin, 64-bittisestä salausavaimesta DES-algoritmi käyttää vain 56 bittiä. Joka 8. bitti hylätään, eikä sitä käytetä millään tavalla algoritmissa, eikä standardi rajoita millään tavalla salausavaimen jäljellä olevien bittien käyttöä DES-algoritmin toteutuksissa. Menettely 64-bittisen avaimen 56 merkitsevän bitin poimimiseksi kuvassa 1. 3.59 on merkitty E. Poiminnan lisäksi tämä menettely suorittaa myös avainbittien uudelleenjärjestelyn taulukon mukaisesti. 3.19 ja 3.20.


Taulukko 3.19

Taulukko 3.20


Permutaation tuloksena muodostuu kaksi 28-bittistä arvoa C ja D. Taulukko 3.19 määrittelee avainbittien valinnan taulukolle C. 3,20 - puolesta D.

Sitten suoritetaan 16 muunnoskierrosta, joista jokainen tuottaa yhden pyöreänäppäimistä K t . Jokaisella avaimen laajennusprosessin kierroksella suoritetaan seuraavat toiminnot:

1. C:n ja D siirretty syklisesti vasemmalle vaihtelevalla bittimäärällä P. Kierroksille 1, 2, 9 ja 16 P= 1, jäljellä olevilla kierroksilla suoritetaan 2 bitin syklinen siirto.

2. C ja D yhdistetään 56-bittiseksi arvoksi, johon sovelletaan pakkauspermutaatiota CP, jonka tuloksena on 48-bittinen pyöreä avain K (. Pakkauspermutaatio suoritetaan taulukon 3.21 mukaisesti.

Taulukko 3.21

Kun purat tietoja, voit käyttää samaa avaimen laajennusmenettelyä, mutta käyttää pyöreitä avaimia käänteisessä järjestyksessä. On toinenkin vaihtoehto: näppäinlaajennusmenettelyn jokaisella kierroksella syklisen siirron sijaan vasemmalle suorita syklinen siirto oikealle n bitin verran, missä rc' = 0 ensimmäisellä kierroksella, u' = 1 kierroksilla 2, 9, 16 ja n = 2 jäljellä oleville kierroksille. Tämä avaimen laajennusmenettely tuottaa välittömästi salauksen purkamiseen tarvittavat pyöreät avaimet.

On syytä sanoa, että kykyä suorittaa avaimen laajennus "lennossa" (varsinkin jos tämä mahdollisuus on olemassa sekä salauksen että salauksen purkamisen aikana) pidetään salausalgoritmien etuna, koska tässä tapauksessa avaimen laajennus voidaan suorittaa samanaikaisesti salauksen kanssa. eikä tuhlata muistia muiden kuin nykyisen avainten tallentamiseen.

DES-algoritmi soveltuu varsin hyvin sekä tietojen salaukseen että todentamiseen. Se mahdollistaa 64-bittisen selväkielisyötteen muuntamisen suoraan 64-bittiseksi salatekstituloksi, mutta data on harvoin rajoitettu 64-bittiseksi.

DES-algoritmin käyttämiseksi useiden salausongelmien ratkaisemiseen on kehitetty neljä toimintatilaa:

· sähköinen koodikirja EKP (Electronic Code Book);

· CBC-salauslohkojen ketjuttaminen (Cipher Block Chaining);

· CFB (Cipher Feed Back) salakirjoituspalaute;

· palaute ulostulosta OFB (Output Feed Back).

"Sähköinen koodikirja" -tila

Pitkä tiedosto on jaettu 64-bittisiin 8 tavun segmentteihin (lohkoihin). Jokainen näistä lohkoista salataan itsenäisesti samalla salausavaimella (kuva 3.6).

Suurin etu on toteutuksen helppous. Haitta: Suhteellisen heikko vastustuskyky taitavia kryptanalyytikoita vastaan. Salauksen kiinteästä luonteesta johtuen rajoitetulla 64 bitin lohkon pituudella "sanakirja"-salausanalyysi on mahdollista. Tämän kokoinen lohko saattaa toistua viestissä luonnollisen kielen tekstin suuren redundanssin vuoksi.

Kuva 3.6 – DES-algoritmin kaavio elektronisessa koodikirjatilassa

Tämä saa aikaan sen, että viestin identtiset selkeän tekstin lohkot edustavat identtisiä salatekstilohkoja, mikä antaa kryptaanalyytikolle jonkin verran tietoa viestin sisällöstä.

"Chaining Cipher Blocks" -tila

Tässä tilassa lähdetiedosto M on jaettu 64-bittisiin lohkoihin: M = M 1 M 2 ...M n. Ensimmäiseen lohkoon M 1 lisätään modulo 2 64-bittisellä alkuvektorilla IV, joka muuttuu päivittäin ja pidetään salassa (kuva 3.7). Vastaanotettu määrä salataan sitten käyttämällä DES-avainta, jonka tietävät sekä tiedon lähettäjä että vastaanottaja. Tuloksena oleva 64-bittinen salaus C1 lisätään modulo 2 toisen tekstilohkon kanssa, tulos salataan ja saadaan toinen 64-bittinen salaus C 2 jne. Toimenpide toistetaan, kunnes kaikki tekstilohkot on käsitelty.

Siten kaikille i = 1…n (n on lohkojen lukumäärä) salaustulos C i määritetään seuraavasti: C i =

DES (М i  C i –1), missä С 0 = IV on salauksen alkuarvo, joka on yhtä suuri kuin alkuvektori (alustusvektori).

Ilmeisesti viimeinen 64-bittinen salatekstilohko on salaisen avaimen, siemenvektorin ja kunkin bitin funktio.

Kuva 3.7 – DES-algoritmin kaavio salauslohkoketjutustilassa

pelkkä teksti sen pituudesta riippumatta. Tätä salatekstilohkoa kutsutaan viestin todennuskoodiksi (MAC).


CAS-koodin voi helposti tarkistaa vastaanottaja, jolla on salainen avain ja siemenvektori, toistamalla lähettäjän suorittaman toimenpiteen. Ulkopuolinen ei kuitenkaan voi luoda UAS:ta, jonka vastaanottaja pitää aidona, lisätäkseen väärään viestiin tai erottaakseen UAS:ta oikeasta viestistä käytettäväksi muokatun tai väärän viestin kanssa.

Tämän tilan etuna on, että se ei salli virheiden kertymistä lähetyksen aikana.

Lohko M i on vain C i -1:n ja C i:n funktio. Siksi lähetysvirhe johtaa vain kahden lähdetekstilohkon katoamiseen.

"Salapalaute"-tila

Tässä tilassa lohkokoko voi poiketa 64 bitistä (kuva 3.8). Salattava (salauksesta purettava) tiedosto luetaan peräkkäisissä k bitin (k=1...64) lohkoissa.

Tulolohko (64-bittinen siirtorekisteri) sisältää ensin oikealle kohdistetun alustusvektorin.

Oletetaan, että lohkoihin jakamisen tuloksena saimme n k-bitin pituista lohkoa (jäljellä olevaan osaan on lisätty nollia tai välilyöntejä). Sitten mille tahansa i=1…n salatekstilohkolle

С i = M i  P i –1 ,

jossa P i–1 merkitsee edellisen salatun lohkon k eniten merkitsevää bittiä.

Siirtorekisteri päivitetään poistamalla sen korkein k bittiä ja kirjoittamalla C i rekisteriin. Salatun tiedon palauttaminen on myös suhteellisen yksinkertaista: P i –1 ja C i lasketaan samalla tavalla ja

М i = С i  Р i –1 .


Kuva 3.8 – DES-algoritmin kaavio salatekstin palautetilassa

Lähtö palautetila

Tässä tilassa käytetään myös muuttuvaa lohkokokoa ja siirtorekisteriä, joka alustetaan samalla tavalla kuin CFB-moodissa, eli tulolohko sisältää ensin alustusvektorin IV, joka on kohdistettu oikealle (kuva 3.9). Tällöin jokaisessa tiedon salausistunnossa on käytettävä uutta rekisterin alkutilaa, joka on lähetettävä kanavan kautta selkeänä tekstinä.

M = M 1 M 2 ... M n.

Kaikille i = 1… n

C i = M i  P i ,

missä Рi ovat DES-operaation korkeimmat k bittiä (С i –1).

Ero salatekstin palautemoodiin on siirtorekisterin päivityksen menetelmä.

Tämä tehdään hylkäämällä korkein k bittiä ja lisäämällä P i oikealle.

Kuva 3.9 – DES-algoritmin kaavio lähtötakaisinkytkentätilassa

3.3. DES-algoritmin sovellusalueet

Jokaisella tarkastelulla tavalla (ECB, CBC, CFB, OFB) on omat etunsa ja haittansa, jotka määräävät niiden käyttöalueet.

ECB-tila soveltuu hyvin avainsalaukseen: CFB-tila on yleensä tarkoitettu yksittäisten merkkien salaukseen ja OFB-moodia käytetään usein salaukseen satelliittiviestintäjärjestelmissä.

CBC- ja CFB-tilat soveltuvat tietojen todentamiseen. Näiden tilojen avulla voit käyttää DES-algoritmia:

· interaktiivinen salaus vaihdettaessa tietoja päätelaitteen ja isäntätietokoneen välillä;

· salausavaimen salaus automatisoidussa avainten jakelussa;

· tiedostojen, postin, satelliittitietojen salaus ja muut käytännön tehtävät.

Alun perin DES-standardi oli tarkoitettu tietokonetietojen salaukseen ja salauksen purkamiseen. Sen soveltaminen on kuitenkin yleistetty autentikointiin.

Automaattisissa tietojenkäsittelyjärjestelmissä ihminen ei voi millään tavalla tarkastella tietoja selvittääkseen, onko niihin tehty muutoksia. Kun nykyaikaisten käsittelyjärjestelmien läpi virtaa valtavat tietomäärät, selaamiseen kuluisi liikaa aikaa. Lisäksi tietojen redundanssi ei välttämättä riitä virheiden havaitsemiseen. Jopa tapauksissa, joissa ihmisen tarkastelu on mahdollista, tietoja voidaan muuttaa tavoilla, jotka tekevät ihmisten havaitsemisen erittäin vaikeaksi. Esimerkiksi "do" voidaan korvata sanalla "ei", "$1900" sanalla "$9100". Ilman lisätietoja sitä katseleva henkilö voi helposti erehtyä erehtymään muutettuihin tietoihin aidoksi. Tällaisia ​​vaaroja voi esiintyä myös käytettäessä tietojen salausta. Siksi on toivottavaa, että käytössä on automaattinen keino havaita tahalliset ja tahattomat datamuutokset.

Tavalliset virheentunnistuskoodit eivät sovellu, koska jos koodin generointialgoritmi tiedetään, vastustaja voi generoida oikean koodin muutettuaan tietoihin. DES-algoritmia käyttämällä on kuitenkin mahdollista luoda kryptografinen tarkistussumma, joka suojaa sekä vahingossa että tahallisilta mutta luvattomilta muutoksilta.

Tämä prosessi kuvaa tietokoneen tietojen todennusstandardin (FIPS 113). Standardin ydin on, että tiedot salataan salatekstin takaisinkytkentätilassa (CFB-moodi) tai salauslohkojen ketjutustilassa (CBC-moodi), jolloin saadaan lopullinen salauslohko, joka on kaikkien selkotekstibittien funktio. Viesti, joka sisältää selkeän tekstin, voidaan sitten lähettää käyttämällä laskettua lopullista salauslohkoa, joka toimii kryptografisena tarkistussummana.

Samat tiedot voidaan suojata sekä salauksella että todennuksella. Tiedot suojataan pääsyltä salauksella ja muutokset havaitaan todennuksella. Todennusalgoritmia voidaan soveltaa sekä selkeään että salakirjoitukseen. Rahoitustapahtumissa, joissa useimmissa tapauksissa käytetään sekä salausta että todennusta, jälkimmäinen pätee myös avaamiseen

mu tekstiä.

Salausta ja todennusta käytetään suojaamaan tietokoneeseen tallennettuja tietoja. Monissa tietokoneissa salasanat salataan peruuttamattomasti ja tallennetaan koneen muistiin. Kun käyttäjä käyttää tietokonetta ja syöttää salasanan, se salataan ja sitä verrataan tallennettuun arvoon. Jos molemmat salatut arvot ovat samat, käyttäjä saa pääsyn koneeseen, muuten se estetään.

Usein salattu salasana luodaan käyttämällä DES-algoritmia, jolloin avain on yhtä suuri kuin salasana ja pelkkä teksti vastaa käyttäjän tunnistekoodia.

DES-algoritmin avulla voit myös salata tietokonetiedostoja tallennusta varten.

Yksi tärkeimmät sovellukset algoritmi DES On sähköisen maksujärjestelmän (EPS) viestien suojaaminen laajan asiakaskunnan ja pankkien välisten tapahtumien aikana.

DES-algoritmi on toteutettu pankkiautomaateissa, myyntipisteissä, työasemissa ja keskustietokoneissa. Sen suojaamien tietojen valikoima on erittäin laaja - 50 dollarin maksuista useiden miljoonien dollarien siirtoihin. DES-ydinalgoritmin joustavuus mahdollistaa sen käytön monenlaisissa sähköisten maksujärjestelmien sovelluksissa.

  • Opastus

Hei %username%!
Monet ihmiset tietävät, että DES-algoritmia on pitkään pidetty oletusstandardina symmetrisen salauksen alalla. Ensimmäinen onnistunut hyökkäys tätä tappamatonta algoritmia vastaan ​​julkaistiin vuonna 1993, 16 vuotta sen jälkeen, kun se otettiin käyttöön standardina. Menetelmä, jota kirjoittaja kutsui lineaariseksi krypta-analyysiksi, 2 47 pelkkä/salaustekstiparin läsnä ollessa, mahdollistaa DES-salauksen salaisen avaimen avaamisen 2 43 operaatiossa.
Leikkauksen alla yritän hahmotella lyhyesti tämän hyökkäyksen pääkohdat.

Lineaarinen kryptausanalyysi

Lineaarinen kryptausanalyysi on erityinen hyökkäys symmetrisiin salakirjoihin, jonka tarkoituksena on palauttaa tuntematon salausavain tunnetuista yksinkertaisista viesteistä ja niitä vastaavista salateksteistä.

Yleensä lineaariseen krypta-analyysiin perustuva hyökkäys tiivistyy seuraaviin olosuhteisiin. Hyökkääjällä on suuri määrä selkeä-/salateksti-pareja, jotka on saatu samalla salausavaimella K. Hyökkääjän tavoitteena on palauttaa K-avain osittain tai kokonaan.

Ensinnäkin hyökkääjä tutkii salauksen ja löytää ns tilastollinen analogi, ts. seuraavan muotoinen yhtälö, joka pätee todennäköisyydellä P ≠ 1/2 mielivaltaiselle julkisen/yksityisen tekstin parille ja kiinteälle avaimelle:
P I1 ⊕ P I2 ⊕… ⊕ P Ia ⊕ C I1 ⊕ C I2 ⊕… ⊕ C Ib = K I1 ⊕ K I2 ⊕… ⊕ K Ic (1) ,
jossa P n, C n, K n ovat tekstin, salatekstin ja avaimen n:nnet bitit.
Kun tällainen yhtälö on löydetty, hyökkääjä voi palauttaa 1 bitin avaintietoja käyttämällä seuraavaa algoritmia

Algoritmi 1
Olkoon T niiden tekstien lukumäärä, joille yhtälön (1) vasen puoli on 0, niin
Jos T>N/2, missä N on tunnettujen selväkielisten tekstien lukumäärä.
Oletetaan, että K I1 ⊕ K I2 ⊕… ⊕ K Ic = 0 (kun P>1/2) tai 1 (kun P<1/2).
Muuten
Oletetaan, että K I1 ⊕ K I2 ⊕… ⊕ K Ic = 1 (kun P>1/2) tai 0 (kun P<1/2).
On selvää, että algoritmin onnistuminen riippuu suoraan |P-1/2|:n arvosta ja käytettävissä olevien avoimien/suljettujen tekstiparien N määrästä. Mitä enemmän yhtälön (1) todennäköisyys P eroaa 1/2:sta, sitä vähemmän avoimia tekstejä N tarvitaan hyökkäykseen.

On kaksi ongelmaa, jotka on ratkaistava, jotta hyökkäys onnistuisi:

  • Kuinka löytää tehokas yhtälö muodossa (1).
  • Kuinka käyttää tätä yhtälöä saadaksesi enemmän kuin yhden bitin tietoa avaimesta.
Tarkastellaan näiden ongelmien ratkaisua käyttämällä esimerkkinä DES-salausta.

DES:n kuvaus

Mutta ensin kuvataan lyhyesti, kuinka algoritmi toimii. DES:stä on jo puhuttu tarpeeksi. Täydellinen kuvaus salauksesta löytyy Wikipediasta. Hyökkäyksen selittämiseksi lisää tarvitsemme kuitenkin useita määritelmiä, jotka on parasta esitellä etukäteen.

Joten DES on Feistel-verkkoon perustuva lohkosalaus. Salauksen lohkokoko on 64 bittiä ja avaimen koko 56 bittiä. Tarkastellaan DES-algoritmin salausjärjestelmää.

Kuten kuvasta voidaan nähdä, tekstiä salattaessa suoritetaan seuraavat toiminnot:

  1. Alkubitin permutaatio. Tässä vaiheessa syöttölohkon bitit sekoitetaan tietyssä järjestyksessä.
  2. Tämän jälkeen sekoitetut bitit jaetaan kahteen puolikkaaseen, jotka syötetään Feistel-funktion tuloon. Normaalille DES:lle Feistelin verkko sisältää 16 kierrosta, mutta algoritmista on olemassa muita muunnelmia.
  3. Viimeisellä muunnoskierroksella saadut kaksi lohkoa yhdistetään ja tuloksena olevalle lohkolle suoritetaan toinen permutaatio.

Jokaisella Feistel-verkon kierroksella viestin vähiten merkitsevät 32 bittiä kulkevat funktion f kautta:

Katsotaanpa tässä vaiheessa suoritettuja toimintoja:

  1. Syöttölohko kulkee laajennusfunktion E kautta, joka muuntaa 32-bittisen lohkon 48-bittiseksi lohkoksi.
  2. Tuloksena oleva lohko lisätään pyöreään avaimeen K i .
  3. Edellisen vaiheen tulos on jaettu 8 lohkoon, joissa kussakin on 6 bittiä.
  4. Jokainen vastaanotetuista lohkoista Bi kulkee korvausfunktion S-Box i läpi, joka korvaa 6-bittisen sekvenssin 4-bittisellä lohkolla.
  5. Tuloksena oleva 32-bittinen lohko viedään permutaation P läpi ja palautetaan funktion f tuloksena.

Meitä eniten kiinnostavat salauskriptianalyysin kannalta S-lohkot, jotka on suunniteltu piilottamaan funktion f tulo- ja lähtötietojen välinen yhteys. Hyökätäksemme onnistuneesti DES:ää vastaan, rakennamme ensin tilastolliset analogit jokaiselle S-laatikolle ja laajennamme ne sitten koko salaukseen.

S-lohkoanalyysi

Jokainen S-laatikko ottaa 6-bittisen sekvenssin syötteenä ja jokaiselle tällaiselle sekvenssille palautetaan kiinteä 4-bittinen arvo. Nuo. Tulo- ja lähtövaihtoehtoja on yhteensä 64. Tehtävämme on näyttää S-lohkon tulo- ja lähtötietojen välinen suhde. Esimerkiksi DES-salauksen kolmannelle S-laatikolle tulosekvenssin 3. bitti on yhtä suuri kuin lähtösekvenssin 3. bitti 38 tapauksessa 64:stä. Siksi löysimme seuraavan tilastollisen analogin kolmannelle S:lle -laatikko:
S 3 (x) = x, mikä toteutuu todennäköisyydellä P=38/64.
Yhtälön molemmat puolet edustavat yhtä bittiä tietoa. Siksi, jos vasen ja oikea puoli olisivat toisistaan ​​riippumattomia, yhtälö olisi tyydytettävä todennäköisyydellä 1/2. Näin ollen olemme juuri osoittaneet DES-algoritmin 3. S-laatikon tulon ja lähdön välisen suhteen.

Pohditaan, kuinka voimme löytää S-laatikon tilastollisen analogin yleisessä tapauksessa.

S-laatikon S a, 1 ≤ α ≤ 63 ja 1 ≤ β ≤ 15 tapauksessa arvo NS a (α, β) kuvaa kuinka monta kertaa 64 mahdollisesta XOR-syötebitistä S a, joka on asetettu α-bittien päälle, on yhtä suuri kuin XOR-lähtöbitit päällekkäin α-bittien β päälle, eli:
jossa symboli on looginen AND.
Arvot α ja β, joille NS a (α, β) eroaa eniten arvosta 32, kuvaavat S-laatikon S a tehokkainta tilastollista analogia.

Tehokkain analogi löydettiin DES-salauksen 5. S-laatikosta, kun α = 16 ja β = 15 NS 5 (16, 15) = 12. Tämä tarkoittaa, että seuraava yhtälö pätee: Z=Y ⊕ Y ⊕ Y ⊕ Y, missä Z on S-laatikon tulosekvenssi ja Y on lähtösekvenssi.
Tai ottaen huomioon, että DES-algoritmissa ennen S-laatikkoon syöttämistä tiedot lisätään modulo 2 pyöreällä avaimella, ts. Z = X ⊕ K saamme
X ⊕ Y ⊕ Y ⊕ Y ⊕ Y = K, missä X ja Y ovat funktion f tulo- ja lähtödata ilman permutaatioita.
Tuloksena oleva yhtälö suoritetaan kaikilla DES-algoritmin kierroksilla samalla todennäköisyydellä P=12/64.
Seuraavassa taulukossa on luettelo tehokkaista, ts. joilla on suurin poikkeama arvosta P=1/2, tilastolliset analogit jokaiselle DES-algoritmin s-lohkolle.

Tilastollisten analogien rakentaminen useille DES-kierroksille

Osoitetaan nyt, kuinka voimme yhdistää useiden DES-kierrosten tilastolliset analogit ja lopulta saada tilastollisen analogin koko salaukselle.
Voit tehdä tämän harkitsemalla algoritmin kolmikierrosta:

Lasketaan X(2)-arvon tietyt bitit käyttämällä 5. s-laatikon tehokasta tilastollista analogia.
Tiedämme, että todennäköisyydellä 12/64 yhtäläisyys pätee f-funktiossa X ⊕ Y ⊕ Y ⊕ Y ⊕ Y = K, missä X on 5. S-laatikon toinen tulobitti, se on oleellisesti 26. bitti sekvenssistä, joka saadaan tulobittien laajentamisen jälkeen. Analysoimalla laajennusfunktiota voimme todeta, että 26. bitti korvataan X(1)-sekvenssin 17. bitillä.
Vastaavasti Y,..., Y ovat oleellisesti ennen permutaatiota P saadun sekvenssin 17., 18., 19. ja 20. bittiä. Permutaatiota P tarkasteltaessa huomaamme, että bitit Y,..., Y ovat itse asiassa bittejä Y (1), Y(1), Y(1), Y(1).
Yhtälöihin liittyvä avainbitti K on ensimmäisen kierroksen aliavaimen K1 26. bitti ja sitten tilastollinen analogi on seuraavanlainen:
X(1) ⊕ Y(1) ⊕ Y(1) ⊕ Y1 ⊕ Y(1) = K1.
Siten, X(1) ⊕ K1 = Y(1) ⊕ Y(1) ⊕ Y(1) ⊕ Y(1)(2) todennäköisyydellä P=12/64.
Kun tiedät sekvenssin Y(1) 3, 8, 14, 25 bittiä, voit löytää 3, 8, 14, 25 bittiä sekvenssistä X(2):
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = PL ⊕ PL ⊕ PL ⊕ PL ⊕ Y(1) ⊕ Y(1) ⊕ Y(1) ⊕ Y(1) tai ottamalla huomioon yhtälö (2)
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = PL ⊕ PL ⊕ PL ⊕ PL ⊕ X(1) ⊕ K1 (3) todennäköisyydellä 12/64.

Etsitään samanlainen lauseke käyttämällä viimeistä kierrosta. Tällä kertaa meillä on yhtälö
X(3) ⊕ K3 = Y(3) ⊕ Y(3) ⊕ Y(3) ⊕ Y(3).
Koska
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = CL ⊕ CL ⊕ CL ⊕ CL ⊕ Y(3) ⊕ Y(3) ⊕ Y(3) ⊕ Y(3)
saamme sen
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = CL ⊕ CL ⊕ CL ⊕ CL ⊕ X(3) ⊕ K3(4) todennäköisyydellä 12/64.

Yhtälöillä yhtälöiden (3) ja (4) oikeat puolet saadaan
CL ⊕ CL ⊕ CL ⊕ CL ⊕ X(3) ⊕ K3 = PL ⊕ PL ⊕ PL ⊕ PL ⊕ X(1) ⊕ K1 todennäköisyydellä (12/64) 2 +(1-12/64) 2 .
Kun otetaan huomioon se tosiasia, että X(1) = PR ja X(3) = CR, saadaan tilastollinen analogi
СL ⊕ CR ⊕ PL ⊕ PR = K1 ⊕ K3 (5) ,
joka suoritetaan todennäköisyydellä (12/64) 2 + (1-12/64) 2 =0,7.
Yllä kuvattu tilastollinen analogi voidaan esittää graafisesti seuraavasti (kuvan bitit on numeroitu oikealta vasemmalle ja alkaen nollasta):

Hyökkääjä tuntee kaikki yhtälön vasemmalla puolella olevat bitit, joten hän voi soveltaa algoritmia 1 ja selvittää arvon K1 ⊕ K3. Osoitetaan, kuinka tätä tilastollista analogia käyttämällä voit avata ei 1, vaan 12 bittiä salausavaimesta K.

Hyökkäys DES:ää vastaan ​​tunnetulla selkeällä tekstillä

Esittelemme menetelmän, jolla voit laajentaa hyökkäystä ja saada välittömästi 6 bittiä ensimmäisen kierroksen yhdistämisestä.
Yhtälöä (5) laadittaessa otimme huomioon sen tosiasian, että emme tiedä F1(PR, K1) arvoa. Siksi käytimme sen tilastollista analogia K1 ⊕ PR.
Palautetaan arvo F1(PR, K1) lausekkeen K1 ⊕ PR sijasta ja saadaan seuraava yhtälö:
СL ⊕ CR ⊕ PL ⊕ F1(PR, K1) = K3 (6) , joka suoritetaan todennäköisyydellä 12/64. Todennäköisyys on muuttunut, koska jätimme vain tilastollisen analogin kolmannelta kierroksella, kaikki muut arvot ovat kiinteitä.

Olemme jo edellä todenneet, että F1(PR,K1)-arvoon vaikuttavat 5. S-laatikon tulobitit, nimittäin avainbitit K1 ja PR-lohkon bitit. Näytämme kuinka voit palauttaa K1:n arvon, kun sinulla on vain joukko avoimia/suljettuja tekstejä. Tätä varten käytämme algoritmia 2.

Algoritmi 2
Olkoon N ennen hyökkäystä tunnettujen avointen/suljettujen tekstiparien lukumäärä. Avaaksesi avaimen sinun on suoritettava seuraavat vaiheet.
Sille (i=0; i<64; i++) do
{
For(j=0; j {
if(СL j ⊕ CR j ⊕ PL j ⊕ F1(PR j , i)=0) sitten
T i = T i +1
}
}
Todennäköiseksi sekvenssiksi K1 otetaan i:n arvo siten, että lauseke |T i -N/2| on suurin arvo.

Kun riittävä määrä tunnettuja selkeitä tekstejä on, algoritmilla on suuri todennäköisyys palauttaa ensimmäisen kierroksen aliavaimen K1 kuuden bitin oikea arvo. Tämä selittyy sillä, että jos muuttuja i ei ole yhtä suuri kuin K1, niin funktion F1(PR j, K) arvo on satunnainen ja yhtälöiden määrä sellaiselle i:n arvolle, jonka vasen puoli on nolla on yleensä N/2. Jos aliavain arvataan oikein, vasen puoli on yhtä suuri kuin kiinteä bitti K3 todennäköisyydellä 12/64. Nuo. N/2:sta tulee merkittävä poikkeama.

Kun olet vastaanottanut 6 bittiä aliavainta K1, voit samalla tavalla avata 6 bittiä aliavainta K3. Sinun tarvitsee vain korvata C:llä P ja K1 K3:lla yhtälössä (6):
PL ⊕ PR ⊕ CL ⊕ F3(CR, K3) = K1.
Algoritmi 2 palauttaa oikean K3-arvon, koska DES-algoritmin salauksenpurkuprosessi on identtinen salausprosessin kanssa, vain avainsekvenssi käännetään. Joten ensimmäisellä salauksenpurkukierroksella käytetään avainta K3 ja viimeisellä kierroksella avainta K1.

Saatuaan 6 bittiä aliavaimia K1 ja K3 hyökkääjä palauttaa 12 bittiä salauksen K yhteisestä avaimesta, koska pyöreät näppäimet ovat näppäimen K tavallinen permutaatio. Onnistuneen hyökkäyksen edellyttämien selkeiden tekstien määrä riippuu tilastollisen analogin todennäköisyydestä. 12-bittisen 3-kierroksen DES-avaimen murtamiseen riittää 100 julkista/yksityistä tekstiparia. 16 kierroksen DES-avaimen 12 bitin avaamiseen tarvitaan noin 2 44 paria tekstiä. Avaimen loput 44 bittiä avataan käyttämällä normaalia raakaa voimaa.