Proton-hjemmeside

Kryptering > Ordliste > ChaCha20

Hvad er ChaCha20?

ChaCha20 hjælper med at beskytte Deres data, når De sender beskeder, gemmer filer eller browser privat ved hjælp af en app eller tjeneste.

Det er en moderne krypteringsalgoritme, der er designet til at holde oplysninger fortrolige, samtidig med at den forbliver hurtig og effektiv på tværs af en lang række enheder.

Lær, hvordan ChaCha20 fungerer, hvorfor det er vigtigt i moderne kryptografi, og hvordan det kan sammenlignes med AES.

Hvad er ChaCha20?

ChaCha20 er en lynhurtig, let og yderst sikker 256-bit symmetrisk nøgle-cipher, der bruges til at kryptere og dekryptere data. Den blev designet af Daniel J. Bernstein som en forbedring af en tidligere krypteringsalgoritme kaldet Salsa20. Målet var at skabe noget, der er både effektivt og sikkert, især i software.

Sådan fungerer ChaCha20

ChaCha20 krypterer data ved at generere en strøm af sikre pseudorandome bytes og kombinere denne strøm med den originale besked. Resultatet er et krypteret output, der ser tilfældigt ud for enhver uden den hemmelige nøgle.

Da den bruger den samme nøgle til at kryptere og dekryptere data, er ChaCha20 meget hurtigere end RSA, som er en asymmetrisk algoritme, der bruger en offentlig nøgle og en privat nøgle. RSA er nyttig til nøgleudveksling og signaturer, men ChaCha20 er bedre til at kryptere store mængder internettrafik.

Overordnet set tager ChaCha20 imod tre input: en hemmelig nøgle, en nonce (et tal, der kun bruges én gang — en unik værdi, der bruges til hver kryptering) og en tæller (for at hjælpe med at generere forskellige outputblokke). Den bruger disse værdier til at initialisere en intern tilstand, som derefter blandes gentagne gange for at generere en strøm af sikre pseudorandome bytes kendt som nøglestrømmen.

Denne blandingsproces afhænger af tre simple operationer — addition, XOR og bit-rotation — anvendt over 20 runder for at blande dataene grundigt. Den resulterende nøglestrøm kombineres derefter med klarteksten for at producere chifferteksten — de krypterede data.

Hvorfor ChaCha20 er vigtig

ChaCha20 løser et praktisk problem inden for moderne sikkerhed: hvordan man opnår stærk kryptering, der er både effektiv og pålidelig på tværs af mange enheder. Den er meget hurtig i software, god på telefoner, små enheder og ældre CPU'er samt baseret på simple operationer, som computere er gode til (addere, XOR'e, rotere).

Disse funktioner gør den attraktiv i systemer som TLS, VPN'er(nyt vindue), SSH og besked-apps. For eksempel bruges ChaCha20 af WireGuard®(nyt vindue)-VPN-protokollen(nyt vindue) til at levere hurtig, sikker kryptering med stærk ydeevne, selv på enheder, der mangler specialiseret AES-hardware.

ChaCha20 vs. AES

Her er, hvordan ChaCha20 kan sammenlignes med AES:

ChaCha20 vs. AES

Aspekt

ChaCha20

AES

Chiffertype

Strømchiffer

Blokchiffer

Grundlæggende operation

Adderer/XOR'er/roterer på 32-bit ord

Substitution-permutation på 128-bit blokke

Standardnøglestørrelser

256-bit

128, 192, 256-bit

Ydeevne på CPU'er uden specialiseret hardware

Normalt meget hurtig

Ofte langsommere end ChaCha20

Ydeevne på CPU'er med hardwareacceleration

Taber normalt til AES med AES-NI / ARM-kryptoudvidelser

Ofte ekstremt hurtig

Typisk autentificeret tilstand

ChaCha20-Poly1305

AES-GCM

Almindelige anvendelsesscenarier

TLS på mobil/integreret, ren software-kryptering, WireGuard®

TLS, diskkryptering, virksomhedssystemer, hardwareunderstøttet kryptering

Bedst egnet til

Portabilitet, ensartet softwarehastighed, mere sikker softwareimplementering

Maksimal hastighed på moderne hardware, bred overholdelse/support

AES-kryptering er den længe etablerede standard og er ekstremt hurtig på processorer med indbygget AES-hardwaresupport. Af den grund yder den særligt godt på mange stationære computere, servere og nyere mobilchips. Uden AES-hardwaresupport kan ren software-AES dog være langsommere og nogle gange sværere at implementere sikkert. I modsætning hertil er ChaCha20 designet til at være meget hurtig i almindelig software, fordi den bruger simple operationer som addition, XOR og rotation, der fungerer effektivt på næsten enhver processor.

Hvis en applikation tilbyder både AES og ChaCha20, behøver De normalt ikke at vælge en manuelt, da de fleste moderne apps automatisk vælger den bedste mulighed baseret på Deres enhed og processor. Generelt yder AES bedst på nyere enheder med indbygget AES-support, mens ChaCha20 er et stærkere valg på enheder, hvor kryptering hovedsageligt håndteres i software, såsom visse telefoner, lavenergi-hardware eller ældre CPU'er.

Er ChaCha20 sikker?

ChaCha20 anses for at være sikker efter moderne standarder, når den implementeres korrekt og bruges med en unik nonce til hver kryptering.

Stærk kryptering

ChaCha20 bruger 20 runder af add-rotate-XOR-operationer og anses for at være modstandsdygtig over for kendte praktiske angreb.

God softwaresikkerhed

Dens simple design gør den effektiv i software og kan reducere nogle af de sidekanalsrisici, der ses i visse AES-implementeringer.

Bredt udrullet

ChaCha20 understøttes af de førende browsere og bruges i moderne HTTPS/TLS-forbindelser, SSH og WireGuard®.

Normalt parret med Poly1305

Den bruges ofte som ChaCha20-Poly1305, hvilket beskytter både fortrolighed og beskedintegritet. ChaCha20-Poly1305 er en af de primære symmetriske krypteringsmuligheder, der bruges i TLS 1.3.

Proton VPN og ChaCha20

Med Proton VPN’s WireGuard®-protokol(nyt vindue) hjælper ChaCha20-Poly1305 med at sikre VPN-tunnellen, så Deres internettrafik forbliver privat uden at gå på kompromis med hastigheden, uanset om De browser privat, streamer indhold eller bruger offentligt WiFi på farten.

Få mere at vide om kryptering