Johdatus nykyaikaisten symmetristen avainsalausten perusteisiin. Helppo vaihtotila. Mikä on salaus

Sergei Panasenko,
kehitysosaston johtaja ohjelmisto"Ankad" yritys
[sähköposti suojattu]

Peruskäsitteet

Prosessia, jossa avoin data muunnetaan salatuiksi tiedoiksi ja päinvastoin, kutsutaan yleensä salaukseksi, ja tämän prosessin kahta osaa kutsutaan salaukseksi ja salauksen purkuksi. Matemaattisesti tämä muunnos on esitetty seuraavat riippuvuudet, jossa kuvataan toimintoja alkutiedoilla:

C = Ek1(M)

M" = Dk2(C),

missä M (viesti) - avointa tietoa(tietoturvaa käsittelevässä kirjallisuudessa sitä kutsutaan usein " lähde");
C (salausteksti) - salauksen tuloksena saatu salateksti (tai kryptogrammi);
E (salaus) - salaustoiminto, joka suorittaa kryptografisia muunnoksia lähdetekstissä;
k1 (avain) - funktion E parametri, jota kutsutaan salausavaimeksi;
M" - salauksen purkamisen tuloksena saatu tieto;
D (salauksen purku) - salauksen purkutoiminto, joka suorittaa käänteisiä kryptografisia muunnoksia salatekstille;
k2 on avain, jota käytetään tietojen salauksen purkamiseen.

"Avain" käsite standardissa GOST 28147-89 (algoritmi symmetrinen salaus) määritellään seuraavasti: "salausmuunnosalgoritmin joidenkin parametrien tietty salainen tila, joka varmistaa yhden muunnoksen valinnan mahdollisten joukosta tästä algoritmista muunnoksia". Toisin sanoen avain on ainutlaatuinen elementti, jolla voit muuttaa salausalgoritmin tuloksia: sama lähdeteksti käytettynä erilaisia ​​avaimia salataan eri tavalla.

Jotta salauksenpurkutulos vastaisi alkuperäistä viestiä (eli jos M" = M), kahden ehdon on täytyttävä samanaikaisesti. Ensinnäkin salauksenpurkutoiminnon D on vastattava salaustoimintoa E. Toiseksi salauksenpurkuavaimen k2 on vastattava salausta avain k1.

Jos salaukseen käytettiin kryptografisesti vahvaa salausalgoritmia, niin oikean avaimen k2 puuttuessa on mahdotonta saada M" = M. Salauksen vahvuus on salausalgoritmien pääominaisuus ja osoittaa ensisijaisesti alkuperäisen saamisen monimutkaisuuden astetta teksti salatusta tekstistä ilman avainta k2.

Salausalgoritmit voidaan jakaa kahteen luokkaan: symmetrisiin ja epäsymmetrinen salaus. Ensin mainitulle salaus- ja salauksenpurkuavainten suhde on määritelty k1 = k2 = k (eli funktiot E ja D käyttävät samaa salausavainta). Epäsymmetrisessä salauksessa salausavain k1 lasketaan avaimesta k2 siten, että käänteinen muunnos mahdotonta esimerkiksi käyttämällä kaavaa k1 = ak2 mod p (a ja p ovat käytetyn algoritmin parametreja).

Symmetrinen salaus

Symmetrinen salausalgoritmit juontavat juurensa muinaisista ajoista: Rooman keisari Gaius Julius Caesar käytti tätä tiedon piilotusmenetelmää 1. vuosisadalla eKr. e., ja hänen keksimänsä algoritmi tunnetaan nimellä "Caesar-salausjärjestelmä".

Tällä hetkellä tunnetuin symmetrinen salausalgoritmi on DES (Data Encryption Standard), joka kehitettiin vuonna 1977. Viime aikoihin asti se oli "USA-standardi", koska maan hallitus suositteli sen käyttöä käyttöönotossa. erilaisia ​​järjestelmiä tietojen salaus. Huolimatta siitä, että DES:ää alun perin suunniteltiin käytettäväksi enintään 10-15 vuoden ajan, sen korvaamisyritykset aloitettiin vasta vuonna 1997.

Emme käsittele DES:ää yksityiskohtaisesti (melkein kaikissa lisämateriaaliluettelon kirjoissa on se yksityiskohtainen kuvaus), ja siirrytään nykyaikaisempiin salausalgoritmeihin. On vain syytä huomata, että pääasiallinen syy salausstandardin muuttamiseen on sen suhteellisen heikko kryptografinen vahvuus, jonka syynä on se, että DES-avaimen pituus on vain 56 merkitseviä bittejä. Tiedetään, että mikä tahansa vahva salausalgoritmi voidaan murtaa kokeilemalla kaikkia mahdollisia salausavaimia (ns. raakaa voimaa- raa'an voiman hyökkäys). On helppo laskea, että miljoonan prosessorin klusteri, joista jokainen laskee miljoona avainta sekunnissa, tarkistaa 256 DES-avaimen muunnelmaa lähes 20 tunnissa laskentatehoa ovat melko todellisia, on selvää, että 56-bittinen avain on liian lyhyt ja DES-algoritmi on korvattava vahvemmalla.

Nykyään kahta modernia vahvaa salausalgoritmia käytetään yhä enemmän: kotimainen standardi GOST 28147-89 ja uusi Yhdysvaltain salausstandardi - AES (Advanced Encryption Standard).

Standardi GOST 28147-89

GOST 28147-89:n määrittelemän algoritmin (kuva 1) salausavaimen pituus on 256 bittiä. Se salaa tiedot 64-bittisiksi lohkoiksi (tällaisia ​​algoritmeja kutsutaan lohkoalgoritmeiksi), jotka sitten jaetaan kahteen 32-bittiseen alilohkoon (N1 ja N2). Alilohko N1 käsitellään tietyllä tavalla, minkä jälkeen sen arvo lisätään alilohkon N2 arvoon (lisäys suoritetaan modulo 2, eli looginen XOR-toiminta- "yksinomainen tai"), ja sitten alilohkot vaihdetaan. Tämä muunnos käynnissä tietty määrä kertaa ("kierrokset"): 16 tai 32 algoritmin toimintatilasta riippuen. Jokaisella kierroksella suoritetaan kaksi operaatiota.

Ensimmäinen on näppäily. Osalohkon N1 sisältö lisätään modulo 2 avaimen Kx 32-bittisellä osalla. Täysi avain salaus esitetään 32-bittisten aliavaimien ketjuna: K0, K1, K2, K3, K4, K5, K6, K7. Salausprosessin aikana käytetään yhtä näistä aliavaimista riippuen pyöreästä numerosta ja algoritmin toimintatavasta.

Toinen operaatio - pöydän vaihto. Avainnoinnin jälkeen alilohko N1 jaetaan 8 osaan 4 bittiä, joiden kunkin arvo korvataan tämän alilohkon osan korvaustaulukon mukaisesti. Alilohkoa kierretään sitten vasemmalle 11 bittiä.

Taulukkokorvaukset(Substituutiolaatikko - S-box) käytetään usein nykyaikaisissa salausalgoritmeissa, joten on syytä selittää, miten tällainen toiminta järjestetään.

Lohkojen lähtöarvot kirjataan taulukkoon. Tietyn ulottuvuuden tietolohkolla (tapauksessamme 4-bittisellä) on oma numeerinen esitys, joka määrittää lähtöarvon numeron. Jos S-laatikko näyttää esimerkiksi 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1 ja 4-bittinen lohko "0100" tuli syötteeseen (arvo 4), silloin taulukon mukaan lähtöarvo on 15, eli "1111" (0 a 4, 1 a 11, 2 a 2 ...). GOST 28147-89:n määrittelemä algoritmi tarjoaa neljä toimintatilaa: yksinkertainen vaihto, pelaaminen, pelaaminen palautetta

ja jäljitelmien etuliitteiden luominen. Niissä käytetään samaa yllä kuvattua salausmuunnosta, mutta koska moodien tarkoitus on erilainen, tämä muunnos suoritetaan jokaisessa niistä eri tavalla. tilassa helppo vaihtaa

Kunkin 64-bittisen tietolohkon salaamiseksi suoritetaan edellä kuvatut 32 kierrosta. Tässä tapauksessa 32-bittisiä aliavaimia käytetään seuraavassa järjestyksessä:

K0, K1, K2, K3, K4, K5, K6, K7, K0, K1 jne. - kierroksilla 1-24;

K7, K6, K5, K4, K3, K2, K1, K0 - kierroksilla 25-32. tämä tila suoritetaan täsmälleen samalla tavalla, mutta hieman erilaisella aliavaimien käyttöjärjestyksessä:

K0, K1, K2, K3, K4, K5, K6, K7 - kierroksilla 1-8;

K7, K6, K5, K4, K3, K2, K1, K0, K7, K6 jne. - kierroksilla 9-32.

Kaikki lohkot salataan toisistaan ​​riippumatta, eli kunkin lohkon salaustulos riippuu vain sen sisällöstä (alkuperäisen tekstin vastaava lohko). Jos alkuperäistä (pelkkää) tekstiä on useita identtisiä lohkoja, vastaavat salatekstilohkot ovat myös identtisiä, mikä antaa lisää hyödyllistä tietoa kryptanalyytikolle, joka yrittää murtaa salauksen. Siksi tätä tilaa käytetään pääasiassa itse salausavaimien salaamiseen (usein käytetään moniavaimen järjestelmiä, joissa avaimet salataan useista syistä toisiinsa). Itse tiedon salaamiseen on tarkoitettu kaksi muuta toimintatilaa - gamma ja gamma palautetta käyttäen.

IN gamma-tila jokainen lohko selkeä teksti bittittäin lisätty modulo 2 64-bittisellä salausgammalohkolla. Gammasalaus on erityinen sekvenssi, joka saadaan tiettyjen operaatioiden tuloksena rekistereillä N1 ja N2 (katso kuva 1).

1. Niiden alkutäyttö kirjoitetaan rekistereihin N1 ja N2 - 64-bittinen arvo, jota kutsutaan synkronointiviestiksi.

2. Rekistereiden N1 ja N2 sisältö on salattu (in tässä tapauksessa- synkronoida viestit) yksinkertaisessa vaihtotilassa.

3. Rekisterin N1 sisältö lisätään modulo (232 - 1) vakiolla C1 = 224 + 216 + 28 + 24 ja summauksen tulos kirjoitetaan rekisteriin N1.

4. Rekisterin N2 sisältö lisätään modulo 232 vakiolla C2 = 224 + 216 + 28 + 1 ja summauksen tulos kirjoitetaan rekisteriin N2.

5. Rekistereiden N1 ja N2 sisältö tulostetaan salauksen 64-bittisenä gammalohkona (tässä tapauksessa N1 ja N2 muodostavat ensimmäisen gammalohkon).

Jos tarvitaan seuraava gammalohko (eli salausta tai salauksen purkamista on jatkettava), se palaa vaiheeseen 2.

Salauksen purkamista varten gamma generoidaan samalla tavalla, ja sitten salateksti ja gammabitit XOR-koodataan jälleen. Koska tämä toiminto on palautuva, oikein kehitetyn asteikon tapauksessa saadaan alkuperäinen teksti (taulukko).

Salaus ja salauksen purku gammatilassa

Gamman salauksen purkamiseen tarvittavan salauksen kehittämiseksi kryptogrammin salauksen purkavalla käyttäjällä on oltava sama avain ja sama synkronointisanoman arvo, joita käytettiin tiedon salauksessa. Muuten ei ole mahdollista saada alkuperäistä tekstiä salatusta tekstistä.

Useimmissa GOST 28147-89 -algoritmin toteutuksissa synkronointiviesti ei ole salainen, mutta on järjestelmiä, joissa synkronointiviesti on sama salainen elementti kuin salausavain. Tällaisissa järjestelmissä algoritmin tehollista avaimen pituutta (256 bittiä) kasvatetaan vielä 64 bitillä salaista synkronointiviestiä, jota voidaan myös pitää avainelementtinä.

Palaute-gammamoodissa N1- ja N2-rekisterien täyttämiseen 2. lohkosta alkaen ei käytetä edellistä gammalohkoa, vaan edellisen selvätekstilohkon salauksen tulosta (kuva 2). Ensimmäinen lohko tässä tilassa generoidaan täysin samalla tavalla kuin edellinen.

Riisi. 2. Salausgamman kehittäminen gammatilassa palautteen avulla.

Tila huomioon ottaen jäljitelmien etuliitteiden sukupolvi, sukupolven aiheen käsite olisi määriteltävä. Jäljitelmäetuliite on kryptografinen tarkistussumma, joka on laskettu käyttämällä salausavainta ja suunniteltu varmistamaan viestien eheys. Jäljitelmäetuliitettä luotaessa suoritetaan seuraavat toiminnot: tietotaulukon ensimmäinen 64-bittinen lohko, jolle lasketaan jäljitelmäetuliite, kirjoitetaan rekistereihin N1 ja N2 ja salataan supistetussa yksinkertaisessa korvaustilassa ( 16 ensimmäistä erää 32:sta suoritetaan). Tuloksena oleva tulos summataan modulo 2 seuraavan tietolohkon kanssa ja tulos tallennetaan N1:een ja N2:een.

Jakso toistuu viimeiseen tietolohkoon asti. Näiden muunnosten tuloksena syntyvää N1- ja N2-rekisterien 64-bittistä sisältöä tai niiden osaa kutsutaan imitaatioetuliitteeksi. Jäljitelmän etuliitekoko valitaan viestien vaaditun luotettavuuden perusteella: jäljitelmäetuliiteen pituudella r bittiä todennäköisyys, että viestin muutos jää huomaamatta, on useimmiten 32-r. käytetään bittijäljitelmäetuliitettä, eli puolet rekisterien sisällöstä. Tämä riittää, koska, kuten mikä tahansa tarkistussumma, jäljitelmäliite on tarkoitettu ensisijaisesti suojaamaan vahingossa tapahtuvalta tiedon vääristymiseltä. Tietojen tahallisilta muutoksilta suojaamiseksi, muu kryptografiset menetelmät- ensisijaisesti sähköinen digitaalinen allekirjoitus.

Tietoa vaihdettaessa jäljitelmäetuliite toimii eräänlaisena etuliiteenä lisäkeinoja ohjata. Se lasketaan selkeälle tekstille, kun kaikki tiedot on salattu, ja lähetetään salatekstin mukana. Salauksen purkamisen jälkeen jäljitelmäetuliitteelle lasketaan uusi arvo ja sitä verrataan lähetettyyn arvoon. Jos arvot eivät täsmää, se tarkoittaa, että salateksti on vioittunut lähetyksen aikana tai salauksen purkamisen aikana käytettiin vääriä avaimia. Jäljitelmäetuliite on erityisen hyödyllinen salauksen purkamisen oikeellisuuden tarkistamisessa keskeiset tiedot käytettäessä moninäppäinmalleja.

GOST 28147-89 -algoritmia pidetään erittäin vahvana algoritmina - tällä hetkellä sen paljastamiseksi ei ole ehdotettu enempää tehokkaita menetelmiä kuin edellä mainittu "raaka voima" -menetelmä. Sen korkea kestävyys saavutetaan ensisijaisesti pitkä pituus avain - 256 bittiä. Käytettäessä salaista synkronointiviestiä tehollinen avaimen pituus kasvaa 320 bittiin ja korvaavan taulukon salaus kasvaa ylimääräisiä bittejä. Lisäksi kryptografinen vahvuus riippuu muunnoskierrosten lukumäärästä, jonka GOST 28147-89:n mukaan pitäisi olla 32 (syöttötietojen hajonnan täysi vaikutus saavutetaan 8 kierroksen jälkeen).

AES standardi

Toisin kuin GOST 28147-89 -algoritmi, joka pitkään aikaan jäi salaisuudeksi Amerikkalainen standardi AES-salaus DES:n korvaamiseen tarkoitettu versio valittiin avoimella kilpailulla, jossa kaikki kiinnostuneet organisaatiot ja yksityishenkilöt voivat tutkia ja kommentoida ehdokasalgoritmeja.

Yhdysvaltain kansallinen standardointi- ja teknologiainstituutti (NIST - National Institute of Standards and Technology) julkaisi vuonna 1997 kilpailun DES:n korvaamiseksi. Kilpailuun lähetettiin 15 ehdokasalgoritmia, jotka olivat sekä kryptografian alalla tunnettujen organisaatioiden (RSA Security, Counterpane jne.) että yksityishenkilöiden kehittämiä. Kilpailun tulokset julkistettiin lokakuussa 2000: voittaja oli Rijndael-algoritmi, jonka ovat kehittäneet kaksi belgialaista kryptografia, Vincent Rijmen ja Joan Daemen.

Rijndael-algoritmi ei ole samanlainen kuin useimmat tunnetut symmetriset salausalgoritmit, joiden rakenne on nimeltään "Feistel-verkko" ja on samanlainen kuin venäläinen GOST 28147-89. Feistel-verkon erikoisuus on, että syötearvo on jaettu kahteen tai useampaan alilohkoon, joista osa käsitellään joka kierroksella tietty laki, jonka jälkeen se asetetaan käsittelemättömien alilohkojen päälle (katso kuva 1).

Toisin kuin kotimainen salausstandardi, Rijndael-algoritmi edustaa datalohkoa kaksiulotteisen tavutaulukon muodossa, jonka koko on 4X4, 4X6 tai 4X8 (usean käyttö on sallittua kiinteät koot salattu tietolohko). Kaikki toiminnot suoritetaan yksittäisille taulukon tavuille sekä päälle itsenäiset sarakkeet ja linjat.

Rijndael-algoritmi suorittaa neljä muunnosta: BS (ByteSub) - taulukon korvaaminen taulukon jokaisen tavun kohdalla (kuva 3); SR (ShiftRow) - taulukon rivien siirto (kuva 4). Tällä toiminnolla ensimmäinen rivi pysyy muuttumattomana ja loput siirretään syklisesti tavu kerrallaan vasemmalle kiinteällä tavumäärällä taulukon koosta riippuen. Esimerkiksi 4x4-taulukossa rivejä 2, 3 ja 4 siirretään 1, 2 ja 3 tavua vastaavasti. Seuraavaksi tulee MC (MixColumn) - operaatio itsenäisille matriisin sarakkeille (kuva 5), ​​jolloin jokainen sarake kerrotaan kiinteällä matriisilla c(x) tietyn säännön mukaisesti. Ja lopuksi AK (AddRoundKey) - avaimen lisääminen. Jokaista taulukon bittiä lisätään modulo 2 vastaavalla pyöreän avaimen bitillä, joka puolestaan ​​lasketaan tietyllä tavalla salausavaimesta (kuva 6).


Riisi. 3. Operaatio BS.

Riisi. 4. Operaatio SR.

Riisi. 5. Käyttö MC.

Salauskierrosten määrä (R) Rijndael-algoritmissa on vaihteleva (10, 12 tai 14 kierrosta) ja riippuu lohkon koosta ja salausavaimesta (avaimelle on myös useita kiinteitä kokoja).

Salauksen purku suoritetaan seuraavilla käänteisoperaatioilla. Taulukko käännetään ja taulukko korvataan käänteisellä taulukolla (suhteessa salaukseen käytettyyn taulukkoon). Käänteinen operaatio SR:lle on pyörittää rivejä oikealle eikä vasemmalle. MC:n käänteisoperaatio on kertominen samoilla säännöillä toisella matriisilla d(x), joka täyttää ehdon: c(x) * d(x) = 1. Avaimen AK lisääminen on itsensä käänteisfunktio, koska se käyttää vain XOR:ta. toimintaa. Näitä käänteisiä operaatioita sovelletaan salauksen purkamisen aikana päinvastaisessa järjestyksessä kuin salauksen aikana.

Rijndaelista on tullut uusi standardi tietojen salaukselle, koska sillä on useita etuja muihin algoritmeihin verrattuna. Ensinnäkin se tarjoaa suuri nopeus salaus kaikilla alustoilla: sekä ohjelmisto- että laitteistototeutuksessa. Se erottuu verrattomasti parhaat mahdollisuudet laskelmien rinnastaminen muihin kilpailuun lähetettyihin algoritmeihin verrattuna. Lisäksi sen toiminnan resurssivaatimukset ovat minimaaliset, mikä on tärkeää käytettäessä laitteissa, joiden laskentaominaisuudet ovat rajalliset.

Algoritmin ainoana haittana voidaan pitää sen luontaista epäsovinnaista järjestelmää. Tosiasia on, että Feistel-verkkoon perustuvien algoritmien ominaisuuksia on tutkittu hyvin, ja Rijndael, toisin kuin ne, voi sisältää piilotettuja haavoittuvuuksia, joka voidaan löytää vasta, kun sen laajalle levinneisyyden alusta on kulunut jonkin aikaa.

Epäsymmetrinen salaus

Kuten jo todettiin, epäsymmetriset salausalgoritmit käyttävät kahta avainta: k1 - salausavain eli julkinen ja k2 - salauksenpurkuavain tai salainen. Julkinen avain laskettu salaisuudesta: k1 = f(k2).

Epäsymmetriset salausalgoritmit perustuvat yksisuuntaisten funktioiden käyttöön. Määritelmän mukaan funktio y = f(x) on yksisuuntainen, jos: se on helppo laskea kaikille mahdollisia vaihtoehtoja x ja useimmille mahdollisille y:n arvoille on melko vaikeaa laskea x:n arvoa, jolle y = f(x).

Esimerkki yksisuuntaisesta funktiosta on kahden suuren luvun kertolasku: N = P*Q. Tämä kertolasku itsessään on yksinkertainen toiminta. Käänteisfunktio (N:n hajoaminen kahdeksi suureksi tekijäksi), jota kutsutaan nykyaikaisten arvioiden mukaan tekijöiksi, on kuitenkin melko monimutkainen. matemaattinen ongelma. Esimerkiksi faktorointi N, jonka ulottuvuus on 664 bittiä kohdassa P? Q vaatii noin 1023 operaatiota, ja x:n laskemiseksi käänteisesti modulaariselle eksponentille y = ax mod p tunnetuilla a:lla, p:llä ja y:llä (samalla a:n ja p:n mitat) sinun on suoritettava noin 1026 operaatiota. Viimeinen esimerkki on nimeltään Discrete Logathm Problem (DLP), ja tällaista toimintoa käytetään usein epäsymmetrisissä salausalgoritmeissa sekä algoritmeissa, joita käytetään sähköisen digitaalisen allekirjoituksen luomiseen.

Toinen tärkeä epäsymmetrisessä salauksessa käytetty toimintoluokka ovat yksisuuntaiset takaoven toiminnot. Heidän määritelmänsä sanoo, että funktio on yksisuuntainen takaoven kanssa, jos se on yksisuuntainen ja se voidaan laskea tehokkaasti käänteinen funktio x = f-1(y), eli jos "salainen kulku" tunnetaan (tietty salainen numero, sovellettaessa epäsymmetrisiä salausalgoritmeja - salaisen avaimen arvo).

Yksisuuntaisia ​​takaoven toimintoja käytetään laajalti käytetyssä asymmetrisessä RSA-salausalgoritmissa.

RSA-algoritmi

Kolmen kirjoittajan (Rivest, Shamir, Adleman) vuonna 1978 kehittämä se sai nimensä kehittäjien sukunimien ensimmäisistä kirjaimista. Algoritmin luotettavuus perustuu suurten lukujen laskemisen ja diskreettien logaritmien laskemisen vaikeuteen. RSA-algoritmin pääparametri on järjestelmämoduuli N, jonka mukaan kaikki järjestelmän laskutoimitukset suoritetaan ja N = P*Q (P ja Q ovat salaisia ​​satunnaisia ​​yksinkertaisia suuria lukuja, yleensä samankokoinen).

Salainen avain k2 valitaan satunnaisesti ja sen on täytettävä seuraavat ehdot:

1

jossa GCD on suurin yhteinen jakaja, eli k1:n on oltava alkuluku Eulerin funktion F(N) arvon kanssa, jälkimmäisen on yhtä suuri kuin positiivisten kokonaislukujen määrä välillä 1-N, ja se lasketaan seuraavasti: F(N) = (P - 1)*(Q - 1).

Julkinen avain k1 lasketaan suhteesta (k2*k1) = 1 mod F(N), ja tähän tarkoitukseen käytetään yleistettyä euklidista algoritmia (algoritmi suurimman yhteisen jakajan laskemiseen). Tietolohkon M salaus RSA-algoritmilla suoritetaan seuraavasti: C=M [tehoon k1] mod N. Huomaa, että koska todellisessa RSA:ta käyttävässä salausjärjestelmässä luku k1 on erittäin suuri (tällä hetkellä sen ulottuvuus voi olla jopa 2048 bittiä), M:n suora laskenta [teholle k1] epärealistinen. Sen saamiseksi käytetään M:n toistuvan neliöinnin ja tulosten kertomisen yhdistelmää.

Tämän toiminnon kääntäminen suurille mitoille ei ole mahdollista; toisin sanoen, on mahdotonta löytää M:tä tunnettujen C, N ja k1 perusteella. Kuitenkin, kun on salainen avain k2, voidaan yksinkertaisilla muunnoksilla laskea M = Ck2 mod N. On selvää, että itse salaisen avaimen lisäksi on tarpeen varmistaa parametrien P ja Q salaisuus. Jos hyökkääjä saa niiden arvot , hän pystyy laskemaan salaisen avaimen k2.

Kumpi salaus on parempi?

Symmetrisen salauksen suurin haittapuoli on tarve siirtää avaimia "kädestä käteen". Tämä haittapuoli on erittäin vakava, koska se tekee mahdottomaksi käyttää symmetristä salausta järjestelmissä, joissa on rajoittamaton määrä osallistujia. Muutoin symmetrisellä salauksella on kuitenkin joitain etuja, jotka näkyvät selvästi epäsymmetrisen salauksen vakavien haittojen taustalla.

Ensimmäinen niistä on salaus- ja salauksenpurkutoimintojen alhainen nopeus, joka johtuu resurssivaltaisista toiminnoista. Toinen haittapuoli on "teoreettinen" - epäsymmetristen salausalgoritmien kryptografista vahvuutta ei ole matemaattisesti todistettu. Tämä johtuu ensisijaisesti diskreetin logaritmin ongelmasta - ei ole vielä todistettu, että sen ratkaiseminen hyväksyttävässä ajassa on mahdotonta. Tarpeettomia vaikeuksia aiheuttaa myös tarve suojata julkisia avaimia vaihtamiselta - korvaamalla laillisen käyttäjän julkisen avaimen hyökkääjä voi salata tärkeän viestin julkisella avaimellaan ja sen jälkeen helposti purkaa sen salauksen yksityisellä avaimellaan.

Nämä haitat eivät kuitenkaan estä epäsymmetristen salausalgoritmien laajaa käyttöä. Nykyään on olemassa kryptosysteemejä, jotka tukevat julkisten avainten sertifiointia sekä yhdistävät symmetrisiä ja epäsymmetrisiä salausalgoritmeja. Mutta tämä on erillisen artikkelin aihe.

Lisätietolähteet

Niille lukijoille, jotka ovat vakavasti kiinnostuneita salauksesta, kirjoittaja suosittelee horisontin laajentamista seuraavien kirjojen avulla.

  1. Brassard J. "Moderni kryptologia."
  2. Petrov A. A. "Tietokoneturvallisuus: kryptografiset suojausmenetelmät."
  3. Romanets Yu V., Timofeev P. A., Shangin V. F. "Tiedon suojaus nykyaikaisissa tietokonejärjestelmissä."
  4. Sokolov A.V., Shangin V.F. "Tiedon suojaus hajautetuissa yritysverkoissa ja järjestelmissä."

Täydellinen kuvaus salausalgoritmeista löytyy seuraavista asiakirjoista:

  1. GOST 28147-89. Tietojenkäsittelyjärjestelmä. Kryptografinen suojaus.
  2. Kryptografinen muunnosalgoritmi. - M.: Neuvostoliiton valtion standardi, 1989.
  3. AES-algoritmi: http://www.nist.gov/ae.

RSA-algoritmi: http://www.rsasecurity.com/rsalabs/pkcs/pkcs-1.

Tietojen salaus on erittäin tärkeää yksityisyyden suojaamiseksi. Tässä artikkelissa käsittelen erilaisia ​​salaustyyppejä ja -menetelmiä, joita nykyään käytetään tietojen suojaamiseen.
Tiesitkö?

Internetin kykyjen kasvaessa yhä enemmän liiketoimintaamme harjoitetaan verkossa. Näistä tärkeimpiä ovat verkkopankki, verkkomaksaminen, sähköpostit, yksityisten ja virallisten viestien vaihto jne., joihin liittyy luottamuksellisten tietojen ja tietojen vaihto. Jos nämä tiedot joutuvat vääriin käsiin, se voi vahingoittaa paitsi yksittäistä käyttäjää, myös koko verkkoliiketoimintajärjestelmää.

Tämän estämiseksi on ryhdytty useisiin verkon turvatoimiin henkilötietojen siirron suojaamiseksi. Tärkeimmät näistä ovat tiedon salaus- ja salauksenpurkuprosessit, jotka tunnetaan kryptografiana. Nykyään useimmissa järjestelmissä käytetään kolmea pääsalausmenetelmää: hajautus, symmetrinen ja epäsymmetrinen salaus. Seuraavilla riveillä puhun jokaisesta näistä salaustyypeistä yksityiskohtaisemmin.

Salaustyypit

Symmetrinen salaus

Symmetrisessä salauksessa normaali luettava tieto, joka tunnetaan pelkkänä tekstinä, salataan niin, että siitä tulee lukukelvoton. Tämä tietojen sekoitus tehdään avaimella. Kun tiedot on salattu, ne voidaan lähettää turvallisesti vastaanottajalle. Vastaanottajalla salattu data dekoodataan samalla avaimella, jota käytettiin koodaukseen.

Näin ollen on selvää, että avain on symmetrisen salauksen tärkein osa. Se on piilotettava ulkopuolisilta, koska kuka tahansa, jolla on pääsy siihen, voi purkaa yksityisten tietojen salauksen. Tästä syystä tämäntyyppinen salaus tunnetaan myös "salaisena avaimena".

Nykyaikaisissa järjestelmissä avain on yleensä tietojono, joka on johdettu vahvasta salasanasta tai täysin satunnaisesta lähteestä. Se syötetään symmetriseen salausohjelmistoon, joka käyttää sitä pitämään syötetyt tiedot salassa. Tietojen salaus saadaan aikaan käyttämällä symmetristä salausalgoritmia, kuten Data Encryption Standard (DES), Advanced Encryption Standard (AES) tai International Data Encryption Algorithm (IDEA).

Rajoitukset

Tämän tyyppisen salauksen heikoin lenkki on avaimen turvallisuus sekä tallennuksen että lähetyksen todennetulle käyttäjälle. Jos hakkeri pystyy saamaan tämän avaimen, hän voi helposti purkaa salatun tiedon salauksen, mikä kumoaa koko salauksen tarkoituksen.

Toinen haittapuoli on, että tietoja käsittelevä ohjelmisto ei voi toimia salatun tiedon kanssa. Siksi tiedot on ensin purettava, jotta ohjelmistoa voidaan käyttää. Jos ohjelmisto itsessään on vaarantunut, hyökkääjä voi helposti saada tiedot.

Epäsymmetrinen salaus

Epäsymmetrisen avaimen salaus toimii samalla tavalla kuin symmetrinen avain, koska se käyttää avainta lähetettävien viestien salaamiseen. Kuitenkin sen sijaan, että hän käyttäisi samaa avainta, hän käyttää täysin eri avainta tämän viestin salauksen purkamiseen.

Koodaukseen käytetty avain on kaikkien verkon käyttäjien saatavilla. Sellaisenaan se tunnetaan "julkisena" avaimena. Toisaalta salauksen purkamiseen käytetty avain pidetään salassa ja se on tarkoitettu käyttäjän itsensä yksityiseen käyttöön. Siksi se tunnetaan "yksityisenä" avaimena. Epäsymmetrinen salaus tunnetaan myös julkisen avaimen salauksena.

Koska tällä menetelmällä viestin salauksen purkamiseen tarvittavaa salaista avainta ei tarvitse lähettää joka kerta, ja se on yleensä vain käyttäjän (vastaanottajan) tiedossa, on todennäköisyys, että hakkeri pystyy purkamaan viestin salauksen. alentaa.

Diffie-Hellman ja RSA ovat esimerkkejä algoritmeista, jotka käyttävät julkisen avaimen salausta.

Rajoitukset

Monet hakkerit käyttävät man-in-the-middleä hyökkäysmuotona tämän tyyppisen salauksen ohittamiseksi. Epäsymmetrisessä salauksessa sinulle annetaan julkinen avain, jota käytetään tietojen turvalliseen vaihtamiseen toisen henkilön tai palvelun kanssa. Hakkerit käyttävät kuitenkin verkkopetoksia huijatakseen sinut kommunikoimaan heidän kanssaan samalla, kun sinut saatetaan uskomaan, että olet suojatulla linjalla.

Ymmärtääksesi paremmin tämäntyyppistä hakkerointia, harkitse kahta vuorovaikutuksessa olevaa osapuolta, Sashaa ja Natashaa, sekä hakkeria Sergeitä, joiden tarkoituksena on siepata heidän keskustelunsa. Ensin Sasha lähettää Natashalle tarkoitetun verkon kautta viestin, jossa hän pyytää julkista avainta. Sergei sieppaa tämän viestin ja saa häneen liittyvän julkisen avaimen ja käyttää sitä salatakseen ja lähettääkseen Natashalle väärän viestin, joka sisältää hänen julkisen avaimensa Sashan sijaan.

Natasha luuli, että tämä viesti tuli Sashalta, salaa sen nyt Sergein julkisella avaimella ja lähettää sen takaisin. Sergei sieppasi tämän viestin uudelleen, purki sen salauksen, muokkasi (jos haluttiin), salasi uudelleen käyttämällä julkista avainta, jonka Sasha alun perin lähetti, ja lähetti takaisin Sashalle.

Siten, kun Sasha vastaanottaa tämän viestin, hän on saatettu uskomaan, että se tuli Natashalta, eikä hän ole tietoinen rikoksesta.

Hashing

Hajautustekniikka käyttää hash-funktiona tunnettua algoritmia luomaan annetuista tiedoista erityisen merkkijonon, joka tunnetaan nimellä hash. Tällä hashilla on seuraavat ominaisuudet:

  • sama data tuottaa aina saman hashin.
  • Ei ole mahdollista tuottaa raakadataa pelkästä hashista.
  • Ei ole käytännöllistä kokeilla erilaisia ​​syötteiden yhdistelmiä saman hajautusarvon luomiseksi.

Pääasiallinen ero tiivistyksen ja kahden muun tiedon salausmuodon välillä on siis se, että kun tiedot on salattu (tiivistetty), sitä ei voida palauttaa alkuperäisessä muodossaan (salauksen purkaminen). Tämä tosiasia varmistaa, että vaikka hakkeri saisi käsiinsä hashin, siitä ei ole hänelle hyötyä, koska hän ei pysty purkamaan viestin sisältöä.

Message Digest 5 (MD5) ja Secure Hashing Algorithm (SHA) ovat kaksi laajalti käytettyä hajautusalgoritmia.

Rajoitukset

Kuten aiemmin mainittiin, on lähes mahdotonta purkaa dataa tietystä hashista. Tämä on kuitenkin totta vain, jos voimakas hajautus on otettu käyttöön. Hajautustekniikan heikon toteutuksen tapauksessa, käyttämällä riittävästi resursseja ja raakoja hyökkäyksiä, jatkuva hakkeri voi löytää tietoja, jotka vastaavat tiivistettä.

Salausmenetelmien yhdistelmä

Kuten edellä on käsitelty, jokainen näistä kolmesta salausmenetelmästä kärsii joistakin haitoista. Kuitenkin, kun näitä menetelmiä käytetään, ne muodostavat turvallisen ja erittäin tehokkaan salausjärjestelmän.

Useimmiten yksityisen ja julkisen avaimen tekniikat yhdistetään ja niitä käytetään yhdessä. Yksityisen avaimen menetelmä mahdollistaa nopean salauksen purkamisen, kun taas julkisen avaimen menetelmä tarjoaa turvallisemman ja kätevämmän tavan lähettää salainen avain. Tämä menetelmien yhdistelmä tunnetaan nimellä "digitaalinen kirjekuori". PGP-sähköpostin salausohjelmisto perustuu "digital envelope" -tekniikkaan.

Hashingia käytetään salasanan vahvuuden tarkistamiseen. Jos järjestelmä tallentaa salasanan tiivisteen itse salasanan sijaan, se on turvallisempi, koska vaikka hakkeri saisi käsiinsä tämän tiivisteen, hän ei pysty ymmärtämään (lukemaan) sitä. Vahvistuksen aikana järjestelmä tarkistaa saapuvan salasanan hajautusarvon ja tarkistaa, vastaako tulos tallennettua. Tällä tavalla varsinainen salasana näkyy vain lyhyinä hetkinä, kun se on vaihdettava tai tarkistettava, mikä vähentää huomattavasti sen todennäköisyyttä, että se joutuu vääriin käsiin.

Hashingia käytetään myös tietojen todentamiseen salaisen avaimen avulla. Tietojen ja tämän avaimen avulla luodaan hash. Siksi vain tiedot ja hash ovat näkyvissä, eikä itse avainta lähetetä. Tällä tavalla, jos joko dataan tai tiivisteeseen tehdään muutoksia, ne havaitaan helposti.

Yhteenvetona voidaan todeta, että näitä tekniikoita voidaan käyttää datan tehokkaaseen koodaamiseen lukukelvottomaan muotoon, joka voi varmistaa sen turvallisuuden. Useimmat nykyaikaiset järjestelmät käyttävät yleensä näiden salausmenetelmien yhdistelmää sekä vahvoja algoritmitoteutuksia turvallisuuden parantamiseksi. Turvallisuuden lisäksi nämä järjestelmät tarjoavat myös monia lisäetuja, kuten käyttäjän henkilöllisyyden tarkistamisen ja sen, että vastaanotettuja tietoja ei voida peukaloida.

Kuten muistat, siirto-, korvaus-, permutaatio- ja Vernam-salaus käyttävät toimintoa tekstin jokaiseen tiettyyn hahmoon. Meidän on vaihdettava - siirrämme merkkiä, käytämme avainta - käytämme sitä merkkiin, sitten seuraavaan merkkiin ja niin edelleen, kunnes salaamme kaikki selväkieliset merkit. Tätä salausmenetelmää kutsutaan stream-salaukseksi - salaamme jokaisen merkin erikseen. Toinen tapa on jakaa alkuperäinen selkeä teksti useiden merkkien ryhmiin (lohkoihin) ja suorittaa salaustoiminnot jokaiselle lohkolle. Tämä on lohkosalausmenetelmä.

Jotta ero lohko- ja virtasalauksen välillä olisi selkeämpi, annamme esimerkin käyttämällä yksinkertaista korvaussalausta.

Suoratoiston salaus

Salataan sana CIPHER korvaavalla virtasalauksella:

Salasimme jokaisen merkin ja saimme salatekstin. Se ei voisi olla yksinkertaisempaa.

BLOCK SALAUS

Salataan sana AVADAKEDAVRA. Koska salaus on lohko, jaamme selkeän tekstin neljän merkin lohkoihin: AVAD | AKED | AVRA (käytännössä tekstilohkot koostuvat 64-256 bitistä). Jokaiselle lohkolle laadimme oman korvaavan taulukon:

Nyt salaamme jokaisen lohkon vastaavalla aakkosella:
Se osoittautui hieman paremmaksi kuin in-line-lähestymistapalla, jos puhumme kestävyydestä. Loppujen lopuksi opimme tulkitsemaan tavanomaisen korvaussalauksen yhdellä vasemmalla kädellä. Ja tällaisella lohkolähestymistavalla hyökkääjän on ryhdyttävä aivoihinsa ennen kuin hän voi valita lohkon pituuden ja sitten käyttää kryptausanalyysiä korvaaville salakirjoille jokaiselle lohkolle.

FEISTEL-VERKKO

Nyt olemme valmiita siirtymään erittäin tärkeään aiheeseen, joka avaa oven nykyaikaisten salausjärjestelmien loputtomaan maailmaan. Feistel-verkko on Horst Feistelin IBM:n laboratoriossa vuonna 1971 kehittämä lohkosalausmenetelmä. Nykyään Feistelin verkko on useiden salausprotokollien taustalla. Yritetään selvittää "sormilla", mikä se on.

Feistel-verkko toimii selkeän tekstin lohkoilla, joten tarkastelemme sen toimintamekanismia yhdessä lohkoista. Muiden lohkojen toiminnot ovat samanlaisia.

  • Lohko on jaettu kahteen yhtä suureen osaan - vasempaan (L) ja oikeaan (R).
  • Osioinnin jälkeen vasenta alilohkoa muutetaan funktiolla f käyttämällä näppäintä K: x = f(L, K). Funktiona voit kuvitella minkä tahansa muunnoksen - esimerkiksi vanhan hyvän vaihtosalauksen avaimella K.
  • Tuloksena olevaan alilohkoon lisätään modulo 2 oikealla alilohkolla R, jota ei käytetty aiemmin: x=x+R
  • Seuraavaksi saadut osat vaihdetaan ja liimataan yhteen.

Kuten näet, kaikki on melko yksinkertaista. Ymmärtääksesi kuinka tämä toimii, katso kaaviota:

Tätä järjestelyä kutsutaan Feistel-soluksi. Itse Feistelin verkko koostuu useista soluista. Ensimmäisen solun lähdöstä saadut alilohkot menevät toisen solun sisäänmenoon, saadut alilohkot toisesta solusta kolmannen solun sisäänmenoon ja niin edelleen, riippuen Feistel-verkon kierrosten lukumäärästä. Jokaisella tällaisella kierroksella käytetään ennalta määrättyä kierrosnäppäintä. Useimmiten pyöreät avaimet muodostetaan pääsalaisesta avaimesta K. Kun kaikki kierrokset on suoritettu, tekstin alilohkot liimataan yhteen ja saadaan normaali salateksti.

Katsotaanpa nyt Feistel-verkon toimintaa esimerkin avulla. Otetaan sana AVADAKEDAVRA ja jaetaan se kahteen kuuden merkin lohkoon - AVADAK | EDAVRA. Toiminnolle otamme vaihtosalauksen pyöreän näppäimen määrittämien paikkojen lukumäärällä. Olkoon salainen avain K = . Pyöreänä näppäimenä otamme K = 1, K = 2. Modulo 2:n lisäystä varten muunnetaan teksti binäärikoodiksi lennätinaakkoston mukaisesti, jota tuskin kukaan muu käyttää.

Tässä on mitä tapahtui:

Ajetaan nyt ensimmäinen lohko Feistel-verkon läpi kahdessa kierrossa:

Yritä salata toinen lohko itse, minulla on MOSSTR.

Salauksen purku suoritetaan täsmälleen samalla tavalla: salateksti jaetaan lohkoihin ja sitten alilohkoihin, vasen alilohko tulee funktioon, siihen lisätään modulo 2 oikealla ja sitten alilohkot vaihdetaan. Erona on, että kierrosavaimet toimitetaan käänteisessä järjestyksessä, eli meidän tapauksessamme käytämme ensimmäisellä kierroksella avainta K = 2 ja sitten toisella kierroksella K = 1.

Feistel-verkkoa koskeva tutkimus on osoittanut, että itsenäisillä pyöreillä avaimilla ja kryptoresistentillä näennäissatunnaisella funktiolla f Feistel-verkon kolme kierrosta riittää, jotta salateksti on näennäissatunnainen. Tämä viittaa siihen, että Feistel-verkkoon perustuvat salaukset ovat tällä hetkellä melko turvallisia.

GOST 28147-89 (MAGMA)

Meillä on jo lähes kaikki tarvittavat käsitteet arsenaalissamme, joten olemme valmiita siirtymään ensimmäiseen tärkeään kotimaisen kryptografian aiheeseen - GOST 28147-89. On syytä sanoa, että vain laiskot eivät ole kirjoittaneet tästä standardista, joten yritän miljoonannen ja ensimmäisen kerran lyhyesti ja ilman kaavojen pilveä hahmotella suuren ja kauhean Magman salaustilojen olemusta. Jos päätät lukea itse standardin, sinun tulee varata aikaa, energiaa, kärsivällisyyttä ja ruokaa, koska, kuten tiedät, standardien kirjoittaminen ihmisten kielellä on ehdottomasti kielletty.

Pääominaisuudet: avain 256 bittiä, lohko 64 bittiä.

Ennen Magman analysointia sinun on opittava uusi käsite - korvaustaulukot tai S-laatikot. Tämä on samantyyppinen taulukko kuin korvaussalauksen taulukko. Suunniteltu korvaamaan alilohkosymbolit taulukkoon tallennetuilla symboleilla. Älä ajattele, että S-laatikko on rand()-funktion luomia satunnaislukuja. S-laatikot ovat tulosta harkitusti luoduista sekvensseistä, koska koko salauksen kryptografinen vahvuus on niiden varassa.

GOST 28147 kuvaa sen korvaavat taulukot erittäin säästeliäästi. Siinä sanotaan vain, että ne ovat ylimääräinen salainen elementti (yhdessä salaisen avaimen kanssa) ja "toimitetaan määrätyllä tavalla". Ei mitään muuta. GOST 28147:n hyväksymisen jälkeen S-laatikoiden valintaan liittyvä tieteellinen ja tekninen epävarmuus on aiheuttanut huhuja ja spekulaatioita. Puhuttiin salaisista kriteereistä, jotka olivat tiedossa vain GOSTin kehittäjille. Luonnollisesti tämä epävarmuus vähensi luottamusta kryptojärjestelmään.

Tämä puute antoi erinomaiset perusteet standardia kohtaan. Ranskalainen kryptografi Nicolas Courtois julkaisi useita artikkeleita, jotka sisälsivät useita kiistanalaisia ​​säännöksiä GOSTin vahvuudesta. Courtois uskoo, että venäläistä standardia vastaan ​​on helppo hyökätä, eikä sitä voida pitää kansainvälisenä. Courtois kuitenkin tekee analyysinsä muille kuin varsinaisille S-laatikoille, joten hänen mielipiteeseen ei kannata luottaa.

Katsotaan nyt, mitä he keksivät synkän Lubyankan seinien sisällä.

Helppo vaihtotila

Yksinkertaisessa vaihtotilassa 32 kierrokselle, standardin mukaan tarvitsemme 32 kierrosta avainta. Pyöreiden avainten luomiseksi alkuperäinen 256-bittinen avain jaetaan kahdeksaan 32-bittiseen lohkoon: K1…K8. Näppäimet K9...K24 ovat näppäimien K1...K8 syklistä toistoa. Näppäimet K25…K32 ovat avaimia K8…K1.

  1. Jokainen 64-bittinen lohko on jaettu kahteen alilohkoon - Ai ja Bi.
  2. Vasen alilohko Ai lisätään modulo 232 pyöreällä avaimella K1: Ai+1 = Ai + Ki mod 232.
  3. Vasen alilohko kulkee S-laatikon läpi.
  4. Vasemman alilohkon bittejä siirretään 11 ​​paikkaa (syklinen siirto).
  5. Vasen alilohko laskee yhteen oikean modulo 2:n: A = A ⊕ B . iii
  6. Oikea alilohko saa vasemman alilohkon alkuperäisen arvon: Bi+1 = Ai.
  7. Alilohkot vaihdetaan.

Vain esimerkki yhdestä kierroksesta. 256-bittinen avain:

arvadek adava arvadek adava arvadek adava arvadek adava arva

00011 01010 11110 00011 01001 00001 01111 00011 01001 00011 11110

00011... . . . 00011 01010 11110 0

Sitten pyöreät avaimet

K1 = 00011 01010 11110 00011 01001 00001 01

K2 = 111 00011 01001 00011 11110 00011 0001

K3 = . . .

S - laatikko = [ 1 , 15 , 13 , 0 , 5 , 7 , 10 , 4 , 9 , 2 , 3 , 14 , 6 , 11 , 8 , 12 ]

Kuinka käyttää tätä S-boxia? Hyvin yksinkertainen! Jos S-laatikon tulo on 0, niin lähtö on 1 (ota S-laatikon 0. symboli), jos 4, niin lähtö on 5 (ottaa 4. symboli), jos tulo on 7 , silloin tulos on 4 ja niin edelleen.

Pelkkä teksti:

Jaettu kahteen 32-bittiseen korkean ja matalan bitin lohkoon:

Esimerkki tietysti osoittautui villiksi, koska GOST ei ole vielä niin standardi, että jokainen voisi käydä sen läpi omin käsin.

Yksinkertainen vaihtotila on liian yksinkertainen ja sillä on merkittäviä haittoja:

  • yksi virhe salatussa lohkossa turmelee kyseisen lohkon kaikki bitit;
  • kun salataan identtisiä selkeän tekstin lohkoja, saadaan identtisiä salatekstilohkoja, jotka voivat tarjota tiettyä tietoa kryptaanalyytikolle.

Siksi on suositeltavaa käyttää GOST 28147-89:ää yksinkertaisessa korvaustilassa vain avaintietojen salaamiseen.

PELITILA

Tässä tilassa ei ole yksinkertaisen vaihtotilan haittoja. Gammatilaa kutsutaan niin sanotuksi, koska se käyttää gammaa, näennäissatunnaista sekvenssiä, joka lisätään modulo 2 selkeään tekstiin jokaisella kierroksella. Gamma muodostetaan synkronointiviestistä S - näennäissatunnainen sekvenssi, joka muuttuu jokaisen iteroinnin yhteydessä ja salataan yksinkertaisessa korvaustilassa, minkä jälkeen se muuttuu gammaksi ja asetetaan selväkielisen tekstin päälle.

Ja nyt kaikki on kunnossa.

Vaiheet 3–5 toistetaan jokaiselle lohkolle. Kaikki nämä manipulaatiot näkyvät kaaviossa.

Salauksen purku suoritetaan samalla tavalla pelkän tekstin lohkon sijaan.

Gamma-tila palautteella

Mennään monimutkaisemmiksi. Algoritmi on samanlainen kuin gammatila, mutta gamma muodostetaan edellisen salatun datan lohkon perusteella, joten nykyisen lohkon salaustulos riippuu myös edellisistä lohkoista. 1. Synkronointiviesti S - 64-bittinen näennäissatunnainen sekvenssi.

2. S on salattu yksinkertaisessa vaihtotilassa.
3. Selkeä teksti lisätään modulo 2 tuloksena olevaan gammaan.
4. Tuloksena oleva salateksti lähetetään synkronointiviestinä seuraavalle lohkolle, ja se lähetetään myös ulostuloon. Voit nähdä miltä se näyttää kaaviosta.

Simuloitu lisäystila

Tässä tilassa luodaan simuloitu lisäys - lisälohko, jonka pituus on kiinteä, riippuen lähdetekstistä ja avaimista. Tällainen pieni lohko tarvitaan varmistamaan, ettei salatekstiin ole vahingossa tai tarkoituksella lisätty vääristymiä - eli eheyden tarkistamiseksi. Tämä tila toimii näin:

1. Selkeätekstilohko käy läpi 16 kierrosta yksinkertaisessa vaihtotilassa.
2. Tuloksena olevaan lohkoon modulo 2 lisätään toinen selväkielinen lohko.
3. Summa käy läpi vielä 16 kierrosta yksinkertaisessa vaihtotilassa.
4. Lisätään seuraava selväkielinen lohko ja jälleen yksinkertainen korvaus, ja niin edelleen, kunnes selvätekstilohkoja ei enää ole.

Vahvistaakseen vastaanottaja suorittaa tekstin salauksen purkamisen jälkeen kuvatun kaltaisen toimenpiteen. Jos tulos ei vastaa lähetettyä jäljitelmälisäystä, kaikki vastaavat M-lohkot katsotaan vääriksi.

GOST 34.12-2015 (GRASSHOPPER)

Monet pitävät GOST 28147-89:ää vanhentuneena eikä tarpeeksi vankana verrattuna ulkomaisiin algoritmeihin. Sen korvaamiseksi kotimaiset kryptografit julkaisivat uuden salausstandardin. He sanovat, että tämä tapahtui joko vanhaan GOST:iin kohdistuneiden hyökkäysten suuren määrän vuoksi tai siksi, että tämä lohkon pituus on jo vanhentunut ja liian pieni nykyaikaisille tietojoukoille. Kukaan ei mainosta todellisia syitä. Tietysti pääominaisuuksiin tehtiin joitain muutoksia.

Pääominaisuudet: avain 256 bittiä, lohko 128 bittiä.

On myös syytä sanoa, että uudessa standardissa S-laatikot ovat kiinteitä ja harkittuja, joten sinun ei tarvitse keksiä omia ihmeellisiä satunnaisia ​​vaihtoja. Uudessa GOST:ssa on monia muita salaustiloja:
yksinkertainen vaihtotila (Electronic Codebook, EKP);
gammatila (laskuri, CTR);
gammatila lähtöpalautteen kanssa (Output Feedback, OFB);
yksinkertainen vaihtotila kytkennällä (Cipher Block Chaining, SBC);
gammatila salakirjoituksella (Cipher Feedback, CFB);
simulaatiolisäyksen luontitila (viestin todennuskoodin algoritmi).

Katsotaanpa uusia tiloja.

Helppo vaihtotila kytkennällä

Kuten aiemmasta standardista nähtiin, yksinkertainen vaihtotila on tiloista heikoin, joten uudessa standardissa se työntyy nyt esiin sitoutuneena ja siitä ei ole tullut ollenkaan niin yksinkertaista.

  1. Alustusvektori kuulostaa pelottavalta, mutta todellisuudessa se on vain sarja bittejä, jotka tulevat sisääntuloon.
  2. Vektori jaetaan kahteen osaan - L ja R, joista toiseen lisätään modulo 2 selkeän tekstin kanssa ja toisesta tulee puolet seuraavan lohkon alustusvektorista.
  3. Selkeän tekstin ja alustusvektorin osan summa viedään yksinkertaisen korvaussalauksen läpi.
  4. Tuloksena olevat salatekstilohkot liimataan yhteen.

Kun katsot kaaviota, kaikki käy heti selväksi.

Alustusvektori ei tietenkään ole niin yksinkertainen: se käy läpi sarjan lineaarisia muunnoksia (käyttäen lineaarista siirtorekisteriä) ennen kuin se alkaa salata uutta lohkoa. Mutta salaukseen tutustumiseksi riittää kuvitella tällainen järjestelmä. Salauksen purku tässä tilassa ei myöskään ole täysin ilmeistä, joten on parempi katsoa kaaviota.

Plussat - salaukset. Kotimaisen kehityksen joukossa on kryptopalveluntarjoaja CryptoPro CSP.

Muutama sana salaustilojen vahvuudesta. Monet ulkomaiset kryptografit ovat yrittäneet nostaa kätensä standardiamme vastaan, mutta tällä hetkellä ei ole tiedossa yhtään hyökkäystä, joka voitaisiin toteuttaa nykyisellä teknologisella kehitystasolla. Pitkään tämä standardi ei ollut kovin suosittu ohjelmoijien keskuudessa, koska sen tekstistä on vaikea ymmärtää toiminta-algoritmia, eikä siinä ole tarpeeksi selkeämpiä kuvauksia. Mutta nyt on jo runsaasti toteutuksia monilla ohjelmointikielillä. Joten nyt GOSTin käyttö on täysin mahdollista, ja se ylittää monessa suhteessa ulkomaiset standardit. Lopulta, missä on isänmaallisuus?!

Johdanto

Tietojen suojaamisen ongelma muuttamalla sitä, jotta ulkopuolinen ei pääse lukemaan sitä, on huolestuttanut ihmismieliä muinaisista ajoista lähtien. Salaustekniikan historia on rinnakkainen ihmiskielen historian kanssa. Lisäksi itse kirjoittaminen oli alun perin salausjärjestelmä, koska muinaisissa yhteiskunnissa vain harvat valitut hallitsivat sen.

Muinaisen Egyptin ja muinaisen Intian pyhät kirjat ovat esimerkkejä tästä.

Kirjoittamisen laajan käytön myötä kryptografia alkoi nousta itsenäiseksi tieteeksi. Ensimmäiset kryptosysteemit löytyvät jo aikakautemme alussa. Siten Caesar käytti kirjeenvaihdossaan enemmän tai vähemmän systemaattista salausta, joka sai hänen nimensä.

Kryptografiset järjestelmät kehittyivät nopeasti ensimmäisen ja toisen maailmansodan vuosina. Sodan jälkeisestä ajasta nykypäivään tietojenkäsittelyn tulo on nopeuttanut kryptografisten menetelmien kehitystä ja parantamista.

Miksi salausmenetelmien käytön ongelma tietojärjestelmissä (IS) on tullut erityisen tärkeäksi tällä hetkellä?

Toisaalta tietokoneverkkojen käyttö on laajentunut, erityisesti maailmanlaajuinen Internet, jonka kautta siirretään suuria määriä valtiollista, sotilaallista, kaupallista ja yksityistä tietoa, mikä estää luvattoman pääsyn siihen.

Toisaalta uusien tehokkaiden tietokoneiden, verkko- ja hermolaskentateknologioiden ilmaantuminen on mahdollistanut salausjärjestelmien, joita viime aikoihin asti pidettiin käytännössä rikkoutumattomina, hylkäämisen.

Tämän työn ensimmäisessä luvussa tutustutaan nykyaikaisen kryptografian peruskäsitteisiin, niille asetettuihin vaatimuksiin ja käytännön soveltamismahdollisuuksiin.

Toisessa luvussa käsittelemme salausavainten jakeluprotokollia, sähköisen allekirjoituksen käsitettä ja sähköisen allekirjoituksen protokollia.

Tämän työn kolmannessa luvussa puhutaan hash-funktioista ja niiden rakentamisen algoritmeista (menetelmistä).

Neljännessä luvussa puhutaan El Gamalin sähköisen allekirjoituksen modernisoinnista ja diskreetistä logaritmiongelmasta.

Luku 1. Nykyaikaisen kryptografian peruskäsitteet

Kryptologia (kryptos - salaisuus, logos - tiede) käsittelee tiedon suojaamisen ongelmaa sitä muuntamalla. Kryptologia on jaettu kahteen osa-alueeseen - kryptografiaan ja kryptoanalyysiin. Näiden suuntien tavoitteet ovat suoraan päinvastaiset.

Kryptografia käsittelee matemaattisten menetelmien etsimistä ja tutkimista tiedon muuntamiseksi.

Kryptusanalyysin mielenkiinnon kohteena on tutkia mahdollisuutta purkaa tiedon salaus avaimia tuntematta.

Tässä työssä keskitytään kryptografisiin menetelmiin.

Nykyaikainen kryptografia sisältää neljä pääosaa:

Symmetriset salausjärjestelmät.

Julkisen avaimen salausjärjestelmät.

Sähköiset allekirjoitusjärjestelmät.

Avainten hallinta.

Salausmenetelmien pääasialliset käyttöalueet ovat luottamuksellisen tiedon siirto viestintäkanavien (esim. sähköposti) kautta, lähetettyjen viestien aitouden varmistaminen, tiedon (asiakirjojen, tietokantojen) tallentaminen tietovälineille salatussa muodossa.

Kryptografia mahdollistaa tiedon muuntamisen siten, että sen lukeminen (palautus) on mahdollista vain, jos avain tunnetaan.

Tiettyyn aakkostoon perustuvat tekstit katsotaan salattavaksi ja salattavaksi purettaviksi tiedoiksi. Nämä termit tarkoittavat seuraavaa.

Aakkoset ovat rajallinen joukko merkkejä, joita käytetään tiedon koodaamiseen.

Teksti on järjestetty sarja aakkosllisia elementtejä.

Seuraavassa on esimerkkejä nykyaikaisissa tietojärjestelmissä käytetyistä aakkosista:

aakkoset Z33 - 32 venäjän aakkosten kirjainta ja välilyönti;

aakkoset Z256 - merkit sisältyvät standardiin ASCII- ja KOI-8-koodeihin;

binääriaakkoset - Z2 = (0,1);

oktaaliaakkoset tai heksadesimaaliaakkoset;

Salaus on muunnosprosessi: alkuperäinen teksti, jota kutsutaan myös tavalliseksi tekstiksi, korvataan salatekstillä.

Salauksen purku on salauksen käänteinen prosessi. Avaimen perusteella salateksti muunnetaan alkuperäiseksi.

Avain on tekstien sujuvaan salaukseen ja salauksen purkamiseen tarvittava tieto.

Salausjärjestelmä on T-selkotekstimuunnosten perhe. Tämän perheen jäsenet on indeksoitu tai merkitty symbolilla k; parametri k on avain. Avainavaruus K on joukko mahdollisia avainarvoja. Yleensä avain on aakkosten peräkkäinen sarja.

Salausjärjestelmät jaetaan symmetrisiin ja julkisiin avaimiin.

Symmetrisissä salausjärjestelmissä samaa avainta käytetään sekä salaukseen että salauksen purkamiseen.

Julkisen avaimen järjestelmät käyttävät kahta avainta, julkista ja yksityistä, jotka liittyvät matemaattisesti toisiinsa. Tiedot salataan julkisella avaimella, joka on kaikkien saatavilla, ja salaus puretaan yksityisellä avaimella, jonka tietää vain viestin vastaanottaja. Käsitteet avainten jakelu ja avaintenhallinta viittaavat tietojenkäsittelyjärjestelmän prosesseihin, joiden sisältönä on avainten kokoaminen ja jakaminen käyttäjien kesken.

Sähköinen (digitaalinen) allekirjoitus on tekstiin liitetty kryptografinen muunnos, jonka avulla toisen käyttäjän vastaanottaessa tekstin voidaan varmistaa viestin kirjoittaja ja aitous.

Kryptografinen vahvuus on salauksen ominaisuus, joka määrittää sen kestävyyden salauksen purkamista vastaan ​​tuntematta avainta (eli kryptausanalyysi). Salauksen vahvuudesta on useita indikaattoreita, mukaan lukien:

kaikkien mahdollisten avainten lukumäärä;

keskimääräinen kryptausanalyysiin tarvittava aika.

Muunnos Tk määräytyy vastaavan algoritmin ja parametrin k arvon perusteella. Salauksen tehokkuus tietojen suojaamisessa riippuu avaimen salassapidosta ja salauksen kryptografisesta vahvuudesta.

Salaustietojen sulkemisprosessi voidaan suorittaa joko ohjelmistolla tai laitteistolla. Laitteistototeutus on huomattavasti kalliimpaa, mutta sillä on myös etuja: korkea suorituskyky, yksinkertaisuus, turvallisuus jne. Ohjelmiston toteutus on käytännöllisempi ja mahdollistaa tietynlaisen joustavuuden käytössä.

Seuraavat yleisesti hyväksytyt vaatimukset on muotoiltu nykyaikaisille salaustietoturvajärjestelmille:

salatun viestin on oltava luettavissa vain, jos avain on saatavilla;

käytetyn salausavaimen määrittämiseksi salatun viestin fragmentista ja vastaavasta selkeästä tekstistä tarvittavien toimintojen lukumäärä ei saa olla pienempi kuin mahdollisten avainten kokonaismäärä;

tietojen salauksen purkamiseen vaadittavien toimintojen lukumäärällä etsimällä kaikkien mahdollisten avainten kautta on oltava tiukka alaraja, ja se on ylitettävä nykyaikaisten tietokoneiden ominaisuudet (ottaen huomioon verkkolaskennan käyttömahdollisuus);

salausalgoritmin tuntemus ei saisi vaikuttaa suojauksen luotettavuuteen;

vähäisen muutoksen avaimessa pitäisi johtaa merkittävään muutokseen salatun viestin ulkonäössä, vaikka käytettäisiin samaa avainta;

salausalgoritmin rakenneosien on oltava muuttumattomia;

salausprosessin aikana viestiin lisätyt bitit on piilotettava kokonaan ja turvallisesti salatekstiin;

salatekstin pituuden on oltava yhtä suuri kuin alkuperäisen tekstin pituus;

salausprosessissa peräkkäin käytettyjen avainten välillä ei saa olla yksinkertaisia ​​ja helposti määritettäviä riippuvuuksia;

minkä tahansa monista mahdollisista avaimista on suojattava luotettavasti;

Algoritmin on sallittava sekä ohjelmisto- että laitteistototeutus, kun taas avaimen pituuden muuttaminen ei saa johtaa salausalgoritmin laadulliseen heikkenemiseen.

Luku 2. Salausavainten jakeluprotokollat ​​ja sähköisen allekirjoituksen protokollat.

Riippumatta siitä, kuinka monimutkaisia ​​ja luotettavia salausjärjestelmät ovat, niiden heikko kohta käytännön toteutuksessa on avainten jakeluongelma. Jotta luottamuksellisten tietojen vaihto kahden IP-kohteen välillä olisi mahdollista, toisen on generoitava avain ja siirrettävä sitten jollain tavalla jälleen luottamuksellisesti toiselle. Ne. yleensä avaimen siirtäminen uudelleen vaatii jonkinlaisen kryptojärjestelmän käyttöä.

Tämän ongelman ratkaisemiseksi on ehdotettu julkisen avaimen järjestelmiä klassisen ja modernin algebran tulosten perusteella.

Niiden olemus on, että jokainen IP-osoite tuottaa kaksi avainta, jotka on kytketty toisiinsa tietyn säännön mukaisesti. Toinen avain julistetaan julkiseksi ja toinen yksityiseksi. Julkinen avain on julkaistu ja kaikkien saatavilla, jotka haluavat lähettää viestin vastaanottajalle. Salainen avain pidetään salassa.

Alkuperäinen teksti salataan vastaanottajan julkisella avaimella ja välitetään hänelle. Salattua tekstiä ei periaatteessa voi purkaa samalla pelkällä tekstillä.


avain. Viestin salauksen purku on mahdollista vain yksityisellä avaimella, jonka vain vastaanottaja tietää.

Julkisen avaimen salausjärjestelmät käyttävät ns. irreversiibeliä eli yksisuuntaisia ​​toimintoja, joilla on seuraava ominaisuus: x:n arvolla f(x) arvon laskeminen on suhteellisen helppoa, mutta jos y=f(x), silloin ei ole helppoa tapaa laskea x:n arvoa.

Peruuttamattomien toimintojen luokkien joukko synnyttää kaikenlaisia ​​julkisen avaimen järjestelmiä. Kaikki peruuttamattomat toiminnot eivät kuitenkaan sovellu käytettäväksi todellisissa IC:issä.

09.07.2003

Mikä on salaus?

Ihmiskunta on käyttänyt salausta siitä hetkestä lähtien, kun ensimmäinen salainen tieto ilmestyi, eli sellainen tieto, johon pääsyä tulisi rajoittaa. Tämä oli hyvin kauan sitten - esimerkiksi yksi tunnetuimmista salausmenetelmistä on nimetty Caesarin mukaan, joka, jos hän ei keksinyt sitä itse, käytti sitä aktiivisesti (katso sivupalkki).

Kryptografia varmistaa, että viestin merkitys piilotetaan ja paljastuu salauksen purkamisen avulla erityisillä algoritmeilla ja avaimilla. Ymmärrämme avaimen salaus- ja salauksenpurkualgoritmien parametrien tiettynä salaisena tilana. Avaimen tunteminen mahdollistaa salaisen viestin lukemisen. Kuten alla näet, avaimen tietämättömyys ei kuitenkaan aina takaa, ettei vieras ei voi lukea viestiä.

Prosessia, jossa salaus murretaan tietämättä avainta, kutsutaan krypta-analyysiksi. Salauksen murtamiseen tarvittava aika määräytyy sen kryptografisen vahvuuden mukaan. Mitä suurempi se on, sitä "vahvempi" salausalgoritmi on. Vielä parempi, jos on aluksi mahdotonta saada selville, onko hakkeroinnin tulos saavutettavissa.

Nykyaikaiset perussalausmenetelmät

Erilaisten salausmenetelmien joukosta voidaan erottaa seuraavat päämenetelmät:

  • Korvaus- tai korvausalgoritmit - lähdetekstin merkit korvataan toisen (tai saman) aakkoston merkeillä ennalta määrätyn järjestelmän mukaisesti, joka on tämän salauksen avain. Erikseen tätä menetelmää ei käytännössä käytetä nykyaikaisissa salausjärjestelmissä sen erittäin alhaisen kryptografisen vahvuuden vuoksi.
  • Uudelleenjärjestelyalgoritmit - alkuperäisen tekstin merkit vaihdetaan tietyn periaatteen mukaan, joka on salainen avain. Permutaatioalgoritmilla itsessään on alhainen kryptografinen vahvuus, mutta se sisältyy moniin nykyaikaisiin salausjärjestelmiin.
  • Gamma-algoritmit - lähdetekstin merkit lisätään tietyn satunnaisen sarjan merkkeihin. Yleisin esimerkki on "username.pwl"-tiedostojen salaus, jossa Microsoft Windows 95 -käyttöjärjestelmä tallentaa salasanat tietyn käyttäjän verkkoresursseihin (salasanat kirjautumiseen NT-palvelimiin, salasanat DialUp-Internet-yhteyteen jne.) .

Kun käyttäjä syöttää salasanansa kirjautuessaan Windows 95:een, siitä luodaan gamma (aina sama) käyttämällä RC4-salausalgoritmia, jota käytetään verkon salasanojen salaamiseen. Salasanan valinnan yksinkertaisuus tässä tapauksessa johtuu siitä, että Windows suosii aina samaa värimaailmaa.

  • Algoritmit perustuvat lähdetekstin monimutkaisiin matemaattisiin muunnoksiin tietyn kaavan mukaan. Monet heistä käyttävät ratkaisemattomia matemaattisia tehtäviä. Esimerkiksi Internetissä laajalti käytetty RSA-salausalgoritmi perustuu alkulukujen ominaisuuksiin.

Symmetriset ja epäsymmetriset salausjärjestelmät

Ennen kuin siirrymme yksittäisiin algoritmeihin, tarkastellaan lyhyesti symmetristen ja epäsymmetristen salausjärjestelmien käsitettä. Salaisen avaimen luominen ja viestin salaus sillä on vain puoli voittoa. Mutta kuinka tällainen avain voidaan lähettää jollekin, jonka on käytettävä sitä alkuperäisen viestin salauksen purkamiseen? Salausavaimen lähettämistä pidetään yhtenä salauksen pääongelmista.

Pysymällä symmetrisen järjestelmän puitteissa (niin nimetty, koska salaukseen ja salauksen purkamiseen käytetään samaa avainta), tarvitaan luotettava viestintäkanava salaisen avaimen lähettämiseksi. Mutta tällainen kanava ei ole aina saatavilla, ja siksi amerikkalaiset matemaatikot Diffie, Hellman ja Merkle kehittivät julkisen avaimen ja epäsymmetrisen salauksen käsitteen vuonna 1976. Tällaisissa salausjärjestelmissä vain salausprosessin avain on julkisesti saatavilla, ja salauksen purkumenettely on vain salaisen avaimen omistajan tiedossa.

Esimerkiksi kun haluan, että minulle lähetetään viesti, luon julkisia ja yksityisiä avaimia. Minä lähetän sen sinulle, sinä salaat viestin ja lähetät sen minulle. Vain minä voin purkaa viestin salauksen, koska en antanut salaista avainta kenellekään. Tietenkin molemmat avaimet on linkitetty erityisellä tavalla (eri tavoin kussakin salausjärjestelmässä), eikä julkisen avaimen jakelu tuhoa järjestelmän kryptografista vahvuutta.

Epäsymmetrisissä järjestelmissä on täytettävä seuraava vaatimus: ei ole algoritmia (tai sitä ei vielä tunneta), joka johtaisi alkuperäisen tekstin kryptotekstistä ja julkisesta avaimesta. Esimerkki tällaisesta järjestelmästä on tunnettu RSA-salausjärjestelmä.

RSA-algoritmi

RSA-algoritmi (sen tekijöiden Rivest-Shamir-Adlemanin sukunimien ensimmäisten kirjainten jälkeen) perustuu alkulukujen (ja erittäin suurten) ominaisuuksiin. Alkuluvut ovat niitä lukuja, joilla ei ole muita jakajia kuin he itse ja yksi. Ja koalkiluvut ovat niitä lukuja, joilla ei ole muita yhteisiä jakajia kuin 1.

Ensin valitaan kaksi erittäin suurta alkulukua (suuria alkulukuja tarvitaan suurten, vahvojen avainten rakentamiseen. Esimerkiksi Unix-ohjelma ssh-keygen luo oletuksena 1024 bitin pituisia avaimia).

Määritetään parametri n kertomisen seurauksena s Ja q. Valitaan suuri satunnainen numero ja soitetaan sille d, ja sen on oltava kertolaskutuloksen yläluku (p -1)*(q -1).

Etsitään luku e, jolle relaatio on tosi

(e*d) mod ((p -1)*(q -1)) = 1

(mod- jakojäännös, eli jos e kerrottuna d:llä jaetaan ((p -1)*(q -1)), niin loppuosa on 1).

Julkinen avain on numeropari e ja n ja suljettu - d ja n.

Salattaessa lähdetekstiä käsitellään numerosarjana ja jokaiselle numerolle suoritetaan toiminto

C(i) = (M(i) e) mod n.

Tuloksena on sekvenssi C(i), joka muodostaa kryptotekstin. Tietojen dekoodaus tapahtuu kaavan mukaan

M(i) = (C(i) d) mod n.

Kuten näet, salauksen purkaminen edellyttää salaisen avaimen tuntemista.

Kokeillaan pienillä määrillä.

Asennetaan p = 3, q ​​= 7. Sitten n = p*q = 21. Valita d kuten 5. Kaavasta (e*5) mod 12=1 laskea e=17. Julkinen avain 17, 21 , salainen - 5, 21 .

Salataan sekvenssi "12345":

C(1) = 1 17 mod 21 = 1

C(2) = 2 17 mod 21 = 11

C(3) = 3 17 mod 21 = 12

C(4) = 4 17 mod 21 = 16

C(5) = 5 17 mod 21 = 17

Kryptoteksti - 1 11 12 16 17.

Tarkastetaan salauksen purku:

M(1) = 15 mod 21 = 1

M(2) = 11 5 mod 21 = 2

M(3) = 12 5 mod 21 = 3

M(4) = 16 5 mod 21 = 4

M(5) = 17 5 mod 21 = 5

Kuten näet, tulos oli sama.

RSA-salausjärjestelmää käytetään laajasti Internetissä. Kun muodostat yhteyden suojattuun palvelimeen SSL:n kautta, asennat WebMoney-varmenteen tietokoneellesi tai muodostat yhteyden etäpalvelimeen Open SSH:n tai SecureShellin avulla, kaikki nämä ohjelmat käyttävät julkisen avaimen salausta RSA-algoritmin ideoiden avulla. Onko tämä järjestelmä todella luotettava?

RSA-hakkerointikilpailut

Perustamisestaan ​​lähtien RSA on ollut jatkuvasti raakojen hyökkäysten kohteena. Vuonna 1978 algoritmin kirjoittajat julkaisivat artikkelin, jossa he esittivät merkkijonon, joka oli salattu juuri keksimällään menetelmällä. Ensimmäinen viestin purkanut henkilö sai 100 dollarin palkkion, mutta tämä vaati 129-numeroisen luvun jakamista kahteen tekijään. Tämä oli ensimmäinen kilpailu RSA:n murtamiseen. Ongelma ratkesi vasta 17 vuotta artikkelin julkaisemisen jälkeen.

RSA:n kryptografinen vahvuus perustuu olettamukseen, että yksityisen avaimen määrittäminen julkisesta avaimesta on erittäin vaikeaa, ellei mahdotonta. Tätä varten oli tarpeen ratkaista valtavan kokonaisluvun jakajien olemassaoloongelma. Tähän mennessä kukaan ei ole ratkaissut sitä analyyttisilla menetelmillä, ja RSA-algoritmi voidaan murtaa vain raa'alla voimalla. Tarkkaan ottaen väite, että tekijöiden jakamisen ongelma on vaikea ja RSA-järjestelmän rikkominen vaikeaa, ei myöskään ole todistettu.

Hash-toiminnolla viestin tekstin käsittelyn tuloksena saatu numero salataan RSA-algoritmilla käyttäjän yksityisellä avaimella ja lähetetään vastaanottajalle kirjeen ja julkisen avaimen kopion mukana. Vastaanottaja, käyttämällä lähettäjän julkista avainta, suorittaa saman hajautustoiminnon saapuvalle viestille. Jos molemmat numerot ovat samat, tämä tarkoittaa, että viesti on aito, mutta jos vähintään yksi merkki on muutettu, numerot eivät täsmää.

Yhdessä Venäjän yleisimmistä sähköpostiohjelmista, The Bat! -ohjelmasta, on sisäänrakennetut ominaisuudet digitaalisten allekirjoitusten lisäämiseen kirjeisiin (kiinnitä huomiota Privacy-valikkokohtaan kirjettä muokattaessa). Lue lisää tästä tekniikasta artikkelista (katso "PC World", nro 3/02).

Riisi. 3

Kryptografia

Kryptografia on tiedettä periaatteista, keinoista ja menetelmistä tiedon muuntamiseksi sen suojaamiseksi luvattomalta käytöltä ja vääristymiseltä. Viime aikoina se on kehittynyt erittäin, erittäin nopeasti. Se on loputon, jännittävä kilpailu, joka vaatii paljon aikaa ja vaivaa: kryptanalyytikot murtavat algoritmeja, jotka viime aikoihin asti olivat standardeja ja laajalti käytettyjä. Muuten, äskettäin matemaatikot Dan Goldston (USA) ja Kem Ildirim (Turkki) osoittivat ensimmäisen säännönmukaisuuden alkulukujakaumassa (tällaisia ​​säännönmukaisuuksia ei ollut huomattu tähän mennessä). Alkuluvut sijaitsevat lukuakselilla tietyissä klustereissa, mikä helpottaa niiden löytämistä.

Matemaattinen tutkimus, jota tehdään kaikkialla maailmassa, johtaa jatkuvasti uusiin löytöihin. Kuka tietää, ehkä olemme murtamassa RSA-algoritmia tai muita salausjärjestelmiä, jotka perustuvat ratkaisemattomiin matemaattisiin ongelmiin.

Oleg Bunin- suurten Internet-projektien ohjelmistokehityksen asiantuntija, Rambler-yhtiön työntekijä, http://www..htm).

  • Johdatus kryptografiaan / Toim. V.V. Jaštšenko. M.: MTsNMO, 2000.
  • Nosov V. A. Lyhyt historiallinen hahmotelma kryptografian kehityksestä // Konferenssin "Moskovan yliopisto ja kryptografian kehitys Venäjällä" aineisto, MSU, 17.-18.10.2002.
  • Salomaa A. Julkisen avaimen salaus. M., 1996.
  • Zimmerman F. PGP - julkisen avaimen salaus kaikille.
  • Caesar-salausjärjestelmä

    Esimerkki korvaavasta algoritmista on Caesar-salausjärjestelmä. Tämä menetelmä perustuu viestin jokaisen kirjaimen korvaamiseen toisella siirtymällä alkuperäisestä kiinteällä määrällä merkkejä. Yritä tulkita Omar Khayyamin nelisarjoja (aika loppuun - 10 minuuttia).

    RLZ YOMEYZ AVBZHU IYZAVLU, BZHSCHLU ZHSCHEZZHZ ZHUOSCHZ, EYSH YSHCHAZhFO IYSHCHYVESH BSHCHIZHV EESH ZHSCHRSCHG: LF EMRSYU ЪZEZESCHG, RYU RLZ IZISHCHEZYMY Oi IZISHCHEZ.

    onnistuitko? Tässä on vastaus:

    Elääksesi elämääsi viisaasti, sinun on tiedettävä paljon,

    Muista kaksi tärkeää sääntöä aloittaaksesi:

    Näet mieluummin nälkää kuin syöt mitään

    Ja on parempi olla yksin kuin kenen tahansa kanssa.

    Salauksen purkuavain: siirry seitsemällä merkillä (ota seitsemäs) vasemmalle aakkosjärjestyksessä. Aakkoset on silmukattu. Kirjainkoko ei ole herkkä.

    Windows ja salasanat

    Miten Windows salaa salasanat?

    Järjestelmä ottaa salasanan, muuntaa sen isoiksi kirjaimiksi, leikkaa sen 14 merkin pituiseksi, jakaa ne sitten kahteen 7:n puolikkaaseen, salaa kummankin erikseen ja tallentaa sen siten, mikä helpottaa hakkerointia hieman. Muuten, kun keksit salasanan, muista, että yli 14 merkin pituisella yhdistelmällä ei ole juurikaan merkitystä.

    AES (Advanced Encryption Standard) -kilpailu

    80-luvulla Yhdysvalloissa otettiin käyttöön symmetrinen salausstandardi sisäiseen käyttöön - DES ((Data Encryption Standard, Venäjällä on samanlainen standardi). Mutta vuonna 1997, kun kävi selväksi, että 56-bittinen DES-avain ei riittänyt luotettavaan kryptosysteemi, American Standards Institute julkaisi kilpailun uudesta standardialgoritmista. 15 vaihtoehdosta valittiin paras: belgialainen Rijndael-algoritmi (sen nimi koostuu tekijöiden nimistä - Rijmen ja Daemen, luetaan nimellä "Rijndael". Tämä algoritmi on jo sisäänrakennettu useisiin muiden finalistien markkinoille toimittamiin salaustyökaluihin. Kilpailun voittajat olivat MARS, RC6, Serpent, TwoFish. Kaikki nämä algoritmit ovat varsin kestäviä ja kestävät kaikkia tunnettuja kryptoanalyysimenetelmiä .

    Kryptografiset hash-funktiot

    Kryptografiset hajautusfunktiot muuntaa kaikenkokoiset syötetiedot kiinteän kokoiseksi merkkijonoksi. Heille on erittäin vaikea löytää:

    • kaksi erilaista tietojoukkoa, joilla on sama muunnostulos (törmäysvastus); esimerkiksi aritmeettisten operaatioiden määrä, joka tarvitaan etsimään datalohko, jossa on myös lyhytsanoma MD5-hajautusfunktiolle, on noin 2 64;
    • syöttöarvo, joka perustuu tunnettuun hajautustulokseen (peruuttamattomuus); MD5:lle alkuperäisen sanoman laskemiseen tarvittavien operaatioiden arvioitu määrä on 2 128.