Przejdź do treści
HexaTransfer
Wróć do bloga
Szyfrowanie i bezpieczenstwo

Szyfrowanie symetryczne vs asymetryczne: kluczowe różnice

Szyfrowanie symetryczne vs asymetryczne prostym językiem. Zrozum jak każde działa i jak się łączą w nowoczesnym transferze.

Szyfrowanie symetryczne używa jednego klucza zarówno do szyfrowania, jak i deszyfrowania — taki jak AES-256-GCM, szyfr zabezpieczający Twoje pliki podczas transferu. Szyfrowanie asymetryczne używa pary kluczy: klucza publicznego, który każdy może zobaczyć, oraz klucza prywatnego, który posiadasz tylko Ty — stosowanego przez algorytmy takie jak RSA-4096 i Curve25519. Szyfrowanie symetryczne jest szybkie (gigabajty na sekundę na nowoczesnych procesorach), ale wymaga, by obie strony współdzieliły ten sam sekret. Asymetryczne rozwiązuje problem wymiany kluczy, ale jest 1000 razy wolniejsze. Każda nowoczesna usługa transferu plików — HexaTransfer, Tresorit, Proton Drive, SwissTransfer — używa obu: asymetrycznego do wymiany klucza symetrycznego, a następnie symetrycznego do szyfrowania właściwego pliku.

Świat jednego klucza: szyfrowanie symetryczne

Szyfry symetryczne używają tego samego klucza w obu kierunkach. Jeśli zaszyfruje plik kluczem K, potrzebujesz klucza K, żeby go odszyfrować. Główne algorytmy symetryczne nadal w użyciu:

  • AES (Rijndael) z kluczami 128, 192 lub 256-bitowymi, znormalizowany w FIPS 197.
  • ChaCha20 z kluczami 256-bitowymi, preferowany na urządzeniach bez sprzętowej akceleracji AES-NI.
  • 3DES — wycofany przez NIST w 2023 roku, nie używaj.

Przepustowość to główna zaleta. AES-256-GCM działa z prędkością około 3–5 GB/s na rdzeń na Intel AES-NI, a ChaCha20-Poly1305 osiąga 1,5–3 GB/s na telefonach ARM. Szyfrowanie pliku 10 GB zajmuje sekundy.

Problem: jak przekazać klucz drugiej osobie? Wysłanie go pocztą e-mail mija się z celem. To właśnie problem dystrybucji kluczy, i dlatego powstało szyfrowanie asymetryczne.

Świat dwóch kluczy: szyfrowanie asymetryczne

Wynalezione przez Diffiego i Hellmana w 1976 roku i zrealizowane przez Rivesta, Shamira i Adlemana jako RSA w 1977 roku. Każdy użytkownik ma parę kluczy: klucz publiczny dostępny publicznie i klucz prywatny przechowywany w tajemnicy. Wszystko zaszyfrowane kluczem publicznym można odszyfrować tylko kluczem prywatnym i odwrotnie.

Jeśli chcesz wysłać mi tajny plik, szyfruj go moim kluczem publicznym. Tylko mój klucz prywatny może go otworzyć — i nigdy nie musiałem dzielić się z Tobą żadnym sekretem. Problem dystrybucji kluczy rozwiązany.

Aktualne algorytmy asymetryczne:

  • RSA-2048 lub RSA-4096 — wolne, ale powszechnie obsługiwane, stosowane w certyfikatach TLS.
  • Krzywe eliptyczne (ECDH, ECDSA) na krzywych P-256, P-384 lub Curve25519 — mniejsze klucze, szybsze operacje. Klucz EC 256-bitowy odpowiada bezpieczeństwu klucza RSA 3072-bitowego.
  • Ed25519 — nowoczesny standard do podpisów, stosowany przez SSH i Signal.

Dlaczego szyfrowanie asymetryczne jest zbyt wolne dla plików

Matematyka asymetryczna jest kosztowna. Szyfrowanie RSA-4096 działa z prędkością około 100–500 operacji na sekundę na nowoczesnym procesorze. Każda operacja obsługuje około 470 bajtów (rozmiar bloku RSA minus dopełnienie). To może 200 KB/sekundę — około 50 000 razy wolniej niż AES-256-GCM.

Próba zaszyfrowania pliku 10 GB za pomocą RSA zajęłaby około 14 godzin. Przy AES-256-GCM — około 3 sekundy. Ta asymetria prędkości wyjaśnia, dlaczego nikt naprawdę nie używa RSA do szyfrowania plików bezpośrednio.

Szyfrowanie hybrydowe: podejście stosowane w praktyce

Każdy protokół wymagający jednocześnie bezpieczeństwa i szybkości łączy oba rodzaje. TLS 1.3, PGP, Signal, Age i każda wiarygodna usługa transferu plików stosują ten wzorzec:

  1. Nadawca generuje losowy 256-bitowy klucz AES (klucz sesji lub klucz pliku).
  2. Plik jest szyfrowany za pomocą AES-256-GCM przy użyciu tego klucza.
  3. Sam klucz AES jest szyfrowany kluczem publicznym odbiorcy (RSA-OAEP lub ECIES).
  4. Zarówno zaszyfrowany tekst, jak i zaszyfrowany klucz trafiają do odbiorcy.
  5. Odbiorca odszyfrowuje klucz AES swoim kluczem prywatnym, a następnie używa go do odszyfrowania pliku.

Koszty asymetryczne ponosisz raz na odbiorcę, dla 256-bitowego klucza. Masowa zawartość pliku jest obsługiwana symetrycznie z pełną prędkością. Najlepsze z obu światów.

Gdzie usługi transferu plików się różnią

Usługi transferu oparte na przeglądarce stają przed pewnym wyzwaniem: odbiorca może nie mieć pary kluczy. Po prostu klika w łącze. Trzy wzorce rozwiązują ten problem:

  • Tylko symetryczne przez wspólne łącze (SwissTransfer, HexaTransfer, następcy Firefox Send). Losowy klucz AES-256 jest generowany w przeglądarce nadawcy, umieszczany w fragmencie URL, a przeglądarka odbiorcy odczytuje go z fragmentu. Żadna kryptografia asymetryczna nie jest potrzebna — fragment jest kanałem klucza.
  • Asymetryczne między kontami (Tresorit, Proton Drive). Każdy użytkownik ma parę kluczy RSA lub ECC generowaną przy rejestracji. Pliki zaszyfrowane dla konkretnego odbiorcy używają jego klucza publicznego.
  • Hybrydowe z hasłem (wiele usług). Fragment URL zawiera sól; użytkownik wpisuje hasło; PBKDF2 lub Argon2id wyprowadza klucz symetryczny. Brak elementu asymetrycznego, ale hasło działa jako wspólny sekret.

Podejście przez wspólne łącze jest najprostsze i działa dla odbiorców bez kont. Asymetryczne powiązane z kontem jest mocniejsze, bo utrata łącza nie ujawnia klucza. Wybierz zgodnie ze swoim modelem zagrożeń.

Podpisy cyfrowe: drugie zastosowanie szyfrowania asymetrycznego

Asymetryczne potrafi coś, czego symetryczne nie może: udowodnić autorstwo. Jeśli podpiszę plik swoim kluczem prywatnym, każda osoba posiadająca mój klucz publiczny może zweryfikować, że to ja go podpisałem, i wiedzieć, że nie był modyfikowany od tamtego czasu. Szyfrowanie symetryczne może zapewnić uwierzytelnianie (HMAC, znacznik GCM), ale tylko między stronami, które już współdzielą sekret.

Algorytmy podpisów w użyciu:

  • RSA-PSS z SHA-256 — starsze, ale szeroko obsługiwane.
  • ECDSA na P-256 lub P-384 — zatwierdzone przez NIST, stosowane w systemach federalnych USA.
  • Ed25519 — szybkie, deterministyczne, odporne na słabe generatory liczb losowych. Nowoczesny wybór.

Dystrybucja oprogramowania (apt, Homebrew, obrazy Docker) opiera się na podpisach Ed25519 lub RSA, by zapobiegać manipulacjom w łańcuchu dostaw. Usługi transferu plików zazwyczaj nie ujawniają podpisów bezpośrednio, ale znacznik uwierzytelnienia GCM w AES-256-GCM zapewnia integralność w obrębie jednego szyfrowania.

Rozmiary kluczy i poziomy bezpieczeństwa

Szybka tabela konwersji dla równoważnego bezpieczeństwa wobec klasycznych komputerów:

  • 128-bitowy symetryczny = RSA 3072-bitowy = EC 256-bitowy (P-256 lub Curve25519)
  • 192-bitowy symetryczny = RSA 7680-bitowy = EC 384-bitowy (P-384)
  • 256-bitowy symetryczny = RSA 15 360-bitowy = EC 512-bitowy (P-521)

Aktualne zalecenie NIST dla nowych systemów: co najmniej bezpieczeństwo 112-bitowe, co oznacza RSA-2048 lub P-256. Agencje federalne używają 128-bitowego (RSA-3072, P-384) jako minimum do 2030 roku.

Wobec przyszłych komputerów kwantowych klucze symetryczne tracą około połowy siły (algorytm Grovera), podczas gdy RSA i ECC całkowicie się załamują (algorytm Shora). NIST standaryzował post-kwantowe zamienniki w 2024 roku: ML-KEM (dawniej Kyber) do wymiany kluczy i ML-DSA (dawniej Dilithium) do podpisów. Migracja trwa, ale jest powolna.

Kiedy stosować które podejście

Praktyczny przewodnik decyzyjny:

  • Szyfrowanie pliku dla siebie (kopia zapasowa, archiwum): symetryczny AES-256-GCM z silnym hasłem przez Argon2id. Asymetryczne niepotrzebne.
  • Wysyłanie pliku do jednego znajomego odbiorcy: hybrydowe — AES-256-GCM dla pliku, opakowanie kluczem publicznym dla klucza sesji.
  • Wysyłanie do wielu odbiorców: zaszyfruj plik raz za pomocą AES, następnie zawiń klucz osobno kluczem publicznym każdego odbiorcy. Dodaje może 300 bajtów na odbiorcę.
  • Potwierdzenie autorstwa: podpis Ed25519 na zaszyfrowanym tekście.
  • Jednorazowe udostępnienie przez łącze: symetryczne z kluczem w fragmencie URL.

Łącząc to wszystko

Dla wrażliwych transferów: AES-256-GCM do masowego szyfrowania, X25519 ECDH do wymiany kluczy gdy odbiorcy mają tożsamości, PBKDF2 lub Argon2id dla kluczy wyprowadzonych z hasła i TLS 1.3 jako warstwa transportu. Ta kombinacja jest tym, co wdrażają nowoczesne audytowane usługi.

Wypróbuj na hexatransfer.com — bezpłatnie, bez konta, do 10 GB.

Wysyłaj duże pliki bezpiecznie z szyfrowaniem end-to-end

Przesyłaj pliki do 10 GB za darmo z szyfrowaniem end-to-end. Bez rejestracji. Twoje pliki są szyfrowane w przeglądarce przed przesłaniem — nikt inny nie może ich odczytać.

Wyślij plik