Wat is een coderingsalgoritme?
Versleuteling is de wetenschap van het onleesbaar maken van een tekst om deze veilig en stiekem door te geven aan de beoogde ontvanger, die een sleutel gebruikt om het bericht te ontsleutelen. Een coderingsalgoritme is een gedefinieerde reeks stappen voor het coderen van gegevens. De oorspronkelijke tekst wordt platte tekst genoemd en nadat het coderingsalgoritme erop is toegepast, wordt dit cijfertekst genoemd . Het coderingsalgoritme kan een codering worden genoemd en krijgt vaak een naam. Er is bijvoorbeeld een coderingsalgoritme met de naam Blowfish en een andere met de naam AES (Advanced Encryption Standard).
Een coderingsalgoritme kan afhankelijk zijn van substitutie, zoals in een substitutiecijfer of transpositie, zoals in een transpositiecijfer. Voorbeelden van bekende cijfers die bekend zijn, zijn gebaseerd op eenvoudige coderingsalgoritmen. Julius Caesar gebruikte bijvoorbeeld een cijfer dat substitutie inhield, waarbij hij de letters van het alfabet verschoof zodat een A werd voorgesteld door een D, een B werd voorgesteld door een E, enzovoort. Omdat er 26 letters in het alfabet zijn, kunnen 25 cijfers van deze soort worden gemaakt - de 26e zou A vervangen A hebben, wat niet erg geheim is. De sleutel tot dit cijfer kan worden gezien als het aantal plaatsen dat is verplaatst.
Het is echter niet nodig dat een coderingsalgoritme letters gebruikt. Het kan cijfers en andere symbolen gebruiken als vervanging voor letters. In het korte verhaal 'The Gold Bug' gebruikte Edgar Allen Poe een substitutiecodering waarbij het coderingsalgoritme dit soort substitutie met behulp van symbolen omvat.
53 ## + 305)) 6 *; 4826) 4 #) # 4), 806 *, 48+ 8¶60)) 85 ;;] 8 *;:. # * 8 + 83 (88) 5 * +; 46 (; 88 * 96 * ?; 8) * # (, 485); 5 * + 2: * #
(; 4956 * 2 (5 * -4) 8¶8 *, 4.069.285);) 6 + 8) 4 ##, 1 (# 9; 48081; 8: 8 # 1; 48 + 85; 4) 485 + 528806 * 81 (# 9; 48, (88, 4 (# 34, 48) # 4, 161;:? 188; # ?;
Als je dit cijfer zou oplossen, zou je zien dat Poe de symbolen niet op een ordelijke manier aan de letters toewijst met A = 1, B = 2, enz. Op deze manier is het coderingsalgoritme een beetje ingewikkelder dan de algoritme voor alfabetverschuiving. Als je één letter in een alfabetische verschuiving ontdekt, kun je ze allemaal eenvoudig afleiden. Met het algoritme van Poe weet je echter dat A = 5 niets zegt over B of een andere letter.
De versleutelingsalgoritmen die in moderne toepassingen worden gebruikt, zoals het beveiligen van creditcardtransacties op internet, zijn veel complexer. De sleutels kunnen 256 bits of langer zijn. Als ze moeten worden gekraakt, gebeurt dit alleen met behulp van computers. Als iemand de cijfersleutel zou verkrijgen, zou de cijfertekst echter onmiddellijk kunnen worden gelezen.