Det grundläggande schemat för ett block cipher beskrivs på följande sätt –
Ett block cipher tar ett block av klartextbitar och genererar ett block av ciphertextbitar, vanligtvis av samma storlek. Blockets storlek är fastställd i det givna schemat. Valet av blockstorlek påverkar inte direkt krypteringssystemets styrka. Chifferns styrka beror på nyckellängden.
Blockstorlek
Tyvärr är alla blockstorlekar godtagbara, men följande aspekter måste beaktas vid valet av blockstorlek.
-
Undervik en mycket liten blockstorlek – Säg att en blockstorlek är m bitar. Då är de möjliga kombinationerna av klartextbitar 2m. Om angriparen upptäcker de block av klartext som motsvarar vissa tidigare skickade chiffertextblock kan angriparen inleda en typ av ”ordboksattack” genom att bygga upp en ordbok över de par av klartext/chiffertext som skickats med hjälp av den krypteringsnyckeln. En större blockstorlek gör attacken svårare eftersom ordboken måste vara större.
-
Har inte mycket stor blockstorlek – Med mycket stor blockstorlek blir chiffret ineffektivt att använda. Sådana klartexter måste fyllas på innan de krypteras.
-
Multipler av 8 bitar – En föredragen blockstorlek är en multipel av 8 eftersom det är lätt att genomföra eftersom de flesta datorprocessorer hanterar data i multiplar av 8 bitar.
Fyllning i blockchiffer
Blockchiffrer bearbetar block av fasta storlekar (till exempel 64 bitar). Längden på klartexter är oftast inte en multipel av blockstorleken. Till exempel ger en 150-bitars klartext två block på 64 bitar vardera med ett tredje block med balans 22 bitar. Det sista bitsblocket måste fyllas på med överflödig information så att längden på det sista blocket blir lika stor som blockstorleken i systemet. I vårt exempel måste de återstående 22 bitarna kompletteras med ytterligare 42 överflödiga bitar för att få ett komplett block. Processen med att lägga till bitar till det sista blocket kallas för utfyllnad.
För mycket utfyllnad gör systemet ineffektivt. Dessutom kan utfyllnad ibland göra systemet osäkert om utfyllnaden görs med samma bitar alltid.
Blockchifferscheman
Det finns ett stort antal blockchifferscheman som används. Många av dem är allmänt kända. De mest populära och framträdande blockchifferna listas nedan.
-
Digital Encryption Standard (DES) – 1990-talets populära blockchiffer. Det anses nu vara ett ”trasigt” blockchiffer, främst på grund av dess lilla nyckelstorlek.
-
Triple DES – Det är ett variantschema som bygger på upprepade DES-tillämpningar. Det är fortfarande en respekterad blockchiffer men ineffektivt jämfört med de nya snabbare blockchiffer som finns tillgängliga.
-
Advanced Encryption Standard (AES) – Det är en relativt ny blockchiffer baserad på krypteringsalgoritmen Rijndael som vann AES-designtävlingen.
-
IDEA – Det är en tillräckligt stark blockchiffer med en blockstorlek på 64 och en nyckelstorlek på 128 bitar. Ett antal tillämpningar använder IDEA-kryptering, bland annat tidiga versioner av PGP-protokollet (Pretty Good Privacy). Användningen av IDEA-systemet är begränsad på grund av patentfrågor.
-
Twofish – Detta blockchiffersystem använder en blockstorlek på 128 bitar och en nyckel med varierande längd. Det var en av AES-finalisterna. Det bygger på det tidigare blockchiffret Blowfish med en blockstorlek på 64 bitar.
-
Serpent – Ett blockchiffer med en blockstorlek på 128 bitar och nyckellängder på 128, 192 eller 256 bitar, som också var en av AES-tävlingens finalister. Det är en långsammare men har en säkrare design än andra blockchiffer.
I de kommande avsnitten kommer vi först att diskutera modellen för blockchiffer följt av DES och AES, två av de mest inflytelserika moderna blockchiffren.
.