Szyfrowanie symetryczne i asymetryczne – różnice, algorytmy i przykłady
Szyfrowanie symetryczne i asymetryczne: czym się różnią, jak działa klucz publiczny i prywatny oraz które algorytmy są bezpieczne (AES, ChaCha20, RSA, ECC).

W skrócie
- Szyfrowanie symetryczne używa jednego tajnego klucza do szyfrowania i odszyfrowania; asymetryczne — pary kluczy: publicznego i prywatnego.
- Symetryczne (AES, ChaCha20) jest bardzo szybkie i służy do szyfrowania samych danych; asymetryczne (RSA, ECC) rozwiązuje problem przekazania klucza i umożliwia podpisy cyfrowe.
- W praktyce oba rodzaje działają razem: HTTPS, VPN, Signal czy PGP uzgadniają klucz asymetrycznie, a dane szyfrują symetrycznie.
- Przestarzałe i niebezpieczne: DES, 3DES, RC4 oraz tryb ECB. Dziś standardem jest AES-GCM lub ChaCha20-Poly1305.
- Komputery kwantowe zagrażają głównie RSA i ECC — dlatego wdraża się kryptografię postkwantową (ML-KEM), a do danych długoterminowych wybiera się AES-256.
Spis treści
Szyfrowanie symetryczne i asymetryczne różnią się liczbą kluczy. W symetrycznym ten sam tajny klucz służy do zaszyfrowania i odszyfrowania danych, więc obie strony muszą go znać. W asymetrycznym każdy uczestnik ma parę kluczy: publiczny, który może pokazać całemu światu, i prywatny, który zna tylko on — co zaszyfrujesz kluczem publicznym, odszyfruje wyłącznie odpowiadający mu klucz prywatny.
Z tej różnicy wynika reszta: szyfrowanie symetryczne jest bardzo szybkie, ale wymaga bezpiecznego przekazania klucza. Asymetryczne rozwiązuje ten problem, lecz jest setki razy wolniejsze. Dlatego w praktyce — w HTTPS, VPN-ach czy komunikatorach — oba rodzaje działają razem.
Szyfrowanie symetryczne i asymetryczne – najważniejsze różnice
| Cecha | Szyfrowanie symetryczne | Szyfrowanie asymetryczne |
|---|---|---|
| Liczba kluczy | Jeden wspólny, tajny klucz | Para: klucz publiczny i prywatny |
| Szybkość | Bardzo duża, często wspierana sprzętowo | Znacznie mniejsza |
| Typowe zastosowanie | Szyfrowanie danych: plików, dysków, ruchu sieciowego | Wymiana kluczy, podpisy cyfrowe, certyfikaty |
| Główny problem | Jak bezpiecznie przekazać klucz drugiej stronie | Wydajność i zaufanie do klucza publicznego (czyj on jest?) |
| Długość klucza dla ok. 128 bitów bezpieczeństwa | 128 bitów (AES-128) | 3072 bity (RSA) lub 256 bitów (krzywe eliptyczne) |
| Przykłady algorytmów | AES, ChaCha20, (przestarzałe: DES, 3DES, RC4) | RSA, ECDH, ECDSA, Ed25519, ElGamal |
| Liczba kluczy dla n osób | n × (n − 1) / 2 — każda para potrzebuje osobnego klucza | 2n — każdy ma jedną parę |
Ostatni wiersz dobrze pokazuje skalę problemu. Aby 100 osób mogło rozmawiać w parach wyłącznie symetrycznie, potrzeba 4950 różnych kluczy, a każdy trzeba jakoś bezpiecznie dostarczyć. Przy kryptografii asymetrycznej wystarczy 100 par kluczy i opublikowanie 100 kluczy publicznych.
Jak działa szyfrowanie symetryczne
Algorytm symetryczny bierze tekst jawny i klucz, a zwraca szyfrogram — ciąg bajtów, który bez klucza wygląda jak losowy szum. Ten sam klucz, podany do operacji odwrotnej, odtwarza oryginał. Bezpieczeństwo opiera się wyłącznie na tajności klucza: sam algorytm jest publiczny i przebadany przez kryptologów na całym świecie.
Szyfry symetryczne dzielą się na dwie grupy:
- Szyfry blokowe — przetwarzają dane w blokach o stałej długości (w AES to 128 bitów). Żeby zaszyfrować plik dłuższy niż jeden blok, stosuje się tzw. tryb pracy.
- Szyfry strumieniowe — generują z klucza strumień pseudolosowych bajtów i łączą go z danymi operacją XOR. Przykładem jest ChaCha20.
Tryby pracy szyfru blokowego
Tryb pracy decyduje o bezpieczeństwie tak samo jak sam algorytm. Najważniejsze:
- ECB — każdy blok szyfrowany osobno, identyczne bloki dają identyczny szyfrogram. Wzory w danych pozostają widoczne, dlatego ECB się nie stosuje.
- CBC — każdy blok jest łączony z poprzednim; wymaga losowego wektora inicjalizującego (IV). Wciąż spotykany, ale sam nie chroni przed modyfikacją danych.
- CTR — zamienia szyfr blokowy w strumieniowy; szybki i łatwy do zrównoleglenia.
- GCM — CTR z wbudowanym uwierzytelnieniem. To tzw. szyfrowanie uwierzytelnione (AEAD): odbiorca wykryje każdą zmianę w szyfrogramie. AES-GCM to dziś domyślny wybór w TLS i wielu aplikacjach.
Przy trybach CTR i GCM krytyczne jest, by ta sama para klucz + nonce nigdy nie została użyta dwukrotnie — powtórzenie pozwala atakującemu odzyskać informacje o danych.
Algorytmy szyfrowania symetrycznego
| Algorytm | Klucz / blok | Status w 2026 r. |
|---|---|---|
| AES (Rijndael) | Klucz 128, 192 lub 256 bitów; blok 128 bitów | Standard (FIPS 197), zalecany; akceleracja AES-NI w procesorach |
| ChaCha20 (z Poly1305) | Klucz 256 bitów; szyfr strumieniowy | Zalecany; szybki na urządzeniach bez AES-NI, używany w TLS 1.3 i WireGuard |
| Camellia, Serpent, Twofish | Klucz do 256 bitów; blok 128 bitów | Bezpieczne, ale niszowe (np. opcje w VeraCrypt) |
| 3DES | Efektywnie 112 bitów; blok 64 bity | Wycofany — NIST nie dopuszcza go do szyfrowania od 2024 r. |
| Blowfish | Klucz do 448 bitów; blok 64 bity | Przestarzały (mały blok); jego następcą jest Twofish |
| DES | 56 bitów; blok 64 bity | Złamany — klucz można znaleźć siłowo |
| RC4 | Szyfr strumieniowy | Złamany, zakazany w TLS |
AES jest najpowszechniejszym algorytmem symetrycznym na świecie — szyfruje ruch HTTPS, dyski z BitLockerem i FileVault, sieci Wi-Fi z WPA2/WPA3 i archiwa ZIP. Szczegóły jego budowy opisujemy w osobnym artykule o algorytmie AES.
Przykład: szyfrowanie pliku z wiersza poleceń
Plik zaszyfrujesz symetrycznie hasłem za pomocą GnuPG — klucz AES zostanie wyprowadzony z hasła:
# szyfrowanie (powstanie plik raport.pdf.gpg)
gpg --symmetric --cipher-algo AES256 raport.pdf
# odszyfrowanie
gpg --output raport.pdf --decrypt raport.pdf.gpg
To samo zrobisz w OpenSSL. Parametr -pbkdf2 sprawia, że klucz z hasła jest wyprowadzany odpowiednio kosztowną funkcją, a nie przestarzałą metodą domyślną:
openssl enc -aes-256-cbc -salt -pbkdf2 -iter 600000 -in raport.pdf -out raport.pdf.enc
openssl enc -d -aes-256-cbc -pbkdf2 -iter 600000 -in raport.pdf.enc -out raport.pdf
Tak zaszyfrowany plik jest dokładnie tak bezpieczny, jak hasło. Krótkie hasło da się zgadnąć atakiem słownikowym niezależnie od tego, że pod spodem pracuje AES-256.
Szyfrowanie asymetryczne: klucz publiczny i prywatny
Kryptografia asymetryczna (z kluczem publicznym) opiera się na problemach matematycznych, które łatwo wykonać w jedną stronę, a praktycznie nie da się ich odwrócić bez dodatkowej informacji. W RSA jest to rozkład ogromnej liczby na czynniki pierwsze, w kryptografii krzywych eliptycznych (ECC) — problem logarytmu dyskretnego na krzywej.
Para kluczy działa w dwóch kierunkach:
- Szyfrowanie: ktoś szyfruje wiadomość Twoim kluczem publicznym, a odszyfrować może ją tylko Twój klucz prywatny.
- Podpis cyfrowy: Ty podpisujesz dane swoim kluczem prywatnym, a każdy może zweryfikować podpis Twoim kluczem publicznym. To potwierdza autora i to, że dane nie zostały zmienione.
Najważniejsze algorytmy asymetryczne:
- RSA — najstarszy powszechnie używany (1977). Obecnie minimum to klucz 2048 bitów, a dla ochrony długoterminowej 3072 bity lub więcej.
- ECDH i X25519 — uzgadnianie wspólnego klucza na krzywych eliptycznych; następcy klasycznego algorytmu Diffiego-Hellmana.
- ECDSA i Ed25519 — podpisy cyfrowe na krzywych eliptycznych, stosowane m.in. w certyfikatach TLS, kluczach SSH i kryptowalutach. Więcej w artykule o ECDSA.
- ElGamal — schemat oparty na logarytmie dyskretnym, spotykany m.in. w starszych kluczach PGP.
Klucze na krzywych eliptycznych są dużo krótsze niż RSA przy tym samym poziomie bezpieczeństwa, a operacje na nich szybsze — dlatego nowe systemy wybierają je domyślnie. Parę kluczy SSH typu Ed25519 wygenerujesz jednym poleceniem:
ssh-keygen -t ed25519 -C "jan@laptop"
Plik ~/.ssh/id_ed25519.pub to klucz publiczny, który kopiujesz na serwer, a ~/.ssh/id_ed25519 — klucz prywatny, który nigdy nie powinien opuścić Twojego komputera.
Szyfrowanie hybrydowe – jak oba rodzaje działają razem
Skoro szyfrowanie symetryczne jest szybkie, a asymetryczne rozwiązuje problem przekazania klucza, protokoły łączą obie metody. Schemat jest prawie zawsze taki sam:
- Strony uzgadniają lub przekazują jednorazowy klucz sesji przy użyciu kryptografii asymetrycznej.
- Wszystkie dane szyfrowane są już tym kluczem sesji algorytmem symetrycznym.
Przykłady z codziennego użytku:
- HTTPS (TLS 1.3) — przeglądarka i serwer uzgadniają klucz metodą ECDHE (najczęściej na krzywej X25519), serwer potwierdza tożsamość certyfikatem z podpisem RSA lub ECDSA, a strona WWW przesyłana jest szyfrem AES-GCM lub ChaCha20-Poly1305.
- WhatsApp i Signal — protokół Signal uzgadnia klucze na krzywej Curve25519, a treść wiadomości szyfruje algorytmem AES; klucze zmieniają się z każdą wiadomością.
- PGP / GnuPG — program losuje klucz sesji, szyfruje nim wiadomość symetrycznie, a sam klucz sesji szyfruje kluczem publicznym odbiorcy.
- SSH — kluczami asymetrycznymi logujesz się na serwer, a cała sesja jest szyfrowana symetrycznie.
- VPN WireGuard — wymiana kluczy na Curve25519, ruch szyfrowany ChaCha20-Poly1305.
Telegram warto wspomnieć osobno: domyślne czaty są szyfrowane między aplikacją a serwerem, a pełne szyfrowanie end-to-end działa tylko w tzw. czatach sekretnych.
Długość klucza, komputery kwantowe i kryptografia postkwantowa
Długości kluczy symetrycznych i asymetrycznych nie da się porównywać wprost. Według zaleceń NIST poziom 128 bitów bezpieczeństwa zapewniają AES-128, RSA z kluczem 3072 bitów oraz krzywe eliptyczne 256-bitowe.
Komputery kwantowe wpływają na oba rodzaje szyfrowania inaczej:
- Symetryczne — algorytm Grovera w teorii obniża efektywne bezpieczeństwo mniej więcej o połowę. Wystarczy odpowiedni zapas: AES-256 pozostaje bezpieczny.
- Asymetryczne — algorytm Shora na odpowiednio dużym komputerze kwantowym złamałby RSA, Diffiego-Hellmana i ECC całkowicie.
Dlatego w 2024 roku NIST opublikował pierwsze standardy kryptografii postkwantowej: ML-KEM (FIPS 203) do uzgadniania kluczy oraz ML-DSA (FIPS 204) i SLH-DSA (FIPS 205) do podpisów. Przeglądarki i duże serwisy już stosują hybrydowe uzgadnianie kluczy łączące X25519 z ML-KEM, żeby dane przechwycone dziś nie dały się odszyfrować w przyszłości.
Zarządzanie kluczami – najsłabsze ogniwo
Nawet najlepszy algorytm nie pomoże, jeśli klucz leży w pliku konfiguracyjnym w repozytorium albo wysyłasz hasło do archiwum w tym samym mailu co archiwum. Podstawowe zasady:
- klucze generuj z kryptograficznie bezpiecznego generatora liczb losowych, nigdy „ręcznie”,
- klucz z hasła wyprowadzaj funkcją KDF (PBKDF2, scrypt, Argon2), a nie prostym skrótem kryptograficznym,
- klucze prywatne i główne przechowuj w module sprzętowym (TPM, HSM, klucz bezpieczeństwa) lub usłudze KMS chmury,
- rotuj klucze i miej procedurę na wypadek ich wycieku,
- hasło do zaszyfrowanego pliku przekazuj innym kanałem niż sam plik.
Uwaga: Utrata klucza oznacza utratę danych. Przed włączeniem szyfrowania dysku (BitLocker, FileVault, LUKS) zapisz klucz odzyskiwania w bezpiecznym miejscu — bez niego nie odzyska ich nawet producent systemu.
Które szyfrowanie wybrać
Wybór rzadko sprowadza się do „albo–albo”. W zdecydowanej większości zastosowań sięgasz po gotowe, sprawdzone rozwiązania, które łączą oba typy:
- Szyfrowanie dysku lub pliku na własny użytek — symetryczne: BitLocker, FileVault, LUKS, VeraCrypt albo
gpg --symmetric. - Przesłanie poufnego pliku konkretnej osobie — hybrydowe: GnuPG z kluczem publicznym odbiorcy lub komunikator z szyfrowaniem end-to-end.
- Potwierdzenie autorstwa i integralności — asymetryczne podpisy cyfrowe (Ed25519, ECDSA, RSA).
- Własna aplikacja — nie projektuj kryptografii samodzielnie; użyj biblioteki wysokiego poziomu (np. libsodium) lub TLS, a do danych w spoczynku AES-GCM albo ChaCha20-Poly1305.
Jeśli interesuje Cię, jak kryptografia asymetryczna zastępuje hasła przy logowaniu, zajrzyj do tekstu o standardzie FIDO2 — tam klucz prywatny nigdy nie opuszcza Twojego urządzenia.
Najczęściej zadawane pytania
Czym różni się szyfrowanie symetryczne od asymetrycznego?
W szyfrowaniu symetrycznym nadawca i odbiorca używają tego samego tajnego klucza. W asymetrycznym każdy ma parę kluczy: publiczny, którym inni szyfrują wiadomość, i prywatny, którym tylko właściciel może ją odszyfrować.
Które szyfrowanie jest bezpieczniejsze: symetryczne czy asymetryczne?
Żadne nie jest z definicji bezpieczniejsze — oba są bezpieczne przy odpowiedniej długości klucza. AES-128 daje poziom bezpieczeństwa porównywalny z RSA-3072 lub kryptografią krzywych eliptycznych na 256 bitach, a symetryczne jest przy tym znacznie szybsze.
Jakie są przykłady algorytmów szyfrowania symetrycznego?
Obecnie zalecane to AES (z kluczem 128, 192 lub 256 bitów) i ChaCha20. Starsze to DES, 3DES, Blowfish i RC4 — nie należy ich używać w nowych systemach.
Co to jest klucz asymetryczny?
To para matematycznie powiązanych kluczy: publiczny, który można swobodnie udostępniać, i prywatny, który musi pozostać tajny. Z klucza publicznego nie da się w praktyce wyliczyć prywatnego.
Czy WhatsApp używa szyfrowania symetrycznego czy asymetrycznego?
Obu. WhatsApp korzysta z protokołu Signal: klucze są uzgadniane kryptografią asymetryczną na krzywych eliptycznych, a treść wiadomości szyfrowana jest symetrycznie algorytmem AES.
Autor
Założyciel i redaktor XAD.pl. Pisze o sieciach, bezpieczeństwie IT, administracji systemami Windows i Linux oraz o sprzęcie, który sprawia ludziom problemy na co dzień.


