Axborot xavfsizligi” kafedrasi «Simmetrik kalitli kriptoalgoritmlarning xavfsizliklari tahlili» mavzusida individual loyihasi 2
TEA blokli shifrlash algoritmi TEA (Tiny Encryption Algorithm)
Download 140.35 Kb.
|
kursh ishi 2
- Bu sahifa navigatsiya:
- 16-rasm. CBC rejimida shifrlash natijasi
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 40 (𝐿𝐿, 𝑅𝑅) = 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. (𝐾𝐾[0],𝐾𝐾[1],𝐾𝐾[2],𝐾𝐾[3]) = 128 bitli kalit (𝐿𝐿, 𝑅𝑅) = shifr matn bloki (64 bit) 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 = 0𝑥𝑥9𝑒𝑒3779𝑏𝑏9 𝑠𝑠𝑠𝑠𝑠𝑠 = 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 ≪ 5 𝑓𝑓𝑓𝑓𝑓𝑓 𝑖𝑖 = 1 dan 32 gacha 𝑅𝑅 = 𝑅𝑅 − (((𝐿𝐿 ≪ 4) + 𝐾𝐾[2])⨁(𝐿𝐿 + 𝑠𝑠𝑠𝑠𝑠𝑠)⨁((𝐿𝐿 ≫ 5) + 𝐾𝐾[3])) 𝐿𝐿 = 𝐿𝐿 − (((𝑅𝑅 ≪ 4) + 𝐾𝐾[0])⨁(𝑅𝑅 + 𝑠𝑠𝑠𝑠𝑠𝑠)⨁((𝑅𝑅 ≫ 5) + 𝐾𝐾[1])) 𝑠𝑠𝑠𝑠𝑠𝑠 = 𝑠𝑠𝑠𝑠𝑚𝑚 − 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 keyigi 𝑖𝑖 ochiq matn = (𝐿𝐿, 𝑅𝑅) 41 2.2.5. Blokli shifrlar rejimlari Oqimli shifrlardan foydalanish juda ham sodda – ochiq matn (yoki shifrmatn) uzunligiga teng bo’lgan kalitlar ketma-ketligi generasiya qilinadi va XOR amalida bajariladi. Blokli shifrlardan foydalanish faqat bir blokni shifrlashda oson. Biroq, bir nechta (ko’plab) bloklarni shifrlash qanday amalga oshiriladi? Javob esa, bir qaraganda oson emas. Faraz qilaylik, quyidagi ochiq matn bloklari berilgan bo’lsin: 𝑃𝑃0, 𝑃𝑃1, 𝑃𝑃2, … O’zgarmas kalit 𝐾𝐾 uchun blokli shifr kodlar kitobi hisoblanadi. Sababi, blokli shifrlar ochiq matn bloki va shifrmatn bloki o’rtasida o’zgarmas bog’lanishni yaratadi. Kodlar kitobi kabi foydalaniluvchi blokli shifrlash rejimi bu – elektron kodlar kitobi (Electronic codebook mode, ECB) rejimi. ECB rejimida quyidagi formuladan foydalangan holda ma’lumotlar bloklari shifrlanadi: 𝑖𝑖 = 0,1,2, … lar uchun 𝐶𝐶𝑖𝑖 = 𝐸𝐸(𝑃𝑃𝑖𝑖,𝐾𝐾) Deshifrlash uchun esa quyidagi formuladan foydalaniladi: 𝑖𝑖 = 0,1,2, … lar uchun 𝑃𝑃𝑖𝑖 = 𝐷𝐷(𝐶𝐶𝑖𝑖,𝐾𝐾) Ushbu yondashuv asosida blokli shifrlarni samarali amalga oshirsa bo’ladi. Biroq, mazkur yondashuvda jiddiy xavfsizlik muammosi mavjud. Faraz qilaylik, ECB rejimdan foydalangan holda ma’lumot shifrlandi va tarmoq orqali uzatildi. Uzatish davomida hujumchi ularni tutib oldi va shifrmatn bloklari orasidan ikkitasining bir-biriga tengligini ( 𝐶𝐶𝑖𝑖 = 𝐶𝐶𝑗𝑗) aniqladi. Natijada hujumchi aniqlagan shifrmatn bloklariga mos ochiq matn bloklari ham bir-biriga teng bo’ladi 𝑃𝑃𝑖𝑖 = 𝑃𝑃𝑗𝑗 . Albatta ushbu holat shifrmatnni topish uchun yetarli bo’lmasada, bir shifrmatn blokiga mos kelgan qolgan bloklarni aniqlash imkoniyatini beradi. Bunday hollarda hujumchi haqiqatan 𝑃𝑃𝑖𝑖 yoki 𝑃𝑃𝑗𝑗 ochiq matn bloklarini aniqlay olmasada, unga aloqador ba’zi ma’lumotni oshkor etadi. Mazkur holat grafik orqali tasvirlanganda 15-rasmda ko’rsatilganidek bo’ladi [13]. Boshqacha aytganda, rasmning chap tomonidagi tasvirning o’xshash har bir bloki o’ng qismida ham bir xil shifrmatn blokiga almashgan. Mazkur holda hujumchining 42 shifrmatndan foydalangan holda ochiq matnni bashorat qilishi murakkab vazifa emas.
15-rasm. ECB rejimida ma’lumotni shifrlash natijasi Biroq, ECB rejimida shifrlash va deshifrlash amallarini paralellashtirish imkoniyati mavjud va bu tezkorlikni oshiradi. Bundan tashqari agar shifrmatnni uzatish davomida bloklardan birining o’zgarishi faqat shu blokni natijasiga ta’sir qiladi. Ya’ni, faqat shu blokni o’zi zararlanadi. ECB rejimida mavjud muammolarni bartaraf etgan rejimlardan biri bu - cipher block chaining (CBC) rejimi. CBC rejimida bir blokdan chiqqan shifrmatn keyingi ochiq matnni yashirish uchun foydalaniladi va shundan so’ng shifrlash amalga oshiriladi. Mazkur rejimda shifrlash formulasi quyidagicha: 𝑖𝑖 = 0,1,2, … lar uchun 𝐶𝐶𝑖𝑖 = 𝐸𝐸(𝑃𝑃𝑖𝑖⨁𝐶𝐶𝑖𝑖−1,𝐾𝐾) Deshifrlash funksiyasi esa quyidagicha bo’ladi: 𝑖𝑖 = 0,1,2, … lar uchun 𝑃𝑃𝑖𝑖 = 𝐷𝐷(𝐶𝐶𝑖𝑖,𝐾𝐾)⨁𝐶𝐶𝑖𝑖−1 Birinchi blokni shifrlash uchun undan oldingi shifrmatn bloki bo’lmagani uchun, boshlang’ich vektor deb ataluvchi (initialization vector, IV) 𝐼𝐼𝐼𝐼 dan foydalaniladi va u mantiqiy tomondan 𝐶𝐶−1 ga teng bo’ladi. Shifrmatn bloklari maxfiy saqlanmagani bois unga analog bo’lgan 𝐼𝐼𝐼𝐼 ham maxfiy saqlanmaydi. Biroq, 𝐼𝐼𝐼𝐼 tasodifiy ravishda generasiya qilinishi shart. 𝐼𝐼𝐼𝐼 dan foydalangan holda, birinchi blokni shifrlash quyidagicha amalga oshiriladi: 𝐶𝐶0 = 𝐸𝐸(𝑃𝑃0⨁𝐼𝐼𝐼𝐼,𝐾𝐾). 43 Mos holda birinchi blokni deshifrlash esa quyidagicha amalga oshiriladi: 𝑃𝑃0 = 𝐷𝐷(𝐶𝐶0,𝐾𝐾)⨁𝐼𝐼𝐼𝐼. CBC rejimida ma’lumotlarni shifrlash ECB rejimidan farqli ravishda bir xil ochiq matn bloklari turli shifr matn bloklariga almashinadi. Mazkur holat grafik orqali tasvirlanganda ko’rsatilgandek bo’ladi [13]. 16-rasm. CBC rejimida shifrlash natijasi Agar CBC rejimidan foydalanib shifrlangan ma’lumotni uzatish davomida biror bitga o’zgarish bo’lsa, yakuniy holat qanday bo’ladi (hozirda bunday holatlar kam uchraydi)? Faraz qilaylik, shifrmatnning 𝐶𝐶𝑖𝑖 bloki zararlandi: 𝐶𝐶𝑖𝑖 = 𝐺𝐺. U holda 𝑃𝑃𝑖𝑖 ≠ 𝐷𝐷(𝐺𝐺,𝐾𝐾)⨁𝐶𝐶𝑖𝑖−1 va 𝑃𝑃𝑖𝑖+1 ≠ 𝐷𝐷(𝐶𝐶𝑖𝑖+1,𝐾𝐾)⨁𝐺𝐺 Biroq, 𝑃𝑃𝑖𝑖+2 = 𝐷𝐷(𝐶𝐶𝑖𝑖+2,𝐾𝐾)⨁𝐶𝐶𝑖𝑖+1 va qolgan bloklar to’g’ri deshifrlanadi. Ya’ni, bir blokning zararlanishi ikkita blokga ta’sir ko’rsatadi. Undan keyingi bloklar esa o’zgarmas saqlanadi. Simmetrik blokli shifrlash algoritmlari oqimli shifrlash algoritmlariga qaraganda yuqori hisoblash imkoniyatini talab etadi va shunga mos ravishda yuqori bardoshlikni ta’minlaydi. Simmetrik blokli shifrlash algoritmlari oqimli shifrlar kabi ma’lumot konfidensialligini ta’minlash uchun foydalaniladi. Bundan tashqari, blokli shifrlardan autentifikasiya masalalarida, ma’lumot yaxlitligini ta’minlashda keng qo’llaniladi. Download 140.35 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling