IDEA-tietojen salausalgoritmi. IDEA-salausalgoritmi

Lähetä hyvä työsi tietokanta on yksinkertainen. Käytä alla olevaa lomaketta

Hyvää työtä sivustolle">

Opiskelijat, jatko-opiskelijat, nuoret tutkijat, jotka käyttävät tietopohjaa opinnoissaan ja työssään, ovat sinulle erittäin kiitollisia.

Isännöi osoitteessa http://www.allbest.ru/

JOHDANTO

1. ANALYYTTINEN OSA

1.1 IDEA-algoritmi

1.2.1 DES-algoritmi

1.2.2 RC6-algoritmi

1.2.3 Algoritmi GOST 28147-89

1.2.4 IDEA:n edut analogeihin verrattuna

1.4.1 Sähköinen koodikirja - Sähköinen koodikirja

1.4.2 Salauspalaute

1.4.3 Lähtöpalaute

1.4.4 Laskuri - salaus laskurilla

1.4.5 Cipher Block Chainingin edut analogeihin verrattuna

2. SUUNNITTELUOSA

2.3 Ohjelmiston käyttöönotto

3. KOKEELLINEN

PÄÄTELMÄ

KIRJASTUS

JOHDANTO

Symmetrinen salausjärjestelmät (myös symmetrinen salaus, symmetriset salaukset) - salausmenetelmä, jossa salaukseen ja salauksen purkamiseen käytetään samaa koodia. kryptografinen avain. Ennen kaavion keksimistä a symmetrinen salaus Ainoa olemassa oleva tapa oli symmetrinen salaus. Molempien osapuolten on pidettävä algoritmiavain salassa. Osapuolet valitsevat algoritmin avaimen ennen viestienvaihdon aloittamista.

Tietojen salaus- ja salauksenpurkualgoritmeja käytetään laajasti tietokone teknologia järjestelmissä luottamuksellisten ja kaupallisia tietoja kolmansien osapuolten haitallisesta käytöstä. Pääperiaate niissä on ehto, että lähetin ja vastaanottaja tietävät etukäteen salausalgoritmin sekä viestin avaimen, jota ilman tieto on vain joukko merkkejä, joissa ei ole järkeä.

Klassinen esimerkki tällaisista algoritmeista ovat alla luetellut symmetriset salausalgoritmit: - yksinkertainen korvaus;

- yksi permutaatio avaimella;

- kaksoispermutaatio;

- permutaatio "Magic Square";

on yksinkertainen permutaatio.

Kaikkien alkuperäisen viestin tilastollisten säännönmukaisuuksien täydellinen menettäminen on tärkeä vaatimus symmetriselle salaukselle. Tätä varten salauksella on oltava "lumivyöryvaikutus", ts. pitäisi tapahtua vahva muutos salauslohko 1-bitin muutoksella syöttötiedoissa (ihannetapauksessa salauslohkon 1/2 bitin arvojen tulisi muuttua).

Tällä hetkellä symmetriset salaukset ovat:

· lohkosalaukset. Käsittele tietoa tietynpituisissa lohkoissa (yleensä 64, 128 bittiä) käyttämällä avainta lohkossa aikanaan, yleensä useilla sekoitus- ja vaihtosykleillä, joita kutsutaan kierroksiksi. Kierrosten toistumisen seurauksena on lumivyöryefekti - avoimen ja salatun datan lohkojen välisen bittivastaavuuden lisääntyvä menetys.

virtasalaukset, joissa salaus suoritetaan jokaiselle lähdetekstin bitille tai tavulle gamman avulla. Virtasalaus voidaan luoda helposti erityistilassa käynnistetyn lohkosalauksen (esimerkiksi GOST 28147-89 gammatilassa) perusteella.

Algoritmeja on monia symmetriset salaukset, jonka keskeiset parametrit ovat:

kestävyys;

Avaimen pituus

Kierrosten lukumäärä

Käsitellyn lohkon pituus;

laitteiston/ohjelmiston toteutuksen monimutkaisuus;

muuntamisen monimutkaisuus.

1. ANALYYTTINEN OSA

1.1 IDEA-algoritmi

IDEA (eng. International Data Encryption Algorithm, kansainvälinen algoritmi data encryption) on symmetrinen lohkodatan salausalgoritmi, jonka patentoi sveitsiläinen Ascom. Tämä on lohkosymmetrinen salausalgoritmi, jota ehdotettiin korvaamaan DES-standardi. alkuperäinen versio IDEA-algoritmi ilmestyi vuonna 1990. Algoritmin kehittäjät Xuejia Lai ja James Massey Sveitsin ETH Zurich Institutesta antoivat sille nimen PES (Proposed Encryption Standard).

Koska IDEA käyttää 128-bittistä avainta ja 64-bittistä lohkokokoa, tavallista tekstiä jaettu 64 bitin lohkoihin. Jos tällainen osio ei ole mahdollista, viimeinen lohko täytetään eri tavoilla tiettyä bittisarjaa. Vältämme tietovuotoja jokaisesta yksittäisestä lohkosta, käytämme erilaisia ​​tiloja salaus. Jokainen alkuperäinen salaamaton 64-bittinen lohko on jaettu neljään 16-bittiseen alilohkoon, koska kaikki salausprosessissa käytetyt algebralliset toiminnot suoritetaan 16-bittisille numeroille. IDEA käyttää samaa algoritmia salaukseen ja salauksen purkamiseen.

IDEA käyttää seuraavia matemaattisia operaatioita:

? bittikohtainen lisäys modulo 2 ("yksinomainen TAI"-toiminto);

? etumerkittömien kokonaislukujen lisääminen modulo 2 16 ;

? etumerkittömien kokonaislukujen kertominen modulo (2 16 + 1), jossa 16 nollan lohko käsitellään 2 16 ;

Merkittävä haitta on, että IDEA on patentoitu, koska tämä estää sen ilmaisen jakelun. IDEA ei tarjoa avaimen pituuden pidentämistä. Haittapuolena voidaan pitää myös sitä, että kaikkia krypta-analyysiin liittyviä teoksia ei ole julkaistu, eli on täysin mahdollista, että salaus on rikki tai rikotaan tulevaisuudessa.

IDEA-algoritmin rakenne on esitetty alla (kuva 1).

Riisi. 1. IDEA-salausalgoritmi

sähköisen koodikirjan tila (ECB - Electronic Code Book)

lohkoketjutustila (CBC - Cipher Block Chaining)

· tila palautetta salakirjoituksella (CFB -- Cipher Feed Back)

Lähtöpalautetila (OFB -- Output Feed Back).

Tässä tutkielma harkittu ohjelmiston toteutus IDEA-salausalgoritmi (Cipher Feed Back -tila).

1.2 IDEA-algoritmin analogien vertailu

1.2.1 Algoritmi DES

DES (Data Encryption Standard) – Symmetrinen salausalgoritmi, joka käyttää samaa avainta sekä salaamaan että purkamaan tietoja. DES:ssä on 64-bittiset lohkot ja 16-jaksoinen Feistel-verkkorakenne; se käyttää 56-bittistä avainta salaukseen.

Algoritmi käyttää yhdistelmää epälineaarisia (S-laatikot) ja lineaarisia (E, IP, IP-1 permutaatioita) muunnoksia.

Koska DES toimii 64-bittisissä lohkoissa ja käyttää 56-bittistä avainta, tämä avaimen pituus vastaa 256 yhdistelmää, jotka ovat viime aikoihin asti tarjonneet riittävän turvallisuustason (8 parillista bittiä täydestä 64-bittisestä avaimesta ei käytetä, pariteettibitit ovat pienimmät merkitseviä bittejä avaintavuja). 64 bitin tulodatalohko muunnetaan samanpituiseksi lähtölohkoksi.

56-bittisen salausavaimen käytön ansiosta DES-algoritmi voidaan rikkoa täydellisellä luettelolla millä tahansa nykyaikaisella tietokonejärjestelmällä hyvin reaaliajassa - useissa päivissä.

DES symmetrinen kryptosysteemi, joka määritellään 16 kierroksen Feistel-salaukseksi, oli alun perin tarkoitettu laitteistokäyttöön. Kun DES:ää käytetään tiedon lähettämiseen, lähettäjän ja vastaanottajan on tiedettävä salainen avain viestin salaamiseksi ja salauksen purkamiseksi tai viestin autentikointikoodin (MAC) luomiseksi ja tarkistamiseksi.

DES-algoritmin salausprosessi koostuu 64-bittisen lohkon alustavasta bitinvaihdosta, kuudestatoista salauskierroksesta ja lopuksi käänteisestä bitinvaihdosta (kuvio 2).

Kuva 2. DES-salausalgoritmi

1.2.2 RC6-algoritmi

Algoritmi RC6 on symmetrinen lohkosalausalgoritmi, joka on johdettu RC5-algoritmista.

RC6-salauksen AES-versio tukee 128-bittisiä lohkoja ja 128-, 192- ja 256-bittisiä avaimia, mutta itse algoritmi voidaan konfiguroida tukemaan laajempaa aluetta sekä lohkon että avaimen pituuksia (0 - 2040 bittiä) .

On AES-finalisti ja käyttää melkein kaikkea olemassa olevia teknologioita käytetään kryptoalgoritmeissa, mutta yksi primitiivisistä operaatioista on kertolasku, joka on hidas joillakin laitteilla ja vaikeuttaa salauksen toteuttamista useilla laitteistoalustoilla ja mikä osoittautui yllätykseksi tekijöille, järjestelmissä. kanssa Intelin arkkitehtuuri IA-64 on myös melko huonosti toteutettu. SISÄÄN Tämä tapaus algoritmi menettää yhden avainedut -- suuri nopeus suorituskyky, joka oli aihetta kritiikkiin ja yksi esteistä valitulle uudeksi standardiksi.

Riisi. 3. RC6-salausalgoritmi

RC6-algoritmin salausrakenne on esitetty kuvassa 3. Algoritmin lyhyt kuvaus: algoritmi käyttää 20 muunnoskierrosta, joita ennen suoritetaan osittainen syötteen valkaisu:

o B = B + K 0 mod 2 32

o D = D + K 1 mod 2 32 ,

jossa A, B, C, D ovat käsiteltyjen 32-bittisten alilohkojen nykyiset arvot ja K 0 ...K 43 - laajennetut avainfragmentit.

Samoin suoritetaan osittainen ulostulovalkaisu:

o A = A + K 42 mod 2 32

o C = C + K 43 mod 2 32 .

Algoritmin jokaisella kierroksella suoritetaan seuraavat toiminnot:

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

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

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

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

missä t 1 ja t 2 ovat väliaikaisia ​​muuttujia, kiertobittien lukumäärä muuttuvaa bittimäärää kohden määräytyy parametrin 5 vähiten merkitsevän bitin arvon mukaan (t 1 tai t 2), f()-funktio suorittaa seuraavan neliöllinen muunnos:

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

Jokaisen kierroksen lopussa alilohkoja siirretään.

Algoritmin edut:

· Algoritmin yksinkertainen rakenne helpottaa sen analysointia.

· Nopein AES-finalistialgoritmeista 32-bittisillä alustoilla.

· RC6-algoritmin salaus ja salauksen purku ovat lähes identtisiä. Algoritmin haitat:

· Ohjelmistossa toteutettu salausnopeus riippuu suuresti siitä, tukeeko alusta 32-bittistä kertolaskua ja kiertoa vaihtelevalla bittimäärällä.

· RC6 on vaikea toteuttaa laitteistossa ja rajallisilla resursseilla.

· Hyökkäyksiltä on melko vaikea puolustautua suoritusajan ja virrankulutuksen perusteella.

· Riittämätön tuki lennon aikana tapahtuvalle avaimen laajennukselle.

· Laskelmien rinnakkaissuuntaus salauksen aikana RC6-algoritmilla on toteutettu rajoituksin.

1.2.3 Algoritmi GOST 28147-89

GOST 28147-89 on Neuvostoliiton ja Venäjän symmetrinen salausstandardi, joka otettiin käyttöön vuonna 1990, myös IVY-standardi. Koko nimi - “GOST 28147-89 Tietojenkäsittelyjärjestelmät. Kryptografinen suojaus. Kryptografinen muunnosalgoritmi”.

Algoritmin rakenne on esitetty alla (kuva 4).

Riisi. 4. Salausalgoritmi GOST 28147-89

Lohkosalausalgoritmi. Kun salausmenetelmää käytetään gamman kanssa, se voi suorittaa virtausalagoritmin toimintoja. GOST 28147-89 on lohkosalaus, jossa on 256-bittinen avain ja 32 muunnosjaksoa, joka toimii 64-bittisillä lohkoilla. Salausalgoritmin perustana on Feistel-verkko. GOST 28147-89:ssä on neljä toimintatapaa: yksinkertainen vaihto, skaalaus, skaalaus palautteen avulla, jäljitelmän luontitapa.

Algoritmin edut: tehohyökkäyksen turha, toteutuksen tehokkuus ja vastaavasti suuri nopeus nykyaikaisissa tietokoneissa, suojan olemassaolo väärien tietojen määräämistä vastaan ​​(väärellisen lisäyksen kehittyminen) ja sama salausjakso kaikki neljä GOST-algoritmia, suurempi avain verrattuna DESX-algoritmiin.

Algoritmin haitat: GOST:n pääongelmat liittyvät standardin epätäydellisyyteen avaimien ja korvaustaulukoiden luomisen kannalta. Uskotaan, että GOST:lla on "heikkoja" avaimia ja korvaustaulukoita, mutta standardi ei kuvaa kriteerejä "heikkojen" valintaan ja seulomiseen. Standardi ei myöskään määrittele algoritmia korvaustaulukoiden (S-laatikoiden) luomiseen. Yhtäältä tämä voi olla ylimääräistä salaista tietoa (avaimen lisäksi), ja toisaalta se herättää useita ongelmia: algoritmin kryptografista vahvuutta on mahdotonta määrittää tietämättä etukäteen korvaavaa taulukkoa; eri valmistajien algoritmin toteutukset voivat käyttää erilaisia ​​korvaustaulukoita ja ne voivat olla yhteensopimattomia keskenään; Venäjän federaation lupaviranomaiset voivat tarkoituksellisesti toimittaa heikkoja korvaavia taulukoita.

1.2.4 Edut IDEA ennen analogeja

Ohjelmistojen toteutuksessa Intel486SX on kaksi kertaa nopeampi kuin DES IDEA, mikä lisää huomattavasti nopeutta, IDEA:n avaimen pituus on 128 bittiä verrattuna DES:n 56 bittiin, mikä on hyvä parannus raakaa voimaa vastaan. Todennäköisyys käyttää heikkoja näppäimiä on hyvin pieni ja on 1/2 64 . IDEA on nopeampi kuin GOST 28147-89 -algoritmi (Intel486SX:n ohjelmistototeutuksessa). Käyttämällä IDEA:ta rinnakkaisissa salaustiloissa Pentium III- ja Pentium MMX -suorittimissa voit saada suuria nopeuksia. AES-finalisteihin verrattuna 4-way IDEA on vain hieman hitaampi kuin Pentium II:n RC6 ja Rijndael, mutta nopeampi kuin Twofish ja MARS. Pentium III:ssa 4-way IDEA on jopa nopeampi kuin RC6 ja Rijndael. Etuna on myös hyvä tuntemus ja vastustuskyky tunnettuja kryptausanalyysimenetelmiä kohtaan.

1.3 Salauslohkon ketjutustila - lohkojen ketjuttaminen salatekstin mukaan

CBC-salaustilassa kaikki viestin lohkot "ketjutetaan" salatekstiä pitkin.

Salausalgoritmissa funktion sisääntulo on joka kerta viestin seuraavan lohkon avoimen datan ja edellisen lohkon lähtöfunktion modulo 2 -summauksen tulos. Koska seuraavan lohkon funktion tulos menee suoraan CBC-algoritmin ulostuloon, eli se on tämän lohkon salateksti ja syöttää samanaikaisesti saman toiminnon salatakseen seuraavan lohkon, sanotaan, että lohkot ketjutetaan salatekstin mukaan. Ensimmäinen avoimen datan lohko summataan ns. alustusvektori.

Tämä alustusvektori tulee tunnetuksi sekä lähettäjälle että vastaanottajalle viestintäistunnon alussa (siksi sitä kutsutaan usein yksinkertaisesti synkronointiviestiksi). Salauksen purku tapahtuu vastaavasti käänteisessä järjestyksessä - ensin toimintoa sovelletaan salatekstiin ja sitten se lisätään edelliseen salatekstilohkoon, jotta saadaan seuraava selkeän tekstin lohko algoritmin ulostulossa. Ensimmäinen selkeän tekstin lohko palautetaan jälleen käyttämällä alustusvektoria.

Siten kaikille i = 1...n salatekstilohko C(i) määritellään seuraavasti:

C(i) = IDEA(M(i) xtai C(i-1)),

Salauksen purku suoritetaan seuraavasti:

M(i) = C(i-1)xtai IDEA-1(C(i)),

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

1.4 CBC-salaustilan analogien vertailu

Lohkosalauksia käytettäessä käytetään erilaisia ​​salausmenetelmiä, jotka tunnetaan lohkosalauksen toimintasalauksena. Ilmeisesti yhden tai toisen salausmoodin käytön ei pitäisi vaikuttaa haitallisesti lohkosalauksen tehokkuuteen ja lisäksi kryptografiseen vahvuuteen. Salaustilojen avulla voit toteuttaa lisätoimintoja, joita ei ole alkuperäisessä lohkosalauksessa.

1.4.1 Sähköinen koodikirja - Sähköinen koodikirja

Tämä tila on elektroninen analogi tilalle, jota agentit käyttävät salatun viestin lähettämiseen alussa XX vuosisadalla. Agentti sai muistikirjan, jonka jokainen sivu sisälsi ainutlaatuisen sekvenssin - koodin, jolla viesti salattiin. Käytön jälkeen tällainen sivu revittiin ulos muistikirjasta ja tuhoutui. Viestiä täydennettiin tarvittaessa niin, ettei revityille sivuille jäänyt käyttämätöntä koodia. Vastaanottavalla osapuolella oli kopio muistikirjasta, joten mikäli sivuja käytettiin synkronisesti, tämä salaustila tarjosi sekä viestien salauksen että salauksen purkamisen. EKP:ssä koodikirjan yhden sivun käyttö salaukseen vastaa muunnoksen soveltamista syötetietoihin CIPH k -funktiolla ja salauksen purkamiseen - CIPH -1 k . Synkronointia varten riittää, että molemmat osapuolet sopivat salaisen avaimen K arvosta.

Kuten kuvasta voidaan nähdä, koko EKP:n algoritmi koostuu funktioiden suoraan soveltamisesta viestiin ja salatekstiin salausta ja salauksen purkamista varten, mikä voidaan myös ilmaista yhtälöinä: EKP:n salaus:

C j = CIPH K (P j) ,

missä j=1…n

EKP:n salauksen purku:

P j = CIPH K (C j),

missä j=1…n

Näin ollen salaus tapahtuu lohkoissa, jotka vastaavat ja-toimintojen tulo/lähtödatan kokoa. Lohkot salataan erikseen ja toisistaan ​​riippumatta, joten voit tehdä sen rinnakkain. Tämä EKP-moodin etu ja sen yksinkertaisuus peittyvät kahdella merkittävällä haitalla. Ensimmäinen on, että viestin pituuden on oltava lohkosalauksen syöttölohkon pituuden monikerta, eli koko viesti voidaan joko jakaa kokonaislukumäärään tällaisia ​​lohkoja tai on tarpeen jollain tavalla täydentää viimeistä lohkoa tiedot, jotka eivät sisällä tietoa. Toinen haittapuoli on vieläkin merkittävämpi.

Koska salauksen aikana seuraavan salatekstilohkon määrittää täysin vain vastaava selkeän tekstin lohko ja salaisen avaimen K arvo, niin samat selkeän tekstin lohkot muunnetaan tässä tilassa samoihin salatekstilohkoihin. Ja tämä on joskus ei-toivottavaa, koska se voi antaa vihjeen viestin sisällön analysointiin. Esimerkiksi, jos tiedot on salattu kiintolevyllä, tyhjä tila täytetään samoilla tavuilla, jotka ovat jääneet sinne levyn alustamisesta. Tämä tarkoittaa, että on mahdollista arvata salatekstin perusteella levyllä olevan hyödyllisen tiedon koko. Tällaisissa tapauksissa on käytettävä muita salaustiloja.

1.4.2 Salauspalaute

Salauspalaute Salakirjoituspalautetila on yksi symmetrisistä salausmenetelmistä, jossa salattu tekstilohko on bitti bitiltä lisätty selkeän tekstin lohko edellisen lohkon salauksen salatulla tuloksella. Siinä on muunnos, jonka avulla voit salata salauslohkon kokoa pienempiä tietoja, mikä mahdollistaa tietovirran salaamisen odottamatta tarvittavan määrän bittejä tuloon.

Tässä tilassa lohkokoko voi poiketa 64:stä. Lähdetiedosto M luetaan peräkkäisinä t-bittisinä lohkoina (t<= 64): M = M(1)M(2)...M(n) (остаток дописывается нулями или пробелами).

64-bittinen siirtorekisteri (tulolohko) sisältää ensin alustusvektorin IV, oikealle tasattu. Jokaisessa salausistunnossa käytetään uutta alustusvektoria.

Kaikille i = 1...n, salatekstilohko C(i) määritellään seuraavasti:

C(i) = M(i)xtai P(i-1),

missä P(i-1) ovat operaation IDEA(C(i-1)) ylin t bittiä, lisäksi C(0) = IV.

Siirtorekisteri päivitetään poistamalla sen korkeammat t-bitit ja lisäämällä oikealle C(i).

Salatun tiedon palauttaminen on myös helppoa: P(i-1) ja C(i) lasketaan samalla tavalla ja M(i) = C(i) x tai P(i-1).

1.4.3 Lähtö palaute

OFB-tila, kuten CFB, on suoratoistoa, eli toimintoa kutsutaan pre-pino-algoritmissa tavallisen tekstiosan kanssa. Mutta tällä kertaa syöte ei ole edellisen iteroinnin salateksti, vaan yksinkertaisesti sen oma tulos. Eli funktiosilmukat.

Tällaisessa tilanteessa on tärkeää käyttää alustusvektoria kerran. Oletetaan, että kaksi eri viestiä on salattu OFB-tilassa käyttämällä samaa alustusvektoria. Sitten, jos vastustaja tulee tietoiseksi mistä tahansa ensimmäisen viestin selkeän tekstin j:nnestä lohkosta, hän voi helposti laskea Oj - lähtötiedot, koska hänellä on salatekstin j:nnen lohkon lohko, ja koska ne riippuvat vain alustuksesta. vektori, joka on sama molemmille viesteille, niin voidaan väittää, että toisessa viestissä se on sama Oj , joten kun toisen viestin salateksti on j lohko, vastustaja saa välittömästi j:n selkeän tekstin. -toisen viestin lohko.

Siksi OFB-algoritmissa on vältettävä paitsi alustusvektorien toistoa, myös sitä, että yhden viestin funktion syöttötietojen j:nnettä lohkoa ei käytetä toisen viestin alustusvektorina. . Alla on yhtälöt salaukselle OFB-tilassa: OFB-salaus:

Ij = Oj-1, j = 1,2, …n

Cj = Pj + Oj, j = 1,2, …n-1

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

OFB-salauksen purku:

Ij = Oj-1, j = 2, …n

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

Pj = Cj + Oj, j = 1,2, …n-1

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

jossa "+" on xor-toiminto.

OFB:n sanoman valmistumisongelma ratkaistaan ​​yksinkertaisesti: sanoman viimeiselle, mahdollisesti keskeneräiselle lohkolle käytetään täsmälleen niin monta bittiä funktion lähtötiedoista kuin tässä lohkossa on bittejä. Näin ollen tässä tilassa, toisin kuin aikaisemmissa, viestin pituus pysyy muuttumattomana salauksen aikana ja mikä tärkeintä, lähetyksen aikana.

1.4.4 Laskuri - vastasalaus

Suoratoiston salaustilassa laskuri jokaisessa salausalgoritmin iteraatiossa funktion sisääntulossa annetaan jokin satunnaisarvo T. Tämän syötteen on oltava erilainen kaikissa algoritmin iteraatioissa, joissa lohkosalaus käyttää samaa salausavainta, joten tällaisten arvojen generaattoria kutsutaan joskus laskuriksi (joka antaa yksinkertaisimman tavan luoda T:n ainutlaatuiset arvot).

Itse asiassa funktion syöttötietojen yksilöllisyyden vaatimus tietylle K:n arvolle täyttyy myös, jos käytetään PRC:tä (pseudo-random code generator), mutta silloin tarvitaan PRC:n alustusvektori. viestien lähettäjän ja vastaanottajan osa.

Näin ollen CTR-moodialgoritmin salateksti saadaan summaamalla modulo 2 seuraavan selväkielilohkon funktion ulostulon kanssa. Sanomalohkojen laskurin seuraava arvo Tj syötetään funktiotuloon. Salauksen purku tapahtuu myös seuraavan salatekstin lohkon modulo 2 -summauksella ja laskurin Tj seuraavan arvon funktiolla muunnoksen tuloksella. Sekä salauksen purku että salauksen purkutoiminnot CTR-tilassa voidaan suorittaa rinnakkain ja itsenäisesti kaikille lohkoille. Lisäksi tässä tilassa ei myöskään ole viimeisen lohkon ongelmaa. Napsautussuhteen salaus:

Napsautussuhteen salauksen purku:

CTR-tilassa on kaikki ECB-tilan edut (rinnakkaissuoritus, yksinkertaisuus ja mahdollisuus salata mikä tahansa viestilohko suoraan erikseen ja muista lohkoista riippumatta). Mutta lisäksi CTR-tila korjaa kaikki salauksen puutteet sähköisessä koodikirjatilassa: samoja selkotekstilohkoja ei enää muunneta samoihin salatekstilohkoihin; viimeistä salatekstilohkoa ei tarvitse täyttää. Lisäksi tässä tilassa (kuten missä tahansa suoratoistotilassa) käytetään vain salaustoimintoa, ja joillekin lohkosalauksille (esimerkiksi AES:lle - uusi amerikkalainen lohkosalausstandardi) tämä parantaa suorituskykyä. Siksi tämä tila on usein tehokkain.

1.4.5 Cipher Block Chainingin edut analogeihin verrattuna

Joten voimme päätellä, että symmetrinen salaustila CBC:llä on selvä etu edellä käsitellyistä, nimittäin: salauksenpurkutilassa, kun koko salateksti on jo vastaanotettu, toiminnot voidaan suorittaa rinnakkain ja itsenäisesti kaikille viestin lohkoille. Tämä antaa huomattavan ajanhyödyn.

Tässä tilassa kannattaa keskittyä vielä yhteen yksityiskohtaan. Tosiasia on, että viimeinen CBC-moodialgoritmin lähdössä saatu salatekstin lohko riippuu sekä lohkosalausavaimesta että alustusvektorista ja (mikä on tässä tapauksessa tärkeämpää) kaikista tekstin tekstin bitteistä. viesti. Ja tämä tarkoittaa, että tätä viimeistä salatekstilohkoa voidaan käyttää eräänlaisena viestin tunnisteena. Tällainen tunniste ei anna ulkopuoliselle tarkkailijalle mitään tietoa koko viestin sisällöstä kokonaisuutena ja samalla identifioi sen (viestin) lähes yksiselitteisesti. Lisäksi tämän tunnisteen väärentäminen ilman salausavainta K on yhtä vaikeaa kuin itse avaimen oikein arvaaminen.

2. SUUNNITTELUOSA

2.1 Toiminnallinen mallinnus

Ohjelmistotyökalun vaatimusten perusteella määritellään seuraavat toiminnot:

Käyttäjän rekisteröinti kentillä:

· Lähdetekstin salaus;

· Salatekstin salauksen purku;

· Salauksen ja salauksen purkamisen loppuvaiheiden näyttäminen käyttäjälle onnistuneen valtuutuksen jälkeen.

2.2 Algoritminen suunnittelu

Yleinen IDEA-salausalgoritmi on esitetty alla (kuva 5).

Ohjelman käynnistämisen jälkeen käyttäjän on syötettävä valtuutuslomakkeeseen pari: kirjautuminen + salasana tai täytettävä rekisteröintilomake. Kun olet syöttänyt lomakkeiden merkit, salaustoiminto alkaa toimia, kun napsautat "Kirjaudu" tai "Rekisteröidy" -painiketta.

64-bittinen datalohko luetaan tiedostosta ja jaetaan neljään 16-bittiseen alilohkoon. Näistä neljästä alilohkosta tulee syöte algoritmin ensimmäiseen jaksoon. Kuvassa nämä alilohkot on merkitty D 1, D 2, D 3, D 4. Jokainen kierros käyttää omia aliavaimiaan aliavaintaulukon mukaisesti (kuva 6). Aiemmin kuvatut ja algoritmikaaviossa esitetyt toiminnot suoritetaan 16-bittisille aliavaimille ja selkokielisille alilohkoille.

Jokaisen salauskierroksen lopussa on neljä 16-bittistä alilohkoa, joita käytetään sitten syöttöalilohkoina seuraavalle salauskierrokselle. Lähtömuunnos on lyhennetty kierros, nimittäin kahdeksannen kierroksen lähdön neljälle 16-bittiselle alilohkolle ja neljälle vastaavalle alilohkolle suoritetaan kuvatut toiminnot.

Sitten otetaan seuraava 64-bittinen pelkkää tekstiä oleva lohko ja salausalgoritmi toistetaan. Tämä jatkuu, kunnes kaikki alkuperäisen tekstin 64-bittiset lohkot on salattu.

Käyttäjä näkee salatun viestin onnistuneen valtuutuksen jälkeen.

Tekstin salauksen purkamiseen käytetty laskentamenetelmä on olennaisesti sama kuin sen salaamiseen käytetty laskentamenetelmä. Ainoa ero on, että salauksen purkamiseen käytetään erilaisia ​​aliavaimia. Salauksen purkuprosessin aikana aliavaimia on käytettävä käänteisessä järjestyksessä. I:nnen salauksenpurkukierroksen ensimmäinen ja neljäs aliavain saadaan (10-i) salauskierroksen ensimmäisestä ja neljännestä aliavaimesta kertovalla inversiolla. 1. ja 9. kierrosta varten toinen ja kolmas salauksenpurkuavain saadaan 9. ja 1. salauskierroksen toisesta ja kolmannesta aliavaimesta additiivisella inversiolla. Kierroksille 2-8 toinen ja kolmas salauksenpurkuavain saadaan salauskierrosten 8-2 kolmannesta ja toisesta aliavaimesta additiivisella inversiolla. I:nnen salauksenpurkukierroksen kaksi viimeistä aliavainta ovat yhtä suuria kuin (9-i) salauskierroksen kaksi viimeistä aliavainta.

Käyttäjä näkee salauksen puretun viestin, kun hän on täytetty onnistuneesti valtuutuslomakkeen ja oikealla kirjautumistunnuksella ja salasanalla.

Riisi. 5. IDEA-algoritmin rakenne

Riisi. 6. Kytke salaus ja salauksen purku IDEA-algoritmi

2.3 Ohjelmiston käyttöönotto

Kurssityö on toteutettu ohjelmointiympäristössä Microsoft Visual Studio 2012. Työn kirjoittamisessa käytetty ohjelmointikieli on C#.

Luettelo päämenettelyistä - käsittelijöistä, jotka sisältävät kehitetyn ohjelman toiminnallisuuden:

· julkinen staattinen int idea_hash_cbc (char *s, int len, int k, int iv) CBC-hajautusfunktio. Tässä funktiossa saamme XOR:n "a (iv) nykyisen arvon, luomme osoittimen tiivistetyn datan taulukkoon, jaamme taulukon koon 8:lla (tarkistamme 8:n moninkertaisuuden), salaamme kaavan mukaan: C (i) = IDEA (C (i-1) ^ S(i), AVAIN) ja palauta tuloksena oleva hash.

yksityinen staattinen merkkijono ShiftByteLeft(string s) siirto 25 bittiä vasemmalle syklinen

yksityinen staattinen merkkijono ShiftbyteRight(string s) siirtää 25 bittiä syklistä oikealle

yksityinen staattinen merkkijono Sum(merkkijono a1, merkkijono a2) summaus modulo 2^16

yksityinen staattinen merkkijono Multi(merkkijono a1, merkkijono a2) kertolasku modulo 2^16+1 yksityinen staattinen merkkijono XOR(merkkijono a1, merkkijono a2) XOR

· rivin T setBit (T v, int nBitNumber) bittiasetustoiminto. Bitit lasketaan nollasta, numerointi etenee vasemmalta oikealle.

· sisäinen bool getBit (T v, int nBitNumber) -funktio bittiarvon saamiseksi (tosi/epätosi).

kartta *> keys_archive; "pyöreiden" näppäinten taulukoiden arkisto, jotta avaimia ei luoda joka kerta uudelleen (toiminto sisältää: avaimen alkupermutaatio, avaimen lopullinen permutaatio, siirtymät, korvaustaulukko). yksityinen void idea_Salaus (merkkijono st1, merkkijono st2) IDEA-algoritmi. Tulo - 2 riviä: 1) lukulohkon bittijoukko (pituus 64). 2) joukko avaimemme bittejä (pituus 128). Tulos on salauslohko (64 merkkiä) julkinen merkkijono idea_Decryption (merkkijono st1, merkkijono st2) IDEA-salauksenpurkutoiminto.

· bool CheckLogin(int hash) -funktio lukee sisäänkirjautumisen, jos argumenttien tiiviste on yhtä suuri kuin luettu kirjautuminen, sulkee tiedoston ja palauttaa positiivisen tuloksen. Jos ei, se näyttää viestin "Virheellinen kirjautuminen"

· bool CheckPass(int login_hash, int pass_hash) funktio lukee kirjautumistunnuksen ja salasanan, jos kirjautumistunnus on sama kuin pyydetty, mutta salasana ei täsmää, se sulkee tiedoston ja näyttää viestin "Väärä salasana". Jos käyttäjätunnus ja salasana täsmäävät, funktio palauttaa "true".

Ohjelma koostuu kolmesta lomakkeesta: rekisteröintilomakkeesta (Kuva 7.), valtuutuslomakkeesta (Kuva 8.) ja lomakkeesta, jossa tulostetaan salattua ja salattua tekstiä (Kuva 9.). Nämä lomakkeet on esitetty alla.

ohjelmistolohkon salaustodennus

Kuva 8. Ilmoittautumislomake

Kuva 9. Tietojen tulostuslomake

3. KOKEELLINEN

Testi 1. Testataan käyttäjätunnuksen olemassaolo

Syöttötiedot:

Napsauttamalla Kirjaudu-painiketta ilman kirjautumista

Tulos:

· Virheviesti. Anna kirjautumistunnus

Testi 2. Testataan syötetyn käyttäjän salasanan vahvistusta

Syöttötiedot:

Paina Login-painiketta syöttämättä salasanaa

Tulos:

· Virheviesti. Ole hyvä ja anna salasana

Johtopäätös: tarkistustoiminto toimii oikein.

Testi 3. Testaa salaustoiminto tekstin pituudella enintään 50 merkkiä.

Syöttötiedot:

Nimi: Jotain tekstiä

Testi 4. Salaustoiminnon testaus tekstinpituudella yli 50 merkkiä.

Syöttötiedot:

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

Johtopäätös: salaustoiminto toimii oikein.

Testi 4. Merkin lisääminen salatun hashin alkuun.

Testi 5. Merkin lisääminen salatun tiivisteen keskelle.

Johtopäätös: osaa tekstistä ei pureta.

PÄÄTELMÄ

Analyyttisen osan kurssityön aikana analysoitiin erilaisia ​​symmetrisiä lohkosalausalgoritmeja ja esiteltiin IDEA-algoritmin hyvät ja huonot puolet. Kehitettävälle ohjelmalle asetettiin myös tehtävät ja vaatimukset, jotka toteutettiin täysimääräisesti.

Suunnitteluosassa määriteltiin ja laajennettiin tärkeimmät toiminnot sekä IDEA-algoritmin toimintojen tulo- ja lähtöparametrit. Valittiin ohjelmistokehitysympäristö ja ohjelmointikieli.

Kokeellisessa osassa ohjelmistoa testattiin viidellä testillä. Algoritmin toteutuksessa ja ohjelmiston toiminnassa ei löytynyt virheitä.

KIRJASTUS

1. Wikipedia. IDEA-algoritmi [Elektroninen resurssi]. - Käyttötila: - http://ru.wikipedia.org/wiki/IDEA.

2. MSDN [elektroninen resurssi]. - Käyttötila: - http://msdn.microsoft.com/ru-ru/.

3. Wikipedia. Salatekstilohkon ketjutustila [Elektroninen resurssi]. - Käyttötila: - https://ru.wikipedia.org/wiki/Ciphertext_block_chaining_mode.

4. [Sähköinen resurssi] - Oleg Zenzin - Salaustilat, osio Virheiden kertyminen eri salaustiloissa - Käyttötila: - http://citforum.ru/security/cryptography/rejim_shifrov/

5. [Sähköinen resurssi] - PGP-algoritmien vertaileva katsaus - Käyttötila: - https://www.pgpru.com/biblioteka/statji/sravniteljnyjjobzoralgoritmovpgp

Isännöi Allbest.ru:ssa

Samanlaisia ​​asiakirjoja

    DES-algoritmin ja salausmoodien toteutus mille tahansa viestin pituudelle ja mille tahansa avaimen pituudelle. Eripituisten ja eri avaimien viestien salaus ajan ja salausnopeuden mittauksella. RSA-algoritmin toteutus. Salatun tiedoston tallentaminen levylle.

    lukukausityö, lisätty 26.1.2010

    Sovelluksen kehittäminen tietojen salaukseen DES5-algoritmilla: salausprosessi, salauksen purku, avainten hankinta. Ohjelman määrittely, menettelyt ja toiminnot; käyttöliittymän kuvaus. Tehtävän toteutus DELPHI-ohjelmointiympäristössä.

    lukukausityö, lisätty 27.3.2012

    Symmetristen salausalgoritmien syntyhistoria. Symmetrisen avaimen rooli viestin salassapitoasteen varmistamisessa. Diffuusio ja hämmennys tapoina muuttaa databittejä. DES- ja IDEA-salausalgoritmit, niiden tärkeimmät edut ja haitat.

    laboratoriotyö, lisätty 18.3.2013

    Symmetriset salausjärjestelmät; tietojen salaus- ja salauksenpurkualgoritmit, niiden soveltaminen tietokonetekniikassa luottamuksellisten ja kaupallisten tietojen suojaamiseen tarkoitetuissa järjestelmissä. DES-algoritmin tärkeimmät toimintatavat, avaimen ohjelmistototeutuksen kehittäminen.

    lukukausityö, lisätty 17.2.2011

    Symmetrisen salausalgoritmin syntyhistoria, sen soveltamisen ehdot ja ominaisuudet nykyisessä vaiheessa. Tutkittavan tekniikan periaatteet ja toiminnot. Algoritmin käytön tärkeimpien etujen ja haittojen analyysi, sen haavoittuvuuden arviointi.

    lukukausityö, lisätty 29.10.2017

    Lineaarisiin muunnoksiin perustuvan avaimen jakelujärjestelmän tutkimus. Kuvaus luottamuksellisen viestintäverkon komponenteista. Kotimaisen datan salausalgoritmin ominaisuudet. Katsaus salausalgoritmin kryptografisen vahvuuden laskelmien tuloksiin.

    testi, lisätty 26.9.2012

    Ohjelman kehittäminen, joka toteuttaa DES (Data Encryption Standard) -standardin mukaiset menettelyt tekstin salaukseen ja salauksen purkamiseen. Salausalgoritmin rakenne, avainelementtien generointimalli. Salausohjelmiston käyttö.

    lukukausityö, lisätty 15.6.2013

    Salausalgoritmin kehittäminen manuaaliselle salausohjelmalle Vigenère-taulukon avulla. Salauksen ja salauksen purkamisen suorittavan ohjelman kehittäminen. Itse selkeän tekstin käytön avaimena. Algoritmit "käänteisten" ongelmien ratkaisemiseksi.

    lukukausityö, lisätty 13.11.2009

    Symmetriset salausjärjestelmät salausmenetelmänä, jossa salaukseen ja salauksen purkamiseen käytetään samaa salausavainta. Salausalgoritmin jäsentäminen ja toteutus: yksinkertainen ja kaksoispermutaatio, "maaginen neliö" -permutaatio.

    lukukausityö, lisätty 11.3.2013

    Symmetrinen salaus on salausmenetelmä, joka käyttää samaa salausavainta. Vakiovalintaikkunan toiminnot tiedoston avaamiseen ja tallentamiseen. Tyypillinen toimintasuunnitelma allekirjoitusta luotaessa. Tiedoston digitaalinen allekirjoitus.

JOHDANTO

ANALYYTTINEN OSA

1 IDEA-algoritmi

2 IDEA-algoritmin analogien vertailu

2.1 DES-algoritmi

2.2 RC6-algoritmi

2.3 Algoritmi GOST 28147-89

2.4 IDEA:n edut analogeihin verrattuna

3 Salauslohkon ketjutustila - lohkojen ketjuttaminen salatekstin mukaan

4 CBC-salaustilan analogien vertailu

4.1 Sähköinen koodikirja - Sähköinen koodikirja

4.2 Salauspalaute

4.3 Lähtöpalaute

4.4 Laskuri - salaus laskurilla

4.5 Cipher Block Chainingin edut analogeihin verrattuna

SUUNNITTELUOSA

1 Toiminnallinen mallinnus

2 Algoritminen suunnittelu

3 Ohjelmiston käyttöönotto

KOKEELLINEN OSA

PÄÄTELMÄ

KIRJASTUS

JOHDANTO

Symmetrinen salausjärjestelmät (myös symmetrinen salaus, symmetriset salaukset) - salausmenetelmä, jossa salaukseen ja salauksen purkamiseen käytetään samaa salausavainta. Ennen järjestelmän keksimistä epäsymmetrinen salaus Ainoa olemassa oleva tapa oli symmetrinen salaus. Molempien osapuolten on pidettävä algoritmiavain salassa. Osapuolet valitsevat algoritmin avaimen ennen viestienvaihdon aloittamista.

Tietojen salaus- ja salauksenpurkualgoritmeja käytetään laajalti tietotekniikassa järjestelmissä, joilla piilotetaan luottamuksellisia ja kaupallisia tietoja kolmansien osapuolten haittakäytöltä. Pääperiaate niissä on ehto, että lähetin ja vastaanottaja tietävät etukäteen salausalgoritmin sekä viestin avaimen, jota ilman tieto on vain joukko merkkejä, joissa ei ole järkeä.

Klassinen esimerkki tällaisista algoritmeista ovat alla luetellut symmetriset salausalgoritmit: - yksinkertainen korvaus;

yksi permutaatio avaimella;

kaksinkertainen permutaatio;

permutaatio "Maaginen neliö";

yksinkertainen permutaatio.

Kaikkien alkuperäisen viestin tilastollisten säännönmukaisuuksien täydellinen menettäminen on tärkeä vaatimus symmetriselle salaukselle. Tätä varten salauksella on oltava "lumivyöryvaikutus", ts. salauslohkossa pitäisi tapahtua voimakas muutos 1-bitin muutoksella syöttötiedoissa (ihannetapauksessa salauslohkon 1/2 bitin arvojen tulisi muuttua).

Tällä hetkellä symmetriset salaukset ovat:

· lohkosalaukset. Ne käsittelevät tietoa tietynpituisissa lohkoissa (yleensä 64, 128 bittiä) käyttämällä avainta lohkoon määrätyssä järjestyksessä, yleensä useita sekoitus- ja korvaussyklejä, joita kutsutaan kierroksiksi. Kierrosten toistumisen seurauksena on lumivyöryefekti - avoimen ja salatun datan lohkojen välisen bittivastaavuuden lisääntyvä menetys.

· virtasalaukset, joissa salaus suoritetaan jokaiselle lähdetekstin bitille tai tavulle gamman avulla. Virtasalaus voidaan luoda helposti erityistilassa käynnistetyn lohkosalauksen (esimerkiksi GOST 28147-89 gammatilassa) perusteella.

Symmetrisiä salausalgoritmeja on monia, joiden keskeiset parametrit ovat:

· vastus;

· avaimen pituus;

· kierrosten määrä;

· käsitellyn lohkon pituus;

· laitteiston/ohjelmiston toteutuksen monimutkaisuus;

· muuntamisen monimutkaisuus.

1.ANALYYTTINEN OSA

1IDEA-algoritmi

IDEA (English International Data Encryption Algorithm, international data encryption algorithm) on sveitsiläisen Ascomin patentoima symmetrinen lohkodatan salausalgoritmi. Tämä on lohkosymmetrinen salausalgoritmi, jota ehdotettiin korvaamaan DES-standardi. IDEA-algoritmin ensimmäinen versio ilmestyi vuonna 1990. Algoritmin kehittäjät Xuejia Lai ja James Massey Sveitsin ETH Zurich Institutesta antoivat sille nimen PES (Proposed Encryption Standard).

Koska IDEA käyttää 128-bittistä avainta ja 64-bittistä lohkokokoa, selkeä teksti on jaettu 64-bittisiksi lohkoiksi. Jos tällainen osio ei ole mahdollista, viimeinen lohko täytetään eri tavoin tietyllä bittisekvenssillä. Jokaista yksittäistä lohkoa koskevien tietojen vuotamisen välttämiseksi käytetään erilaisia ​​salaustiloja. Jokainen alkuperäinen salaamaton 64-bittinen lohko on jaettu neljään 16-bittiseen alilohkoon, koska kaikki salausprosessissa käytetyt algebralliset toiminnot suoritetaan 16-bittisille numeroille. IDEA käyttää samaa algoritmia salaukseen ja salauksen purkamiseen.

IDEA käyttää seuraavaa matemaattisia operaatioita:

 bittikohtainen lisäys modulo 2 ("exclusive OR" -toiminto);

 etumerkittömien kokonaislukujen lisääminen modulo 2 16;

 etumerkittömien kokonaislukujen kertolasku modulo (2 16+1), 16 nollan lohkoa käsitellään 2:na 16;

Merkittävä haitta on, että IDEA on patentoitu, koska tämä estää sen ilmaisen jakelun. IDEA ei tarjoa avaimen pituuden pidentämistä. Haittapuolena voidaan pitää myös sitä, että kaikkia krypta-analyysiin liittyviä teoksia ei ole julkaistu, eli on täysin mahdollista, että salaus on rikki tai rikotaan tulevaisuudessa.

IDEA-algoritmin rakenne on esitetty alla (kuva 1).

Riisi. 1. IDEA-salausalgoritmi

· elektroninen koodikirjatila (ECB - Electronic Code Book)

· lohkoketjutustila (CBC - Cipher Block Chaining)

· Cipher Feed Back (CFB) -tila

· lähtöpalautetila (OFB - Output Feed Back).

Tämä kurssityö käsittelee IDEA-salausalgoritmin ohjelmistototeutusta (Cipher Feed Back mode).

1.2IDEA-algoritmin analogien vertailu

1.2.1DES-algoritmi

DES (Data Encryption Standard) - Symmetrinen salausalgoritmi, jossa yhtä avainta käytetään sekä tietojen salaamiseen että salauksen purkamiseen. DES:ssä on 64-bittiset lohkot ja 16-jaksoinen Feistel-verkkorakenne; se käyttää 56-bittistä avainta salaukseen.

Algoritmi käyttää yhdistelmää epälineaarisia (S-laatikot) ja lineaarisia (E, IP, IP-1 permutaatioita) muunnoksia.

Koska DES toimii 64-bittisissä lohkoissa ja käyttää 56-bittistä avainta, tämä avaimen pituus vastaa 256 yhdistelmää, jotka ovat viime aikoihin asti tarjonneet riittävän turvallisuustason (8 parillista bittiä täydestä 64-bittisestä avaimesta ei käytetä, pariteettibitit ovat vähiten merkitseviä bittejä avaintavuja). 64 bitin tulodatalohko muunnetaan samanpituiseksi lähtölohkoksi.

56-bittisen salausavaimen käytön ansiosta DES-algoritmi voidaan murtaa raa'alla voimalla millä tahansa nykyaikaisella laskentajärjestelmä melko todellisilla termeillä - useita päiviä Symmetrinen kryptojärjestelmä, joka määritellään 16-kierroksen Feistel-salaukseksi (Feistel), oli alun perin tarkoitettu laitteistototeutukseen. Kun DES:ää käytetään tiedon lähettämiseen, lähettäjän ja vastaanottajan on tiedettävä salainen avain viestin salaamiseksi ja salauksen purkamiseksi tai viestin autentikointikoodin (MAC) luomiseksi ja tarkistamiseksi.

DES-algoritmin salausprosessi koostuu 64-bittisen lohkon alustavasta bitinvaihdosta, kuudestatoista salauskierroksesta ja lopuksi käänteisestä bitinvaihdosta (kuvio 2).

Kuva 2. DES-salausalgoritmi

1.2.2Algoritmi RC6

RC6-salauksen AES-versio tukee 128-bittisiä lohkoja ja 128-, 192- ja 256-bittisiä avaimia, mutta itse algoritmi voidaan konfiguroida tukemaan enemmän laaja valikoima sekä lohkojen että avainten pituudet (0 - 2040 bittiä).

Se on AES-finalisti ja käyttää lähes kaikkia olemassa olevia kryptoalgoritmeissa käytettyjä tekniikoita, mutta yksi primitiivisistä toiminnoista on kertolasku, joka on hidas joillakin laitteilla ja vaikeuttaa salauksen toteuttamista useilla laitteistoalustoilla. osoittautui tekijöille yllätykseksi, Intel-arkkitehtuurilla varustetuissa järjestelmissä IA-64 on myös melko huonosti toteutettu. Tässä tapauksessa algoritmi menettää yhden tärkeimmistä eduistaan ​​- korkean suoritusnopeuden, josta on tullut kritiikin syy ja yksi esteistä uudeksi standardiksi valinnalle.

Riisi. 3. RC6-salausalgoritmi

RC6-algoritmin salausrakenne on esitetty kuvassa 3. Lyhyt kuvaus Algoritmi: algoritmi käyttää 20 muunnoskierrosta, joita ennen suoritetaan osittainen syötteen valkaisu:

o B=B+K 0mod 2 32

o D=D+K 1mod 2 32,

jossa A, B, C, D ovat käsiteltävien 32-bittisten alilohkojen nykyiset arvot ja K 0...K 43- laajennetun avaimen fragmentit.

Samoin suoritetaan osittainen ulostulovalkaisu:

o A=A+K 42mod 2 32

o C=C+K 43mod 2 32.

Algoritmin jokaisella kierroksella suoritetaan seuraavat toiminnot:

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

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

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

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

missä t 1ja T 2- väliaikaiset muuttujat, kiertobittien lukumäärä muuttuvaa bittimäärää kohden määräytyy parametrin 5 vähiten merkitsevän bitin arvon mukaan (t 1tai t 2), funktio f() suorittaa seuraavan toisen asteen muunnoksen:

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

Jokaisen kierroksen lopussa alilohkoja siirretään.

Algoritmin edut:

· Algoritmin yksinkertainen rakenne helpottaa sen analysointia.

· Algoritmeista nopein - AES-finalistit 32-bittisillä alustoilla.

· Salaus ja salauksen purku RC6-algoritmissa ovat lähes identtisiä. Algoritmin haitat:

· Ohjelmistossa toteutettu salausnopeus riippuu suuresti siitä, tukeeko alusta 32-bittistä kertolaskua ja kiertoa vaihtelevalla bittimäärällä.

· RC6 on vaikea toteuttaa laitteistossa ja rajallisilla resursseilla.

· On melko vaikeaa puolustautua suoritusaikaan ja virrankulutukseen kohdistuvia hyökkäyksiä vastaan.

· Ei tue täysin lennossa tapahtuvaa avaimen laajennusta.

· Laskelmien rinnakkaissuuntaus salauksen aikana RC6-algoritmilla on toteutettu rajoituksin.

1.2.3Algoritmi GOST 28147-89

GOST 28147-89 - Neuvostoliiton ja Venäjän standardi symmetriselle salaukselle, joka otettiin käyttöön vuonna 1990, on myös IVY-standardi. Koko nimi - “GOST 28147-89 Tietojenkäsittelyjärjestelmät. Kryptografinen suojaus. Kryptografinen muunnosalgoritmi”.

Riisi. 4. Salausalgoritmi GOST 28147-89

Lohkosalausalgoritmi. Kun salausmenetelmää käytetään gamman kanssa, se voi suorittaa virtausalagoritmin toimintoja. GOST 28147-89 on 256-bittisellä avaimella ja 32 muunnosjaksolla varustettu lohkosalaus, joka toimii 64-bittisten lohkojen kanssa. Salausalgoritmin perustana on Feistel-verkko. GOST 28147-89:ssä on neljä toimintatapaa: yksinkertainen vaihto, skaalaus, skaalaus palautteen avulla, jäljitelmän luontitapa.

Algoritmin edut: tehohyökkäyksen turha, toteutuksen tehokkuus ja vastaavasti suuri nopeus nykyaikaisissa tietokoneissa, suojan olemassaolo väärien tietojen määräämistä vastaan ​​(väärellisen lisäyksen kehittyminen) ja sama salausjakso kaikki neljä GOST-algoritmia, suurempi avain verrattuna DESX-algoritmiin.

Algoritmin haitat: GOST:n pääongelmat liittyvät standardin epätäydellisyyteen avaimien ja korvaustaulukoiden luomisen kannalta. Uskotaan, että GOST:lla on "heikkoja" avaimia ja korvaustaulukoita, mutta standardi ei kuvaa kriteerejä "heikkojen" valintaan ja seulomiseen. Standardi ei myöskään määrittele algoritmia korvaustaulukoiden (S-laatikoiden) luomiseen. Yhtäältä tämä voi olla ylimääräistä salaista tietoa (avaimen lisäksi), ja toisaalta se herättää useita ongelmia: algoritmin kryptografista vahvuutta on mahdotonta määrittää tietämättä etukäteen korvaavaa taulukkoa; eri valmistajien algoritmin toteutukset voivat käyttää erilaisia ​​korvaustaulukoita ja ne voivat olla yhteensopimattomia keskenään; Venäjän federaation lupaviranomaiset voivat tarkoituksellisesti toimittaa heikkoja korvaavia taulukoita.

1.2.4IDEA:n edut analogeihin verrattuna

Ohjelmistotuotannossa Intel486SX:ssä verrattuna DES:ään IDEA on kaksi kertaa nopeampi, mikä on merkittävä nopeuden lisäys. IDEA:n avaimen pituus on 128 bittiä verrattuna DES:n 56 bittiin, mikä on mukava parannus raakaan voimaan verrattuna. Todennäköisyys käyttää heikkoja näppäimiä on hyvin pieni ja on 1/264 . IDEA on nopeampi kuin GOST 28147-89 -algoritmi (ohjelmistototeutuksessa Intel486SX:ssä ). IDEA:n käyttö Pentium III -suorittimien rinnakkaissalaustiloissa ja Pentium MMX mahdollistaa suuren nopeuden saavuttamisen. AES-finalisteihin verrattuna 4-tie IDEA on vain hieman hitaampi kuin RC6 ja Rijndael Pentium II:ssa , mutta nopeampi kuin Twofish ja MARS . Pentium III:lla 4-tie IDEA jopa nopeampi kuin RC6 ja Rijndael . Etuna on myös hyvä tuntemus ja vastustuskyky tunnettuja kryptausanalyysimenetelmiä kohtaan.

1.3Salauslohkon ketjutustila - lohkojen ketjuttaminen salatekstin mukaan

CBC-salaustilassa kaikki viestin lohkot "ketjutetaan" salatekstiä pitkin.

Salausalgoritmissa funktion sisääntulo on joka kerta viestin seuraavan lohkon avoimen datan ja edellisen lohkon lähtöfunktion modulo 2 -summauksen tulos. Koska seuraavan lohkon funktion tulos menee suoraan CBC-algoritmin ulostuloon, eli se on tämän lohkon salateksti ja syöttää samanaikaisesti saman toiminnon salatakseen seuraavan lohkon, sanotaan, että lohkot ketjutetaan salatekstin mukaan. Ensimmäinen avoimen datan lohko summataan ns. alustusvektori.

Tämä alustusvektori tulee tunnetuksi sekä lähettäjälle että vastaanottajalle viestintäistunnon alussa (siksi sitä kutsutaan usein yksinkertaisesti synkronointiviestiksi). Salauksen purku tapahtuu vastaavasti käänteisessä järjestyksessä - ensin toimintoa sovelletaan salatekstiin ja sitten se lisätään edelliseen salatekstilohkoon, jotta saadaan seuraava selkeän tekstin lohko algoritmin ulostulossa. Ensimmäinen selkeän tekstin lohko palautetaan jälleen käyttämällä alustusvektoria.

Siten kaikille i = 1...n salatekstilohko C(i) määritellään seuraavasti:

C(i) = IDEA(M(i) xtai C(i-1)),

Salauksen purku suoritetaan seuraavasti:

M(i) = C(i-1)xtai IDEA-1(C(i)),

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

1.4CBC-salaustilan analogien vertailu

Lohkosalauksia käytettäessä käytetään erilaisia ​​salausmenetelmiä, jotka tunnetaan lohkosalauksen toimintasalauksena. Ilmeisesti yhden tai toisen salausmoodin käytön ei pitäisi vaikuttaa haitallisesti lohkosalauksen tehokkuuteen ja lisäksi kryptografiseen vahvuuteen. Salaustilojen avulla voit toteuttaa lisätoimintoja, joita ei ole alkuperäisessä lohkosalauksessa.

1.4.1 Sähköinen koodikirja - Sähköinen koodikirja

Tämä tila on elektroninen analogi tilalle, jota agentit käyttivät salatun viestin lähettämiseen jo 1900-luvun alussa. Agentti sai muistikirjan, jonka jokainen sivu sisälsi ainutlaatuisen sekvenssin - koodin, jolla viesti salattiin. Käytön jälkeen tällainen sivu revittiin ulos muistikirjasta ja tuhoutui. Viestiä täydennettiin tarvittaessa niin, ettei revityille sivuille jäänyt käyttämätöntä koodia. Vastaanottavalla osapuolella oli kopio muistikirjasta, joten mikäli sivuja käytettiin synkronisesti, tämä salaustila tarjosi sekä viestien salauksen että salauksen purkamisen. EKP:ssa koodikirjan yhden sivun käyttö salaukseen vastaa CIPH-funktion muunnoksen soveltamista syöttötietoihin. k , ja kun salaus puretaan - CIPH -1k . Synkronointia varten riittää, että molemmat osapuolet sopivat salaisen avaimen K arvosta.

Kuten kuvasta voidaan nähdä, koko EKP:n algoritmi koostuu funktioiden suoraan soveltamisesta viestiin ja salatekstiin salausta ja salauksen purkamista varten, mikä voidaan myös ilmaista yhtälöinä: EKP:n salaus:

KANSSA j = CIPH K (P j ) ,

EKP:n salauksen purku:

P j = CIPH K (C j ),

Näin ollen salaus tapahtuu lohkoissa, jotka vastaavat ja-toimintojen tulo/lähtödatan kokoa. Lohkot salataan erikseen ja toisistaan ​​riippumatta, joten voit tehdä sen rinnakkain. Tämä EKP-moodin etu ja sen yksinkertaisuus peittyvät kahdella merkittävällä haitalla. Ensimmäinen on, että viestin pituuden on oltava lohkosalauksen syöttölohkon pituuden monikerta, eli koko viesti voidaan joko jakaa kokonaislukumäärään tällaisia ​​lohkoja tai on tarpeen jollain tavalla täydentää viimeistä lohkoa tiedot, jotka eivät sisällä tietoa. Toinen haittapuoli on vieläkin merkittävämpi.

Koska salauksen aikana seuraavan salatekstilohkon määrittää täysin vain vastaava selkeän tekstin lohko ja salaisen avaimen K arvo, niin samat selkeän tekstin lohkot muunnetaan tässä tilassa samoihin salatekstilohkoihin. Ja tämä on joskus ei-toivottavaa, koska se voi antaa vihjeen viestin sisällön analysointiin. Esimerkiksi, jos tiedot on salattu kiintolevyllä, tyhjä tila täytetään samoilla tavuilla, jotka ovat jääneet sinne levyn alustamisesta. Tämä tarkoittaa, että on mahdollista arvata salatekstin perusteella levyllä olevan hyödyllisen tiedon koko. Tällaisissa tapauksissa on käytettävä muita salaustiloja.

1.4.2 Salauspalaute

Salauspalaute Salakirjoituspalautetila on yksi symmetrisistä salausmenetelmistä, jossa salattu tekstilohko on bitti bitiltä lisätty selkeän tekstin lohko edellisen lohkon salauksen salatulla tuloksella. Siinä on muunnos, jonka avulla voit salata salauslohkon kokoa pienempiä tietoja, mikä mahdollistaa tietovirran salaamisen odottamatta tarvittavan määrän bittejä tuloon.

Tässä tilassa lohkokoko voi poiketa 64:stä. Lähdetiedosto M luetaan peräkkäisinä t-bittisinä lohkoina (t<= 64): M = M(1)M(2)...M(n) (остаток дописывается нулями или пробелами).

Bittisiirtorekisteri (tulolohko) sisältää aluksi alustusvektorin IV, oikealle tasattu. Jokaisessa salausistunnossa käytetään uutta alustusvektoria.

Kaikille i = 1...n, salatekstilohko C(i) määritellään seuraavasti:

(i) = M(i)xtai P(i-1),

missä P(i-1) ovat operaation IDEA(C(i-1)) ylin t bittiä, lisäksi C(0) = IV.

Siirtorekisteri päivitetään poistamalla sen korkeammat t-bitit ja lisäämällä oikealle C(i).

Salatun tiedon palauttaminen on myös helppoa: P(i-1) ja C(i) lasketaan samalla tavalla ja M(i) = C(i) x tai P(i-1).

1.4.3 Lähtöpalaute

OFB-tila, kuten CFB, on suoratoistoa, eli funktiota kutsutaan algoritmissa ennen summaamista osalla pelkkää tekstiä. Mutta tällä kertaa syöte ei ole edellisen iteroinnin salateksti, vaan yksinkertaisesti sen oma tulos. Eli funktiosilmukat.

Siksi OFB-algoritmissa on vältettävä paitsi alustusvektorien toistoa, myös sitä, että yhden viestin funktion syöttötietojen j:nnettä lohkoa ei käytetä toisen viestin alustusvektorina. . Alla on yhtälöt salaukselle OFB-tilassa: OFB-salaus:

minä 1= IV

minä j =O j-1 , j = 1,2, … n

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

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

OFB-salauksen purku:

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

jossa "+" on xor-toiminto.

OFB:n sanoman valmistumisongelma ratkaistaan ​​yksinkertaisesti: sanoman viimeiselle, mahdollisesti keskeneräiselle lohkolle käytetään täsmälleen niin monta bittiä funktion lähtötiedoista kuin tässä lohkossa on bittejä. Näin ollen tässä tilassa, toisin kuin aikaisemmissa, viestin pituus pysyy muuttumattomana salauksen aikana ja mikä tärkeintä, lähetyksen aikana.

1.4.4 Laskuri - salaus laskurilla

Laskurilla suoritetussa suoratoistosalauksessa jokaisessa salausalgoritmin iteraatiossa funktion syötteeseen syötetään tietty satunnaisarvo T. Näiden syötteiden tulee olla erilaisia ​​kaikissa algoritmin iteraatioissa, joissa lohkosalaus käyttää samaa salausavainta. , joten tällaisten arvojen generaattoria kutsutaan joskus laskuriksi (joka antaa yksinkertaisimman tavan luoda ainutlaatuisia T-arvoja).

Itse asiassa funktion syöttötietojen yksilöllisyyden vaatimus tietylle K:n arvolle täyttyy myös, jos käytetään PRC:tä (pseudo-random code generator), mutta silloin tarvitaan PRC:n alustusvektori. viestien lähettäjän ja vastaanottajan osa.

Näin ollen CTR-moodialgoritmin salateksti saadaan summaamalla modulo 2 seuraavan selväkielilohkon funktion ulostulon kanssa. Sanomalohkojen laskurin seuraava arvo Tj syötetään funktiotuloon. Salauksen purku tapahtuu myös seuraavan salatekstin lohkon modulo 2 -summauksella ja laskurin Tj seuraavan arvon funktiolla muunnoksen tuloksella. Sekä salauksen purku että salauksen purkutoiminnot CTR-tilassa voidaan suorittaa rinnakkain ja itsenäisesti kaikille lohkoille. Lisäksi tässä tilassa ei myöskään ole viimeisen lohkon ongelmaa. Napsautussuhteen salaus:

salauksen purku:

CTR-tilassa on kaikki ECB-tilan edut (rinnakkaissuoritus, yksinkertaisuus ja mahdollisuus salata mikä tahansa viestilohko suoraan erikseen ja muista lohkoista riippumatta). Mutta lisäksi CTR-tila korjaa kaikki salauksen puutteet sähköisessä koodikirjatilassa: samoja selkotekstilohkoja ei enää muunneta samoihin salatekstilohkoihin; viimeistä salatekstilohkoa ei tarvitse täyttää. Lisäksi tässä tilassa (kuten missä tahansa suoratoistotilassa) käytetään vain salaustoimintoa, ja joillekin lohkosalauksille (esimerkiksi AES:lle - uusi amerikkalainen lohkosalausstandardi) tämä parantaa suorituskykyä. Siksi tämä tila on usein tehokkain.

1.4.5 Cipher Block Chainingin edut analogeihin verrattuna

Siten voidaan päätellä, että CBC-symmetrisellä salausmoodilla on selvä etu edellä tarkasteltavien joukossa, nimittäin: salauksenpurkutilassa, kun koko salateksti on jo vastaanotettu, toiminnot voidaan suorittaa rinnakkain ja itsenäisesti kaikille viestilohkoille. Tämä antaa huomattavan ajanhyödyn.

Tässä tilassa kannattaa keskittyä vielä yhteen yksityiskohtaan. Tosiasia on, että viimeinen CBC-moodialgoritmin lähdössä saatu salatekstin lohko riippuu sekä lohkosalausavaimesta että alustusvektorista ja (mikä on tässä tapauksessa tärkeämpää) kaikista tekstin tekstin bitteistä. viesti. Ja tämä tarkoittaa, että tätä viimeistä salatekstilohkoa voidaan käyttää eräänlaisena viestin tunnisteena. Tällainen tunniste ei anna ulkopuoliselle tarkkailijalle mitään tietoa koko viestin sisällöstä kokonaisuutena ja samalla identifioi sen (viestin) lähes yksiselitteisesti. Lisäksi tämän tunnisteen väärentäminen ilman salausavainta K on yhtä vaikeaa kuin itse avaimen oikein arvaaminen.

2. SUUNNITTELUOSA

1 Toiminnallinen mallinnus

Ohjelmistotyökalun vaatimusten perusteella määritellään seuraavat toiminnot:

· Käyttäjän rekisteröinti kentillä:

o Kirjaudu sisään,

o Salasana,

o KOKO NIMI,

o Syntymäaika,

· Käyttäjän valtuutus kentillä:

o Kirjaudu sisään,

o Salasana;

· Alkuperäisen tekstin salaus;

· Salatekstin salauksen purku;

· Salauksen ja salauksen purkamisen loppuvaiheiden näyttäminen käyttäjälle onnistuneen valtuutuksen jälkeen.

2 Algoritminen suunnittelu

Yleinen IDEA-salausalgoritmi on esitetty alla (kuva 5).

Ohjelman käynnistämisen jälkeen käyttäjän on syötettävä valtuutuslomakkeeseen pari: kirjautuminen + salasana tai täytettävä rekisteröintilomake. Kun olet syöttänyt lomakkeiden merkit, salaustoiminto alkaa toimia, kun napsautat "Kirjaudu" tai "Rekisteröidy" -painiketta.

64-bittinen datalohko luetaan tiedostosta ja jaetaan neljään 16-bittiseen alilohkoon. Näistä neljästä alilohkosta tulee syöte algoritmin ensimmäiseen jaksoon. Kuvassa nämä alilohkot on merkitty D:ksi 1, D 2, D 3, D 4Jokainen kierros käyttää omia aliavaimiaan aliavaintaulukon mukaisesti (kuva 6). Aiemmin kuvatut ja algoritmikaaviossa esitetyt toiminnot suoritetaan 16-bittisille aliavaimille ja selkokielisille alilohkoille.

Se oli erittäin vaikea oppitunti, koska nämä kryptojärjestelmät suojelevat valtionsalaisuuksia. Voitko kertoa kuinka älykkäämpi se on? Mutta tänne, kiitos! Itse asiassa sinun ei pitäisi pelätä, tällä kertaa emme sukeltaa niin syvälle matematiikkaan ja harkitsemme salaustiloja - olet jo oppinut niiden periaatteet (no, tai et oppinut niitä). Käydään läpi ulkomaiset huippusalaukset ja katsotaan kuinka niitä käytetään käytännössä.

3DES-salausalgoritmi

Joten, ensimmäinen vieraiden salausten sarjassa, tarkastellaan 3DES:ää tai pikemminkin sen lähintä sukulaista DES:tä (Data Encryption Standard), joka, vaikka sitä ei enää käytetä sellaisenaan, on 3DES:n esi-isä.

DES:n kehitti IBM Science Labin matemaatikot, joihin kuului jo tuttu Feistel. Salauksen ensimmäinen versio oli nimeltään "Lucifer", mutta sitten sitä muutettiin ja sen seurauksena se hyväksyttiin viralliseksi tietojen salausalgoritmiksi (DEA). Se pysyi maailmanstandardina yli kaksikymmentä vuotta ennen kuin se korvattiin Triple DES:llä.

Harkitse, kuinka DES-salausalgoritmi toimii. Tätä varten on muistettava Feistel-verkoston toiminta. DES on 16 kierroksen Feistel-verkko, jossa on symmetriset salausavaimet. Tekstilohkon pituus on 64 bittiä, pyöreän näppäimen pituus on 48 bittiä. Käydään siis läpi DES-salauksen päävaiheet, jättäen pois ankara matemaattinen puoli:

  1. Teksti, kuten mikä tahansa muukin salaus, on jaettu 64 bitin lohkoihin.
  2. 56-bittisestä avaimesta luodaan 16 48-bittistä pyöreää avainta.
  3. Jokainen lohko on permutoitu, eli kaikki tulolohkon bitit sekoitetaan tietyn taulukon mukaan.
  4. Lohko jakautuu puoliksi ja siirtyy tuttuun Feistelin verkkoon, jossa rullataan 16 kierrosta.
  5. Yhdistämme puolikkaat.
  6. Ja vielä yksi muutos.

Alkuperäisillä ja viimeisillä permutaatioilla ei ole merkitystä DES:n kryptografialle. Molemmat permutaatiot ovat ilman avaimia, ja niiden taulukot ovat ennalta määritettyjä. Syy, miksi ne sisällytetään DES:ään, on epäselvä, eivätkä DES:n suunnittelijat ole sanoneet siitä mitään. Voidaan olettaa, että algoritmi oli tarkoitus toteuttaa laitteistossa (siruille) ja että näiden kahden monimutkaisen permutoinnin olisi pitänyt vaikeuttaa salausmekanismin simulointia ohjelmistossa.

Tässä itse asiassa kaikki, mitä sinun tarvitsee tietää DES-algoritmin toiminnasta. Jos perehtyy siihen, miten Feistel-verkossa määritetty toiminto toimii, niin siinä on kaikki hyvin. Se suorittaa sekä permutoinnin että korvaamisen (S-laatikot, kuten ehkä muistat edellisestä artikkelista) ja lisäämisen pyöreällä avaimella.

Mutta takaisin triple DES tai Triple DES. Se tuli tarpeelliseksi, koska 56-bittinen DES-avain oli alttiina raakalle voimalle, ja laskentatehon kasvaessa tämä ongelma tuli yhä akuutimmaksi. Nykyisen tekniikan avulla voidaan todentaa miljoona avainta sekunnissa. Tämä tarkoittaa, että kestäisi yli kaksituhatta vuotta purkaa DES:n salauksen raa'alla voimalla käyttämällä tietokonetta, jossa on vain yksi prosessori.

Mutta jos otamme tietokoneen, jossa on miljoona prosessoriytimiä ja jotka käsittelevät avaimia rinnakkain, voimme tarkistaa koko avainsarjan noin 20 tunnissa. Kun DES esiteltiin, tällaisen tietokoneen hinta oli useita miljoonia dollareita, mutta se laski nopeasti. Erityinen tietokone luotiin vuonna 1998 - ja se löysi avaimen 112 tunnissa.

Älykkäät ulkomaiset kryptografit ehdottivat kahden avaimen käyttöä ja DES:n käyttämistä kahdesti ratkaistakseen nopean avaimenhaun ongelman. Double DES oli kuitenkin alttiina "meet in the middle" -hyökkäykselle. Tämän hyökkäyksen toteuttamiseksi hyökkääjällä on oltava selkeä teksti ja sitä vastaava salateksti.

Hyökkääjä salaa selkeän tekstin kaikilla mahdollisilla avaimilla ja kirjoittaa tulokset taulukkoon 1. Sitten hän purkaa salakirjoituksen kaikilla mahdollisilla avaimilla ja kirjoittaa tuloksen taulukkoon 2. Seuraavaksi hyökkääjä etsii osumia taulukoista 1 ja 2. Tämän tyyppinen hyökkäys sisältää avainten murtamisen salatekstin ja selkeän tekstin puolella, ja se vaatii noin neljä kertaa enemmän laskentaa kuin tavallisen DES-avaimen murtaminen ja melko paljon muistia välitulosten tallentamiseen.

Käytännössä hyökkäys on kuitenkin mahdollinen, mikä tekee Double DES -algoritmista käyttökelvottoman.

Asiat ovat aivan toisin Triple DES:n kanssa. Kolmen avaimen käyttö ja algoritmien soveltaminen kaaviossa esitetyssä järjestyksessä pidensi DES:n käyttöikää vielä useilla vuosilla.

DES-salausalgoritmi

Joten mikä DES:ssä on niin hienoa? Tämä salausalgoritmi on analysoitu huolellisesti. DES:llä oli kaksi erittäin tärkeää lohkosalauksen ominaisuutta - lumivyöry ja täydellisyys. On aika laajentaa kryptografista sanastoasi!

Missä DES:ää käytetään? Kyllä, melkein kaikkialla, sen toteutukset ovat läsnä useimmissa ohjelmistokirjastoissa. Kuka kuitenkin tietää, kuinka turvallista DES:n käyttö on nykyään? Vaikka IBM väitti, että algoritmi oli seurausta 17 henkilötyövuoden intensiivisestä kryptausanalyysistä, jotkut ihmiset pelkäsivät, että NSA oli lisännyt algoritmiin porsaanreiän, jonka avulla virasto voisi helposti purkaa siepattujen viestien salauksen.

Yhdysvaltain senaatin tiedustelukomitea tutki tätä asiaa huolellisesti, eikä tietenkään löytänyt mitään, NSA:ta vastaan ​​esitetyt syytteet hylättiin, tutkimuksen tulokset ovat edelleen salaisia. Sanalla sanoen, Amerikassa liikkui pitkään huhuja ja olettamuksia siitä, pitäisikö DES:ään luottaa vai ei. Mutta mielestäni tilannetta tässä kuvataan sanonnalla "Älykäs ei kerro, tyhmä ei ymmärrä." Lopulta NSA myönsi, että he eivät voineet luottaa IBM:ään niin tärkeässä tehtävässä ja teki useita muutoksia, kuten S-boxien asettamisen.

Koko DES:n olemassaolon ajan se on ollut kohteena erilaisille kryptausanalyysimenetelmille. Kryptanalyytikot eivät koskaan lakanneet mittaamasta koneita DES:n avaamiseen - kuinka kauan joku voi purkaa tekstin salauksen. Tässä suhteessa on ilmestynyt lukematon määrä erilaisia ​​tämän algoritmin muunnelmia, ja 3DES ei ole kaukana niistä kehittynein.

AES-salausalgoritmi

Vuoden 1997 lopulla julkistetun AES-kilpailun voittajan Rijndael-algoritmin ovat kehittäneet kaksi belgialaista kryptografia - Joan Daemen ja Vincent Rijmen.

Salauksen vahvuuden varmistamiseksi Rijndael-algoritmi sisältää toistuvia kierroksia, joista jokainen koostuu korvauksista, permutaatioista ja avaimen lisäämisestä. Kuitenkin toisin kuin DES, salaus ja salauksen purku tässä algoritmissa ovat eri toimenpiteitä.

AES toimii 128-bittisillä tietolohkoilla ja 128-, 192- ja 256-bittisillä avaimilla. Käsitteellisesti se eroaa DES:stä, koska se ei perustu Feistel-verkkoon, vaan on substituutio-permutaatioverkko (SP-verkko), jota tarkastelemme nyt tarkemmin.

AES:ssä selkotekstitavuja ei jaeta kahteen osaan, kuten Feistel-verkossa, vaan ne kirjoitetaan muodossa - matriisi (kaksiulotteinen matriisi) tavuista, jotka on järjestetty tällä tavalla:

AES toimii seuraavilla toimilla:
1. ExpandKey - pyöreän avaimen laskenta kaikille kierroksille.
2. SubBytes - bittien korvaaminen korvaustaulukon (S-box) mukaan.
3. ShiftRows - muodon rivien syklinen siirto eri arvoilla. 4. MixColumns - tietojen sekoittaminen jokaisen lomakesarakkeen sisällä.
5. AddRoundKey - pyöreän avaimen lisääminen lomakkeeseen.

Nykyään AES on Yhdysvaltain hallituksen virallinen standardi symmetriselle salaukselle ja sitä käytetään laajalti. Itse asiassa tämä on yksi monipuolisimmista ulkomaisista salakirjoista tällä hetkellä. Mitä tulee AES:n turvallisuuteen, siinä, kuten useimmissa salakirjoissa, on joitain haavoittuvuuksia, ja kryptanalyytikot jatkavat niiden etsimistä. Tästä huolimatta AES on kuitenkin elävämpi kuin kaikki elävät.

IDEA-salausalgoritmi

IDEA (International Data Encryption Algorithm) on lohkosymmetrinen salausalgoritmi, jota ehdotettiin korvaamaan DES-standardi. IDEA-algoritmin ensimmäinen versio ilmestyi vuonna 1990. Algoritmi on patentoitu Yhdysvalloissa ja useimmissa Euroopan maissa. Hän omistaa Ascom Tech -patentin, mutta algoritmia voidaan käyttää ilmaiseksi ei-kaupallisiin tarkoituksiin.

Tämän salauksen lohkokoko on 64 bittiä, avaimen pituus on 128. On heti sanottava, että IDEA-algoritmi on listatuista nuorin ja sen matematiikka on erittäin monimutkaista. Hetki kryptografista sanakirjaa.

IDEA:ssa nämä ominaisuudet saavutetaan soveltamalla itsenäisiä matemaattisia operaatioita. Toisin kuin DES, jonka päätoiminto on XOR (moduuli 2 lisäys), IDEA tarjoaa:

XOR;
lisäys modulo 216;
kertolasku modulo (2¹6; + 1).

Näiden kolmen toiminnon yhdistelmä tarjoaa monimutkaisen syöttötiedon muunnoksen, mikä tekee IDEA:sta vaikeamman krypta-analyysin kuin DES:n.

IDEA-salaus kulkee kahdeksan kierrosta, ja jokaisella kierroksella selvätekstilohkoon tehdään muunnos matemaattisten operaatioiden avulla. "Peep to the root" -fanit voivat tarkastella alla olevaa IDEA-salauksen yhden kierroksen kaaviota. Tekstilohko, 64 bittiä, on jaettu 16 bitin alilohkoihin. Jokainen tällainen vastaanotettu lohko tulee kierroksen syötteeseen ja käy läpi monimutkaisen muunnoksen.

Ainutlaatuinen IDEA

"Mielestäni tämä on paras ja luotettavin tähän mennessä julkaistu lohkoalgoritmi", Bruce Schneier sanoo IDEA-algoritmista.

IDEA on todellakin erittäin kestävä monien matemaattisten toimintojensa ansiosta. Lisäksi tämän algoritmin etuja ovat korkea salausnopeus - lähes kaksi kertaa nopeampi kuin DES-algoritmilla (riippuen alustasta, jolla salaus suoritetaan). Salauksen purkunopeus kuitenkin hidastuu raskaiden laskentaoperaatioiden vuoksi, kertolaskumoduulin käänteinen (216 + 1).

Tietysti viisaat kryptografit yrittivät suorittaa kaikenlaisia ​​hyökkäyksiä tätä monimutkaista salausta vastaan. Menestyksen saavutti hyökkäyksen toteuttanut Paul Hawker olettaen, että kryptaanalyytikolla ei ole suoraa pääsyä haluttuun avaimeen (esimerkiksi avain on upotettu johonkin laitteiston salaukseen tai älykorttiin), mutta voi muuttaa erilaisia ​​avaimen fragmentteja tietty tapa.

IDEA-algoritmista ei tullut kansainvälistä salausstandardia, kuten sen laatijat toivoivat. Sitä voidaan kuitenkin pitää yhtenä maailman laajimmin käytetyistä salausalgoritmeista. IDEA:ta käytetään monissa sovelluksissa, mukaan lukien tunnettu ja laajalti käytetty PGP-tietosuojaprotokolla.

KALA BRUCE SCHNEYER

Bruce Schneier on merkittävä hahmo kryptografiassa nykyään. Hän on matkustanut puoleen maailmaan pitäen luentoja ja seminaareja, ja hänen kirjojaan suositellaan vahvasti kryptografian tuntemiseen pyrkiville. Ja tietenkään tällainen kuuluisa henkilö ei haluaisi tulla tunnetuksi suutarina ilman saappaita - hän itse on kryptokehittäjien ryhmän jäsen.

Tutustumme lyhyesti joihinkin hänen tunnetuimpiin aivolapsiensa - Blowfish-, Twofish- ja Threefish-salausalgoritmeihin.

Blowfish-salausalgoritmi

Blowfish oli ensimmäinen, joka syntyi. Schneierin itsensä mukaan tämä algoritmi on suunniteltu toteutettavaksi suurilla mikroprosessoreilla. Siksi se on kompakti (vain 5 KB muistia) ja yksinkertainen (käyttää yksinkertaisia ​​matemaattisia operaatioita - yhteenlaskua, XOR:ta ja hakemista taulukosta). Algoritmin avulla voit myös säätää avaimen pituutta (jopa 448 bittiä).

32-bittisillä prosessoreilla Blowfish suorittaa salauksen paljon nopeammin kuin DES, mutta älylevyillä se ei yksinkertaisuutensa vuoksi ole erityisen sovellettavissa. Blowfish perustuu 16 kierroksen Feistelin verkkoon, joka sinun pitäisi jo ymmärtää hyvin.

Algoritmi on toteutettu joissakin ohjelmistotuotteissa (FolderBolt, Nautilus, PGPfone), mutta nyt se on jo menettämässä merkityksensä.

Twofish-salausalgoritmi

Ensimmäisen kalan jälkeen ilmestyi kaksi muuta - Schneier ja yritys kehittivät uuden Twofish-algoritmin AES-kilpailua varten. Schneierin työ pääsi viiden parhaan finalistin joukkoon, mutta ei tullut voittajaksi, vaikka sillä oli tähän kaikki mahdolliset edut. Tämä:

128-bittinen lohkosymmetrinen salaus;
avaimen pituus: 128, 192 ja 256 bittiä;
tehokas ohjelmisto (pääasiassa 32-bittisille prosessoreille) ja laitteistototeutus;
joustavuus (mahdollisuus käyttää pidempää avainta, soveltuvuus suoratoiston salaukseen, hash-funktiot ja niin edelleen); algoritmin yksinkertaisuus - se on kätevä analysoida.

Kuitenkin verrattuna Rijndaeliin, joka otti AES-jalustan, Twofish oli vaikeampi jäsentää ja sillä oli hitaampi salausnopeus. Tämä algoritmi perustuu Blowfishin lisäyksillä ja on myös Feistelin verkko.

Kilpailussa salakirjoitukseen tehtiin erilaisia ​​krypta-analyysejä. Verrattuna muihin AES-kilpailun finalisteihin hän osoittautui sinnikkäimmäksi. Sen epätavallinen rakenne ja suhteellinen monimutkaisuus ovat kuitenkin herättäneet epäilyksiä tämän lujuuden laadusta. Tällä hetkellä Twofishia käytetään vielä harvemmin kuin edeltäjäänsä.

Threefish-salausalgoritmi

"Kolmannen kerran vanha mies heitti verkon mereen ..." ja kymmenen vuotta myöhemmin saatiin Threefish-salakirja. Tällä kertaa Schneier päätti ohittaa AES:n ja otti huomioon kaikki aiemman kokemuksen puutteet. Salauskirjoittaja ei ottanut Feistel-verkkoa perustana, vaan toteutti substituutio-permutaatioverkkoon (SP-verkkoon) perustuvan salauksen, kuten AES:ssä. Tällainen verkko perustuu XOR-, lisäys- ja kiertotoimintojen yhdistelmään. Yksinkertaistetussa muodossa kaikki näyttää tältä:

Yksinkertaisten toimintojen ansiosta Threefish ylittää huomattavasti AES:n nopeudessa. Lisäksi tekijöiden mukaan algoritmilla on korkeampi turvallisuustaso kuin AES:llä. Hyökkäys on 25 kierrosta 72 Threefishia vastaan, kun taas AES:lle - 6/10. Joten Bruce Schneier sai voittonsa, vaikkakin myöhässä.

Salaus toimi perustana Skein hash -funktion luomiselle, joka kilpaili SHA-3:n paikasta. Itse Threefissiä käytetään ja toteutetaan laajasti monien ohjelmointikielien kirjastoissa.

PÄÄTELMÄT

Lopuksi on todettava, että kaikki länsimaiset kryptografit ovat tietysti hyvin tehtyjä, ja he ovat kehittäneet vaunun ja pienen kärryn erilaisia ​​salausalgoritmeja. Jotkut ovat vahvempia, jotkut nopeampia. Mutta toistaiseksi kaikki vertaavat niitä DES:iin ja AES:iin, koska nämä ovat klassikoita.

Seuraavassa artikkelissa tutustumme sähköisiin allekirjoituksiin, jotka ovat erittäin siisti ja tärkeä salausväline.

Linkit:

Tämä on Diving into Crypto -sarjan ensimmäinen oppitunti. Kaikki syklin oppitunnit kronologisessa järjestyksessä:

  • Perusteet, historialliset salaukset, kuinka vaihtosalaukset, korvaavat salaukset, Richard Sorge, Vernam salaus ja salauskoneet toimivat (ja analysoidaan) (Oletko täällä)
  • . osa 2. Mikä se on, kuinka avaimet jaetaan ja miten vahva avain valitaan
  • Mikä on Feistel-verkko, mitä kotimaisia ​​lohkosalauksia käytetään nykyaikaisissa protokollissa - GOST 28147-89, Grasshopper
  • Nykyaikaiset ulkomaiset salaukset. Osa 4 Mikä se on, miten ne toimivat ja mitä eroa on 3DES:n, AES:n, Blowfishin, IDEA:n ja Threefishin välillä, kirjoittanut Bruce Schneiderin
  • Sähköinen allekirjoitus. EP-tyypit, miten ne toimivat ja miten niitä käytetään
  • kvantti kryptografia. Mikä se on, missä sitä käytetään ja miten se auttaa salaisten avainten jakelussa, satunnaislukujen luomisessa ja sähköisessä allekirjoituksessa

Päivitetty viimeksi 12. heinäkuuta 2016 .

Alkuperäinen versio IDEA-algoritmista ilmestyi vuonna 1990. Algoritmin kehittäjät Xuejia Lai ja James Massey Sveitsin ETH Zurich Institutesta antoivat sille nimen PES (Proposed Encryption Standard - ehdotettu salausstandardi), koska tätä algoritmia ehdotettiin korvaa DES-standardin. On syytä huomata, että ETH Zurich Institute ja professori James Massey tunnetaan myös kehittämiensä SAFER/SAFER+/SAFER++-perheiden algoritmeista.

Vuotta myöhemmin algoritmia muutettiin lisäämään kryptografista vastustuskykyä differentiaalista kryptausanalyysiä vastaan. Uuden version nimi oli IPES (Parannettu PES - parannettu PES), ja vuotta myöhemmin algoritmi muutti nimensä IDEA:ksi (International Data Encryption Algorithm - kansainvälinen tietojen salausalgoritmi).

Pääominaisuudet ja rakenne

IDEA-algoritmi salaa tiedot 64-bittisinä lohkoina, ja algoritmin salausavaimen koko on 128 bittiä. Salatun datan lohko on jaettu neljään 16-bittiseen alilohkoon A, B, C ja D (kuva 1), joissa suoritetaan kahdeksan muunnoskierrosta:

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,

missä Krn - kierroksen r aliavain n, "+" - 16-bittisten operandien yhteenlasku modulo 2 (16. potenssiin), [+] - bittikohtainen looginen operaatio "poissulkeva tai" (XOR), [x] - kertolasku 16 - bittioperandit modulo (2(16. potenssiin) + 1), ja vain noloista koostuvan alilohkon arvoksi otetaan 2(16. potenssiin).

Yllä olevien vaiheiden suorittamisen jälkeen kaksi sisempää alilohkoa (B ja C) vaihdetaan - kaikilla kierroksilla paitsi viimeisellä. Kahdeksan kierroksen jälkeen suoritetaan lisämuunnoksia (jota joskus kutsutaan algoritmin yhdeksänneksi kierrokseksi):

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

Salateksti on tulos vastaanotettujen arvojen A, B, C ja D yhdistämisestä.

Salauksen purkutoiminto on samanlainen kuin salaus, sillä erolla, että muokattuja aliavaimia käytetään salauksen purkamisen aikana ja eri järjestyksessä:

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 \u003d K (9-r) 5 K "r6 \u003d K (9-r) 6,

lukuun ottamatta kierroksia 1 ja 9, joissa aliavaimia K"r2 ja K"r3 vaihdetaan. Tässä K "rn on n salauksenpurkukierroksen aliavain r, -x ja x-1 ovat x:n käänteislukuja suhteessa edellä kuvattuihin operaatioihin modulo 2 yhteenlasku (16. asteeseen) ja modulo kertolasku (2 16. aste) + 1), missä 0 (-1. potenssiin) = 0.

Avaimen laajennusmenettely

Avaimenlaajennusproseduurin tehtävänä on luoda 52 salauskierroksilla ja lisämuunnoksissa käytettävää 16-bittistä aliavainta (eli yhteensä 832 bittiä avaintietoa). Tämä menettely on hyvin yksinkertainen, ja se suoritetaan seuraavasti:

  1. 128-bittinen salausavain on jaettu kahdeksaan 16-bittiseen aliavaimeen; niistä tulee algoritmin kahdeksan ensimmäistä aliavainta (K11, K12, K13, K14, K15, K16, K21, K22).
  2. Salausavainta käännetään vasemmalle 25 bittiä.
  3. Tulos on jaettu seuraaviin kahdeksaan aliavaimeen.
  4. Salausavainta siirretään syklisesti vasemmalle 25 bittiä ja niin edelleen, kunnes tarvittava määrä aliavaimia on luotu.

Algoritmin kryptografinen vahvuus

Jo seuraavana vuonna, PES-algoritmin ilmestymisen jälkeen, sen kirjoittajat julkaisivat artikkelin, jossa todistettiin algoritmin heikkous suhteessa differentiaaliseen kryptausanalyysiin (katso esimerkiksi artikkeli "BYTE / Russia" No 11 "2004) : salausavaimen määrittämiseen riittää, että suoritetaan 2 (64 potenssiin) salausoperaatiota, kun taas 128-bittisen avaimen arvojen täydellinen luetteleminen vaatisi 2 (128 potenssiin) toimintoa.

IDEA-algoritmi ilmestyi PES-algoritmin melko pienten muutosten seurauksena (kuva 2). Jos vertaamme IDEA- ja PES-algoritmijärjestelmiä, eroja ei ole niin paljon:

  • alilohkon B kertolasku kierroksen toisella aliavaimella korvataan yhteenlaskuoperaatiolla,
  • alilohkon D yhteenlaskuoperaatio kierroksen neljännellä aliavaimella korvataan kertolaskuoperaatiolla,
  • muussa tapauksessa alilohkoja siirretään kierroksen lopussa.

Kuten Bruce Schneier, yksi maailman tunnetuimmista kryptologeista, totesi kirjassaan Applied Cryptography, "...on hämmästyttävää, kuinka pienet muutokset voivat johtaa niin suuriin eroihin." IDEA-algoritmi osoittautui käytännössä immuuniksi differentiaaliselle kryptausanalyysille, ja samassa kirjassa (julkaistu vuonna 1996) Bruce Schneier kommentoi sitä seuraavasti: "Mielestäni tämä on paras ja luotettavin tähän mennessä julkaistu lohkoalgoritmi."

Kuitenkin samana vuonna 1996 tunnettu kryptanalyytikko Paul Kocher (Paul Kocher) keksi melko vaikeasti toteutettavan hyökkäyksen, joka toistuvien erittäin tarkkojen salauksen suoritusajan mittausten avulla oli satunnaisesti 2 (20. asteeseen asti). valitut selkeät tekstit avaimista, jotka liittyvät tietyllä suhteella haluttuun avaimeen, ja tulosten myöhempi analyysi halutun salausavaimen laskemiseksi. Tämä hyökkäys (kuten muutkin linkitetyn avaimen hyökkäykset) olettaa, että kryptaanalyytikolla ei ole suoraa pääsyä haluttuun avaimeen (esimerkiksi avain on upotettu johonkin laitteiston salaukseen tai älykorttiin), mutta hän voi muokata erilaisia ​​avaimen fragmentteja tietyllä tavalla. .

Ja aiemmin, vuonna 1993, useat belgialaiset kryptologit löysivät IDEA-algoritmissa useita heikkojen avainten luokkia (vain 2 (23. potenssiin) + 2 (35. potenssiin) + 2 (51. potenssiin) avainta, joilla on eri asteisia avaimia. heikkous), joista osa voidaan esimerkiksi laskea kryptanalyyttisellä hyökkäyksellä valitulla selkeällä tekstillä. Kuitenkin tämän hyökkäyksen kirjoittajat itse ehdottivat "vastalääkettä" - heikot avaimet suljetaan pois XOR-korjaamalla erityinen heksadesimaalivakio 0DAE jokaiseen aliavaimeen ennen sen käyttöä.

Siten tunnistetuista puutteista huolimatta IDEA-algoritmia pidetään algoritmina, jolla on korkea kryptografinen vahvuus. Tämän algoritmin kiistaton etu on korkea salausnopeus, joka on vähintään kaksinkertainen DES-algoritmiin verrattuna (riippuen alustasta, jolla salaus suoritetaan). Ja kyky suorittaa avaimen laajennustoiminto "lennossa" (eli samanaikaisesti salauskierrosten suorittamisen kanssa) on myös erittäin tervetullut nykyaikaisemmissa salausalgoritmeissa. On kuitenkin sanottava, että salauksen purkunopeus on jonkin verran hidastunut johtuen resurssivaltaisista operaatioista laskettaessa kertolaskuja modulo (2 (16. potenssiin) + 1).

***

IDEA-algoritmista ei tullut kansainvälistä salausstandardia, kuten sen laatijat toivoivat. Sitä voidaan kuitenkin pitää yhtenä maailman laajimmin käytetyistä salausalgoritmeista. IDEA:ta käytetään edelleen monissa eri sovelluksissa, mukaan lukien laajalti tunnetussa ja käytetyssä PGP-tietosuojaohjelmassa.

symmetrinen algoritmi salaus, jonka ovat kehittäneet Xuejia Lai ja James Massey Sveitsin liittovaltion teknologiainstituutista. Alkuperäinen versio julkaistiin vuonna 1990. Algoritmin tarkistettu versio, jota vahvistettiin suojauksella differentiaalisia kryptografisia hyökkäyksiä vastaan, esiteltiin vuonna 1991 ja kuvattiin yksityiskohtaisesti vuonna 1992.

IDEA on yksi useista symmetrisistä salausalgoritmeista, joiden oli alun perin tarkoitus korvata DES.

Kehittämisperiaatteet

IDEA on lohkoalgoritmi, joka käyttää 128-bittistä salausavain tiedot 64-bittisinä lohkoina.

IDEA-kehityksen tavoitteena oli luoda suhteellisen vahva salausalgoritmi melko yksinkertaisella toteutuksella.

Kryptografinen vahvuus

Seuraavat IDEA:n ominaisuudet kuvaavat sen kryptografista vahvuutta:

  1. Lohkon pituus: Lohkon pituuden on oltava riittävä piilottamaan kaikki alkuperäisen viestin tilastolliset ominaisuudet. Toisaalta kryptografisen toiminnon toteuttamisen monimutkaisuus kasvaa eksponentiaalisesti lohkon koon myötä. 64-bittisen lohkon käyttö 90-luvulla tarkoitti tarpeeksi tehoa. Lisäksi CBC-salausmoodin käyttö osoittaa algoritmin tämän puolen vahvistumisen edelleen.
  2. Avaimen pituus: Avaimen pituuden on oltava riittävän suuri estämään avaimen yksinkertaisen numeroinnin. 128 bitin avaimen pituudella IDEA:ta pidetään melko turvallisena.
  3. Hämmennys: salatekstin täytyy riippua avaimesta monimutkaisella ja hämmentävällä tavalla.
  4. Diffuusio: jokaisen selkeän tekstin bitin tulee vaikuttaa jokaiseen salatekstin bittiin. Yhden salaamattoman bitin levittäminen suurelle määrälle salattuja bittejä hämärtää selkeän tekstin tilastollisen rakenteen. Sen määrittäminen, kuinka salatekstin tilastolliset ominaisuudet riippuvat selkeän tekstin tilastollisista ominaisuuksista, ei pitäisi olla helppoa. IDEA tästä näkökulmasta on erittäin tehokas algoritmi.

IDEA:ssa kaksi viimeistä vaihetta tehdään kolmella toiminnolla. Tämä erottaa sen DES:stä, jossa kaikki perustuu toiminnon käyttöön XOR ja pienet epälineaariset S-laatikot.

Jokainen toiminto suoritetaan kahdelle 16-bittiselle sisääntulolle ja tuottaa yhden 16-bittisen ulostulon. Nämä toiminnot ovat:

Nämä kolme toimintoa eivät ole yhteensopivia siinä mielessä, että:

Näiden kolmen toiminnon yhdistelmän käyttö tarjoaa monimutkaisen syötteen muunnoksen, mikä tekee kryptausanalyysistä vaikeampaa kuin algoritmissa, kuten DES, joka perustuu pelkästään funktioon. XOR.

Salaus

Harkitse yleistä IDEA-salausjärjestelmää. Kuten missä tahansa salausalgoritmissa, on kaksi tuloa: selvätekstilohko ja avain. Tässä tapauksessa salaamaton lohko on 64 bittiä pitkä, avain 128 bittiä pitkä.

Koostuu kahdeksasta kierroksesta, jota seuraa lopullinen muunnos. Algoritmi jakaa lohkon neljään 16-bittiseen alilohkoon. Jokainen kierros ottaa neljä 16-bittistä alilohkoa syötteenä ja tuottaa neljä 16-bittistä alilohkoa. Lopullinen muunnos ottaa myös neljä 16-bittistä alilohkoa syötteenä ja luo neljä 16-bittistä alilohkoa. Jokainen kierros käyttää kuutta 16-bittistä avainta, lopullinen muunnos käyttää neljää aliavainta, ts. Yhteensä algoritmissa käytetään 52 aliavainta.


Riisi. 3.1.
Yhden kierroksen muunnossarja

Harkitse yhden kierroksen muunnossarjaa.

Yksi diffuusion tarjoavan algoritmin pääelementeistä on rakenne nimeltä MA (kerto-/lisäys):


Riisi. 3.2.

Tämä rakenne vastaanottaa kaksi 16-bittistä arvoa ja kaksi 16-bittistä aliavainta tulona ja tuottaa kaksi 16-bittistä arvoa ulostulona. Kattava tietokonetarkistus osoittaa, että tämän rakenteen jokainen tulosteen bitti riippuu tyhjennyslohkon tulojen jokaisesta bitistä ja jokaisesta aliavaimien bitistä. Tämä rakenne toistetaan kahdeksan kertaa algoritmissa, mikä tarjoaa erittäin tehokkaan diffuusion.

Kierros alkaa muunnolla, joka yhdistää neljä syöteosalohkoa neljään alilohkoon käyttämällä yhteen- ja kertolaskuoperaatioita. Tämän muunnoksen neljä lähtölohkoa yhdistetään operaatiolla XOR muodostaa kaksi 16-bittistä lohkoa, jotka ovat syötteitä MA-rakenteeseen. Lisäksi MA-rakenteessa on kaksi lisätuloa ja se luo kaksi 16-bittistä lähtöä.


Riisi. 3.3.

Lopuksi ensimmäisen muunnoksen neljä lähtöalilohkoa yhdistetään MA-rakenteen kahteen lähtöalilohkoon käyttämällä XOR luodaksesi tämän iteroinnin neljä lähtöalilohkoa. Huomaa, että kaksi ulostuloa, jotka on osittain luotu toisella ja kolmannella tulolla (X 2 ja X 3 ), vaihdetaan toisen ja kolmannen ulostulon (W 12 ja W 13 ) luomiseksi. Tämä lisää bittien sekoittamista ja tekee algoritmista kestävämmän differentiaalinen kryptausanalyysi.

Tarkastellaan algoritmin yhdeksättä kierrosta, joka on nimetty lopulliseksi muunnokseksi. Tämä on sama rakenne kuin edellä on kuvattu. Ainoa ero on, että toinen ja kolmas tulo ovat päinvastaisia. Tämä tehdään siten, että salauksen purkulla on sama rakenne kuin salauksella. Huomaa, että yhdeksäs vaihe vaatii vain neljä tuloa.