Proton domovská stránka

Co je ChaCha20?

ChaCha20 pomáhá chránit vaše data, když odesíláte zprávy, ukládáte soubory nebo soukromě prohlížíte web pomocí aplikace či služby.

Jedná se o moderní šifrovací algoritmus navržený tak, aby uchovával informace v tajnosti a zároveň zůstal rychlý a efektivní na široké škále zařízení.

Zjistěte, jak ChaCha20 funguje, proč na něm v moderní kryptografii záleží a jak si stojí v porovnání s AES.

Co je ChaCha20?

ChaCha20 je vysokorychlostní, lehká a vysoce bezpečná 256bitová symetrická šifra používaná k šifrování a dešifrování dat. Byla navržena Danielem J. Bernsteinem jako vylepšení dřívější šifry Salsa20. Cílem bylo vytvořit něco, co je efektivní i bezpečné, zejména v softwaru.

Jak ChaCha20 funguje

ChaCha20 šifruje data generováním proudu bezpečných pseudonáhodných bajtů a spojením tohoto proudu s původní zprávou. Výsledkem je šifrovaný výstup, který se komukoli bez tajného klíče jeví jako náhodný.

Protože používá stejný klíč k šifrování i dešifrování dat, je ChaCha20 mnohem rychlejší než RSA, asymetrický algoritmus využívající veřejný klíč a soukromý klíč. RSA je užitečný pro výměnu klíčů a podpisy, ale ChaCha20 je lepší pro šifrování velkých objemů síťového provozu na internetu.

Na obecné úrovni přijímá ChaCha20 tři vstupy: tajný klíč, nonce (jednorázové číslo — jedinečnou hodnotu použitou pro každé šifrování) a čítač (který pomáhá generovat různé výstupní bloky). Tyto hodnoty používá k inicializaci vnitřního stavu, který se pak opakovaně míchá, aby se vygeneroval proud bezpečných pseudonáhodných bajtů známý jako keystream.

Tento proces míchání spoléhá na tři jednoduché operace — sčítání, XOR a bitovou rotaci — použité ve 20 kolech k důkladnému promíchání dat. Výsledný proud klíče se pak spojí s prostým textem a vznikne šifrový text — šifrovaná data.

Proč na ChaCha20 záleží

ChaCha20 řeší praktický problém v moderní bezpečnosti: jak získat silné šifrování, které je efektivní a spolehlivé na mnoha zařízeních. Je velmi rychlá v softwaru, skvělá na telefonech, malých zařízeních i starších procesorech a je založena na jednoduchých operacích, které počítače provádějí snadno (sčítání, XOR, rotace).

Díky těmto funkcím je atraktivní v systémech jako TLS, VPN(nové okno), SSH a v aplikacích pro zasílání zpráv. ChaCha20 je například využívána VPN protokolem(nové okno) WireGuard®(nové okno) k zajištění rychlého a bezpečného šifrování s vysokým výkonem i na zařízeních, která nemají specializovaný hardware pro AES.

ChaCha20 vs. AES

Zde je srovnání šifry ChaCha20 s AES:

ChaCha20 vs. AES

Aspekt

ChaCha20

AES

Typ šifry

Proudová šifra

Bloková šifra

Základní operace

Sčítání/XOR/rotace na 32bitových slovech

Substituce a permutace na 128bitových blocích

Standardní velikosti klíčů

256bitový

128bitový, 192bitový, 256bitový

Výkon na procesorech bez speciálního hardwaru

Obvykle velmi rychlý

Často pomalejší než ChaCha20

Výkon na procesorech s hardwarovou akcelerací

Obvykle zaostává za AES s kryptografickými rozšířeními AES-NI / ARM

Často extrémně rychlý

Typický autentizovaný režim

ChaCha20-Poly1305

AES-GCM

Běžné případy použití

TLS na mobilních/vestavěných zařízeních, čistě softwarová kryptografie, WireGuard®

TLS, šifrování disků, podnikové systémy, hardwarově podporované šifrování

Nejvhodnější pro

Přenositelnost, konzistentní rychlost softwaru, bezpečnější softwarová implementace

Maximální rychlost na moderním hardwaru, široká kompatibilita/podpora

Šifrování AES je dlouhodobě zavedeným standardem a je extrémně rychlé na procesorech s vestavěnou hardwarovou podporou AES. Díky tomu funguje obzvláště dobře na mnoha stolních počítačích, serverech a novějších mobilních čipech. Bez hardwarové podpory AES však může být čistě softwarové AES pomalejší a někdy i obtížnější na bezpečnou implementaci. Naproti tomu šifra ChaCha20 je navržena tak, aby byla velmi rychlá v běžném softwaru, protože využívá jednoduché operace jako sčítání, XOR a rotaci, které fungují efektivně na téměř jakémkoli procesoru.

Pokud aplikace nabízí jak AES, tak ChaCha20, obvykle nemusíte vybírat ručně, protože většina moderních aplikací automaticky vybere lepší možnost na základě vašeho zařízení a procesoru. Obecně platí, že AES dosahuje nejlepšího výkonu na novějších zařízeních s vestavěnou podporou AES, zatímco ChaCha20 je lepší volbou na zařízeních, kde se šifrování provádí převážně softwarově, jako jsou některé telefony, méně výkonný hardware nebo starší procesory.

Je ChaCha20 bezpečný?

ChaCha20 je podle moderních standardů považována za bezpečnou, pokud je správně naimplementována a použita s jedinečným nonce pro každé šifrování.

Silné šifrování

ChaCha20 využívá 20 kol operací sčítání-rotace-XOR a je považována za odolnou vůči známým praktickým útokům.

Dobré softwarové zabezpečení

Její jednoduchý design zajišťuje efektivitu v softwaru a může snížit některá rizika útoků postranním kanálem, která se objevují u některých implementací AES.

Široce implementována

ChaCha20 je podporována hlavními prohlížeči a používá se v moderních HTTPS/TLS připojeních, SSH a WireGuard®.

Obvykle se páruje s Poly1305

Často se používá jako ChaCha20-Poly1305, což chrání jak důvěrnost, tak integritu zprávy. ChaCha20-Poly1305 je jednou z hlavních možností symetrického šifrování používaných v TLS 1.3.

Proton VPN a ChaCha20

S protokolem WireGuard®(nové okno) od Proton VPN pomáhá ChaCha20-Poly1305 zabezpečit VPN tunel, takže váš síťový provoz zůstane soukromý bez ztráty rychlosti, ať už soukromě prohlížíte web, streamujete obsah nebo používáte veřejnou wifi na cestách.

Více informací o šifrování