Versleuteling > Woordenlijst > ChaCha20
Wat is ChaCha20?
ChaCha20 helpt uw gegevens te beschermen wanneer u berichten verzendt, bestanden opslaat of privé surft met een app of service.
Het is een modern versleutelingsalgoritme dat is ontworpen om informatie vertrouwelijk te houden en tegelijkertijd snel en efficiënt te blijven op een breed scala aan apparaten.
Ontdek hoe ChaCha20 werkt, waarom het belangrijk is in moderne cryptografie en hoe het zich verhoudt tot AES.

Wat is ChaCha20?
ChaCha20 is een snelle, lichtgewicht en uiterst veilige symmetrische 256-bits cijfercode die wordt gebruikt om gegevens te versleutelen en te ontsleutelen. Het is ontworpen door Daniel J. Bernstein als een verbetering van een eerdere cijfercode genaamd Salsa20. Het doel was om iets te creëren dat zowel efficiënt als veilig is, vooral in software.
Hoe ChaCha20 werkt
ChaCha20 versleutelt gegevens door een stroom van veilige pseudotoevallige bytes te genereren en die stroom te combineren met het originele bericht. Het resultaat is versleutelde uitvoer die er willekeurig uitziet voor iedereen zonder de geheime sleutel.
Omdat het dezelfde sleutel gebruikt om gegevens te versleutelen en te ontsleutelen, is ChaCha20 veel sneller dan RSA, een asymmetrisch algoritme dat een openbare sleutel en een geheime sleutel gebruikt. RSA is nuttig voor sleuteluitwisseling en handtekeningen, maar ChaCha20 is beter voor het versleutelen van grote hoeveelheden internetverkeer.

Op hoofdlijnen heeft ChaCha20 drie invoerwaarden: een geheime sleutel, een nonce (een nummer dat eenmalig wordt gebruikt — een unieke waarde voor elke versleuteling) en een teller (om verschillende uitvoerblokken te helpen genereren). Het gebruikt deze waarden om een interne status te initialiseren, die vervolgens herhaaldelijk wordt gemengd om een stroom van veilige pseudotoevallige bytes te genereren, ook wel de keystream genoemd.
Dat mengproces is gebaseerd op drie eenvoudige bewerkingen — optellen, XOR en bitrotatie — die gedurende 20 rondes worden toegepast om de gegevens grondig door elkaar te husselen. De resulterende keystream wordt vervolgens gecombineerd met de tekst zonder opmaak om de cijfertekst te produceren — de versleutelde gegevens.
Waarom ChaCha20 belangrijk is
ChaCha20 lost een praktisch probleem op in de moderne beveiliging: hoe u sterke versleuteling krijgt die zowel efficiënt als betrouwbaar is op veel apparaten. Het is erg snel in software, goed op telefoons, kleine apparaten en oudere CPU's, en gebaseerd op eenvoudige bewerkingen die computers goed kunnen uitvoeren (optellen, XOR, roteren).
Deze functies maken het aantrekkelijk in systemen zoals TLS, VPN's(nieuw venster), SSH en berichten-apps. ChaCha20 wordt bijvoorbeeld gebruikt door het WireGuard®(nieuw venster) VPN-protocol(nieuw venster) om snelle, veilige versleuteling te bieden met sterke prestaties, zelfs op apparaten die geen gespecialiseerde AES-hardware hebben.
ChaCha20 vs. AES
Hier ziet u hoe ChaCha20 zich verhoudt tot AES:
Aspect | ChaCha20 | AES |
|---|---|---|
Type cijfercode | Stroomcijfer | Blokcijfer |
Basisbewerking | Optellen/XOR'en/roteren op 32-bits woorden | Substitutie-permutatie op 128-bits blokken |
Standaardsleutelgroottes | 256-bits | 128, 192, 256-bits |
Prestaties op CPU's zonder speciale hardware | Meestal erg snel | Vaak langzamer dan ChaCha20 |
Prestaties op CPU's met hardwareversnelling | Verliest meestal van AES met AES-NI / ARM-crypto-extensies | Vaak extreem snel |
Typische geauthenticeerde modus | ChaCha20-Poly1305 | AES-GCM |
Veelvoorkomende toepassingen | TLS op mobiel/embedded, uitsluitend softwarematige cryptografie, WireGuard® | TLS, schijfversleuteling, bedrijfssystemen, door hardware ondersteunde versleuteling |
Meest geschikt voor | Draagbaarheid, consistente softwaresnelheid, veiligere software-implementatie | Maximale snelheid op moderne hardware, brede compliance/ondersteuning |
AES-versleuteling is de al lang gevestigde standaard en is extreem snel op processors met ingebouwde AES-hardwareondersteuning. Daarom presteert het bijzonder goed op veel desktops, servers en nieuwere mobiele chips. Zonder AES-hardwareondersteuning kan uitsluitend softwarematige AES echter langzamer zijn en soms moeilijker veilig te implementeren. ChaCha20 daarentegen is ontworpen om erg snel te zijn in gewone software, omdat het gebruikmaakt van eenvoudige bewerkingen zoals optellen, XOR en rotatie, die efficiënt werken op vrijwel elke processor.
Als een toepassing zowel AES als ChaCha20 aanbiedt, hoeft u meestal niet handmatig een keuze te maken, aangezien de meeste moderne apps automatisch de betere optie selecteren op basis van uw apparaat en processor. Over het algemeen presteert AES het beste op nieuwere apparaten met ingebouwde AES-ondersteuning, terwijl ChaCha20 een sterkere keuze is op apparaten waar versleuteling voornamelijk in software wordt afgehandeld, zoals sommige telefoons, energiezuinige hardware of oudere CPU's.
Is ChaCha20 veilig?
ChaCha20 wordt volgens moderne standaarden als veilig beschouwd mits het correct is geïmplementeerd en wordt gebruikt met een unieke nonce voor elke versleuteling.
Sterke versleuteling
ChaCha20 maakt gebruik van 20 rondes van optel-rotatie-XOR-bewerkingen en wordt als bestand beschouwd tegen bekende praktische aanvallen.
Goede softwarebeveiliging
Het eenvoudige ontwerp maakt het efficiënt in software en kan bepaalde side-channelrisico's verminderen die optreden bij bepaalde AES-implementaties.
Op grote schaal geïmplementeerd
ChaCha20 wordt ondersteund door de belangrijkste browsers en gebruikt in moderne HTTPS/TLS-verbindingen, SSH en WireGuard®.
Meestal gekoppeld aan Poly1305
Het wordt vaak gebruikt als ChaCha20-Poly1305, wat zowel de vertrouwelijkheid als de integriteit van berichten beschermt. ChaCha20-Poly1305 is een van de belangrijkste opties voor symmetrische versleuteling die in TLS 1.3 wordt gebruikt.
Proton VPN en ChaCha20
Met het WireGuard®-protocol(nieuw venster) van Proton VPN helpt ChaCha20-Poly1305 de VPN-tunnel te beveiligen, zodat uw internetverkeer privé blijft zonder dat dit ten koste gaat van de snelheid, of u nu privé surft, inhoud streamt of onderweg openbare wifi gebruikt.



