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}}}