DSA

sähköinen allekirjoitusalgoritmi
Tämä artikkeli kertoo sähköisestä allekirjoituksesta. Muita merkityksiä täsmennyssivulla.

DSA (engl. Digital Signature Algorithm) on sähköiseen allekirjoitukseen tarkoitettu algoritmi. NIST ehdotti DSA:ta sähköisen allekirjoituksen standardiksi (engl. Digital Signature Standard, DSS) vuonna 1991.[1] DSA määritellään standardissa, jonka NIST esitti vuonna 1994 dokumentissa FIPS 186.[2] Standardia on päivitetty vuonna 1998 (FIPS 186-1)[3], vuonna 2000 (FIPS 186-2)[4], vuonna 2009 (FIPS 186-3)[5], vuonna 2013 (FIPS 186-4)[6] ja 2023 (FIPS 186-5).[7] Vuonna 1993 Dave Banisar ilmoitti Freedom of Information Act (FOIA) -kanteen myötä, että NIST ei ollut kehittänyt sähköisen allekirjoituksen standardia vaan sen oli tehnyt NSA.[8]

Sähköisen allekirjoituksen tarkoitus on, että vastaanottaja voi julkisen avaimen perusteella varmistaa lähettäjän henkilöllisyyden ja tiedon muuttumattomuuden. Myös kolmas osapuoli voi tarkistaa allekirjoituksen ja siihen liittyvän tiedon autenttisuuden.[1]

NIST on kieltänyt digitaalisien allekirjoituksien luomisen DSA:lla vuonna 2019 ja sen sijaan on käytettävä ECDSA- ja EdDSA-menetelmiä.[9] ECDSA on määritelty standardissa FIPS 186-5. EdDSA on määritelty standardissa RFC 8032 ja hyväksytty standardissa FIPS 186-5. DSA ei ole enää mukana standardin versiossa FIPS 186-5.[10]

Avainten luonti

muokkaa

Jokaisella käyttäjällä on julkinen avain ja yksityinen avain. Julkinen avain vastaa tiettyä yksityistä avainta, mutta nämä kaksi avainta eivät ole koskaan samat. Julkinen avain oletetaan yleisesti tunnetuksi, ja yksityistä avainta ei koskaan paljasteta ulkopuolisille. Avaimen luonnissa valitaan hash-funktio H. Alkuperäisen DSS standardin mukaan H oli aina SHA-1, mutta nykyisin käytetään muita, vahvempia hash-funktioita SHA-perheestä. Tämän jälkeen päätetään avaimen pituus L. Tämä on avaimen kryptografisen vahvuuden ensisijainen määrittäjä. Alkuperäinen DSS rajoitti pituuden L 64 monikertoihin välille 512 ja 1024. Myöhemmin FIPS 186-2 määritteli pituuden L tarkalleen 1024:än.

Heikkous

muokkaa

DSA:n heikkous on, että jokainen allekirjoitus tarvitsee uuden satunnaisesti valitun arvon k. Jos arvoa ei muuteta tai satunnaisluvun valinnassa on heikkous sen perusteella voidaan löytää allekirjoittamiseen käytetty yksityinen avain x.[1] Puutteellisesti toimiva satunnaislukugeneraattori on eräs mahdollinen heikkous.[11] Kuten DSA myös ECDSA on haavoittuva vuotamaan yksityistä tietoa mikäli satunnaisluvun valinta on heikko tai vihamielisesti toteutettu.[12]

Käyttökohteet

muokkaa

SSH-protollan toisessa versiossa (SSH2) otettiin mukaan tuki DSA-algoritmille[13], mutta se on eräissä toteutuksissa oletuksena ollut pois käytöstä vuodesta 2015 lähtien aikomuksena poistaa se kokonaan.[14]

Lähteet

muokkaa
  1. a b c Schneier; Bruce: Applied Cryptography. (2nd edition) Wiley. ISBN 0-471-11709-9 (englanniksi)
  2. FIPS 186
  3. FIPS 186-1
  4. FIPS 186-2 (Arkistoitu – Internet Archive)
  5. FIPS 186-3 csrc.nist.gov. Viitattu 2.2.2024. (englanniksi)
  6. FIPS 186-4 csrc.nist.gov. Viitattu 2.2.2024. (englanniksi)
  7. FIPS 186-5 csrc.nist.gov. 3.2.2023. Viitattu 2.2.2024. (englanniksi)
  8. Dave Banisar: New NIST/NSA Revelations 6.5.1993. Arkistoitu Viitattu 2.2.2024. (englanniksi)
  9. Digital Signature Standard (DSS) csrc.nist.gov. lokakuu 2019. Viitattu 2.2.2024. (englanniksi)
  10. Digital Signature Standard (DSS) (PDF) nvlpubs.nist.gov. Viitattu 2.2.2024. (englanniksi)
  11. Nadia Heninger & Zakir Durumeric & Eric Wustrow & J. Alex Halderman: Mining Your Ps and Qs: Detection of Widespread Weak Keys in Network Devices (PDF) usenix.org. Viitattu 2.2.2024. (englanniksi)
  12. Stephan Verbücheln: How Perfect Offline Wallets Can Still Leak Bitcoin Private Keys (PDF) arxiv.org. 5.1.2015. Viitattu 2.2.2024. (englanniksi)
  13. SSH Frequently Asked Questions snailbook.com. Viitattu 23.1.2024. (englanniksi)
  14. Damien Miller: OpenSSH announces DSA-removal timeline lwn.net. 11.1.2024. Viitattu 2.2.2024. (englanniksi)

Aiheesta muualla

muokkaa
Tämä tietotekniikkaan liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.