Salsa20 ogimli shifrlash algoritmi va uning kriptotahlili




Download 370,5 Kb.
Pdf ko'rish
bet2/5
Sana22.05.2024
Hajmi370,5 Kb.
#249445
1   2   3   4   5
Bog'liq
To\'lqinov Azizbek 3-mustaqil is kriptogirafiya

Salsa20 ogimli shifrlash algoritmi va uning kriptotahlili. 
Salsa20 - Daniel Bernshteyn tomonidan ishlab chiqilgan oqim shifrlash tizimi 
Algoritm eSTREAM tanlovida taqdim etildi , uning maqsadi pochta tizimlari 
tomonidan uzatiladigan ma'lumotlarni shifrlash uchun Evropa standartlarini yaratish 
edi. Algoritm birinchi profil (yuqori o‘tkazuvchanlikka ega dasturiy ilovalar uchun 
oqim shifrlari) bo‘yicha tanlovda g‘olib chiqdi. 
Salsa20 shifrida quyidagi operatsiyalar qo'llaniladi: 
32 bitli raqamlarni qo'shish; 
bit bo'yicha qo'shish moduli 2 (xor); 
bit siljishi. 
Algoritm 20 tur bilan hash funktsiyasidan foydalanadi . Uning asosiy 
o'zgarishlari AES algoritmiga o'xshaydi . 
Keyinchalik biz so'zni {0,1,…,2 32 −1} to'plamining elementi sifatida ko'rib 
chiqamiz va uni 0x prefiksi bilan o'n oltilik shaklda yozamiz. 
Ikki so'z modulini qo'shish operatsiyasi 2 32 " belgisi bilan belgilanadi. 
+{\displaystyle +}" Eksklyuziv yoki (bit bo'yicha yig'indi) belgisi bilan 


belgilanadi.

{\displaystyle \oplus}»
𝑐
{\displaystyle c}- bit tsiklik chap so'z siljishi 
𝑢
{\displaystyle u}belgilaymiz 
𝑢

𝑐
{\displaystyle u\lll c}. Agar 
𝑢
{\displaystyle 
u}qanday qilib tasavvur qiling 
𝑢
= ∑
𝑖
=02
𝑖𝑢𝑖
{\displaystyle u=\sum 
_{i=0}2^{i}u_{i}}, Keyin 
𝑢

𝑐
= ∑
𝑖
=02
𝑖
+
𝑐
mod32
𝑢𝑖
{\displaystyle u\lll c=\sum _{i=0}2^{i+c\mod 32}u_{i}}
chorak(y)
Tizimning asosiy bloki transformatsiyadir 
𝑞𝑢𝑎𝑟𝑡𝑒𝑟𝑟𝑜𝑢𝑛𝑑
(
𝑦
){\ displaystyle quarterround(y)}to'rt so'zdan ortiq. Quyida 
tavsiflangan umumiy o'zgarishlar undan qurilgan. 
Uning mohiyati shundan iboratki, biz har bir so'z uchun oldingi ikkitasini 
qo'shamiz, yig'indini ma'lum sonli bitlarga siljitamiz va tanlangan so'z bilan natijani 
bitma-bit yig'amiz. Keyingi operatsiyalar so'zlarning yangi ma'nolari bilan amalga 
oshiriladi. 
Buni taxmin qilaylik 
𝑦
{\displaystyle y} - 4 ta so'z ketma-ketligi 
𝑦
=(
𝑦
0,
𝑦
1,
𝑦
2,
𝑦
3) 
{\displaystyle y=(y_{0},y_{1},y_{2},y_{3})}keyin funksiya 
𝑞𝑢𝑎𝑟𝑡𝑒𝑟𝑟𝑜𝑢𝑛𝑑
(
𝑦
)=(
𝑧
0,
𝑧
1,
𝑧
2,
𝑧
3) 
{\displaystyle quarterround(y)=(z_{0},z_{1},z_{2},z_{3})}Qayerda 
𝑧
1=
𝑦
1

((
𝑦
0+
𝑦
3)

7),{\displaystylez_{1}=y_{1}\oplus ((y_{0}+y_{3})\lll 
7),} 
𝑧
2=
𝑦
2

((
𝑧
1+
𝑦
0)

9),{\displaystyle z_{2}=y_{2}\oplus ((z_{1}+y_{0})\lll 
9),} 
𝑧
3=
𝑦
3

((
𝑧
2+
𝑧
1)

13),{\displaystyle z_{3}=y_{3}\oplus ((z_{2}+z_{1})\lll 
13),}
𝑧
0=
𝑦
0

((
𝑧
3+
𝑧
2)

18).{\displaystyle z_{0}=y_{0}\oplus ((z_{3}+z_{2})\lll 
18).}
Masalan: 
choraklik(0x00000001; 0x00000000; 0x00000000; 0x00000000) 
= (0x08008145; 0x00000080; 0x00010200; 0x20500000) 
Siz bu funktsiyani y 0 , y 1 , y 2 va y 3 so'zlarining transformatsiyasi deb 
hisoblashingiz mumkin . Ushbu o'zgarishlarning har biri, xuddi butun funktsiya 
kabi, qaytariladi. 


rowround(y) 
𝑦
=(
𝑦
0
𝑦
1
𝑦
2
𝑦
3
𝑦
4
𝑦
5
𝑦
6
𝑦
7
𝑦
8
𝑦
9
𝑦
10
𝑦
o'n bir 
𝑦
12
𝑦
13
𝑦
14
𝑦
15) 
{\displaystyle 
y={\begin{pmatrix}y_{0}&y_{1}&y_{2}&y_{3}\\y_{4}&y_{5}&y_{6}&y_{7}\
\y_{8 
}&y_{9}&y_{10}&y_{11}\\y_{12}&y_{13}&y_{14}&y_{15}\end{pmatrix}}} 

Download 370,5 Kb.
1   2   3   4   5




Download 370,5 Kb.
Pdf ko'rish

Bosh sahifa
Aloqalar

    Bosh sahifa



Salsa20 ogimli shifrlash algoritmi va uning kriptotahlili

Download 370,5 Kb.
Pdf ko'rish