Šifrování > Slovník pojmů > ChaCha20
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:
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.



