Vaqif qasimov informasiya təhlükəsizliyinin əsasları Dərslik Azərbaycan Respublikası Milli Təhlükəsizlik Nazirliyinin Heydər Əliyev adma Akademiyasının Elmi Şurasının 29 aprel 2009-cu IL tarixli iclasının qərarı ilə
Download 0.6 Mb.
|
N 407
Genişləndirmə nəticəsində alınmış 48 bit açarın 48 bit- lik cari qiyməti ilə 2 moduluna görə toplanır və alman ardıcıllıq səkkiz ədəd 6 bitlik bloklara bölünür: E(R, ı) ®Kı=B ı B2 ■■■B%. S; funksiyaları B, bloklarında olan 6 biti 4 bitə çevirmək üçün 5.4 saylı cədvəldən istifadə edir. Bu, aşağıdakı alqo- ritm vasitəsilə həyata keçirilir. Tutaq ki, - 6 bitlik blokdur. Onda S, funksiyası bıb6 iki bitlik ədədinə görə cədvəlin sətrin nömrəsini, Z?2^3^4^5 dörd bitlik ədədinə görə isə sütunun nömrəsini müəyyən edir. Həmin sətirlə sütunun kəsişməsində duran ədəd götürülür və ikilik sistemə çevrilərək müvafiq dörd bit kimi qəbul edilir. Tutaq ki, Sı funksiyasının girişinə altı bitlik B;=Z?ıZ?2^3^4^5^6=111001(2) verilmişdir, onda iki bitlik Z?ıZ?6=ll(2)=3(io) ədədi 5.4 saylı cədvəlin Si-ə uyğun matrisinin 3-cü sətrini, dörd bitlik Z?2^3^4^5=HOO(2)=12(io) ədədi isə həmin matrisin 12-ci sütununu göstərir. Bu, o deməkdir ki, B;=111001(2) bloku Sı cədvəlindən 3-cü sətirlə 12- ci sütunun kəsişməsində duran elementlə, yəni dörd bitlik lO(ıo)=lOlO(2) ardıcıllığı ilə əvəz olunur. Belə çevirmə nəticəsində 8 ədəd 6 bitlik blok, yəni 48 bitlik BıB2-. #8 ardıcıllığı əvəzinə 8 ədəd 4 bitlik blok, yəni 32 bitlik Sı(#ı), S2(#2). ••• S8(#8) ardıcıllığı almır. Bu ardıcıllıq da öz növbəsində 5.5 cədvəlinə uyğun olaraq çevrilir və şifrləmə funksiyasının F(Ri_1,Ki) = P(Sl(Bi),S2(B2),...,S9(B9)) qiyməti hesablanmış olur. Cədvəl 5.4. Sı, S2,... S8 çevirmə funksiyaları matrisi
Cədvəl 5.5. P bitlərin yerdəyişməsi funksiyası Qeyd olunduğu kimi, şifrləmənin hər addımında K şifrləmə açarının 48 bitlik yeni Ki qiyməti istifadə olunur. Ki qiymətləri K ilkin açarının qiymətindən 5.10 şəklində göstərilən alqoritmə uyğun olaraq hesablanır. 64 bit uzunluğa malik ilkin açarın 8 biti, yəni 8, 16, 24, 32, 40, 48, 56, 64 saylı bitləri cütlüyün yoxlanması üçün istifadə olunur. Yeni qiymətin hesablanması üçün əvvəlcə G funksiyanın köməyi ilə açarın 5.6 cədvəlinə əsasən yoxlama bitləri silinir və istifadəyə hazırlanır. Nəticədə alman 56 bitdən ibarət G(K) ardıcıllığı hər biri 28 bitdən ibarət iki Co və Do bloklarına bölünür. Belə ki, Co bloku G(K) ardıcıllığının ilk 28 bitini, Do bloku isə son 28 bitini təşkil edir. Cədvəl 5.6. Açarın ilkin hazırlanması funksiyası - G
Açar - K G funksiyası
I Cp (28 bit) Sola sürüşdürmə ~| ■ + . I Do (28 bit) | | Sola sürüşdürmə | K, I
D2
k2 Sola sürüşdürmə I | Sola sürüşdürmə ~| _i _ ı Sola sürüşdürmə Sola sürüşdürmə Şək.5.10. Ki açarının hesablanması alqoritminin sxemi Cədvəl 5.7. Açarın hesablanması üçün sürüşdürmə cədvəli
Hər iterasiyanm sonunda alman Ki açarı 56 bitlik C;||D; ardıcıllığından H funksiyasının (cədvəl 5.8) ki məyi ilə seçilmiş və yerləri dəyişdirilmiş 48 bitlik ardıcıllıqdan ibarətdir: Cədvəl 5.8. Açarın emalım yekunlaşdıran H funksiyası
AES standartı AES (Advanced Encryption Standard) 2000-ci ildə DES standartının əvəzinə ümummilli standart kimi istifadə üçün qəbul edilmişdir. Onun əsasmı blok şifri olan Rijndael alqoritmi təşkil edir. Alqoritmin təsviri zamanı Feystel şəbəkəsindən deyil, GF(28) Qalua meydanından istifadə olunur. GF(28) meydanı m(x) = x8 + x4 + x3 + x +1 çoxhədlisinin kökləri üzrə GF(2) meydanının genişlənməsi şəklində qurulur. Qeyd olunmalıdır ki, verilənlərin bitləri 0-dan başlayaraq, böyükdən kiçiyə doğru nömrələnir. Alqoritmdə əsas məsələ kodların polinom çoxhədli şəklində təsvir edilməsindən ibarətdir. Belə ki, “10110101” şəklində bayt “x7+x5+x4+x2+l” çoxhədlisi kimi təqdim olunur. Burada yuxanda göstərilən m(x) çoxhədlisi meydanm elementlərinin təqdim olunmasının effektivliyi səbəbindən seçilmişdir. Rijndael alqoritmində blok və açar dəyişən uzunluğa malikdir, onların uzunluqları bir-birindən asılı olmadan 128, 192 və ya 256 bitə bərabər seçilə bilər. Şifrləmə prosesi State (vəziyyət) adlanan hər hansı aralıq struktur (blok) üzərində yerinə yetirilən iterasiyalar ardıcıllığından ibarətdir. State və açar baytları matrislər şəklində təsvir olunurlar. Bu matrislərin sətirlərinin sayı - 4, sütunlarının sayı isə, uyğun olaraq, və 2V*/32 olur. Burada M - blokun, M isə açarın uzunluğudur. Alqoritmin giriş və çıxış qiymətləri baytlann müvafiq uzunluqda birölçülü massivi şəklində təqdim olunur. State və açar massivləri giriş massivlərindən əvvəlcə sütunlarla, soma isə sətirlərlə doldurulur. Şifrləmə prosesi iterasiyalı şəkildə dörd müxtəlif çevirməni yerinə yetirən proseduralardan ibarətdir. SubByte - baytlarm əvəz edilməsi prosedurası; ShiftRows - sətirlərin sürüşdürülməsi prosedurası; MixColumn - sütunların qarışdırılması prosedurası; AddRoundKey - dövr (raund) açarının əlavə edilməsi (toplanması) prosedurası. Alqoritmin iterasiyalarımn sayı (M) blokun və açarın uzunluqlarından (M və M) asılı olaraq aşağıdakı cədvələ uyğun müəyyən edilir:
SubByte prosedurası SubByte (Byte Substitution) prosedurasında baytlarm əvəz edilməsi S-blok və ya S-box adlanan əvəzetmə cədvəli vasitəsilə həyata keçirilir. Bu cədvəl bir-birindən asılı olmadan State blokunun hər bir baytma tətbiq olunur, onların qeyri-xətti çevirməsini təmin edir (şək.5.11): bu =S(aij),i,j = 1,2,3. Şək.5.11. SubByte prosedurası Əvəzetmə prosedurası iki əməliyyatı özündə birləşdirir: Hər bir bayt GF(28) meydanında multiplikativ vurmaya nəzərən tərsi ilə əvəz edilir: Zıf1 =b; modm(x). Bu zaman “00” baytı öz-özünə çevrilir. Hər bir bayt üçün GF(2) meydanında aşağıdakı düsturla müəyyən edilən affin çevirməsi həyata keçirilir: Z>. =/>. ®bçi+4^mods ®^(;+5)mO(j8 © ^(/+6)mod8 ®^(z+7)mod8 ® Ci ’ burada b; - Z?-nin z-ci biti, c; isə c={63}={01100011} baytımn z-ci bitidir, i = 1,8 . köməyi 1 1 1 1 0 1 0 0 0 0 1 0 1 1 1 1 1 0 0 0 1 110 0 0 1110 0 11110 11111 0 1111 0 0 111 0 0 0 1 1 *ı b2 b3 b. b, b6 Z>7 yazmaq olar: Bu çevirməni matrislərin ShiftRows prosedurası Bu çevirmə zamanı State cədvəlinin sətirləri dövri olaraq sola doğru rf bayt sürüşdürülür. 0-cı sətir sürüşdürülmür, yəni r,=0, 1-ci sətir Ib sürüşdürülür, yəni r=lb və s. Beləliklə, ShiftRows prosedurasından soma alman çıxış State cədvəlinin sütunları başlanğıc (giriş) State cədvəlinin hər sütunundan bir baytı özündə birləşdirir (şək.5.12). Şək.5.12. ShiftRows prosedurası Sürüşmə yoxdur lb <—2b <—3b M qiymətindən asılı olaraq, r,- kəmiyyətinin qiymətləri aşağıdakı cədvəldə göstərilmişdir:
Cədvəldən göründüyü kimi, burada 128 və 192 bitlik sətirlər üçün sürüşmənin qiyməti eyni, 256 bitlik sətirlər üçün isə fərqlidir. MixColumns prosedurası Bu prosedura zamanı tərsi olan xətti çevirmə vasitəsilə State cədvəlinin sütunlarının baytlan qarışdırılır (şək.5.13). Bunun üçün cədvəlin hər bir sütunu ayrı-ayrılıqda emal olunur. Sütunlardan dörd dərəcəli polinom düzəldilir və bu polinom GF(28) meydanında a4+1 moduluna görə təsbit edilmiş c(x)=3x3+x2+x+2 çoxhədlisinə vurulur: b(x) = c(x) ■ a(x) mod(v4 +1). Şək.5.13. MixColumns prosedurası Bu çevirməni matrislərin köməyi ilə aşağıdakı kimi yazmaq olar:
ShiftRows prosedurası Bu çevirmə zamanı State cədvəlinin sətirləri dövri olaraq sola doğru r,- bayt sürüşdürülür. 0-cı sətir sürüşdürülmür, yəni r,=0. 1-ci sətir Ib sürüşdürülür, yəni r=lb və s. Beləliklə, ShiftRows prosedurasından soma alman çıxış State cədvəlinin sütunları başlanğıc (giriş) State cədvəlinin hər sütunundan bir baytı özündə birləşdirir (şək.5.12). Sürüşmə yoxdur lb <—2b <—3b Şək.5.12. ShiftRows prosedurası Nh qiymətindən asılı olaraq, r, kəmiyyətinin qiymətləri aşağıdakı cədvəldə göstərilmişdir:
Cədvəldən göründüyü kimi, burada 128 və 192 bitlik sətirlər üçün sürüşmənin qiyməti eyni, 256 bitlik sətirlər üçün isə fərqlidir. MixColumns prosedurası Bu prosedura zamanı tərsi olan xətti çevirmə vasitəsilə State cədvəlinin sütunlarının baytlan qarışdırılır (şək.5.13). Bunun üçün cədvəlin hər bir sütunu ayrı-ayrılıqda emal olunur. Sütunlardan dörd dərəcəli polinom düzəldilir və bu polinom GF(28) meydanında x4+l moduluna görə təsbit edilmiş c(x)=3xi+x2+x+l çoxhədlisinə vurulur: b(x) = c(x) • a(x) mod(x4 +1). Şək.5.13. MixColumns prosedurası Bu ifadəni matris şəklində aşağıdakı kimi təsvir etmək olar:
b0 b2 b. ao ax a2 a3 x4+l və c(x) çoxhədliləri qarşılıqlı sadə olduğuna görə vurma əməliyyatmın tərsi vardır. AddRoundKey prosedurası Bu prosedurada hər itersiyada State blokuna itersiya açarı (RoundKey) əlavə edilir (şək.5.14).
Download 0.6 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling