Meteen naar de inhoud

Certificaten voor 47 dagen komen eraan. Ben je er klaar voor?

Handel nu →

Wat is een streamcijfer en een blokcijfer?

Wat is Triple-Data-Encryption-Standard?

Blokcijfers en stroomcijfers zijn de twee categorieën van symmetrische encryptie. Een blokcijfer versleutelt gegevens in blokken van vaste grootte, meestal 128 bits, waarbij voor elk blok dezelfde sleutel wordt gebruikt (bijvoorbeeld AES). Een stroomcijfer versleutelt gegevens bit voor bit of byte door ze te combineren met een pseudowillekeurige sleutelstroom (bijvoorbeeld ChaCha20). Beide maken gebruik van een gedeelde geheime sleutel.

Blokcijfers en stroomcijfers zijn de twee belangrijkste typen symmetrische sleutelversleuteling, waarbij dezelfde sleutel wordt gebruikt voor zowel versleuteling als onversleuteling. Een blokcijfer verwerkt gegevens in blokken van vaste grootte, meestal 128 bits, waarbij elk blok wordt getransformeerd met de sleutel ( AES is het standaardvoorbeeld). Een stroomcijfer verwerkt gegevens continu, één bit of byte per keer, door deze te XOR'en met een pseudowillekeurige sleutelstroom (ChaCha20 is een modern voorbeeld). Elk type is geschikt voor verschillende doeleinden.

Key Takeaways

  • Blok- en stroomcijfers zijn de twee families van symmetrische encryptie; beide maken gebruik van een gedeelde geheime sleutel.
  • Een blokcijfer versleutelt blokken van vaste grootte (meestal 128 bits) met behulp van rondes van substitutie en permutatie; AES is de standaard.
  • Een stroomcijfer versleutelt één bit of byte tegelijk door de gegevens te XOR'en met een pseudowillekeurige sleutelstroom; ChaCha20 is de moderne keuze, RC4 is de verouderde, niet meer betrouwbare variant.
  • Blokcijfers zijn geschikt voor data in rust en gestructureerde data; stroomcijfers zijn geschikt voor realtime, continue of data met lage latentie. Een blokcijfer in CTR-modus gedraagt ​​zich als een stroomcijfer.
  • Beide zijn symmetrisch, dus beide zijn bestand tegen kwantumaanvallen: Grovers algoritme halveert slechts de sleutelsterkte, waardoor AES-256 en ChaCha20 sterk blijven. Er bestaat geen Shor-dreiging voor symmetrische cijfers.

Wat is een blokcijfer?

Een blokcijfer is een symmetrisch encryptiealgoritme dat gegevens versleutelt in blokken van vaste grootte, meestal 128 bits (oudere cijfers zoals DES en 3DES gebruikten blokken van 64 bits). Elk blok wordt met behulp van de geheime sleutel omgezet in een versleuteld blok van dezelfde grootte. Als de gegevens geen exact veelvoud van de blokgrootte zijn, worden ze aangevuld om te passen. Moderne blokcijfers zijn opgebouwd als iteratieve productcijfers, waarbij meerdere transformatierondes worden toegepast. De belangrijkste kenmerken:

  • Blokgrootte: Versleuteling vindt plaats op blokken van vaste grootte (vaak 128 bits), waarbij elk blok dezelfde reeks sleutelgebaseerde transformaties doorloopt.
  • Sleuteluitbreiding: De geheime sleutel wordt uitgebreid tot een reeks ronde-subsleutels, één per ronde, wat de versleuteling versterkt.
  • Verwarring en verspreiding: Verwarring verbergt de relatie tussen de sleutel en de versleutelde tekst; diffusie spreidt de invloed van elke platte tekstbit over vele versleutelde bits. Deze twee principes, afkomstig van Claude Shannon, vormen de kern van een sterke versleuteling.
  • Rondes: Elk blok doorloopt meerdere rondes van substitutie, permutatie en menging, waardoor de uitkomst extreem moeilijk omkeerbaar is zonder de sleutel.
  • Cryptografische sterkte: Goed ontworpen blokcijfers zijn bestand tegen aanvallen zoals differentiële en lineaire cryptanalyse.

Werkingsmodi van blokcijfers

Een blokcijfer definieert alleen hoe één blok versleuteld moet worden. Om langere gegevens veilig te versleutelen, werkt het in een 'bedrijfsmodus'. De modus is net zo belangrijk als het cijfer zelf:

  • ECB (Elektronisch Codeboek): De eenvoudigste methode versleutelt elk blok afzonderlijk. Dit is onveilig voor de meeste gegevens, omdat identieke blokken vaak identiek zijn. plaintext ECB-blokken produceren identieke versleutelde tekstblokken, waardoor patronen doorlekken (de bekende 'ECB-pinguïn'-afbeelding laat dit zien). Vermijd ECB voor alles behalve enkele willekeurige blokken.
  • CBC (Cipher Block Chaining): Elk blok wordt vóór de encryptie ge-XOR'd met het voorgaande ciphertextblok, waarbij voor het eerste blok een willekeurige initialisatievector (IV) wordt gebruikt. Identieke plaintextblokken worden vervolgens op verschillende manieren versleuteld, wat de zwakte van ECB verhelpt.
  • CTR en GCM (Counter, Galois/Counter): Deze methoden zetten een blokcijfer om in een stroomachtig cijfer en voegen ingebouwde integriteit toe. GCM is met name de standaard voor TLS omdat het geauthenticeerde encryptie biedt (vertrouwelijkheid plus detectie van manipulatie).

Op maat gemaakte encryptiediensten

Wij beoordelen, ontwikkelen strategieën en implementeren encryptiestrategieën en -oplossingen.

Wat is een stroomcijfer?

Een stroomcijfer is een symmetrisch encryptiealgoritme dat gegevens bit voor bit of byte versleutelt, in plaats van in blokken. Het werkt door een sleutelstroom te genereren, een lange reeks pseudowillekeurige bits afgeleid van de sleutel, en deze te combineren met de platte tekst, meestal met de XOR-bewerking. Ontsleuteling is hetzelfde proces in omgekeerde volgorde: door de versleutelde tekst te XOR'en met dezelfde sleutelstroom wordt de platte tekst hersteld. De belangrijkste kenmerken:

  1. Keystream-generatie: De geheime sleutel dient als zaadwaarde voor een pseudowillekeurige generator die de sleutelstroom genereert. De sleutelstroom moet onvoorspelbaar zijn en mag nooit met dezelfde sleutel worden hergebruikt, anders is de beveiliging in gevaar.
  2. XOR-codering: Elke bit van de platte tekst wordt ge-XOR'd met de corresponderende bit van de sleutelstroom. Bijvoorbeeld, platte tekst 10011001 XOR met sleutelstroom 11000011 geeft versleutelde tekst 01011010; het XOR'en van die versleutelde tekst met dezelfde sleutelstroom geeft 10011001.
  3. Snelheid en lage latentie: Omdat ze gegevens continu verwerken met zeer weinig overhead, zijn streamversleuteling snel en zeer geschikt voor realtime toepassingen en voor gegevens met een onbekende of streaminglengte.

De klassieke streamversleuteling RC4 is inmiddels gekraakt en verboden in TLS; het gebruik ervan wordt afgeraden. De moderne standaard is ChaCha20 (vaak in combinatie met de Poly1305-authenticator als ChaCha20-Poly1305), die snel, veilig en breed gebruikt wordt in TLS 1.3 en op mobiele apparaten. Salsa20 is de voorganger ervan.

Blokversleuteling versus stroomversleuteling: de vergelijking

De twee families lossen hetzelfde probleem op verschillende manieren op. Dit is de kern van de vergelijking:

Aspect Cijfer blokkerenStream-cijfer
encryptie-eenheidBlokken met een vaste grootte (meestal 128 bits)Bit voor bit of byte voor byte
Hoe werkt onze technologie?Rondes van substitutie en permutatie per blokXOR-bewerking van platte tekst met een pseudowillekeurige sleutelstroom
Snelheid en latentieIets hogere overheadkosten; vereist een volledig blok.Snel, lage latentie, je hoeft niet te wachten op een blokkering.
VullingMogelijk is opvulling nodig om een ​​blok te vullen.Geen vulling nodig
FoutvoortplantingEen fout kan het hele blok beïnvloeden (afhankelijk van de modus).Een fout heeft meestal alleen invloed op dat specifieke bit.
Meest geschikt voorGegevens in rust, bestanden, databases, gestructureerde gegevensRealtime, streaming, spraak, continue data
VoorbeeldenAES, DES, 3DES, Twofish, BlowfishChaCha20, Salsa20, RC4 (kapot, verouderd)

In de praktijk vervaagt de grens: een blokcijfer dat in CTR- of GCM-modus werkt, gedraagt ​​zich feitelijk als een stroomcijfer, waarbij een sleutelstroom wordt gegenereerd uit het blokcijfer en deze met de gegevens wordt ge-XOR'd. Daarom gebruiken moderne systemen vaak AES in GCM-modus (AES-GCM) om de beveiliging van een blokcijfer te combineren met de flexibiliteit en ingebouwde integriteit van een stroomcijfer. AES-GCM en ChaCha20-Poly1305 zijn de twee meest gebruikte opties in TLS 1.3.

Zijn blok- en stroomcijfers kwantumveilig? De vooruitzichten voor 2026
Zowel blok- als stroomcijfers zijn symmetrische algoritmen, en symmetrische encryptie heeft een sterke positie voor het kwantumtijdperk. Geen van beide wordt bedreigd door het algoritme van Shor, dat publieke-sleutelalgoritmen zoals RSA en ECC Maar dit geldt niet voor symmetrische cijfers. De enige relevante kwantumaanval is het Grover-algoritme, dat het zoeken naar sleutels met brute force versnelt en de sleutelsterkte van een cijfer effectief halveert. In de praktijk betekent dit dat een symmetrische sleutel van 256 bits ongeveer 128 bits aan beveiliging behoudt, zelfs tegen een toekomstige kwantumcomputer, wat als veilig wordt beschouwd. AES-256 (blok) en ChaCha20 met een 256-bits sleutel (stream) blijven dus beide kwantumresistent, en het advies is simpelweg om 256-bits sleutels te gebruiken. De urgente post-kwantummigratie (waarbij NIST ML-KEM, ML-DSA en SLH-DSA in 2024 heeft afgerond en van plan is RSA en ECC tussen 2030 en 2035 uit te faseren) betreft cryptografie met publieke sleutels, niet de hier beschreven symmetrische blok- en streamcijfers.

Op maat gemaakte encryptiediensten

Wij beoordelen, ontwikkelen strategieën en implementeren encryptiestrategieën en -oplossingen.

Hoe encryptieconsultancy kan helpen

De juiste versleuteling en modus, zoals AES-GCM, ChaCha20-Poly1305, de juiste blokversleutelingsmodus en een degelijk sleutelbeheer, hebben een directe impact op de beveiliging. De adviesdiensten van Encryption Consulting beoordelen uw cryptografische positie, identificeren zwakke punten zoals de ECB-modus of de gebroken RC4-versleuteling, en ontwerpen sterke, op standaarden gebaseerde versleuteling (AES, moderne modi en correct sleutelbeheer) in lijn met NIST en FIPS 140-3 , inclusief planning voor de post-kwantumtransitie van uw publieke-sleutelcryptografie. Ondersteund door ISO/IEC 27001:2022 en SOC 2-gecertificeerde werkwijzen.

Veelgestelde Vragen / FAQ

Wat is het verschil tussen een blokcijfer en een stroomcijfer?

Een blokcijfer versleutelt gegevens in blokken van vaste grootte, meestal 128 bits, waarbij rondes van substitutie en permutatie op elk blok worden toegepast met de sleutel; AES is hiervan het standaardvoorbeeld. Een stroomcijfer versleutelt gegevens bit voor bit of byte door ze te XOR'en met een pseudowillekeurige sleutelstroom die is afgeleid van de sleutel; ChaCha20 is een modern voorbeeld. Blokcijfers zijn geschikt voor data in rust en gestructureerde data, terwijl stroomcijfers geschikt zijn voor realtime of continue data. Een blokcijfer in CTR- of GCM-modus gedraagt ​​zich in feite als een stroomcijfer.

Wat is een blokcijfer?

Een blokcijfer is een symmetrisch encryptiealgoritme dat gegevens versleutelt in blokken van vaste grootte, meestal 128 bits (oudere cijfers zoals DES gebruikten 64 bits). Elk blok wordt met behulp van de geheime sleutel omgezet in een versleuteld blok van dezelfde grootte, door middel van meerdere rondes van substitutie en permutatie. Gegevens worden aangevuld als ze een blok niet volledig vullen. Omdat een blokcijfer op zichzelf slechts één blok verwerkt, werkt het in een modus (zoals CBC of GCM) om langere gegevens veilig te versleutelen. AES is het meest gebruikte blokcijfer.

Wat is een stroomcijfer?

Een stroomcijfer is een symmetrisch encryptiealgoritme dat gegevens bit voor bit of byte versleutelt. Het genereert een sleutelstroom, een lange reeks pseudowillekeurige bits afgeleid van de geheime sleutel, en combineert deze met de platte tekst met behulp van XOR. Bij decryptie wordt de versleutelde tekst met dezelfde sleutelstroom ge-XORd om de platte tekst te herstellen. Stroomcijfers zijn snel en hebben een lage latentie, waardoor ze geschikt zijn voor realtime of streaming data. ChaCha20 is de moderne standaard; RC4 is een ouder stroomcijfer dat inmiddels is gekraakt en niet meer gebruikt mag worden.

Wat is veiliger, een blokversleuteling of een stroomversleuteling?

Geen van beide is inherent veiliger; de veiligheid hangt af van het specifieke algoritme, de sleutelgrootte en hoe het wordt gebruikt. Een goed ontworpen moderne blokversleuteling (AES in GCM-modus) en een goed ontworpen moderne stroomversleuteling (ChaCha20-Poly1305) worden beide als zeer veilig beschouwd en zijn de twee meest gebruikte opties in TLS 1.3. Problemen ontstaan ​​door zwakke of verkeerd gebruikte algoritmen, zoals de gebroken RC4-stroomversleuteling of een blokversleuteling die wordt gebruikt in de onveilige ECB-modus. De sleutel is om actuele, standaardalgoritmen en -modi met sterke sleutels te gebruiken.

Wat zijn voorbeelden van blok- en stroomcijfers?

Veelgebruikte blokcijfers zijn onder andere AES (de wereldwijde standaard), DES en 3DES (oudere, inmiddels verouderde) en Twofish en Blowfish. Veelgebruikte stroomcijfers zijn onder andere ChaCha20 en zijn voorganger Salsa20, die modern en veilig zijn, en RC4, een ouder stroomcijfer dat inmiddels is gekraakt en verboden in TLS. Merk op dat AES in een modus zoals CTR of GCM een sleutelstroom genereert en in feite als een stroomcijfer fungeert, wat de werking van AES-GCM verklaart.

Zijn blok- en stroomcijfers kwantumveilig?

Grotendeels wel. Zowel blok- als stroomcijfers zijn symmetrisch, dus geen van beide wordt bedreigd door Shors algoritme, dat publieke-sleutelalgoritmen zoals RSA en ECC kraakt. De enige relevante kwantumaanval is Grovers algoritme, dat de effectieve sleutelsterkte halveert, waardoor een symmetrische sleutel van 256 bits nog ongeveer 128 bits aan beveiliging biedt tegen een kwantumcomputer. AES-256 en ChaCha20 met een sleutel van 256 bits blijven beide kwantumresistent. De post-kwantumtransitie betreft voornamelijk publieke-sleutelcryptografie, niet symmetrische cijfers.

Kies de juiste versleuteling en modus.

De juiste keuze tussen blok- en stroomversleuteling, en de juiste modus en sleutelgrootte, hangt af van uw data en systemen. Ontdek de adviesdiensten van Encryption Consulting om uw versleuteling te beoordelen en een routekaart te ontwikkelen naar sterke, kwantumklare cryptografie.