Ahay! Paano na ba ang Elliptic Curve Digital Signature Algorithm (ECDSA)?!
Ang ECDSA ay hango sa mekanismo ng Diffie-Hellman Key exchange. Ito ang nag-umpisa ng konsepto ng public-key cryptography, nauna pa sa RSA.
Balik tayo sa paggamit ng variables na mas karaniwan sa literatura ha, hindi yung sa notasyon ng NIST. Makikita sa susunod na talaan ang mga parameters bago pa magkatransaksyon ang 2 partido: Alicia at Bob.
Alicia | Parameters | Bob |
---|---|---|
n | Finite Field order (alam ng lahat) | n |
P | Generator (alam ng lahat) | P |
a | Private key | b |
QA = aP | Public key (malalaman ng nakikipagtransaksyon) | QB = bP |
Nabanggit nung nakaraan, sa seksyon ng Digital Signatures, na ang mensahe sa Bitcoin ay ang detalye ng transaksyon. Hindi na kelangan itong i-encrypt para maging sikreto. Kaya sa mekanismo ng paggawa ng signature at verification nito tayo dumiretso.
Ang mensahe mula kay Alicia papunta kay Bob, ay kailangan mayroon din pirma o signature na kalakip bilang patunay na kay Bob nga nakalaan ang transaksyon. At may mekanismo naman para malaman ni Bob na kay Alicia nga galing ang signature.
Alicia | Parameters/Exchange | Bob |
---|---|---|
r <— R{0, 1, …, n-1} | Nonce, pansamantalang private key na pipiliin ng random / sikreto <— | |
R <— rP | Point generated na syang commitment sa transaksyon (parang pansamantalang public key) / — | |
R’ <— x(R) | x-coordinate ng point R, parte ng signature / — | |
m | Message / ipapasa —> | m |
H(m) | Hash ng message, gagamitin sa signature / — | |
s <— r-1(H(m) + R’a) mod n | Parte ng signature na may marka ng private key a ni Alicia at ng message m / — | |
(R’, s) | Signature / ipapasa —> | (R’, s) |
Coefficient 1, multiplicative inverse ng s times H(m) / — | w1 <— s-1H(m) mod n | |
Coefficient 2, multiplicative inverse ng s times R’ / — | w2 <— s-1R’ mod n | |
Verification equation (pagkumpara sa x-coordinates) / — | x(w1P + w2Q) ≡ R’ (mod n) |
Kapag ang nakuhang x-coordinate ni Bob ay parehas sa R’, valid ang signature.
Ipakita natin na ang signature ay valid:
w1P + w2Q = (s-1H(m))P + (s-1R’)Q
Dahil ang public key ni Alicia ay Q = aP (tanggalin na muna natin ang subscript A), mapapakita natin ang P na naka-factor out sa equation:
w1P + w2Q = (s-1(H(m) + R’a))P
Dahil ang s ay multiplicative inverse ng r,
w1P + w2Q = rP
Kaya ang x-coordinate ay dapat magparehas
R’ ≡ x(rP) (mod n)
Kaya nakita mo, na hindi nalalaman ni Bob ang private key ni Alicia, pero mabeberika na valid ang signature.
At dito natatapos ang blog posts ukol sa cryptography. Babalikan pa ba natin ito? Maaari, dahil may mga bagong progreso sa protocol ng Bitcoin na gagamit ng ibang mekanismo ng cryptography. Saka na, pag napag-aralan na iyon ng may akda.
Isang maagang pagbati ng kasiyahan sa darating na holidays. Kitakits sa ika-10!