- •1.Симметричные
- •2.Асимметричные
- •Асимметричноешифрование.
- •Алгоритмпередачисекретногоключапооткрытомуканалу
- •Лекция№2 Элементытеориичисел
- •АлгоритмЕвклида
- •Лекция№3
- •1)ПлотностьпоявленияпростыхчиселназаданноминтервалепадаетсувеличениемN.
- •Лекция№4 Получениепростыхчисел.
- •1)Самыйдревнийспособполученияпростыхчисел,какмыужезнаем,-
- •РешетоЭратосфена
- •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?
- •Перечень темпопрактическимзанятиям
- •Списоклитературы
Вычислениеобратныхэлементов
Варифметикедействительныхчиселпростовычислитьобратнуювеличинуa−1дляненулевогоa:
a-1=1/aилиa?a-1=1.
Вмодулярнойарифметикевычислениеобратнойвеличиныявляетсяболеесложнойзадачей.Например,решениесравнения
4?x≡1mod7
эквивалентнонахождениювсехзначенийxи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·a−1)modm=1или
(5·a−1)mod7=1.Найдемa-1перебором.Приэтомчислоa-1должноискаться
винтервале
a11,m1.
Результатыпредставимввидетрассировочнойтабл.2.2(искомый
результатподчеркнутлинией).
Шаг, a−1 |
5·a−1 |
(5·a−1)mod7 |
4 |
20 |
6 |
5 |
25 |
4 |
6 |
30 |
2 |
Таблица2.2.Трассировочнаятаблица
-
Шаг,a−1
5·a−1
(5·a−1)mod7
1
5
5
2
10
3
3
15
1
Получаем,чтоa-1=5-1mod7=3.
Вариантомпереборногоалгоритматакжеявляетсяследующийалгоритм.Есличислаaиmвзаимнопросты(НОД(a,m)=1),тосуществуетобратныйэлементдляa,авыражениеa?a−1≡1modmможнозаписатьввидеa?a−1modm=(1+m?t)modm,гдеt-натуральноечисло.Числаaиmзаданы,неизвестнычислаtиa−1.Тогданужнонайтитакоеt,прикоторомa−1будетцелымибудетудовлетворятьусловиюсуществованияобратногоэлемента:a?a−1≡1modm.Перепишемвыражениеa?a−1modm=(1+m?t)
modmкак
a11
mt
modm.
a
Запишемшагиалгоритма.
1.ЕслиНОД(a,n)1(алгоритмЕвклида,раздел1.1),товыход.Обратныйэлементнесуществует.
2.Длялюбогоt[0,+)вычисляютсяследующиедействия.
2.а.Еслизначениевыражения
1mt
a
неявляетсянатуральнымчислом,
топереходкпункту2.Иначеэтовыражениезадаетобратныйэлемент:
a11mt
modm,выход.
a
Алгоритмбудетконеченвтомслучае,когдавыполняетсяусловиевзаимнойпростотыдвухчиселaиm(условиесуществованияобратногоэлемента).
II.Можновычислитьдляэлементаaобратныйэлементa-1ипризнании
функции Эйлера φ(m), где (a, m)=1. Так как
a(m)modm1 и
(a·a−1)modm≡1, то
a(m)modm(aa1)modm =>
a(m)1modma1modm
=>a1a(m)1modm.
Даннуюформулуможновычислитьсменьшимивычислительнымизатратами,используясхемуГорнерадлябыстроговозведениячислаaвстепень(φ(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толькоцелойчасти,безокругления.
РасширенныйалгоритмЕвклидадлянахожденияобратногоэлемента
a−1можнопредставитьввидеследующихшагов.
Навходалгоритмаподаются:числаaZиmN,(a,m)=1.
Навыходеожидаетсячисло
a11,m1.
1.Вводчислаa,длякоторогонеобходимонайтиобратныйэлементa−1.
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.Покаu31иu30иv30выполняютсяследующиедействия(пояснение:при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хранитсязначениеобратногоэлементаa−1.Еслиu1<0,тоосуществляетсяприведениерезультатакположительномучислу:u1=m+u1.Далееосуществляетсявыводзначенияu1.Выход.
ПримерыработырасширенногоалгоритмаЕвклида.
Пример2.5.Необходимодлячислаa=16найтиобратныйэлементa−1
инормироватьрезультатчисловыммодулемm=29.
ИнициализируемвекторыUи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найтиобратныйэлементa−1инормироватьрезультатчисловыммодулем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=6иm=28невзаимнопростые.ИнициализируемвекторыUи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.Прикакихусловиях,вконцеработыРАЕ,определяется,чтобылнайден
обратный элемент? Что необходимо сделать, если обратный элемент оказалсяотрицательнымчислом?
