DSA

testwikidan olingan
2025-yil 21-yanvar, 10:06 dagi imported>MrKrasav4ik versiyasi
(farq) ←Avvalgi koʻrinishi | Hozirgi koʻrinishi (farq) | Yangiroq koʻrinishi→ (farq)
Navigatsiya qismiga oʻtish Qidirish qismiga oʻtish

DSAelektron imzo yaratish uchun shaxsiy kalitdan kriptografik algoritm, lekin shifrlash uchun emas . Imzo yashirincha (maxfiy kalit bilan) yaratiladi, lekin uni ommaviy ravishda tekshirish mumkin (ommaviy kalit bilan). Bu shuni anglatadiki, faqat bitta subyekt xabar imzosini yaratishi mumkin, ammo har kim uning toʻgʻriligini tekshirishi mumkin. Algoritm chekli sohalarda logarifmlarni olishning hisoblash murakkabligiga asoslangan. Algoritm 1991-yil avgust oyida Milliy standartlar va texnologiyalar instituti (AQSh) tomonidan taklif qilingan va patentlangan Andoza:Sfn , NIST ushbu patentni royaltisiz foydalanish uchun taqdim etgan. DSA <b id="mwGg">DSS</b> ning bir qismidir Raqamli imzo standarti – birinchi marta 1998-yil 15-dekabrda nashr etilgan raqamli imzo standarti. Standart bir necha marta yangilangan Andoza:Sfn Andoza:Sfn, eng oxirgi versiyasi FIPS-186-4 Andoza:Sfn (2013-yil iyul).

Algoritmning tavsifi

DSA operatsiyasining tasviri

DSA ikkita algoritmni (S, V) oʻz ichiga oladi: xabar imzosini yaratish (S) va uni tekshirish uchun (V) iborat. Yana bir qancha qoʻshimchalar mavjud. Ikkala algoritm ham birinchi navbatda kriptografik hash funktsiyasidan foydalangan holda xabarning xeshini hisoblab chiqadi. Algoritm S imzo yaratish uchun xesh va shaxsiy kalitdan foydalanadi, V algoritmi imzoni tekshirish uchun xabar xeshi, imzo va ochiq kalitdan foydalanadi. Yaʼni barchasi umumlashgan holda ishlaydi. Shuni taʼkidlash kerakki, aslida imzolangan xabar emas, balki uning xeshi (160 – 256 bit), shuning uchun toʻqnashuvlar muqarrar va bitta imzo, umuman olganda, bir xil xeshli bir nechta xabarlar uchun amal qiladi. . Shuning uchun, etarlicha „yaxshi“ hash funktsiyasini tanlash butun tizim uchun juda muhimdir. Standartning birinchi versiyasida SHA-1 xesh funktsiyasi ishlatilgan Andoza:Sfn Andoza:Sfn , soʻnggi versiyada siz SHA-2 oilasining istalgan algoritmidan ham foydalanishingiz mumkin Andoza:Sfn Andoza:Sfn . 2015-yil avgust oyida yangi SHA-3 xesh funksiyasini tavsiflovchi FIPS-202 Andoza:Sfn nashr etildi. Tizim ishlashi uchun muallifning haqiqiy maʼlumotlari (bu jismoniy shaxs yoki tashkilot boʻlishi mumkin) va ochiq kalitlar, shuningdek elektron raqamli imzo sxemasining barcha kerakli parametrlari .

Raqamli imzo sxemasi imkoniyatlari

Elektron raqamli imzo tizimini yaratish uchun siz quyidagi bosqichlarni bajarishingiz kerak. Albatta ketma ketlikda:

  1. H(x) kriptografik xesh funksiyasini tanlash.
  2. Bitlardagi N oʻlchami H(x) xesh funktsiyasining bitlardagi oʻlchamiga toʻgʻri keladigan q tub sonini tanlash.
  3. (p-1) q ga boʻlinadigan p tub sonni tanlash. p ning bit uzunligi L bilan belgilanadi.
  4. g raqamini tanlash (g1) shundayki, uning koʻpaytma tartibi moduli p q ga teng. Uni hisoblash uchun siz formuladan foydalanishingiz mumkin g=h(p1)/qmodp, bu yerda h – ixtiyoriy son, h(1;p1) shu kabi g1 . Aksariyat hollarda h = 2 qiymati bu talabni qondiradi. Andoza:Sfn

Yuqorida aytib oʻtilganidek, raqamli imzo sxemasining birinchi parametri kriptografik xesh funktsiyasidan foydalaniladi, bu xabar matnini imzo hisoblangan raqamga aylantirish uchun zarurdir. DSS standartining birinchi versiyasi SHA-1 funksiyasini Andoza:Sfn tavsiya qildi va shunga mos ravishda imzolangan raqamning bit uzunligi 160 bit Andoza:Sfn Andoza:Sfn . Standart L va N raqamlari uchun quyidagi mumkin boʻlgan qiymat juftlarini belgilaydi:

  1. L = 1024, N = 160
  2. L = 2048, N = 224
  3. L = 2048, N = 256
  4. L = 3072, N = 256

Ushbu standart SHA-2 xesh funktsiyalari oilasini tavsiya qiladi. AQSh hukumati tashkilotlari dastlabki uchta variantdan birini qoʻllashi kerak; CAlar abonentlar ishlatadigan juftlikka teng yoki undan yuqori boʻlgan juftlikdan foydalanishlari kerak Andoza:Sfn . Tizim dizayneri istalgan yaroqli xesh funksiyasini tanlashi mumkin. DSA-ga asoslangan kriptotizimning kuchi ishlatiladigan xesh funktsiyasining kuchidan va juftlikning (L, N) kuchidan oshmaydi, ularning kuchi alohida raqamlarning har birining kuchidan katta emas. Hozirgi vaqtda 2010 yilgacha (2030 yilgacha) chidamli boʻlishi kerak boʻlgan tizimlar uchun tavsiya etilgan uzunlik 2048 (3072) bitni tashkil qiladi. Andoza:Sfn Andoza:Sfn

Umumiy va shaxsiy kalitlar

  1. Yashirin kalit – bu raqam x(0,q)
  2. Ochiq kalit formuladan foydalanib hisoblanadi y=gxmodp

Umumiy parametrlar raqamlardir (p, q, g, y) . Faqat bitta shaxsiy parametr mavjud – x raqami. Bunday holda, raqamlar (p, q, g) foydalanuvchilar guruhi uchun umumiy boʻlishi mumkin va x va y raqamlari mos ravishda maʼlum bir foydalanuvchining shaxsiy va ochiq kalitlari hisoblanadi. Xabarga imzo qoʻyishda x va k maxfiy raqamlari qoʻllanadi. (p, q, g) bir nechta foydalanuvchilar uchun ishlatilishi mumkinligi sababli, baʼzi bir mezonlarga koʻra bir xil (p, q, g) guruhlarga boʻlinadi.

Xabar imzosi

Xabar quyidagi algoritm Andoza:Sfn yordamida imzolanadi :

  1. Tasodifiy raqamni tanlash k(0,q)
  2. Hisoblash r=(gkmodp)modq
  3. Agar boshqa k ni tanlash r=0
  4. Hisoblash s=k1(H(m)+xr)modq
  5. Agar boshqa k ni tanlash s=0
  6. Imzo juftlikdir (r,s) umumiy uzunligi 2N

Hisoblash jihatidan murakkab operatsiyalar koʻrsatkich moduli (hisoblash gkmodp), ular uchun tezkor algoritmlar mavjud, xeshni hisoblash H(x), bu yerda murakkablik tanlangan xesh algoritmiga va kirish xabarining oʻlchamiga va teskari elementni topishga bogʻliq.

Imzoni tekshirish

Imzoni tekshirish algoritmga muvofiq amalga oshiriladi Andoza:Sfn :

1 Funksiyani hisoblashda w=s1modq formulada
2 Funksiyani Hisoblashda u1=H(m)wmodq formulada
3 Funksiyani  Hisoblashda u2=rwmodq formulada
4 Funksiyani Hisoblash v=(gu1yu2modp)modq formuladan ko`pincha foydalaniladi.
5 Imzo to'g'ri bo'lsa v=r

Hisoblab chiqish jihatidan murakkab funksiyalarni tekshirganda, bu ikkita eksponentatsiya gu1yu2, xeshni hisoblash H(x) va teskari qismni topish s1modq . Bu funksiyalar oʻzi muhim.

Sxemaning toʻgʻriligi

Ushbu elektron raqamli imzo sxemasi shu darajada toʻgʻri boʻladiki, imzoning haqiqiyligini tekshirishni istagan har bir kishi haqiqiylik holatida har doim ijobiy natija oladi. Bunda chiqishi mumkin emas. Chunki bular shaxsiydir. Keling, buni koʻrsatamiz:Birinchidan, agar g=h(p1)/qmodp, gq=hp1=1modp . g >1 va q tub son ekan, u holda g q moduli p ning koʻpaytma tartibida. Xabar imzosi uchun u hisoblanadi

s=k1(H(m)+xr)modq.

Shuning uchun

k=H(m)s1+xrs1=H(m)w+xrwmodq.

g q tartibli boʻlgani uchun biz olamiz

gk=gH(m)wmodqgxrwmodq=gH(m)wmodqyrwmodq=gu1yu2modp.

Nihoyat, DSA sxemasining toʻgʻriligi shundan kelib chiqadi

r=(gkmodp)modq=(gu1yu2modp)modq=v.Andoza:Sfn

Ishga misol

Xesh qiymati bizning xabarimizning funktsiyasi boʻlsin H=9 .

Parametrlarni yaratish

  1. H=910=10012
  2. hash uzunligi 4, bu siz tanlashingiz mumkin degan maʼnoni anglatadi q=1110=10112
  3. tanlaylik p=23, chunki 231=22=2*q
  4. tanlaylik g=22=4

Kalitlarni yaratish

  1. maxfiy kalit sifatida biz tanlaymiz x=7
  2. keyin umumiy kalit y=gxmodp=47mod23=16384mod23=(71223+8)mod23=8

Xabar imzosi

  1. tanlaylik k=3
  2. Keyin r=(gkmodp)modq=(43mod23)mod11=7
  3. r0, davom etishga ruxsat
  4. s=k1(H(m)+xr)modq=4(9+77)mod11=1, bu hisobga olinadi 31mod11=4
  5. s0, davom etishga ruxsat
  6. imzo juft raqamlardan iborat (r,s)=(7,1)
  1. w=s1modq=11mod11=1
  2. u1=H(m)wmodq=91mod11=9
  3. u2=rwmodq=71mod11=7
  4. v=(gu1yu2modp)modq=(4987mod23)mod11=7
  5. tushundim v=r, keyin imzo toʻgʻri.

Analoglar

DSA algoritmi diskret logarifmlarni hisoblash qiyinligiga asoslanadi va klassik El-Gamal sxemasining Andoza:Sfn modifikatsiyasi boʻlib, bu yerda xabar xeshlash qoʻshiladi va barcha logarifmlar quyidagi tarzda hisoblanadi. modq, bu sizga analoglarga nisbatan imzoni qisqartirish imkonini beradi . U GOST R 34.10-2012 standarti bilan almashtirildi [13], bu elliptik egri nuqtalar guruhidan foydalanadi. Shunga oʻxshash modifikatsiya, yaʼni. Koʻpaytma guruhi modulidan tub sondan elliptik egri chiziqning nuqtalar guruhiga oʻtish DSA – ECDSA Andoza:Sfn uchun ham mavjud . U, masalan, bitcoin kriptovalyutasida tranzaktsiyalarni tasdiqlash uchun ishlatiladi. Ushbu tarjima xavfsizlikni buzmasdan kalitlarning hajmini qisqartirish imkonini beradi – bitkoin tizimida shaxsiy kalitning oʻlchami 256 bit, mos keladigan ochiq kalit esa 512 bit. Yana bir umumiy ochiq kalit algoritmi, RSA (mualliflar nomi bilan atalgan: Rivest, Shamir, Adleman) katta raqamlarni faktoring qilish qiyinligiga asoslangan.

Kriptografik kuch

Algoritmga qilingan har qanday hujumni quyidagicha taʼriflash mumkin: buzgʻunchi barcha ochiq imzo parametrlarini va maʼlum bir juftlik toʻplamini oladi va ushbu toʻplamdan foydalanib, yangi imzo yaratishga urinadi. Ushbu hujumlarni ikki guruhga boʻlish mumkin – birinchidan, tajovuzkor maxfiy kalitni tiklashga harakat qilishi mumkin x, va keyin u darhol istalgan xabarni imzolash imkoniyatini qoʻlga kiritadi, ikkinchidan, u maxfiy kalitni toʻgʻridan-toʻgʻri tiklamasdan yangi xabar uchun haqiqiy imzo yaratishga harakat qilishi mumkin. Bu havfsizlik parametrlarini buzadi. Imzonoi buzib kirish imkoni paydo boʻladi.

Tasodifiy parametrni bashorat qilish

k tizim xavfsizligi uchun juda muhim. Agar bir nechta ketma-ket parametr bitlari maʼlum boʻlsa k bir qator imzolar uchun, keyin maxfiy kalit yuqori koeffitsiyent bilan tiklanishi mumkin. Andoza:Sfn Kalit yoʻqolgan taqdirda tiklash imkonini beradi. Ikkita xabar uchun parametrni takrorlash tizimni oddiy buzishga olib keladi. Android uchun bitcoin tizimining baʼzi ilovalarida tajovuzkor hamyonga kirish huquqiga ega boʻlishi mumkin. Andoza:Sfn Andoza:Sfn Ikkala misolda ham ECDSA tizimi Andoza:Sfn ishlatilgan. Agar ikkita xabar uchun m1,m2 Xuddi shu parametr ishlatilgan k, keyin ularning imzolari (r,s) xuddi shunday boʻladi r, lekin boshqacha s, keling, ularni chaqiramiz s1,s2 . Algaritmlarda toʻgʻri foydalana bilish kerak. Uning s1 , s2 funksidan foydalanish

uchun ifodasidan s umumiy ifodalanishi mumkin k :

k=(H(m)+xr)s1modq .

Va umumiy miqdorni tenglashtiring k turli xabarlar uchun:

(H(m1)+xr)s11modq=(H(m2)+xr)s21modq

Bu yerdan maxfiy kalitni ifodalash oson x :

x=H(m1)s11H(m2)s21r(s21s11)

Ekzistensial soxtalashtirish

Baʼzi raqamli imzo algoritmlari mavjud soxtalik bilan hujum qilishi mumkin. Gap shundaki, imzo uchun faqat umumiy parametrlardan foydalangan holda toʻgʻri xabarni yaratish mumkin (ammo bu odatda mantiqiy emas). DSA sxemasi imzosi uchun r=geymodpmodq, s=r har qanday vaqtda e xash bilan xabar uchun toʻgʻri H(m)=es . Mos kelishi mumkin. Agar xesh funktsiyasi toʻgʻri tanlangan boʻlsa, DSA algoritmi ushbu hujumdan himoyalangan, chunki kriptografik xesh funktsiyasi teskari k topish m shu kabi H(m)=k) hisoblash jihatidan murakkab masala. Andoza:Sfn

Kalitni tiklash

Imzoning amal qilish sharti boshqa shaklda qayta yozilishi mumkingksmodpmodq=gH(m)+xrmodpmodq bu tenglama ekvivalent

H(m)modq=ksxrmodq Bu shuni anglatadiki, kalitni tiklash uchun buzuvchi shakldagi tenglamalar tizimini hal qilishi kerak deb taxmin qilishimiz mumkin. H(mi)modq=kisixrimodq lekin bu tizimda nomaʼlum x va tamom ki, yaʼni nomaʼlumlar soni tenglamalardan bitta koʻp va har qanday uchun x boʻladi ki, tizimni qondirish. q katta tub son boʻlgani uchun tiklash uchun xmodq eksponensial sonli juftlik (xabar, imzo) talab qilinadi. Andoza:Sfn Juftliklar boʻlmagan taqdirda tizimga kirish uchun qayta tiklash parametrlari mos kelmaydi. Shuning uchun bularga katta eʼtibor qaratish kerak.

Imzoni qalbakilashtirish

Siz maxfiy kalitni bilmasdan imzo soxtalashtirishga harakat qilishingiz mumkin.rsmodpmodq=gH(m)yrmodpmodq nisbatan r Va s . Har bir oʻzgarmas uchun r tenglama diskret logarifmni hisoblashga teng. Andoza:Sfn Huddi s kabi hisoblash.

Algoritmni amalga oshirishni tekshirish tizimi

Litsenziya shartlari algoritmni dasturiy va apparat vositalarida amalga oshirish imkonini beradi. NIST DSAVS ni yaratdi Andoza:Sfn. DSAVS har bir tizim komponentini boshqalardan mustaqil ravishda tekshiradigan bir nechta muvofiqlik test modullaridan iborat. Sinov qilingan amalga oshirish komponentlari:

  1. Domen parametrlarini yaratish
  2. Domen parametrlari tekshirilmoqda
  3. Ommaviy-xususiy kalitlar juftligini yaratish
  4. Imzo yaratish
  5. Imzoni tekshirish

Amalga oshirishni tekshirish uchun ishlab chiquvchi CMT laboratoriyasida uning bajarilishini sinab koʻrish uchun ariza topshirishi kerak .

Bosh sonlarni hosil qilish

DSA algoritmi ikkita tub sonni talab qiladi (𝑝 Va 𝑞), shuning uchun tub yoki psevdo tub sonlar generatori kerak.tub sonlarni hosil qilish uchun Shou-Teylor algoritmidan foydalaniladi Andoza:Sfn . Psevdoprimalar xesh funksiyasi yordamida yaratiladi va birlamchilikni tekshirish uchun Miller-Rabin probabilistik testidan foydalaniladi. Andoza:Sfn Kerakli takrorlashlar soni ishlatilgan raqamlarning uzunligiga va tekshirish algoritmiga bogʻliq Andoza:Sfn . Yaʼni barcha algoritmlar bir biriga bogʻliq:

variantlari Faqat M-R testi MR testi + Luka testi
p: 1024 bit

q: 160 bit

xatolik ehtimoli 280

40 p: 3

s: 19

p: 2048 bit

q: 224 bit

xatolik ehtimoli 2112

56 p: 3

s: 24

p: 2048 bit

q: 256 bit

xatolik ehtimoli 2112

56 p: 3

s: 27

p: 3072 bit

q: 256 bit

xatolik ehtimoli 2128

64 p: 2

s: 27

Tasodifiy raqamlarni yaratish

Algoritm tasodifiy yoki psevdo-tasodifiy raqamlar generatorini ham talab qiladi. Ushbu generator shaxsiy foydalanuvchi kalitini yaratish uchun kerak boʻladi x va s . Standart blokli shifrlar yoki xesh funksiyalari yordamida psevdor tasodifiy raqamlarni yaratishning turli usullarini taklif qiladi. Andoza:Sfn Andoza:Sfn Har bir usul universal boʻlishi mumkin.

Manbalar

Andoza:Manbalar

Adabiyot

Standartlar va patentlar

  • FIPS. PUB 186-1 (angl.).
  • FIPS. PUB 186-2 (angl.).
  • FIPS. PUB 186-3 (angl.).
  • FIPS. PUB 186-4 (angl.).
  • FIPS. PUB 180-4 (angl.). Arxivirovano 26 noyabrya 2016 goda.
  • FIPS. PUB 202 (angl.).
  • FIPS. PUB 202 (angl.).
  • David W. Kravitz. Digital signature algorithm 5231668 A (angl.).
  • NIST Special Publication 800-57 Part 1Revision 4. Recommendation for Key Management (angl.).
  • GOST R 34.10-2012. Informatsionnie texnologii. Kriptograficheskaya zaщita informatsii. Protsessi formirovaniya i proverki elektronnoy sifrovoy podpisi (rus.).
  • The Digital Signature Algorithm Validation System (angl.).

Maqolalar

  • Marc Stevens, Pierre Karpman, Thomas Peyrin. Freestart collision for full SHA-1 (angl.).
  • NIST Special Publication 800-90A Recommendation for Random Number Generation Using Deterministic Random Bit Generators (angl.).
  • J. Shawe-Taylor. Generating strong primes (angl.).
  • Xiaoyun Wang, Yiqun Lisa, Hongbo Yu. Finding Collisions in the Full SHA-1 (angl.).
  • Phong Q. Nguyen, Igor E. Shparlinski. The Insecurity of the Digital Signature Algorithm with Partially Known Nonces (angl.).
  • David Pointcheval, Jacques Stern. Security Arguments for Digital Signatures and Blind Signatures (angl.).
  • Markus Schmid. ECDSA – Application and Implementation Failures (angl.).
  • Don Johnson, Alfred Menezes, Scott Vanstone. The Elliptic Curve Digital Signature Algorithm (ECDSA) 
  • Joppe W. Bos, J. Alex Halderman, Nadia Heninger, Jonathan Moore, Michael Naehrig, Eric Wustrow. Elliptic Curve Cryptography in Practice (angl.).
Andoza:Turkumsiz