RC6 – symmetrinen lohkosalaus: RC5-johdannainen ja AES-kilpailija

RC6 — perusteellinen esittely symmetrisestä lohkosalauksesta: RC5-johdannainen ja AES-kilpailija, parametrisoitavat lohkot, avaimet, kierrokset ja turvallisuus vs. nopeus.

Tekijä: Leandro Alegsa

Kryptografiassa RC6 on symmetrisen avaimen lohkosalaus, joka on johdettu RC5:stä. RC6 on parametrisoitu algoritmi, jossa on muuttuva lohkokoko, muuttuva avainkoko ja muuttuva kierrosten määrä. RC on lyhenne sanoista "Rivest Cipher" tai vaihtoehtoisesti "Ronin koodi".

Vuonna 1997 NIST julisti kilpailun, jonka tarkoituksena oli valita Data Encryption Standardin (DES) seuraaja nimellä Advanced Encryption Standard (AES). RC6 johdettiin RC5:stä, jotta se täyttäisi kilpailun vaatimukset, ja se valittiin yhdeksi Advanced Encryption Standard (AES) -kilpailun viidestä finalistista, mutta sitä ei valittu standardiksi.

Jotta RC6:n turvallisuus- ja tehokkuustasot vaihtelisivat, sen lohkokoko on valittavissa seuraavasti: 32 bittiä (vain kokeilu- ja arviointitarkoituksiin), 64 bittiä (DES:n korvikkeeksi) ja 128 bittiä (tarkoitettu AES:lle). Kierrosten määrä voi vaihdella 0:sta 255:een, ja avainkoko voi vaihdella 0 bitistä 2040 bittiin.

RC6 on rakenteeltaan hyvin samankaltainen kuin RC5, ja sitä voidaan pitää kahden rinnakkaisen RC5-salausprosessin yhdistelmänä. RC6:ssa käytetään kuitenkin ylimääräistä kertolaskuoperaatiota, jota ei ole RC5:ssä, sekä neljää b/4-bittistä työrekisteriä (ks. selkotekstilohkojen jakaminen Feistel-salauksessa) eikä kahta b/2-bittistä rekisteriä kuten RC5:ssä (b on lohkokoko). Kokonaislukukerrointa käytetään lisäämään kierrosta kohden saavutettua hajotusta, jolloin tarvitaan vähemmän kierroksia ja salakirjoituksen nopeutta voidaan lisätä.
Syy neljän työrekisterin käyttämiseen kahden sijasta on lähinnä optimointi 32-bittisissä suorittimissa. RC5:n oletuslohkokoko oli 64 bittiä, kun taas AES:n oletuslohkokoko on 128 bittiä. RC5:ssä on vain kaksi työrekisteriä. Se käyttää 32-bittisiä operaatioita käsitellessään 64-bittisiä lohkoja ja 64-bittisiä operaatioita käsitellessään 128-bittisiä lohkoja, joten AES-arkkitehtuurin rakentamiseen vain 32-bittisiä operaatioita käyttäen tarvitaan neljä työrekisteriä.

RC6 on suojattu ja patentoitu algoritmi (RSA Security U.S. Patent 5,724,428 ja U.S. Patent 5,835,600 ), ja se saattaa vaatia lisensointia ja rojaltimaksuja kaikista algoritmia käyttävistä tuotteista. Sen ovat suunnitelleet Ron Rivest, Matt Robshaw, Ray Sidney ja Yiqun Lisa Yin, ja se on toimitettu myös NESSIE- ja CRYPTREC-hankkeisiin.

Lyhyt yhteenveto suunnittelusta

RC6 on suunniteltu data-riippuvien kiertojen (data-dependent rotations), modulo-operaatioiden (mod 2^w), binaarisen XORin ja lisäämisen yhdistämiseksi. Algoritmin perusyksikkö työskentelee neljän w-bittisen rekisterin (merkitty usein A, B, C, D) kanssa. Salauksessa käytetään avainlaskentaa, joka tuottaa sarjan kierrosavaimia, ja varsinaisessa kierrossilmukassa hyödynnetään kertolaskua (B*(2B+1) ja D*(2D+1)) tuottamaan kiertoarvoja, jotka lisäävät hajotusta yhdellä kierroksella enemmän kuin pelkillä lisäys- ja XOR-operaatioilla.

Tyypilliset parametrit

  • W (sanapituus): usein 32 bittiä (tästä merkintä RC6-32/...).
  • R (kierrokset): AES-kilpailuun jätetyssä versiossa käytettiin yleensä 20 kierrosta (.../20/...).
  • B (avainbajtit): avaimen pituus oli usein 16 tavua (128 bittiä) kilpailuesityksessä (.../16).
  • Yleinen ja paljon käytetty variantti on RC6-32/20/16 (32‑bittiset sanat, 20 kierrosta, 16 tavun avain).

Algoritmin toiminnan yleiskuva (ilman matemaattisia yksityiskohtia)

Salaus alkaa avainlaajennuksella, jossa käyttäjäavain muunnetaan sarjaksi kierrosavaimia. Ennen kierroksia B- ja D-rekistereihin lisätään kaksi avainarvoa. Jokaisella kierroksella lasketaan kaksi välivakioarvoa kertolaskuilla ja muutamalla muulla perusoperaatiolla; näitä käytetään kiertotoimintojen määränä, joiden jälkeen kaksi rekisteriä päivitetään lisäämällä niihin kierrosavaimet ja suorittamalla XOR- ja kierto-operaatioita. Kierroksissa rekisterit kiertävät paikkaa, ja lopuksi kaksi viimeistä avainarvoa lisätään A- ja C-rekistereihin.

Suorituskyky ja implementointi

RC6 suunniteltiin niin, että se toimii tehokkaasti 32-bittisissä prosessoreissa, minkä vuoksi se käyttää neljää työrekisteriä b/4-bittisinä. Kertolasku tuottaa vahvan hajotuksen, minkä ansiosta acheivaatu diffuusion määrä per kierros on suurempi kuin RC5:ssä, ja siten voidaan käyttää suhteellisen vähemmän kierroksia saavutettaessa haluttu turvallisuustaso. Käytännössä suorituskyky riippuu arkkitehtuurista: 32-bittisissä alustoissa RC6-32/20/16 on kilpailukykyinen, mutta nykyaikaisilla 64-bittisillä alustoilla sekä AES-optimoinnit että laitteistotuki voivat muuttaa tehokkuusvertailuja.

Turvallisuus ja kryptanalyysi

RC6:n rakenne on suunniteltu kestämään tunnettuja analyysimenetelmiä kuten differentiaalista ja lineaarista kryptanalyysiä. Lukuisia teoreettisia analyysejä ja hyökkäyksiä on julkaistu, mutta toistaiseksi ei ole tiedossa käytännöllisesti tehokkaita hyökkäyksiä suositelluilla parametreilla (esimerkiksi RC6-32/20/16) jotka vähentäisivät avaintilan hakemiseen tarvittavaa työtä merkittävästi verrattuna täydelliseen yhdistelmäanalyysiin. Kuitenkin heikennetyille versioille (vähemmän kierroksia) on kehitetty nopeampia hyökkäyksiä, ja siksi on tärkeää käyttää suositeltuja parametreja ja ajantasaisia käytäntöjä.

Historia ja käyttöönotto

RC6 oli yksi viidestä AES-kilpailun finalistista; muut finalistit olivat MARS, Rijndael (josta myöhemmin tuli AES), Serpent ja Twofish. Vaikka RC6 ei valittu AES-standardiksi, se on säilynyt tutkimusyhteisön kiinnostuksen kohteena ja sitä on käytetty ja analysoitu laajasti kokeellisissa ja tutkimuksellisissa toteutuksissa. RC6 toimitettiin myös arvioitavaksi NESSIE- ja CRYPTREC-hankkeissa.

Patentit ja lisensointi

RC6:n tekijät ja RSA Security ovat suojanneet algoritmia patenteilla (mm. U.S. Patent 5,724,428 ja U.S. Patent 5,835,600). Tämä tarkoittaa, että kaupallisissa tuotteissa RC6:n käyttö on saattanut edellyttää lisenssin hankintaa ja mahdollisia rojaltimaksuja. Avointa, rojaltivapaata käyttöönottoa rajoittavat tekijänoikeus- ja patenttitilanteet, joten ennen RC6:n käyttöönottoa tuotannossa kannattaa tarkistaa viimeisin lisenssitilanne.

Sovellukset ja käytännön huomioita

  • RC6 ei saavuttanut laajaa standardisoitua käyttöönottoa AES:n jäätyä voittajaksi, joten sen käyttö tuotantoympäristöissä on harvinaisempaa.
  • Jos tavoitteena on laaja yhteensopivuus ja laitteistotuki, AES (Rijndael) on nykykäytännössä suositeltavampi valinta.
  • RC6 voi kuitenkin olla kiinnostava vaihtoehto tutkimukseen, opetukseen ja tilanteisiin, joissa halutaan vertailla erilaisia lohkosalausperiaatteita tai hyödyntää RC6:n erityispiirteitä.

Jos haluat, voin lisätä artikkeliin myös pseudokoodin RC6:n salaus- ja purkuoperaatioista, selittää yksityiskohtaisemmin avainlaajennuksen tai luoda vertailun RC5:n ja RC6:n välillä suorituskyvyn ja turvallisuuden kannalta.

Kysymyksiä ja vastauksia

K: Mikä on RC6?


V: RC6 on RC5:stä johdettu symmetrisen avaimen lohkosalaus. Se on parametrisoitu algoritmi, jonka lohkokoko, avainkoko ja kierrosten määrä ovat muuttuvia.

K: Kuka suunnitteli RC6:n?


V: RC6:n suunnittelivat Ron Rivest, Matt Robshaw, Ray Sidney ja Yiqun Lisa Yin.

K: Mitkä ovat RC5:n ja AES:n oletuslohkokoot?


V: RC5:n oletuslohkokoko on 64 bittiä ja AES:n oletuslohkokoko on 128 bittiä.

K: Miten RC6:n rakenne eroaa RC5:n rakenteesta?


V: RC6:n rakenne on hyvin samankaltainen kuin RC5:n, mutta siinä käytetään ylimääräistä kertolaskuoperaatiota, jota jälkimmäisessä ei ole, sekä neljää b/4-bittistä työrekisteriä kahden b/2-bittisen rekisterin sijasta.

K: Miksi käytetään neljän työrekisterin sijasta kahta, jotta AES-arkkitehtuuri voidaan rakentaa käyttäen vain 32-bittisiä operaatioita?


V: Kokonaislukukerrointa käytetään lisäämään kierrosta kohden saavutettua hajotusta, joten kierroksia tarvitaan vähemmän ja nopeutta voidaan lisätä. Neljä työrekisteriä tarvitaan, koska 32-bittisiä operaatioita käytetään, kun käsitellään 64-bittisiä lohkoja, ja 64-bittisiä operaatioita, kun käsitellään 128-bittisiä lohkoja.

K: Vaaditaanko algoritmia käyttäviltä tuotteilta lisenssi- tai rojaltimaksuja?



V: Kyllä, koska kyseessä on patentoitu algoritmi (RSA Security U.S. Patent 5,724,428 ja U.S. Patent 5,835,600 ), algoritmia käyttäviin tuotteisiin saatetaan vaatia lisenssi- ja rojaltimaksuja.


Etsiä
AlegsaOnline.com - 2020 / 2025 - License CC3