Daarbij moet een onderscheid gemaakt worden tussen zogenaamde Symmetrische cijfers, waarbij zowel de versleutelende als ontsleutelende partijen de beschikking hebben over dezelfde sleutels, en asymmetrische cijfers, waarbij de versleutelende partij een bericht wel kan versleutelen, maar berichten van anderen niet kan ontsleutelen. Techworld zet de belangrijkste encryptie-algoritmes op een rij, te beginnen met de symmetrische cijfers.

DES

Tot begin deze eeuw was DES (Data Encryption Standard) het meest gangbare algoritme bij bedrijven en overheden. Reden daarvoor is dat het algoritme in 1976 is gekozen als officiële versleutelstandaard van de Amerikaanse overheid. Vanaf het begin was het door IBM ontwikkelde DES controversieel: de sleutel was met 56-bits (oftewel 256 mogelijke sleutels) al relatief kort, vooral als wordt bedacht dat Lucifer (het algoritme waar DES op is gebaseerd) al een 128-bits sleutel kende.

De 56-bitssleutel laat 'slechts iets meer' dan 70 biljard combinaties toe. Een hedendaagse PC zou met een brute force-aanval nog steeds gemiddeld tegen de honderd jaar doen over het vinden van de juiste sleutel, maar eind jaren 90 is een dergelijke kraakpoging al succesvol afgerond binnen een etmaal met een kleine honderdduizend pc's. Ook supercomputers kunnen DES theoretisch in een paar uur kraken.

Dat neemt niet weg dat DES nog steeds gebruikt wordt door bedrijven om gegevens mee te versleutelen, vooral de Triple DES-variant (TDES), die het algoritme drie keer uitvoert en dus met drie sleutels werkt. Bovendien is de wiskundige formule achter DES niet gekraakt, waardoor aanvallen beperkt blijven tot brute force-pogingen. DES is gebouwd voor hardware, en is daarop bijzonder snel. Softwarematige encryptie is iets moeilijker voor DES, en de huidige AES-standaard is daarin zo'n zeven keer sneller.

AES

Met de zwakte van DES werd het voor de Amerikaanse veiligheidsdiensten eind jaren 90 tijd voor een nieuwe encryptiestandaard. Daarvoor werd een soort wedstrijd uitgeschreven, die gewonnen werd door twee Vlamingen. Vincent Rijmen en Joan Daemen ontwikkelden Rijndael, een algoritme dat komt in varianten met 128- 192- en 256-bits sleutels. Sinds 2002 staat Rijndael 128-bits beter bekend als AES. Advanced Encryption Standard. Met 128-bits kunnen 2128 verschillende sleutels worden gegenereerd; bedenk daarbij dat bij elke extra bit het aantal sleutels nog eens verdubbeld wordt en 56-bits al meer dan 70 biljard sleutels oplevert, en het mag duidelijk zijn dat er onnoemelijk veel sleutels kunnen worden gegenereerd met 128-bits.

Reden om voor Rijndael te gaan, en niet voor de overige 'finalisten' (TwoFish, Serpent, Serpent, MARS en RC6) is dat het relatief eenvoudig is en toch aan alle eisen voldeed. Het moest werken met 128-bits sleutels, de output moest een willekeurig element bevatten (dus het mag niet zo zijn dat de gegevens er bij twee keer versleutelen op dezelfde manier uitkomen). Ieder algoritme dat wiskundig gekraakt werd lag er automatisch uit. AES moest ten minste vijftig jaar meegaan.

AES/Rijndael moet het vooral hebben van zijn snelheid in zowel software als hardware. Het is erg licht, en eenvoudig in de implementatie. Juist omdat de procedure van Rijndael relatief eenvoudig is, wordt het door sommige experts als 'relatief onveilig' gezien, zo zei bijvoorbeeld cryptologisch expert Boris Pawliw in 2007 tegenover Searchsecurity.com. Relatief, omdat AES wel degelijk veilig is: "Aanvallen op het algoritme zijn slechts succesvol gebleken in uiterst beperkte omgevingen, en hoewel dat allemaal wiskundig gezien interessant is, zal het weinig consequenties hebben op de echte wereld", aldus Pawliw tegenover de publicatie.

Twofish

Een andere finalist in de AES-standaardisatie is Twofish, een variant op het door Bruce Schneier ontwikkelde BlowFish. Net als bij Blowfish is het principe van Twofish dat de S-Boxes (kort door de bocht: tabellen aan de hand waarvan de sleutel verder wordt teruggedrongen door de bits-input zelf te coderen, waardoor het algoritme wiskundig moeilijker is te kraken) dynamisch berekend worden; waar de meeste cijfers gebruik maken van vaste S-Boxes, maakt TwoFish een tabel aan op het moment van sleutelgeneratie.

De sleutel zelf is ook complexer dan gebruikelijk, waarmee het potentieel van Twofish om vooral niet wiskundig gekraakt te worden erg groot is. Daarbij staan de snelheidsprestaties van het algoritme als zeer goed te boek, al moet het op 128-bits niveau zijn meerdere erkennen in AES/Rijndael. Op 256-bits is Twofish iets sneller in het coderen en decoderen van de versleuteling. Daar staat tegenover dat het omruilen van de sleutel (bijvoorbeeld voor als de gegevensdrager kwijt raakt) relatief veel tijd in beslag neemt.

Serpent

Voor het zwaardere werk is er Serpent, wederom een symmetrisch blokcijfer en AES-kandidaat. Hij maakt gebruik van maar liefst 32 rekenrondes om tot een volledige versleuteling te komen. Daarin schuilt de kracht van Serpent. Ter vergelijking: AES/Rijndael gebruikt 'slechts' tien rekenrondes. In theorie duurt het daardoor een stuk langer om te kraken dan Rijndael, maar dat gaat wel ten koste van de rekenprestaties in zowel soft- als hardware.

Dit is uiteraard slechts een greep uit het aanbod van symmetrische algorithmes. Andere mogelijkheden zijn ook nog MARS, IDEA, RC6, Crypton, 3Fish,

Asymmetrische cijfers: RSA en DSA

Naast de symmetrische cijfers, bestaat er ook nog zoiets als het asymmetrische cijfer. Het verschil is dat deze feitelijk bestaat uit twee verschillende sleutels, de publieke sleutel en de privésleutel. Daardoor is het voor iedereen mogelijk om een bericht te versleutelen, terwijl alleen de houder van de privésleutel de boel kan ontcijferen. Voor de versleuteling en ontsleuteling van gegevens is bij asymmetrische cijfers meer rekenkracht nodig dan bij symmetrische algoritmes, vandaar ook dat ze vaker worden gebruikt voor kleine 'documenten', zoals wachtwoorden en handtekeningen.

RSA (naar de namen Rivest, Shamir en Adleman, de ontwerpers) is de bekendste van deze algoritmes, en de eerste die daadwerkelijk geschikt is bevonden voor zowel data-encryptie als digitale handtekeningen. De sleutels worden berekend uit twee zeer grote, van elkaar losstaande priemgetallen. Daarbij moet erg secuur te werk worden gegaan, omdat het bij 'zwakke' getallen mogelijk is om de sleutels te raden.

DSA (Digital Signature Algorithm) is de door de Amerikaanse overheid aangehouden standaard voor handtekeningen, en is theoretisch ook geschikt voor gegevensencryptie. Daar is het praktisch gezien niet voor bedoeld. Het verschil tussen DSA en RSA is dat in de eerste de sleutels niet worden gegenereerd aan de hand van twee priemgetallen, maar aan de hand van een gegenereerde hashfunctie en een priemgetal met hetzelfde aantal bits (publieke sleutel), in combinatie met een willekeurige getal (private sleutel). Vooral het aanmaken van de publieke sleutel is omslachtiger dan het geval is bij RSA, vandaar het 'prestatieverlies'.

En ook in de asymmetrische cijfers zijn ook nog andere algoritmes beschikbaar, zoals ElGamal, IES en Goldwasser-Micali. Bron: Techworld