TEA blokli shifrlash algoritmi
TEA (Tiny Encryption Algorithm) algoritmi Feystel tarmog’iga
asoslanmagan bo’lsada, sodda va unga o’xshash algoritm. Boshqacha aytganda,
shifrlash va deshifrlash funksiyalari bir-biridan farq qiladi.
TEA algoritmida 64-bit uzunlikdagi ochiq matn bloklari va 128 bitli kalitdan
foydalaniladi. Algoritm 32 bitli so’zlar bilan amallar bajarishga mo’ljallangan va
shuning uchun 𝑆𝑆𝑒𝑒𝑑𝑑232 amalidan foydalaniladi. Ushbu algoritmda raundlar soni
o’zgaruvchan bo’lib, xavfizlik nuqtai nazaridan raundlar soni kamida 32 ga teng
qilib olinishi shart. TEA algoritmining har bir raundi Feystel tarmog’ining ikki
raundiga o’xshash.
Blokli shifrlarni loyihalashda raund funksiyasining murakkabligi va raundlar
soni orasida balans bo’lishi lozim. Masalan, raund funksiyasi sodda bo’lsa, raundlar
soni kamroq yoki aksincha bo’ladi. TEA algoritmi sodda algoritm bo’lgani uchun,
bardoshli bo’lishi uchun raundlar sonini katta tanlash zarur. TEA algoritmining
shifrlash funksiyasi quyida keltirilgan [13].
(𝐾𝐾[0], 𝐾𝐾[1], 𝐾𝐾[2], 𝐾𝐾[3]) = 128 bitli kalit (𝐿𝐿, 𝑋𝑋) = ochiq matn bloki (64 bit)
𝑑𝑑𝑒𝑒𝑒𝑒𝑆𝑆𝑎𝑎 = 0𝑥𝑥9𝑒𝑒3779𝑎𝑎9
𝑠𝑠𝑠𝑠𝑆𝑆 = 0
𝑎𝑎𝑒𝑒𝑆𝑆 𝑆𝑆 = 1 dan 32 gacha
𝑠𝑠𝑠𝑠𝑆𝑆 = 𝑠𝑠𝑠𝑠𝑆𝑆 + 𝑑𝑑𝑒𝑒𝑒𝑒𝑆𝑆𝑎𝑎
𝐿𝐿 = 𝐿𝐿 + (((𝑋𝑋 ≪ 4) + 𝐾𝐾[0])⨁(𝑋𝑋 + 𝑠𝑠𝑠𝑠𝑆𝑆)⨁((𝑋𝑋 ≫ 5) + 𝐾𝐾[1]))
𝑋𝑋 = 𝑋𝑋 + (((𝐿𝐿 ≪ 4) + 𝐾𝐾[2])⨁(𝐿𝐿 + 𝑠𝑠𝑠𝑠𝑆𝑆)⨁((𝐿𝐿 ≫ 5) + 𝐾𝐾[3]))
keyigi 𝑆𝑆
shifrmatn = (𝐿𝐿, 𝑋𝑋)
Bu yerda “≪” amali sonni chapga surish amali va “≫” amali uni o’nga surish
amali hisoblanadi. Masalan, ikkilik ko’rinishdagi bir baytli son “10110101” ga teng
bo’lsa, u holda ushbu sonni chapga 4 birlik surish natijasi “01010000” ga teng
bo’ladi. Ushbu sonni 5 birlik o’nga surish natijasi esa “00000101” ga teng bo’ladi.
TEA algoritmi Feystel tarmog’iga asoslanmagan bo’lsada (Feystel tarmog’ida
shifrlash va deshifrlash funksiyalari bir xil bo’ladi), deshifrlashda XOR amali
o’rniga qo’shish yoki bo’lish amallaridan foydalanilmaydi. TEA algoritmining
deshifrlash funksiyasi quyida keltirilgan.
Ushbu oqimli shifrlash algoritmi GSM mobil aloqa tizimlarida ma’lumotni
konfidensialligini ta’minlash uchun foydalaniladi. Mazkur algoritm algebraik
tuzilishga ega bo’lsada, uni sodda diagramma bilan ham tasvirlash imkoniyati
mavjud.
A5/1 shifrlash algoritmi uchta chiziqli siljitish registrlaridan iborat bo’lib, ular
mos holda 𝑋𝑋, 𝑌𝑌 va 𝑍𝑍 kabi belgilanadi. 𝑋𝑋 registr o’zida 19 bit (𝑥𝑥0, 𝑥𝑥1, … , 𝑥𝑥18), 𝑌𝑌
registr esa 22 bit (𝑦𝑦0, 𝑦𝑦1, … , 𝑦𝑦21) va 𝑍𝑍 registr esa 23 bit (𝑧𝑧0, 𝑧𝑧1, … , 𝑧𝑧22) ma’lumotni
saqlaydi. Uchta registrlarning mazkur o’lchamdagi bitlarni saqlashi bejiz emas.
Sababi, chiziqli siljitish registrlari o’zida jami bo’lib 64 bitni saqlaydi. Shu sababli,
A5/1 shifrlash algoritmida foydalaniluvchi kalit 𝐾𝐾 ning uzunligi 64 bitga teng
bo’ladi va ushbu kalit uchta registrni dastlabki to’ldirish uchun foydalaniladi.
Shundan so’ng, oqimli shifrlash algoritmi talab etilgan uzunlikdagi (ochiq matn
uzunligiga teng bo’lgan) ketma-ketliklarni generasiyalaydi. Ketma-ketliklarni
generasiyalash tartibini o’rganishdan oldin, uchta registrlar haqida ba’zi
ma’lumotlarni bilish talab etiladi.
𝑋𝑋 registr siljigan vaqtida, quyidagi amallar ketma-ketligi bajariladi:
𝑆𝑆 = 𝑥𝑥13⨁𝑥𝑥16⨁𝑥𝑥17⨁𝑥𝑥18
𝑆𝑆 = 18,17,16, … ,1 uchun 𝑥𝑥𝑖𝑖 = 𝑥𝑥𝑖𝑖-1
𝑥𝑥0 = 𝑆𝑆
Shunga o’xshash, 𝑌𝑌 va 𝑍𝑍 registrlar uchun ham quyidagilar bajariladi:
𝑆𝑆 = 𝑦𝑦20⨁𝑦𝑦21
𝑆𝑆 = 21,20,19, … ,1 uchun 𝑦𝑦𝑖𝑖 = 𝑦𝑦𝑖𝑖-1
𝑦𝑦0 = 𝑆𝑆
va 𝑆𝑆 = 𝑧𝑧7⨁𝑧𝑧20⨁𝑧𝑧21⨁𝑧𝑧22
𝑆𝑆 = 22,21,20, … ,1 uchun 𝑧𝑧𝑖𝑖 = 𝑧𝑧𝑖𝑖-1
𝑧𝑧0 = 𝑆𝑆
Berilgan uchta bit 𝑥𝑥, 𝑦𝑦 va 𝑧𝑧 uchun 𝑆𝑆𝑎𝑎𝑚𝑚(𝑥𝑥, 𝑦𝑦, 𝑧𝑧) funksiyasi eng ko’p bitni
qaytaradi. Agar 𝑥𝑥, 𝑦𝑦 va 𝑧𝑧 bitlar 0 ga teng bo’lsa, u holda funksiya 0 ni qaytaradi, aks
holda birni qaytaradi. Funksiyaga kiruvchi bitlar toq bo’lgani uchun, funksiya har
doim 0 ni yoki 1 ni qaytaradi. Boshqa holatlar bo’lmaydi.
A5/1 shifrida, ketma-ketlikning har bir bitini generasiyalash uchun
quyidagilar bajariladi. Dastlab, 𝑆𝑆 = 𝑆𝑆𝑎𝑎𝑚𝑚(𝑥𝑥8, 𝑦𝑦10, 𝑧𝑧10) funksiya qiymati hisoblanadi.
Shundan so’ng 𝑋𝑋, 𝑌𝑌 va 𝑍𝑍 registrlar quyidagicha sijitiladi (yoki siljitilmaydi):
- agar 𝑥𝑥8 = 𝑆𝑆 ga teng bo’lsa, 𝑋𝑋 siljitiladi;
- agar 𝑦𝑦10 = 𝑆𝑆 ga teng bo’lsa, 𝑌𝑌 siljitiladi;
- agar 𝑧𝑧10 = 𝑆𝑆 ga teng bo’lsa, 𝑍𝑍 siljitiladi.
Shundan so’ng, ketma-ketlikning bir biti 𝑠𝑠 quyidagicha generasiyalanadi va
ochiq matn biti bilan XOR amali bajariladi (agar shifrlansa) yoki shifrmatn biti bilan
XOR amali bajariladi (agar deshifrlansa).
𝑠𝑠 = 𝑥𝑥18⨁𝑦𝑦21⨁𝑧𝑧22
Yuqorida keltirilgan ketma-ketlikdagi amallar talab etilgunga qadar
takrorlanadi (ochiq matn yoki shifrmatn uzunligiga teng).
Agar biror registr siljitilsa, uning to’liq holati siljish natijasida o’zgaradi.
Ketma-ketlikning bir bitini hosil qilishda uchta registrdan kamida ikkitasi siljiydi va
shuning uchun yuqoridagi ketma-ketlikni davom ettirgan holda yangi bitlar ketmaketligini hosil qilish mumkin bo’ladi.
A5/1 oqimli shifrlash algoritmi murakkab ko’rinsada, qurilmada amalga
oshirilganida yuqori tezlik qayd etadi. Umumiy holda A5/1 oqimli shifrni 12 -
rasmdagi kabi ifodalash mumkin.
Do'stlaringiz bilan baham: |