RC6 | |
---|---|
| |
Luoja | Ronald Rivest, M. Robshaw, R. Sidney (RSA Laboratories) |
Luotu | 1998_ _ |
julkaistu | 1998_ _ |
Avaimen koko | 128, 192 tai 256 bittiä (0 - 2040 bittiä) |
Lohkon koko | 128-bittinen (32-bittisille alustoille) |
Kierrosten lukumäärä | 20 (oletus) |
Tyyppi | Feistelin verkko |
RC6 on symmetrinen lohkosalausalgoritmi , joka on johdettu RC5 - algoritmista . Sen loivat Ron Rivest, Matt Robshaw ja Ray Sidney täyttääkseen Advanced Encryption Standard (AES) -kilpailun vaatimukset. Algoritmi oli yksi kilpailun viidestä finalistista, ja sen toimittivat myös NESSIE ja CRYPTREC . Se on patentoitu (omistus)algoritmi, ja sen on patentoinut RSA Security.
RC6:n AES-muunnos tukee 128-bittisiä lohkoja ja 128-, 192- ja 256-bittisiä avaimia, mutta itse salaus, kuten RC5, voidaan konfiguroida tukemaan laajempaa sekä lohko- että avaimenpituuksia (0 - 2040 bittiä). ) [1] . RC6 on rakenteeltaan hyvin samanlainen kuin RC5, ja se on myös melko helppo toteuttaa.
Se on AES-finalisti, mutta yksi primitiivisistä operaatioista on kertolasku, joka on hidas joillakin laitteistoilla ja vaikeuttaa salauksen toteuttamista useilla laitteistoalustoilla ja joka osoittautui yllätykseksi tekijöille. , on myös toteutettu melko huonosti järjestelmissä, joissa on Intel IA-64 -arkkitehtuuri. Tässä tapauksessa algoritmi menettää yhden tärkeimmistä eduistaan - korkean suoritusnopeuden, josta on tullut kritiikin syy ja yksi esteistä uudeksi standardiksi valinnalle. Kuitenkin Pentium II- , Pentium Pro- , Pentium III- , PowerPC- ja ARM -suoritinjärjestelmissä RC6-algoritmi on voittaja Rijndaelin edellä [2] .
Aivan kuten RC5 , RC6 on täysin parametrisoitu salausalgoritmien perhe. Algoritmin määrittämiseksi tietyillä parametreilla käytetään nimitystä RC6-w/r/b , jossa
Ollakseen AES - yhteensopiva lohkosalauksen on käsiteltävä 128-bittisiä lohkoja. Koska RC5 on poikkeuksellisen nopea lohkosalaus , sen laajentaminen toimimaan 128-bittisten lohkojen kanssa johtaisi kahden 64-bittisen työrekisterin käyttöön. Mutta arkkitehtuuri ja ohjelmointikielet eivät vielä tue 64-bittistä toimintaa, joten projekti jouduttiin muuttamaan käyttämään neljää 32-bittistä rekisteriä kahden 64-bittisen sijaan.
Jatkuva sukupolvi:
Aivan kuten RC5 :ssä, RC6:ssa generoidaan kaksi näennäissatunnaista muuttujaa käyttämällä kahta matemaattista vakiota: eksponentti (e) ja kultainen suhde (f).
,
missä on pyöristys lähimpään parittomaan kokonaislukuun. Kun w = 32 bittiä (heksadesimaali):
Desimaalimuodossa:
Avaimen laajennusmenettely RC6-w/r/b:lle:
RC6 - salauksen avaintaulukko on myös identtinen RC5 - salaustaulukon kanssa . Erona on, että useampia sanoja taulukosta L johdetaan käyttäjän toimittamasta avaimesta, jota käytetään salauksen ja salauksen purkamisen aikana.
Sisäänkäynti:
Poistu:
>>>, <<< - sykliset siirtymät oikealle ja vasemmalle, vastaavasti.
S [ 0 ] = Pw i = 1 - 2 r + 3 do _ S [ i ] = S [ i - 1 ] + Qw A = B = i = j = 0 v = 3 * max { c , 2 r + 4 } kun s = 1 - v do { A = S [ i ] = ( S [ i ] + A + B ) <<< 3 B = L [ j ] = ( L [ j ] + A + B ) <<< ( A + B ) i = ( i + 1 ) mod ( 2 r + 4 ) j = ( j + 1 ) mod c }RC6 toimii neljällä w-bittisellä rekisterillä A, B, C ja D, jotka sisältävät syötetyn selkeän tekstin ja ulostulon salatekstin salauksen lopussa.
Salausmenettely:
Sisäänkäynti:
Poistu:
Salauksen purkumenettely:
Sisäänkäynti:
Poistu:
RC6-algoritmin muunnelma, joka julkistettiin AES :ssä , kuten jo mainittiin, tukee 128-bittisiä lohkoja ja 128-, 192- ja 256-bittisiä avaimia, ja sisältää myös 20 kierrosta. Tämä on RC6-128/20/b, jossa b = 128 192 tai 256 bittiä. Tätä algoritmia vastaan ei ole löydetty hyökkäyksiä. Hyökkäyksiä on löydetty vain algoritmin yksinkertaistettuja versioita vastaan, eli algoritmia, jossa on pienempi määrä kierroksia.
Uskotaan, että paras vaihtoehto RC6:een kohdistuvasta hyökkäyksestä kryptaanalyytikon käytettävissä on b-tavuisen salausavaimen (tai laajennetun avaintaulukon S[0,…,43] raa'an voiman haku, kun käyttäjän toimittama salausavain on erityisen pitkä). Täydellinen luettelointi vaatii operaatioita. Don Coppersmith huomasi, että merkittävän muistin ja esilaskennan vuoksi on mahdollista järjestää kokous keskihyökkäyksissä laajennetun avainryhmän S [0,…,43] palauttamiseksi. Tämä vaatisi laskelmia ja näin ollen tarvittava määrä operaatioita oli .
Edistyneempiin hyökkäyksiin, kuten differentiaaliseen ja lineaariseen kryptausanalyysiin, jotka ovat mahdollisia salauksen matalakierroksisissa versioissa, on vaikea hyökätä koko RC6-salaukseen 20 kierroksella. Vaikeutena on, että on vaikea löytää hyviä toistuvia piirteitä tai lineaarisia approksimaatioita, joilla hyökkäys voitaisiin suorittaa.
Mielenkiintoinen ongelma on asettaa asianmukaiset suojauskohteet näitä kehittyneempiä hyökkäyksiä vastaan. Onnistuakseen nämä hyökkäykset vaativat yleensä suuren määrän tietoa, ja tunnettujen tai valittujen salateksti/selkäteksti-parien lohkojen hankkiminen on eri tehtävä kuin yhden mahdollisen avaimen palauttaminen. On syytä huomata, että kun salaus toimii yhdellä terabitilla sekunnissa (eli salaa dataa bitteillä sekunnissa), 50 rinnakkain työskentelevän tietokoneen tietolohkojen salaamiseen tarvittava aika on yli vuosi; salaa tietolohkot - yli 98 000 vuotta vanhoja; ja salata tietolohkoja on yli vuosia.
Vaikka onnistuneen hyökkäyksen lohkojen tietovaatimuksia voidaan pitää käytännössä riittävinä, kehittäjät pyrkivät tarjoamaan paljon korkeamman suojan.
RC5 - tutkimus ei ole osoittanut heikkouksia avaimen asetuksissa. Tämä johti siihen, että RC6:ssa käytettiin samaa avaimen asennusprosessia. Prosessi käyttäjän toimittaman avaimen muuntamiseksi näppäinkartaksi näyttää olevan hyvin mallinnettu näennäissatunnaisella prosessilla. Joten vaikka ei ole todisteita siitä, että kaksi avainta ei johda samaan avaintaulukkoon, tämä näyttää erittäin epätodennäköiseltä. Tämä voidaan arvioida sillä todennäköisyydellä, että on olemassa kaksi 256-bittistä avainta, jotka johtavat samaan 44, 32-bittisten avainten taulukkoon, on noin .
Voimme tiivistää RC6-suojausta koskevat vaatimuksemme seuraavasti:
- Paras hyökkäys RC6:ta vastaan on raa'a voima käyttäjän toimittamaa salausavainta vastaan.
- Tietovaatimukset monimutkaisempien RC6-hyökkäysten, kuten differentiaalisen ja lineaarisen salausanalyysin, järjestämiseksi ylittävät käytettävissä olevat tiedot.
Tärkeä turvallisuusmarginaalikriteeri on hyökkäysten mahdollinen enimmäismäärä. Tämä on mahdollista RC6:n 12-, 14- ja 15-kierroksen versioille.
Salaus | Kierrosten lukumäärä (b) | Hyökkäystyyppi | Teksti | Tavua muistia | Toiminnot |
---|---|---|---|---|---|
RC6-128/20/b | 12 | Tilastolliset erot | |||
neljätoista | Tilastolliset erot | ||||
15 (256) | Tilastolliset erot |
Neljäs sarake "Teksti" sisältää tiedot salaamattomien lohkojen lukumäärästä ja vastaavista salatekstilohkoista annetulla avaimella. Viides sarake "Memory bytes" sisältää enimmäismäärän muistitavuja, jotka tarvitaan mielivaltaisessa hyökkäyksen kohdassa. Kuudes sarake "Toiminnot" osoittaa hyökkäyksen suorittamiseen tarvittavien toimien odotetun määrän.
Useimmille sovelluksille RC6:n upottaminen ohjelmistoon on luultavasti paras valinta. Primitiiviset RC6-operaatiot (lisäys, vähennyslasku, kertolasku, XOR, offset) tukevat erittäin hyvin nykyaikaiset mikroprosessorit ja siksi tämä on hyödyllistä ottaa huomioon näitä prosessoreita kehitettäessä.
Joissakin tapauksissa on kuitenkin hyödyllistä käyttää RC6:ta sulautetuksi piiriksi. Silloin olisi mahdollista saavuttaa maksiminopeus tai yhdistää muita ominaisuuksia RC6:n ympärille. Koska RC6 käyttää yllä kuvattuja primitiivisiä operaatioita, on mahdollista hyödyntää olemassa olevaa validointia suunniteltaessa piirimoduuleja näiden primitiivisten toimintojen toteuttamiseksi. Esimerkiksi, jos RC6 toteutetaan käyttämällä gate array -pohjaisia teknologioita, se ei tuota toivottuja etuja, koska kertojapiirin suunnitteluun tarvittaisiin valtavasti vaivaa. Tähän tekniikkaan perustuva toteutus on huomattavasti huonompi kuin prosessoriin perustuva toteutus. Mutta tämä ei ole tyypillinen tilanne ja voit helposti suunnitella kertopiirin käytettäväksi alimoduulina.
20 kierrosta lohkoa kohden salausaika on noin 100 nanosekuntia lohkoa kohden, mikä tarjoaa arvioidun datanopeuden noin 1,3 Gbps.
Kuten algoritmin kuvauksesta seuraa, RC6 on erittäin kompakti. Itse asiassa RC6-algoritmin toteuttaminen Assemblerissa Intel Pentium Pro -mikroprosessorille voidaan tehdä alle 256 tavulla koodia jokaiselle tehtävälle:
Toisin kuin monet muut salausalgoritmit, RC6 ei käytä hakutaulukoita salauksen aikana. Tämä tarkoittaa, että RC6-koodi ja tiedot mahtuvat nykyaikaiseen välimuistiin ja säästävät siten muistitilaa.
Koska RC6 on täysin parametroitavissa ja että se voidaan toteuttaa tehokkaasti ja kompaktisti, salaus vaikuttaa erityisen monipuoliselta.
Kuten olemme jo todenneet, RC6 tarjoaa käyttäjälle suuren joustavuuden salausavaimen koon, kierrosten lukumäärän ja päälaskentamoduulin sanakoon suhteen.
Vaikka AES:ssä harkittavaksi jätetty RC6 perustuu 32-bittisten sanojen käyttöön (lohkokoko 128 bittiä), tulevan markkinoiden kysynnän on laajennettava RC6:ta muihin lohkokokoihin. Tärkeimmät ovat 256-bittiset lohkokoot, jotka hyödyntäisivät seuraavan sukupolven järjestelmäarkkitehtuurin tarjoamaa 64-bittistä sanakokoa ja suorituskykyä. Huomaa myös, että RC6-rakenne sallii tietyn asteen rinnakkaisuuden hyödyntämisen salauksenpurku- ja salausrutiineissa. Esimerkiksi t:n ja u:n laskenta kullakin kierroksella voidaan laskea rinnakkain, samoin kuin A:n ja C:n päivitykset. Kun prosessorit kehittyvät kohti enemmän sisäistä rinnakkaisuutta (esimerkiksi siirtymässä kohti superskalaariarkkitehtuuria), RC6-toteutusten pitäisi näkyä paremmin esitys.
Koska RC6:ta ei valittu AES :ksi , ei ole takeita siitä, että sen käyttö on ilmaista. Tammikuussa 2007 RC6:n kehittäjän RSA Laboratoriesin virallisen verkkosivuston verkkosivu sisältää seuraavat tiedot:
"Korostamme, että jos RC6 valitaan AES:lle, RSA Security ei vaadi lisenssi- tai rojaltimaksuja algoritmia käyttävistä tuotteista." rojalteja tai rojalteja tuotteista, jotka käyttävät algoritmia").Korostettu sana "jos" tarkoittaa, että RSA Security Inc. voi nyt vaatia lisenssi- ja tekijänoikeusmaksuja mistä tahansa tuotteesta, joka käyttää RC6-algoritmia. RC6 on patentoitu salausalgoritmi ( US-patentti 5 724 428 ja US-patentti 5 835 600 ).
Symmetriset salausjärjestelmät | |
---|---|
Suoratoista salauksia | |
Feistelin verkko | |
SP verkko | |
Muut |