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.
bet7/9
Sana27.06.2020
Hajmi0.6 Mb.
#121957
TuriDərslik
1   2   3   4   5   6   7   8   9
Bog'liq
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ədi­nə görə isə sütunun nömrəsini müəyyən edir. Həmin sətir­lə sütunun kəsişməsində duran ədəd götürülür və ikilik sis­temə ç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 matri­sinin 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ək­dir 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



    1. Sütunun nömrəsi



    1. 0

    1. 1

    1. 2

    1. 3

    1. 4

    1. 5

    1. 6

    1. 7

    1. 8

    1. 9

    1. 10

    1. 11

    1. 12

    1. 13

    1. 14

    1. 15



    1. Sətrin nömrəsi

    1. 0

    1. 14

    1. 4

    1. 13

    1. 1

    1. 2

    1. 15

    1. 11

    1. 8

    1. 3

    1. 10

    1. 6

    1. 12

    1. 5

    1. 9

    1. 0

    1. 7



    1. 1

    1. 0

    1. 15

    1. 7

    1. 4

    1. 14

    1. 2

    1. 13

    1. 1

    1. 10

    1. 6

    1. 12

    1. 11

    1. 9

    1. 5

    1. 3

    1. 8

    1. 2

    1. 4

    1. 1

    1. 4

    1. 8

    1. 13

    1. 6

    1. 2

    1. 11

    1. 15

    1. 12

    1. 9

    1. 7

    1. 3

    1. 10

    1. 5

    1. 0

    1. 3

    1. 15

    1. 12

    1. 8

    1. 2

    1. 4

    1. 9

    1. 1

    1. 7

    1. 5

    1. 11

    1. 3

    1. 14

    1. 10

    1. 0

    1. 6

    1. 13

    1. 0

    1. 15

    1. 1

    1. 8

    1. 14

    1. 6

    1. 11

    1. 3

    1. 4

    1. 9

    1. 7

    1. 2

    1. 13

    1. 12

    1. 0

    1. 5

    1. 10

    1. s2

    1. 1

    1. 3

    1. 13

    1. 4

    1. 7

    1. 15

    1. 2

    1. 8

    1. 14

    1. 12

    1. 0

    1. 1

    1. 10

    1. 6

    1. 9

    1. 11

    1. 5

    1. 2

    1. 0

    1. 14

    1. 7

    1. 11

    1. 10

    1. 4

    1. 13

    1. 1

    1. 5

    1. 8

    1. 12

    1. 6

    1. 9

    1. 3

    1. 2

    1. 15

    1. 3

    1. 13

    1. 8

    1. 10

    1. 1

    1. 3

    1. 15

    1. 4

    1. 2

    1. 11

    1. 6

    1. 7

    1. 12

    1. 0

    1. 5

    1. 14

    1. 9

    1. 0

    1. 10

    1. 0

    1. 9

    1. 14

    1. 6

    1. 3

    1. 15

    1. 5

    1. 1

    1. 13

    1. 12

    1. 7

    1. 11

    1. 4

    1. 2

    1. 8

    1. s3

    1. 1

    1. 13

    1. 7

    1. 0

    1. 9

    1. 3

    1. 4

    1. 6

    1. 10

    1. 2

    1. 8

    1. 5

    1. 14

    1. 12

    1. 11

    1. 15

    1. 1

    1. 2

    1. 13

    1. 6

    1. 4

    1. 9

    1. 8

    1. 15

    1. 3

    1. 0

    1. 11

    1. 1

    1. 2

    1. 12

    1. 5

    1. 10

    1. 14

    1. 7

    1. 3

    1. 1

    1. 10

    1. 13

    1. 0

    1. 6

    1. 9

    1. 8

    1. 7

    1. 4

    1. 15

    1. 14

    1. 3

    1. 11

    1. 5

    1. 2

    1. 12

    1. 0

    1. 7

    1. 13

    1. 14

    1. 3

    1. 0

    1. 6

    1. 9

    1. 10

    1. 1

    1. 2

    1. 8

    1. 5

    1. 11

    1. 12

    1. 4

    1. 15

    1. s4

    1. 1

    1. 13

    1. 8

    1. 11

    1. 5

    1. 6

    1. 15

    1. 0

    1. 3

    1. 4

    1. 7

    1. 2

    1. 12

    1. 1

    1. 10

    1. 14

    1. 9

    1. 2

    1. 10

    1. 6

    1. 9

    1. 0

    1. 12

    1. 11

    1. 7

    1. 13

    1. 15

    1. 1

    1. 3

    1. 14

    1. 5

    1. 2

    1. 8

    1. 4

    1. 3

    1. 3

    1. 15

    1. 0

    1. 6

    1. 10

    1. 1

    1. 13

    1. 8

    1. 9

    1. 4

    1. 5

    1. 11

    1. 12

    1. 7

    1. 2

    1. 14

    1. 0

    1. 2

    1. 12

    1. 4

    1. 1

    1. 7

    1. 10

    1. 11

    1. 6

    1. 8

    1. 5

    1. 3

    1. 15

    1. 13

    1. 0

    1. 14

    1. 9

    1. s5

    1. 1

    1. 14

    1. 11

    1. 2

    1. 12

    1. 4

    1. 7

    1. 13

    1. 1

    1. 5

    1. 0

    1. 15

    1. 10

    1. 3

    1. 9

    1. 8

    1. 6

    1. 2

    1. 4

    1. 2

    1. 1

    1. 11

    1. 10

    1. 13

    1. 7

    1. 8

    1. 15

    1. 9

    1. 12

    1. 5

    1. 6

    1. 3

    1. 0

    1. 14

    1. 3

    1. 11

    1. 8

    1. 12

    1. 7

    1. 1

    1. 14

    1. 2

    1. 13

    1. 6

    1. 15

    1. 0

    1. 9

    1. 10

    1. 4

    1. 5

    1. 3

    1. 0

    1. 0

    1. 12

    1. 1

    1. 10

    1. 15

    1. 9

    1. 2

    1. 6

    1. 8

    1. 0

    1. 133

    1. 4

    1. 14

    1. 7

    1. 5

    1. 11

    1. s6

    1. 1

    1. 10

    1. 15

    1. 4

    1. 2

    1. 7

    1. 12

    1. 9

    1. 5

    1. 6

    1. 1

    1. 13

    1. 14

    1. 0

    1. 11

    1. 3

    1. 8

    1. 2

    1. 9

    1. 14

    1. 15

    1. 5

    1. 2

    1. 8

    1. 12

    1. 3

    1. 7

    1. 0

    1. 4

    1. 10

    1. 1

    1. 13

    1. 1

    1. 6

    1. 3

    1. 4

    1. 3

    1. 2

    1. 12

    1. 9

    1. 5

    1. 15

    1. 10

    1. 11

    1. 14

    1. 1

    1. 7

    1. 6

    1. 0

    1. 8

    1. 13

    1. 0

    1. 4

    1. 11

    1. 2

    1. 14

    1. 15

    1. 0

    1. 8

    1. 13

    1. 3

    1. 12

    1. 9

    1. 7

    1. 5

    1. 10

    1. 6

    1. 1

    1. s7

    1. 1

    1. 13

    1. 0

    1. 11

    1. 7

    1. 4

    1. 9

    1. 1

    1. 10

    1. 14

    1. 3

    1. 5

    1. 12

    1. 2

    1. 15

    1. 8

    1. 6

    1. 2

    1. 1

    1. 4

    1. 11

    1. 13

    1. 12

    1. 3

    1. 7

    1. 14

    1. 10

    1. 15

    1. 6

    1. 8

    1. 0

    1. 5

    1. 9

    1. 2

    1. 3

    1. 6

    1. 11

    1. 13

    1. 8

    1. 1

    1. 4

    1. 10

    1. 7

    1. 9

    1. 5

    1. 0

    1. 15

    1. 14

    1. 2

    1. 3

    1. 12

    1. 0

    1. 13

    1. 2

    1. 8

    1. 4

    1. 6

    1. 15

    1. 11

    1. 1

    1. 10

    1. 9

    1. 3

    1. 14

    1. 5

    1. 0

    1. 12

    1. 7

    1. s8

    1. 1

    1. 1

    1. 15

    1. 13

    1. 8

    1. 10

    1. 3

    1. 7

    1. 4

    1. 12

    1. 5

    1. 6

    1. 11

    1. 0

    1. 14

    1. 9

    1. 2

    1. 2

    1. 7

    1. 11

    1. 4

    1. 1

    1. 9

    1. 12

    1. 14

    1. 2

    1. 0

    1. 6

    1. 10

    1. 13

    1. 15

    1. 3

    1. 5

    1. 8

    1. 3

    1. 2

    1. 1

    1. 14

    1. 7

    1. 4

    1. 10

    1. 8

    1. 13

    1. 15

    1. 12

    1. 9

    1. 0

    1. 3

    1. 5

    1. 6

    1. 11

  • 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 şifr­lə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 uzun­luğ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 CoDo 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


    Co və Do blokları müəyyən edildikdən sonra, 3.4 saylı şəkildə göstərildiyi kimi, rekursiv qaydada C, və £>,, i=l,2,...,16 blokları hesablanır. Hesablama zamanı hər iterasiyada alman ardıcıllıqlar iterasiya nömrəsindən asılı olaraq, dövri şəkildə 1 və ya 2 bit sola sürüşdürülür (cədvəl 5.7).



    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








    H funksiyası














    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

    İterasiyanın N°-si

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    Sola sürüş­mələrin sayı

    1

    1

    2

    2

    2

    2

    2

    2

    1

    2

    2

    2

    2

    2

    2

    1

    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 funksiya


    1. 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şlaya­raq, 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 element­lərinin təqdim olunmasının effektivliyi səbəbindən seçil­miş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ı ara­lı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:




    M=4 (128b)

    M=6 (192b)

    M=8 (256b)

    M=4 (128b)

    10

    12

    14

    M=6 (192b)

    12

    12

    14

    M=8 (256b)

    14

    14

    14

    SubByte prosedurası

    SubByte (Byte Substitution) prosedurasında baytlarm əvəz edilməsi S-blok və ya S-box adlanan əvəzetmə cəd­və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:

    1. Hər bir bayt GF(28) meydanında multiplikativ vur­maya nəzərən tərsi ilə əvəz edilir:

    Zıf1 =b; modm(x).

    Bu zaman “00” baytı öz-özünə çevrilir.

    1. 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:

    M

    I rı

    r2

    r3

    4

    6

    8

    1

    1

    1

    2

    2

    3

    3

    3

    4

    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:

    b0




    1

    0

    0

    0

    1

    1

    1

    1




    b0




    1

    b{




    1

    1

    0

    0

    0

    1

    1

    1




    b,




    1

    b2




    1

    1

    1

    0

    0

    0

    1

    1




    b2




    0

    b3




    1

    1

    1

    1

    0

    0

    0

    1




    b3




    0






























    *




    +




    b.




    1

    1

    1

    1

    1

    0

    0

    0




    b.




    0

    b5




    0

    1

    1

    1

    1

    1

    0

    0




    b5




    1

    b6




    0

    0

    1

    1

    1

    1

    1

    0




    b6




    1

    b'ı




    0

    0

    0

    1

    1

    1

    1

    1




    b7




    0

    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:

    N*



    r2

    r3

    4

    6

    8

    1

    1

    1

    2

    2

    3

    3

    3

    4

    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:

    02

    03

    01

    01

    01

    02

    03

    01

    01

    01

    02

    03

    03

    01

    01

    01


    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).


    flo.o

    a0

    «0,2

    «0,3

    «1,0

    «1,1




    «1,3

    «2,0

    «2,1

    «2,2-




    «3,0

    «3,1

    «3,2

    «3,3





    bo,o

    bo,ı

    bo,2

    bo,?

    bifl

    Aı_

    b\,2

    bl,3

    ^2,0

    ^2,2

    ^2,2

    ^2,3

    ^3,0

    ÄL

    ^3,2

    b?,?







    ko,o

    ko,\

    ko,2

    «0,3

    k\,o

    k\,\

    k}.2

    «1,3

    ^2,0

    &2,1

    k?,2~

    -t^3

    k?,o

    ^3,1

    k?,2

    «3,3

    Download 0.6 Mb.

    Do'stlaringiz bilan baham:
  • 1   2   3   4   5   6   7   8   9




    Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
    ma'muriyatiga murojaat qiling