Mikä on digitaalinen allekirjoitusalgoritmi (DSA)?
Digitaalinen allekirjoitusalgoritmi (DSA) on vakiomenetelmä, jolla voidaan todistaa viestin aitous ja muuttumattomuus kryptografisen avainparin avulla. Ajattele sitä vahasinetin kaltaisena: matematiikka tarkistaa sen silmänräpäyksessä, eikä notaaria tarvita.
DSA salaa tietosi. Ei pidä paikkaansa. Se allekirjoittaa tiedot, jotta muut voivat varmistaa, kuka ne lähetti ja ettei niitä ole muutettu. Salaus on eri asia.
Miten digitaalinen allekirjoitusalgoritmi (DSA) toimii
Käydään asia nopeasti läpi walletin näkökulmasta. Haluat todistaa viestin olevan sinun paljastamatta salaisuuttasi. Näin se tapahtuu:
- Vaihe 1: Walletissasi on yksityinen avain, joka pysyy salassa.
- Vaihe 2: Pyydät sitä allekirjoittamaan jonkin kryptovaluuttatapahtumasi tai viestin.
- Vaihe 3: Wallet laskee viestin tiivisteen, valitsee uuden satunnaisluvun nimeltä k ja laskee sitten allekirjoitusparin r ja s salaisella avaimellasi.
- Vaihe 4: Kuka tahansa voi käyttää julkista avaintasi varmistaakseen, että r ja s vastaavat viestiä ja avaintasi.
- Vaihe 5: Jos tarkistus onnistuu, verkko hyväksyy toiminnon aidoksi. Salaisuus ei paljastu.
Siinä on perusajatus: allekirjoita salaisella avaimella, varmista julkisella avaimella.
Miksi digitaalinen allekirjoitusalgoritmi (DSA) on tärkeä
Miksi tällä on väliä? Koska internetissä tarvitaan todisteita luottamuksen tueksi.
- Hyöty: Todistaa tekijyyden ja eheyden ilman, että yksityistä avaintasi tarvitsee jakaa. Nopea, automaattinen ja mukavan arkinen.
- Näkökulma: Se parantaa digitaalisten varojen markkinoiden turvallisuutta estämällä väärennetyt hyväksynnät ja salaa tehdyt muutokset.
- Merkitys: Törmäät siihen aina, kun allekirjoitat wallet-toimintoja, ohjelmistopäivityksiä tai älysopimusten hyväksyntöjä, vaikka sovellus piilottaisi matematiikan.
Älä koskaan käytä satunnaislukua k uudelleen allekirjoituksessa. Suosi determinististä allekirjoitusta, jos se on tuettu. k:n uudelleenkäyttö voi paljastaa salaisen avaimesi yhdellä kömmähdyksellä.
Digitaalisen allekirjoitusalgoritmin (DSA) keskeiset ominaisuudet
Ominaisuudet, jotka tekevät siitä tehokkaan:
- Satunnaisuus: Jokainen allekirjoitus tarvitsee uuden, ennalta-arvaamattoman k:n pysyäkseen turvallisena.
- Pari: Allekirjoitus koostuu kahdesta luvusta, r:stä ja s:stä, ei yhdestä möykystä.
- Tiivistefunktio: Se allekirjoittaa viestin tiivisteen, mikä pitää toiminnan johdonmukaisena ja nopeana.
- Standardit: NIST määritteli sen FIPS 186 -standardissa, joten auditoijat ja ohjelmistokirjastot käyttävät yhteistä kieltä.
- Varmennus: Kuka tahansa julkisen avaimen haltija voi tarkistaa todisteen saamatta selville salaisuutta.
Miten digitaalisen allekirjoitusalgoritmin (DSA) allekirjoitus lasketaan?
Tätä ei tarvitse laskea käsin, mutta tässä pääpiirteet. Järjestelmässä on julkiset parametrit p, q ja g. Salainen avaimesi on x ja julkinen avaimesi y, joka on g potenssiin x modulo p.
H = hash(message) choose k as a nonzero random in Z_q r = (g^k mod p) mod q s = inv(k, q) * (H + x*r) mod q signature = (r, s) Varmennuksessa lasketaan w, joka on inv(s, q), sitten u1, joka on H kertaa w, sekä u2, joka on r kertaa w. Jos v, joka on (g^u1 * y^u2 mod p) mod q, on yhtä suuri kuin r, allekirjoitus on kelvollinen.
Allekirjoitukset todistavat alkuperän ja eheyden, eivät luottamuksellisuutta. Jos viesti sisältää arkaluonteisia tietoja, tarvitset lisäksi salauksen.
Esimerkki
Walletisi allekirjoittaa siirtopyynnön ja lähettää viestin sekä r:n ja s:n verkkoon. Validaattorit vahvistavat allekirjoituksen ennen kolikoiden siirtämistä.
Hauska fakta
DSA standardoitiin 1990-luvun alussa, ja sen taustalla olivat Schnorrin ideat. Myöhemmin tunnetuksi tulleessa varoittavassa esimerkissä pelikonsolin kehitystiimi käytti allekirjoitusnoncea uudelleen sukulaisalgoritmissa, jolloin salainen avain paljastui kuin taskun pohjalle unohtuneet kolikot.
Yhteenveto
Digitaalinen allekirjoitusalgoritmi (DSA) on matemaattinen hyväksyntäleima viesteille ja rahansiirroille. Yksinkertainen idea, vahva suoja.