ECDSA — Elliptic Curve Digital Signature Algorithm nomli, elliptik egri chiziq kriptografiyasiga asoslangan raqamli imzo algoritmi. U xabar yaxlitligi va private key egasi imzolaganini tekshirishga xizmat qiladi. ECDSA ma’lumotni shifrlamaydi. Algoritm TLS sertifikatlari, software signing, smart card va blockchain tranzaksiyalarida ishlatiladi.
Kalit va parametrlar
Tizim prime field, egri chiziq, base point G va uning katta tub orderi nni belgilaydi. Private key d — 1 dan n−1 gacha bo‘lgan tasodifiy son. Public key Q = dG nuqtadir. P-256 va P-384 keng tarqalgan curve’lardir.
Public key parse qilinganda nuqta curve ustida ekanligi va kerakli subgroup talablariga mosligi tekshiriladi. Noto‘g‘ri curve nuqtasini qabul qilish ayrim protokollarda private key haqida ma’lumot chiqarishi mumkin. Tayyor kutubxona point validation va encodingni boshqaradi.
Imzo yaratish
Xabar avval SHA-256 yoki curve xavfsizlik darajasiga mos hash bilan xeshlanadi. Har imzo uchun k nomli maxfiy nonce tanlanadi. Mantiqan quyidagi qiymatlar hisoblanadi:
R = kG
r = x(R) mod n
s = k⁻¹(z + r·d) mod n
Signature (r, s) juftligidir. r yoki s nol chiqsa, yangi nonce bilan qayta hisoblanadi. Verifikator xabar hashini, public key va signature’ni curve amallari orqali tekshiradi. Private key tekshiruvda kerak emas.
Nonce xavfsizligi
Ayni private key bilan bir xil k ikki xabarda ishlatilsa, tenglamalardan nonce va private keyni hisoblash mumkin. Noncedagi kichik bias yoki ayrim bitlarning side-channel orqali sizishi ham ko‘p imzo asosida keyni ochishi mumkin. Shu sababli oddiy random APIning xatosi halokatli oqibat beradi.
RFC 6979 deterministik ECDSA nonce’ni private key va xabar hashidan HMAC orqali hosil qiladi. Bu random generatorga bog‘liqlikni kamaytiradi va ayni xabar–key uchun bir xil signature beradi. Deterministik usul side-channel, fault attack yoki private key storage muammosini yo‘q qilmaydi.
Signature encoding
X.509 va TLSda ECDSA signature ko‘pincha ASN.1 DER ichidagi ikki INTEGER sifatida kodlanadi. Ayrim API va blockchainlar esa r va sni curve o‘lchamidagi fixed-width byte’lar bilan birlashtiradi. DER uzunligi o‘zgaruvchan, chunki musbat INTEGER uchun boshlang‘ich nol kerak bo‘lishi mumkin. Formatni taxmin bilan almashtirish verification xatosiga olib keladi.
ECDSA’da (r, s) haqiqiy bo‘lsa, (r, n−s) ham ko‘pincha haqiqiydir. Bu signature malleability transaction ID signature byte’lariga bog‘langan tizimda muammo yaratadi. Low-S qoidasi canonical variantni tanlaydi. Verifikator r va sning 1..n−1 oralig‘ida ekanini tekshiradi.
Xavfsizlik darajasi
P-256 bilan ECDSA taxminan 128 bit klassik xavfsizlik darajasini ko‘zlaydi. Hash juda qisqa bo‘lsa, umumiy security hash collision qarshiligi bilan cheklanadi. SHA-256 P-256 bilan, SHA-384 P-384 bilan keng ishlatiladi. Xabar hashining curve orderidan uzun qismi standart qoidaga ko‘ra qayta ishlanadi.
ECDSA quantum kompyuterga chidamli emas; Shor algoritmi elliptik egri chiziq diskret logarifmini buzadi. Post-quantum signature’ga migratsiya certificate, firmware update va uzoq umrli artefaktlar uchun crypto-agility talab qiladi. Bugungi implementatsiyada esa constant-time scalar multiplication, HSM va key usage audit asosiy himoyadir.
Bog‘liq tushunchalar
Elliptic Curve Cryptography, Digital signature, Public key, Private key, Nonce, P-256, Signature malleability