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

Вычислениеобратныхэлементов

Варифметикедействительныхчиселпростовычислитьобратнуювеличинуa1дляненулевогоa:

a-1=1/aилиa?a-1=1.

Вмодулярнойарифметикевычислениеобратнойвеличиныявляетсяболеесложнойзадачей.Например,решениесравнения

4?x≡1mod7

эквивалентнонахождениювсехзначенийk,длякоторыхвыполняетсяравенство4?(x+7k)mod7=0,гдеk-любыецелыечисла.

Задачейрешениясравненияявляетсянахождениетакогоцелогочисла

x,прикоторомбудетвыполнятьсясравнение

a?xmodm≡1,

гдеa-известноенатуральноечисло,a{1,2,…,m-1};

m-числовоймодуль(натуральноечисло)длянормированиярезультата;

x-искомоенеизвестное,

x1,m1.

Сравнениеa?xmodm≡1такжеможнозаписатьввиде:

a1xmodm

илиa-1modm=xmodm.

Сравнение

a1xmodm

имеет единственное решение (единственный

обратныйэлементa-1),если:

-числаaиmявляютсявзаимнопростыми;

-числаaиa-1удовлетворяютусловию(a·a-1)modm≡1;

a11,m1.

Вдругихслучаяхсравнениенеимеетрешения.

Пример2.2.Найдемобратныйэлементдлячисла5попростомумодулю17.Обратныйэлементбудетравен7(например,результатможнополучитьперебором),таккак5?7=35mod17≡1.

Найдемтакжеобратныйэлементдлячисла5помодулю14.Обратныйэлементбудетравен3,таккак5?3=15mod14≡1.Ачисло2неимеет

обратногоэлемента,таккакчисла14и2невзаимнопросты.

ВполеGF(m),гдеm-простоечисло,всененулевыеэлементыимеютобратныеэлементы.

Основныеспособынахожденияобратныхэлементов

I.Дляупрощенияручногосчетаобратныеэлементыдлячисел,сравнимыхсразмерностьюмашинногослова,вмодульнойарифметикеможновычислятьпоследующемуитеративномуалгоритму.Выполняется

переборвозможныхзначенийвинтервале

a11,m1,дотехпор,покане

будетнайденотакоеa-1,чтобудетвыполняться(a·a-1)modm=1.

Пример2.3.Пустьa=5,m=7.Решимравенство(a·a1)modm=1или

(5·a1)mod7=1.Найдемa-1перебором.Приэтомчислоa-1должноискаться

винтервале

a11,m1.

Результатыпредставимввидетрассировочнойтабл.2.2(искомый

результатподчеркнутлинией).

Шаг,

a1

5·a1

(5·a1)mod7

4

20

6

5

25

4

6

30

2

Таблица2.2.Трассировочнаятаблица

Шаг,a1

5·a1

(5·a1)mod7

1

5

5

2

10

3

3

15

1

Получаем,чтоa-1=5-1mod7=3.

Вариантомпереборногоалгоритматакжеявляетсяследующийалгоритм.Есличислаaиmвзаимнопросты(НОД(a,m)=1),тосуществуетобратныйэлементдляa,авыражениеa?a11modmможнозаписатьввидеa?a1modm=(1+m?t)modm,гдеt-натуральноечисло.Числаaиmзаданы,неизвестнычислаtиa1.Тогданужнонайтитакоеt,прикоторомa1будетцелымибудетудовлетворятьусловиюсуществованияобратногоэлемента:a?a11modm.Перепишемвыражениеa?a1modm=(1+m?t)

modmкак

a11

mt

modm.

a

Запишемшагиалгоритма.

1.ЕслиНОД(a,n)1(алгоритмЕвклида,раздел1.1),товыход.Обратныйэлементнесуществует.

2.Длялюбогоt[0,+)вычисляютсяследующиедействия.

2.а.Еслизначениевыражения

1mt

a

неявляетсянатуральнымчислом,

топереходкпункту2.Иначеэтовыражениезадаетобратныйэлемент:

a11

mt

modm,выход.

a

Алгоритмбудетконеченвтомслучае,когдавыполняетсяусловиевзаимнойпростотыдвухчиселaиm(условиесуществованияобратногоэлемента).

II.Можновычислитьдляэлементабратныйэлементa-1ипризнании

функции Эйлера φ(m), где (a, m)=1. Так как

a(m)modm1 и

(a·a1)modm≡1, то

a(m)modm(aa1)modm =>

a(m)1modma1modm

=>a1a(m)1modm.

Даннуюформулуможновычислитьсменьшимивычислительнымизатратами,используясхемуГорнерадлябыстроговозведениячисластепень(φ(m)-1).

Пример2.4.Пустьa=5,m=7.Найдемa-1спомощьюфункцииЭйлера.

Модульm=7являетсяпростымчислом.ПоэтомуфункцияЭйлераравна

φ(m)=φ(7)=m−1=6.Тогдаобратнаявеличинаот5помодулю7равна

a1a(m)1modm

=56-1mod7=55mod7.

ИспользуемсхемуГорнерадляразложениястепениучисла5.

55mod7=(52mod7)·(52mod7)·(5mod7)mod7=(4·4·5)mod7=

=(2·5)mod7≡3.

Такимобразом,длячислаaобратныйэлементравенa-1=3.

III.ИспользованиерасширенногоалгоритмаЕвклида.

Валгоритмевсеоперациипроизводятсянадцелымичислами.Подобозначением]k[будемпониматьвзятиеотчислаkтолькоцелойчасти,безокругления.

РасширенныйалгоритмЕвклидадлянахожденияобратногоэлемента

a1можнопредставитьввидеследующихшагов.

Навходалгоритмаподаются:числаaZиmN,(a,m)=1.

Навыходеожидаетсячисло

a11,m1.

1.Вводчислаa,длякоторогонеобходимонайтиобратныйэлементa1.

2.Вводмодуляm,нормирующегорезультат.

3.Еслиa=0илиm=0илиm=1,тобылизаданынекорректныепараметры,выход(пояснение:приa=0несуществуетобратногоэлемента,приm=0возникаетситуацияделениянануль;априm=1всегдабудетполучатьсярезультат,равныйнулю,таккаквомножестверезультатов

1,m1будетсуществоватьтолькоодиннулевойэлемент).

4.ЗадаютсявектораU={u1,u2,u3},V={v1,v2,v3}.Производитсяначальнаяустановкапараметровзначениями.ВекторU={0,1,m};векторV={1,0,a}.

5.Покаu3u3v30выполняютсяследующиедействия(пояснение:приu3=1результатбудетполученвu1(успешноезавершениеалгоритма);приv3=0будетделениенанульвпункте5.а;еслиu3=0,тодоказывается,что2числаaиmнеявляютсявзаимнопростыми):

а)найтирезультатцелочисленногоделениячислаu3наv3:q=]u3/v3[;

б)дляi1,3

-находитсязначениевыраженияt=ui-vi·q;

-uiприсваиваетсязначениеvi:ui=vi(присваиваетсязначениепеременнойviспредыдущегошага);

-viприсваиваетсяновоезначение:vi=t;

в)переходкпункту5.

6.Еслиu31,тообратныйэлементнесуществует,выход.

7.Еслиu3=1,товпеременнойu1хранитсязначениеобратногоэлементаa1.Еслиu1<0,тоосуществляетсяприведениерезультатакположительномучислу:u1=m+u1.Далееосуществляетсявыводзначенияu1.Выход.

ПримерыработырасширенногоалгоритмаЕвклида.

Пример2.5.Необходимодлячислаa=16найтиобратныйэлементa1

инормироватьрезультатчисловыммодулемm=29.

ИнициализируемвекторыV:U={0,1,m=29},V={1,0,a=16}.

Далеепредставимшагиалгоритмаввидетрассировочнойтабл.2.3.

Таблица2.3.Трассировочнаятаблица

Шаг,

i

u3<

>1

u3<

>0

v3<>

0

Выход

?

q

u1

u2

u3

v1

v2

v3

До

цикла

да

да

да

нет

-

0

1

m=2

9

1

0

a=1

6

1

да

да

да

нет

1

1

0

16

-1

1

13

2

да

да

да

нет

1

-1

1

13

2

-1

3

3

да

да

да

нет

4

2

-1

3

-9

5

1

4

да

да

да

нет

3

-9

5

1

29

-

16

0

Итог:

нет

да

нет

да

-

m+u1=2

0

-

-

-

-

-

Начетвертомшагезначениеu3сталоравным1.Тогдавu1находитсярезультат:u1=-9.Нормируемрезультат:u1=m+u1=29–9=20.Обратныйэлементравен20.

Проверка.(16·20)mod29должнобытьравно1.

(16·20)mod29=320mod29=(11·29+1)mod29=

=(11·29mod29+1mod29)mod29равно1.Правильно.

Пример2.6.Необходимодлячислаa=6найтиобратныйэлементa1инормироватьрезультатчисловыммодулемm=28.Рассмотримэтотпример,впредположении,чтозаранеенеизвестно-являетсяличислоmпростым.Рассмотримэтотслучай.

Таблица2.4.Трассировочнаятаблица

Шаг,

i

u3<

>1

u3<>

0

v3<>

0

Выход

?

q

u1

u2

u3

v1

v2

v3

До

цикла

да

да

да

нет

-

0

1

m=2

8

1

0

a=6

1

да

да

да

нет

4

1

0

6

-4

1

4

2

да

да

да

нет

1

-4

1

4

5

-1

2

3

да

да

да

нет

2

5

-1

2

-

14

3

0

Итог:

да

да

нет

да

2/0=

?

значениеa-1неопределено

Отметим,чточислаa=m=28невзаимнопростые.ИнициализируемвекторыV:U={0,1,m=28},V={1,0,a=6}.Далеепредставимшагиалгоритмаввидетрассировочнойтабл.2.4.

Натретьемшагезначениепеременнойv3сталоравным0.Из-заэтогоневозможновычислитьвыражениеq=]u3/v3[.Врезультатеалгоритмзавершаетсясвыдачейуведомления,чтодлячислаa=6имодуляm=28несуществуетэлементаa-1.

Дополнительныепримерыдлярешения(решитерассмотреннымиспособами):

1)a=7,m=31.Найтиa-1?(a-1=9)

2)a=6,m=29.Найтиa-1?(a-1=5)

3)a=8,m=29.Найтиa-1?(a-1=11)

Вопросыдлясамопроверки.

1.КакоепредназначениерасширенногоалгоритмаЕвклида?

2.Чтотакоевзаимнопростыечисла?Ихпримеры.

3.Чтотакоеобратныйэлемент?Условияегосуществования.

4.Какиеизвестныметодывычисленияобратногоэлемента?Опишитеих.

5.Какнаходитсяобратныйэлементдлянекоторогочисла?

6.ПояснитеработурасширенногоалгоритмаЕвклида(РАЕ).

7.Какиеограничениянакладываютсянавходныеданныеалгоритмов?

8.Прикакихусловияхпроисходитвыполнениеалгоритмов?

9.Прикакихусловияхпроисходитвыходизалгоритма?

10.Прикакихусловиях,вконцеработыРАЕ,определяется,чтобылнайден

обратный элемент? Что необходимо сделать, если обратный элемент оказалсяотрицательнымчислом?