13- amaliy ish Mavzu Ketma-ketliklarni tasodifiylikka tekshiris
SHA algoritm. SHA algoritmda kiruvchi ma’lumotning uzunligi 264 bitdan kichik bo‘lib, xesh qiymat uzunligi 160 bit bo‘ladi. Kiritilayotgan ma’lumot 512 bitlik bloklarga ajratilib qayta ishlanadi.
Xesh qiymatni hisoblash jarayoni quyidagi bosqichlardan iborat:
1-bosqich. To‘ldirish bitlarini qo‘shish. Berilgan ma’lumot uzunligi 512 modul bo‘yicha 448 bilan taqqoslanadigan (ma’lumot uzunligi 448 mod 512) qilib to‘ldiriladi. To‘ldirish hamma vaqt, hattoki ma’lumot uzunligi 512 modul bo‘yicha 448 bilan taqqoslanadigan bo‘lsa ham bajariladi.
To‘ldirish quyidagi tartibda amalga oshiriladi: ma’lumotga 1 ga teng bo‘lgan bitta bit qo‘shiladi, qolgan bitlar esa 0 lar bilan to‘ldiriladi. Shuning uchun qo‘shilgan bitlar soni 1 dan 512 tagacha bo‘ladi.
2- bosqich. Ma’lumotning uzunligini qo‘shish. 1-bosqichning natijasiga berilgan ma’lumot uzunligining 64 bitlik qiymati qo‘shiladi.
3- bosqich. Xesh qiymat uchun bufer initsializatsiya qilish. Xesh funksiyaning oraliq va oxirgi natijalarini saqlash uchun 160 bitlik buferdan foydalaniladi. Bu buferni beshta 32 bitlik A, B, C, D, Ye registrlar ko‘rinishida tasvirlash mumkin. Bu registrlarga 16 lik sanoq sistemasida quyidagi boshlang‘ich qiymatlar beriladi:
A=0x67452301,
B=0xEFCDAB89,
C=0x98BADCFE,
D=0x10325476,
Ye=0xC3D2E1F0.
Keyinchalik bu o‘zgaruvchilar mos ravishda yangi a, b, c, d va e o‘zgaruvchilarga yozib olinadi.
4- bosqich. Ma’lumotni 512 bitlik bloklarga ajratib qayta ishlash. Bu xesh funksiyaning asosiy sikli quyidagicha bo‘ladi:
for (t = 0; t < 80; t++){
temp = (a <<< 5) + ft(b, c, d) + e + Wt + Kt;
e = d; d = c; c = b <<< 30; b = a; a = temp; },
Bu yerda <<< - chapga siklik surish amali. Kt lar 16 lik sanoq sistemasida yozilgan quyidagi sonlardan iborat:
ft(x, y, z) funksiyalar esa quyidagi ifodalar bilan aniqlanadi:
Wtlar kengaytirilgan ma’lumotning512bitlik blokining32bitlik qismbloklaridan quyidagi qoida bo‘yicha hosil qilinadi:
Asosiy sikl tugagandan keyin a, b, c, d va e larning qiymatlari mos ravishda A, B, C, D va E registrlardagi qiymatlarga qo‘shiladi hamda shu registrlarga yozib qo‘yiladi va kengaytirilgan ma’lumotning keyingi 512 bitlik blokini qayta ishlashga o‘tiladi.
5- bosqich. Natija. Ma’lumotning xesh qiymati A, B, C, D va Ye registrlardagi qiymatlarni birlashtirish natijasida hosil qilinadi.
Amaliy qism O penssl kutubxonasidan foydalanish uchun cmd buyrug‘idan foydalaniladi (pusk va R teng bosiladi):
14.3- rasm. Cmd buyrug‘ini ishga tushiriladi