KHAZAD | |
---|---|
Luoja | Vincent Rayman ja Paulo Barreto |
Luotu | 2000_ _ |
julkaistu | 2000_ _ |
Avaimen koko | 128 bittinen |
Lohkon koko | 64-bittinen |
Kierrosten lukumäärä | kahdeksan |
Tyyppi | Korvaus-permutaatioverkko |
KHAZAD on symmetrinen lohkosalaus kryptografiassa , jonka ovat kehittäneet kaksi kryptografia: belgialainen Vincent Raymen ( Rijndael -salauksen kirjoittaja ) ja brasilialainen Paulo Barreto . . Algoritmi käyttää 64 bitin (8 tavua) datalohkoja ja 128 bitin avaimia. KHAZAD esiteltiin eurooppalaisessa kryptografisten primitiivien kilpailussa NESSIE vuonna 2000, jossa siitä tuli muunneltuna (viritettynä) yksi finalistialgoritmeista (mutta ei voittaja). [yksi]
KHAZAD-algoritmin edeltäjä on Vincent Raymenin ja Joan Dymenin vuonna 1995 kehittämä SHARK - salaus . KHAZADin kirjoittajat väittävät, että algoritmi perustuu Yoan Dymenin ehdottamaan kryptografisesti vahvojen salausalgoritmien kehittämisstrategiaan (Wide-Trail-strategia). [2]
KHAZAD-algoritmilla on konservatiiviset parametrit, ja se on suunniteltu korvaamaan olemassa olevat 64-bittiset salaukset, kuten IDEA ja DES , mikä tarjoaa korkeamman suojaustason suurella suoritusnopeudella.
Salaus käyttää laajasti involuutiomuunnoksia , mikä minimoi eron salaus- ja salauksenpurkualgoritmien välillä.
KHAZAD on iteratiivinen lohkosalaus, jonka lohkokoko on 64 bittiä ja 128-bittinen avain. Syötetietolohko esitetään 8 tavun merkkijonona.
S-laatikko ja sekoitusmatriisi valitaan siten, että salaus ja salauksen purku ovat samat toiminnot ( involuutio ), lukuun ottamatta pyöreitä aliavaimia.
KHAZAD, kuten AES (Rijndael) -algoritmi , kuuluu SHARK -salauksesta johdettujen lohkosalausten perheeseen . [3] [4]
Tärkeimmät erot SHARKista on esitetty taulukossa [1] :
HAI | KHAZAD | |
---|---|---|
Kierrosten lukumäärä | 6 | kahdeksan |
Aikataulu (laajennus) -avain | Affiinimuunnos, joka johtuu salauksen toiminnasta salatekstin palautetilassa | Feistel-kaavio , jossa Feistel-funktio on salauksen pyöreä funktio |
Pelkistymättömän kentän polynomi | (0x1F5) | (0x11D) |
S-box toteutus | Kentän kartoitus + affiinimuunnos | P- ja Q-minilohkojen rekursiivinen rakenne |
Sekoitusmatriisin toteutus | Reed-Solomon koodi | Involution MDS-koodi |
Alkuperäinen KHAZAD-salaus (nimeltään KHAZAD-0) on nyt vanhentunut. Salauksen nykyistä (lopullista) muotoa on muokattu ("viritetty") sen mukauttamiseksi laitteistototeutukseen. Tässä muodossa KHAZAD tunnustettiin NESSIE-finalistiksi. Muutos ei vaikuttanut salauksen perusrakenteeseen. Siinä alun perin täysin satunnaisesti luotu S-laatikko (ilman selkeää sisäistä rakennetta) korvataan rekursiivisella rakenteella: uusi 8x8-korvauslaatikko koostuu pienistä näennäissatunnaisesti luoduista 4x4-minilaatikoista. (P- ja Q-laatikot). [yksi]
Soveltamalla avaimen laajennusmenettelyä avaimeen saadaan sarja pyöreitä avaimia .
Algoritmi sisältää 8 kierrosta, joista jokainen koostuu 3 vaiheesta:
Ennen ensimmäistä kierrosta suoritetaan valkaisu - . Leikkausta ei suoriteta viimeisellä kierroksella.
Operaattorimuodossa algoritmi kirjoitetaan seuraavasti:
Salaus:
Salauksen purku:
Pyöreän avaimen joukko saadaan soveltamalla avaimen laajennusmenettelyä salausavaimeen.
Pyöreä muunnos voidaan kirjoittaa seuraavasti: .
Jokaisella kierroksella syöttölohko jaetaan 8 tavuun, joille tehdään itsenäisesti epälineaarinen muunnos (korvaus), eli ne kulkevat samojen S-laatikoiden läpi rinnakkain (jokainen S-laatikko on 8x8 bittiä, on 8 bittiä sisääntulossa ja 8 bittiä lähdössä). Korvauslohkot alkuperäisessä ja muokatussa (viritetyssä) salauksessa ovat erilaisia. Korvauslohko valitaan siten, että epälineaarinen muunnos on involuutio, eli tai .
8-tavuinen datamerkkijono kerrotaan tavu tavulta kiinteällä 8 x 8 matriisilla, ja tavut kerrotaan Galois'n kentässä pelkistymättömällä polynomilla (0x11D).
yksi | 3 | neljä | 5 | 6 | kahdeksan | B | 7 |
3 | yksi | 5 | neljä | kahdeksan | 6 | 7 | B |
neljä | 5 | yksi | 3 | B | 7 | 6 | kahdeksan |
5 | neljä | 3 | yksi | 7 | B | kahdeksan | 6 |
6 | kahdeksan | B | 7 | yksi | 3 | neljä | 5 |
kahdeksan | 6 | 7 | B | 3 | yksi | 5 | neljä |
B | 7 | 6 | kahdeksan | neljä | 5 | yksi | 3 |
7 | B | kahdeksan | 6 | 5 | neljä | 3 | yksi |
Edellä mainitussa Galois'n kentässä matriisi on symmetrinen ( , ) ja ortogonaalinen ( ). Eli tämän matriisin määrittelemä muunnos on involuutio: , missä on identiteettimatriisi
Bittikohtainen XOR -toiminto suoritetaan 64-bittiselle datalohkolle ja 64-bittiselle pyöreälle avaimelle .
128-bittinen (16-tavuinen) avain on jaettu kahteen yhtä suureen osaan:
Avaimet lasketaan Feistelin kaavion mukaan :
Tässä:
on algoritmin pyöreä funktio syöttölohkolla ja näppäimellä .
on 64-bittinen vakio, jonka tavu on .
Alkuperäisessä salausversiossa (KHAZAD-0) taulukon vaihtoa edusti klassinen S-laatikko, ja se kuvattiin seuraavalla matriisilla:
0 | yksi | 2 | 3 | neljä | 5 | 6 | 7 | kahdeksan | 9 | A | B | C | D | E | F | |
0 | A7 | D3 | E6 | 71 | D0 | AC | 4D | 79 | 3A | C9 | 91 | FC | 1E | 47 | 54 | BD |
yksi | 8C | A5 | 7A | 63 | B8 | DD | D4 | E5 | B3 | C5 | OLLA | A9 | 88 | 0C | A2 | |
2 | 39 | D.F. | 29 | DA | 2B | A8 | CB | 4C | 4B | 22 | AA | 24 | 41 | 70 | A6 | F9 |
3 | 5A | E2 | B0 | 36 | 7D | E4 | 33 | FF | 60 | kaksikymmentä | 08 | 8B | 5E | AB | 7F | 78 |
neljä | 7C | 2C | 57 | D2 | DC | 6D | 7E | 0D | 53 | 94 | C3 | 28 | 27 | 06 | 5F | ILMOITUS |
5 | 67 | 5C | 55 | 48 | 0E | 52 | EA | 42 | 5B | 5D | kolmekymmentä | 58 | 51 | 59 | 3C | 4E |
6 | 38 | 8A | 72 | neljätoista | E7 | C6 | DE | viisikymmentä | 8E | 92 | D1 | 77 | 93 | 45 | 9A | CE |
7 | 2D | 03 | 62 | B6 | B9 | bf | 96 | 6B | 3F | 07 | 12 | AE | 40 | 34 | 46 | 3E |
kahdeksan | D.B. | CF | EU | CC | C1 | A1 | C0 | D6 | 1D | F4 | 61 | 3B | kymmenen | D8 | 68 | A0 |
9 | B1 | 0A | 69 | 6C | 49 | FA | 76 | C4 | 9E | 9B | 6E | 99 | C2 | B7 | 98 | eKr |
A | 8F | 85 | 1F | B4 | F8 | yksitoista | 2E | 00 | 25 | 1C | 2A | 3D | 05 | 4F | 7B | B2 |
B | 32 | 90 | AF | 19 | A3 | F7 | 73 | 9D | viisitoista | 74 | EE | CA | 9F | 0F | 1B | 75 |
C | 86 | 84 | 9C | 4A | 97 | 1A | 65 | F6 | ED | 09 | BB | 26 | 83 | EB | 6F | 81 |
D | 04 | 6A | 43 | 01 | 17 | E1 | 87 | F5 | 8D | E3 | 23 | 80 | 44 | 16 | 66 | 21 |
E | F.E. | D5 | 31 | D9 | 35 | kahdeksantoista | 02 | 64 | F2 | F1 | 56 | CD | 82 | C8 | BA | F0 |
F | EF | E9 | E8 | FD | 89 | D7 | C7 | B5 | A4 | 2F | 95 | 13 | 0B | F3 | E0 | 37 |
Tämä taulukko vastaa täysin Anubis -algoritmissa käytettyä taulukkoa (toinen algoritmi, jonka samat kirjoittajat ovat kehittäneet ja lähettäneet NESSIE-kilpailuun). [2]
S-boxin valintaperiaate [5]Mikä tahansa Boolen funktio voidaan esittää Zhegalkin-polynomina (algebrallinen normaalimuoto). Funktion epälineaarinen järjestys on Zhegalkin-polynomin järjestys, eli sen jäsenten kertalukujen maksimi.
Jos esittelemme funktion ,
Korvaava lohko on kartoitus . Sitä voidaan myös tarkastella näyttönä .
, missä
S-boxin epälineaarinen järjestys - - pienin epälineaarinen järjestys kaikkien lineaaristen komponenttien yhdistelmien joukossa :
- S-box-parametri: , arvoa kutsutaan differentiaaliseksi yhtenäisyydeksi
Kahden Boolen funktion korrelaatio
- S-lohkon parametri:
KHAZAD-0 salaus käyttää näennäissatunnaisesti luotua S-laatikkoa, joka täyttää seuraavat vaatimukset:
Khazadin kirjoittajat tekivät myös muutoksia algoritmiinsa käyttämällä tilaisuutta muuttaa hieman algoritmia kilpailun ensimmäisen kierroksen aikana. Algoritmimäärittelyn uudessa versiossa alkuperäinen Khazad-algoritmi on nimeltään Khazad-0 ja muokatulle algoritmille annetaan nimi Khazad. [2] (Panasenko S.P. "Salausalgoritmit. Erikoisviitekirja")
Salauksen muokatussa versiossa 8x8 S-laatikko on muutettu ja sitä edustaa rekursiivinen rakenne, joka koostuu P- ja Q-minilaatikoista, joista jokainen on pieni korvaava lohko, jossa on 4 tulo- ja lähtöbittiä (4x4).
Korvaavan lohkon rekursiivinen rakenne muokatussa KHAZAD-salauksessa: [6]
u | 0 | yksi | 2 | 3 | neljä | 5 | 6 | 7 | kahdeksan | 9 | A | B | C | D | E | F |
P(u) | 3 | F | E | 0 | 5 | neljä | B | C | D | A | 9 | 6 | 7 | kahdeksan | 2 | yksi |
u | 0 | yksi | 2 | 3 | neljä | 5 | 6 | 7 | kahdeksan | 9 | A | B | C | D | E | F |
Q(u) | 9 | E | 5 | 6 | A | 2 | 3 | C | F | 0 | neljä | D | 7 | B | yksi | kahdeksan |
Tämä P- ja Q-minilaatikoiden rakenne vastaa S-laatikkoa seuraavalla korvaustaulukolla: [1]
0 | yksi | 2 | 3 | neljä | 5 | 6 | 7 | kahdeksan | 9 | A | B | C | D | E | F | |
0 | BA | 54 | 2F | 74 | 53 | D3 | D2 | 4D | viisikymmentä | AC | 8D | bf | 70 | 52 | 9A | 4C |
yksi | EA | D5 | 97 | D1 | 33 | 51 | 5B | A6 | DE | 48 | A8 | 99 | D.B. | 32 | B7 | FC |
2 | E3 | 9E | 91 | 9B | E2 | BB | 41 | 6E | A5 | CB | 6B | 95 | A1 | F3 | B1 | 02 |
3 | CC | C4 | 1D | neljätoista | C3 | 63 | DA | 5D | 5F | DC | 7D | CD | 7F | 5A | 6C | 5C |
neljä | F7 | 26 | FF | ED | E8 | 9D | 6F | 8E | 19 | A0 | F0 | 89 | 0F | 07 | AF | |
5 | 08 | viisitoista | 0D | 04 | 01 | 64 | D.F. | 76 | 79 | DD | 3D | 16 | 3F | 37 | 6D | 38 |
6 | B9 | 73 | E9 | 35 | 55 | 71 | 7B | 8C | 72 | 88 | F6 | 2A | 3E | 5E | 27 | 46 |
7 | 0C | 65 | 68 | 61 | 03 | C1 | 57 | D6 | D9 | 58 | D8 | 66 | D7 | 3A | C8 | 3C |
kahdeksan | FA | 96 | A7 | 98 | EU | B8 | C7 | AE | 69 | 4B | AB | A9 | 67 | 0A | 47 | F2 |
9 | B5 | 22 | E5 | EE | OLLA | 2B | 81 | 12 | 83 | 1B | 0E | 23 | F5 | 45 | 21 | CE |
A | 49 | 2C | F9 | E6 | B6 | 28 | 17 | 82 | 1A | 8B | F.E. | 8A | 09 | C9 | 87 | 4E |
B | E1 | 2E | E4 | E0 | EB | 90 | A4 | 1E | 85 | 60 | 00 | 25 | F4 | F1 | 94 | 0B |
C | E7 | 75 | EF | 34 | 31 | D4 | D0 | 86 | 7E | ILMOITUS | FD | 29 | kolmekymmentä | 3B | 9F | F8 |
D | C6 | 13 | 06 | 05 | C5 | yksitoista | 77 | 7C | 7A | 78 | 36 | 1C | 39 | 59 | kahdeksantoista | 56 |
E | B3 | B0 | 24 | kaksikymmentä | B2 | 92 | A3 | C0 | 44 | 62 | kymmenen | B4 | 84 | 43 | 93 | C2 |
F | 4A | BD | 8F | 2D | eKr | 9C | 6A | 40 | CF | A2 | 80 | 4F | 1F | CA | AA | 42 |
Taulukoista on helppo nähdä, että sekä alkuperäisessä että muunnelmassa S-laatikot ovat involutionaalisia eli .
KHAZADin oletetaan olevan yhtä turvallinen kuin lohkosalauksen annetulla lohkolla ja avaimen pituudella.
Tämä sisältää muun muassa seuraavat:
Salaukseen sisältyi niin suuri turvamarginaali ottaen huomioon kaikki tunnetut hyökkäykset. [yksi]
On olemassa hyökkäyksiä vain lyhennettyä versiota salauksesta, jossa on 5 patruunaa (Frédéric Muller, 2003). [7]
Kuten näette, vakavia ongelmia Khazad-algoritmin kryptografisessa vahvuudessa ei löydetty, minkä myös NESSIE-kilpailun asiantuntijat totesivat. Lisäksi asiantuntijat havaitsivat tämän algoritmin erittäin suuren salausnopeuden. Khazad tunnustettiin lupaavaksi algoritmiksi, erittäin kiinnostavaksi jatkotutkimuksen kannalta, mutta siitä ei tullut yksi kilpailun voittajista, koska asiantuntijat epäilivät, että algoritmin rakenne saattaa sisältää piilotettuja haavoittuvuuksia, joita saattaa löytyä tulevaisuudessa.
— Panasenko S. P. "Salausalgoritmit. Erityinen hakuteos" [2]
KHAZAD-salausta ei ole (eikä koskaan tule) patentoitu. Sitä voidaan käyttää ilmaiseksi mihin tahansa tarkoitukseen. [yksi]
Alkuperäinen teksti (englanniksi)[ näytäpiilottaa] KHAZAD ei ole (eikä koskaan tule) patentoitua. Sitä voidaan käyttää ilmaiseksi mihin tahansa tarkoitukseen. [yksi]Salaus on nimetty J. R. R. Tolkienin Taru sormusten herrasta -trilogiasta Khazad-dûmin tai Morian mukaan, joka on kääpiöiden valtava maanalainen valtakunta Keski-Maan sumuisilla vuorilla . [yksi]
Symmetriset salausjärjestelmät | |
---|---|
Suoratoista salauksia | |
Feistelin verkko | |
SP verkko | |
Muut |