Rijndel: Een triomf vn de wiskunde Vincent Rijmen KULAK, 23 februri 26 Inhoud Vercijferen met een blokcijfer Dt encryption & dvnced dt encryption Ontwerp vn Rijndel 4 ndere finlisten Institute for Applied Informtion Processing nd Communictions (IAIK) - Krypto Group Fculty of Computer Science Grz University of Technology. Rijndel 2
De setting Klssieke cryptogrfie E #!C& #!C& D Rijndel 3 Rijndel 4 2
Principes Eenvoudig substitutiecijfer Kerckhoffs principe: Niets is geheim, behlve prmeter, de sleutel Permuttie vn 26 letters Genertie, distributie en beheer vn de sleutel: prt probleem A Q B W C E Z M 26! mogelijkheden (sleutels) Frequentie-nlyse Wikipedi Rijndel 5 Rijndel 6 3
Gevnceerd substitutiecijfer Blokcijfer Permuttie vn blok letters Vermijd trnsport & stockge vn enorme tbel AAAA QAQZ AAAB WIJT AAAC ENTO ZZZZ MIHB Bereken de tbel: T[X] = f(x,sleutel) codeboek Nog meer sleutels Blokken groot genoeg: frequentienlyse onmogelijk (ondoenbr) Ontwerp `goede f: Veilig Snel Rijndel 7 Rijndel 8 4
Dt Encryption Stndrd (977) 97: nood n cryptogrfie voor commercieel gebruik 973-977: Ontwikkeling vn een blokcijfer: DES De DES rondetrnsformtie Vercijfert blokken vn 64 bit Sleutel vn 56 bit Structuur: 6 iterties vn een rondetrnsformtie Rijndel 9 Rijndel 5
Problemen met DES Geheime ontwerpcriteri NSA betrokkenheid Vlluiken? Korte sleutel Niet genoeg mogelijkheden Toch een succes: de enige keuze Ook gebruikt voor uthentictie Rijndel Rijndel 2 6
Einde vn DES Advnced Encryption Stndrd Ontworpen voor 97 hrdwre Geen goed gebruik vn moderne processors 99, 993: theoretische nvllen + theoretisch ontwerp vn een DES crcker 998: bouw vn een DES crcker (EFF) Tijdelijke oplossing: 3-DES 997: submissies Vereisten: Niet trger dn 3-DES Veiliger Geen roylties Augustus 998: eerste AES conferentie EFF Rijndel 3 Rijndel 4 7
Rijndel structuur Uniforme rondetrnsformtie /2/4 iterties vn de rondetrnsformtie Uniforme rondetrnsformtie DES 4 stppen, elke stp heeft zijn eigen functie: SubBytes: niet-lineriteit ShiftRows: inter-kolom diffusie MixColumns: inter-byte diffusie binnen elke kolom AddRoundKey: inbrengen vn sleutel Rijndel 5 Rijndel 6 8
Stp : SubBytes Stp 2: ShiftRows,,,2,3,,,2 i,j,3 2, 2, 2,2 2,3 S-box b, b, b,2 b,3 b, b, b,2 b i,j,3 b 2, b 2, b 2,2 b 2,3 m n o p g h i j w x y z b c d e m n o p h i j g y z w x e b c d 3, 3, 3,2 3,3 b 3, b 3, b 3,2 b 3,3 Bytes gn door een inverteerbre S-box. Altijd dezelfde S-box: Sterk niet-lineir: multiplictieve inverse in GF(2 8 ) Kleine wijzigingen om lgebrische beschrijving meer complex te mken Rijen schuiven over 4 verschillende offsets Diffusie n meerdere ronden: Interktie met MixColumns Rijndel 7 Rijndel 8 9
Stp 3: MixColumns Stp 4: AddRoundKey,,,j,2,3,,,j,2,3 2, 2, 2,2 2,3 3, 3, 2,j 3,2 3,3 2 3 3 2 3 2 3 2 b,j b, b,,2 b,3 b, b, b,2,j b,3 b 2, b 2, b 2,2 b 2,j 2,3,,,2,3,,,2,3 2, 2, 2,2 2,3 3, 3, 3,2 3,3 + k, k, k,2 k,3 k, k, k,2 k,3 k 2, k 2, k 2,2 k 2,3 k 3, k 3, k 3,2 k 3,3 = b, b, b,2 b,3 b, b, b,2 b,3 b 2, b 2, b 2,2 b 2,3 b 3, b 3, b 3,2 b 3,3 3,j b 3, b 3, 3,2 b 3,3 b 3,j Vermenigvuldig kolommen met mtrix (in GF(2 8 )) Sterke diffusie in elke kolom: Introduceert sleutel keep it simple Rijndel 9 Rijndel 2
Ontwerp vn een blokcijfer Wrschijnlijk veilig en trg: mkkelijk Uitdging: Snel op vele verschillende pltformen Plusibele rgumenten voor veiligheid Rijndel 2 Rijndel 22
Wrom opsplitsen in componenten? Gewenst: output sterk niet-lineire functie vn lle input bits Direct : kost stijgt exponentieel ifv ntl inputs Neem: Zwk niet-lineire functie, of Sterk niet-lineire functies vn minder bits + menging Itereer Belng vn niet-lineriteit Prktijk: deel vn boodschp vk priori bekend Lineir cijfer: Lineire vergelijkingen in sleutel Sterk niet-lineir Moeilijk te benderen met lineire functies Uitgebreide litertuur beschikbr over niet-lineire functies Rijndel 23 Rijndel 24 2
Belng vn menging SubBytes en AddRoundKey: geen menging Blokcijfer Werken op de 6 bytes in prllel Onvolledige menging: cijfer met kleinere blokken Slechte menging: goed benderbr door onvolledige menging Weinig litertuur beschikbr over goede menging Rijndel 25 Rijndel 26 3
MixColumns versie Op zoek nr een optiml diffuziegetl Diffuziegetl = 4 input Lineire code 4 dt symbolen 4 check symbolen output,, 2, 3, gecombineerde vector,, 2, 3,,, 2, 3,,, 2, 3,,2,2 2,2 3,2,2,2 2,2 3,2,3,3 2,3 3,3,3,3 2,3 3,3 Rijndel 27 Rijndel 28 4
Optiml diffuziegetl Diffuziegetl = minimle fstnd vn de lineire code Optimle gevl: fstnd = #check symbolen + = 5 Optimle MixColumns uit MDS-code Eindige veld GF(2 8 ) Lineire code vereist eindig veld GF(2 8 ) pst perfect by bytes Eigenlijk eenvoudiger dn werken met gehele getllen (in hrdwre) Optelling zonder overdrcht Vermenigvuldiging vrgt minder poorten Rijndel 29 Rijndel 3 5
De 4 ndere finlisten Twofish Twofish (Counterpne) MARS (IBM) RC6 (RSA security) Serpent (Cmbridge Technion - Bergen) Rondetrnsformtie ls DES Eclectisch: combineert de beste elementen vn vele ndere ontwerpen. Complex Op vele pltformen snel Rijndel 3 Rijndel 32 6
RC6 Rondetrnsformtie ls DES Heel eenvoudig in lle progrmmeertlen Geen vste tbellen Trg op chipkrten en prllelle computers Mee ontworpen door Rivest (RSA) Rijndel 33 Rijndel 34 7
RC6 in minder dn lijnen MARS [A B C D] = boodschp B = B + S[]; D = D + S[] Voor i = tot 2 doe T = Rot 5 (B*(2B+)) U = Rot 5 (D*(2D+)) A = Rot U (A T) + S[2i] B = Rot T (C U) + S[2i+] [A B C D] = [B C D A] A = A + S[42]; C = C + S[43] Rondetrnsformtie tussen DES en uniform in 4 verschillende rondetrnsformties Gebruikt 32-bit vermenigvuldiging Duur in hrdwre Complex (fouten in specifictie) Hd IBM en mede-ontwerpers vn DES chter zich Rijndel 35 Rijndel 36 8
Serpent Rijndel tegen de rest Uniforme rondetrnsformtie Geen tbellen Super-trg Ontwerpers: 3 befmde cryptogrfen Alle 5 de finlisten zijn veilig Rijndel heeft op veel pltformen een hogere performntie Op ultrmoderne prllelle processoren Op heel eenvoudige processoren Rijndel heeft wiskundige elegntie Eenvoudige beschrijving Link nr eindige velden, lineire codes Controverse: te mooi om wr te zijn? Rijndel 37 Rijndel 38 9