Hvad er Digital Signature Algorithm (DSA)?
Digital Signature Algorithm (DSA) er en standardmetode til at bevise, at en besked er ægte og uændret ved brug af et par kryptografiske nøgler. Tænk på det som et laksegl, som matematikken kan bekræfte på et øjeblik. Ingen notar nødvendig.
DSA krypterer dine data. Nej. Den underskriver data, så andre kan bekræfte, hvem der sendte dem, og at intet er ændret. Kryptering er noget andet.
Hvordan Digital Signature Algorithm (DSA) fungerer
Kort gennemgang med en wallet-stemning. Du vil bevise, at en besked er din uden at afsløre din hemmelighed. Her er forløbet:
- Trin 1: Din wallet opbevarer din privat nøgle, som forbliver hemmelig.
- Trin 2: Du beder den om at underskrive en af dine kryptovalutatransaktioner eller en besked.
- Trin 3: Walleten hasher beskeden, vælger et nyt tilfældigt tal kaldet k, og beregner derefter signaturparret r og s med din hemmelige nøgle.
- Trin 4: Enhver kan bruge din offentlig nøgle til at verificere, at r og s passer til beskeden og din nøgle.
- Trin 5: Hvis kontrollen godkendes, accepterer netværket handlingen som ægte. Ingen hemmelighed bliver afsløret.
Det er hovedidéen. Underskriv med din hemmelige nøgle, verificer med din offentlige nøgle.
Hvorfor Digital Signature Algorithm (DSA) betyder noget
Hvorfor interessere sig? Fordi tillid på nettet kræver beviser.
- Fordel: Beviser forfatterskab og integritet uden at dele din hemmelige nøgle. Hurtigt, automatisk og kedeligt på den gode måde.
- Perspektiv: Det gør markeder for digitale aktiver sikrere ved at stoppe forfalskede godkendelser og skjulte ændringer.
- Relevans: Du støder på det, når du underskriver wallet-handlinger, softwareopdateringer eller godkendelser af smart contracts, selv hvis appen skjuler matematikken.
Brug aldrig den tilfældige værdi k flere gange ved underskrift, og foretræk deterministisk underskrift når det understøttes. Genbrug af k kan afsløre din hemmelighed ved én fejl.
Nøgleegenskaber ved Digital Signature Algorithm (DSA)
Egenskaberne der gør den effektiv:
- Tilfældighed: Hver signatur kræver et nyt uforudsigeligt k for at være sikker.
- Par: Signaturen består af to tal, r og s, ikke bare ét element.
- Hashing: Den underskriver et hash af beskeden, hvilket holder processen konsistent og hurtig.
- Standarder: Defineret af NIST i FIPS 186, så revisorer og biblioteker taler samme sprog.
- Verifikation: Enhver med den offentlige nøgle kan tjekke beviset uden at få kendskab til hemmeligheden.
Hvordan beregnes Digital Signature Algorithm (DSA)?
Du behøver ikke regne dette i hånden, men her er skitsen. Systemet har offentlige parametre p, q, g. Din hemmelige nøgle er x, og din offentlige nøgle er y, som er g opløftet til 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) For at verificere, beregn w som er inv(s, q), derefter u1 som er H gange w, og u2 som er r gange w. Hvis v, som er (g^u1 * y^u2 mod p) mod q, er lig r, er signaturen gyldig.
Signaturer beviser oprindelse og integritet, ikke fortrolighed. Hvis beskeden er følsom, har du stadig brug for kryptering.
Eksempel
Din wallet underskriver en overførselsanmodning, udsender beskeden sammen med r og s, og validatorer bekræfter signaturen før nogen mønter flyttes.
Sjov kendsgerning
DSA blev standardiseret i starten af halvfemserne og var inspireret af Schnorrs idéer. En kendt advarende historie kom senere, da et team bag en spillekonsol genbrugte underskriftsnonce i en beslægtet ordning, og den hemmelige nøgle blev afsløret.
Opsummering
Digital Signature Algorithm (DSA) er dit matematiske segl på beskeder og pengeoverførsler. Enkel idé, alvorlig beskyttelse.
