REDOC II | |
---|---|
Luoja | Michael Wood |
Luotu | 1990_ _ |
julkaistu | 1990_ _ |
Avaimen koko | 70 - 17920 bittiä, tehollinen: 70 bittiä |
Lohkon koko | 70 bittinen |
Kierrosten lukumäärä | kymmenen |
Tyyppi | oma |
REDOC III | |
---|---|
Luoja | Michael Wood |
Avaimen koko | Muuttuva, jopa 2560 tavua (20480 bittiä) |
Lohkon koko | 80 bittinen |
Kierrosten lukumäärä | kymmenen |
Tyyppi | oma |
REDOC on symmetrinen lohkosalausalgoritmi , jonka Michael Wood kehitti vuonna 1990 Cryptechille ja jota kutsutaan nimellä REDOC II . Kaikki toiminnot - korvaukset , permutaatiot, XOR suoritetaan tavuilla, mikä mahdollistaa sen tehokkaan toteuttamisen ohjelmallisesti. Algoritmi käyttää avain- ja alkuperäisiä selkotekstiriippuvaisia taulukkojoukkoja ( S-laatikoita ) käyttämällä vaihtelevia taulukkofunktioita . Algoritmi erottuu maskien käytöstä , ts. avaintaulukosta saadut numerot. Maskeja käytetään valitsemaan tietyn kierroksen tietyn toiminnon taulukot. Tämä käyttää sekä maskiarvoa että data-arvoa [1] .
REDOC-II on kymmenen kierroksen salausjärjestelmä (mutta on ehdotettu, että yhden tai kahden kierroksen versio on turvallinen) [2] . Jokainen kierros REDOC II:n alkuperäisessä versiossa sisältää joukon manipulaatioita 10 tavun lohkossa. Seitsemää bittiä kustakin tavusta käytetään data-arvoihin, ja kahdeksas bitti on pariteettibitti .
Kuitenkin, koska vain ensimmäiset 7 bittiä kustakin tavusta käytetään salaukseen , kunkin tavun aakkostila on 0 - 127. Ja kaikki toiminnot suoritetaan modulo 128 [3] .
REDOC II:n alkuperäisen version avaimen pituus on 10 tavua. Tehokas avaimen koko on 70 bittiä. On syytä selventää, että REDOC II voi tukea avaimen pituutta alueella 70 - 17920 bittiä [3] .
Jokainen kierros koostuu kuudesta vaiheesta:
Jokaisen vaiheen aikana tietoja käsitellään taulukoiden [4] avulla .
1) 16 ennalta määritettyä hakutaulukkoa, joita käytetään muuttuvissa hakuvaiheissa. (Kiinteä)
Esimerkki hakutaulukosta | |||||||
---|---|---|---|---|---|---|---|
Alkuperäinen | = | Ala 0 | Ala 1 | Ala 4 | Ala 10 | Ala 14 | Sub15 |
arvo | |||||||
0 | = | 90 | 47 | 25 | 66 | 73 | 0 |
yksi | = | 46 | 89 | 51 | 13 | 36 | 52 |
2 | = | 66 | 87 | 103 | 31 | 107 | 44 |
3 | = | 21 | kaksikymmentä | 116 | 7 | 43 | 83 |
… | = | ||||||
126 | = | 24 | neljätoista | 105 | 114 | 77 | 6 |
127 | = | 122 | 62 | yksitoista | 63 | 49 | 79 |
2) 128 ennalta määritettyä permutaatiotaulukkoa, joita muuttuvat permutaatiovaiheet käyttävät. (Kiinteä)
Esimerkki permutaatiotaulukosta | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Alkuperäinen | = | yksi | 2 | 3 | neljä | 5 | 6 | 7 | kahdeksan | 9 | kymmenen |
Permutaatio 1 | = | yksi | 6 | 7 | 9 | kymmenen | 2 | 5 | kahdeksan | 3 | neljä |
Permutaatio 2 | = | kymmenen | neljä | kahdeksan | 3 | yksi | 7 | 2 | 9 | 5 | 6 |
Permutaatio 3 | = | yksi | 6 | neljä | 9 | kahdeksan | 5 | kymmenen | 2 | 3 | 7 |
… | = | ||||||||||
Permutaatio 86 | = | 9 | 7 | 2 | 6 | 5 | kahdeksan | 3 | kymmenen | yksi | neljä |
Permutaatio 87 | = | 5 | 3 | kahdeksan | yksi | 9 | 7 | kymmenen | 2 | neljä | 6 |
… | = | ||||||||||
Permutaatio 126 | = | 9 | kahdeksan | 3 | 7 | yksi | kymmenen | 5 | 6 | 2 | neljä |
Permutaatio 127 | = | 7 | kahdeksan | 5 | kymmenen | 9 | 3 | neljä | 2 | yksi | 6 |
3) 128 ennalta määritettyä erillisaluetaulukkoa, joita vaihtelevat erillisvaiheet käyttävät. (Kiinteä)
Esimerkki enklaavitaulukosta | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
a | b | c | d | ||||||||||||
Merkintä 0: | 5 | 2 | 3 | 3 | 5 | 2 | 5 | neljä | 2 | 5 | neljä | 2 | |||
neljä | 3 | yksi | yksi | 3 | 5 | neljä | 3 | yksi | 2 | 5 | yksi | ||||
2 | 5 | neljä | 2 | neljä | yksi | yksi | 5 | 3 | yksi | 3 | 5 | ||||
yksi | neljä | 5 | neljä | yksi | neljä | 3 | 2 | 5 | 3 | 2 | neljä | ||||
3 | yksi | 2 | neljä | 2 | 3 | 2 | yksi | neljä | neljä | yksi | 3 | ||||
Merkintä 1: | 3 | yksi | 2 | 3 | 2 | 5 | neljä | 2 | yksi | neljä | 2 | 3 | |||
neljä | 3 | yksi | 5 | yksi | neljä | 3 | neljä | 5 | 5 | 3 | yksi | ||||
2 | 5 | neljä | 2 | neljä | 3 | 5 | yksi | neljä | 2 | yksi | 5 | ||||
5 | 2 | 3 | neljä | 3 | yksi | yksi | 3 | 2 | 3 | 5 | neljä | ||||
yksi | neljä | 5 | yksi | 5 | 2 | 2 | 5 | 3 | yksi | neljä | 2 | ||||
… | |||||||||||||||
Ilmoitus 31: | 2 | neljä | yksi | 2 | neljä | 3 | yksi | 5 | 3 | neljä | yksi | 5 | |||
3 | 5 | neljä | neljä | yksi | 2 | 2 | neljä | yksi | 3 | 5 | 2 | ||||
5 | yksi | 3 | 3 | 5 | neljä | neljä | 3 | 2 | yksi | neljä | 3 | ||||
yksi | 2 | 5 | 5 | 2 | yksi | 5 | 2 | neljä | 2 | 3 | neljä | ||||
neljä | 3 | 2 | yksi | 3 | 5 | 3 | yksi | 5 | 5 | 2 | yksi |
4) Lisäksi avaimenkäsittelyalgoritmi laskee kullekin avaimelle 128 kymmenen tavun avaintaulukkoa ja yhdeksän maskitaulukkoa. (Laskettavissa, luodaan, kun salaus alustetaan) [3] [4]
Esimerkki avaintaulukosta | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Avain 0 | = | 0 | 34 | 5 | 63 | 9 | 73 | 74 | 107 | 109 | 33 |
Avain 1 | = | kymmenen | 62 | 48 | 85 | 32 | 101 | kahdeksan | 0 | 63 | 56 |
Avain 2 | = | 26 | 59 | 75 | 97 | 33 | 80 | kahdeksan | 6 | 73 | 26 |
… | = | ||||||||||
Avain 107 | = | 36 | 123 | 45 | kymmenen | 55 | 59 | 109 | 45 | 98 | 24 |
… | = | ||||||||||
Avain 118 | = | 95 | 25 | 48 | 47 | yksi | kaksikymmentä | 117 | 55 | 19 | 67 |
… | = | ||||||||||
Avain 126 | = | 62 | 110 | 70 | 27 | 124 | 31 | 119 | 97 | 9 | 2 |
Avain 127 | = | yksitoista | 54 | 25 | 87 | 107 | 73 | neljä | 118 | 62 | 34 |
Esimerkki maskitaulukosta | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
naamio 1 | = | 48 | 2 | 121 | kahdeksantoista | 60 | 105 | 33 | viisikymmentä | yksitoista | 60 |
Maski 2 | = | 26 | 78 | 24 | 72 | 69 | 13 | 77 | 43 | 9 | 99 |
naamio 3 | = | 64 | 113 | 72 | 61 | 37 | 13 | 49 | 71 | 24 | 60 |
naamio 4 | = | 104 | 62 | 69 | 87 | kahdeksantoista | 31 | 102 | 101 | 32 | 125 |
Permutaatiomuuttujan jokaisessa vaiheessa lisätään kaikki kymmenen tavua dataa (modulo 128), ja tulos XOR-korjataan tietyllä tavulla maskitaulukosta. Tuloksena oleva arvo on permutaatiotaulukon numero. Kaikki datatavut korvataan valitulla permutaatiolla [4] .
Tiedoista valitaan tavu ja maskitaulukosta vastaava tavu, joiden välillä suoritetaan XOR-toiminto. Tuloksena oleva arvo on avaintaulukon numero. (On syytä muistaa, että salaukseen käytetään 7 bittiä jokaisesta tavusta. Näin ollen tuloksena oleva avaintaulukkonumero on välillä 0 - 127). Kaikki datatavut, valittua lukuun ottamatta, XOR-kirjoitetaan vastaavilla tavuilla avaintaulukosta, jossa on vastaanotettu numero.
Tällainen toimenpide suoritetaan kaikille datan tavuille. [neljä]
Tiedoista valitaan tavu ja maskitaulukosta vastaava tavu, joiden välillä suoritetaan XOR-toiminto. Tuloksena oleva arvo otettuna modulo 16 on korvaustaulukon numero. Kaikki tavut, paitsi valittu, korvataan arvoilla korvaustaulukosta vastaanotetulla numerolla.
Tällainen operaatio suoritetaan kaikille datan tavuille [4] .
Ennalta määritetyssä erillistaulukossa on viisi riviä ja 3 saraketta. Jokainen merkintä sisältää numeron 1 - 5. Enklaavitaulukon on täytettävä kaksi ominaisuutta:
Tämä johtuu siitä, että taulukkoa käsitellään rivi riviltä ja seuraavasti: Jokainen numero enklaavitaulukossa tarkoittaa tavun sijaintia. Taulukon yhdellä rivillä määritetyt kolme tavua lasketaan yhteen (moduuli 128). Ensimmäisessä sarakkeessa määritetty tavu korvataan vastaanotetulla määrällä. [3]
Jokainen muuttuva erillisalue käyttää 4 erillistaulukkoa seuraavasti:
REDOC-II:n alkuperäisessä versiossa avaintaulukko ja maskitaulukko täytetään 70-bittisellä K-avaimella.
Avaintaulukon täyttämisen algoritmi on seuraava:
Kaikkiaan muodostetaan 128 aliavainta.
Maskitaulukon täyttämisen algoritmi näyttää tältä:
Yhteensä muodostuu 4 maskia.
Raakaa voimaa pidetään tehokkaimpana tapana avata avain; tavoitteen saavuttamiseen tarvitaan 2160 operaatiota . Melkein ainoa tehokas krypta-analyysi oli Thomas Kuzikin yhden algoritmin kierroksen avaaminen, mutta avausta ei voitu laajentaa uusille kierroksille. Shamir ja Biham analysoivat 2300 avoimen tekstin avulla yhden kierroksen , 4 kierroksen jälkeen saatiin 3 maskiarvoa, mutta tämä ei sinänsä tuonut menestystä ja tällä hetkellä algoritmia pidetään kryptonkestävänä [ 1] .
Algoritmista on myös paljon yksinkertaistettu versio - REDOC III , jonka on luonut Michael Wood. Käytetään 80-bittistä lohkoa, avaimen pituus on vaihteleva, se voi olla 20480 bittiä. Permutaatiot ja korvaukset ovat poissuljettuja, kaikki lohkon ja avaimen toiminnot perustuvat vain XOR:n käyttöön, minkä ansiosta salausnopeus kasvaa merkittävästi differentiaalisen krypta -analyysin vastustuskyvyn kustannuksella . Algoritmi perustuu 256 salaisen avaimen perusteella generoituun 10-tavuiseen avaimeen ja kahteen 10-tavuiseen maskilohkoon, jotka on saatu XOR 128 10-tavuisen avaimen perusteella. REDOC III -algoritmin molempien maskien onnistuneeseen palauttamiseen tarvitaan 223 selkeää tekstiä. Tämä algoritmi on yksinkertainen ja nopea. 33 MHz 80386 -prosessorilla se salaa tiedot 2,75 Mbps:n nopeudella [1] . REDOC II -salausjärjestelmä pystyy salaamaan 800 kbps 20 MHz:n kellotaajuudella. [6]
REDOC II -algoritmi ja sen yksinkertaistettu versio on patentoitu Yhdysvalloissa [1] .
Symmetriset salausjärjestelmät | |
---|---|
Suoratoista salauksia | |
Feistelin verkko | |
SP verkko | |
Muut |