Kolme kalaa

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 5. toukokuuta 2013 tarkistetusta versiosta . tarkastukset vaativat 22 muokkausta .
kolme kalaa
Luoja Bruce Schneierin johtama asiantuntijaryhmä
Luotu 2008_ _
julkaistu 2008_ _
Avaimen koko 256/512/1024 bittiä
Lohkon koko 256/512/1024 bittiä
Kierrosten lukumäärä 72 (80 1024-bittisellä avaimella)
Tyyppi Korvaus-permutaatioverkko

Threefish  on symmetrinen lohkosalausalgoritmi kryptografiassa , jonka on kehittänyt asiantuntijaryhmä, jota johti Blowfish and Twofishin kirjoittaja , amerikkalainen kryptografi Bruce Schneier vuonna 2008 käytettäväksi Skein - hajautusfunktiossa ja yleisenä korvaajana olemassa oleville lohkosalauksille. Salauksen tärkeimmät suunnitteluperiaatteet olivat: minimaalinen muistin käyttö, hajautusfunktion käytön edellyttämä hyökkäyksiä vastaan, helppokäyttöisyys ja optimointi 64-bittisille prosessoreille .

Algoritmin rakenne

Threefish on rakenteeltaan hyvin yksinkertainen ja sillä voidaan korvata lohkosalauksia, koska se on nopea ja joustava salaus, joka toimii mielivaltaisessa salaustilassa. Threefish ei käytä S-boxeja, se perustuu XOR-, add- ja rotate-ohjeiden yhdistelmään.

Kuten AES, salaus on toteutettu permutaatioverkkona käännettäville operaatioille, ei ole Feistelin verkkosalaus .

Algoritmi mahdollistaa tweak-arvon, eräänlaisen alustusvektorin käytön, mikä mahdollistaa lähtöarvon muuttamisen ilman avainta vaihtamatta, millä on positiivinen vaikutus sekä uusien salaustilojen käyttöönotossa että salauksen vahvuuteen. algoritmi.

Johtuen tekijöiden näkemyksestä, että useat monimutkaiset kierrokset ovat usein huonompia kuin useiden yksinkertaisten kierrosten käyttäminen, algoritmissa on epätavallisen suuri määrä kierroksia - 72 tai 80 1024-bittisellä avaimella, mutta tekijöiden mukaan. , sen nopeusominaisuudet ovat noin kaksi kertaa AES:ää edellä. On syytä huomata, että 64-bittisen salausrakenteen vuoksi tämä lausunto tapahtuu vain 64-bittisessä arkkitehtuurissa. Siksi Threefish, kuten siihen perustuva Skein [1] , näyttää huomattavasti huonompia tuloksia 32-bittisillä prosessoreilla kuin alkuperäisillä laitteistoilla.

Salauksen ydin on yksinkertainen "MIX"-funktio, joka muuntaa kaksi 64-bittistä etumerkitöntä lukua, joiden aikana tapahtuu yhteenlasku, syklinen siirto (ROL/ROR) ja modulo 2 additio (XOR).

Määritelmät

Threefish [2] on lohkosymmetrinen salausalgoritmi, jossa on lisäsäätöparametri (tweak-value). Sen datalohkon koko, jolla algoritmi toimii, on 256, 512 tai 1024 bittiä. Avaimen pituus on yhtä suuri kuin valittu lohkokoko. Tweak-arvon koko mille tahansa lohkokoolle on 128 bittiä.

Määritellään salausfunktio , jossa:

Lohkojen käsittelyä varten tiedot esitetään 64-bittisten sanojen joukona (kokonaisluvut välillä - ). Määritä 64-bittisten sanojen lukumäärä avaimessa (ja lohkossa) ja sitten:

Threefish-algoritmin kierrosten määrä määritellään seuraavasti:

Avaimen/lohkon pituus
256 bittiä neljä 72
512-bittinen kahdeksan 72
1024 bittiä 16 80

Avainaikataulu

Algoritmi käyttää pyöreitä näppäimiä. Lisätään kaksi 64-bittistä sanaa pääavaimeen ja säätöarvoon:

, missä   


Määritellään aliavain muotoon . Kaikki lisäystoiminnot suoritetaan modulo .


Missä

MIX-toiminto

Epälineaarinen sekoitus- ja permutaatiofunktio ottaa kaksi argumenttia syötteenä ja palauttaa :



Missä       on bittikohtaisen vasemman siirtooperaattori, ja vakio määritetään taulukosta:

neljä kahdeksan 16
0 yksi 0 yksi 2 3 0 yksi 2 3 neljä 5 6 7
0 neljätoista 16 46 36 19 37 24 13 kahdeksan 47 kahdeksan 17 22 37
yksi 52 57 33 27 neljätoista 42 38 19 kymmenen 55 49 kahdeksantoista 23 52
2 23 40 17 49 36 39 33 neljä 51 13 34 41 59 17
3 5 37 44 9 54 56 5 kaksikymmentä 48 41 47 28 16 25
neljä 25 33 39 kolmekymmentä 34 24 41 9 37 31 12 47 44 kolmekymmentä
5 46 12 13 viisikymmentä kymmenen 17 16 34 56 51 neljä 53 42 41
6 58 22 25 29 39 43 31 44 47 46 19 42 44 25
7 32 32 kahdeksan 35 56 22 9 48 35 52 23 31 37 kaksikymmentä

Salaus

Merkitään kierroksen algoritmin sisäistä tilaa . Alkuperäinen sisäinen tila .

Jokainen kierros koostuu useista vaiheista. Kierroksen ensimmäisessä vaiheessa pyöreä avain lisätään sisäiseen tilaan seuraavasti:

, jos    , jos   

Kierroksen seuraavassa vaiheessa käytetään epälineaarista funktiota :

, varten   

Seuraava sisäinen tila määritellään seuraavasti:

, varten   

64-bittinen sanapermutaatiofunktio on määritelty alla olevassa taulukossa:

0 yksi 2 3 neljä 5 6 7 kahdeksan 9 kymmenen yksitoista 12 13 neljätoista viisitoista
neljä 0 3 2 yksi
kahdeksan 2 yksi neljä 7 6 5 0 3
16 0 9 2 13 6 yksitoista neljä viisitoista kymmenen 7 12 3 neljätoista 5 kahdeksan yksi


Kun kaikki kierrokset on suoritettu, algoritmin tulos on salateksti :

 , varten  

Salauksen purku

Threefish-algoritmissa salauksen purku on päinvastainen kuin salausmenettely. Pyöreitä näppäimiä käytetään käänteisessä järjestyksessä, ja jokainen kierros koostuu käänteisistä toiminnoista. Funktion sijasta käytetään funktiota , joka suorittaa modulovähennyslaskua ja bittikohtaista oikeaa kiertoa. Jokaisen salauksenpurkukierroksen vaiheet suoritetaan myös käänteisessä järjestyksessä.

Turvallisuus

Kirjoittajien mukaan algoritmilla on korkeampi turvallisuustaso kuin AES . Threefishin kierros on 25 72:sta, kun taas AES:lle - 6 10:stä. Threefishin turvallisuuskerroin on 2,9, AES:n puolestaan ​​vain 1,7 [3]

Threefish-256 salaus tarvitsee 9 kierrosta saavuttaakseen täyden leviämisen, Threefish-512 10 kierrosta ja Threefish-1024 11 kierrosta. Tämän perusteella 72 ja 80 kierrosta antavat keskimäärin parempia tuloksia kuin olemassa olevat salaukset. [neljä]

Samaan aikaan algoritmilla on paljon yksinkertaisempi rakenne ja muunnostoiminto, mutta 72-80 kierroksen suorittaminen tarjoaa tutkijoiden mukaan tarvittavan vakauden. Käytetty avaimen koko 256 - 1024 bittiä estää raa'an voiman hyökkäyksen nykyaikaisia ​​laitteita vastaan.

Linkit

Katso myös

Skein  on Threefishiin perustuva hash-funktio

Muistiinpanot

  1. Skein ylittää SHA-512: n kaksinkertaisesti ja on yksi viidestä nopeimmasta SHA-3-hajautusfunktioehdokkaasta 64-bittisessä arkkitehtuurissa
  2. Skein and Threefish virallinen   eritelmä
  3. Tietoja salauksesta artikkelissa "The Skein Hash Function" . Haettu 4. elokuuta 2016. Arkistoitu alkuperäisestä 16. elokuuta 2016.
  4. [ Skein Hash Function Family   (englanniksi) (linkki ei ole käytettävissä) . Käyttöpäivä: 15. joulukuuta 2008. Arkistoitu alkuperäisestä 15. tammikuuta 2009.   Skein Hash   Function -perhe