Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Алгоритм возведения целого числа в степень по модулю




Задание

1. Изучить элементарные сведения из теории чисел и модулярной арифметики, которые положены в основу асимметричных криптоалгоритмов.

2. Изучить процедуру возведения целого числа в целую степень по модулю и создание на ее основе односторонних функций с секретом (при желании выполнить программную реализацию процедуры). Выполнить два примера по индивидуальному заданию.

3. Изучить протокол обмена ключами Диффи–Хеллмана (подготовка исходных данных, последовательность действий абонентов при получении общего ключа и выполняемые ими процедуры); открытая и секретная информация. Выполнить индивидуальное задание в соответствии со своим вариантом вручную.(первообразный корень выбрать минимально возможным).

4. Изучить систему шифрования RSA (подготовка исходных данных, последовательность действий абонентов при организации процедуры обмена шифротекстами; открытая и секретная информация). Выполнить индивидуальное задание в соответствии со своим вариантом вручную.(создать открытый и закрытый ключи; зашифровать и расшифровать сообщение m).

По желанию дополнительно (+2 балла)

5 Программно реализовать и продемонстрировать процедуры шифрования – дешифрования RSA.

Выбор варианта: студент выбирает № варианта задачи, определив значение t, где t = [N/ 13] – остаток от деления нацело числа N (порядковый номер в основном списке группы).

Таблица 1 – Индивидуальные задания к лабораторной работе 6

№ вар. Задание к п. 2 Задание к п. 3 Задание к п. 4
x y mod n p a b p q e m
  5,11                  
  7, 15                
  8,17                
    23,9              
    17,8              
  4,21                  
  6,14                
  9,22                
    15,8              
    13,6                
    7,17              
    9,23              
    7,12              

Контрольные вопросы

1 Теоретические основания асимметричных схем шифрования (сведения из теории чисел и модулярной арифметики).

2 Алгоритм возведения целого числа в степень по модулю.

3 Протокол обмена ключами.

4 Алгоритм RSA, подготовка открытого и секретного ключа; порядок действий при обмене информацией.

5 Каковы достоинства и недостатки асимметричных криптоалгоритмов?

Краткие теоретические сведения

Модулярная арифметика

 

В основу модулярной арифметики положена операция «деление по модулю», которая дает возможность бесконечное множество целых чисел отобразить в конечное множество классов эквивалентности (классов вычетов по модулю). Модулярная арифметика нашла широкое применение в криптографии.

Определение При заданных целых числах x,и n> 0 операция x (mod n) «деление по модулю» возвращает r – остаток от деления числа x на число n ( и удовлетворяет условию x= k n + r, где k – целое число).

Теорема (свойства операции «деление по модулю»)

Пусть x, y и n > 0 – целые числа, причем НОД (y, n) = 1 (НОД – наибольший общий делитель; если НОД (y, n) = 1, то y и n называют взаимно простыми числами).

1. (x + y) mod n = [(x) mod n + (y) mod n] (mod n).

2. (– x) mod n = (n – x) mod n = n – (x mod n).

3. (x x y) mod n = [(x) mod n x (y) mod n] (mod n).

4. Обозначим через y-1 mod n величину, обратную к y по модулю n. Она является единственным числом из интервала [1,n –1], удовлетворяющем условию (y-1 x y)mod n = 1.

Как и при делении рациональных чисел, деление чисел по модулю можно заменить на умножение делимого на число обратное делителю (если оно существует). Для любого y, если НОД (y, n) = 1, выражение (x x y-1) mod n можно заменить на (x / y) mod n.

Замечание В операции «деление по модулю» x mod n величина k не важна. Следовательно в тождестве x mod n = y mod n числа x и y могут отличаться на величину, кратную n. Тогда это уравнение можно записать так x ≡ y mod n или y ≡ x mod n. Эта операция называется сравнение чисел по модулю, а числа x и y называют сравнимыми по модулю.

Анализ приведенных выше свойств свидетельствует о том, что модулярная арифметика очень похожа на целочисленную. Операции сложение по модулю и умножение по модулю:

а) коммутативны (перестановка операндов не меняет результата);

б) ассоциативны (изменение последовательности выполнения операций результата не меняет).

Возведение в степень по модулю

Определение x y (mod n) при x, y > 0 совпадает с определением обычной степени целого числа (т.е = x x x … x (y раз) (mod n)).

Введем операцию целочисленного деления на 2 (y ÷ 2):

 

y÷ 2 = y /2, если y – четно
(y –1)/2, если y – нечетно

Тогда:

 

 

x y= (x 2) (y ÷ 2), если y – четно
x (x 2) (y ÷ 2), если y – нечетно

 

Алгоритм возведения целого числа в степень по модулю

 

ВХОД: x, y, n: целые числа x> 0, y≥ 0 n > 1

ВЫХОД: x, y (mod n).

Е (x, y, n)

1. if y = 0 return (1);

2. if y (mod 2) = 0 return (E (x2(mod n)), (y ÷ 2), n);

3. return (x ∙E (x2(mod n)), (y ÷ 2), n) (mod n).

Операция return (значение) возвращает процесс вычисления в точку вызова функции Е (т.е. если выполнен шаг 2, то шаг 3 не будет реализован).

Пример 1 Вычислить 221(mod 23).

221(mod 23) = Е (2, 21, 23) = 2∙ Е (4, 10, 23) = 2∙ Е (16, 5, 23) = 2∙ 16∙Е (162, 2, 23) =

= (2∙ 16)(mod 23) ∙Е (162(mod 23), 2, 23) = 9∙Е (3, 2, 23) = 9∙Е (9, 1, 23) = 81∙Е (9, 0, 23) =

=81 (mod 23) = 12.

Ответ: 221(mod 23) ≡ 12.

 





Поделиться с друзьями:


Дата добавления: 2016-09-03; Мы поможем в написании ваших работ!; просмотров: 733 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Жизнь - это то, что с тобой происходит, пока ты строишь планы. © Джон Леннон
==> читать все изречения...

2292 - | 2064 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.