RC2 — 64-bittinen symmetrinen lohkosalaus (Ronald Rivest, 1987)
RC2: Ronald Rivestin 1987 kehittämä 64-bittinen symmetrinen lohkosalaus — rakenne, avainlaajennus, historiallinen tausta ja tunnetut haavoittuvuudet.
Kryptografiassa RC2 on symmetrisen avaimen lohkosalaus, jonka Ronald Rivest suunnitteli vuonna 1987. "RC" tulee sanoista "Rivest Cipher" tai epävirallisesti "Ron's Code". RC2 suunniteltiin käytettäväksi 64-bittisten lohkojen salaamiseen ja se on ollut laajalti käytössä muun muassa Lotus Notes -ympäristössä.
Perusominaisuudet
RC2 on 64-bittinen lohkosalaus. Sen avainkoko on muuttuva: käytännössä avaimet voivat olla erilaisia pituuksia, ja vientirajoitusten vuoksi yleisesti käytetty avainpituus oli aikanaan 40 bittiä, mutta toteutuksissa on tuettu myös pidempiä avaimia (esimerkiksi 64 tai 128 bittiä).
Algoritsi suorittaa yhteensä 18 kierrosta; kierrokset on järjestetty lähdepainotteisena feistel-verkkona. 16 näistä kierroksista ovat niin kutsuttuja sekoituskierroksia (mix rounds), jotka on lomitettu kahdella toisen tyyppisellä kierroksella, joista käytetään termiä mashing-kierros (mäskäyskierros).
Rakenne ja avaimen laajentaminen
RC2 käyttää avaimen laajennusalgoritmia, jonka tuloksena muodostetaan laajennettu avain, joka koostuu 64 16-bittisestä sanasta. Tämä laajennettu avain riippuu monimutkaisella tavalla alkuperäisen, vaihtelevan pituisen syöttöavaimen biteistä. Laajennetun avaimen sanat käytetään sitten kunkin sekoituskierroksen lisäämiseen tilaan.
Sekoituskierros (mix) koostuu neljästä peräkkäisestä sekoitustransformaation sovelluksesta, jotka yhdistelevät 16-bittisiä sanoja käyttäen esimerkiksi yhteenlaskua modulo 2^16, bittitasoisia operaatiota (kuten XOR) ja rotaatioita/siirtoja. Mashing-kierroksissa osaan tilan sanoista lisätään suoraan arvoja laajennetusta avaimesta, mikä muuttaa seuraavien sekoituskierrosten vaikutusta.
Kierrosjärjestys
18 kierrosta suoritetaan seuraavalla lomitussekvenssillä:
- tee 5 sekoituskierrosta.
- tee 1 mäskäyskierros.
- tee 6 sekoituskierrosta.
- tee 1 mäskäyskierros.
- tee 5 sekoituskierrosta.
Turvallisuus ja analyysit
RC2 ei enää vastaa nykyaikaisia turvallisuusvaatimuksia. Algoritmi on altis useille kryptanalyysimenetelmille. Erityisesti Kelsey et al. (1997) esittivät sukulaisavainhyökkäyksen (related-key attack), joka vaatii noin 2^34 valittua valetekstiä ja muita ehtoja hyödyntääkseen avainriippuvuuksia. Tämän ja muiden tulosten vuoksi RC2:ta pidetään heikentyneenä verrattuna moderneihin lohkosalausalgoritmeihin kuten AES.
Lisäksi 40-bittinen avainasetus, jota käytettiin paljon vientirajoitusten vuoksi, on nykyisin aivan liian heikko ja altis brute force -hyökkäyksille.
Historia ja käyttöönotto
RC2:n kehittämistä sponsoroi Lotus, joka halusi mukautetun salausmenetelmän osaksi Lotus Notes -ohjelmistoa. Lotus pyysi algoritmin arvioitavaksi NSA:lle. NSA ehdotti muutoksia, jotka Ronald Rivest sitten sisällytti suunnitteluun; neuvotteluiden jälkeen algoritmi hyväksyttiin ohjelmiston mukana vietäväksi vuonna 1989.
Samalla kun RC4:n tapaan RC2:ta käsiteltiin Yhdysvaltojen vientisäännöksissä, erityisesti 40-bittiset versiot olivat säänneltyjä. Nykyään kaikki 40-bittiset salausalgoritmit ovat vanhentuneita käytännössä kaikissa turvallisuussovelluksissa.
Julki- ja lähdekooditapahtumat
Aluksi RC2:n tarkat yksityiskohdat pidettiin salaamina RSA Securityn omaisuutena. Kuitenkin 29. tammikuuta 1996 RC2:n lähdekoodi julkaistiin nimettömänä Internetissä Usenet-foorumilla sci.crypt. Vastaava tapaus oli aiemmin tapahtunut myös RC4:n kohdalla. On remain epäselvää, oliko julkaisijalla suora pääsy alkuperäisiin määrittelyihin vai oliko kyseessä käänteismuunneltu toteutus.
Käytännön suositus
Nykykäytännössä RC2:ta ei suositella käytettäväksi uudessa järjestelmässä. Sen tilalle suositellaan moderneja, julkisesti arvioituja ja standardoituja algoritmeja kuten AES, sekä protokollia ja avainhallintajärjestelmiä, jotka tukevat riittävän pitkiä avaimia ja vahvoja avainvaihtomenetelmiä.
Lisätietoja ja tarkemmat algoritmiesimerkit löytyy muun muassa RFC 2268 -määrittelystä ja julkisista kryptografian tutkimusartikkeleista.

RC2:n sekoitustransformaatio; Sekoituskierros koostuu "sekoitustransformaation" soveltamisesta neljä kertaa.
Kysymyksiä ja vastauksia
K: Mikä on RC2?
V: RC2 on Ronald Rivestin vuonna 1987 suunnittelema symmetrisen avaimen lohkosalaus. Se käyttää 64-bittistä lohkokokoa ja 18 salauskierrosta.
K: Mitä "RC" tarkoittaa?
V: "RC" tarkoittaa "Rivest Cipher" tai vaihtoehtoisesti "Ron's Code".
K: Kuinka monta kierrosta suoritetaan RC2:ta käytettäessä?
V: RC2:ta käytettäessä suoritetaan 18 kierrosta - 16 sekoituskierrosta, jotka on lomitettu kahdella sekoituskierroksella.
K: Miten avaimen laajentamisalgoritmi toimii?
V: Avaimen laajennusalgoritmi tuottaa laajennetun avaimen, joka koostuu 64:stä (16-bittisestä sanasta) riippuen syötetyn vaihtelevan pituisen syöttöavaimen jokaisesta bitistä.
K: Minkälaiselle hyökkäykselle RC2 on altis?
V: RC2 on altis sukulaisavainhyökkäykselle, jossa käytetään 234 valittua tekstihyökkäystä.
K: Kuka sponsoroi RC2:n kehittämistä?
V: RC2:n kehittämistä sponsoroi Lotus, joka halusi mukautetun salausmenetelmän, joka olisi voitu viedä osana sen Lotus Notes -ohjelmistoa.
Etsiä