Digital Signature Algorithm (tsz. Digital Signature Algorithms)
A digitális aláírás hasonló a kézzel írt aláíráshoz, de sokkal biztonságosabb, mivel matematikai algoritmusokra épül. Célja:
- Hitelesítés: Bizonyítja az üzenet küldőjének személyazonosságát. - Integritás: Bizonyítja, hogy az üzenet nem változott meg az aláírás óta. - Visszautasíthatatlanság: A küldő nem tudja tagadni, hogy ő küldte az üzenetet.
A DSA az alábbi alapokon nyugszik:
- Diszkrét logaritmus probléma: A DSA biztonsága azon a nehézségen alapul, hogy nehéz meghatározni a logaritmusokat véges testekben (pl. ha , akkor nehéz meghatározni az -et).
Paraméterek:
- : egy nagy prímszám. - : egy 160, 224 vagy 256 bites prímszám, amely osztója -nek. - : egy szám, amely kielégíti, hogy , ahol egy véletlenszerű egész szám. - Privát kulcs (): egy véletlenszerűen választott egész szám . - Publikus kulcs (): .
Amikor valaki alá akar írni egy üzenetet, a következő lépéseket követi:
Az aláírás ellenőrzéséhez a következő lépéseket kell végrehajtani:
Tulajdonság | DSA | RSA |
---|---|---|
Matematikai alap | Diszkrét logaritmus | Egyszerű modulo faktorizáció |
Aláírási sebesség | Gyorsabb | Lassabb |
Ellenőrzés | Lassabb | Gyorsabb |
Kulcsméret | Hasonló | Hasonló |
Alkalmazás | Aláírás | Aláírás és titkosítás is |
- Szabványosított: Része a NIST DSS szabványnak (FIPS 186). - Erős kriptográfiai biztonság: Ha megfelelő kulcsméreteket használunk, nagyon nehéz feltörni. - Kulcs különválasztás: Csak aláírásra használható (ellentétben pl. RSA-val, amely titkosításra is).
- Lassabb ellenőrzés: Az aláírás ellenőrzése lassabb lehet, mint más algoritmusoké. - Biztonsági kockázatok rossz implementáció esetén: Ha például a véletlenszerű nem valóban véletlen, az egész rendszer kompromittálható. - Hash-függőség: Az algoritmus erősen függ a kivonatoló algoritmus (pl. SHA-1) biztonságától.
A DSA egyik legkritikusabb eleme a véletlenszerű érték. Ha ezt újrahasználják vagy előre kiszámítható, akkor a privát kulcs visszafejthető. Ez történt például a Sony PlayStation 3 esetében, ahol az ismételt használat miatt feltörték a rendszer biztonságát.
Manapság egyre gyakrabban használják a DSA modern alternatíváit, például:
- ECDSA (Elliptic Curve Digital Signature Algorithm): Elliptikus görbéken alapuló, kisebb kulcsmérettel ugyanakkora biztonságot nyújt. - EdDSA (Edwards-curve Digital Signature Algorithm): Nagy sebességű, biztonságos és determinisztikus aláírási algoritmus.
- E-mail aláírás (pl. PGP, S/MIME) - Szoftveraláírás - Digitális tanúsítványok (pl. X.509) - Biztonságos kommunikációs protokollok (pl. TLS/SSL)
A Digital Signature Algorithm (DSA) egy biztonságos, nyilvános kulcsú aláírási módszer, amelyet hivatalosan is szabványosítottak. Bár manapság egyre gyakrabban helyettesítik modernebb alternatívák, még mindig sok helyen használatos, főleg ahol a DSS előírásai kötelezőek. A biztonság kulcsa a megfelelő paraméterválasztásban és a véletlenszerűség biztosításában rejlik.