Pieni salausalgoritmi
Salaustekniikassa Tiny Encryption Algorithm ( TEA) on algoritmi lohkosalauksille , joka on tunnettu kuvauksen ja toteutuksen yksinkertaisuudesta (yleensä muutama rivi koodia). Sen suunnittelivat David Wheeler ja Roger Needham Cambridgen tietokonelaboratoriosta, ja se esiteltiin ensimmäisen kerran vuonna 1994 Fast Software Encryption Workshopissa (Wheeler ja Needham, 1994). Se ei ole minkäänlaisen patentin alainen .
Ominaisuudet
TEA toimii 64-bittisillä lohkoilla ja käyttää 128-bittistä avainta . Se sisältää suositellun Feistelin verkkorakenteen 64 kierroksella, jotka yleensä toteutetaan pareittain, joita kutsutaan jaksoiksi . Siinä on erittäin yksinkertainen avainten luonti, joka sekoittaa kaiken avainsisällön samalla tavalla jokaisessa jaksossa. Taikavakion eri kerrannaisia käytetään estämään hyökkäyksiä kierrosten symmetrian perusteella.
TEA:ssa on joitain heikkouksia. Merkittävin on, että se kärsii vastaavista avaimista : jokainen näppäin vastaa kolmea muuta, mikä tarkoittaa, että tehokas avaimen pituus on vain 126 bittiä (Kelsey et. al., 1996). Tämä heikkous johti menetelmään murtaa Microsoftin Xbox - konsoli , jossaalgoritmia käytettiin hash - funktiona . TEA on myös altis liittyvän avaimen hyökkäyksille, jotka vaativat 2 23 valittua selkeää tekstiä toisiinsa liittyville avaimille, kronologisen monimutkaisuuden ollessa 2 32 (Kelsey et. al., 1997).
Näiden heikkouksien vuoksi TEA:sta on suunniteltu joitain versioita, mukaan lukien XTEA .
Viitekoodi
Alla on sovitus salaus- ja salauksenpurkurutiineista, jotka David Wheeler ja Roger Needham ovat julkistaneet:
void encrypt(signed long* v, signed long* k) {
etumerkitön pitkä v0=v[0], v1=v[1], summa=0, i; /* asetettu */
allekirjoittamaton pitkä delta=0x9e3779b9; /* avainaikatauluvakio */
etumerkitön pitkä k0=k[0], k1=k[1], k2=k[2], k3=k[3]; /* välimuistiavain */
for (i=0; i < 32; i++) { /* perusjakson aloitus */
summa += delta;
v0 += (v1<<4)+k0 ^ v1+summa ^ (v1>>5)+k1;
v1 += (v0<<4)+k2 ^ v0+summa ^ (v0>>5)+k3; /* loppusilmukka */
}
v[0] = v0; v[1] = v1;
}
void decrypt(signed long* v, unsigned long* k) {
etumerkitön pitkä v0=v[0], v1=v[1], summa=0xC6EF3720, i; /* asetettu */
allekirjoittamaton pitkä delta=0x9e3779b9; /* avainaikatauluvakio */
etumerkitön pitkä k0=k[0], k1=k[1], k2=k[2], k3=k[3]; /* välimuistiavain */
for(i=0; i<32; i++) { /* perusjakson aloitus */
v1 -= (v0 << 4)+k2 ^ v0+summa ^ (v0 >> 5)+k3;
v0 -= (v1 << 4)+k0 ^ v1+summa ^ (v1 >> 5)+k1;
summa -= delta; /* loppusilmukka */
}
v[0] = v0; v[1] = v1;
}
Viitteet
- David J. Wheeler ja Roger M. Needham. TEA, pieni salausalgoritmi. Teoksessa Bart Preneel, toimittaja, Fast Software Encryption: Second International Workshop, luku 1008 of Lecture Notes in Computer Science , sivut 363-366, Leuven, Belgia, 14.-16.12.1994.
- John Kelsey , Bruce Schneier ja David Wagner . IDEA, G-DES, GOST, SAFER ja Triple-DES avainaikataulun kryptausanalyysi. Tietojenkäsittelytieteen luentomuistiinpanot, 1109: 237–251, 1996.
- John Kelsey, Bruce Schneier ja David Wagner. 3-WAY:n, Biham-DES:n, CAST:n, DES-X NewDES:n, RC2 :n ja TEA:n liittyvän avaimen kryptausanalyysi. Tietojenkäsittelytieteen luentomuistiinpanot, 1334: s. 233–246, 1997.
- Julio César Hernández, Pedro Isasi ja Arturo Ribagorda. Geneettisten algoritmien sovellus yhden kierroksen TEA:n kryptoanalyysiin. Proceedings of the 2002 Symposium on Artificial Intelligence and sen Application, 2002.
- Julio César Hernández, José María Sierra, Pedro Isasi ja Arturo Ribargorda. Tehokkaiden erottimien löytäminen kryptografisiin kartoituksiin TEA-lohkosalauksen sovelluksella. Proceedings of the 2003 Congress on Evolutionary Computation, 2003.
- Julio César Hernández, José María Sierra, Arturo Ribagorda, Benjamin Ramos ja JC Mex-Perera. TEA:n erottaminen satunnaisesta permutaatiosta: TEA:n supistetuissa pyöreissä versioissa ei ole SAC:tä tai ne eivät tuota satunnaislukuja. Teoksessa Proceedings of the IMA Int. Conf. on Cryptography and Coding 2001, sivut 374-377, 2001.
- Dukjae Moon, Kyungdeok Hwang, Wonil Lee, Sangjin Lee ja Jongin Lim. Mahdoton differentiaalinen kryptausanalyysi pelkistetylle pyöreälle XTEA:lle ja TEA:lle. Lecture Notes in Computer Science, 2365: 49-60, 2002. ISSN 0302-9743.
- Seokhie Hong, Deukjo Hong, Youngdai Ko, Donghoon Chang, Wonil Lee ja Sangjin Lee. TEA:n ja XTEA:n differentiaalinen kryptausanalyysi. Proceedings of ICISC 2003, 2003b.
Ulkoiset linkit
- Pienen salausalgoritmin kryptaanalyysi
- Web-sivu, joka puoltaa TEA:ta ja tarjoaa erilaisia toteutuksia
- Testaa TEA:n vektoreita
- Tutkimus TEA:sta ja XTEA:sta ja niiden kryptausanalyysistä
- XXTEA:n JavaScript-toteutus Base64:n kanssa
- TEA:n JavaScript-toteutus
- XTEA:n JavaScript- ja PHP-toteutukset (englanninkielinen teksti)
- XXTEA:n JavaScript- ja PHP-toteutus