Ed25519 – nowoczesny algorytm podpisu cyfrowego
Ed25519 to algorytm podpisu cyfrowego oparty na kryptografii krzywych eliptycznych, dokładniej na krzywej Edwards25519. Jest szeroko stosowany m.in. w SSH, systemach podpisywania danych, oprogramowaniu i infrastrukturze kryptograficznej.
Najprościej:
Ed25519
|
+--> podpis cyfrowy
+--> uwierzytelnianie
+--> integralność
+--> weryfikacja autora
Nie jest to algorytm szyfrowania danych.
Ed25519 ≠ szyfrowanie
To podstawowe rozróżnienie:
Szyfrowanie
→ ukrywa dane
Ed25519
→ potwierdza autentyczność i integralność
Przykład:
Dane
|
v
Private Key
|
v
Signature
Odbiorca używa public key, aby sprawdzić podpis:
Dane + Signature + Public Key
|
v
VALID / INVALID
Klucz prywatny i publiczny
Ed25519 wykorzystuje parę kluczy:
Private Key
|
+--> pozostaje tajny
|
v
Signature
Public Key
|
+--> może być udostępniony
|
v
Verification
Najważniejsza zasada:
Klucz prywatny podpisuje, klucz publiczny weryfikuje.
Jak działa podpis?
Załóżmy, że mamy plik:
important.txt
Podpisujący wykonuje:
important.txt
|
v
Ed25519
|
Private Key
|
v
Signature
Odbiorca:
important.txt
+
Signature
+
Public Key
|
v
Ed25519 Verify
|
+---+---+
| |
VALID INVALID
Jeżeli ktoś zmieni choćby niewielką część pliku, weryfikacja podpisu się nie powiedzie.
Ed25519 a hash
Hash i podpis cyfrowy pełnią różne funkcje.
SHA-256
→ "Czy dane są takie same?"
Ed25519
→ "Czy dane zostały podpisane przez posiadacza klucza prywatnego?"
Można je oczywiście wykorzystywać razem:
Data
|
v
Hash
|
v
Signature
W praktycznych protokołach szczegóły zależą od konkretnej implementacji.
Ed25519 vs RSA
To bardzo częste porównanie.
| Cecha | Ed25519 | RSA |
|---|---|---|
| Typ | ECC | Integer factorization |
| Klucz publiczny | 32 bajty | zwykle setki bajtów |
| Podpis | 64 bajty | zależny od rozmiaru klucza |
| Wydajność | bardzo dobra | dobra |
| Generowanie kluczy | szybkie | wolniejsze |
| Współczesne zastosowania | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| SSH | bardzo popularny | bardzo popularny |
| Prostota użycia | wysoka | średnia |
Jedną z zalet Ed25519 są małe klucze i podpisy przy wysokim poziomie bezpieczeństwa.
Ed25519 vs ECDSA
To jeszcze ciekawsze porównanie:
ECDSA
→ klasyczna rodzina podpisów ECC
Ed25519
→ podpisy oparte na EdDSA / Edwards25519
Ed25519 został zaprojektowany tak, aby uniknąć części problemów i pułapek implementacyjnych związanych z klasycznym ECDSA.
W praktyce Ed25519 jest bardzo atrakcyjny, gdy protokół i biblioteka go obsługują.

Ed25519 w SSH
To jedno z najbardziej znanych zastosowań.
Możemy wygenerować klucz:
ssh-keygen -t ed25519
Otrzymujemy:
Private key
~/.ssh/id_ed25519
Public key
~/.ssh/id_ed25519.pub
Architektura:
SSH Client
|
Private Key
|
v
SIGN
|
v
SSH Server
|
Public Key
|
v
VERIFY
Dzięki temu użytkownik może uwierzytelnić się bez wysyłania hasła.
Dlaczego Ed25519 jest popularny w SSH?
Ponieważ zapewnia:
- małe klucze,
- szybkie operacje,
- szybkie generowanie,
- bardzo dobre właściwości kryptograficzne,
- prostszą konfigurację niż wiele starszych rozwiązań.
Dlatego przy nowych konfiguracjach SSH często warto rozważyć Ed25519, jeśli nie ma wymogu kompatybilności ze starszym systemem.
Ed25519 w Git
Możemy również używać Ed25519 do podpisywania commitów.
Przykładowo:
Developer
|
v
Git Commit
|
v
Ed25519 Signature
Odbiorca może zweryfikować:
Commit
+
Signature
+
Public Key
i sprawdzić, czy commit rzeczywiście został podpisany właściwym kluczem.
Ed25519 w oprogramowaniu
Podpisy cyfrowe są szczególnie istotne przy dystrybucji oprogramowania.
Przykład:
Developer
|
v
Software Package
|
v
Ed25519 Signature
|
v
Repository / Download
Użytkownik:
Downloaded Package
|
v
Verify Signature
|
+---+---+
| |
VALID INVALID
Dzięki temu można wykryć modyfikację pakietu.
Ed25519 a supply-chain security
To bardzo ważny temat w kontekście współczesnego bezpieczeństwa.
Wyobraźmy sobie:
Source Code
|
v
Build System
|
v
Binary
|
v
Signature
|
v
Repository
Odbiorca może zweryfikować podpis przed instalacją.
To pomaga budować chain of trust.
Oczywiście sam podpis nie gwarantuje bezpieczeństwa całego procesu — trzeba również chronić klucze i system buildów.
Ed25519 w aktualizacjach
Przykładowa architektura:
Vendor
|
+--> Firmware
|
+--> Ed25519 Signature
|
v
Distribution
|
v
Device
|
v
Verify Signature
Urządzenie może odrzucić aktualizację, jeśli podpis jest nieprawidłowy.
To bardzo ważne w:
- firmware,
- IoT,
- systemach embedded,
- aplikacjach,
- aktualizacjach systemowych.
Ed25519 vs X25519
Te nazwy często są mylone.
Ed25519
→ podpisy cyfrowe
X25519
→ uzgadnianie klucza
Czyli:
Ed25519
Private Key
|
v
Digital Signature
X25519
Private Key + Public Key
|
v
Shared Secret
Nie są zamiennikami.
Ed25519 vs ECDH
ECDH służy do uzgadniania wspólnego sekretu:
Alice Bob
| |
Private + Public Private + Public
| |
+--------> ECDH <-------+
|
v
Shared Secret
Ed25519 natomiast:
Private Key
|
v
Signature
Ed25519 a bezpieczeństwo klucza prywatnego
Największym praktycznym problemem nie jest zwykle sam algorytm, ale ochrona klucza prywatnego.
Jeżeli:
Private Key
|
v
🔓
zostanie skradziony, atakujący może tworzyć poprawne podpisy.
Dlatego warto stosować:
Strong passphrase
+
Secure storage
+
Hardware-backed keys
+
Access control
Ed25519 + hardware security
W środowiskach o wysokich wymaganiach klucz prywatny może być przechowywany w sprzętowym urządzeniu.
Przykładowo:
Application
|
v
Hardware Security
|
v
Private Key
|
v
Signature
Klucz prywatny nie musi wtedy opuszczać bezpiecznego środowiska.
Ed25519 i klucze deterministyczne
Jedną z charakterystycznych cech Ed25519 jest sposób generowania wartości używanych podczas podpisywania, który ogranicza ryzyko związane z błędami losowania nonce znanymi z historii implementacji ECDSA.
To jedna z przyczyn, dla których Ed25519 jest atrakcyjny z punktu widzenia implementacji.
Czy Ed25519 jest post-quantum?
Nie.
To bardzo ważne w kontekście naszej wcześniejszej tematyki Post-Quantum Cryptography.
Ed25519 opiera się na problemach matematycznych związanych z kryptografią krzywych eliptycznych.
Wystarczająco duży komputer kwantowy z algorytmem Shora mógłby złamać tego typu kryptografię.
Czyli:
Ed25519
|
v
Classical Cryptography
|
X
Post-Quantum ❌
Ed25519 a PQC
W kryptografii post-quantum pojawiają się inne rodziny algorytmów, np.:
ML-DSA
SLH-DSA
W praktyce przyszłe systemy mogą wykorzystywać podejścia hybrydowe:
Classical Signature
+
PQC Signature
|
v
Hybrid Security
Wybór konkretnego rozwiązania zależy jednak od protokołu i wymagań kompatybilności.
Gdzie Ed25519 ma szczególnie dużo sensu?
SSH
Git signing
Software signing
Package signing
Firmware
Identity systems
Certificates / protocols supporting EdDSA
Secure updates
Gdzie nie należy go używać?
Nie używamy Ed25519 jako zwykłego szyfru:
❌ "zaszyfruj mi plik Ed25519"
Do szyfrowania potrzebujemy innych mechanizmów, np. algorytmów symetrycznych, takich jak AES-GCM lub ChaCha20-Poly1305, zależnie od zastosowania.
Ed25519 służy przede wszystkim do podpisu i uwierzytelniania.
Ed25519 w naszej architekturze bezpieczeństwa
Jeżeli połączymy go z tematami, które już omawialiśmy:
IDENTITY / TRUST
|
Ed25519
|
+-------------+-------------+
| | |
SSH Git Software
| | |
+-------------+-------------+
|
Digital Signatures
A obok:
SECURITY MONITORING
|
+----------------+----------------+
| | |
Sysmon auditd Suricata
| | |
+----------------+----------------+
|
Wazuh
oraz:
OBSERVABILITY
|
+--------+--------+
| |
OpenTelemetry Fluent Bit
| |
+--------+--------+
|
Prometheus / Loki / Tempo
Najważniejsze rozróżnienie
Ed25519
→ "Czy ten podpis pochodzi od właściciela klucza?"
SHA-256
→ "Czy dane zostały zmienione?"
AES-GCM
→ "Jak zaszyfrować dane?"
X25519
→ "Jak uzgodnić wspólny sekret?"
RSA
→ starsza, nadal szeroko używana rodzina kryptografii publicznego klucza
ML-DSA
→ nowoczesny podpis post-quantum
Ed25519 jest obecnie jednym z najważniejszych algorytmów podpisu cyfrowego, szczególnie w SSH, Git i systemach, gdzie liczą się małe klucze, wydajność oraz prosta i bezpieczna implementacja.






