Stroomvercijfering
Stroomvercijfering is een manier van vercijferen in de cryptografie waarbij de klare tekst bit-voor-bit of woord-voor-woord in cijfertekst wordt omgezet. Dit in tegenstelling tot blokvercijfering, waarbij de klare tekst bloksgewijs in cijfertekst wordt omgezet.
Werking
[bewerken | brontekst bewerken]Een systeem voor stroomvercijfering heeft een interne toestand die beïnvloedt hoe de klare tekst wordt omgezet in cijfertekst. De begintoestand van het systeem wordt bepaald door de sleutel. Voor elk element, bit, byte of letter, uit de klare tekst, produceert het systeem een element in cijfertekst en verandert het tevens de interne toestand.
Synchrone stroomvercijfering
[bewerken | brontekst bewerken]Bij synchrone stroomvercijfering, is de opeenvolging van interne toestanden niet afhankelijk van de te versleutelen gegevens. Elke nieuwe toestand wordt volledig bepaald door de direct voorafgaande toestand.
Veel synchrone systemen voor stroomvercijfering hebben als kern een cryptografische toevalsgenerator. Gegeven de sleutel, produceert deze een eindeloze rij van schijnbaar willekeurige getallen. De cijfertekst wordt dan gevormd door de klare tekst te combineren met de uitvoer van de toevalsgenerator, bijvoorbeeld door middel van een XOR bewerking. Decryptie is mogelijk door opnieuw dezelfde rij willekeurige getallen te produceren en daarmee de omgekeerde bewerking uit te voeren op de cijfertekst.
Zelfsynchroniserende stroomvercijfering
[bewerken | brontekst bewerken]Bij zelfsynchroniserende stroomvercijfering is het niet noodzakelijk om de decryptie precies aan het begin van de cijfertekst te starten. Ook wanneer midden in de cijfertekst begonnen wordt met decryptie, zal de opeenvolging van toestanden in het decryptiesysteem vanzelf in de pas gaan lopen met de toestanden van het encryptiesysteem. Deze zelfsynchronisatie werkt natuurlijk alleen als beide systemen dezelfde sleutel gebruiken.
Zelfsynchronisatie is uitsluitend mogelijk als de toestandsovergangen in het systeem mede afhankelijk zijn van de elementen in de cijfertekst. Het systeem kan dan zodanig ontworpen worden dat de toestand op elk punt in de tekst uitsluitend bepaald wordt door de sleutel en de N meest recente elementen uit de cijfertekst.
Voordelen van zelfsynchronisatie zijn dat het niet nodig is om te weten op welk punt een vercijferd bericht begint, en dat de decryptie automatisch herstelt wanneer een onbekende hoeveelheid cijfertekst wordt overgeslagen.