Shifrlash.
Berilgan xabar M harfi bilan belgilanadi. Shifrtekst esa, C bilan belgilanadi.
Xabar bit ko‘rinishida yozib olinadi (mj, m2,…, mn):
n
(∑ bimi) mod q = c1
i=1
formula yordamida shifrlanadi. Shifrtekst C = {c1, c2, …} ko‘rinishida hosil bo‘ladi.
Shifrni ochish.
C = {cj, c2, ...} ko‘rinishidagi shifrtekstni (r -1ci )mod q = mi
formula yordamida ochiladi. Ochilgan mt larni yig‘ib chiqib, M hosil qilinadi.
R.Merkl tizimni buzib ocha olgan odamga 100 AQSh dollari mukofoti berishini e’lon qildi. 1982 yilda Adi Shamir bu mukofotga sazovor bo‘ldi. U mahfiy kalitga teng bo‘lmagan kalit yasab shifrarni ocha oldi.
Misol.
O‘suvchi ketma-ketlik w = {2, 3, 7, 15}, modul son q=28, q modul bilan o‘zaro tub bo‘lgan r=11, shifrlanadigan matn M=HA so‘zi bo‘lsin.
Shifrlash:
HA so‘zini ASCII jadvali yordamida bit ko‘rinishga o‘tkazamiz: 0100100001000001.
bi= (wi * r) mod q formula orqali normal ketma-ketlik hosil qilamiz: b1 =( w1·r) mod q=(2·11)mod28=22
b2=( w2·r) mod q=(3·11) mod28=5
b=( w3·r) mod q=(7·11) mod28=21 b4=( w4·r) mod q= (15·11) mod 28=25
Ketma-ketlik hadlari 4 ta bo‘lgani uchun matnni 4 bitdan bloklarga ajratamiz: M1 = {m1, m2, m3, m4} = 0100; M1 = {m1, m2, m3, m4} = 1000
M1 = {m1, m2, m3, m4} = 0100; M1 = {m1, m2, m3, m4} = 0001
(∑
n i=1
bimi) modq = c1formula yordamida shifrlaymiz:
4
c 1=(∑ b im i) mod q = (22 ∙ 0 + 5 ∙ 1 + 21 ∙ 0 + 25 ∙ 0 )mod 8 = 5
i=1 4
c 2=(∑ b im i) mod q = (22 ∙ 1 + 5 ∙ 0 + 21 ∙ 0 + 25 ∙ 0 )mod 8 = 5
i=1 4
c 3=(∑ b im i) mod q = (22 ∙ 0 + 5 ∙ 1 + 21 ∙ 0 + 25 ∙ 0 )mod 8 = 5
i=1 4
c 4=(∑ b im i) mod q = (22 ∙ 0 + 5 ∙ 0 + 21 ∙ 0 + 25 ∙ 1 )mod 8 = 5
i=1
5. Shifrtekst hosil bo‘ladi: C = {c 1, c 2, c 3, c 4 } = {5,22,5,25}. Shifrni ochish:
O‘suvchi ketma-ketlik w = {2, 3, 7, 15}, modul son q=28, q modul bilan o‘zaro tub bo‘lgan r=11, C={5, 22, 5, 25} bizga ma’lum.
r sonining q modul bo‘yicha teskarisini topamiz: 11-1mod28= 1111mod28=(11(112 mod 28)5 )mod 28 = (11*95 )mod 28 = (11*9(92 mod 28)2
)mod 28 = (11 * 9 * 25 2 )mod 28 = 23
(r -1C)mod q = formuladan matnni topamiz:
M = (23 • 5) mod 28 = 3=2 • 0 +3-1 + 7 • 0 + 15 • 0, bundan M1 =0100 ekanligini aniqlaymiz.
3. M = (23 • 22) mod 28 = 2=2 -1 +3 • 0 + 7 • 0 + 15 • 0, bundan M 2=1000
ekanligini aniqlaymiz.
4. M = (23 • 5) mod 28 = 3=2 • 0 +3 4 + 7 • 0 + 15 • 0, bundan M3 = 0100
ekanligini aniqlaymiz.
5. M4=(23 • 25) mod 28 = 15 = 2-0+3-0+7-0+15-1, bundan M4=0001 ekanligini aniqlaymiz.
Barcha Mi larni ketma-ket yozib harflarga o‘tiladi: M=0100100001000001 100 0 2 = 48 16 = H 0100 0001 2 = 41 16 = A M = “HA”
Dostları ilə paylaş: |