TARIX
Blowfish -dan oldin mavjud algoritmlar xususiy yoki ishonchsiz edi, ba'zilari esa umuman sir saqlanardi (masalan, Skipjack). Algoritm 1993 yilda Bryus Shnayer tomonidan eski DES va patentlangan IDEAga tezkor va bepul alternativa sifatida ishlab chiqilgan. Muallifning so'zlariga ko'ra, Blowfish dizaynining mezonlari quyidagilar edi:
tezlik (32 bitli protsessorlarda shifrlash 26 tsiklni oladi);
soddalik (algoritmni bajarishda xatolik ehtimolini kamaytiradigan oddiy operatsiyalardan foydalanish tufayli);
ixchamlik;
sozlanishi chidamlilik.
ALGORITM TAVSIFI VARIANTLAR
maxfiy kalit K (32 dan 448 bitgacha)
P1-P18 32 bitli shifrlash kalitlari
32 bitli almashtirish jadvallari S1-S4: S1 S1 .. S1 S2 S2 .. S2 S3 S3 .. S3 S4 S4 .. S4
MA'LUM P VA F (X) QATORLI 64 BITLI BLOKLI SHIFRLASH ALGORITMI
Shifrlangan paytda Feistel tarmog'i
BLOWFISH ALGORITMI
2 bosqichga bo'lingan:
Tayyorgarlik - maxfiy kalit yordamida shifrlash kalitlarini yaratish.
K maxfiy kalit yordamida P va S massivlarini ishga tushirish
P1-P18 ni pi mantissa o'n oltilik raqamlaridan tashkil topgan qattiq qatorga boshlash.
XOR operatsiyasi P1da K tugmachasining birinchi 32 biti bilan, P2 ustidan ikkinchi 32 bitli va hokazolarda bajariladi.
Agar K kaliti qisqaroq bo'lsa, u davriy ravishda qo'llaniladi.
Kalitlar va almashtirish jadvallarini shifrlash
64 bitli shifrlash algoritmi, P1-P18 boshlangan kalitlari va S1-S4 almashtirish jadvalidan foydalanib, 64 bitli nol (0x000000000000000000) qatorini shifrlaydi. Natijada P1, P2 ga yoziladi.
P1 va P2 kalitlari va almashtirish jadvallarining o'zgargan qiymatlari bilan shifrlangan. Natija P3 va P4 ga yoziladi.
Shifrlash barcha P1-P18 tugmachalari va S1-S4 almashtirish jadvallari o'zgartirilmaguncha davom etadi.
Qabul qilingan kalitlar va F (x) bilan matnni shifrlash, 64 bitli bloklarga oldindan ajratish. Agar dastlabki matnni aynan 64 bitli bloklarga bo'lishning iloji bo'lmasa, butun sonli bloklardan iborat xabarni tuzish uchun turli xil shifrlash usullari qo'llaniladi. Umumiy talab qilinadigan xotira 4168 bayt: P1-P18: 18 o'zgaruvchi, har biri 32 bit; S1-S4: 32 bitli 4x256 o'zgaruvchilar.
Shifrni ochish shunga o'xshash, faqat P1-P18 teskari tartibda qo'llaniladi.
P-MASSIV VA ALMASHTIRISH JADVALINING DASTLABKI QIYMATINI TANLASH
Pi raqamlarida alohida narsa yo'q. Bu tanlov algoritm bilan bog'liq bo'lmagan ketma -ketlikni boshlashdir, bu algoritmning bir qismi sifatida saqlanishi yoki kerak bo'lganda olinishi mumkin (Pi (raqam)). Shnayer ta'kidlaganidek, "har qanday tasodifiy bitlar e, RAND jadvali yoki tasodifiy hosil qilingan raqamlar bajaradi."
Do'stlaringiz bilan baham: |