Startsida för Proton

Kryptering > Ordlista > ChaCha20

Vad är ChaCha20?

ChaCha20 hjälper till att skydda dina data när du skickar meddelanden, sparar filer eller surfar privat med en app eller tjänst.

Det är en modern krypteringsalgoritm utformad för att hålla information konfidentiell samtidigt som den förblir snabb och effektiv på en mängd olika enheter.

Lär dig hur ChaCha20 fungerar, varför det är viktigt inom modern kryptografi och hur det står sig i jämförelse med AES.

Vad är ChaCha20?

ChaCha20 är ett snabbt, resurssnålt och mycket säkert 256-bitars symmetriskt chiffer som används för att kryptera och avkryptera data. Det designades av Daniel J. Bernstein som en förbättring av ett tidigare chiffer kallat Salsa20. Målet var att skapa något som är både effektivt och säkert, särskilt i mjukvara.

Hur ChaCha20 fungerar

ChaCha20 krypterar data genom att generera en ström av säkra pseudoslumpmässiga byte och kombinera den strömmen med det ursprungliga meddelandet. Resultatet är krypterade utdata som ser slumpmässiga ut för alla som inte har den hemliga nyckeln.

Eftersom det använder samma nyckel för att kryptera och avkryptera data är ChaCha20 mycket snabbare än RSA, en asymmetrisk algoritm som använder en offentlig nyckel och en privat nyckel. RSA är användbart för nyckelutbyte och signaturer, men ChaCha20 är bättre för att kryptera stora volymer internettrafik.

På en övergripande nivå tar ChaCha20 tre indatavärden: en hemlig nyckel, en nonce (ett nummer som används en gång – ett unikt värde som används för varje kryptering) och en räknare (för att hjälpa till att generera olika utdatablock). Det använder dessa värden för att initiera ett internt tillstånd, som sedan blandas upprepade gånger för att generera en ström av säkra pseudoslumpmässiga byte, så kallad nyckelström.

Den blandningsprocessen bygger på tre enkla operationer – addition, XOR och bitrotation – som tillämpas under 20 omgångar för att grundligt blanda om datan. Den resulterande nyckelströmmen kombineras sedan med den oformaterade texten för att producera chiffertexten – den krypterade datan.

Varför ChaCha20 är viktigt

ChaCha20 löser ett praktiskt problem inom modern säkerhet: hur man får stark kryptering som är både effektiv och tillförlitlig på många enheter. Det är mycket snabbt i mjukvara, bra på telefoner, små enheter och äldre processorer, och baseras på enkla operationer som datorer gör bra (addition, XOR, rotation).

Dessa funktioner gör det attraktivt i system som TLS, VPN:er(nytt fönster), SSH och meddelandeappar. Till exempel används ChaCha20 av WireGuard®(nytt fönster) VPN-protokollet(nytt fönster) för att ge snabb, säker kryptering med stark prestanda även på enheter som saknar dedikerad AES-maskinvara.

ChaCha20 mot AES

Så här står sig ChaCha20 i jämförelse med AES:

ChaCha20 mot AES

Aspekt

ChaCha20

AES

Chiffertyp

Strömchiffer

Blockchiffer

Grundläggande operation

Adderar/XOR: ar/roterar på 32-bitars ord

Substitution-permutation på 128-bitars block

Standardnyckelstorlekar

256-bitars

128-, 192-, 256-bitars

Prestanda på processorer utan dedikerad maskinvara

Vanligtvis mycket snabbt

Ofta långsammare än ChaCha20

Prestanda på processorer med maskinvaruacceleration

Förlorar vanligtvis mot AES med AES-NI / ARM-kryptotillägg

Ofta extremt snabbt

Typiskt autentiserat läge

ChaCha20-Poly1305

AES-GCM

Vanliga användningsområden

TLS på mobila/inbäddade enheter, mjukvarubaserad krypto, WireGuard®

TLS, diskkryptering, företagssystem, maskinvarubaserad kryptering

Bäst lämpad

Portabilitet, konsekvent mjukvaruhastighet, säkrare mjukvaruimplementering

Maximal hastighet på modern maskinvara, bred efterlevnad/support

AES-kryptering är den sedan länge etablerade standarden och är extremt snabb på processorer med inbyggt AES-maskinvarustöd. På grund av det fungerar det särskilt bra på many stationära datorer, servrar och nyare mobilchips. Men utan AES-maskinvarustöd kan ren mjukvarubaserad AES vara långsammare och ibland svårare att implementera på ett säkert sätt. I kontrast till detta är ChaCha20 utformat för å vara mycket snabbt i vanlig mjukvara eftersom det använder enkla operationer som addition, XOR och rotation, vilka fungerar effektivt på nästan alla processorer.

Om en applikation erbjuder både AES och ChaCha20 behöver du vanligtvis inte välja en manuellt, eftersom de flesta moderna appar väljer det bättre alternativet automatiskt baserat på din enhet och processor. Generellt sett presterar AES bäst på nyare enheter med inbyggt AES-stöd, medan ChaCha20 är ett starkare val på enheter där kryptering hanteras huvudsakligen i mjukvara, som vissa telefoner, strömsnål maskinvara eller äldre processorer.

Är ChaCha20 säkert?

ChaCha20 anses vara säkert enligt moderna standarder när det implementeras korrekt och används med en unik nonce för varje kryptering.

Stark kryptering

ChaCha20 använder 20 omgångar av add-rotate-XOR-operationer och anses vara resistent mot kända praktiska attacker.

God mjukvarusäkerhet

Dess enkla design gör det effektivt i mjukvara och kan minska vissa sidokanalsrisker som finns i vissa AES-implementeringar.

Allmänt distribuerad

ChaCha20 stöds av stora webbläsare och används i moderna HTTPS-/TLS-anslutningar, SSH och WireGuard®.

Vanligtvis parat med Poly1305

Det används ofta som ChaCha20-Poly1305, vilket skyddar både konfidentialitet och meddelandeintegritet. ChaCha20-Poly1305 är ett av de huvudsakliga symmetriska krypteringsalternativen som används i TLS 1.3.

Proton VPN och ChaCha20

Med Proton VPN:s WireGuard®-protokoll(nytt fönster) hjälper ChaCha20-Poly1305 till att säkra VPN-tunneln så att din internettrafik förblir privat utan att hastigheten offras, oavsett om du surfar privat, strömmar innehåll eller använder offentligt WiFi på språng.

Lär dig mer om kryptering