Kako podesiti pametne telefone i računare. Informativni portal

Des modes. Način izlazne povratne informacije

Najčešći i najpoznatiji algoritam simetrično šifrovanje je DES (Standard šifriranja podataka). Algoritam je razvijen 1977. godine, a 1980. NIST (Nacionalni institut za standarde i tehnologiju, SAD) je usvojen kao standard.

DES je klasična mreža Feishtel sa dvije ekspoziture. Podaci su šifrirani u 64-bitnim blokovima pomoću 56-bitnog ključa. Algoritam pretvara 64-bitni ulaz u 64-bitni izlaz u nekoliko rundi. Dužina ključa je 56 bita. Proces šifriranja se sastoji od četiri koraka. Prvi korak je izvođenje početne permutacije (IP) 64-bitnog otvorenog teksta (izbjeljivanje), tokom kojeg se bitovi preuređuju prema standardni sto. Sljedeća faza se sastoji od 16 rundi iste funkcije, koja koristi operacije pomaka i zamjene. U trećoj fazi, lijeva i desna polovina izlaza posljednje (16.) iteracije se zamjenjuju. Konačno, u četvrtoj fazi, vrši se IP-1 permutacija rezultata dobijenog u trećoj fazi. IP-1 permutacija je inverzna od početne permutacije.

Fig.4. DES algoritam

Slika prikazuje metodu koja koristi 56-bitni ključ. U početku se ključ dovodi na ulaz funkcije permutacije. Zatim, za svaki od 16 krugova, potključ K i je kombinacija lijevog cikličkog pomaka i permutacije. Funkcija permutacije je ista za svaki krug, ali su potključevi K i za svaki krug različiti zbog ponovljenog pomjeranja bitova ključa.

Početna permutacija i njena inverzna su određena standardnom tablicom. Ako je M proizvoljna 64 bita, onda je X = IP(M) - permutirana 64 bita. Ako primijenimo funkciju inverzne permutacije Y = IP-1 (X) = IP-1 (IP(M)), dobićemo originalnu sekvencu bitova.

Opis okruglih des

Razmotrite slijed transformacija korištenih u svakoj rundi.

Fig.5. Ilustracija kruga DES algoritma

64-bitni ulazni blok prolazi kroz 16 runde, dok se pri svakoj iteraciji dobije srednja 64-bitna vrijednost. Lijevi i desni dio svake međuvrijednosti tretiraju se kao zasebne 32-bitne vrijednosti, označene L i R. Svaka iteracija se može opisati na sljedeći način:

R i = L i -1 F(R i -1 , K i)

Dakle, izlaz lijeve polovine L i jednak je ulazu desne polovine R i-1 . Izlaz desne polovice R i je rezultat XOR-a L i-1 i funkcije F ovisno o R i-1 i K i .

Razmotrimo funkciju F detaljnije. R i , koji se dovodi na ulaz funkcije F, ima dužinu od 32 bita. Prvo, R i se proširuje na 48 bita koristeći tablicu koja definira permutaciju plus proširenje od 16 bita. Ekspanzija ide ovako. 32 bita se dijele u grupe od 4 bita, a zatim se proširuju na 6 bita dodavanjem ekstremnih bitova iz dvije susjedne grupe. Na primjer, ako je dio ulazne poruke

Efgh ijkl mnop . . .

onda je rezultat proširenja poruka

Defghi hijklm lmnopq . . .

Rezultirajuća 48-bitna vrijednost je zatim XOR sa 48-bitnim potključem K i . Rezultirajuća 48-bitna vrijednost se zatim unosi u funkciju zamjene, što rezultira 32-bitnom vrijednošću.

Zamjena se sastoji od osam S-kutija, od kojih svaki prima 6 bita kao ulaz i proizvodi 4 bita kao izlaz. Ove transformacije su definirane posebnim tabelama. Prvi i posljednji bit ulazne vrijednosti S-boxa određuju broj reda u tabeli, srednja 4 bita određuju broj kolone. Presjek reda i stupca definira 4-bitni izlaz. Na primjer, ako je unos 011011, tada je broj reda 01 (red 1), a broj stupca 1101 (kolona 13). Vrijednost u redu 1 i koloni 13 je 5, tj. izlaz je 0101.

Zatim se rezultirajuća 32-bitna vrijednost obrađuje pomoću permutacije P, čija je svrha da se bitovi preurede što je više moguće tako da u sljedećem krugu šifriranja, s velikom vjerovatnoćom, svaki bit bude obrađen od strane drugog S -kutija.

Ključ za jedan krug K i sastoji se od 48 bita. Ključevi K i se dobijaju sledećim algoritmom. 56-bitni ključ koji se koristi kao ulaz u algoritam prvo se permutira u skladu sa tablicom Permuted Choice 1 (PC-1). Rezultirajući 56-bitni ključ je podijeljen na dva 28-bitna dijela, označena kao C0 i D0, respektivno. U svakoj rundi, C i i D i se nezavisno rotiraju ulijevo za 1 ili 2 bita, ovisno o broju runde. Rezultirajuće vrijednosti su ulaz sljedeće runde. Oni su također ulaz za Permuted Choice 2 (PC-2), koji proizvodi 48-bitnu izlaznu vrijednost koja je ulaz funkcije F(R i-1, K i).

Proces dešifriranja je sličan procesu šifriranja. Algoritam koristi šifrirani tekst kao ulaz, ali se ključevi K i koriste obrnutim redoslijedom. K 16 se koristi u prvoj rundi, K 1 se koristi u posljednjoj rundi. Neka izlaz i-te runde enkripcije bude L i ||R i . Tada će odgovarajući ulaz (16-i) runde dešifriranja biti R i ||L i .

Nakon posljednje runde procesa dešifriranja, dvije polovice izlaza se zamjenjuju tako da je ulaz konačne permutacije IP-1 R 16 ||L 16 . Rezultat ove faze je običan tekst.

  • tutorial

Hej %username%!
Mnogi ljudi znaju da je zadani standard u području simetrične enkripcije dugo vremena razmatrano DES algoritam. Prvi uspješan napad na ovaj neuništivi algoritam objavljen je 1993. godine, 16 godina nakon što je usvojen kao standard. Metoda koju je autor nazvao linearnom kriptoanalizom, u prisustvu 2 47 parova običan/šifrirani tekst, omogućava otvaranje tajnog ključa DES šifre u 2 43 operacije.
U nastavku ću pokušati sumirati glavne tačke ovog napada.

Linearna kriptoanaliza

Linearna kriptoanaliza je posebna vrsta napada na simetrične šifre, čiji je cilj oporavak nepoznatog ključa za šifriranje, od poznatog otvorene poruke i njihovi odgovarajući šifrirani tekstovi.

AT opšti slučaj napad zasnovan na linearnoj kriptoanalizi svodi se na sledeće uslove. Napadač ima velika količina parovi otvoreni tekst/šifrovani tekst dobijeni korišćenjem istog ključa za šifrovanje K. Cilj napadača je da povrati deo ili ceo ključ K.

Prije svega, napadač pregleda šifru i pronalazi tzv. statistički analogni, tj. jednadžba sljedećeg oblika, koja vrijedi s vjerovatnoćom P ≠ 1/2 za proizvoljan par javni/privatni tekst i fiksni ključ:
P I1 ⊕ P I2 ⊕… ⊕ P Ia ⊕ C I1 ⊕ C I2 ⊕… ⊕ C Ib = K I1 ⊕ K I2 ⊕… ⊕ K Ic (1) ,
gdje su P n , C n , K n n-ti bitovi teksta, šifrovanog teksta i ključa.
Nakon što se takva jednadžba pronađe, napadač može povratiti 1 bit informacije o ključu koristeći sljedeći algoritam

Algoritam 1
Neka je T broj tekstova za koje je lijeva strana jednačine (1) tada 0
Ako je T>N/2, gdje je N broj poznatih otvorenih tekstova.
Pretpostavimo da je K I1 ⊕ K I2 ⊕… ⊕ K Ic = 0 (kada je P>1/2) ili 1 (kada je P<1/2).
Inače
Pretpostavimo da je K I1 ⊕ K I2 ⊕… ⊕ K Ic = 1 (kada je P>1/2) ili 0 (kada je P<1/2).
Očigledno, uspjeh algoritma direktno zavisi od vrijednosti |P-1/2| i o broju dostupnih parova otvorenog/privatnog teksta N. Što se vjerovatnoća P jednakosti (1) više razlikuje od 1/2, to je manji broj otvorenih tekstova N potreban za napad.

Dva su problema koja treba riješiti za uspješnu implementaciju napada:

  • Kako pronaći efektivnu jednačinu oblika (1).
  • Kako dobiti više od jednog bita informacija o ključu koristeći takvu jednačinu.
Razmotrite rješenje ovih problema koristeći DES šifru kao primjer.

Opis DES-a

Ali prvo, hajde da ukratko opišemo kako algoritam funkcioniše. Dosta je rečeno o DES-u. Potpuni opis šifre možete pronaći na Wikipediji. Međutim, da bismo dalje objasnili napad, potrebno nam je nekoliko definicija koje je najbolje uvesti unaprijed.

Dakle, DES je blok šifra zasnovana na Feistelovoj mreži. Šifra ima veličinu bloka od 64 bita i veličinu ključa od 56 bita. Razmotrimo šemu šifriranja DES algoritma.

Kao što se može vidjeti sa slike, sljedeće operacije se izvode nad tekstom tokom šifriranja:

  1. Početna zamjena bitova. U ovoj fazi, bitovi ulaznog bloka se miješaju određenim redoslijedom.
  2. Nakon toga, promiješani bitovi se dijele na dvije polovine, koje se unose na ulaz Feistelove funkcije. Za standardni DES, Feistelova mreža uključuje 16 krugova, ali postoje i druge varijante algoritma.
  3. Dva bloka dobijena u zadnjoj rundi transformacije se kombinuju i druga permutacija se izvodi na rezultujućem bloku.

U svakom krugu Feistelove mreže, najmanje značajna 32 bita poruke prolaze kroz funkciju f:

Razmotrite operacije izvedene u ovoj fazi:

  1. Ulazni blok prolazi kroz funkciju proširenja E, koja pretvara 32-bitni blok u 48-bitni blok.
  2. Rezultirajući blok se dodaje okruglom ključu K i .
  3. Rezultat prethodnog koraka je podijeljen na 8 blokova od po 6 bitova.
  4. Svaki od rezultirajućih blokova B i prolazi kroz zamjensku funkciju S-Box i , koja zamjenjuje 6-bitnu sekvencu sa 4-bitnim blokom.
  5. Rezultirajući 32-bitni blok prolazi kroz permutaciju P i vraća se kao rezultat funkcije f.

Od najvećeg interesa, sa stanovišta kriptoanalize šifre, za nas su S blokovi, dizajnirani da sakriju vezu između ulaznih i izlaznih podataka funkcije f. Da bismo uspješno napali DES, prvo konstruiramo statističke parnjake za svaki od S-kutija, a zatim ih proširujemo na cijelu šifru.

Analiza S blokova

Svaki S-box uzima 6-bitnu sekvencu kao ulaz, a fiksna 4-bitna vrijednost se vraća za svaku takvu sekvencu. One. Postoje ukupno 64 ulazne i izlazne opcije. Naš zadatak je da pokažemo odnos između ulaznih i izlaznih podataka S blokova. Na primjer, za treći S-box DES šifre, 3. bit ulazne sekvence jednak je 3. bitu izlazne sekvence u 38 slučajeva od 64. Stoga smo pronašli sljedeći statistički analog za treći S -kutija:
S 3 (x) = x, što je ispunjeno sa vjerovatnoćom P=38/64.
Obje strane jednačine predstavljaju 1 bit informacije. Dakle, kada bi lijevi i desni dio bili nezavisni jedan od drugog, jednačina bi morala biti ispunjena s vjerovatnoćom jednakom 1/2. Dakle, upravo smo demonstrirali odnos između ulaza i izlaza 3. S-kutije DES algoritma.

Razmislite kako možete pronaći statistički analog S-kutije u općem slučaju.

Za S-box S a , 1 ≤ α ≤ 63 i 1 ≤ β ≤ 15, vrijednost NS a (α, β) opisuje koliko puta od 64 moguća XOR-a ulaznih bitova S a preklapaju se na bitove α jednaki su XOR-u izlaznih bitova prekrivenih na bitove β, tj.:
gdje je simbol logičko I.
Vrijednosti α i β za koje se NS a (α, β) najviše razlikuje od 32 opisuju najefikasniji statistički analog S-boxa S a .

Najefikasniji analog je pronađen u 5. S-kutiji DES šifre za α = 16 i β = 15 NS 5 (16, 15)=12. To znači da je tačna sljedeća jednačina: Z=Y ⊕ Y ⊕ Y ⊕ Y, gdje je Z ulazna sekvenca S-kutije, a Y izlazna sekvenca.
Ili uzimajući u obzir činjenicu da se u DES algoritmu, prije ulaska u S-box, podaci dodaju po modulu 2 okruglim ključem, tj. Z = X ⊕ K dobijamo
X ⊕ Y ⊕ Y ⊕ Y ⊕ Y = K, gdje su X i Y ulazni i izlazni podaci funkcije f bez permutacija.
Rezultirajuća jednačina se izvršava u svim rundama DES algoritma sa istom vjerovatnoćom P=12/64.
U sljedećoj tabeli su navedeni efektivni, tj. koji imaju najveće odstupanje od P=1/2, statistički analogi za svaki s-blok DES algoritma.

Izgradnja statističkih analoga za višestruke DES runde

Hajde sada da pokažemo kako se mogu kombinovati statistički analogi nekoliko rundi DES-a i, kao rezultat, dobiti statistički analog za čitavu šifru.
Da biste to učinili, razmotrite verziju algoritma u tri kruga:

Primijenimo efikasan statistički analog 5. s-kutije za izračunavanje određenih bitova vrijednosti X(2).
Znamo da sa vjerovatnoćom 12/64, f-funkcija zadovoljava jednakost X ⊕ Y ⊕ Y ⊕ Y ⊕ Y = K, gdje je X drugi ulazni bit 5. S-kutije, to je u suštini 26. bit sekvence dobijene nakon proširenja ulaznih bitova. Analizirajući funkciju proširenja, može se ustanoviti da se 17. bit X(1) niza ispostavi da je umjesto bita 26.
Slično, Y,…, Y su u suštini 17., 18., 19. i 20. bitovi niza dobijenih prije P permutacije. Ispitivanjem P permutacije nalazimo da su Y,…, Y bitovi zapravo bitovi Y(1 ), Y(1), Y(1), Y(1).
Ključni bit K uključen u jednačine je 26. bit potključa prvog kruga K1, a zatim statistički pandan ima sljedeći oblik:
X(1) ⊕ Y(1) ⊕ Y(1) ⊕ Y1 ⊕ Y(1) = K1.
shodno tome, X(1) ⊕ K1 = Y(1) ⊕ Y(1) ⊕ Y(1) ⊕ Y(1)(2) sa vjerovatnoćom P=12/64.
Znajući 3, 8, 14, 25 bita Y(1) sekvence, možete pronaći 3, 8, 14, 25 bita X(2) niza:
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = PL ⊕ PL ⊕ PL ⊕ PL ⊕ Y(1) ⊕ Y(1) ⊕ Y(1) ⊕ Y(1) ili uzimajući u obzir jednačinu (2)
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = PL ⊕ PL ⊕ PL ⊕ PL ⊕ X(1) ⊕ K1 (3) sa vjerovatnoćom 12/64.

Nađimo sličan izraz koristeći posljednju rundu. Ovaj put imamo jednačinu
X(3) ⊕ K3 = Y(3) ⊕ Y(3) ⊕ Y(3) ⊕ Y(3).
Jer
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = SL ⊕ SL ⊕ SL ⊕ SL ⊕ Y(3) ⊕ Y(3) ⊕ Y(3) ⊕ Y(3)
mi to shvatamo
X(2) ⊕ X(2) ⊕ X(2) ⊕ X(2) = SL ⊕ SL ⊕ SL ⊕ SL ⊕ X(3) ⊕ K3(4) sa vjerovatnoćom 12/64.

Izjednačavanjem pravih dijelova jednačina (3) i (4) dobijamo
SL ⊕ CL ⊕ SL ⊕ SL ⊕ X(3) ⊕ K3 = PL ⊕ PL ⊕ PL ⊕ PL ⊕ X(1) ⊕ K1 sa vjerovatnoćom (12/64) 2 +(1-12/64) 2 .
Uzimajući u obzir činjenicu da je X(1) = PR i X(3) = CR, dobijamo statistički analog
SL ⊕ CR ⊕ PL ⊕ PR = K1 ⊕ K3 (5) ,
što se izvodi sa vjerovatnoćom (12/64) 2 +(1-12/64) 2 =0,7.
Gore opisani statistički analog može se grafički predstaviti na sljedeći način (bitovi na slici su numerirani s desna na lijevo i počinju od nule):

Svi bitovi na lijevoj strani jednačine poznati su napadaču, tako da može primijeniti algoritam 1 i saznati vrijednost K1 ⊕ K3. Pokažimo kako je pomoću ovog statističkog analoga moguće otvoriti ne 1, već 12 bitova ključa za šifriranje K.

Napad na DES sa poznatim otvorenim tekstom

Evo načina na koji možete proširiti napad i odmah dobiti 6 bitova podključa prve runde.
Prilikom sastavljanja jednačine (5) uzeli smo u obzir činjenicu da ne znamo vrijednost F1(PR, K1). Stoga smo koristili njegov statistički analog K1 ⊕ PR.
Umjesto izraza K1 ⊕ PR vraćamo vrijednost F1(PR, K1) i dobijamo sljedeću jednačinu:
CL ⊕ CR ⊕ PL ⊕ F1(PR, K1) = K3 (6) , koji će se izvršiti sa vjerovatnoćom 12/64. Vjerovatnoća se promijenila jer smo ostavili samo statistički analog iz trećeg kruga, sve ostale vrijednosti su fiksne.

Već smo ranije utvrdili da na vrijednost F1(PR, K1) utiču ulazni bitovi 5. S-kutije, odnosno bitovi ključa K1 i bitovi PR bloka. Hajde da pokažemo kako se, imajući samo skup otvorenih/zatvorenih tekstova, može vratiti vrijednost K1. Da bismo to učinili, koristimo algoritam 2.

Algoritam 2
Neka je N broj otvorenih/zatvorenih parova teksta poznatih prije napada. Zatim, da biste otvorili ključ, morate učiniti sljedeće korake.
Za (i=0; i<64; i++) do
{
Za(j=0; j {
if(SL j ⊕ CR j ⊕ PL j ⊕ F1(PR j , i)=0) onda
T i =T i +1
}
}
Kao vjerojatni niz K1 uzima se takva vrijednost i za koju je izraz |T i -N/2| ima maksimalnu vrijednost.

Uz dovoljan broj poznatih otvorenih tekstova, algoritam će najvjerovatnije vratiti tačnu vrijednost šest bitova prvog kruga potključa K1. Ovo se objašnjava činjenicom da ako varijabla i nije jednaka K1, tada će vrijednost funkcije F1(PR j, K) biti slučajna i broj jednačina za takvu vrijednost i, pri čemu je lijeva strana jednaka nuli, težiće N/2. Ako se potključ pogodi ispravno, lijevi dio će biti jednak fiksnom bitu K3 sa vjerovatnoćom 12/64. One. doći će do značajnog odstupanja od N/2.

Nakon što ste primili 6 bitova potključa K1, na sličan način možete otvoriti 6 bitova potključa K3. Sve što je potrebno za ovo je zamijeniti C sa P i K1 sa K3 u jednačini (6):
PL ⊕ PR ⊕ CL ⊕ F3(CR, K3) = K1.
Algoritam 2 će vratiti ispravnu vrijednost K3 jer je proces dešifriranja DES algoritma identičan procesu šifriranja, samo je redoslijed ključeva obrnut. Dakle, u prvom krugu dešifriranja koristi se ključ K3, au posljednjoj rundi ključ K1.

Dobivši 6 bitova potključeva K1 i K3, napadač povrati 12 bitova zajedničkog ključa šifre K, jer okrugli ključevi su uobičajena permutacija ključa K. ​​Broj otvorenih tekstova potrebnih za uspješan napad zavisi od vjerovatnoće statističkog parnjaka. Da biste razbili 12-bitni 3-kružni DES ključ, dovoljno je 100 parova javnog/privatnog teksta. Za razbijanje 12-bitnog 16-krugnog DES ključa bilo bi potrebno oko 244 para tekstova. Preostala 44 bita ključa se otvaraju uobičajenim nabrajanjem.

Algoritam DES

Glavne prednosti DES algoritma:

Koristi se samo jedan 56-bitni ključ;

· nakon šifriranja poruke pomoću jednog paketa, možete koristiti bilo koji drugi da je dešifrujete;

Relativna jednostavnost algoritma osigurava veliku brzinu obrade informacija;

prilično visoka stabilnost algoritma.

DES šifrira 64-bitne blokove podataka koristeći 56-bitni ključ. Dešifriranje u DES-u je obrnuta operacija šifriranja i izvodi se tako što se operacije šifriranja ponavljaju obrnutim redoslijedom (uprkos prividnoj očiglednosti, to se ne radi uvijek. Kasnije ćemo razmotriti šifre u kojima se šifriranje i dešifriranje provode korištenjem različitih algoritama).

Proces šifriranja se sastoji od početne zamjene bitova 64-bitnog bloka, šesnaest rundi šifriranja i konačno obrnute zamjene bitova (slika 1).

Treba odmah napomenuti da su SVE tabele date u ovom članku STANDARDNE, i stoga ih treba uključiti u vašu implementaciju algoritma nepromijenjene. Sve permutacije i kodove u tabelama odabiru programeri na način da otežaju proces dešifriranja što je više moguće odabirom ključa. Struktura DES algoritma je prikazana na slici 2.

Fig.2. Struktura algoritma DES enkripcije

Neka se sljedeći 8-bajtni blok T pročita iz datoteke, koja se transformira korištenjem početne permutacijske matrice IP (Tabela 1) na sljedeći način: bit 58 bloka T postaje bit 1, bit 50 - bit 2, itd., što će rezultirati u: T(0) = IP(T).

Rezultirajuća sekvenca bitova T(0) je podijeljena na dvije sekvence od po 32 bita: L(0) - lijevo ili visoko, R(0) - desno ili nisko.

Tabela 1: IP početna matrica permutacije

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

Zatim se izvodi šifriranje koje se sastoji od 16 iteracija. Rezultat i-te iteracije opisan je sljedećim formulama:

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

gdje je xor operacija EXCLUSIVE OR.

Funkcija f se zove funkcija šifriranja. Njegovi argumenti su 32-bitni niz R(i-1) dobijen na (i-1)-toj iteraciji i 48-bitni ključ K(i), koji je rezultat pretvaranja 64-bitnog ključa K. Funkcija šifriranja i algoritam za izvođenje ključeva K(i) opisani su u nastavku.

U 16. iteraciji dobijaju se sekvence R(16) i L(16) (bez permutacije), koje se spajaju u 64-bitni niz R(16)L(16).

Zatim se pozicije bitova ove sekvence preuređuju u skladu sa matricom IP -1 (tabela 2).

Tabela 2: IP-1 Inverzna matrica permutacije

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 i IP matrice su povezane na sljedeći način: vrijednost 1. elementa IP -1 matrice je 40, a vrijednost 40. elementa IP matrice je 1, vrijednost 2. element matrice IP -1 je 8, a vrijednost 8. elementa matrice IP je 2 i tako dalje.

Proces dešifriranja podataka je inverzan od procesa šifriranja. Svi koraci moraju biti izvedeni obrnutim redoslijedom. To znači da se podaci koji se dešifriraju prvo preuređuju prema IP-1 matrici, a zatim se na sekvenci bita R(16)L(16) izvode iste operacije kao u procesu šifriranja, ali obrnutim redoslijedom.

Iterativni proces dešifriranja može se opisati sljedećim formulama:

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

L(i-1) = R(i) x ili f(L(i), K(i)), i = 1, 2, ..., 16 .

U 16. iteraciji dobijaju se sekvence L(0) i R(0), koje se spajaju u 64-bitnu sekvencu L(0)R(0).

Pozicije bitova ove sekvence se zatim preuređuju prema IP matrici. Rezultat ove permutacije je originalna 64-bitna sekvenca.

Sada razmotrite funkciju šifriranja f(R(i-1),K(i)). Šematski je prikazano na Sl. 3.


Fig.3. Izračunavanje funkcije f(R(i-1), K(i))

Za izračunavanje vrijednosti funkcije f koriste se sljedeće matrične funkcije:

E - proširenje 32-bitne sekvence na 48-bitnu,

S1, S2, ... , S8 - pretvaranje 6-bitnog bloka u 4-bitni blok,

P je permutacija bita u 32-bitnoj sekvenci.

Funkcija ekstenzije E definirana je u tablici 3. Prema ovoj tabeli, prva 3 bita E(R(i-1)) su bitovi 32, 1 i 2, a posljednja su 31, 32 i 1.

Tabela 3: Funkcija proširenja 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

Rezultat funkcije E(R(i-1)) je 48-bitni niz koji se dodaje po modulu 2 (xor operacija) sa 48-bitnim ključem K(i). Rezultat je 48-bitni niz koji je podijeljen u osam 6-bitnih blokova B(1)B(2)B(3)B(4)B(5)B(6)B(7)B(8). To je:

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

Funkcije S1, S2, ..., S8 definirane su u tabeli 4.

Tabela 4

U tabelu.4. potrebna su dodatna objašnjenja. Neka je ulaz matrične funkcije Sj 6-bitni blok B(j) = b1b2b3b4b5b6, tada dvobitni broj b1b6 označava broj reda matrice, a b2b3b4b5 broj kolone. Rezultat Sj(B(j)) je 4-bitni element koji se nalazi na presjeku navedenog reda i stupca.

Na primjer, B(1)=011011. Tada se S1(V(1)) nalazi na raskrsnici reda 1 i kolone 13. Kolona 13 reda 1 je postavljena na 5. Dakle, S1(011011)=0101.

Primjenjujući operaciju odabira na svaki od 6-bitnih blokova B(1), B(2), ..., B(8), dobijamo 32-bitnu sekvencu S1(B(1))S2(B(2) ))S3( B(3))...S8(B(8)).

Konačno, da biste dobili rezultat funkcije šifriranja, trebate preurediti bitove ove sekvence. Za to se koristi funkcija permutacije P (tablica 5). U ulaznoj sekvenci, bitovi su obrnuti tako da bit 16 postaje bit 1, bit 7 postaje bit 2, itd.

Tabela 5: Funkcija permutacije P

Na ovaj način,

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

Da bismo završili opis algoritma enkripcije podataka, ostaje da navedemo algoritam za dobijanje 48-bitnih ključeva K(i), i=1...16. Na svakoj iteraciji koristi se nova vrijednost ključa K(i), koja se izračunava iz početnog ključa K. ​​K je 64-bitni blok sa osam paritetnih bitova smještenih na pozicijama 8,16,24,32,40,48, 56, 64.

Za uklanjanje kontrolnih bitova i preuređivanje ostataka koristi se funkcija G početne pripreme ključa (tablica 6).

Tabela 6

Matrica G početne pripreme ključa

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

Rezultat transformacije G(K) je podijeljen u dva 28-bitna bloka C(0) i D(0), a C(0) će se sastojati od bitova 57, 49, ..., 44, 36 od K ključ, a D(0 ) će se sastojati od bitova 63, 55, ..., 12, 4 ključa K. ​​Nakon definiranja C(0) i D(0), C(i) i D(i), i =1...16, su rekurzivno definisani. Za to se ciklički pomak ulijevo primjenjuje za jedan ili dva bita, ovisno o broju iteracije, kao što je prikazano u Tabeli 7.

Tabela 7

Tablica pomaka za izračunavanje ključa

Broj iteracije Shift (bit)
01 1
02 1
03 2
04 2
05 2
06 2
07 2
08 2
09 1
10 2
11 2
12 2
13 2
14 2
15 2
16 1

Rezultirajuća vrijednost se ponovo "miješa" u skladu sa matricom H (tabela 8).

Tabela 8: Ključna završna matrica 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

Ključ K(i) će se sastojati od bitova 14, 17, ..., 29, 32 sekvence C(i)D(i). Na ovaj način:

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

Blok dijagram algoritma proračuna ključeva prikazan je na sl.4.

Fig.4. Blok dijagram algoritma za izračunavanje ključa K(i)

Obnavljanje originalnog teksta vrši se prema ovom algoritmu, ali prvo koristite ključ

K(15), zatim - K(14) i tako dalje. Sada biste trebali razumjeti zašto autor snažno preporučuje korištenje gornjih matrica. Ako počnete da idete proizvoljno, morate dobiti vrlo tajnu šifru, ali je kasnije nećete moći otvoriti!

Načini rada DES algoritma

Za što potpunije zadovoljenje svih zahtjeva komercijalnih enkripcijskih sistema implementirano je nekoliko načina rada DES algoritma. Najrašireniji načini rada su:

Elektronski šifrarnik (Electronic Codebook) - ECB;

lanac digitalnih blokova (Cipher Block Chaining) - CBC;

digitalna povratna informacija (Cipher Feedback) - CFB;

Eksterna povratna informacija (Output Feedback) - OFB.

U ovom režimu, izvorni fajl M je podeljen na 64-bitne blokove (8 bajtova svaki): M = M(1)M(2)...M(n). Svaki od ovih blokova je kodiran nezavisno koristeći isti ključ za šifrovanje (slika 5). Glavna prednost ovog algoritma je jednostavnost implementacije. Nedostatak je relativno slaba otpornost na vješte kriptoanalitičare.

DES(Standard šifriranja podataka) - Algoritam simetričnog šifriranja u kojem se jedan ključ koristi za šifriranje i dešifriranje podataka. DES je razvio IBM i odobrila američka vlada 1977. godine kao zvanični standard (FTPS 46-3). DES ima 64-bitne blokove i Feistelovu mrežnu strukturu od 16 ciklusa; koristi 56-bitni ključ za enkripciju. Algoritam koristi kombinaciju nelinearnih (S-kutije) i linearnih (E, IP, IP-1 permutacije) transformacija. Za DES se preporučuje nekoliko načina rada:
  • način rada elektronske šifre (ECB - Electronic Code Book),
  • način ulančavanja blokova (CBC - Cipher Block Chaining),
  • Način povratne informacije šifriranog teksta (CFB - Cipher Feed Back),
  • izlazni način povratne sprege (OFB - Output Feed Back).

    Blok šifra

    Ulazni podaci za blok šifru su n-bitni blok i k-bitni ključ. Na izlazu, nakon primjene transformacije šifriranja, dobije se n-bitni šifrirani blok, a manje razlike u ulaznim podacima po pravilu dovode do značajne promjene rezultata. Blok šifre se implementiraju uzastopnom primjenom određenih osnovnih transformacija na blokove izvornog teksta.
    Osnovne transformacije:
  • Kompleksna transformacija na jednom lokalnom dijelu bloka.
  • Jednostavna konverzija između dijelova bloka. Budući da se transformacija izvodi blok po blok, kao poseban korak, potrebno je podijeliti izvorne podatke na blokove potrebne veličine. U ovom slučaju, bez obzira na format izvornih podataka, bilo da se radi o tekstualnim dokumentima, slikama ili drugim datotekama, oni se moraju interpretirati u binarni oblik i tek onda podijeliti u blokove. Sve navedeno može se implementirati softverskim i hardverskim sredstvima.

    Feistelove mrežne transformacije

    Ovo je transformacija preko vektora (blokova) koji predstavljaju lijevu i desnu polovinu registra pomaka. DES algoritam koristi prednju transformaciju od strane Feistelove mreže u šifrovanju (vidi sliku 1) i inverznu transformaciju Feistelove mreže u dešifrovanje (vidi sliku 2).

    DES šema enkripcije


    Izvorni tekst - blok 64 bita.
    Šifrirani tekst je 64-bitni blok.

    Proces šifriranja se sastoji od početne permutacije, 16 ciklusa šifriranja i konačne permutacije.
    Razmotrite detaljnu šemu DES algoritma:
    L i R i =1,2\ldots.lijeva i desna polovina 64-bitnog bloka L i R i
    k i - 48-bitni ključevi
    f - funkcija šifriranja
    IP - početna permutacija
    IP -1 je konačna permutacija. Prema tabeli, prva 3 bita rezultirajućeg IP(T) bloka nakon početne IP permutacije su bitovi 58, 50, 42 ulaznog bloka T, a njegova posljednja 3 bita su bitovi 23, 15, 7 ulaza blok. Nadalje, 64-bitni blok IP(T) učestvuje u 16 ciklusa Feistelove transformacije.

    16 ciklusa Feistelove transformacije:

    Podijelite IP(T) na dva dijela L 0 ,R 0 , gdje su L 0 ,R 0 32 visoka bita i 32 niska bita bloka T0 IP(T)= L 0 R 0

    Neka je T i -1 = L i -1 R i -1 rezultat (i-1) iteracije, tada je rezultat i-te iteracije T i = L i R i određen sa:

    L i = R i - 1 Lijeva polovina L i jednaka je desnoj polovini prethodnog vektora L i - 1 R i - 1 . A desna polovina R i je pobitno sabiranje L i - 1 i f(R i - 1 , k i) po modulu 2.

    U 16 ciklusa Feistelove transformacije, funkcija f igra ulogu šifriranja. Razmotrimo detaljnije funkciju f.

    Argumenti funkcije f su 32-bitni vektor R i-1, 48-bitni ključ k i, koji su rezultat transformacije 56-bitnog originalnog ključa šifre k.

    Za izračunavanje funkcije f koriste se funkcija proširenja E, transformacija S, koja se sastoji od 8 transformacija S-kutija, i permutacija P.

    Funkcija E proširuje 32-bitni vektor R i - 1 na 48-bitni vektor E(R i - 1) dupliranjem nekih bitova iz R i - 1, dok je redoslijed bitova vektora E(R i - 1) specificiran u tabeli 2. Prva tri bita vektora E(R i - 1) su bitovi 32, 1, 2 vektora R i -1. Tabela 2 pokazuje da su bitovi 1, 4, 5, 8, 9, 12, 13, 16, 17, 20, 21, 24, 25, 28, 29, 32 duplirani. Poslednja 3 bita vektora E(Ri - 1) su bitovi 31, 32, 1 vektora R i - 1. Blok E(R i -1) dobijen nakon permutacije dodaje se po modulu 2 sa ključevima k i i zatim prikazuje kao osam uzastopnih blokova B 1 ,B 2 ,...B 8 .
    E(R i - 1) = B 1 B 2 ...B 8
    Svaki B j je 6-bitni blok. Zatim se svaki od blokova B j transformira u 4-bitni blok B" j koristeći transformacije S j . Transformacije S j su određene tablicom 3. Pretpostavimo da je B 3 = 101111 i želimo pronaći B" 3 . Prva i zadnja znamenka B 3 su binarni zapis broja a, 0 Vrijednost funkcije f(R i - 1, k i) (32 bita) se dobija permutacijom P primijenjenog na 32-bitni blok B " 1 B" 2 ...B" 8. Permutacija P data je u tabeli 4.
    f(R i - 1 ,k i) = P(B" 1 B" 2 ...B" 8)
    Prema tabeli 4, prva četiri bita rezultujućeg vektora nakon dejstva funkcije f su bitovi 16, 7, 20, 21 vektora B" 1 B" 2 ...B" 8

    Generiranje ključeva k i .
    Ključevi k i se dobijaju iz početnog ključa k (56 bita = 7 bajtova ili 7 karaktera u ASCII) na ovaj način. Osam bitova koji se nalaze na pozicijama 8, 16, 24, 32, 40, 48, 56, 64 se dodaju ključu k tako da svaki bajt sadrži neparan broj jedinica. Ovo se koristi za otkrivanje grešaka u razmjeni ključeva i skladištenju. Zatim se vrši permutacija za prošireni ključ (osim dodatih bitova 8, 16, 24, 32, 40, 48, 56, 64). Takva permutacija je definisana kao u tabeli 5.

    Ova permutacija je definirana sa dva bloka C 0 i D 0 od po 28 bita. Prva 3 bita C 0 su bitovi 57, 49, 41 proširenog ključa. A prva tri bita D 0 su bitovi 63, 55, 47 proširenog ključa. C i ,D i i=1,2,3… dobijaju se iz C i - 1 ,D i - 1 jednim ili dva ciklična pomaka ulevo prema tabeli 6.

    Ključ k i , i=1,…16 sastoji se od 48 bitova odabranih od bitova vektora C i D i (56 bita) prema tabeli 7. Prvi i drugi bit k i su bitovi 14, 17 vektora C i D i

    Konačna permutacija IP - 1 djeluje na T 16 i koristi se za vraćanje pozicije. To je inverzno od IP permutacije. Konačna permutacija određena je tablicom 8.
    Načini korištenja DES-a DES se može koristiti u četiri načina.

  • Način rada elektronske šifre (ECB): Uobičajena upotreba DES-a kao blok šifre (vidi sliku 7).
  • Režim povezivanja blokova (CBC - Cipher Block Chaining) (vidi sliku 8). Svaki sljedeći blok C i i>=1, prije šifriranja se dodaje po modulu 2 sa sljedećim blokom otvorenog teksta M i + 1 . Vektor C 0 je početni vektor, mijenja se svakodnevno i čuva se u tajnosti.
  • Cipher Feed Back (CFB) način rada (vidi sliku 9). U CFB modu, generira se blok "gama" Z 0 ,Z 1 ,...Z i = DESk(C i - 1). Početni vektor C 0 se čuva u tajnosti.
  • Režim izlazne povratne veze (OFB) (pogledajte sl.10). U OFB modu se generira blok "gama" Z 0 ,Z 1 ,... , i>=1
  • ECB način rada je jednostavan za implementaciju, ali je moguća kritička analiza
  • U ECB i OFB režimima, izobličenje tokom prenosa jednog 64-bitnog bloka šifrovanog teksta C i dovodi do izobličenja nakon dešifrovanja samo odgovarajućeg otvorenog bloka M i , pa se ovi režimi koriste za prenos preko komunikacionih kanala sa velikim brojem izobličenja.
  • U CBC i CFB režimima, izobličenje tokom prenosa jednog bloka šifrovanog teksta C i dovodi do izobličenja na prijemniku ne više od dva bloka otvorenog teksta M i ,M i + 1 . Promjena Mi dovodi do promjene u svim ostalim blokovima M i + 1 ,M i + 2 ... Ovo svojstvo se koristi za generiranje koda za autentifikaciju poruke.
  • DES standard je dizajniran da zaštiti od neovlaštenog pristupa osjetljivim, ali neklasificiranim informacijama u vladinim i komercijalnim organizacijama SAD. Algoritam koji je u osnovi standarda proširio se prilično brzo, a već 1980. godine odobren je od strane američkog Nacionalnog instituta za standarde i tehnologiju. Od ovog trenutka DES postaje standard ne samo po imenu, već iu stvari. Postoje softver i specijalizirani mikroračunari dizajnirani za šifriranje i dešifriranje informacija u podatkovnim mrežama.

    Do danas, DES je najčešći algoritam koji se koristi u komercijalnim sistemima sigurnosti informacija. Štaviše, implementacija DES algoritma u takvim sistemima postaje znak dobrog ukusa.

    Glavne prednosti DES algoritma:

    Koristi se samo jedan 56-bitni ključ;

    · nakon šifriranja poruke pomoću jednog paketa, možete koristiti bilo koji drugi da je dešifrujete;

    Relativna jednostavnost algoritma osigurava veliku brzinu obrade informacija;

    prilično visoka stabilnost algoritma.

    DES šifrira 64-bitne blokove podataka koristeći 56-bitni ključ. Dešifriranje u DES-u je obrnuta operacija šifriranja i izvodi se tako što se operacije šifriranja ponavljaju obrnutim redoslijedom (uprkos prividnoj očiglednosti, to se ne radi uvijek. Kasnije ćemo razmotriti šifre u kojima se šifriranje i dešifriranje provode korištenjem različitih algoritama).

    Proces šifriranja se sastoji od početne zamjene bitova 64-bitnog bloka, šesnaest rundi šifriranja i konačno obrnute zamjene bitova (slika 1).

    Treba odmah napomenuti da su SVE tabele date u ovom članku STANDARDNE, i stoga ih treba uključiti u vašu implementaciju algoritma nepromijenjene. Sve permutacije i kodove u tabelama odabiru programeri na način da otežaju proces dešifriranja što je više moguće odabirom ključa. Struktura DES algoritma je prikazana na sl. 2.

    Rice. 2.

    Neka se sljedeći 8-bajtni blok T pročita iz datoteke, koja se transformira korištenjem početne permutacijske matrice IP (Tabela 1) na sljedeći način: bit 58 bloka T postaje bit 1, bit 50 postaje bit 2, itd., što će rezultirati u: T(0) = IP(T).

    Rezultirajuća sekvenca bitova T(0) je podijeljena na dvije sekvence od po 32 bita: L(0) - lijevo ili visoko, R(0) - desno ili nisko.

    Tabela 1: IP početna matrica permutacije

    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

    Zatim se izvodi šifriranje koje se sastoji od 16 iteracija. Rezultat i-te iteracije opisan je sljedećim formulama:

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

    gdje je xor operacija EXCLUSIVE OR.

    Funkcija f se zove funkcija šifriranja. Njegovi argumenti su 32-bitni niz R (i-1) dobijen na (i-1) - iteraciji i 48-bitni ključ K(i), koji je rezultat konverzije 64-bitnog ključa K. U nastavku je detaljno opisana funkcija šifriranja i algoritam za izvođenje ključeva K(i).

    U 16. iteraciji dobijaju se sekvence R(16) i L(16) (bez permutacije), koje se spajaju u 64-bitni niz R(16) L(16).

    Zatim se pozicije bitova ove sekvence preuređuju u skladu sa matricom IP -1 (tabela 2).

    Tabela 2: IP-1 Inverzna matrica permutacije

    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 i IP matrice su povezane na sljedeći način: vrijednost 1. elementa IP -1 matrice je 40, a vrijednost 40. elementa IP matrice je 1, vrijednost 2. element matrice IP -1 je 8, a vrijednost 8. elementa matrice IP je 2 i tako dalje.

    Proces dešifriranja podataka je inverzan od procesa šifriranja. Svi koraci moraju biti izvedeni obrnutim redoslijedom. To znači da se podaci koji se dešifriraju prvo preuređuju prema IP-1 matrici, a zatim se na sekvenci bita R(16) L(16) izvode iste operacije kao u procesu šifriranja, ali obrnutim redoslijedom.

    Iterativni proces dešifriranja može se opisati sljedećim formulama:

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

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

    U 16. iteraciji dobijaju se sekvence L(0) i R(0), koje se spajaju u 64-bitnu sekvencu L(0) R(0).

    Pozicije bitova ove sekvence se zatim preuređuju prema IP matrici. Rezultat ove permutacije je originalna 64-bitna sekvenca.

    Sada razmotrite funkciju šifriranja f (R(i-1), K(i)). Šematski je prikazano na Sl. 3.


    Rice. 3.

    Za izračunavanje vrijednosti funkcije f koriste se sljedeće matrične funkcije:

    E - proširenje 32-bitne sekvence na 48-bitnu,

    S1, S2,…, S8 - 6-bitna u 4-bitna blok konverzija,

    P je permutacija bita u 32-bitnoj sekvenci.

    Funkcija proširenja E definirana je u tabeli. 3. Prema ovoj tabeli, prva 3 bita E (R(i-1)) su bitovi 32, 1 i 2, a posljednja su 31, 32 i 1.

    Tabela 3: Funkcija proširenja 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

    Rezultat funkcije E (R(i-1)) je 48-bitni niz koji se dodaje po modulu 2 (xor operacija) sa 48-bitnim ključem K(i). Dobija se 48-bitna sekvenca koja je podijeljena na osam 6-bitnih blokova B(1) B(2) B(3) B(4) B(5) B(6) B(7) B(8). To je:

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

    Funkcije S1, S2, ..., S8 definirane su u tabeli. četiri.

    Tabela 4

    Za sto. 4. Potrebna su dodatna objašnjenja. Neka je ulaz matrične funkcije Sj 6-bitni blok B(j) = b1b2b3b4b5b6, tada dvobitni broj b1b6 označava broj reda matrice, a b2b3b4b5 broj kolone. Rezultat Sj (B(j)) će biti 4-bitni element koji se nalazi na presjeku navedenog reda i stupca.

    Na primjer, B(1)=011011. Tada se S1 (B(1)) nalazi na raskrsnici reda 1 i kolone 13. Kolona 13 reda 1 je postavljena na 5. Dakle, S1 (011011)=0101.

    Primjenjujući operaciju odabira na svaki od 6-bitnih blokova B(1), B(2),..., B(8), dobijamo 32-bitnu sekvencu S1 (B(1)) S2 (B(2)) S3 (B(3))… S8 (B(8)).

    Konačno, da biste dobili rezultat funkcije šifriranja, trebate preurediti bitove ove sekvence. Za to se koristi funkcija permutacije P (tablica 5). U ulaznoj sekvenci, bitovi su obrnuti tako da bit 16 postaje bit 1, bit 7 postaje bit 2, itd.

    Tabela 5: Funkcija permutacije P

    Na ovaj način,

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

    Da bismo završili opis algoritma za šifrovanje podataka, ostaje da navedemo algoritam za dobijanje 48-bitnih ključeva K(i), i=1…16. Na svakoj iteraciji koristi se nova vrijednost ključa K(i), koja se izračunava iz početnog ključa K. ​​K je 64-bitni blok sa osam paritetnih bitova smještenih na pozicijama 8,16,24,32,40,48, 56, 64.

    Za uklanjanje kontrolnih bitova i preuređivanje ostataka koristi se funkcija G početne pripreme ključa (tablica 6).

    Tabela 6

    Matrica G početne pripreme ključa

    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

    Rezultat transformacije G(K) je podijeljen u dva 28-bitna bloka C(0) i D(0), gdje će se C(0) sastojati od bitova 57, 49,…, 44, 36 ključa K, i D(0) će se sastojati od bitova 63, 55,…, 12, 4 ključa K. ​​Nakon što se odrede C(0) i D(0), C(i) i D(i), i=1 …16, određuju se rekurzivno. Za to se ciklički pomak ulijevo primjenjuje za jedan ili dva bita, ovisno o broju iteracije, kao što je prikazano u Tabeli 1. 7.

    Tablica 7. Tablica pomaka za izračun ključa

    Broj iteracije

    Shift (bit)

    Rezultirajuća vrijednost se ponovo "miješa" u skladu sa matricom H (tabela 8).

    Tabela 8: Ključna završna matrica 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

    Ključ K(i) će se sastojati od bitova 14, 17,…, 29, 32 sekvence C(i) D(i). Na ovaj način:

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

    Blok dijagram algoritma proračuna ključeva prikazan je na sl. četiri.

    Rice. četiri.

    Obnavljanje originalnog teksta vrši se prema ovom algoritmu, ali prvo koristite tipku K(15), zatim K(14) i tako dalje. Sada biste trebali razumjeti zašto autor snažno preporučuje korištenje gornjih matrica. Ako počnete da idete proizvoljno, morate dobiti vrlo tajnu šifru, ali je kasnije nećete moći otvoriti!

    Top Related Articles