IDEA algoritam šifriranja podataka. IDEA algoritam šifriranja

Pošaljite svoj dobar rad u bazu znanja jednostavno je. Koristite obrazac u nastavku

Dobar posao na web mjesto">

Studenti, diplomanti, mladi znanstvenici koji koriste bazu znanja u svom studiju i radu bit će vam vrlo zahvalni.

Objavljeno na http://www.allbest.ru/

UVOD

1. ANALITIČKI DIO

1.1 IDEA algoritam

1.2.1 DES algoritam

1.2.2 RC6 algoritam

1.2.3 Algoritam GOST 28147-89

1.2.4 Prednosti IDEA u odnosu na analoge

1.4.1 Elektronička šifrarna knjiga - Elektronička šifrarna knjiga

1.4.2 Cipher Feed Back - obrnuto učitavanje šifriranog teksta

1.4.3 Izlazna povratna informacija - obrnuto učitavanje izlaznih podataka

1.4.4 Brojač - enkripcija s brojačem

1.4.5 Prednosti ulančavanja blokova šifre u odnosu na analogne

2. DIZAJNSKI DIO

2.3 Implementacija softvera

3. EKSPERIMENTALNO

ZAKLJUČAK

BIBLIOGRAFIJA

UVOD

Simetrični kriptosustavi (također i simetrična enkripcija, simetrične šifre) su metode šifriranja u kojima se isti podaci koriste za šifriranje i dešifriranje. kriptografski ključ. Prije izuma strujnog kruga a simetrična enkripcija jedina metoda koja je postojala bila je simetrična enkripcija. Obje strane moraju čuvati ključ algoritma u tajnosti. Ključ algoritma biraju strane prije početka razmjene poruka.

Algoritmi za šifriranje i dešifriranje podataka naširoko se koriste u računalna tehnologija u sustavima za prikrivanje povjerljivih i komercijalne informacije od zlonamjerne upotrebe trećih strana. Glavno načelo u njima je uvjet da odašiljač i primatelj unaprijed znaju algoritam šifriranja, kao i ključ poruke, bez kojeg je informacija samo skup simbola koji nemaju nikakvo značenje.

Klasičan primjer takvih algoritama su dolje navedeni simetrični kriptografski algoritmi: - jednostavna zamjena;

- jedna permutacija po ključu;

- dvostruka permutacija;

- permutacija "Magični kvadrat";

- jednostavno preuređenje.

Potpuni gubitak svih statističkih obrazaca izvorne poruke važan je uvjet za simetričnu šifru. Da bi se to postiglo, šifra mora imati "efekt lavine", tj. mora se dogoditi snažna promjena blok šifriranja s 1-bitnom promjenom u ulaznim podacima (idealno bi se trebale promijeniti vrijednosti 1/2 bita bloka šifriranja).

Trenutno su simetrične šifre:

· blokovske šifre. Obradite informacije u blokovima određene duljine (obično 64, 128 bita), primjenom ključa na blok u na propisani način, obično kroz nekoliko ciklusa miješanja i zamjena, zvanih runde. Rezultat ponavljanja krugova je efekt lavine - sve veći gubitak podudarnosti bitova između blokova otvorenih i šifriranih podataka.

· stream šifre, u kojima se enkripcija provodi preko svakog bita ili bajta izvornog (čistog) teksta korištenjem gama. Šifra toka može se lako stvoriti na temelju blok šifre (na primjer, GOST 28147-89 u gama načinu rada), pokrenute u posebnom načinu rada.

Postoji mnogo algoritama simetrične šifre, čiji su bitni parametri:

· trajnost;

· duljina ključa;

· broj rundi;

duljina obrađenog bloka;

· složenost hardverske/softverske implementacije;

· složenost pretvorbe.

1. ANALITIČKI DIO

1.1 IDEA algoritam

IDEA (Međunarodni algoritam šifriranja podataka, međunarodni algoritam data encryption) je algoritam simetrične blokovne enkripcije podataka koji je patentirala švicarska tvrtka Ascom. Ovo je algoritam simetrične blok enkripcije koji je predložen da zamijeni DES standard. Početna verzija IDEA algoritam pojavio se 1990 Programeri algoritma, Xuejia Lai i James Massey sa švicarskog instituta ETH Zurich, dali su mu naziv PES (Proposed Encryption Standard).

Budući da IDEA koristi 128-bitni ključ i 64-bitnu veličinu bloka, otvoreni tekst podijeljen je u blokove od 64 bita. Ako takva podjela nije moguća, posljednji blok je podstavljen različiti putevi određeni niz bitova. Kako biste izbjegli curenje informacija o svakom pojedinom bloku, razni modovišifriranje. Svaki izvorni nešifrirani 64-bitni blok podijeljen je u četiri podbloka od po 16 bita, jer se sve algebarske operacije koje se koriste u procesu šifriranja izvode na 16-bitnim brojevima. IDEA koristi isti algoritam za šifriranje i dešifriranje.

IDEA koristi sljedeće matematičke operacije:

? zbrajanje po bitovima modulo 2 (operacija isključivog ILI);

? zbrajanje cijelih brojeva bez predznaka po modulu 2 16 ;

? množenje cijelih brojeva bez predznaka modulo (2 16 +1), s blokom od 16 nula tretiranim kao 2 16 ;

Značajan nedostatak je što je IDEA patentirana, jer to onemogućuje njezinu besplatnu distribuciju. IDEA ne predviđa povećanje duljine ključa. Drugim nedostatkom može se smatrati činjenica da nisu svi radovi o kriptoanalizi objavljeni, odnosno vrlo je moguće da je šifra razbijena ili će biti razbijena u budućnosti.

Struktura algoritma IDEA prikazana je u nastavku (slika 1).

Riža. 1. IDEA algoritam šifriranja

· način rada elektronske šifrarne knjige (ECB -- elektronička šifrarna knjiga)

· način ulančavanja blokova (CBC - Cipher Block Chaining)

· način rada Povratne informaciješifriranim tekstom (CFB -- Cipher Feed Back)

· mod izlazne povratne informacije (OFB -- Output Feed Back).

U ovom predmetni rad razmatra se programska implementacija Algoritam šifriranja IDEA (način Cipher Feed Back).

1.2 Usporedba analoga algoritma IDEA

1.2.1 Algoritam DES

DES (Standard šifriranja podataka) -- simetrični algoritam šifriranja u kojem se jedan ključ koristi i za šifriranje i dekriptiranje podataka. DES ima 64-bitne blokove i strukturu Feistelove mreže od 16 ciklusa; za enkripciju koristi 56-bitni ključ.

Algoritam koristi kombinaciju nelinearnih (S-box) i linearnih (permutacije E, IP, IP-1) transformacija.

Budući da DES radi u 64-bitnim blokovima i koristi 56-bitni ključ, ova duljina ključa odgovara 256 kombinacija, što je donedavno pružalo dovoljnu razinu sigurnosti (8 parnih bitova punog 64-bitnog ključa se ne koristi, bitovi parnosti su najmanji značajni bitovi ključni bajtovi). Ulazni blok podataka, koji se sastoji od 64 bita, pretvara se u izlazni blok identične duljine.

Zbog upotrebe 56-bitnog enkripcijskog ključa, DES algoritam se može probiti brutalnom silom na bilo kojem modernom računalnom sustavu u vrlo realističnom vremenskom roku - nekoliko dana.

DES simetrični kriptosustav, definirana kao 16-kružna Feistelova šifra, izvorno je bila namijenjena hardverskoj implementaciji. Kada se DES koristi za prijenos informacija, da bi se šifrirala i dešifrirala poruka ili da bi se stvorio i potvrdio kod za provjeru autentičnosti poruke (MAC), pošiljatelj i primatelj moraju znati tajni ključ.

Proces šifriranja DES algoritma sastoji se od početne permutacije bitova 64-bitnog bloka, šesnaest ciklusa šifriranja i na kraju obrnute permutacije bitova (slika 2).

sl.2. DES algoritam šifriranja

1.2.2 RC6 algoritam

Algoritam RC6 je simetrični blok kriptografski algoritam izveden iz algoritma RC5.

Šifra RC6 uključena u AES natjecanje podržava 128-bitne duljine blokova i 128-, 192- i 256-bitne duljine ključeva, ali se sam algoritam može konfigurirati da podržava širi raspon i blokova i duljina ključa (od 0 do 2040 bita).

Finalist je AES-a i koristi gotovo sve postojeće tehnologije, koji se koristi u kriptografskim algoritmima, međutim, jedna od primitivnih operacija je operacija množenja, koja se sporo izvodi na nekoj opremi i otežava implementaciju šifre na brojnim hardverskim platformama i, što se pokazalo iznenađenjem za autori, na sustavima sa Intelova arhitektura IA-64 je također dosta loše implementiran. U u ovom slučaju algoritam gubi jednu od svojih ključne prednosti -- velika brzina implementacije, što je postalo razlog kritika i jedna od prepreka izboru za novi standard.

Riža. 3. RC6 algoritam šifriranja

Struktura šifriranja algoritma RC6 prikazana je na slici 3. Kratak opis algoritma: algoritam koristi 20 rundi transformacija, prije kojih se izvodi djelomično ulazno izbjeljivanje:

o B = B + K 0 mod 2 32

o D = D + K 1 mod 2 32 ,

gdje su A, B, C, D trenutne vrijednosti obrađenih 32-bitnih podblokova, a K 0 ... K 43 su fragmenti proširenog ključa.

Djelomično izlazno izbjeljivanje izvodi se na isti način:

o A = A + K 42 mod 2 32

o C = C + K 43 mod 2 32 .

U svakom krugu algoritma izvode se sljedeće radnje:

o t 1 = f(B)<<< 5,

o t 2 = f(D)<<< 5,

o A = ((A E t 1)<<< t 2) + K 2i mod 2 32 ,

o C = ((C E t 2)<<< t 1) + K 2i+1 mod 2 32 ,

gdje su t 1 i t 2 privremene varijable, broj bitova rotacije po varijabli broj bitova određen je vrijednošću 5 najmanje značajnih bitova parametra (t 1 ili t 2), funkcija f() izvodi sljedeće kvadratna transformacija:

f(x) = x * (2x + 1) mod 2 32 .

Na kraju svake runde podblokovi se pomiču.

Prednosti algoritma:

· Jednostavna struktura algoritma olakšava njegovu analizu.

· Najbrži algoritam AES finalista na 32-bitnim platformama.

· Šifriranje i dešifriranje u algoritmu RC6 gotovo su identični. Nedostaci algoritma:

· Brzina softverske enkripcije uvelike ovisi o tome podržava li platforma 32-bitno množenje i rotaciju varijabilnih bitova.

· RC6 je teško implementirati u hardver iu uvjetima ograničenih resursa.

· Prilično je teško zaštititi se od napada u smislu vremena izvršenja i potrošnje energije.

· Ne podržava u potpunosti proširenje ključa u hodu.

· Paralelizacija izračuna pri šifriranju algoritmom RC6 izvediva je uz ograničenja.

1.2.3 Algoritam GOST 28147-89

GOST 28147-89 je sovjetski i ruski standard simetrične enkripcije uveden 1990., također standard CIS-a. Puni naziv - „GOST 28147-89 Sustavi za obradu informacija. Kriptografska zaštita. Algoritam kriptografske pretvorbe."

Struktura algoritma prikazana je u nastavku (slika 4).

Riža. 4. Algoritam šifriranja GOST 28147-89

Algoritam blokovne šifre. Kada se koristi metoda gama enkripcije, može obavljati funkcije algoritma tokovne šifre. GOST 28147-89 -- blok šifra s 256-bitnim ključem i 32 ciklusa pretvorbe, koja radi na 64-bitnim blokovima. Osnova algoritma šifre je Feistelova mreža. Postoje četiri načina rada prema GOST 28147-89: jednostavna zamjena, igranje, igranje s povratnom spregom i način generiranja umetka simulacije.

Prednosti algoritma: uzaludnost napada sile, učinkovitost implementacije i, sukladno tome, visoke performanse na modernim računalima, prisutnost zaštite od nametanja lažnih podataka (generiranje imitativnog umetanja) i isti ciklus šifriranja u svim četiri GOST algoritma, veći ključ u usporedbi s DESX algoritmom.

Nedostaci algoritma: Glavni problemi GOST-a povezani su s nepotpunošću standarda u smislu generiranja ključeva i zamjenskih tablica. Vjeruje se da GOST ima "slabe" ključeve i zamjenske tablice, ali standard ne opisuje kriterije za odabir i uklanjanje "slabih". Također, norma ne navodi algoritam za generiranje supstitucijske tablice (S-kutije). S jedne strane, to može biti dodatni tajni podatak (pored ključa), as druge strane, postavlja niz problema: nemoguće je odrediti kriptografsku snagu algoritma bez prethodnog poznavanja tablice zamjene ; implementacije algoritama različitih proizvođača mogu koristiti različite zamjenske tablice i mogu biti nekompatibilne jedna s drugom; mogućnost namjernog pružanja slabih zamjenskih tablica od strane tijela za izdavanje dozvola Ruske Federacije.

1.2.4 Prednosti IDEJA ispred analoga

U programskoj implementaciji na Intel486SX je dvostruko brži od DES IDEA, što je značajno povećanje u brzini; duljina ključa IDEA je 128 bita, naspram 56 bita za DES, što je dobro poboljšanje u odnosu na brute-force ključeve. Vjerojatnost korištenja slabih ključeva je vrlo mala i iznosi 1/2 64 . IDEA je brži od algoritma GOST 28147-89 (u implementaciji softvera na Intel486SX). Korištenje IDEA-e u paralelnim načinima šifriranja na procesorima Pentium III i Pentium MMX omogućuje postizanje velikih brzina. U usporedbi s finalistima AES-a, 4-way IDEA samo je malo sporiji od RC6 i Rijndaela na Pentiumu II, ali brži od Twofisha i MARS-a. Na Pentiumu III 4-way IDEA je još brži od RC6 i Rijndaela. Još jedna prednost je što je dobro proučen i otporan na dobro poznate alate za kriptoanalizu.

1.3 Način ulančavanja blokova šifre - ulančavanje blokova pomoću šifriranog teksta

U načinu CBC enkripcije, svi blokovi poruka su "ulančani" pomoću šifriranog teksta.

U algoritmu šifriranja, ulaz funkcije svaki put prima rezultat zbrajanja po modulu 2 otvorenih podataka sljedećeg bloka poruke i izlazne funkcije za prethodni blok. Budući da izlazni podaci funkcije za sljedeći blok idu izravno na izlaz CBC algoritma, to jest, to je šifrirani tekst ovog bloka i istovremeno ide na ulaz iste funkcije za šifriranje sljedećeg bloka, kažu da su blokovi ulančani pomoću šifriranog teksta. Prvi blok otvorenih podataka sažet je s tzv. vektor inicijalizacije.

Ovaj inicijalizacijski vektor postaje poznat i pošiljatelju i primatelju na samom početku komunikacijske sesije (stoga se često naziva jednostavno sinkronizacijska poruka). Dešifriranje se odvija, sukladno tome, obrnutim redoslijedom - prvo se funkcija primjenjuje na šifrirani tekst, a zatim se zbraja s prethodnim blokom šifriranog teksta kako bi se dobio sljedeći blok otvorenog teksta na izlazu algoritma. Prvi blok otvorenog teksta ponovno se rekonstruira korištenjem inicijalizacijskog vektora.

Dakle, za sve i = 1...n, blok šifriranog teksta C(i) je definiran kako slijedi:

C(i) = IDEA(M(i) x ili C(i-1)),

Dešifriranje se izvodi na sljedeći način:

M(i) = C(i-1) x ili IDEA-1(C(i)),

Blok M(i) je funkcija samo C(i-1) i C(i). Stoga će pogreška u prijenosu rezultirati gubitkom samo dva bloka izvornog teksta.

1.4 Usporedba analoga CBC načina šifriranja

Kada se koriste blok šifre, koriste se različite sheme šifriranja, poznate kao načini rada šifriranja za blok šifre. Očito je da korištenje jednog ili drugog načina šifriranja ne bi trebalo negativno utjecati na učinkovitost, a posebno na kriptografsku snagu blok šifre. Načini šifriranja omogućuju implementaciju dodatnih funkcija koje nedostaju u izvornom dizajnu blok šifre.

1.4.1 Elektronski šifrarnik - Elektronski šifrarnik

Ovaj način je elektronički analog načinu rada koji su agenti koristili za slanje šifriranih poruka na početku XX. stoljeća. Agent je dobio bilježnicu čija je svaka stranica sadržavala jedinstveni niz – šifru kojom je poruka šifrirana. Nakon korištenja takva je stranica istrgnuta iz bilježnice i uništena. Po potrebi se poruka dopunjavala tako da na istrgnutim stranicama nije ostao neiskorišteni kod. Primatelj je imao kopiju bilježnice, stoga, pod uvjetom da su se stranice koristile sinkrono, ovaj način šifriranja je omogućio i šifriranje i dešifriranje poruka. U ECB-u korištenje jedne stranice šifrarnika pri šifriranju odgovara primjeni transformacije ulaznih podataka pomoću funkcije CIPH k, a kod dešifriranja - CIPH -1 k. Za sinkronizaciju je dovoljno da se obje strane dogovore oko vrijednosti tajnog ključa K.

Kao što se može vidjeti na slici, cijeli ECB algoritam sastoji se od izravne primjene funkcija i na poruku i na šifrirani tekst za šifriranje odnosno dešifriranje, što se također može izraziti u obliku jednadžbi: ECB enkripcija:

C j = CIPH K (P j),

gdje je j=1…n

ECB dešifriranje:

P j = CIPH K (C j),

gdje je j=1…n

Dakle, šifriranje se događa u blokovima koji odgovaraju veličini ulazno/izlaznih podataka za funkcije i. Blokovi su šifrirani odvojeno i neovisno jedan o drugome, što omogućuje da se to radi paralelno. Ova prednost ECB načina rada i njegova jednostavnost maskirani su dvama značajnim nedostacima. Prvi je da duljina poruke mora biti višekratnik duljine ulaznog bloka podataka blokovne šifre, odnosno cijela se poruka može podijeliti na cijeli broj takvih blokova ili je potrebno nekako zadnji blok dopuniti podacima koji ne nose informaciju. Drugi nedostatak je još značajniji.

Budući da je tijekom enkripcije sljedeći blok šifriranog teksta u potpunosti određen samo odgovarajućim blokom otvorenog teksta i vrijednošću tajnog ključa K, identični blokovi otvorenog teksta će se u ovom načinu rada pretvoriti u identične blokove šifriranog teksta. A to je ponekad nepoželjno, jer može dati ključ za analizu sadržaja poruke. Na primjer, ako su podaci na tvrdom disku šifrirani, tada će prazan prostor biti ispunjen istim bajtovima koji su tamo ostali nakon formatiranja diska. To znači da će iz šifriranog teksta biti moguće pogoditi veličinu korisnih informacija na disku. U takvim slučajevima trebate koristiti druge načine šifriranja.

1.4.2 Cipher Feed Back

Cipher Feed Back Način povratne informacije o šifriranom tekstu jedna je od shema simetrične enkripcije u kojoj je šifrirani blok teksta bitovno dodavanje bloka otvorenog teksta s šifriranim rezultatom enkripcije prethodnog bloka. Ima modifikaciju koja vam omogućuje šifriranje podataka čija je veličina manja od veličine bloka šifre, što omogućuje šifriranje toka podataka bez čekanja da potreban broj bitova stigne na ulaz.

U ovom načinu rada veličina bloka može se razlikovati od 64. Izvorna datoteka M čita se u uzastopnim t-bitnim blokovima (t<= 64): M = M(1)M(2)...M(n) (остаток дописывается нулями или пробелами).

64-bitni posmični registar (ulazni blok) prvo sadrži IV poravnat udesno. Za svaku sesiju enkripcije koristi se novi inicijalizacijski vektor.

Za sve i = 1...n, blok šifriranog teksta C(i) je definiran kako slijedi:

C(i) = M(i) x ili P(i-1),

gdje su P(i-1) najvažnijih t bitova operacije IDEA(C(i-1)), a C(0) = IV.

Registar posmaka ažurira se uklanjanjem njegovih najviših t bitova i dodavanjem C(i) s desne strane.

Oporavak šifriranih podataka također je jednostavan: P(i-1) i C(i) izračunavaju se na isti način i M(i) = C(i) xili P(i-1).

1.4.3 Izlazna povratna informacija

OFB način je, kao i CFB, in-line, odnosno funkcija poziva se u algoritmu prije zbrajanja s dijelom otvorenog teksta. Ali ovaj put ulaz nije šifrirani tekst iz prethodne iteracije, već jednostavno njegovi izlazni podaci. Odnosno, petlje funkcije.

U takvoj situaciji postaje važno upotrijebiti inicijalizacijski vektor jednom. Recimo da su dvije različite poruke šifrirane u OFB modu koristeći isti inicijalizacijski vektor. Zatim, ako protivnik postane svjestan bilo kojeg j-tog bloka otvorenog teksta prve poruke, tada, imajući j-ti blok šifriranog teksta, može lako izračunati Oj - izlazne podatke, a budući da oni ovise samo o vektoru inicijalizacije, koji isti za obje poruke, onda možemo reći da će u drugoj poruci biti isti Oj, dakle, imajući j blok šifriranog teksta druge poruke, neprijatelj će odmah primiti otvoreni tekst j-tog bloka poruke druga poruka.

Stoga je u OFB algoritmu potrebno izbjeći ne samo ponavljanje inicijalizacijskih vektora, već i da se bilo koji j-ti blok ulaznih podataka funkcije za jednu poruku ne koristi kao inicijalizacijski vektor za drugu poruku. Ispod su jednadžbe za OFB šifriranje: OFB enkripcija:

I j = O j -1 , j = 1,2, … n

C j = P j + O j, j = 1,2, … n-1

C n = P n + MSB t (O n)

OFB dešifriranje:

I j = O j - 1, j = 2, … n

O j = CIPH K (I j), j = 1,2, … n

P j = C j + O j, j = 1,2, … n-1

P n = C n + MSB t (O n),

gdje je "+" xor operacija.

Problem dovršetka poruke za OFB rješava se jednostavno: za posljednji, možda nepotpuni blok poruke, koristi se točno onoliko bitova izlaznih podataka funkcije koliko ima bitova u ovom bloku. Dakle, u ovom načinu rada, za razliku od prethodnih, duljina poruke ostaje nepromijenjena tijekom procesa šifriranja i, što je najvažnije, tijekom prijenosa.

1.4.4 Brojač - enkripcija s brojačem

U načinu enkripcije toka s brojačem pri svakoj iteraciji algoritma enkripcije na ulazu funkcije daje se slučajna vrijednost T. Ovaj ulaz mora biti različit za sve iteracije algoritma u kojima blok šifra koristi isti ključ za šifriranje, pa se generator takvih vrijednosti ponekad naziva brojač (koji pruža najjednostavniji način za generiranje). jedinstvene T vrijednosti).

Zapravo, zahtjev jedinstvenosti ulaznih podataka funkcije na određenoj vrijednosti K bit će zadovoljen u slučaju korištenja PRC-a (generator pseudoslučajnog koda), ali tada je potreban početni inicijalizacijski vektor za PRC na dijelu pošiljatelja i primatelja poruka.

Dakle, šifrirani tekst u algoritmu CTR moda dobiva se zbrajanjem modula 2 sljedećeg bloka otvorenog teksta s izlaznim podacima funkcije. Sljedeća vrijednost Tj brojača bloka poruka dostavlja se na ulaz funkcije. Dešifriranje se također događa zbrajanjem modulo 2 sljedećeg bloka šifriranog teksta i rezultata transformacije pomoću funkcije sljedeće vrijednosti brojača Tj. Operacije šifriranja i dekriptiranja u CTR modu mogu se izvoditi paralelno i neovisno za sve blokove. Osim toga, ovaj način rada također nema problem posljednjeg bloka. CTR enkripcija:

CTR dekodiranje:

CTR način ima sve prednosti ECB načina (paralelno izvođenje, jednostavnost i mogućnost izravnog šifriranja bilo kojeg bloka poruke zasebno i neovisno o drugim blokovima). No osim toga, način CTR ispravlja sve nedostatke enkripcije u načinu elektroničkog šifrarnika: identični blokovi otvorenog teksta više se neće pretvarati u identične blokove šifriranog teksta; Nema potrebe dopunjavati zadnji blok šifriranog teksta. Osim toga, u ovom načinu rada (kao i u bilo kojem načinu toka) koristi se samo funkcija šifriranja, a za neke blok šifre (na primjer, za AES - novi američki standard blok šifre), to daje određeni dobitak performansi. Zbog toga je ovaj način često najučinkovitiji.

1.4.5 Prednosti ulančavanja šifriranih blokova u odnosu na analogne

Dakle, možemo zaključiti da simetrični način šifriranja CBC ima jasnu prednost među gore navedenima, naime: u načinu dešifriranja, kada je cijeli šifrirani tekst već primljen, funkcije se mogu izvršavati paralelno i neovisno za sve blokove poruka. Ovo daje značajan vremenski dobitak.

U ovom načinu rada vrijedi se usredotočiti na još jedan detalj. Činjenica je da posljednji blok šifriranog teksta, koji se dobiva na izlazu algoritma CBC moda, ovisi i o ključu blokovne šifre i vektoru inicijalizacije, i (što je u ovom slučaju još važnije) o svim bitovima otvorenog teksta poruka. To znači da se ovaj zadnji blok šifriranog teksta može koristiti kao neka vrsta identifikatora poruke. Takav identifikator vanjskom promatraču ne daje nikakvu informaciju o sadržaju cijele poruke u cjelini, au isto vrijeme je (poruku) gotovo nedvojbeno identificira. Štoviše, jednako je teško krivotvoriti ovaj identifikator bez poznavanja ključa za šifriranje K kao što je i ispravno pogoditi sam ključ.

2. DIZAJNSKI DIO

2.1 Funkcionalno modeliranje

Na temelju zahtjeva za softver definirane su sljedeće funkcije:

· Registracija korisnika s poljima:

· Enkripcija izvornog teksta;

· Dešifriranje šifriranog teksta;

· Prikaz korisniku završnih faza šifriranja i dešifriranja nakon uspješne autorizacije.

2.2 Algoritamski dizajn

Generalizirani IDEA algoritam šifriranja prikazan je dolje (Slika 5).

Nakon pokretanja programa, korisnik mora unijeti par: prijava + lozinka na obrazac za autorizaciju ili ispuniti obrazac za registraciju. Nakon unosa znakova na obrascima, funkcija enkripcije će početi raditi kada kliknete na gumb “Prijava” odnosno “Registracija”.

64-bitni blok podataka čita se iz datoteke i dijeli na četiri 16-bitna podbloka. Ova četiri podbloka postaju ulaz u prvu petlju algoritma. Na slici su ovi podblokovi označeni D 1, D 2, D 3, D 4. Svaki krug koristi vlastite potključeve prema tablici potključeva (slika 6). Ranije opisane operacije i prikazane u dijagramu algoritma izvode se na 16-bitnim podblokovima i podblokovima otvorenog teksta.

Na kraju svakog kruga enkripcije postoje četiri 16-bitna podbloka, koji se zatim koriste kao ulazni podblokovi za sljedeći krug šifriranja. Izlazna transformacija je skraćena runda, naime, četiri 16-bitna podbloka na izlazu osme runde i četiri odgovarajuća podbloka su podvrgnuti opisanim operacijama.

Zatim se uzima sljedeći 64-bitni blok otvorenog teksta i algoritam šifriranja se ponavlja. To se nastavlja dok se svi 64-bitni blokovi izvornog teksta ne šifriraju.

Korisnik će vidjeti šifriranu poruku nakon uspješne autorizacije.

Metoda izračuna koja se koristi za dešifriranje teksta u biti je ista kao ona koja se koristi za njegovo šifriranje. Jedina razlika je u tome što se za dešifriranje koriste različiti potključevi. Tijekom procesa dešifriranja potključevi se moraju koristiti obrnutim redoslijedom. Prvi i četvrti podključ i-te runde dešifriranja dobivaju se iz prvog i četvrtog podključa (10-i) runde enkripcije multiplikativnom inverzijom. Za 1. i 9. krug, drugi i treći podključ za dešifriranje dobivaju se iz drugog i trećeg podključa 9. i 1. kruga šifriranja aditivnom inverzijom. Za runde 2 do 8, drugi i treći potključ za dešifriranje dobivaju se iz trećeg i drugog podključa rundi 8 do 2 aditivne inverzijske enkripcije. Zadnja dva podključa i-te runde dešifriranja jednaka su zadnja dva podključa (9-i)-te runde enkripcije.

Korisnik će vidjeti dešifriranu poruku nakon uspješnog ispunjavanja obrasca za autorizaciju, s ispravnom prijavom i lozinkom.

Riža. 5. IDEA struktura algoritma

Riža. 6. Povežite algoritam za šifriranje i dešifriranje IDEA

2.3 Implementacija softvera

Rad je implementiran u programskom okruženju Microsoft Visual Studio 2012 koji je korišten za pisanje rada.

Popis glavnih procedura - rukovatelja, koji sadrže funkcionalnost programa koji se razvija:

· public static int idea_hash_cbc (char *s, int len, int k, int iv) funkcija za izračun CBC hash-a. U ovoj funkciji dobivamo trenutnu vrijednost za XOR (iv), stvaramo pokazivač na niz raspršenih podataka, dijelimo veličinu niza s 8 (provjeravamo višekratnik od 8), šifriramo pomoću formule: C(i ) = IDEJA(C(i- 1) ^ S(i), KLJUČ) i vrati rezultirajući hash.

· privatni statički niz ShiftByteLeft(string s) pomak za 25 bita ciklički ulijevo

· privatni statički niz ShiftbyteRight(string s) pomak za 25 bita ciklički udesno

· privatni statički niz Sum(niz a1, niz a2) zbroj modulo 2^16

· privatni statički niz Multi(niz a1, niz a2) množenje po modulu 2^16+1 privatni statički niz XOR(niz a1, niz a2) isključivi ILI

· inline T setBit (T v, int nBitNumber) funkcija postavljanja bitova. Bitovi se broje od 0, numeriranje ide s lijeva na desno.

· inline bool getBit (T v, int nBitNumber) funkcija za dobivanje vrijednosti bita (true/false).

karta *> ključevi_arhiva; arhiva tablica “okruglih” ključeva, kako se ključevi ne bi svaki put iznova generirali (funkcija uključuje: početnu permutaciju ključa, konačnu permutaciju ključa, pomake, tablicu zamjene). private void idea_Encryption (string st1, string st2) IDEA algoritam. Ulaz - 2 retka: 1) skup bitova bloka za čitanje (dužina 64). 2) skup bitova našeg ključa (dužine 128). Izlaz - blok šifre (64 znaka) public string idea_Decryption (string st1, string st2) funkcija dešifriranja pomoću algoritma IDEA.

· bool CheckLogin(int hash) funkcija čita prijavu, ako je hash argumenata jednak pročitanoj prijavi, zatvara datoteku i daje pozitivan rezultat. Ako nije, prikazuje se poruka "Nevažeća prijava"

· bool CheckPass(int login_hash, int pass_hash) funkcija čita prijavu i lozinku, ako je prijava jednaka traženoj, ali lozinka ne odgovara, zatvara datoteku i prikazuje poruku “Nevažeća lozinka”. Ako se prijava i lozinka podudaraju, funkcija vraća "true".

Program se sastoji od tri obrasca: obrasca za registraciju (Sl. 7.), obrasca za autorizaciju (Sl. 8.) i obrasca s ispisom šifriranog i dekriptiranog teksta (Sl. 9.). Ti su obrasci prikazani u nastavku.

programska blok enkripcija autentifikacija

sl.8. Upisnica

Sl.9. Obrazac za izlaz informacija

3. EKSPERIMENTALNO

Test 1. Testiranje prisutnosti korisničke prijave

Ulazni podaci:

· Klikom na gumb Prijava bez unosa prijave

Proizlaziti:

· Poruka o pogrešci. Unesite svoju prijavu

Test 2. Testiranje provjere unesene korisničke lozinke

Ulazni podaci:

· Klikom na gumb Prijava bez unosa lozinke

Proizlaziti:

· Poruka o pogrešci. Molimo unesite svoju lozinku

Zaključak: funkcija provjere radi ispravno.

Test 3. Testiranje funkcije enkripcije s duljinom teksta od najviše 50 znakova.

Ulazni podaci:

· Puno ime: Neki tekst

Test 4. Testiranje funkcije šifriranja kada je duljina teksta veća od 50 znakova.

Ulazni podaci:

· Puni naziv: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Zaključak: Funkcija šifriranja radi ispravno.

Test 4: Dodavanje znaka na početak šifriranog hasha.

Test 5: Dodavanje znaka u sredinu šifriranog hasha.

Zaključak: dio teksta neće biti dešifriran.

ZAKLJUČAK

Tijekom kolegija, u analitičkom dijelu, analizirani su različiti algoritmi simetrične blok enkripcije te su prikazane prednosti i mane IDEA algoritma. Također, postavljeni su zadaci i zahtjevi za izrađeni program koji su u potpunosti realizirani.

U dijelu dizajna definirane su i detaljno razmotrene glavne funkcije, kao i ulazni i izlazni parametri funkcija IDEA algoritma. Odabrano je okruženje za razvoj softvera i programski jezik.

U eksperimentalnom dijelu softver je testiran s pet testova. Nisu pronađene pogreške u implementaciji algoritma ili radu softvera.

BIBLIOGRAFIJA

1. Wikipedia. IDEA algoritam [Elektronički izvor]. - Način pristupa: - http://ru.wikipedia.org/wiki/IDEA.

2. MSDN [Elektronički izvor]. - Način pristupa: - http://msdn.microsoft.com/ru-ru/.

3. Wikipedia. Način ulančavanja blokova šifriranog teksta [Elektronički izvor]. - Način pristupa: - https://ru.wikipedia.org/wiki/Mode_concatenation_of_ciphertext_blocks.

4. [Elektronički izvor] - Oleg Zenzin - Načini šifriranja, odjeljak Akumulacija pogrešaka u različitim načinima šifriranja - Način pristupa: - http://citforum.ru/security/cryptography/rejim_shifrov/

5. [Elektronički izvor] - Usporedni prikaz PGP algoritama - Način pristupa: - https://www.pgpru.com/biblioteka/statji/sravniteljnyjjobzoralgoritmovpgp

Objavljeno na Allbest.ru

Slični dokumenti

    Implementacija DES algoritma i načina šifriranja za bilo koju duljinu poruke i bilo koju duljinu ključa. Enkripcija poruka različitih duljina i ključeva, mjerenje vremena i brzine enkripcije. Implementacija RSA algoritma. Spremanje šifrirane datoteke na disk.

    kolegij, dodan 26.01.2010

    Razvoj aplikacije za enkripciju podataka DES5 algoritmom: proces enkripcije, dešifriranja, dobivanje ključeva. Specifikacija programa, postupci i funkcije; opis korisničkog sučelja. Implementacija zadatka u programskom okruženju DELPHI.

    kolegij, dodan 27.03.2012

    Povijest nastanka algoritama simetričnog šifriranja. Uloga simetričnog ključa u osiguravanju stupnja tajnosti poruke. Difuzija i konfuzija kao metode pretvorbe podatkovnih bitova. Algoritmi šifriranja DES i IDEA, njihove glavne prednosti i nedostaci.

    laboratorijski rad, dodan 18.03.2013

    Simetrični kriptosustavi; algoritmi za šifriranje i dešifriranje podataka, njihova primjena u računalnoj tehnologiji u sustavima zaštite povjerljivih i komercijalnih informacija. Osnovni načini rada DES algoritma, izrada programske implementacije ključa.

    kolegij, dodan 17.02.2011

    Povijest nastanka algoritma simetričnog šifriranja, uvjeti i značajke njegove primjene u sadašnjoj fazi. Principi i funkcije proučavane tehnologije. Analiza glavnih prednosti i nedostataka korištenja algoritma, procjena njegove ranjivosti.

    kolegij, dodan 29.10.2017

    Proučavanje sustava distribucije ključa temeljenog na linearnim transformacijama. Opis komponenti povjerljive komunikacijske mreže. Karakteristike domaćeg algoritma za šifriranje podataka. Prikaz rezultata proračuna kriptografske snage algoritma za šifriranje.

    test, dodan 26.09.2012

    Izrada programa koji implementira postupke enkripcije i dešifriranja teksta prema standardu DES (Data Encryption Standard). Struktura algoritma za šifriranje, shema za izradu ključnih elemenata. Korištenje kriptografskog softvera.

    kolegij, dodan 15.06.2013

    Razvoj kriptografskog algoritma za program ručnog šifriranja pomoću Vigenèreove tablice. Izrada programa za šifriranje i dešifriranje. Značajke korištenja samog otvorenog teksta kao ključa. Algoritmi za rješavanje "inverznih" problema.

    kolegij, dodan 13.11.2009

    Simetrični kriptosustavi su metode šifriranja u kojima se isti kriptografski ključ koristi za šifriranje i dešifriranje. Analiza i implementacija algoritma šifriranja: jednostavna i dvostruka permutacija, permutacija magičnog kvadrata.

    kolegij, dodan 03/11/2013

    Simetrična enkripcija je metoda šifriranja koja koristi isti kriptografski ključ. Funkcije standardnog dijaloškog okvira za otvaranje i spremanje datoteke. Tipična shema radnji prilikom generiranja potpisa. Digitalni potpis datoteke.

UVOD

ANALITIČKI DIO

1 IDEA algoritam

2. Usporedba analoga algoritma IDEA

2.1 DES algoritam

2.2 RC6 algoritam

2.3 Algoritam GOST 28147-89

2.4 Prednosti IDEA u odnosu na analoge

3 Cipher Block Chaining način - ulančavanje blokova pomoću šifriranog teksta

4 Usporedba analoga CBC načina šifriranja

4.1 Electronic Code Book - Elektronički šifrarnik

4.2 Cipher Feed Back - obrnuto učitavanje šifriranog teksta

4.3 Izlazna povratna informacija - obrnuto učitavanje izlaznih podataka

4.4 Brojač - enkripcija s brojačem

4.5 Prednosti ulančavanja blokova šifre u odnosu na analogne

DIZAJNSKI DIO

1 Funkcionalno modeliranje

2 Algoritamski dizajn

3 Implementacija softvera

EKSPERIMENTALNI DIO

ZAKLJUČAK

BIBLIOGRAFIJA

UVOD

Simetrični kriptosustavi (također i simetrična enkripcija, simetrične šifre) su metode šifriranja u kojima se za šifriranje i dešifriranje koristi isti kriptografski ključ. Prije izuma sklopa asimetrična enkripcija jedina metoda koja je postojala bila je simetrična enkripcija. Obje strane moraju čuvati ključ algoritma u tajnosti. Ključ algoritma biraju strane prije početka razmjene poruka.

Algoritmi za šifriranje i dešifriranje podataka naširoko se koriste u računalnoj tehnologiji u sustavima za skrivanje povjerljivih i komercijalnih informacija od zlonamjerne upotrebe trećih strana. Glavno načelo u njima je uvjet da odašiljač i primatelj unaprijed znaju algoritam šifriranja, kao i ključ poruke, bez kojeg je informacija samo skup simbola koji nemaju nikakvo značenje.

Klasičan primjer takvih algoritama su dolje navedeni simetrični kriptografski algoritmi: - jednostavna zamjena;

jedna permutacija po ključu;

dvostruka permutacija;

permutacija "Magični kvadrat";

jednostavno preuređenje.

Potpuni gubitak svih statističkih obrazaca izvorne poruke važan je uvjet za simetričnu šifru. Da bi se to postiglo, šifra mora imati "efekt lavine", tj. Trebalo bi doći do jake promjene u bloku šifriranja s 1-bitnom promjenom u ulaznim podacima (idealno bi se trebale promijeniti vrijednosti 1/2 bita bloka šifriranja).

Trenutno su simetrične šifre:

· blokovske šifre. Oni obrađuju informacije u blokovima određene duljine (obično 64, 128 bita), primjenjujući ključ na blok u propisanom redoslijedu, obično kroz nekoliko ciklusa miješanja i zamjene, koji se nazivaju krugovi. Rezultat ponavljanja krugova je efekt lavine - sve veći gubitak podudarnosti bitova između blokova otvorenih i šifriranih podataka.

· stream šifre, u kojima se enkripcija provodi preko svakog bita ili bajta izvornog (čistog) teksta korištenjem gama. Šifra toka može se lako stvoriti na temelju blok šifre (na primjer, GOST 28147-89 u gama načinu rada), pokrenute u posebnom načinu rada.

Postoji mnogo algoritama simetrične šifre, čiji su bitni parametri:

· izdržljivost;

· duljina ključa;

· broj rundi;

· duljina obrađenog bloka;

· složenost hardverske/softverske implementacije;

· složenost pretvorbe.

1.ANALITIČKI DIO

1IDEA algoritam

IDEA (engleski: International Data Encryption Algorithm, međunarodni algoritam šifriranja podataka) je algoritam simetrične blokovne enkripcije podataka koji je patentirala švicarska tvrtka Ascom. Ovo je algoritam simetrične blok enkripcije koji je predložen da zamijeni DES standard. Početna verzija algoritma IDEA pojavila se 1990. Programeri algoritma, Xuejia Lai i James Massey sa švicarskog instituta ETH Zurich, dali su mu naziv PES (Proposed Encryption Standard).

Budući da IDEA koristi 128-bitni ključ i 64-bitnu veličinu bloka, otvoreni tekst je razbijen u 64-bitne blokove. Ako takva particija nije moguća, posljednji blok se na različite načine dopunjuje određenim nizom bitova. Kako bi se izbjeglo curenje informacija o svakom pojedinom bloku, koriste se različiti načini šifriranja. Svaki izvorni nešifrirani 64-bitni blok podijeljen je u četiri podbloka od po 16 bita, jer se sve algebarske operacije koje se koriste u procesu šifriranja izvode na 16-bitnim brojevima. IDEA koristi isti algoritam za šifriranje i dešifriranje.

IDEA koristi sljedeće matematičke operacije:

 zbrajanje po bitovima modulo 2 (operacija "isključivo ILI");

 zbrajanje cijelih brojeva bez predznaka po modulu 2 16;

 množenje cijelih brojeva bez predznaka po modulu (2 16+1), s blokom od 16 nula koje se tretiraju kao 2 16;

Značajan nedostatak je što je IDEA patentirana, jer to onemogućuje njezinu besplatnu distribuciju. IDEA ne predviđa povećanje duljine ključa. Drugim nedostatkom može se smatrati činjenica da nisu svi radovi o kriptoanalizi objavljeni, odnosno vrlo je moguće da je šifra razbijena ili će biti razbijena u budućnosti.

Struktura algoritma IDEA prikazana je u nastavku (slika 1).

Riža. 1. IDEA algoritam šifriranja

· način elektronske šifrarne knjige (ECB - Electronic Code Book)

· način ulančavanja blokova (CBC - Cipher Block Chaining)

· način povratne šifre (CFB - Cipher Feedback)

· izlazni povratni način (OFB - Output Feed Back).

Ovaj kolegij ispituje programsku implementaciju IDEA algoritma za šifriranje (Cipher Feed Back mod).

1.2Usporedba analoga algoritma IDEA

1.2.1DES algoritam

DES (Data Encryption Standard) - simetrični algoritam šifriranja u kojem se jedan ključ koristi i za šifriranje i za dešifriranje podataka. DES ima 64-bitne blokove i strukturu Feistelove mreže od 16 ciklusa; za enkripciju koristi 56-bitni ključ.

Algoritam koristi kombinaciju nelinearnih (S-box) i linearnih (permutacije E, IP, IP-1) transformacija.

Budući da DES radi u 64-bitnim blokovima i koristi 56-bitni ključ, ova duljina ključa odgovara 256 kombinacija, što je donedavno pružalo dovoljnu razinu sigurnosti (8 parnih bitova punog 64-bitnog ključa se ne koristi, bitovi parnosti su najmanje značajni bitovi ključni bajtovi). Ulazni blok podataka, koji se sastoji od 64 bita, pretvara se u izlazni blok identične duljine.

Zbog upotrebe 56-bitnog ključa za šifriranje, DES algoritam se može probiti brutalnom silom na bilo kojem modernom računalni sustav u vrlo realističnom vremenskom okviru - nekoliko dana, simetrični kriptosustav, definiran kao 16-kružna Feistelova šifra, izvorno je bio namijenjen za hardversku implementaciju. Kada se DES koristi za prijenos informacija, da bi se šifrirala i dešifrirala poruka ili da bi se stvorio i potvrdio kod za provjeru autentičnosti poruke (MAC), pošiljatelj i primatelj moraju znati tajni ključ.

Proces šifriranja DES algoritma sastoji se od početne permutacije bitova 64-bitnog bloka, šesnaest ciklusa šifriranja i na kraju obrnute permutacije bitova (slika 2).

sl.2. DES algoritam šifriranja

1.2.2Algoritam RC6

Šifra RC6 uvrštena u AES natjecanje podržava 128-bitne blokove i 128-, 192- i 256-bitne ključeve, ali se sam algoritam može konfigurirati da podržava više širok raspon duljine i blokova i ključeva (od 0 do 2040 bita).

Finalist je AES-a i koristi gotovo sve postojeće tehnologije koje se koriste u kriptografskim algoritmima, međutim, jedna od primitivnih operacija je operacija množenja, koja se sporo izvodi na nekoj opremi i otežava implementaciju šifre na nizu hardvera platformama i, što se pokazalo iznenađenjem za autore, na sustavima s Intelovom arhitekturom IA-64 također je dosta loše implementiran. U tom slučaju algoritam gubi jednu od svojih ključnih prednosti - veliku brzinu izvršavanja, što je postalo razlog kritika i jedna od prepreka odabiru kao novog standarda.

Riža. 3. RC6 algoritam šifriranja

Struktura šifriranja algoritma RC6 prikazana je na slici 3. Kratki opis algoritam: algoritam koristi 20 rundi transformacija, prije kojih se izvodi djelomično izbjeljivanje unosa:

o B = B + K 0modifikacija 2 32

o D=D+K 1modifikacija 2 32,

gdje su A, B, C, D trenutne vrijednosti 32-bitnih podblokova koji se obrađuju, a K 0...K 43- fragmenti produženog ključa.

Djelomično izlazno izbjeljivanje izvodi se na isti način:

o A = A + K 42modifikacija 2 32

o C=C+K 43modifikacija 2 32.

U svakom krugu algoritma izvode se sljedeće radnje:

o t 1= f(B)<<< 5,

o t 2= f(D)<<< 5,

o A = ((A Å t 1) <<< t2) + K 2i modifikacija 2 32,

o C = ((C Å t 2) <<< t1) + K 2i+1 modifikacija 2 32,

gdje je t 1i T 2- privremene varijable, broj bitova rotacije po varijabli broj bitova određen je vrijednošću 5 najmanje značajnih bitova parametra (t 1ili t 2), funkcija f() izvodi sljedeću kvadratnu transformaciju:

(x) = x * (2x + 1) mod 2 32.

Na kraju svake runde podblokovi se pomiču.

Prednosti algoritma:

· Jednostavna struktura algoritma olakšava analizu.

· Najbrži algoritam AES finalista na 32-bitnim platformama.

· Šifriranje i dešifriranje u algoritmu RC6 gotovo su identični. Nedostaci algoritma:

· Brzina enkripcije u softveru uvelike ovisi o tome podržava li platforma 32-bitno množenje i rotaciju varijabilnih bitova.

· RC6 je teško implementirati u hardver iu uvjetima ograničenih resursa.

· Vrlo je teško zaštititi se od napada u smislu vremena izvršenja i potrošnje energije.

· Ne podržava u potpunosti proširenje ključa u hodu.

· Paralelizacija izračuna pri šifriranju algoritmom RC6 izvediva je uz ograničenja.

1.2.3Algoritam GOST 28147-89

GOST 28147-89 je sovjetski i ruski standard simetrične enkripcije uveden 1990., također standard CIS-a. Puni naziv - „GOST 28147-89 Sustavi za obradu informacija. Kriptografska zaštita. Algoritam kriptografske pretvorbe."

Riža. 4. Algoritam šifriranja GOST 28147-89

Algoritam blokovne šifre. Kada se koristi metoda gama enkripcije, može obavljati funkcije algoritma tokovne šifre. GOST 28147-89 je blok šifra s 256-bitnim ključem i 32 ciklusa pretvorbe, koja radi na 64-bitnim blokovima. Osnova algoritma šifre je Feistelova mreža. Postoje četiri načina rada prema GOST 28147-89: jednostavna zamjena, igranje, igranje s povratnom spregom i način generiranja umetka simulacije.

Prednosti algoritma: uzaludnost napada sile, učinkovitost implementacije i, sukladno tome, visoke performanse na modernim računalima, prisutnost zaštite od nametanja lažnih podataka (generiranje imitativnog umetanja) i isti ciklus šifriranja u svim četiri GOST algoritma, veći ključ u usporedbi s DESX algoritmom.

Nedostaci algoritma: Glavni problemi GOST-a povezani su s nepotpunošću standarda u smislu generiranja ključeva i zamjenskih tablica. Vjeruje se da GOST ima "slabe" ključeve i zamjenske tablice, ali standard ne opisuje kriterije za odabir i uklanjanje "slabih". Također, norma ne navodi algoritam za generiranje supstitucijske tablice (S-kutije). S jedne strane, to može biti dodatni tajni podatak (pored ključa), as druge strane, postavlja niz problema: nemoguće je odrediti kriptografsku snagu algoritma bez prethodnog poznavanja tablice zamjene ; implementacije algoritama različitih proizvođača mogu koristiti različite zamjenske tablice i mogu biti nekompatibilne jedna s drugom; mogućnost namjernog pružanja slabih zamjenskih tablica od strane tijela za izdavanje dozvola Ruske Federacije.

1.2.4Prednosti IDEA u odnosu na analoge

U softverskoj implementaciji na Intel486SX u usporedbi s DES-om IDEA je dvostruko brža, što je značajno povećanje brzine, duljina IDEA ključa je 128 bita, naspram DES-ovih 56 bita, što je dobar napredak u odnosu na brute force. Vjerojatnost korištenja slabih ključeva je vrlo mala i iznosi 1/264. IDEA je brži od algoritma GOST 28147-89 (u softverskoj implementaciji na Intel486SX ). Korištenje IDEA-e u paralelnim načinima šifriranja na Pentium III procesorima i Pentium MMX omogućuje postizanje velikih brzina. U usporedbi s AES finalistima, 4-way IDEA samo je malo sporiji od RC6 i Rijndael na Pentiumu II , ali brži od Twofisha i MARS . Na Pentiumu III 4-way IDEA čak je brži od RC6 i Rijndael . Još jedna prednost je što je dobro proučen i otporan na dobro poznate alate za kriptoanalizu.

1.3Cipher Block Chaining način - ulančavanje blokova pomoću šifriranog teksta

U načinu CBC enkripcije, svi blokovi poruka su "ulančani" pomoću šifriranog teksta.

U algoritmu šifriranja, ulaz funkcije svaki put prima rezultat zbrajanja po modulu 2 otvorenih podataka sljedećeg bloka poruke i izlazne funkcije za prethodni blok. Budući da izlazni podaci funkcije za sljedeći blok idu izravno na izlaz CBC algoritma, to jest, to je šifrirani tekst ovog bloka i istovremeno ide na ulaz iste funkcije za šifriranje sljedećeg bloka, kažu da su blokovi ulančani pomoću šifriranog teksta. Prvi blok otvorenih podataka sažet je s tzv. vektor inicijalizacije.

Ovaj inicijalizacijski vektor postaje poznat i pošiljatelju i primatelju na samom početku komunikacijske sesije (stoga se često naziva jednostavno sinkronizacijska poruka). Dešifriranje se odvija, sukladno tome, obrnutim redoslijedom - prvo se funkcija primjenjuje na šifrirani tekst, a zatim se zbraja s prethodnim blokom šifriranog teksta kako bi se dobio sljedeći blok otvorenog teksta na izlazu algoritma. Prvi blok otvorenog teksta ponovno se rekonstruira korištenjem inicijalizacijskog vektora.

Dakle, za sve i = 1...n, blok šifriranog teksta C(i) je definiran kako slijedi:

C(i) = IDEA(M(i) x ili C(i-1)),

Dešifriranje se izvodi na sljedeći način:

M(i) = C(i-1) x ili IDEA-1(C(i)),

Blok M(i) je funkcija samo C(i-1) i C(i). Stoga će pogreška u prijenosu rezultirati gubitkom samo dva bloka izvornog teksta.

1.4Usporedba analoga CBC načina šifriranja

Kada se koriste blok šifre, koriste se različite sheme šifriranja, poznate kao načini rada šifriranja za blok šifre. Očito je da korištenje jednog ili drugog načina šifriranja ne bi trebalo negativno utjecati na učinkovitost, a posebno na kriptografsku snagu blok šifre. Načini šifriranja omogućuju implementaciju dodatnih funkcija koje nedostaju u izvornom dizajnu blok šifre.

1.4.1 Elektronička šifrarna knjiga - Elektronička šifrarna knjiga

Ovaj način je elektronički analog načinu rada koji su agenti koristili za slanje šifriranih poruka početkom 20. stoljeća. Agent je dobio bilježnicu čija je svaka stranica sadržavala jedinstveni niz – šifru kojom je poruka šifrirana. Nakon korištenja takva je stranica istrgnuta iz bilježnice i uništena. Po potrebi se poruka dopunjavala tako da na istrgnutim stranicama nije ostao neiskorišteni kod. Primatelj je imao kopiju bilježnice, stoga, pod uvjetom da su se stranice koristile sinkrono, ovaj način šifriranja je omogućio i šifriranje i dešifriranje poruka. U ECB-u, korištenje jedne stranice šifrarnika tijekom enkripcije odgovara primjeni transformacije na ulazne podatke pomoću funkcije CIPH k , a kada se dekriptira - CIPH -1k . Za sinkronizaciju je dovoljno da se obje strane dogovore oko vrijednosti tajnog ključa K.

Kao što se može vidjeti na slici, cijeli ECB algoritam sastoji se od izravne primjene funkcija i na poruku i na šifrirani tekst za šifriranje odnosno dešifriranje, što se također može izraziti u obliku jednadžbi: ECB enkripcija:

S j = CIPH K (str j ) ,

ECB dešifriranje:

P j = CIPH K (C j ),

Dakle, šifriranje se događa u blokovima koji odgovaraju veličini ulazno/izlaznih podataka za funkcije i. Blokovi su šifrirani odvojeno i neovisno jedan o drugome, što omogućuje da se to radi paralelno. Ova prednost ECB načina rada i njegova jednostavnost maskirani su dvama značajnim nedostacima. Prvi je da duljina poruke mora biti višekratnik duljine ulaznog bloka podataka blokovne šifre, odnosno cijela se poruka može podijeliti na cijeli broj takvih blokova ili je potrebno nekako zadnji blok dopuniti podacima koji ne nose informaciju. Drugi nedostatak je još značajniji.

Budući da je tijekom enkripcije sljedeći blok šifriranog teksta u potpunosti određen samo odgovarajućim blokom otvorenog teksta i vrijednošću tajnog ključa K, identični blokovi otvorenog teksta će se u ovom načinu rada pretvoriti u identične blokove šifriranog teksta. A to je ponekad nepoželjno, jer može dati ključ za analizu sadržaja poruke. Na primjer, ako su podaci na tvrdom disku šifrirani, tada će prazan prostor biti ispunjen istim bajtovima koji su tamo ostali nakon formatiranja diska. To znači da će iz šifriranog teksta biti moguće pogoditi veličinu korisnih informacija na disku. U takvim slučajevima trebate koristiti druge načine šifriranja.

1.4.2 Cipher Feed Back - obrnuto učitavanje šifriranog teksta

Cipher Feed Back Način povratne informacije o šifriranom tekstu jedna je od shema simetrične enkripcije u kojoj je šifrirani blok teksta bitovno dodavanje bloka otvorenog teksta s šifriranim rezultatom enkripcije prethodnog bloka. Ima modifikaciju koja vam omogućuje šifriranje podataka čija je veličina manja od veličine bloka šifre, što omogućuje šifriranje toka podataka bez čekanja da potreban broj bitova stigne na ulaz.

U ovom načinu rada veličina bloka može se razlikovati od 64. Izvorna datoteka M čita se u uzastopnim t-bitnim blokovima (t<= 64): M = M(1)M(2)...M(n) (остаток дописывается нулями или пробелами).

Registar pomaka bita (ulazni blok) prvo sadrži desno poravnati inicijalizacijski vektor IV. Za svaku sesiju enkripcije koristi se novi inicijalizacijski vektor.

Za sve i = 1...n, blok šifriranog teksta C(i) je definiran kako slijedi:

(i) = M(i) x ili P(i-1),

gdje su P(i-1) najvažnijih t bitova operacije IDEA(C(i-1)), a C(0) = IV.

Registar posmaka ažurira se uklanjanjem njegovih najviših t bitova i dodavanjem C(i) s desne strane.

Oporavak šifriranih podataka također je jednostavan: P(i-1) i C(i) izračunavaju se na isti način i M(i) = C(i) xili P(i-1).

1.4.3 Izlazna povratna informacija - obrnuto učitavanje izlaznih podataka

Način rada OFB, kao i CFB, temelji se na nitima, to jest, funkcija se poziva u algoritmu prije zbrajanja s dijelom otvorenog teksta. Ali ovaj put ulaz nije šifrirani tekst iz prethodne iteracije, već jednostavno njegovi izlazni podaci. Odnosno, petlje funkcije.

Stoga je u OFB algoritmu potrebno izbjeći ne samo ponavljanje inicijalizacijskih vektora, već i da se bilo koji j-ti blok ulaznih podataka funkcije za jednu poruku ne koristi kao inicijalizacijski vektor za drugu poruku. Ispod su jednadžbe za OFB šifriranje: OFB enkripcija:

ja 1= IV

ja j = O j-1 , j = 1,2, … n

O j = CIPH K (ja j ), j = 1,2, … n

C j =P j + O j , j = 1,2, … n-1 n =P n +MSB t (O n )

OFB dešifriranje:

ja 1= IV j = O j -1, j = 2, … n j = CIPH K (ja j ), j = 1,2, … n j = C j + O j , j = 1,2, … n-1 n = C n +MSB t (O n ) ,

gdje je "+" xor operacija.

Problem dovršetka poruke za OFB rješava se jednostavno: za posljednji, možda nepotpuni blok poruke, koristi se točno onoliko bitova izlaznih podataka funkcije koliko ima bitova u ovom bloku. Dakle, u ovom načinu rada, za razliku od prethodnih, duljina poruke ostaje nepromijenjena tijekom procesa šifriranja i, što je najvažnije, tijekom prijenosa.

1.4.4 Brojač - enkripcija s brojačem

U načinu enkripcije toka s brojačem, pri svakoj iteraciji algoritma enkripcije, određena slučajna vrijednost T se dostavlja na ulaz funkcije. Ovi ulazni podaci moraju biti različiti za sve iteracije algoritma u kojima blok šifra koristi isti ključ šifriranja. , pa se generator takvih vrijednosti ponekad naziva brojač (koji pruža najjednostavniji način za generiranje jedinstvenih T vrijednosti).

Zapravo, zahtjev jedinstvenosti ulaznih podataka funkcije na određenoj vrijednosti K bit će zadovoljen u slučaju korištenja PRC-a (generator pseudoslučajnog koda), ali tada je potreban početni inicijalizacijski vektor za PRC na dijelu pošiljatelja i primatelja poruka.

Dakle, šifrirani tekst u algoritmu CTR moda dobiva se zbrajanjem modula 2 sljedećeg bloka otvorenog teksta s izlaznim podacima funkcije. Sljedeća vrijednost Tj brojača bloka poruka dostavlja se na ulaz funkcije. Dešifriranje se također događa zbrajanjem modulo 2 sljedećeg bloka šifriranog teksta i rezultata transformacije pomoću funkcije sljedeće vrijednosti brojača Tj. Operacije šifriranja i dekriptiranja u CTR modu mogu se izvoditi paralelno i neovisno za sve blokove. Osim toga, ovaj način rada također nema problem posljednjeg bloka. CTR enkripcija:

dešifriranje:

CTR način ima sve prednosti ECB načina (paralelno izvođenje, jednostavnost i mogućnost izravnog šifriranja bilo kojeg bloka poruke zasebno i neovisno o drugim blokovima). No osim toga, način CTR ispravlja sve nedostatke enkripcije u načinu elektroničkog šifrarnika: identični blokovi otvorenog teksta više se neće pretvarati u identične blokove šifriranog teksta; Nema potrebe dopunjavati zadnji blok šifriranog teksta. Osim toga, u ovom načinu rada (kao i u bilo kojem načinu toka) koristi se samo funkcija šifriranja, a za neke blok šifre (na primjer, za AES - novi američki standard blok šifre), to daje određeni dobitak performansi. Zbog toga je ovaj način često najučinkovitiji.

1.4.5 Prednosti ulančavanja blokova šifre u odnosu na analogne

Dakle, možemo zaključiti da CBC način simetrične enkripcije ima jasnu prednost među gore navedenim, naime: u načinu dešifriranja, kada je cijeli šifrirani tekst već primljen, funkcije se mogu izvršavati paralelno i neovisno za sve blokove poruka. Ovo daje značajan vremenski dobitak.

U ovom načinu rada vrijedi se usredotočiti na još jedan detalj. Činjenica je da posljednji blok šifriranog teksta, koji se dobiva na izlazu algoritma CBC moda, ovisi i o ključu blokovne šifre i vektoru inicijalizacije, i (što je u ovom slučaju još važnije) o svim bitovima otvorenog teksta poruka. To znači da se ovaj zadnji blok šifriranog teksta može koristiti kao neka vrsta identifikatora poruke. Takav identifikator vanjskom promatraču ne daje nikakvu informaciju o sadržaju cijele poruke u cjelini, au isto vrijeme je (poruku) gotovo nedvojbeno identificira. Štoviše, jednako je teško krivotvoriti ovaj identifikator bez poznavanja ključa za šifriranje K kao što je i ispravno pogoditi sam ključ.

2. DIZAJNSKI DIO

1 Funkcionalno modeliranje

Na temelju zahtjeva za softver definirane su sljedeće funkcije:

· Registracija korisnika s poljima:

o prijaviti se,

o lozinka,

o PUNO IME,

o Datum rođenja,

· Autorizacija korisnika s poljima:

o prijaviti se,

o lozinka;

· Enkripcija izvornog teksta;

· Dešifriranje šifriranog teksta;

· Prikaz završnih faza enkripcije i dešifriranja korisniku nakon uspješne autorizacije.

2 Algoritamski dizajn

Generalizirani IDEA algoritam šifriranja prikazan je dolje (Slika 5).

Nakon pokretanja programa, korisnik mora unijeti par: prijava + lozinka na obrazac za autorizaciju ili ispuniti obrazac za registraciju. Nakon unosa znakova na obrascima, funkcija enkripcije će početi raditi kada kliknete na gumb “Prijava” odnosno “Registracija”.

64-bitni blok podataka čita se iz datoteke i dijeli na četiri 16-bitna podbloka. Ova četiri podbloka postaju ulaz u prvu petlju algoritma. Na slici su ti podblokovi označeni D 1, D 2, D 3, D 4Svaka runda koristi vlastite potključeve prema tablici potključeva (slika 6). Ranije opisane operacije i prikazane u dijagramu algoritma izvode se na 16-bitnim podblokovima i podblokovima otvorenog teksta.

Ovo je bila vrlo teška lekcija, jer ti kriptosustavi čuvaju državne tajne. Možete li mi reći što je sofisticiranije? Ali evo, molim te! Zapravo, ne biste se trebali bojati, ovaj put nećemo zaroniti toliko duboko u matematiku i razmotriti načine šifriranja - već ste naučili njihova načela (ili ne). Prođimo kroz najbolje strane šifre i vidimo kako se koriste u praksi.

3DES algoritam šifriranja

Dakle, prvi u nizu stranih šifri, razmotrimo 3DES, odnosno njegov najbliži rođak DES (Data Encryption Standard), koji je, iako se više ne koristi kao takav, predak 3DES-a.

DES je razvio tim matematičara u IBM-ovom istraživačkom laboratoriju, među kojima je bio i već poznati Feistel. Prva verzija šifre nazvana je "Lucifer", ali je kasnije modificirana i na kraju prihvaćena kao službeni algoritam šifriranja podataka (DEA). Ostao je svjetski standard više od dvadeset godina prije nego što ga je zamijenio Triple DES.

Pogledajmo kako radi DES algoritam šifriranja. Da biste to učinili, morate zapamtiti rad Feistelove mreže. DES je 16-kružna Feistelova mreža sa simetričnim ključevima za šifriranje. Duljina tekstualnog bloka je 64 bita, duljina okruglog ključa je 48 bita. Dakle, prođimo kroz glavne korake DES enkripcije, izostavljajući oštru matematičku stranu:

  1. Tekst je, kao i kod svake druge enkripcije, podijeljen u blokove od 64 bita.
  2. Iz 56-bitnog ključa generira se 16 48-bitnih okruglih ključeva.
  3. Svaki blok prolazi permutaciju, to jest, svi bitovi ulaznog bloka se miješaju prema određenoj tablici.
  4. Blok se dijeli na polovice i ulazi u poznatu Feistelovu mrežu, gdje se pomiče 16 krugova.
  5. Spojimo polovice.
  6. I još jedna promjena.

Početne i krajnje permutacije nemaju nikakvo značenje za kriptografiju u DES-u. Obje permutacije su bez ključeva, a tablice za njih su predefinirane. Razlog zašto su uključeni u DES je nejasan, a dizajneri DES-a nisu rekli ništa o tome. Može se pretpostaviti da je algoritam planiran za implementaciju u hardveru (na čipovima) i da su ove dvije složene permutacije trebale otežati simulaciju mehanizma šifriranja u softveru.

Ovdje je zapravo sve što trebate znati o radu DES algoritma. Ako dublje proučimo kako funkcionira funkcija definirana u Feistelovoj mreži, onda je sve u vezi s njom u redu. Izvodi i permutaciju i zamjenu (S-kutije, kao što se možda sjećate iz prethodnog članka), i zbrajanje okruglim ključem.

No, vratimo se trostrukom DES-u, odnosno Triple DES-u. Postao je neophodan jer je 56-bitni DES ključ bio ranjiv na brutalnu silu, a s porastom računalne snage taj je problem postajao sve akutniji. Korištenjem tehnologije koja je danas dostupna, milijun ključeva može se verificirati u sekundi. To znači da bi bilo potrebno više od dvije tisuće godina da se brutalno dekriptira DES pomoću računala sa samo jednim procesorom.

Ali ako uzmemo računalo s milijun procesorskih jezgri koje će paralelno obrađivati ​​ključeve, možemo provjeriti cijeli set ključeva za oko 20 sati. Kada je predstavljen DES, cijena takvog računala iznosila je nekoliko milijuna dolara, ali je brzo pala. Posebno računalo stvoreno je 1998. godine - i pronašlo je ključ za 112 sati.

Kako bi riješili problem brzog pronalaženja ključa, pametni strani kriptografi predložili su korištenje dva ključa i dva puta korištenje DES-a. Međutim, dvostruki DES bio je ranjiv na napad susreta u sredini. Da bi izveo ovaj napad, napadač mora imati otvoreni tekst i odgovarajući šifrirani tekst.

Napadač šifrira otvoreni tekst sa svim mogućim ključevima, zapisujući rezultate u tablicu 1. Zatim dekriptira šifrirani tekst sa svim mogućim ključevima i zapisuje rezultat u tablicu 2. Napadač zatim traži podudaranja u tablicama 1 i 2. Ova vrsta napada uključuje brute force šifriranje ključeva i na strani šifriranog i na strani otvorenog teksta i zahtijeva približno četiri puta više računanja od običnog DES ključa brute force i dosta memorije za pohranjivanje međurezultata.

Međutim, u praksi je napad izvediv, čineći Double DES neupotrebljivim.

S Triple DES-om stvari stoje potpuno drugačije. Korištenje tri ključa i primjena algoritama u redoslijedu prikazanom na dijagramu produžili su životni vijek DES-a za još nekoliko godina.

DES algoritam šifriranja

Što je tako dobro u DES-u? Ovaj algoritam šifriranja podvrgnut je opsežnoj analizi. DES je imao dva vrlo važna svojstva blok šifara - lavinu i potpunost. Vrijeme je da proširite svoj kriptografski vokabular!

Gdje se koristi DES? Da, gotovo posvuda, njegove implementacije prisutne su u većini softverskih biblioteka. Međutim, tko zna koliko je danas sigurno koristiti DES? Iako je IBM tvrdio da je algoritam rezultat 17 godina intenzivne kriptoanalize, neki su se ljudi bojali da je NSA umetnula rupu u algoritam koja je agenciji omogućila lako dešifriranje presretnutih poruka.

Odbor za obavještajne poslove američkog Senata pažljivo je proučio ovo pitanje i, naravno, nije ništa pronašao, optužbe protiv NSA-e su odbačene, a rezultati istraživanja su ipak klasificirani. Jednom riječju, glasine i nagađanja već dugo kruže Amerikom o tome treba li DES-u vjerovati ili ne. Ali, kako vjerujem, ovdje se situacija opisuje izrekom “Pametan neće reći, budala neće razumjeti”. Naposljetku, NSA je priznala da ne može povjeriti IBM-u tako važnu misiju i napravila je nekoliko prilagodbi, poput specificiranja S-kutija.

Tijekom svog postojanja DES je bio meta raznih tehnika kriptoanalize. Kriptoanalitičari nikad nisu prestali testirati strojeve za razbijanje DES-a kako bi vidjeli koliko je vremena potrebno za dešifriranje teksta. S tim u vezi, pojavilo se bezbroj različitih modifikacija ovog algoritma, a 3DES je daleko od najsofisticiranije među njima.

AES algoritam šifriranja

Pobjednik AES natjecanja, objavljenog krajem 1997., Rijndaelov algoritam razvila su dva belgijska kriptografa, Joan Daemen i Vincent Rijmen.

Kako bi se osigurala kriptografska snaga, Rijndael algoritam uključuje ponovljene krugove, od kojih se svaki sastoji od zamjena, permutacija i dodavanja ključa. Međutim, za razliku od DES-a, šifriranje i dešifriranje u ovom algoritmu su različite procedure.

AES radi na 128-bitnim blokovima podataka i ključevima od 128, 192 i 256 bita. Konceptualno se razlikuje od DES-a jer se ne temelji na Feistelovoj mreži, već je supstitucijsko-permutacijska mreža (SP mreža), koju ćemo sada detaljnije razmotriti.

U AES-u bajtovi otvorenog teksta nisu podijeljeni u dva dijela, kao u Feistelovoj mreži, već su zapisani u obliku matrice (dvodimenzionalnog niza) bajtova raspoređenih na ovaj način:

AES posluje sa sljedećim operacijama:
1. ExpandKey - izračun kružnih ključeva za sve runde.
2. SubBytes - zamjena bitova prema tablici zamjene (S-box).
3. ShiftRows - ciklički pomiče retke u obrascu za različite količine. 4. MixColumns - miješanje podataka unutar svakog stupca obrasca.
5. AddRoundKey - dodavanje okruglog ključa u obrazac.

Danas je AES službeni standard američke vlade za simetrično šifriranje i naširoko se koristi. Zapravo, ovo je trenutno jedna od najuniverzalnijih stranih šifri. Što se tiče sigurnosti AES-a, on, kao i većina šifara, ima neke ranjivosti, a kriptoanalitičari ih i dalje traže. No, unatoč tome, AES je najživlji od svih živih bića.

IDEA algoritam šifriranja

IDEA (International Data Encryption Algorithm) algoritam je blokovne simetrične enkripcije koji je predložen da zamijeni standard DES. Početna verzija algoritma IDEA pojavila se 1990. Algoritam je patentiran u SAD-u i većini europskih zemalja. Ascom Tech je vlasnik patenta, ali se algoritam može besplatno koristiti u nekomercijalne svrhe.

Veličina bloka u ovoj šifri je 64 bita, duljina ključa je 128. Vrijedno je odmah reći da je IDEA algoritam najmlađi od navedenih i njegova je matematika vrlo složena. Trenutak kriptografskog rječnika.

U IDEA-i se ta svojstva postižu korištenjem neovisnih matematičkih operacija. Za razliku od DES-a, čija je glavna operacija XOR (zbrajanje po modulu 2), IDEA pruža:

XOR;
zbrajanje modula 2¹6;
množenje po modulu (2¹6; + 1).

Kombinacija ove tri operacije daje složenu transformaciju ulaznih podataka, čineći IDEA kriptoanalizu težom od DES-a.

Šifra IDEA pokreće osam rundi, au svakoj rundi blok otvorenog teksta transformira se matematičkim operacijama. Oni koji vole "doći do korijena" mogu pogledati dijagram jedne runde IDEA šifre koji je dan u nastavku. Blok teksta, dug 64 bita, podijeljen je na podblokove od 16 bita. Svaki takav primljeni blok ulazi u rundu i prolazi složenu transformaciju.

Jedinstvena IDEJA

"Mislim da je ovo najbolji i najsnažniji blok algoritam objavljen do sada", kaže Bruce Schneier iz algoritma IDEA.

Doista, IDEA je vrlo robusna zbog brojnih matematičkih operacija. Osim toga, prednosti ovog algoritma uključuju veliku brzinu enkripcije - gotovo dvostruko veću od one kod DES algoritma (ovisno o platformi na kojoj se enkripcija provodi). Međutim, brzina dešifriranja je smanjena zbog teških računskih operacija, obrnuto modulu množenja (216 + 1).

Naravno, mudri kriptografi pokušali su izvršiti sve vrste napada na ovu složenu šifru. Uspjeh je postigao Paul Hawker koji je proveo napad pod pretpostavkom da kriptoanalitičar nema izravan pristup željenom ključu (primjerice, ključ je ugrađen u neku vrstu hardverskog kriptora ili pametne kartice), ali može mijenjati različite fragmente ključ na određeni način.

IDEA algoritam nije postao međunarodni standard šifriranja, kako su njegovi autori željeli. Međutim, može se smatrati jednim od najčešćih algoritama šifriranja na svijetu. IDEA se koristi u raznim aplikacijama, uključujući dobro poznati i široko korišteni protokol za sigurnost podataka PGP.

RIBA BRUCE SCHNEIER

Bruce Schneier danas je vodeća osoba u kriptografiji. Proputovao je pola svijeta držeći predavanja i seminare, a njegove se knjige toplo preporučuju onima koji žele upoznati kriptografiju. I naravno, tako poznata osoba ne bi željela biti poznata kao postolar bez čizama - on sam je dio grupe kripto programera.

Ukratko ćemo se osvrnuti na neke od njegovih najpoznatijih kreacija - algoritme za šifriranje Blowfish, Twofish i Threefish.

Blowfish algoritam šifriranja

Blowfish je prvi rođen. Kako sam Schneier kaže, ovaj algoritam je dizajniran za implementaciju na velikim mikroprocesorima. Stoga je kompaktan (samo 5 KB memorije) i jednostavan (koristi jednostavne matematičke operacije - zbrajanje, XOR i uzorkovanje iz tablice). Algoritam također omogućuje prilagodbu duljine ključa (do 448 bita).

Na 32-bitnim procesorima Blowfish radi enkripciju puno brže od DES-a, ali na pametnim pločama zbog svoje jednostavnosti nije osobito primjenjiv. Blowfish se temelji na Feistelovoj mreži od 16 rundi, koju biste već trebali dobro razumjeti.

Algoritam je implementiran u neke softverske proizvode (FolderBolt, Nautilus, PGPfone), ali sada gubi na važnosti.

Twofish algoritam šifriranja

Nakon prve ribe pojavile su se još dvije - novi Twofish algoritam razvili su Schneier i kompanija za sudjelovanje u AES natjecanju. Schneierov rad dospio je među pet najboljih finalista, ali nije postao pobjednik, iako je za to imao sve moguće prednosti. Ovaj:

128-bitna simetrična blok šifra;
duljine ključeva: 128, 192 i 256 bita;
učinkovita softverska (prvenstveno na 32-bitnim procesorima) i hardverska implementacija;
fleksibilnost (mogućnost korištenja duljeg ključa, primjenjivost za enkripciju toka, hash funkcije i tako dalje); Jednostavnost algoritma olakšava analizu.

Međutim, u usporedbi s Rijndaelom, koji je preuzeo pijedestal AES-a, Twofish je bilo teže analizirati i imao je sporiju brzinu šifriranja. Ovaj algoritam razvijen je na temelju Blowfisha s nekim dodacima i također je Feistelova mreža.

Na natjecanju je šifra podvrgnuta različitim vrstama kriptoanalize. U odnosu na ostale finaliste AES-ovog natječaja pokazao se najupornijim. Međutim, njegova neobična struktura i relativna složenost izazvali su sumnje u kvalitetu ove snage. Trenutno se Twofish koristi još rjeđe od svog prethodnika.

Threefish algoritam šifriranja

“Treći put je starac bacio mrežu u more...” a deset godina kasnije nastala je šifra Threefish. Ovaj put Schneier je odlučio nadmašiti AES i uzeo je u obzir sve nedostatke dosadašnjeg iskustva. Kriptograf nije uzeo Feistelovu mrežu kao osnovu, već je implementirao šifru temeljenu na supstitucijsko-permutacijskoj mreži (SP mreža), kao u AES-u. Takva se mreža temelji na kombinaciji operacija isključivog ILI, zbrajanja i cikličkog pomaka. U pojednostavljenom obliku sve izgleda ovako:

Zbog jednostavnih operacija, Threefish je značajno brži od AES-a. Osim toga, prema autorima, algoritam ima višu razinu sigurnosti od AES-a. Postoji napad na 25 od 72 runde Threefisha, dok je za AES napad na 6 od 10. Tako je Bruce Schneier ostvario svoju pobjedu, iako kasno.

Šifra je poslužila kao temelj za izradu Skein hash funkcije koja je sudjelovala u natjecanju za poziciju SHA-3. Sam Threefish naširoko se koristi i implementira u knjižnice za mnoge programske jezike.

ZAKLJUČCI

Zaključno, vrijedi reći da su svi zapadni kriptografi, naravno, sjajni, razvili su kolica i mala kolica raznih algoritama šifriranja. Neki su izdržljiviji, neki su brži. Ali za sada će ih svi uspoređivati ​​s DES-om i AES-om jer su klasici.

U sljedećem članku ćemo se upoznati s elektroničkim potpisima, vrlo cool i važnim sredstvom kriptografije.

Linkovi:

Ovo je prva lekcija u seriji "Zaronite u kripto". Sve lekcije u seriji kronološkim redom:

  • Osnove, povijesne šifre, kako šifre pomaka, supstitucija, Richard Sorge, Vernam šifra i strojevi za šifriranje rade (i analiziraju se) (jesi li ovdje)
  • . 2. dio.Što je to, kako se vrši raspodjela ključeva i kako odabrati jak ključ
  • Što je Feistelova mreža, koje se domaće blok šifre koriste u modernim protokolima - GOST 28147-89, “Grassnechik”
  • Suvremene strane šifre. dio 4.Što je to, kako rade i koja je razlika između 3DES, AES, Blowfish, IDEA, Threefish od Brucea Schneidera
  • Elektronički potpis. Vrste elektroničkih potpisa, kako funkcioniraju i kako ih koristiti
  • Kvantna kriptografija. Što je to, gdje se koristi i kako pomaže u distribuciji tajnih ključeva, generiranju slučajnih brojeva i elektroničkih potpisa

Zadnji put ažurirano 12. srpnja 2016.

Izvorna verzija algoritma IDEA pojavila se 1990. godine. Programeri algoritma, Xuejia Lai i James Massey sa švicarskog instituta ETH Zurich, dali su mu naziv PES (Proposed Encryption Standard) jer je ovaj algoritam predložen da zamijeni DES standard. Vrijedno je napomenuti da su ETH Zurich i profesor James Massey također poznati po algoritmima koje su razvili u obiteljima SAFER/SAFER+/SAFER++.

Godinu dana kasnije, algoritam je modificiran kako bi se povećala kriptografska otpornost na diferencijalnu kriptoanalizu. Nova verzija nazvana je IPES (Improved PES - poboljšani PES), a godinu dana kasnije algoritam je promijenio ime u IDEA (International Data Encryption Algorithm - međunarodni algoritam za šifriranje podataka).

Glavne karakteristike i struktura

Algoritam IDEA šifrira podatke u blokovima od 64 bita, a ključ za enkripciju algoritma je veličine 128 bita. Blok šifriranih podataka podijeljen je u četiri 16-bitna podbloka A, B, C i D (slika 1), nad kojima se provodi osam rundi transformacija:

A = A [x] Kr1 B = B + Kr2 C = C + Kr3 D = D [x] Kr4 T1 = A [+] C T2 = B [+] D T1 = T1 [x] Kr5 T2 = T1 + T2 T2 = T2 [x] Kr6 T1 = T1 + T2 A = A [+] T2 B = B [+] T1 C = C [+] T2 D = D [+] T1,

gdje Krn - podključ n okruglog r, "+" - operacija zbrajanja 16-bitnih operanda modulo 2 (na 16. potenciju), [+] - bitna logička operacija "isključivo ili" (XOR), [x] - množenje 16 -bitni operandi modulo (2(na 16. potenciju) + 1), a vrijednost 2(na 16. potenciju) se uzima kao vrijednost podbloka koji se sastoji samo od nula.

Nakon dovršetka gore opisanih koraka, dva unutarnja podbloka (B i C) se mijenjaju - u svim rundama osim u zadnjoj. Nakon što se završi osam rundi, izvode se dodatne transformacije (ponekad se nazivaju deveta runda algoritma):

A" = A [x] K91 B" = B + K92 C" = C + K93 D" = D [x] K94

Šifra je rezultat ulančavanja dobivenih vrijednosti A", B", C" i D".

Operacija dešifriranja je slična enkripciji, s tom razlikom što se tijekom dešifriranja modificirani podključevi koriste drugačijim redoslijedom:

K"r1 = (K(10-r)1)-1 K"r2 = -K(10-r)3 K"r3 = -K(10-r)2 K"r4 = (K(10-r) 4)-1 K"r5 = K(9-r)5 K"r6 = K(9-r)6,

s iznimkom rundi 1 i 9, u kojima su potključevi K"r2 i K"r3 zamijenjeni. Ovdje je K"rn n potključ kruga dešifriranja r, -x i x-1 su inverzne vrijednosti od x u odnosu na gornje operacije zbrajanja po modulu 2 (na 16. potenciju) i množenja po modulu (2 (na 16. potenciju) + 1) u ovom slučaju, 0 (na -1. potenciju) = 0.

Postupak proširenja ključa

Svrha postupka proširenja ključa je generiranje 52 16-bitna potključa koji se koriste u rundama šifriranja i dodatnim transformacijama (tj. ukupno 832 bita ključnih informacija). Ovaj postupak je vrlo jednostavan, a izvodi se na sljedeći način:

  1. 128-bitni ključ za šifriranje podijeljen je u osam 16-bitnih potključeva; oni postaju prvih osam podključeva algoritma (K11, K12, K13, K14, K15, K16, K21, K22).
  2. Ključ za šifriranje je rotiran ulijevo za 25 bita.
  3. Rezultat je podijeljen u sljedećih osam podključeva.
  4. Ključ za šifriranje se ciklički pomiče ulijevo za 25 bita, i tako dalje dok se ne generira potreban broj podključeva.

Kriptografska snaga algoritma

Već sljedeće godine nakon pojave PES algoritma, njegovi autori su objavili rad u kojem je dokazana slabost algoritma u odnosu na diferencijalnu kriptoanalizu (vidi npr. članak, "BYTE/Rusija" br. 11"2004. ): za određivanje ključa šifriranja dovoljno je izvršiti 2 (na 64. potenciju) operacije šifriranja, dok bi iscrpno nabrajanje vrijednosti 128-bitnog ključa zahtijevalo izvođenje 2 (na 128. potenciju) operacije.

Algoritam IDEA nastao je kao rezultat relativno malih modifikacija algoritma PES (slika 2). Ako usporedite sheme IDEA i PES algoritama, ne možete vidjeti mnogo razlika:

  • operacija množenja podbloka B s drugim podključem runde zamijenjena je operacijom zbrajanja,
  • operacija zbrajanja podbloka D s četvrtim potključem runde zamijenjena je operacijom množenja,
  • Drugi način je prebacivanje podblokova na kraju runde.

Kao što je jedan od najpoznatijih svjetskih kriptologa, Bruce Schneier, primijetio u svojoj knjizi Primijenjena kriptografija, "...nevjerojatno je kako tako male promjene mogu napraviti tako velike razlike." Algoritam IDEA bio je praktički imun na diferencijalnu kriptoanalizu, au istoj knjizi (objavljenoj 1996.), Bruce Schneier je rekao o njemu: "Mislim da je to najbolji i najpouzdaniji blok algoritam objavljen do danas."

Međutim, iste 1996. godine, poznati kriptoanalitičar Paul Kocher izumio je napad koji je prilično teško implementirati koji omogućuje, putem ponovljenih visoko preciznih mjerenja vremena izvršenja, šifriranje 2 (na 20. potenciju) nasumično odabranih otvorenih tekstova na ključevima povezanim određeni odnos sa željenim ključem, te naknadnu analizu rezultata za izračun potrebnog ključa za šifriranje. Ovaj napad (kao i drugi napadi na povezane ključeve) pretpostavlja da kriptoanalitičar nema izravan pristup željenom ključu (na primjer, ključ je ugrađen u neku vrstu hardverskog kriptora ili pametne kartice), ali može promijeniti različite fragmente ključa na određeni način.

I ranije, 1993., nekoliko kriptologa iz Belgije otkrilo je nekoliko klasa slabih ključeva u algoritmu IDEA (ukupno 2 (na 23. potenciju) + 2 (na 35. potenciju) + 2 (na 51. potenciju) ključa različitih stupnjeva slabost), od kojih se neki, primjerice, mogu izračunati kriptoanalitičkim napadom s odabranim otvorenim tekstom. Međutim, sami autori ovog napada predložili su “protuotrov” - slabi ključevi se eliminiraju primjenom operacije XOR na posebnu heksadecimalnu konstantu 0DAE na svakom podključu prije njegove uporabe.

Dakle, unatoč otkrivenim nedostacima, IDEA algoritam se smatra algoritmom visoke kriptografske snage. Neosporna prednost ovog algoritma je velika brzina enkripcije, ne manje od dvostruko veće od DES algoritma (ovisno o platformi na kojoj se enkripcija izvodi). A mogućnost izvođenja operacije proširenja ključa u hodu (to jest, paralelno s izvođenjem rundi šifriranja) vrlo je dobrodošla u modernijim algoritmima šifriranja. Međutim, vrijedi reći da je brzina dešifriranja donekle smanjena zbog prisutnosti resursno intenzivnih operacija za izračunavanje multiplikativnih recipročnih vrijednosti modulo (2 (na 16. potenciju) + 1).

***

IDEA algoritam nije postao međunarodni standard šifriranja, kako su njegovi autori željeli. Međutim, može se smatrati jednim od najčešćih algoritama šifriranja na svijetu. IDEA se i danas koristi u mnogim različitim aplikacijama, uključujući nadaleko poznati i korišteni program za zaštitu podataka PGP.

simetrični algoritamšifriranje koje su razvili Xuejia Lai i James Massey sa Švicarskog federalnog instituta za tehnologiju. Izvorna verzija objavljena je 1990. Revidirana verzija algoritma, poboljšana zaštitom od diferencijalnih kriptografskih napada, predstavljena je 1991. i detaljno opisana 1992.

IDEA je jedan od nekoliko simetričnih kriptografskih algoritama koji su izvorno trebali zamijeniti DES.

Načela dizajna

IDEA je blok algoritam koji koristi 128-bitni ključ za šifriranje podaci u blokovima od 64 bita.

Cilj razvoja IDEA-e bio je stvoriti relativno jak kriptografski algoritam s prilično jednostavnom implementacijom.

Kriptografska snaga

Sljedeće karakteristike IDEA karakteriziraju njegovu kriptografsku snagu:

  1. Duljina bloka: Duljina bloka mora biti dovoljna da sakrije sve statističke karakteristike izvorne poruke. S druge strane, složenost implementacije kriptografske funkcije raste eksponencijalno s veličinom bloka. Korištenje veličine bloka od 64 bita u 90-ima značilo je puno snage. Štoviše, korištenje CBC načina enkripcije ukazuje na daljnje jačanje ovog aspekta algoritma.
  2. Duljina ključa: Duljina ključa mora biti dovoljno dugačka da spriječi jednostavno brutalno forsiranje ključa. Uz duljinu ključa od 128 bita, IDEA se smatra prilično sigurnom.
  3. Zbunjenost: Šifra mora ovisiti o ključu na složen i zamršen način.
  4. Difuzija: Svaki bit otvorenog teksta mora utjecati na svaki bit šifriranog teksta. Širenje jednog bita otvorenog teksta preko mnogo šifriranih bitova skriva statističku strukturu otvorenog teksta. Mora biti teško utvrditi kako statističke karakteristike šifriranog teksta ovise o statističkim karakteristikama otvorenog teksta. IDEJA s ove točke gledišta je vrlo učinkovit algoritam.

U IDEA-i posljednje dvije točke postižu se pomoću tri operacije. To ga razlikuje od DES-a, gdje je sve izgrađeno oko upotrebe operacije XOR i male nelinearne S-kutije.

Svaka se operacija izvodi na dva 16-bitna ulaza i proizvodi jedan 16-bitni izlaz. Ove operacije su:

Ove tri operacije su nekompatibilne u smislu da:

Korištenje kombinacije ove tri operacije pruža složenu transformaciju ulaza, čineći kriptoanalizu težom nego s algoritmom kao što je DES, koji se temelji isključivo na funkciji XOR.

Enkripcija

Pogledajmo opću shemu šifriranja IDEA. Kao i kod svakog algoritma za šifriranje, postoje dva ulaza: blok otvorenog teksta i ključ. U ovom slučaju, nešifrirani blok je dug 64 bita, ključ je dug 128 bita.

Sastoji se od osam krugova nakon kojih slijedi konačna transformacija. Algoritam dijeli blok na četiri 16-bitna podbloka. Svaka runda uzima četiri 16-bitna podbloka kao ulaz i proizvodi četiri 16-bitna izlazna podbloka. Konačna transformacija također uzima četiri 16-bitna podbloka kao ulaz i proizvodi četiri 16-bitna podbloka. Svaki krug koristi šest 16-bitnih ključeva, konačna transformacija koristi četiri podključa, tj. Ukupno, algoritam koristi 52 podključa.


Riža. 3.1.
Redoslijed transformacija jedne runde

Razmotrimo redoslijed transformacija zasebnog kruga.

Jedan od glavnih elemenata algoritma koji osigurava difuziju je struktura nazvana MA (množenje/zbrajanje):


Riža. 3.2.

Ulaz u ovu strukturu su dvije 16-bitne vrijednosti i dva 16-bitna potključa, a izlaz su dvije 16-bitne vrijednosti. Iscrpno računalno testiranje pokazuje da svaki bit izlaza ove strukture ovisi o svakom bitu ulaza bloka otvorenog teksta i svakom bitu njegovih podključeva. Ova struktura se ponavlja osam puta u algoritmu, osiguravajući vrlo učinkovitu difuziju.

Runda počinje transformacijom koja kombinira četiri ulazna podbloka s četiri podbloka koristeći operacije zbrajanja i množenja. Četiri izlazna bloka ove transformacije kombiniraju se pomoću operacije XOR za formiranje dva 16-bitna bloka, koji su ulazi MA strukture. Osim toga, MA struktura ima još dva konektora na ulazu i stvara dva 16-bitna izlaza.


Riža. 3.3.

Konačno, četiri izlazna podbloka prve transformacije kombiniraju se s dva izlazna podbloka MA strukture korištenjem XOR za stvaranje četiri izlazna podbloka dane iteracije. Imajte na umu da su dva izlaza koja su djelomično stvorena drugim i trećim ulazom (X 2 i X 3 ) zamijenjena kako bi se stvorio drugi i treći izlaz (W 12 i W 13 ). Ovo povećava miješanje bitova i čini algoritam otpornijim na diferencijalna kriptoanaliza.

Razmotrimo devetu rundu algoritma, označenu kao konačna transformacija. Ovo je ista struktura kao što je gore opisano. Jedina je razlika što su drugi i treći ulaz zamijenjeni. Ovo se radi kako bi se osiguralo da dešifriranje ima istu strukturu kao i šifriranje. Imajte na umu da deveta faza zahtijeva samo četiri ulaza