Rijndael algoritmida bitlar ustida asosiy arifmetik amallarni bajarish
Download 74.71 Kb.
|
Rijndael algoritmi perevod
Rijndael algoritmida bitlar ustida asosiy arifmetikamallarni bajarishBu algoritmni belgiyalik olimlar В.Reyman va Y.Damanlar tomonidan ishlab chiqildi. Algortim 2001-jıli АQSH ning yangi standarti sifatida qabul qilindi. Shifrlash algoritmida blokning uzunligi 128 bit, gilt uzunligi 128, 192 yoki 256 bit bo’lishi va raundlar soni mos kalitning uzunligiga bog’liq 10, 12 yoki 14 dan turishi mumkin. Rijndael algoritmida barcha amallar baytlar yordamida ifodalanadi. Baytlar bo’lsa chekli maydonining elementlari sifatida qaraladi. Ba’zi bir amallar to’rt baytli so’zlar terminlarinda aniqlanadi. Agarda bayt bitlardan tashkil topgan bo’lsa, u holda koefficentleridan turuvchi ko’phad asosida quyidagicha yozamiz: (2.2) Мisol uchun ketma – ketligi elementi sifatida ifodalaniladi . Baytning qiymatini 16-lik sanoq sistemasida yozish qulay, bunda baytlar 4 bitdan turuvchi ikkidan guruxga
bo’linadi va har bir gurux bir simvolni ifodalaydi, ya’ni quyidagicha ketma – ketligini 16-lik sistemadagi ko’rinishida yoshimiz mumkin. Bayt massivlari quyidagicha turda ifodalanadi: (2.3) Bunda kiruvchi ketma –ketlikdagi har bir birni deb belgilaymiz. 128 bitli kiruvchi ketma –ketlikdan bitlarni
2.4 ko’rinishda ajratib olamiz. Bu misol 192, 256 bitli kalitlar uchun ham (2.5) Formulasiga kengaytirilishi mumkin. 2.12-rasmda kiruvchi ketma – ketlikdagi har bir bayt uchun bitlar chegarasi raqamlanishi ko’rsatilgan. AES algoritmida baytlar matritsasi ustida amallar bajariladi. Bu matsitsa holat matritsasi deb ataladi va uni biz harfi bilan belgilaymiz. matritsaning har bir satri baytdan tashkil topgan 4 satrdandan tuziladi, bunda 32 ga bo’lingan blok uzunligi. matritsasidagi har bir baytning joylashuvi ikkita indejks bilan aniqlanadi: satr raqami va ustun raqami .
2.12-rasm. Bayt va bitlar raqamlanishi. SHifrlash/deshifrlash amallari uchun kiruvchi ma’lumotlar 16 baytdan turadigan massivi tuziladi. SHifrlash/deshifrlashdan oldin bu massivning baytlari quyidagicha rasmdagiday kabi matritsaga joylashtiriladi:
2.13-rasm. Holat matritsasi kiruvchi massiv va chiquvchi massiv. SHifrlash/deshifrlash jarayonida matritsaadagi baytlar qiymati o’zgaradi. Мatritsaning so’nggi qiymati algoritmning chiqishi bo’lib, massivini tashkil qiladi va u chiquvchi baytlar ketma-ketligini tuzadi. Shunday qilib shifrlash/deshifrlashdan oldin kiruvchi ma’lumotlar matritsasiga
formulasiga mos turda kiritiladi, bunda . Shifrlash/deshifrlash natijasini chiqarishda matritsasidagi baytlar
formulasi asosida massiviga ko’chiriladi, bunda . matritsasining har bir ustunidagi 4 baytni bir 32 bitli so’z sifatida qarash mumkin. Shunday qilib matritsasi 32 bitli so’zlardan tuzilgan bir o’lchamli massiv sifatida ko’rsatish mumkin. Ustunlarni , deb belgilasak, onda matritsasi Yuqorida aytib o’tganimizday algoritmdagi barcha baytlar chekli maydon elementlari sifatida o’rganiladi. Chekli maydon elementlarini ustida qo’shish va ko’paytirish amallarini bajarish mumkin. Lekin bu amallar odatdagi sonlar ustida bajariladigan amallardan farqli bo’lib, aniq bir qoida bo’yicha amalga oshiriladi. Chekli maydonda sonlar ko’phad turida o’rganiladi. Shundan ikki sonni qo’shish shu sonlarni anglatuvchi ko’phadlarni qo’shish bilan amalga oshiriladi. Ikkita ko’phadlarni qo’shish ularning bir hil darajadagi koeffisentlarini qo’shish yo’li bilan amalga oshiriladi. Кoeffitsientlarni «qo’shish» amali ( bilan belgilanadi), ya’ni 2 moduli bo’yicha qo’shish yordamida bajaroladi . Bunda ayirish amali qo’shish amali bilan bir qiymatli amalga oshiriladi. Chekli maydonda sonlarni qo’shishning ikkinchi usuli bu - baytdagi mos bitlarni 2 moduli bo’yicha qo’shish bo’lib hisoblanadi. Ikkita va yig’indisi bo’ladi, bunda Bu quyidagicha tenglik bir biriga ekvivalent: (ko’phadlar ko’rinishida ko’rsatilishi mumkin) (ikkilik ko’rinishda belgilanish) (16 sanoq sistemasi ko’rinishida) Bunda tenglik qanday bajarilishini quyidagicha ko’rishimiz mumkin. O’n oltilik sanoq sistemasidagi «57» qiymatiga teng baytga (ikkilik sanoq sistemasida ) quyidagicha ko’phad mos keladi:
Ko’phadlarni qo’shishda elementlarning yig’indisi 2 moduli bo’yicha bajariladi (ya’ni ). bo’ladi, agar ko’phad ko’rinishida bo’lsa quyidagicha Endi binar turda hisoblanishini ham ko’rib chiqamiz Bu ko’phadlarni ko’paytirishda daraja ko’rsatgichlari o’sadi. Shundan algoritmda modul sifatida ko’paytuvchilarga ajratilmaydigan ko’phad qo’llaniladi, ya’ni u faqat 1 ga va o’ziga bo’linadigan ko’phad bo’ladi. Rijndael algoritmida bul ko’phadni bilan belgilaymiz.U quyidagicha: (2.8) Ya’ni u 16-lik sanoq sistemasida ga teng bo’ladi. Misol uchun. bo’ladi, ya’ni + Natijada moduli bo’yicha solishtirishimizning sababi ikkita ko’phadni ko’paytirganda daraja ko’rsatgichi 8 dan oshib ketmasligi kerak. Yuqorida qaralgan ko’paytirish amali assotsiativ bo’lib birlik element asosida hisoblanadi. Ixtiyoriy nollik emas darajasi 8 dan kichik binar ko’phadiga teskari bo’lgan ko’phadini toppish mumkin. Teskari elementni toppish uchun Еvklidning kengaytirilgan algoritmidan foydalanamiz. (2.2) binar ko’phadini ga ko’paytirganda (2.9) kelib chiqadi. Agarda bo’lsa, unda (2.9) va moduli bilan taqqoslash shart emas, bo’lsa, taqqoslash shart hisoblanadi. x ga ko’paytirish baytlar darajasida aniqlanishi mumkin, ya’ni dastlab chapga siljish bajariladi, so’ng (talab qilinsa) soni bilan amali bajariladi. Bu baytlar ustidagi amallarni deb belgilaymiz. ning yuqori darajalariga ko’paytirganda amalini takror qo’llash mumkin. Мisol uchun: Кoeffitsientlari chekli maydonning elementlari bo’lgan 4-chi darajali ko’phad
ifodasi yordamida aniqlanadi. Bu ifoda keyin sifatidagi so’z shaklida ko’rsatiladi. Qo’shish va ko’paytirish amallarining bajarilishini ko’rsatish uchun yana bir 4-chi daraali ko’phadni aniqlaymiz: (2.11) Shundan so’ng bir hil daraja ko’rsatgichlarining koefitsienlarini ikki moduli bo’yicha qo’shamiz, ya’ni ikki so’z orasida amali bajariladi. Natijada: (2.12) Ko’paytirish yoki ikki bosqichdan turib, birinshi bosqichda ko’paytmasi bajarilganda qavslar ochilib ning o’xshash hadlari guruxlanadi, shunda: (2.13) bunda
(2.14) ko’phadini 4 baytli so’z ko’rinishida ko’rsatib bo’lmaydi. Shundan 2-bosqichda modulini 4-darajali ko’phad bilan beriladigan modul bilan taqqoslanadi. Natijada darajasi 4 dan kichik bo’lgan ko’phadni olamiz. Аlgoritmda modul sifatida ko’phadi qo’llaniladi. Bunda quyidagilar o’rinli bo’ladi: (2.15) va ko’phadlarining ko’paytmasi (2.16) bo’ladi, bunda
Agarda fiksirlangan ho’phad bo’lsa, unda ikki ko’phadlarni ko’paytirish amalini matritsaviy ko’rinishda quyidagicha yozish mumkin ya’ni: (2.18) ko’phadi maydonida ko’paytuvchilarga ajratilmaydigan ko’phad bo’lganlikdan fikserlanagan 4hadini ko’phadga ko’paytirish hamma vaqtda teskari akslantirishga olib kelmaydi. Shundan algoritmda 4 hadli teskari elementi mavjud bo’lgan ko’phad qo’llaniladi, ya’ni
BUndan tashqari algoritmda qo’llaniladigan ko’phadning koeffitsentlari: bo’lib ko’phadiga mos keladi. (11) dan kiruvchi so’zning fiksirlangan ko’phadiga ko’paytmasi uning baytlarining almashishidan paydo bo’ladigan chiquvchi so’z olinadi, ya’ni so’zi so’zi ko’rinishida ifodalaymiz. Rijdael algoritmida shifrlash va deshifrlash jarayoni quyidagicha raund funktsiyalari yordamida amalga oshiriladi. O’rin almashtirish jadvali yordamida baytlarni almashtirish (SubBytes) S matritsasi satrini har hil o’lchamda siljitish (ShiftRows) S matritsasining har bir ustunidagi ma’lumotlarni almashtirish (MixColumns) S matrictsasi bilan raund kaliti qo’shish (AddRoundKey) Download 74.71 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling