Advanced Encryption Standard (AES), також відомий під назвою Rijndael — симетричний алгоритм блочного шифрування (розмір блока 128 біт, ключ 128/192/256 біт). Фіналіст конкурсу AES, прийнятий як американський стандарт шифрування урядом США. Вибір припав на AES з розрахуванням на широке використання та активний аналіз алгоритму, як це було із його попередником, DES. Державний інститут стандартів і технологій (англ. National Institute of Standards and Technology, NIST) США опублікував попередню специфікацію AES 26 жовтня 2001 року, після п'ятирічної підготовки. 26 травня 2002 року AES оголошено стандартом шифрування. Станом на 2009 рік AES є одним з найпоширеніших алгоритмів симетричного шифрування.
Розробники | В.Реймен, Д.Даймон |
---|---|
Уперше оприлюднений | 2001 р. |
Раундів | 10/12/14 |
Тип | SP-мережа |
Історія
Потреба у новому стандарті шифрування постала у середині 1990-х років. Наявний тоді стандарт DES, довжиною ключа 56 біт, давав змогу застосувати метод грубої сили для дешифрування даних. Успішні злами даних відбулися вже наприкінці 1990-х. Крім того, архітектура DES орієнтувалась на апаратну реалізацію, а програмна реалізація на платформах з обмеженими ресурсами не давала необхідної швидкості застосування. Модифікація DES 3-DES мала достатню довжину ключа, але при цьому була ще повільнішою.
12 жовтня 1997 р. NIST оголосив конкурс на обрання спадкоємця для DES, що був американським стандартом ще з 1977 року. Перед претендентами поставили такі основні вимоги
- блочний шифр
- довжина блоку 128 біт
- ключі довжиною 128, 192 і 256 біт.
Вибір алгоритму проходив у три етапи. 20 серпня 1998 року на 1-й конференції AES було оголошено список з 15 кандидатів. У серпні 1999 року на 2-й конференції AES список скоротився до п'яти фіналістів: MARS, RC6, Rijndael, Serpent і Twofish. За результатами доповідей 3-ї конференції, що проходила у Нью-Йорку 13—14 квітня 2000 року, 2 жовтня 2000 алгоритм, запропонований бельгійськими криптографами Д. Деймоном та В. Ріджменом, був оголошений переможцем конкурсу і почалась процедура стандартизації. 26 травня 2002 року AES був прийнятий як стандарт.
Опис алгоритму
У принципі алгоритм, запропонований Рейменом і Дейцменом, і AES не одне і те ж. Алгоритм Рейндол підтримує широкий діапазон розміру блоку та ключа. AES має фіксовану довжину у 128 біт, а розмір ключа може приймати значення 128, 192 або 256 біт. У той час як Рейндол підтримує розмірність блоку та ключа із кроком 32 біт у діапазоні від 128 до 256. Через фіксований розмір блоку AES оперує із масивом 4 × 4 байт, що називається станом (версії алгоритму із більшим розміром блоку мають додаткові колонки).
Для ключа 128 біт алгоритм має 10 раундів у яких послідовно виконуються операції
- subBytes()
- shiftRows()
- mixcolumns() (у 10-му раунді пропускається)
- xorRoundKey()
SubBytes()
Процедура SubBytes() обробляє кожен байт стану незалежно, проводячи нелінійну заміну байтів використовуючи таблицю замін (S-box). Така операція забезпечує нелінійність алгоритму шифрування. Побудова S-box складається з двох кроків. По-перше, проводиться отримання зворотного числа в полі Галуа . По-друге, до кожного байту b з яких складається S-box застосовується така операція:
де , і де є i-й біт b, а — i-й біт константи . Таким чином, забезпечується захист від атак, заснованих на простих алгебраїчних властивостях.
S-box можна відобразити таблицею простої підстановки:
\ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f |
0 | 63 | 7c | 77 | 7b | f2 | 6b | 6f | c5 | 30 | 01 | 67 | 2b | fe | d7 | ab | 76 |
1 | ca | 82 | c9 | 7d | fa | 59 | 47 | f0 | ad | d4 | a2 | af | 9c | a4 | 72 | c0 |
2 | b7 | fd | 93 | 26 | 36 | 3f | f7 | cc | 34 | a5 | e5 | f1 | 71 | d8 | 31 | 15 |
3 | 04 | c7 | 23 | c3 | 18 | 96 | 05 | 9a | 07 | 12 | 80 | e2 | eb | 27 | b2 | 75 |
4 | 09 | 83 | 2c | 1a | 1b | 6e | 5a | a0 | 52 | 3b | d6 | b3 | 29 | e3 | 2f | 84 |
5 | 53 | d1 | 00 | ed | 20 | fc | b1 | 5b | 6a | cb | be | 39 | 4a | 4c | 58 | cf |
6 | d0 | ef | aa | fb | 43 | 4d | 33 | 85 | 45 | f9 | 02 | 7f | 50 | 3c | 9f | a8 |
7 | 51 | a3 | 40 | 8f | 92 | 9d | 38 | f5 | bc | b6 | da | 21 | 10 | ff | f3 | d2 |
8 | cd | 0c | 13 | ec | 5f | 97 | 44 | 17 | c4 | a7 | 7e | 3d | 64 | 5d | 19 | 73 |
9 | 60 | 81 | 4f | dc | 22 | 2a | 90 | 88 | 46 | ee | b8 | 14 | de | 5e | 0b | db |
a | e0 | 32 | 3a | 0a | 49 | 06 | 24 | 5c | c2 | d3 | ac | 62 | 91 | 95 | e4 | 79 |
b | e7 | c8 | 37 | 6d | 8d | d5 | 4e | a9 | 6c | 56 | f4 | ea | 65 | 7a | ae | 08 |
c | ba | 78 | 25 | 2e | 1c | a6 | b4 | c6 | e8 | dd | 74 | 1f | 4b | bd | 8b | 8a |
d | 70 | 3e | b5 | 66 | 48 | 03 | f6 | 0e | 61 | 35 | 57 | b9 | 86 | c1 | 1d | 9e |
e | e1 | f8 | 98 | 11 | 69 | d9 | 8e | 94 | 9b | 1e | 87 | e9 | ce | 55 | 28 | df |
f | 8c | a1 | 89 | 0d | bf | e6 | 42 | 68 | 41 | 99 | 2d | 0f | b0 | 54 | bb | 16 |
Наприклад, на вході 19 на виході отримаємо d4.
Фактично це звичайний шифр простої підстановки.
ShiftRows()
ShiftRows працює з рядками таблиці State. При цій трансформації рядка стану циклічно зсуваються на r байтів по горизонталі, залежно від номера рядка. Для нульового рядка r = 0, для першого рядка r = 1 і т. д. Таким чином кожна колонка вихідного стану після застосування процедури ShiftRows складається з байтів з кожної колонки початкового стану. Для алгоритму Rijndael патерн зсуву рядків для 128- і 192-бітних рядків однаковий. Однак для блоку розміром 256 біт відрізняється від попередніх тим, що 2-й, 3-й і 4-й рядки зміщуються на 1, 3, і 4 байти, відповідно.
Фактично це проста перестановка байтів таблиці 4х4 State.
MixColumns()
У процедурі MixColumns, чотири байти кожної колонки State змішуються, використовуючи для цього зворотну лінійну трансформацію. MixColumns опрацьовує стан по колонках, трактуючи кожну з них як . Над цими поліномами виконується множення в по модулю на фіксований многочлен . Разом з ShiftRows, MixColumns вносить дифузію в шифр.
Під час цієї операції, кожен стовпчик множиться на матрицю, яка для 128-бітного ключа має вигляд
AddRoundKey()
У процедурі AddRoundKey RoundKey кожного раунду об'єднується зі State. Для кожного раунду Roundkey виходить із CipherKey використовуючи процедуру KeyExpansion; кожен RoundKey такого ж розміру, що і State. Процедура виробляє побітовий XOR кожного байта State із кожним байтом RoundKey. Фактично це звичайний побайтовий XOR байт ключа з байтами таблиці State.
Примітки
- Biryukov, Alex and Khovratovich, Dmitry. Related-key Cryptanalysis of the Full AES-192 and AES-256. — Advances in Cryptology – ASIACRYPT 2009, 2009. — Vol. 5912. — DOI: .
- . Архів оригіналу за 28 вересня 2010. Процитовано 19 березня 2008.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - . Архів оригіналу за 1 серпень 2012. Процитовано 20 березень 2008.
Це незавершена стаття з криптографії. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Advanced Encryption Standard AES takozh vidomij pid nazvoyu Rijndael simetrichnij algoritm blochnogo shifruvannya rozmir bloka 128 bit klyuch 128 192 256 bit Finalist konkursu AES prijnyatij yak amerikanskij standart shifruvannya uryadom SShA Vibir pripav na AES z rozrahuvannyam na shiroke vikoristannya ta aktivnij analiz algoritmu yak ce bulo iz jogo poperednikom DES Derzhavnij institut standartiv i tehnologij angl National Institute of Standards and Technology NIST SShA opublikuvav poperednyu specifikaciyu AES 26 zhovtnya 2001 roku pislya p yatirichnoyi pidgotovki 26 travnya 2002 roku AES ogolosheno standartom shifruvannya Stanom na 2009 rik AES ye odnim z najposhirenishih algoritmiv simetrichnogo shifruvannya AES Rijndael AES RijndaelRozrobniki V Rejmen D DajmonUpershe oprilyudnenij 2001 r Raundiv 10 12 14Tip SP merezhaIstoriyaPotreba u novomu standarti shifruvannya postala u seredini 1990 h rokiv Nayavnij todi standart DES dovzhinoyu klyucha 56 bit davav zmogu zastosuvati metod gruboyi sili dlya deshifruvannya danih Uspishni zlami danih vidbulisya vzhe naprikinci 1990 h Krim togo arhitektura DES oriyentuvalas na aparatnu realizaciyu a programna realizaciya na platformah z obmezhenimi resursami ne davala neobhidnoyi shvidkosti zastosuvannya Modifikaciya DES 3 DES mala dostatnyu dovzhinu klyucha ale pri comu bula she povilnishoyu 12 zhovtnya 1997 r NIST ogolosiv konkurs na obrannya spadkoyemcya dlya DES sho buv amerikanskim standartom she z 1977 roku Pered pretendentami postavili taki osnovni vimogi blochnij shifr dovzhina bloku 128 bit klyuchi dovzhinoyu 128 192 i 256 bit Vibir algoritmu prohodiv u tri etapi 20 serpnya 1998 roku na 1 j konferenciyi AES bulo ogolosheno spisok z 15 kandidativ U serpni 1999 roku na 2 j konferenciyi AES spisok skorotivsya do p yati finalistiv MARS RC6 Rijndael Serpent i Twofish Za rezultatami dopovidej 3 yi konferenciyi sho prohodila u Nyu Jorku 13 14 kvitnya 2000 roku 2 zhovtnya 2000 algoritm zaproponovanij belgijskimi kriptografami D Dejmonom ta V Ridzhmenom buv ogoloshenij peremozhcem konkursu i pochalas procedura standartizaciyi 26 travnya 2002 roku AES buv prijnyatij yak standart Opis algoritmuU principi algoritm zaproponovanij Rejmenom i Dejcmenom i AES ne odne i te zh Algoritm Rejndol pidtrimuye shirokij diapazon rozmiru bloku ta klyucha AES maye fiksovanu dovzhinu u 128 bit a rozmir klyucha mozhe prijmati znachennya 128 192 abo 256 bit U toj chas yak Rejndol pidtrimuye rozmirnist bloku ta klyucha iz krokom 32 bit u diapazoni vid 128 do 256 Cherez fiksovanij rozmir bloku AES operuye iz masivom 4 4 bajt sho nazivayetsya stanom versiyi algoritmu iz bilshim rozmirom bloku mayut dodatkovi kolonki Dlya klyucha 128 bit algoritm maye 10 raundiv u yakih poslidovno vikonuyutsya operaciyi subBytes shiftRows mixcolumns u 10 mu raundi propuskayetsya xorRoundKey SubBytes U proceduri SubBytes kozhen bajt v state zaminyuyetsya vidpovidnim elementom u fiksovanij 8 bitnij tablici poshuku S bij S aij Procedura SubBytes obroblyaye kozhen bajt stanu nezalezhno provodyachi nelinijnu zaminu bajtiv vikoristovuyuchi tablicyu zamin S box Taka operaciya zabezpechuye nelinijnist algoritmu shifruvannya Pobudova S box skladayetsya z dvoh krokiv Po pershe provoditsya otrimannya zvorotnogo chisla v poli Galua G F 2 8 displaystyle GF left 2 8 right Po druge do kozhnogo bajtu b z yakih skladayetsya S box zastosovuyetsya taka operaciya B i b i b i 4 mod 8 b i 5 mod 8 b i 6 mod 8 b i 7 mod 8 c i displaystyle B i b i oplus b left i 4 right bmod 8 oplus b left i 5 right bmod 8 oplus b left i 6 right bmod 8 oplus b left i 7 right bmod 8 oplus c i de 0 i lt 8 displaystyle 0 leq i lt 8 i de b i displaystyle b i ye i j bit b a c i displaystyle c i i j bit konstanti c 63 16 99 10 01100011 2 displaystyle c 63 16 99 10 01100011 2 Takim chinom zabezpechuyetsya zahist vid atak zasnovanih na prostih algebrayichnih vlastivostyah S box mozhna vidobraziti tabliceyu prostoyi pidstanovki S box 0 1 2 3 4 5 6 7 8 9 a b c d e f 0 63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76 1 ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0 2 b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15 3 04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75 4 09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84 5 53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf 6 d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8 7 51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2 8 cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73 9 60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db a e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79 b e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08 c ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a d 70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e e e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df f 8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16 Napriklad na vhodi 19 na vihodi otrimayemo d4 Faktichno ce zvichajnij shifr prostoyi pidstanovki ShiftRows U proceduri ShiftRows bajti v kozhnomu ryadku state ciklichno zsuvayutsya vlivo Rozmir zmishennya bajtiv kozhnogo ryadka zalezhit vid yiyi nomera ShiftRows pracyuye z ryadkami tablici State Pri cij transformaciyi ryadka stanu ciklichno zsuvayutsya na r bajtiv po gorizontali zalezhno vid nomera ryadka Dlya nulovogo ryadka r 0 dlya pershogo ryadka r 1 i t d Takim chinom kozhna kolonka vihidnogo stanu pislya zastosuvannya proceduri ShiftRows skladayetsya z bajtiv z kozhnoyi kolonki pochatkovogo stanu Dlya algoritmu Rijndael patern zsuvu ryadkiv dlya 128 i 192 bitnih ryadkiv odnakovij Odnak dlya bloku rozmirom 256 bit vidriznyayetsya vid poperednih tim sho 2 j 3 j i 4 j ryadki zmishuyutsya na 1 3 i 4 bajti vidpovidno Faktichno ce prosta perestanovka bajtiv tablici 4h4 State MixColumns U proceduri MixColumns kozhna kolonka stanu peremnozhuyetsya z fiksovanim mnogochlenomc x U proceduri MixColumns chotiri bajti kozhnoyi kolonki State zmishuyutsya vikoristovuyuchi dlya cogo zvorotnu linijnu transformaciyu MixColumns opracovuye stan po kolonkah traktuyuchi kozhnu z nih yak Nad cimi polinomami vikonuyetsya mnozhennya v G F 2 8 displaystyle GF 2 8 po modulyu x 4 1 displaystyle x 4 1 na fiksovanij mnogochlen c x 3 x 3 x 2 x 2 displaystyle c x 3x 3 x 2 x 2 Razom z ShiftRows MixColumns vnosit difuziyu v shifr Pid chas ciyeyi operaciyi kozhen stovpchik mnozhitsya na matricyu yaka dlya 128 bitnogo klyucha maye viglyad 2 3 1 1 1 2 3 1 1 1 2 3 3 1 1 2 displaystyle begin bmatrix 2 amp 3 amp 1 amp 1 1 amp 2 amp 3 amp 1 1 amp 1 amp 2 amp 3 3 amp 1 amp 1 amp 2 end bmatrix dd AddRoundKey U proceduri AddRoundKey kozhen bajt stanu ob yednuyetsya z RoundKey vikoristovuyuchi operaciyu XOR U proceduri AddRoundKey RoundKeykozhnogo raundu ob yednuyetsya zi State Dlya kozhnogo raundu Roundkeyvihodit iz CipherKeyvikoristovuyuchi proceduru KeyExpansion kozhen RoundKey takogo zh rozmiru sho i State Procedura viroblyaye pobitovij XOR kozhnogo bajta State iz kozhnim bajtom RoundKey Faktichno ce zvichajnij pobajtovij XOR bajt klyucha z bajtami tablici State PrimitkiBiryukov Alex and Khovratovich Dmitry Related key Cryptanalysis of the Full AES 192 and AES 256 Advances in Cryptology ASIACRYPT 2009 2009 Vol 5912 DOI 10 1007 978 3 642 10366 7 1 Arhiv originalu za 28 veresnya 2010 Procitovano 19 bereznya 2008 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya Arhiv originalu za 1 serpen 2012 Procitovano 20 berezen 2008 Ce nezavershena stattya z kriptografiyi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi