Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЗахКриптология курс лекций 2 - копия.docx
Скачиваний:
5
Добавлен:
24.09.2019
Размер:
5 Мб
Скачать
☆

Арифметическиеоперациинадэлементамиполя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

Способконструирования

узловзамены

Закрытаяметодика

Алгебраический

подход