Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)


 

 

 

 



Бастапқы Rijndael алгоритмнен AES-тің айырмашылығы



 

Rijndael алгоритмі мәліметтерді тек 128-биттік блокта ғана емес, 192 немесе 256 битті блоктарда шифрлеуге мүмкіндік береді. Солай, AES іс жүзінде Rijndael-ден тек бір ғана принципиалды айырмашылығы бар: ол тек 128-битті мәліметтер блогын қолдануды ескереді. AES алгоритмнің жоғарыда келтірілген сипаттамада басқа блоктар мөлшерінің өзгерістерін қарастырайық:

1. Өндіріліп жатқан мәліметтер тек мөлшері 4 X 4 массивта ғана емес, 192-битті және 256-битті блоктар үшін 4 X 6 немесе 4 X 8 беріледі сәйкесінше.

2. Rijndael алгоритмінің R бөлімдер саны келесі кестедегі кіттің мөлшерінен ғана емес, және де блоктың мөлшеріне де тәуелді:

 

Кіттің мөлшері, бит Блоктың мөлшері, бит
128 192 256
128
192
256

 

3.Кесте жолдарының жылжу бит саны блоктың мөлшеріне тәуелді:

 

Жолдың нөмері Блоктың мөлшері, бит
128 192 256
1
2
3
       

4. 192- және 256-биттік блоктардың мәліметтер массивының бағандар сандары 6 және 8-ге дейін сәйкесінше үлкейіп жатса, AddRoundKey операциясында төрттің орнына кеңейтілген кілттің 6 немесе 8 сөзі қатысады. Демек, алгоритмнің r-бөлімінде кеңейтілген кілттің WNb*r…WNb*r+3 сөздері салынып жатыр, мұндағы Nb-мәліметтер массивының бағандар саны.

5. Жоғары айтылғанға байланысты кілттің кеңейтілу процедурасы жүреді, бірақ өзгеріс тек берілген процедура кеңейтілген кілттің Nb*(R+1)-1 сөзін өндіру керек, 4*(R+1)-1 емес.

 

 

AES түрлері

AES алгоритмі мөлшері 128-битті блокты мөлшері сондай блокқа өзгертеді. Өзгерту үшін кілттен алынатын w кілттер кестесі қолданылады. 128-биттік блок AES-те 4×Nb матрица түрінде көрсетіледі. Стандартта тек бір ғана мәнді Nb = 4 қойылады, сондықтан блоктың мөлшері әрқашанда 128 бит болады, алгоритм Nb кез келгенімен жұмыс істей алады. Кілттің ұзындығы 4Nk байтқа тең. Блокты шифрлеу алгоритмі Nr бөлімдерден тұрады. Стандарт келесі осы үш параметрлердің комбинациясын жібереді:

  Nk Nb Nr
AES-128
AES-192
AES-256

Алгоритм құрылымы

AES алгоритмі 4 X 4 мөлшері бар екілік байттық массив түріндегі мәліметтер блогы. Бүкіл операциялар массивтің бөлек байттарымен өндіріледі, сонымен бірге тәуелсіз жолдар мен бағандарда өндіріледі.

 

1-сурет. Алгоритм бөлімі.

 

 

Алгоритмнің әр бөлімінде келесі өрнектелулер [3, 6] орындалады (1-сурет):

1. SubBytes операциясы өзімен мәліметтер массивының әр байтты кестелі ауыстыруын көрсететін келесі кестеге сәйкес (2-сурет):

 

7C 7B F2 6B 6F C5 2B FE D7 AB
CA C9 7D FA F0 AD D4 A2 AF 9C A4 C0
B7 FD 3F F7 CC A5 E5 F1 D8
C7 C3 9A E2 EB B2
2C 1A 1B 6E 5A A0 3B D6 B3 E3 2F
D1 ED FC B1 5B 6A CB BE 4A 4C CF
D0 EF AA FB 4D F9 7F 3C 9F A8
A3 8F 9D F5 BC B6 DA FF F3 D2
CD 0C EC 5F D7 C4 A7 7E 3D 5D
4F DC 2A EE B8 DE 5E 0B DB
E0 3A 0A 5C C2 D3 AC E4
E7 C8 6D 8D D5 4E A9 6C F4 EA 7A AE
BA 2E 1C A6 B4 C6 E8 DD 1F 4B BD 8B 8A
3E B5 F6 0E B9 C1 1D 9E
E1 F8 D9 8E 9B 1E E9 CE DF
8C A1 0D BF E6 2D 0F B0 BB

 

Кесте кіріс мән 0-ді 63-ке (алпысүшілік мән) ауыстырады, 1 – 7С-ге, 2 – 77-ге және т.б.

 

 

2-сурет. SubBytes операциясы.

 

Берілген кестелік ауыстырудың орнына өған деген баламалы екі операцияның комбинациясын орындауға болады:

1.1. GF(28) ақырғы өрістегі кіріс мәнінен кері мультипликациялық шаманы есептеу; кері шама болып 0-ден 0 болады.

1.2. Шығыс мәні b келесідей есептеледі:

bi = ai  ai + 4 mod 8  ai+5 mod 8  ai+6 mod 8  ai+7 mod 8  ci,

мұндағы ni – nшамасының i-ші биті,

a – алдыңғы операцияның нәтижесі,

c – оналтылық константа 63.

2. ShiftRows операциясы нөлден басқа мәліметтер массивының барлық жолдарының циклдік солға қарай жылжыту (3-сурет). Массивтың і-шіжолы ( iүшін = 1, 2, 3) i байтта жасалынады.

3. MixColumns операциясы. Берілген массивтегі мәліметтердің әрбір бағанын көбейту операциясын орындайды:

a(x) = 3x3 + x2 + x + 2.

Көбейту мына модульмен x4 + 1.

4. AddRoundKey операциясы мәліметтер массивына кілт мағлұматын салады. Дәлірек айтқанда, биттік логикалық операциясы арқылы «шығарылған немесе» (XOR) мәліметтер массивының і-ші бағанына кеңейтілген кілттің W4r+i белгілі сөзі қойылады, мұндағы r –алгоритмнің ағымдағы бөлімінің нөмері, 1-ден бастағандағы. AddRoundKey операциясы 5-суретте көрсетілген.

 

Алгоритмнің R бөлігінің саны кілттің мөлшеріне тәуелді:

Кілттің мөлшері, бит R

Алгоритмнің бірінші бөлімінің алдында AddRoundKey операциясының көмегімен кілттің мағлұматына алдын ала салу жүргізіледі.

Соңғы бөлімінің алдыңғы бөлімдерінен айырмашылығы, соңғы бөлімде MixColumns операциясы орындалмайды.

 

 

3-сурет. ShiftRows операциясы.

 

 

 

4-сурет. MixColumns операциясы.

 

 

 

5-сурет. AddRoundKey операциясы.

 

 



Просмотров 1190

Эта страница нарушает авторские права




allrefrs.su - 2024 год. Все права принадлежат их авторам!