Главная Обратная связь Дисциплины:
Архитектура (936)
|
Бастапқы 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 бөлімдер саны келесі кестедегі кіттің мөлшерінен ғана емес, және де блоктың мөлшеріне де тәуелді:
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 бөлімдерден тұрады. Стандарт келесі осы үш параметрлердің комбинациясын жібереді:
Алгоритм құрылымы AES алгоритмі 4 X 4 мөлшері бар екілік байттық массив түріндегі мәліметтер блогы. Бүкіл операциялар массивтің бөлек байттарымен өндіріледі, сонымен бірге тәуелсіз жолдар мен бағандарда өндіріледі.
1-сурет. Алгоритм бөлімі.
Алгоритмнің әр бөлімінде келесі өрнектелулер [3, 6] орындалады (1-сурет): 1. SubBytes операциясы өзімен мәліметтер массивының әр байтты кестелі ауыстыруын көрсететін келесі кестеге сәйкес (2-сурет):
Кесте кіріс мән 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 бөлігінің саны кілттің мөлшеріне тәуелді:
Алгоритмнің бірінші бөлімінің алдында AddRoundKey операциясының көмегімен кілттің мағлұматына алдын ала салу жүргізіледі. Соңғы бөлімінің алдыңғы бөлімдерінен айырмашылығы, соңғы бөлімде MixColumns операциясы орындалмайды.
3-сурет. ShiftRows операциясы.
4-сурет. MixColumns операциясы.
5-сурет. AddRoundKey операциясы.
|