Mi az a digitális aláírási algoritmus (DSA)?
A digitális aláírási algoritmus (DSA) egy szabványos módszer annak bizonyítására, hogy egy üzenet hiteles és változatlan, két kriptográfiai kulcs segítségével. Olyan, mint egy viaszpecsét, amelyet a matematika egy szempillantás alatt ellenőriz, közjegyző nélkül.
A DSA titkosítja az adataidat. Nem. Aláírja az adatokat, így mások ellenőrizhetik, ki küldte őket, és hogy nem változtak-e meg. A titkosítás ettől különálló dolog.
Hogyan működik a digitális aláírási algoritmus (DSA)?
Nézzük gyorsan, walletes szemszögből. Szeretnéd bizonyítani, hogy egy üzenet tőled származik, anélkül, hogy felfednéd a titkodat. Így zajlik a folyamat:
- 1. lépés: A walleted tárolja a privát kulcsodat, amely titokban marad.
- 2. lépés: Megkéred, hogy írja alá az egyik kriptovaluta-tranzakciódat vagy egy üzenetet.
- 3. lépés: A wallet hash-eli az üzenetet, választ egy új, k nevű véletlen számot, majd a titkos kulcsoddal kiszámítja az r és s értékű aláíráspárt.
- 4. lépés: Bárki felhasználhatja a nyilvános kulcsodat annak ellenőrzésére, hogy az r és s érték megfelel-e az üzenetnek és a kulcsodnak.
- 5. lépés: Ha az ellenőrzés sikeres, a hálózat hitelesnek fogadja el a műveletet. Semmilyen titok nem kerül nyilvánosságra.
Ez az alapötlet. Aláírás titkos kulccsal, ellenőrzés nyilvános kulccsal.
Miért fontos a digitális aláírási algoritmus (DSA)?
Miért érdekeljen? Mert az interneten a bizalomhoz bizonyíték kell.
- Előny: Bizonyítja a szerzőséget és a sértetlenséget anélkül, hogy meg kellene osztanod a titkos kulcsodat. Gyors, automatikus és a lehető legjobb értelemben unalmas.
- Szempont: Biztonságosabbá teszi a digitális eszközök piacait, mert megakadályozza a hamis jóváhagyásokat és a titkos módosításokat.
- Jelentőség: Minden alkalommal találkozhatsz vele, amikor walletműveleteket, szoftverfrissítéseket vagy okosszerződés-jóváhagyásokat írsz alá, még akkor is, ha az alkalmazás elrejti előled a matematikát.
Aláíráskor soha ne használd fel újra a k véletlen értéket, és ha van rá lehetőség, válassz determinisztikus aláírást. A k újbóli felhasználása egyetlen bakival felfedheti a titkos kulcsodat.
A digitális aláírási algoritmus (DSA) főbb jellemzői
Ezek a tulajdonságok adják az erejét:
- Véletlenszerűség: A biztonság érdekében minden aláíráshoz új, kiszámíthatatlan k érték szükséges.
- Pár: Az aláírás két számból, r-ből és s-ből áll, nem egyetlen adatblokkból.
- Hash-elés: Az üzenet hash-ét írja alá, így a folyamat egységes és gyors marad.
- Szabványok: A NIST határozta meg a FIPS 186 szabványban, ezért az auditorok és a könyvtárak ugyanazt a nyelvet beszélik.
- Ellenőrzés: A nyilvános kulcs birtokában bárki ellenőrizheti a bizonyítékot anélkül, hogy megismerné a titkot.
Hogyan számítják ki a digitális aláírási algoritmust (DSA)?
Ezt nem kell kézzel kiszámítanod, de íme a vázlat. A rendszer nyilvános paraméterei p, q és g. A titkos kulcsod x, a nyilvános kulcsod pedig y, amely g x-edik hatványának p-vel vett maradéka.
H = hash(message) válassz k-t nem nulla véletlen értékként Z_q-ból r = (g^k mod p) mod q s = inv(k, q) * (H + x*r) mod q aláírás = (r, s) Az ellenőrzéshez számítsd ki a w értéket, amely inv(s, q), majd az u1 értéket, amely H és w szorzata, valamint az u2 értéket, amely r és w szorzata. Ha a v = (g^u1 * y^u2 mod p) mod q értéke megegyezik r-rel, akkor az aláírás érvényes.
Az aláírások a forrást és a sértetlenséget igazolják, nem a bizalmasságot. Ha az üzenet érzékeny adatokat tartalmaz, titkosításra is szükséged lesz.
Példa
A walleted aláír egy átutalási kérelmet, majd elküldi az üzenetet az r és s értékkel együtt. A validátorok ellenőrzik az aláírást, mielőtt a coinok mozgásba lendülnének.
Érdekesség
A DSA-t a kilencvenes évek elején szabványosították, és a Schnorr-féle ötletek inspirálták. Egy hírhedt intő példa később történt: egy játékkonzol fejlesztőcsapata újra felhasználta az aláíráshoz használt nonce értékét egy hasonló sémában, így a titkos kulcs úgy hullott ki, mint aprópénz a zsebből.
Összefoglalás
A digitális aláírási algoritmus (DSA) a matematikai pecséted, amellyel jóváhagyhatod az üzeneteket és a pénzügyi műveleteket. Egyszerű ötlet, komoly védelem.