Kryptonycklars längder – En förvirring
Mikael Simovits, IT-säkerhetskonsult
Simovits Consulting
De senaste åren har massmedia och andra forum diskuterat kryptosystem och dess säkerhet. Ofta har diskussionen fokuserats på systemens nyckellängder. Intresset för just nyckellängder beror på flera orsaker bl.a. de amerikanska exportrestriktionerna för kryptosystem och behovet av att finna en mätbar storhet, dvs förenkla ett relativt avancerat problem. Denna artikel försöker reda ut begreppen, eller rör till dessa, om vad kryptonycklars längder egentligen innebär.
Vi börjar med den amerikanska kryptolagstiftningen, där man säger att endast knäckbara system får exporteras. Under de tidigare åren av 90-talet var detta en relativt enkel procedur. De amerikanska myndigheterna granskade helt enkelt de system som skulle exporteras. Ett företag kunde på den tiden exportera ett system med ofantliga nyckellängder, men ändå få ett godkännande. Det enda kriteriet var att systemet skulle vara knäckbart. Men allt eftersom behovet att exportera kryptosystem växte, var man tvungen att förenkla kraven. Man tillade då att den hemliga delen av systemens nycklar inte får överstiga 40-bitar.
Vad är då 40-bitar? Det finns en datateknisk förklaring och minst två kryptologiska förklaringar. Den datatekniska förklaringen är enkel. En 40-bitars nyckel är helt enkelt det utrymme det tar att lagra nyckeln i datorns minne, dvs 40 stycken ettor och nollor.
Den första kryptologiska förklaringen går ut på att man prövar alla möjliga (rimliga) nycklar och räknar ut hur många prövningar som behövs. Det är oftast inte kryptosystemet som det är fel på utan snarare det sammanhang systemet används inom. Ett exempel:
Antag att vi har ett system som klarar att hantera 64-bitars nycklar datatekniskt. Det är samma som 8 byte, dvs 8 tecken representerade i ASCII-format. ASCII-alfabetet består av 256 tecken. Men om vi endast tillåter de små tecknen på tangentbordet för inmatning av kryptonyckeln, så reduceras nyckellängden till 40-bitar, eftersom endast en delmängd av ASCII-alfabetet används.
En angripare behöver inte söka igenom alla kombinationer utan endast de kombinationer som består av små tecken. Det innebär att även om en säker kryptoalgoritm valts, så kommer en felaktig användning resultera i att kryptosystemets säkerhet elimineras. Om vi jämför systemen DES (Data Encryption Standard) och RSA (Rivest Shamir Adleman), så har DES en datateknisk kryptonyckellängd på 56-bitar, vilket motsvaras av 384-bitars nyckel för RSA. Om vi vidareutvecklar detta ger en 64-bitars nyckel för ett DES-liknande system minst samma säkerhet som 512-bitars RSA.
Den andra kryptologiska definitionen går ut på att man utreder hur många beräkningar som behövs för att forcera ett system. Det vill säga man beräknar en effektiv nyckellängd för systemet. Ett exempel är substitutionskryptot ett krypto som bl.a. används i "krypto-flätorna" i dagstidningarnas helgkorsord. Krypteringen består i att man kastar om bokstäverna i alfabetet. Det går att kasta om alfabetet på 8841761993739701954543616000000 olika sätt, vilket motsvarar en datateknisk nyckellängd på 103-bitar. Ändå lyckas en människa utan några datoriserade hjälpmedel själv knäcka en "kryptofläta" under morgonkaffet.
Vi kan sammanfatta lärdomarna med följande iakttagelser:
Slutsatsen är att nyckellängden endast är ett mått på den bästa tänkbara säkerheten för ett kryptosystem, och det finns inga garantier att systemet når upp till denna nivå. Det finns metoder för hur man väljer rätt system, men det är en annan historia.
För ytterligare läsning rekommenderas "Applied Cryptography, Second Edition" av Bruce Schneier.