- •1.Симметричные
- •2.Асимметричные
- •Асимметричноешифрование.
- •Алгоритмпередачисекретногоключапооткрытомуканалу
- •Лекция№2 Элементытеориичисел
- •АлгоритмЕвклида
- •Лекция№3
- •1)ПлотностьпоявленияпростыхчиселназаданноминтервалепадаетсувеличениемN.
- •1)Самыйдревнийспособполученияпростыхчисел,какмыужезнаем,-
- •РешетоЭратосфена
- •Лекция№4 Получениепростыхчисел.
- •7.Б.Увеличитьсчетчикpна2.Перейтикпункту7.
- •ПроверкапростотычиселМерсенна
- •ТестЛюка-Лемера
- •Лекция5
- •Разложениечиселна2простыхсомножителя
- •АлгоритмБухштаба
- •АлгоритмФерма
- •Лекция№6 Числовыефункции
- •ФункцияЭйлера
- •Мультипликативнаяфункция
- •ФункцияМебиуса
- •0,Еслиdделитсянаквадратнекоторогоростогочисла.
- •1)Находимвседелителиdi|m
- •Числоваяфункция
- •2.ВозведениенатуральныхчиселпомодулювбольшиестепенипосхемеГорнера
- •Лекция8 Сравнимостьпомодулю.Модулярнаяарифметика
- •Свойстваоперацийсравнения
- •Лекция9 Модулярнаяарифметика(продолжение)КвадратичныевычетыСтепенныевычеты
- •Лекция10 Общаяалгебра
- •1)Замкнутость;
- •1)Замкнутость:длялюбыхαиβизSэлементпринадлежитS,где(*)-
- •Лекция11 Конечныеполя
- •Характеристикаполя
- •Вычислениеобратныхэлементов
- •11.Какиематематическиеоперациииспользуютсявалгоритмах? лекция12 Многочленынадконечнымполем
- •ПримитивныеполиномынадполемGf(p)
- •Алrебраическиеструктурынадмножествоммногочленов КольцомногочленовнадполемGf(p)
- •Корнимногочлена
- •Лекция13 Расширениеполей
- •Лекция14 Дополнительныйматериализраздела Теориячисел
- •1.Уравнениясравнений
- •1)Имеется1решение
- •2)Неимеетсярешений
- •2.Китайскаятеоремаобостатках
- •3.Тестированиечиселнапростоту Псевдопростыечисла
- •ТестЛюка
- •4.ЧислаКармайкла
- •5.ПолучениепростыхчиселдляалгоритмаRsa Процедураполученияустойчивыхпростыхчисел
- •Лекция15
- •1.Генераторыпсевдослучайныхпоследовательностей
- •2.ГпсПнаосновепроизведениямногочленов
- •Произведениямногочленов
- •Лекцич16 СпособыпредставленияэлементовполяGf(2n)
- •АрифметическиеоперациинадэлементамиполяGf(2n), заданнымивстандартномбазисе
- •Классическаясхемаумножения
- •МатематическаямодельалгоритмаRijndael
- •РаундпреобразованияалгоритмаRijndael
- •4.КакиешагисодержитраундшифрованияалгоритмаRijndael?
- •Перечень темпопрактическимзанятиям
- •Списоклитературы
МатематическаямодельалгоритмаRijndael
БайтыможнорассматриватькакэлементыконечногополяGF(28)-
многочленыстепенинеболее7
а7х7+а6х6+а5х5+а4х4+а3х3+а2х2+а1х1+а0х0,
которыемогутбытьзаданыстрокойкоэффициентов
{а7,a6,a5,a4,а3,а2,а1,a0},аi{0,1},i0,7.
Например,байтувдвоичномвиде110010112(илиcb16)ставитсявсоответствиемногочленх7+х6+х3+х+1.
В раундах шифрования используются 32-битные слова,представленныеввидемногочленовa(х)скоэффициентамиаiGF(28)
размеромвбайт,i0,3:
а(х)=а3х3+а2х2+а1х+a0.
ОперациясложениямногочленовскоэффициентамиизGF(28).Сложениедвухмногочленова(х)иb(х)скоэффициентамиизGF(28)заключаетсявпоразрядномсложениипооперацииXORкоэффициентовпринеизвестныходинаковойстепени:
а(х)+b(х)=(а3b3)х3+(а2b2)х2+(а1b1)х+(a0b0).
Призаданииполиномовввиде4-байтовыхсловсложениезаключаетсявпоразряднойоперацииXORвсехразрядовскладываемыхслов.
ОперацияумножениямногочленовскоэффициентамиизGF(28).
Пустьперемножаются2многочлена
а(х)=а3х3+a2х2+а1х+a0иb(х)=b3х3+b2х2+b1х+b0.
Результатомумноженияс(х)=а(х)?b(х)будетмногочлен
c(х)=c6x6+c5x5+c4x4+c3x3+c2x2+c1x+c0,где
c0=a0b0,
c1=a1b0a0b1,
с2=а2b0а1b1a0b2,
с3=а3b0a2b1а1b2a0b3,
с4=а3b1а2b2a1b3,
с5=а3b2а2b3,
с6=а3b3.
Для того чтобы результат умножения мог быть представлен 4-
байтовымсловом,егонормируютпомодулю-многочленомстепенинеболее4-многочленом
x4+1.
Результатомd(x)умножениядвухмногочленовпомодулюх4+1
d(x)=a(x)?b(х)mod(х4+1)
будетмногочлен
d(x)=d3x3+d2x2+d1x+d0,гдеd0=a0b0a3b1a2b2a1b3,d1=a1b0a0b1a3b2a2b3,d2=a2b0a1b1a0b2a3b3,
d3=a3b0a2b1a1b2a0b3,
Иливматричнойформе:
d0
a0a3a2a1
b0
d
aa
aa
b
11
0 3 2
1.
d2
a2a1a0a3
b2
d3
a3a2a1a0
b3
Многочленb(х)=b3x3+b2x2+b1x+b0(biGF(28),
i0,3)можно
умножитьнахпомодулюх4+1следующимобразом.Умножениеаналогичноциклическомусдвигукоэффициентовbiвлево,всторонустаршейстепениb(х):
(х?b(х))mod(х4+1)=b2x3+b1x2+b0x+b3.
РаундпреобразованияалгоритмаRijndael
RIJNDAELвыполняетсериюоднотипныхраундовпреобразованияшифруемогоблока.Шифруемыйблокиегопромежуточныесостояниявходепреобразованияпредставляютсяввидеквадратнойматрицы.Раундсостоитизчетырехпоследовательновыполняемыхшагов(рис.4.2):
1)заменабайтовS[](SubBytes)-каждыйбайтблокаданныхзаменяетсяновымзначениемпофиксированнойматрицезамены;
2)побайтовыйциклическийсдвигR(ShiftRows)встрокахматрицы:i-ястрокациклическисдвигаетсянаi-1байтоввлево,а1-ястроканеизменяется;
3)матричноеумножениеM?[](MixColumns)-байты,представленныеввидемногочленовнадполемGF(28),умножаютсянафиксированныймногочлентретьейстепениg(x)помодулюx4+1;
4)сложениесраундовымключом(AddRoundKey)-выполнениеоперациипоразрядногоисключающегоили(XOR)байтовстекущейчастью
ключаалгоритма.
k0
1-ыйраунд X0
2-ойраунд
S[]
S[]
R M?[]
R M?[]
X1 k1
X2 k2
………
………
10
10-ыйраунд k10 X
S[] R
Рис.4.2.СхемапреобразованияданныхалгоритмомRIJNDAELсдлинойключав128бит
X-входнойблокданных;
XiиXi+1-преобразуемыйблокнавходеивыходеi-гораунда,i0,10;
ki-ключевойэлементi-гораунда.
В10-мраундеоперацияM?[]отсутствует.Преобразование SubBytes (1-ый шаг раунд
шифрования/расшифрования)являетсянелинейнойзаменойбайт,выполняемойдлякаждогобайтавходныхданных.SubBytesвыполняетследующиепреобразованиявходногобайта:
1)вычисляетсяобратныйэлемент(раздел3.4)отвходногобайтапо
операцииумножениявполеGF(28);принимается,что0остается0;
2)выполняетсяаффинноепреобразованиенадбитамивходногобайта:
b'0
1 0
0 0 1
1 1 1
b0
1
b'1
b'2
1 1
1 1
0 0 0
1 0 0
1 1 1
0 1 1
b1
b2
1
0
b'3
b'4
1 1
1 1
1 1 0 0
1 1 1 0
0 1
0 0
b3
b4
0,
0
b'5
0 1
1 1 1 1
0 0
b5
1
b
b
'6
0 0 1
1 1 1 1
0 6 1
b'7
0 0
0 1 1
1 1 1
b7
0
гдеbiиb'i-исходноеипреобразованноезначениеi-гобита,
i0,7.
Аффинноепреобразованиеможнозаписатьввидеуравнения:
b'i=bib(i+4)mod8b(i+5)mod8b(i+6)mod8b(i+7)mod8b(i+4)mod8ci,
гдеc0=c1=c5=c6=1,c2=c3=c4=c7=0.
ВпреобразованииMixColumns(3-ойшаграунда)входныебайтырассматриваютсякакмногочленынадGF(2n)иумножаютсяпомодулюx4+1
намногочленg(x)вида
g(x)='03'x3+'01'x2+'01'x+'02'.
Операциюумноженияможнопредставитьвматричномвидекак
s'0c
02030101
s0c
s'
01020301
s
1c
1c
s'2c
01010203
s2c,
s'3c
03010102
s3c
гдеsicиs’ic-i-ыебайтывходногоивыходногодвойныхслов,
c-номердвойногословавшифруемомтексте.
Вопросыдлясамопроверки.
i0,3,
1. Какими достоинствами и недостатками обладает алгоритм
RIJNDAEL?
2.КакиеестьмодификацииалгоритмаRIJNDAEL?
3.Поясните,какиеоперациинадконечнымиполямииспользуютсяв
алгоритмеRIJNDAEL?
