Förstå hur ECDSA skyddar dina data. (12 / 15 steg)
Steg 12: Verifiera signaturen
Nu när du har din signatur, du vill verifiera det, det är också ganska enkelt och du behöver bara den offentliga (och kurvan parametrar naturligtvis) att göra. Du kan använda denna ekvation för att beräkna en punkt P :
P = S ^ -1 * z * G + S ^ -1 * R * Qa
Om x -koordinaten för en punkt P är lika med R, betyder det att är signaturen giltig, annars inte är det.
Ganska enkel, va? Nu låt oss se varför och hur... och detta kommer att kräva vissa matematik att verifiera:
Vi har:
P = S ^ -1 * z * G + S ^ -1 * R * Qa
men Qa = dA * G, så:
P = S ^ -1 * z * G + S ^ -1 * R * dA * G = S ^ -1 (z + dA * R) * G
Men x-koordinaten för P måste matcha R och R är x-koordinaten för k * G, vilket innebär att:
k * G = S ^ -1 (z + dA * R) * G
Vi kan förenkla genom att ta bort G vilket ger oss:
k = S ^ -1 (z + dA * R)
genom att vända k och S, får vi:
S = k ^ -1 (z + dA * R)
och det är den ekvationen som används för att generera signaturen... så det matchar, och det är anledningen till varför du kan verifiera signaturen med den första ekvationen ovan.