- •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?
- •Перечень темпопрактическимзанятиям
- •Списоклитературы
АрифметическиеоперациинадэлементамиполяGf(2n), заданнымивстандартномбазисе
Сложениедвухмногочленовa0 b0 a0b0a1 b1 a1b1a2 b2 a2b2
... ... ...
AB= ak-1 bk-1 = ak-1bk-1
0 bk bk
... ... ...
0 bn-1 bn-1
Рис.3.4.Сложениедвухполиномов
ПустьмногочленыAиBзаданывекторами
A(a0,a1,…,ak-1)иB(b0,b1,…,bn-1),
где
ai,bj{0,1},
i0,k1,
j0,n1
- двоичные коэффициенты
многочленов A и B, k=deg(A) и n=deg(B). Тогда сложение двухмногочленовможнопредставитьввидеследующейматричнойоперации
(рис.3.4):
AB={aibi}.
Данныйалгоритмпозволяетоперироватьцелымимашиннымисловами.При этом данные должны располагаться в порядке, обратном
математическому.
Классическаясхемаумножения
Данныйалгоритмсостоитиздвухосновныхшагов:
1)вначале2полиномаf1(x)иf2(x)перемножаются,ссокращениемподобныхчленов(коэффициентыскладываютсяпомодулюдва);
2)отрезультатаберетсяостатокотделениянанеприводимыйполином-
модульP(x),задающийданноеполе.
Пример.ПустьзаданыполеGF(24),примитивныйполином-модуль
P(x)=x4+x+1 и перемножаемые элементы поля f1(x)=x3+x2+1 и
f2(x)=x2+x+1.Найтиf3(x)=f1(x)?f2(x)modP(x).
f1(x)?f2(x)=(x3+x2+1)(x2+x+1)=x5+x4+x3+x4+x3+x2+x2+x+1
=
=x5+x+1.
Найдемостатокотделенияf1(x)?f2(x)наP(x):
x5
x1
x4x1
x5x2x x .
x2 1
Витоге,результатравенf3(x)=f1(x)?f2(x)modP(x)=x2+1.
Проверимрезультат.f1(x)соответствуетстепенипримитивногоэлементаξ13,аf2(x)-ξ10.Используяформулу(раздел3.1)умножениядвухпримитивныхэлементов,заданныхвнормальномбазисе,получимвкачестверезультатаэлементξ13?ξ10=ξ23mod15=ξ8.Емусоответствуетполиномx2+1(пример3.3,табл.3.1).
Ответ:f3(x)=x2+1.
ОперацияделениянамодульР(х)
Пример.Модуль–примитивныйполиномР(x)=x4+x+1,ввекторнойформе 10011
Исходныйполиномf(x)=x10+x8+x6+x5+x,ввекторнойформе
10101100010
ОперацияделенияполиноманамодульР(х):
x10+x8+x6+x5+x x4+x+1x10+x7+x6 x6+x4+x3
x8+x7+x5+x
x8+x7+x4
x7+x4+xx7+x4+x3
x3+x -R(x)
ОперацияделениянамодульР(х)ввекторнойформе(вдвоичномпредставлении)
10101100010 10011
10011 1011
11010
10011
10010
10011
1010 -R(x)
Лекция17
ПРИЛОЖЕНИЯТЕОРИИЧИСЕЛ
ИКОНЕЧНЫХПОЛЕЙКАЛГОРИТМАМШИФРОВАНИЯ
АлгоритмасимметричногошифрованияRSA
АлгоритмRSAпредложилив1978г.3автора:Райвест(Rivest),Шамир(Shamir)иАдлеман(Adleman).RSAявляетсяалгоритмомсоткрытымключом,работающимврежимахшифрованияданныхиэлектроннойцифровойподписи.Всистемахсоткрытымключомисключаютявнуюпередачупооткрытымканаламсекретныхпостоянныхданных-секретныхключейдляшифрования.
Надежностьалгоритмаосновываетсянабольшойвычислительнойсложности:
-факторизации(разложениянапростыесомножители)большихчисел
-ивычислениядискретныхлогарифмов.
Сложностьвычислениядискретныхлогарифмовзаключаетсявтом,чтопоизвестномучислуКо(открытомуключу)изашифрованномутекстуCматематическисложноподобратьсекретныйключKcиисходныйтекстM,длякоторыхбудетвыполнятьсяравенствоМ=CKcmodN,гдеC=MKоmodN.
Асимметричныеалгоритмыприменяютсявосновномвпроцедурах
рассылкисекретныхключейдляпользователейипроверкицифровыхподписей,адляшифрованиясообщенийиспользуютсимметричныеалгоритмы,базирующиесянаметодахзаменыиперестановки.
ВалгоритмевыбираютсяслучайныебольшиепростыечислаРиQ,равнойдлины(содинаковымколичествомдвоичныхилидесятичныхразрядов,необходимыхдляхранениячисла),которыеявляютсясекретом.ДанныечислаобразуютмодульN,используемыйдлянормированиярезультатов:N=P?Q.
ОткрытыйключКовыбираетсяслучайнымобразомтак,чтобыодновременновыполнялисьусловия:
1<Kо≤(N),
НОД(Kо,(N))=1,
(N)=(P-1)(Q-1),
где(N)-функцияЭйлера(раздел1.6).ФункцияЭйлера(N)указывает
количество положительныхцелыхчиселвинтервале
1,N1,которые
взаимнопростыесчисломN.Второеусловиеозначает,чтооткрытыйключKоифункция(N)должныбытьвзаимнопростыми(использованиеалгоритмаЕвклида,раздел1.1).
Далее, используя расширенный алгоритм Евклида (раздел 2.2),вычисляетсясекретныйключKскакобратныйэлементкKо,такой,что
-1
Kc?Ко≡1mod(N)илиKc=Ко
mod((P-1)(Q-1)).
ДлявычисленияKcчисла(N)иКодолжныбытьвзаимнопростыми,тоестьчтобывыполнялосьусловиеНОД((N),Ко)=1.
ОткрытыйключKоиспользуютдляшифрованияданных,асекретныйключKc-длярасшифровки.
ОткрытыйтекстMпередшифрованиемразбиваетсяначисловыеблоки
Mi,непревосходящихN.
ПришифрованиивыполняетсяпреобразованиеоткрытоготекстаMсоткрытымключомКопоследующейформуле(возведениевстепеньснормированиемрезультатапомодулювыполняетсяспомощьюсхемы
Горнера,раздел1.7):
C=MKоmodN.
Задача расшифровки зашифрованного текста С решается сиспользованиемпарычисел-секретногоключаKcизашифрованноготекста
С-поформуле:
М=CKcmodN.
ПроцессрасшифровкиможнозаписатькакD(E(M))=M(D-операциярасшифровки,E-операцияшифрования).ТогдаM=(MKо)KcmodN.
Рассмотримвопрос:почемудля целогочислаM,удовлетворяющегонеравенству0≤M≤N-1,выполняетсятождествоD(E(M))=M.
УсловиеKc?Ко≡1mod(N)можнозаписатьввидеKc?Ко=1+
(N)?t,гдеt-некотороецелоечисло.Тогда(MKо)KcmodN=M1+(N)?tmodN=
=[M?M(N)?t]modN=M?(M(N))tmodN.
ЕсличислаMиNвзаимнопростыми,топотеоремеЭйлера(раздел1.6)
M(N)≡1modN.Врезультате,M?(M(N))tmodN=[(MmodN)?
?(M(N)tmodN)]modN=M?(1)tmodN=M?1modN=M.
ДоказательствотождестваD(E(M))=Mдляобщегослучая(когда
NиMнеявляютсявзаимнопростыми).Покажем:почемуработаетRSA.
ЧтобыоднозначнопоставитьвсоответствиеСиМ,требуетсявыполнениеусдовия
e·d≡1modφ(m), m=N
С=Memodm;m=p·q;M<m.
Сdmodm=M=Me·dmodm=M(1+φ(m)k)modm=M·Mφ(m)kmodm=M
modm,
таккакe·d≡1modφ(m)
e·d=1+φ(m)·k,
aφ(m)k≡1kmodm,(a,m)=1
Необходимодоказать,чтоp·q|(Med–M)длялюбыхМ
Medmodp=Mmodp
Medmodq=Mmodq
p|(Med–M)
q|(Med–M)
(M·Mφ(m)k)modp=M·M(p-1)(q-1)kmodp=Mmodp
(M·Mφ(m)k)modq=M·M(p-1)(q-1)kmodq=Mmodq
M·M(p-1)(q-1)kmodp=1
M·M(p-1)(q-1)kmodq=1
Следовательно,p·q|(Med–M).Потеориисравнимости:еслиодноитожечислоделитсянаpинаq,тооноделитсяинаихпроизведение.
ВкриптосистемеRSAоткрытыйключКоисекретныйключКс
принадлежат множеству целых чисел
2,(N), а сообщение М и
криптограммаС-множествуцелыхчисел
Элементамисистемыявляются:
0,N1,гдеN-модуль.
-открытые-открытыйключKo,модульNишифротекстC;
-закрытые-секретныйключKc,простыечислаPиQ,иисходныйтекстM.
ОсобенностиалгоритмаRSA.
ЧтобыалгоритмRSAимелпрактическуюценность,необходимо:
-генерироватьбольшиепростыечислабезбольшихвременныхзатрат;
-уметьоперативновычислятьзначенияключейКcиКo.
ДлянахождениячиселPиQизNпередзлоумышленникомсуществуетзадачаразложениячислаNнамножители.ДляполученияоткрытоготекстаMиззакрытоготекстаC,беззнаниясекретногоключаKc,возникаетпроблеманахождениядискретногологарифма.Обеэтизадачиимеютвычислительнуюэкспоненциальнуюсложность.
РеализацияRSAпримернов100-1000размедленнеесоответствующейреализациисимметричногоалгоритма.
НедостатокалгоритмаRSA-существуетмалаявероятностьтого,чтошифровкачислаMвозведениемвстепеньКoпомодулюNможетнеизменитьоткрытыйтекстM,тоестьMKо≡MmodN.
Предлагаютсяследующиеоценкидлинключейдляасимметричныхалгоритмов,сучетомпрогрессаразвитиявычислительнойтехники(рис.4.1).
ОписаниеалгоритмаRSA.Рассмотримреализациюданногоалгоритмадлячиселразмерностьювмашинноеслово(до232),задаваявкачествеисходногооткрытоготекстабуквырусскогоалфавита,ивыбираямодуль,соизмеримыйсразмеромалфавита(еслимодульбудетменьше,торезультатрасшифровкибудетотличатьсяотисходногооткрытоготекста).
Рис.4.1.Оценкидлинключейдляасимметричныхсистем
ПустьпользовательАхочетпередатьпользователюВсообщениевзашифрованномвиде,используякриптосистемуRSA.ПользовательАвыступаетвролиотправителясообщения,апользовательВ-вролиполучателя.ЭлементыкриптосистемыRSAдолженформироватьполучательсообщения-пользовательВ.РассмотримпоследовательностьдействийпользователяВипользователяА.
ДействияпользователяB.
1.Выбираются2произвольныхбольшихпростыхчислаРиQ.
2.ВычисляетсязначениемодуляN=Р?Q.
3.ВычисляетсяфункцияЭйлера:(N)=(P-1)(Q-1)ивыбираетсяслучайнымобразомзначениеоткрытогоключаКо,удовлетворяющегоусловиям:
1<Kо≤(N),
НОД(Kо,(N))=1(алгоритмЕвклида,раздел1.1).
4.ВычисляетсязначениесекретногоключаKc(расширенныйалгоритм
Евклида,раздел2.2)решениемсравнения
-1
Kc≡Ко
mod(N).
5.ПользователюАпересылаетсяпарачисел(N,Ко)понезащищенномуканалу.
ДействияпользователяA,передающегопользователюВсообщениеМ.
6.ИсходныйоткрытыйтекстМразбиваетсянаnблоковчиселMi<N,
i0,n1.
7.Текст, представленный в виде последовательности чисел Мi,
шифруетсяпоформулеСi=МiКomodN,
i0,n1
(схемаГорнера,раздел
1.7);отправляетсякриптограммаC0,С1,...,Сn-1пользователюВ.
ДействияпользователяB.
8.РасшифровываетсяполученнаякриптограммаC0,С1,...,Сn-1спомощьюсекретногоключаKcпоформулеMi=СiКcmodN.ВрезультатебудетвосстановленапоследовательностьчиселМi,образующихисходноесообщениеМ.
Пример4.1.Проведемшифрованиеирасшифровкусообщения"ЭБФ".Будемиспользоватьрусскиепрописныебуквы(переводбуквалфавитав
числапредставленвтабл.4.1).
Таблица4.1.Номерабукврусскогоалфавита
-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
А
Б
В
Г
Д
Е
Ж
З
И
Й
К
Л
М
Н
О
П
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Р
С
Т
У
Ф
Х
Ц
Ч
Ш
Щ
Ъ
Ы
Ь
Э
Ю
Я
ДействияпользователяВ.
1.ВыбираютсянекоторыеР=3иQ=11.
2.ВычисляетсямодульN=P?Q=3?11=33.
3.ВычисляетсязначениефункцииЭйлерадляN=33:
(N)=(33)=(Р-1)(Q-1)=2?10=20.
Выбирается вкачествеоткрытогоключаКoпроизвольноечисло,удовлетворяющееусловиям:1<Кo≤20, НОД(Кo,20)=1.
ПустьКo=7.
4.ВычисляетсязначениесекретногоключаКc(расширенныйалгоритм
Евклида,раздел2.2)решениемсравнения
o
Кс≡К-1
mod(N)=7-1
mod20≡3.
5.ПересылаетсяпользователюАпарачисел(N=33,Кo=7).
ДействияпользователяА.
6.Шифруемое сообщение представляется как последовательность
целыхчиселвдиапазоне
0,32.Пустьбукве'А'соответствуетчисло1,букве
'Б'-число2,букве'В'-число3.Тогдасообщение"ЭБФ"можнопредставитькакпоследовательностьчисел300221,тоестьМ1=30,М2=2,М3=21.
7.Текст,представленныйввидепоследовательностичисел M1,М2и
М3,шифруетсясиспользованиемключаКо=7иN=33,поформуле
Ci=МКоmodN=M7mod33.
Получается
С1=307(mod33)=24,C2=27(mod33)=29,C3=217(mod33)=21.
ПользователюВотправляетсякриптограммаC1C2C3=24,29,21.
ДействияпользователяВ.
8.Расшифровывается принятая криптограмма С1С2С3 по формуле
Mi=СiKcmodN=Ci3mod33наосновесекретногоключаKc=3.
Получается
M1=243mod33=13824mod33=30,M2=293mod33=24389mod33=2,M3=213mod33=9261mod33=21.
Такимобразом,быловосстановленоисходноесообщение:"ЭБФ".Дополнительныепримерыдлярешения.
Зашифруйте и расшифруйте первые буквы своих инициалов с
помощьюалгоритмаRSA,используясвоипараметрыалгоритма.
Вопросыдлясамопроверки.
1.ДлячегопредназначеналгоритмRSA?
2.Насложностиразрешениякакихматематическихзадачбазируется
RSA?
3.Какиепараметрыформируетшифрующаясторона?Какиеусловия
накладываютсянаних?
4.КаквычисляетсясекретныйключвRSA?
5.КакиепараметрыRSAявляютсяоткрытымиисекретными?
6.Какпроизводитсяшифрованиеинформации?
7.Какпроизводитсярасшифровкаинформации?
8.КакимиособенностямиобладаеталгоритмRSA?
9.Пояснитеупрощенныйалгоритмвычисленияобратныхэлементов?
10.Какаятенденцияпоразмеруиспользуемыхключейнаблюдаетсявмире?
11.КакиеалгоритмытеориичиселиконечныхполейиспользуютсявалгоритмеRSA?
12.КакиематематическиеоперациииспользуютсявалгоритмеRSA?
ПриложениетеорииполяGF(2n)калгоритмушифрованияAES
В1997г.НациональныйинститутстандартовитехнологийСША(NIST)объявилконкурснановыйстандарткриптографическойзащитыдляинформацииправительственногоуровняназаменуалгоритмуDES.
СтандартAES-FIPS-197[5,14,15](варианталгоритмаRIJNDAEL,
авторыJoanDaemenиVincentRijmen,Бельгия)вступилвсилув2002г.
СимметричныйалгоритмRIJNDAELобладает:
-доступностьюдляоткрытогоиспользования(безпатентныхправ);
-низкимитребованиямикпамяти-возможностьреализациивсмарт-
картах;
- простой конструкцией схемы в аппаратной и программной
реализациях;
-возможностьюраспараллеливанияопераций;
-поддержкойлюбыхаппаратныхплатформ-из-заиспользованияпростыхарифметическихопераций;
-быстройпроцедуройформированияключа;
-поддержкойразныхдлинключасшагом32бита,втомчисле128,192и256бит;
-одинаковойалгоритмическойструктуройивременнойсложностьюприпрямомиобратномпреобразовании;
-базируетсянатеорииконечныхполей.
Стойкость-способностьшифрапротивостоятьметодамкриптоанализа.Недостаткомявляетсяуязвимостьканализумощности.
Авторамирешалисьследующиезадачи:
-найтиоптимальноесоотношениемеждускоростьюработыалгоритмаизапасомегостойкости;
-поддержкапростыхидешевыхсмарт-карт;
-аппаратнаяподдержкачиповFPGAиASIC;
-выбратьдополнительныережимыфункционированияалгоритма.
В табл.4.2 представлены сравнительные характеристики двухсимметричныхалгоритмовГОСТ28147-89иRIJNDAEL.
Таблица4.2.ХарактеристикиалгоритмовГОСТ28147-89и
RIJNDAEL
Показатель |
ГОСТ28147-89 |
RIJNDAEL |
Размерблока,бит |
64 |
128 |
Размерключа,бит |
256 |
128,192,256 |
Архитектура |
ОднороднаясетьФейстеля |
"Квадрат"(Square) |
Числораундов |
32 |
10,12,14 |
Частьблока,шифруемаяза одинраунд,бит |
32 |
128 |
Размерключана1раунд,бит |
32 |
128 |
Используемыенараунде операции |
Сложение,подстановкии сдвиги |
Использованиеарифметики конечныхполей |
Размерузловзамены, вход/выход,бит |
4/4 |
8/8 |
Способконструирования узловзамены |
Закрытаяметодика |
Алгебраический подход |
