Teorema.
Aytaylik,
a
va
b
natural sonlar,
ππ
= EKUB( a ,
ππ
)
boβlsin. U
holda shunday
Ξ±
va
Ξ²
butun sonlar topiladiki
Ξ±
β
a +
Ξ²
β
ππ
=
ππ
tenglik oβrinli boβladi.
Demak, bu algoritm nafaqat ikkita natural sonning EKUBini, balki
yoyilmadagi
Ξ±
va
Ξ²
koeffisentlarni ham topish imkonini berar ekan. Shunisi bilan
ham aslida Yevklid algoritmidan farqlanadi.
Kengaytirilgan Yevklid algoritmiga muvofiq topiladigan
Ξ±
va
Ξ²
butun
sonlar, quyidagi Diafant tenglamasining
Ξ±
β
a +
Ξ²
β
ππ
=
ππ
butun yechimlari hisoblanadi. Bundan RSA algoritmining ochiq kalitiga koβra
maxfiy kalitini hisoblashda foydalanish mumkin. Shu sababli bu algoritm ishlash
qadamlari bilan yaqindan tanishib chiqiladi.
48
Faraz qilaylik,
a
va
b
sonlarning EKUBni topishda quyidagi ketma-ketlik
qaralayotgan boβlsin:
a= b*q
1
+ r
1
r
1
= ax
1
+ by
1;
b = r
1
* q
2
+ r
2
r
2
= ax
2
+ by
2
;
r
1
= r
2
*q
3
+ r
3
r
3
= ax
3
+ by
3
;
β¦β¦β¦β¦β¦β¦. β¦β¦β¦β¦β¦β¦..
r
n-3
= r
n-2
* q
n-1
+ r
n-1
r
n-1
=ax
n-1
+ by
n-1
r
n-2
= r
n-1
* q
n
r
n
=0;
Bu yerda,
x
1
, x
2
,β¦.x
n-1
va
u
1
, u
2
β¦β¦y
n -1
sonlarini topish kerak boβlsin. Bu sonlar quyidagi formula yordamida topiladi:
x
j
= x
j-2
β q
j
x
j-1
va u
j
= y
j - 2
- q
j
y
j-1
bu yerda,
x
-1
=1 , u
-1
=0 , x
0
=0 , u
0
=1.
Kerakli maβlumotlarni quyidagi jadval orqali aniqlash mumkin:
qoldiqlar
boβluvchi
x
U
a
*
x
-1
u
-1
b
*
x
0
y
-1
r
1
r
2
r
3
.
.
.
.
r
n-2
r
n-1
q
1
q
2
q
3
.
.
.
.
q
n-2
q
n-1
x
1
x
2
x
3
.
.
.
.
x
n-2
x
n-1
y
1
y
2
y
3
.
.
.
.
y
n-2
y
n-1
Jadvalning oxirgi ustunida keltirilgan ikki qiymat izlanayotgan alfa va beta
koeffisentlar, yani
Ξ±
= x
n-1
,
Ξ²
= u
n-1
boβladi.
49
Misol
. Yevklid algoritmini qoβllab EKUB (6188,4709) va
Ξ±
,
Ξ²
- qiymatlar
topilsin.
Yevklid algoritmi qadamlariga muvofiq:
6188=4709*1+1479, yaβni r
1
=1479
4709=1479*3+272, yaβni r
2
=272
1479=272*5+119, yaβni r
3
=119
272=119*2+34, yaβni r
4
=34
119=34*3+17, yaβni r
5
=17
34=17*2+0, yaβni r
6
=0
demak,
r
5
=17
soni 6188 va 4709 sonlarining EKUBi deb eβlon kilinadi, yaβni
EKUB (6188, 4709)=17 .
Kengaytirilgan Yevklid algoritmiga koβra:
6188*
Ξ±
+ 4709 *
Ξ²
=17
Ξ±
=?,
Ξ²
=? topilsin:
yuqorida keltirilgan ifodani quyidagicha yozish mumkin:
17=119 β 34*3
34=272 β 119*2
119=1479 β 272*5
272=4709 β 1479*3
1479=6188 β 4709*1
yoki:
17= 119 β 3* (272 β 119*2)=7*119 β 3*272=7* (1479 β 272*5) β 3*272=
=7*1479 - 38*272=7*1479 β 38* (4709 β 1479*3)=121*1479 β 38*4709=
=121* (6188 - 4709) β 38*4709=121*6188 β 159*4709 ,
Yaβni,
6188*121+4709* (- 159)=17; demak,
Ξ±
=121;
Ξ²
= - 159
Javob
:
Ξ±
=121,
Ξ²
= - 159.
50
Misol.
3
β1
ππππππ
7
β‘ π₯π₯
ni topish talab etilgan boβlsin. Yuqorida keltirilgan
algoritmga koβra
7 = 3
β
2 + 1
3 = 1
β
3 + 0
Qoldigβi nolga teng boβlgan tenglikdan oldingi tenglikdan boshlab
quyidagicha teskari yozish amalga oshiriladi:
1 = 7
β
(3
β
2) = 7 + (
β
2
β
3) = 7
β
1 + (
β
2
β
3)
Yuqoridagi tenglikni ikki tomonini modulga (
ππππππ
7)
olinsa quyidagi
tenglikga ega boβlinadi:
οΏ½
(7
β
1)
ππππππ
7 + (
β
2
β
3)
ππππππ
7
οΏ½ππππππ
7
β‘
1
ππππππ
7
yoki
(
β
2
β
3)
ππππππ
7
β‘
1
ππππππ
7
β‘
1
. Ushbu tenglikni
(3
β π₯π₯
)
ππππππ
7
β‘
1
taqqoslash
orqali
π₯π₯
=
β
2
ga tengligini yoki
β
2
ππππππ
7 = 5
ligini topish mumkin. Yaβni,
(3
β
5)
ππππππ
7
β‘
1
tenglikni qanoatlantiradi.
Javob
3
β1
(
ππππππ
7) = 5.
2.3.2. RSA algoritmi
RSA nomi algoritmni yaratuvchilari familiyalarining birinchi harflaridan
olingan (Rivest, Shamir va Adleman). RSA algoritmi modul arifmetikasining
darajaga koβtarish amalidan foydalanishga asoslangan [20].
RSA algoritmida ochiq va shaxsiy kalitlar juftini generasiya qilish uchun
ikkita katta uzunlikdagi
ππ
va
ππ
sonlari tanlanadi va ularning koβpaytmasi
hisoblanadi:
ππ
=
ππ β ππ
. Shundan soβng
ππ
(
ππ
) = (
ππ β
1)
β
(
ππ β
1)
bilan oβzaro tub
boβlgan,
ππ
soni tanlanadi (
ππ
(
ππ
)
funksiya maβnosi quyida keltirilgan). Shundan
soβng
ππ
(
ππ
)
modulda
ππ
sonining teskarisi hisoblanadi va u
ππ
ga teng boβladi.
Shundan soβng, ikkita tub sonlarning (
ππ
va
ππ
) koβpaytmasi
ππ
va
ππππ
= 1
ππππππ
ππ
(
ππ
)
shartni qanoatlantiruvchi
ππ
va
ππ
sonlari mavjud. Shundan soβng,
ππ
va
ππ
lar esdan
chiqariladi (oβchirib tashlanadi).
Bu yerda,
ππ
modul hisoblanib, (
ππ
,
ππ
) ochiq kalit juftini va
ππ
maxfiy kalitni
tashkil etadi. RSA algoritmida shifrlash va deshifrlash modul boβyicha darajaga
51
oshirish asosida bajariladi. RSA algoritmida shifrlash uchun
ππ
xabarni son
koβrinishida ifodalash talab etiladi va
ππ
modul boβyicha
ππ
darajaga koβtariladi, yaβni
πΆπΆ
=
ππ
ππ
ππππππ
ππ
.
S
ni deshifrlash uchun uni
ππ
modul boβyicha shaxsiy kalit
ππ
darajaga
koβtarish talab etiladi:
ππ
=
πΆπΆ
ππ
ππππππ
ππ
.
Boshqacha aytganda RSA algoritmida xabar ochiq kalit bilan shifrlansa va
shaxsiy kalit bilan deshifrlansa,
ππ
=
πΆπΆ
ππ
ππππππ
ππ
=
ππ
ππππ
ππππππ
ππ
tenglik
toβgβriligini isbotlash zarur.
Eyler teoremasi.
Agar
π₯π₯
haqiqiqatdan
ππ
bilan oβzaro tub boβlsa,
π₯π₯
ππ
(
ππ
)
=
1
ππππππ
ππ
boβladi. Bu yerda,
ππ
(
ππ
)
β funksiya,
ππ
dan kichik va u bilan oβzaro tub
boβlgan sonlar miqdorini koβrsatadi. Agar
ππ
soni tub boβlsa,
ππ
(
ππ
) =
ππ β
1
boβladi.
Shuning uchun
ππππ
= 1
ππππππ
ππ
(
ππ
) = 1
ππππππ
(
ππ β
1)(
ππ β
1)
tenglik kabi
yozish mumkin. Mazkur tenglikning toβliq shakli aslida
ππππ
= 1
ππππππ
ππ
(
ππ
) +
ππ
ππ
(
ππ
)
ga teng. Yaβni,
ππππ
koβpaytmani
ππ
(
ππ
)
ga boβlganda
ππ
tadan tegib, bir
qoldiq qolgan. Shuning uchun ushbu tenglikni quyidagicha yozish mumkin:
ππππ β
1 =
ππ
ππ
(
ππ
)
.
Ushbu tengliklardan, RSA algoritmining toβgβri ishlashini tasdiqlash mumkin:
πΆπΆ
ππ
=
ππ
ππππ
=
ππ
(
ππππβ1
)
+1
=
ππ β ππ
ππππβ1
=
ππ β ππ
ππ
ππ
(
ππ
)
=
ππ β
1
ππ
=
ππ
ππππππ
ππ
.
Aytaylik, RSA algoritmida maβlumotni shifrlash va deshifrlash amallarini
tanlab olingan (
ππ
= 11 va
ππ
= 3
) βkattaβ sonlar ustida amalga oshirish talab qilinsin.
Mazkur holda modul
ππ
=
ππ β ππ
= 33
ga teng boβladi va
ππ
(
ππ
) = (
ππ β
1)(
ππ β
1) = 20
ga teng boβladi. U holda shifrlash uchun zarur boβlgan daraja
e
ni (
ππ
= 3
)
ga teng deb olish mumkin. Sababi, 3 soni
ππ
(
ππ
) = 20
bilan oβzaro tubdir. Shundan
soβng, Evklidning kengaytirilgan algoritmi asosida deshifrlash kaliti (
ππ
= 7
)
aniqlanadi. Yaβni,
ππππ
= 3
β
7 = 1
ππππππ
20
. U holda A tomonning ochiq kalit jufti
(
ππ
,
ππ
) = (33,3)
va shaxsiy kaliti esa
ππ
= 7
ga teng.
52
Shundan soβng, A tomon oβzining ochiq kalitini barchaga uzatadi. Biroq,
shaxsiy kalitini maxfiy saqlaydi.
Faraz qilaylik, B tomon A tomonga
ππ
= 15
maβlumotni shifrlab
yubormoqchi. Buning uchun B tomon A tomonning ochiq kaliti juftini
(
ππ
,
ππ
) =
(33,3)
oladi va shifrmatnni quyidagicha hisoblaydi:
πΆπΆ
=
ππ
ππ
ππππππ
ππ
= 15
3
= 3375 = 9
ππππππ
33
va uni A tomonga yuboradi.
A tomon
πΆπΆ
= 9
shifrmatnni deshifrlash uchun shaxsiy kalit
ππ
= 7
dan
foydalanadi:
ππ
=
πΆπΆ
ππ
ππππππ
ππ
= 9
7
= 4782969 = 144938
β
33 + 15 = 15
ππππππ
33
Agar RSA algoritmida kichik tub sonlardan (
ππ
va
ππ
uchun
) foydalanilgan
taqdirda, hujumchi ochik boβlgan
ππ
ni osonlik bilan ikkita tub sonning koβpaytmasi
koβrinishida yozishi mumkin. Shundan soβng, ochiq kalitning ikkinchi qism
ππ
dan
foydalangan holda, shaxsiy kalit
ππ
ni hisoblay oladi. Shuning uchun RSA
algoritmidan amalda foydalanish uchun tanlanuvchi tub sonlar uzunligi kamida 2048
bit boβlishi talab etiladi. Bundan tashqari, RSA algoritmini buzish faqat faktorlash
muammosiga bogβliqligi isbotlanmagan. Boshqacha aytganda, RSA algoritmini
buzishning faktorlash muammosini yechishdan tashqari biror usuli aniqlanmagan.
|