aij (i 1,..., n;
j 1,2,3,4; )
bir bayt bilan ifodalanib, ushbu
ij
0 a 255 tengsizlikni qanoatlantiradi;
yn1 y1 , y2 ,..., yn xarakteristikasi 256 bo‘lgan chekli maydonda matritsali
An4 x41 akslantirish natijasini ifodalovchi vektor, ya’ni erda yi baytlar, 0 yi 255, i=1,2,…,n ;
yn4 An4 x41 (mod 256) , bu
ki ,
i 1,...,8; 32-bitli qismkalitlardan iborat bo‘lgan
256-bitli kalit;
- S blok (oldindan aniqlangan qoida bo‘yicha kalitdan generatsiya
qilinuvchi 256-baytli blok, maxfiy) akslantirish, 256 ta iborat bo‘lgan:
S0 , S1 ,..., S255
-baytlardan
jadval, bu erda
0 S1 , S2 ,..., S256 255
, Si
S j , ya’ni
0 Si 255
shartni
qanoatlantiruvchi Si sonlarning tasodifiy joylashuvidan iborat;
bloklar vektorlarining mos bitlarini mod 2 bo‘yicha – XOR amali bilan
qo‘shish;
zn1 z1 , z2 ,..., zn matritsali kengaytirish akslantirishi natijasi bo‘lgan
yn1 y1 , y2 ,..., yn
–vektorni
S blok akslantirishlari natijasi, ya’ni
zn1 Syn1 ,
bu erda zi baytlar, 0 zi 255, i=1,2,…,n;
- ki k1 i k2 i... k32 i 32-bitli i-qismkalit;
- k 1 k ik i...k
i,..., k 4 k ik i...k
i –32-bitli i-qismkalitning to‘rtta
i 1 2 8
bayti;
i 25 26 32
- k pi
k
pik2
pi...k32
pi 32-bitli i-raund kaliti, bu erda pi 1,...,8;
1
kн –64-bitli boshlang‘ich kalit;
kк –64-bitli oxirgi kalit;
f shifrlash funksiyasi;
SJ –siqish jadvali, o‘lchovi 16x16 (maxfiy, kalit bilan birgalikda uzatiladi
yoki oldindan aniqlangan qoida bo‘yicha kalitdan generatsiya qilinadi),
qij -
elementlari
0 qij 15,
i 0,...,15,
j 0,...,15
va teng taqsimlangan:
- w41 =
q00
|
q01
|
…
|
q0,15
|
q10
|
q11
|
…
|
q1,15
|
…
|
…
|
…
|
…
|
q15,0
|
q15,1
|
…
|
q15,15
|
w1 , w2 , w3 , w4 – 32-bitli (4-baytli) vektor, SJ natijasi.
Shifrlashda kalitlarni saqlash qurilmasiga (massiviga) 32-bitli bo‘lgan
sakkizta
ki -qismkalitlardan tashkil topgan 256-bitli
k k1k2 ...k8
-kalit bloki
kiritiladi, ochiq ma’lumot 64-bitli bloklarga ajratilib, har bir T0 -blok 8-raundli
akslantirishlar jarayonidan o‘tkaziladi. Har bir
i raund kaliti
k pi
bitli
ki k1 ik2 i...k32 i-qismkalitni to‘rtta
k (k 1, k 2 , k 3 , k 4 ) k ik
i...k
i, ..., k
ik
i...k
i
baytlarga ajratilib, hosil
i i i i i
1 2 8
25 26 32
bo‘lgan
k 1 ,…, k 4
baytlarni o‘nlik sanoq tizimidagi ( k 1 )10 ,…, ( k 4 )10 -qiymatlari
i
i
i
i
i
bo‘yicha S-blok yacheykalari tartib soni (nomeri) aniqlanadi, hamda, har bir k l -
i 10 ki
aniqlanadi, ya’ni
k
k
k S k1,..., k 4 S k1 ,..., S k 4 ( S ) ,...,( S ) k1 ,..., k 4 .
pi i i i i
1 2 4 2
i i
pi pi
Dastlabki 256-bitli k k1k2 ... k8 -kalit ikki marta SJ akslantirishidan o‘tkazilib,
bitli boshlang‘ich kalit kн hosil qilinadi.
Dastlabki 256-bitli k k1k2 ... k8 -kalit S-blok akslantirishlaridan o‘tkazilib, hosil
bo‘lgan 256-bitli natija ikki marta SJ akslantirishlaridan o‘tkazilib, 64-bitli oxirgi
kalit kк olinadi.
Ochiq ma’lumot bloki T0
mos bitlari boshlang‘ich kalit kн
mos bitlari bilan
XOR amali bo‘yicha qo‘shilib, ya’ni
T0 kн =
' , hosil bo‘lgan natija
T ' , yana T
T
0
0
0
o‘zgaruvchiga berilib T T ' , T ikkita 32-bitli qismlarga ajratiladi:
0 0 0
T0 t1 0,t2 0,..., t32 0,t33 0,..., t64 0 (a1 (0), a2 (0),..., a32 (0), b1 (0), b2 (0),..., b32 (0)) (L0 , R0 )
Birinchi raundda f -funksiya qiymatini hisoblash quyidagicha amalga oshiriladi:
Blok
R0 mos bitlari raund kaliti
kp1 k1 p1 k2 p1... k32 p1
mos bitlari bilan
XOR amali bo‘yicha qo‘shiladi, ya’ni
b1 0 b2 0... b32 0 k1 p1k2 p1...k32 p1=
b1 0 k1 p1 b2 0 k2 p1... b32 0 k32 p1
x1 1 x2 1... x8 1 x1 1 x2 1... x8 1 x1 3 x2 3... x8 3 x1 4 x2 4... x8 4=
x1 , x2 , x3 , x4 x41 ;
Oldingi bosqich natijasi
x41
xarakteristikasi 256 bo‘lgan chekli maydonda
aniqlangan to‘g‘ri to‘rtburchakli matritsa
yn1 An4 x41 mod 256 ;
An4
orqali akslantiriladi:
Baytlari soni n ta bo‘lgan
yn1
-vektorning har bir i - bayti
yi , i=1,…n, S -
blok akslantirishlaridan o‘tkaziladi, bunda
i baytning y
iy2
i...y8
i = y
o‘nlik
sanoq tizimidagi ifodasi
y iy i...y i y
bo‘yicha S –blok yacheykalari
1
2
i
1 2 8 2 i 10
tartib soni aniqlanib,
y iy i...y i = y bayt S-blokning y
-tartib sonli
1 2 8
2 i i 10
yacheykasida turgan
i
S ( y )
soniga almashtirish bilan aniqlanadi, ya’ni:
z Sy Sy iy i...y
i S ;
i i 1 2 8
yi 2
Siqish jadvali SJ bo‘yicha 8 n bitli ( n baytli) vektor
zn1
32 -bitli (4-
baytli) vektorga w41 =
w1 , w2 , w3 , w4 akslantiriladi:
zn1 -vektorning har bir zi baytiyarim baytli qismlarga ajratiladi, ya’ni
n1 1 n
z z ,..., z =z '1 ,..., z '2 n z '2 n1 ;
z'1 va
z '2 n
bloklarning o‘nlik sanoq tizimidagi qiymatlari
z '1
10
10
vaz '2n
bo‘yicha mos ravishda SJ satr va ustun tartib sonlari aniqlanib, ularning
kesishgan joyidagi yarim bayt
q ' '
yarim baytli
z'1 va
z '2n
iborat bo‘lgan
baytni
q z' z'
2 n
z 1 10 z 2 n 10
10
yarim baytga SJ akslantirishi natijasi hisoblanadi. So‘ngra, bu
1 10
jarayon barcha ( z '2 ,
z ' 2n1 ), ( z ' 3 ,
z'2n2 ), …, ( z 'n , z 'n1 ), ya’ni ( z'i ,
z ' 2n(i1) ), bu erda
i=1,…, n; juftliklar uchun qo‘llaniladi;
-oldingi qadamdagi SJ akslantirishi (m-2) marta qo‘llanilib, natijada 32-bitli
(4-baytli)
w41 =
w1 , w2 , w3 , w4
blok olinadi;
To‘la siqish natijasi bo‘lgan
w41 =
w1 , w2 , w3 , w4
vektorning bitlari XOR amali bo‘yicha L0 -blokning mos bitlariga qo‘shiladi:
L0 w41 t1 0t2 0...t32 0 w1 1w2 1...w8 1w1 2...w8 2w1 3...w8 3w1 4...w8 4
0
1
0 p1
p1
L0 f R , k R
R0 –blokning qiymati o‘zgarishsiz
L1 -blokga beriladi:
L1 R0 .
Yuqorida keltirilgan 1-6 –bosqich akslantirishlari e’tiboringizga havola etilayotgan shifrlash algoritmining 1-raund akslantirishlarini ifodalaydi.
Birinchi raund akslantirishlari natijalarini ifodalovchi
L1 va
R1 o‘zgaruvchilar
qiymatlarini mos ravishda
L0 va
R0 o‘zgaruvchilarga berilib, ya’ni
L0 L1 ,
R0 R1
, hamda, birinchi raund kaliti massiviga ikkinchi raund kaliti massivi qiymatini
berib k p1 k p2 , so‘ngra, 1-6 –bosqichlar akslantirishlarini qo‘llab, 2-raund
akslantirishlari amalga oshiriladi. SHunday qilib, agarda (i 1) raund akslantirish
natijalari ma’lum bo‘lsa, ushbu
L0 Li1 ,
R0 Ri1
va k p1 k pi1
amallar bajarilib,
so‘ngra 1-6 –bosqichlar akslantirishlarini qo‘llab, i-raund akslantirishlari amalga oshiriladi. Havola etilayotgan algoritmning raundlari soni 8 ta, ya’ni i=1,2,…,8.
blokning mos bitlariga XOR amali bilan qo‘shiladi, ya’ni
Tк kk
Tш , ochiq
ma’lumotning bitta 64-bitli blokini shifrlash jarayoni tamomlanadi.
Quyida, dastlabki kalitdan raund kalitlarini generatsiya qilish, algoritm
shifrlash jarayonining keltirilgan:
i raundi, hamda, algoritmning umumiy blok sxemasi
i raund kaliti generatsiyasining blok sxemasi
Li (32 bit)=a1(i)a2(i)…a32(i)
Ri (32 bit)= b1(i)b2(i)…b32(i)
b1(i) b2(i) b3(i) … b32(i)
k1(pi+1)k2(pi+1)k3(pi+1)…k32(pi+1)
x1(1)…x8(1) x1(2)…x8(2) x1(3)…x8(3) x1(4)…x8(4)= x4x1
ynx1 =(Anx4 x4x1) mod256
ynx1
n-bayt
S-blok
S0 S1
znx1
n-bayt
1
yarim bayt
1 10
1
2
juftliklarni siqish natijalari olinib, 1-bosqich
siqish amalga oshiriladi. Bu jarayon (m-2) marta takrorlanib, to’la siqishga erishiladi.
w4x14-
bayt
f(Ri,kpi+1)
+
Li+1
Ri+1
Algoritm i-raundining blok sxemasi
Do'stlaringiz bilan baham: |