Topshiriq
OpenSSL кутубхонасидан foydalanib RSA shifrlash algoritmi bajarilsin Nazorat savollari
RSA algoritmidaEylerfunksiyasinitushuntiribbering
RSA algoritmiasosinimadaniborat.
Nima sabadan Ochiq kalitli shifrlash algoritmlarida kalitlarni taqsimlash muammosi mavjud emas.
2- amaliy ish
Mavzu: Faktorlash muammosini bartaraf etuvchi dasturiy vositani ishlab chiqish.
Ishdan maqsad: Faktorlash muammosini bartaraf etish chora tadbirlari to’g’risida nazariy va amaliy ko‘nikmalarga ega bo‘lish.
Nazariy qism
Faktorlash sonini tub koʼpaytuvchilarga ajratish jarayoni. Masalan,
.Faktorlash murakkab hisoblashga ega vazifa sanaladi. Kriptografiyada RSA shifrlash algoritmida, elleptik egri chiziqlarda va kvant kriptografiyasida qoʼllaniladi. Faktorlash murakkablik darajasiga koʼra ikki turga ajratiladi: Eksponent va subeksponent.Экспонент алгоритмлар yoki nihisoblash murakkabligiga asoslanadi. Bu yerda, faktorlanadigan sonini 1 dan gacha ketma-ket boʼlish talab etiladi. Odatda tub sonlar jadvali olinadi va katta sonlarni ( gacha) tekshirish amalga oshiriladi. Juda katta sonlarda qoʼllanilishi hisoblash tezligini pasayishiga olib keladi. Yuqorida keltirilgan Boʼluvchilarni tahmin qilish usuli, Ferma, Pollard, Lenstr, Leman va boshqa shu kabi usullarni keltirish mumkin va ular asosida faktorlash muammosini yechish mumkin.
Ferma usuli. Quyidagi teorema tub ko‘paytuvchilarga ajratish algoritmini ifodalaydi hamda berilgan sonning tub ekanligini aniqlash imkonini beradi.
Теорема.Aytaylik, n >1 toq son. Bu son murakkab son bo‘ladi faqat va faqat
p,q z+bo’lib, n = p2 – q2=(p-q)*(p+q)bo‘lsa. Bu yerda p- q >1 .
Ferma usulining mohiyati shundan iboratki, teorema natijasiga ko‘ra p,q z+ sonlar topish sonlar topish kerakki,
n = p 2 – q 2 ; p 2 = n+ q 2 ёки q 2 = n + p 2
bajarilsin.
Agar p 2 = n+ q 2 , q =1,2,3…….
qiymatlar uchun n+ q 2 -son biror sonning to‘la kvadratidan iborat bo‘lmasa, u xolda
q=(n-1)/2 qiymatuchunn+q2 -ni tekshirib ko’riladi va biror sonning kvadrati iborat bo’lsa. U holda n – tub son bo’adi.
Misol. n =527 soni tub yoki tub emasligi aniqlansin.
q
|
n+ q2
|
1
|
527+1=528
|
2
|
527+4=531
|
3
|
527+9=536
|
4
|
527+16=543
|
5
|
627+25=552
|
6
|
527+36=563
|
7
|
527+49=576=242
|
Demak, q = 7 uchun
n+ q2 =242
soni tub yoki tub emasligi aniqlansin
527=242 -72 =(24-7)*(24+7) = 17*31.
Natija.Umumanolganda
q =1,2,3……. (n -1)/2 =(527-1)/2 =263
qiymatgacha yetib borishi har doim ham shart emas ekan.
Yuqorida bayon etilgan usulni quyidagi ikkinchi tenglama ko‘rinishda ham olish mumkin edi, ya'ni q 2 = p 2 - n , р = m, m+1,..........
bu yerda m, soni sifatida quyidagi m2 n shartni kanoatlantiruvchi eng kichik butun sonni olamiz. Shu tartibda (p 2 - n) –soni, р = m, m+1,..........
qiymatlar uchun hisoblaymiz, toki (p 2 - n) –sonqandaydir sonning to‘lik kvadrati bo‘lmaguncha. Агар р= (n +1)/2 qiymatgacha (p 2 - n) –son biror sonning to‘liq kvadratidan iborat bo‘lmasa, u holda n – tub son bo’ladi.
Pollard usuli. Ushbu usul Ro-algoritmyoki –algoritm nomlari bilan ham keng tarqalgan. Faktorlash muammosini yechishda takrorlanuvchi funksiya ketma-ketligidagi sikllarga va tugʼilgan kun paradoksiga asoslanadi. U ikki sonning koʼpaytmasidan tashkil topgan sonlarning faktorlash muammosini yechishda samarali. Uning murakkabligi orqali baholanadi –algoritm sonlardan iborat ketma-ketlikni tashkil etadi va qaysidir sonidan boshlab siklni hosil qiladi. Hosil boʼlgan sikl koʼrinishida boʼlganligi uchun –algoritm deb nomlanadi (2.1-расм.)
2.1-rasm. –algoritmko’rinishi
Misol. 8051sonini –algoritmasosidafaktorlashmuammosiniyechish.
asosida
, ,
|
i
|
|
|
|
1.
|
5
|
26
|
1
|
2.
|
26
|
7474
|
1
|
3.
|
677
|
871
|
97
|
asosida
, ,
|
I
|
|
|
|
1.
|
7
|
52
|
1
|
2.
|
52
|
1442
|
1
|
3.
|
2707
|
778
|
1
|
4.
|
1442
|
3932
|
83
|
Demak, va sonlari 8051 soniningumumiybo’luvchilari;-Algoritm nihisoblaydi, agaruningqiymatitubsonbo’lmasa, hisoblashdavometadi.
Subeksponent algoritmlar belgili murakkablikka asoslangan.
.
Bu yerda, – fatorlash talab etiladigan son, va – konstanta. Misol sifatida Dikson algoritmini keltirish mumkin. Ushbu algoritm tenglikdan va sonlarini hisoblashga qaratilgan. Bu yerda, .
Kvadrat elak usuli (QSA)ham katta sonlarni faktorlash muammosini yechishga qaratilgan. U katta sonini gacha bo’lgan oraliqda tub kupaytuvchilarga ajratishda qoʼllaniladigan va 100 ta oʼnlik sonlardan iborat katta sonlar uchun eng tezkor usul sanaladi. Аlgoritm ikki bosqichda amalga oshiriladi:1-bosqich. Maʼlumotlarni toʼplash. Ikki sonning kvadrati koʼrinishiga keltiriladigan sonlarni ajratib oladi.2-bosqich. Maʼlumotlarni qayta ishlash. Barcha sonlarni matritsaga joylashtiradi va ikki sonning kvadrati koʼrinishidagi sonlarni olish uchun qayta ishlaydi.
Birinchi bosqichni parallel hisoblash elementlari asosida oson hisoblashga erishish mumkin. Аmmo, ikkinchi bosqichni parallel hisoblashga keltirish murakkab. Shuning uchun uni hisoblash uchun koʼp xotira talab etiladi.
Shunday ixtiyoriy sonni topish kerakki, uni kvadratini hisoblaganimizda va soniga boʼlganimizdagi qoldiq yana qaysidir sonning kvadrati koʼrinishida shakllanishi lozim. . Uning davomi quyidagi koʼrinishda ifodalanadi: .
Bu yerda, – fakotrlash muammosi yechiladigan son.
Do'stlaringiz bilan baham: |