
- •Федеральное агентство по образованию
- •Брянск Издательство бгту
- •Введение
- •Часть 1. Арифметика остатков. Элементарные шифры. Шифр Цезаря.
- •Аффинный шифр.
- •Обобщенный алгоритм Евклида
- •Вскрытие аффинного шифра по двум паросочетаниям.
- •Варианты заданий к первой части
- •Часть 2. Базовые теоретико-числовые алгоритмы. Китайская теорема об остатках.
- •Возведение в квадрат
- •Символы Лежандра и Якоби, извлечение квадратного корня.
- •Возведение в степень и нахождение порождающего элемента группы.
- •Генерация простых чисел.
- •Варианты заданий ко второй части
- •Часть 3. Асимметричные криптографические протоколы и системы шифрования с открытым ключом.
- •Протокол Диффи-Хеллмана.
- •Трехпроходный протокол Шамира.
- •Криптосистема rsa.
- •Криптосистема Эль-Гамаля.
- •Криптосистема Рабина.
- •Варианты заданий к третьей части
- •Часть 4. Асимметричные схемы электронно-цифровой подписи.
- •Цифровая подпись rsa.
- •Цифровая подпись Эль-Гамаля.
- •Генерация сильно простого числа и порождающего элемента.
- •Цифровая подпись dsa.
- •Варианты заданий к четвертой части
- •Часть 5. Эллиптические кривые над конечным полем.
- •Протокол Диффи-Хеллмана на эллиптических кривых.
- •Цифровая подпись ec-dsa
- •Варианты заданий для пятой части
- •Заключение
- •Приложение 1.
- •Приложение 2 Листинг программы для решения задач 5.3, 5.4 на языке c#
- •Приложение 3 Листинг программы для решения задач 5.3, 5.4 на языке Pascal
- •Список использованной и рекомендуемой литературы.
Приложение 3 Листинг программы для решения задач 5.3, 5.4 на языке Pascal
Программа реализует обобщенный алгоритм Евклида, сложение и удвоение точек, а также умножение точки на скаляр с использованием схемы Горнера.
var
a:array[1..10]of boolean;
xn,yn,p,k,xk,yk,i,j,x,y:integer;
function ee(pe,ae:integer):integer;
var u1,u2,u3,v1,v2,v3,t1,t2,t3,q:integer;
begin
u1:=1; u2:=0; u3:=pe;
v1:=0; v2:=1; v3:=ae;
while v3>0 do
begin
q:=trunc(u3/v3);
t1:=u1-v1*q;
t2:=u2-v2*q;
t3:=u3-v3*q;
u1:=v1;
u2:=v2;
u3:=v3;
v1:=t1;
v2:=t2;
v3:=t3;
end;
if u3=1
then if u2>0
then ee:=u2
else ee:=pe+u2
else ee:=0
end;
procedure dub(x1,y1,pm:integer; var x3,y3:integer);
var lam:integer;
begin
lam:=((3*x1*x1+1)mod pm)*ee(pm,(2*y1)mod pm);
lam:=lam mod pm;
x3:=(lam*lam)mod pm - (2*x1)mod pm;
while x3<0 do x3:=x3+pm;
x3:=x3 mod pm;
y3:=(x1-x3)*lam - y1;
while y3<0 do y3:=y3+pm;
y3:=y3 mod pm;
end;
procedure ad(x1,y1,x2,y2,pm:integer; var x3,y3:integer);
var lam,chz,znam:integer;
begin
chz:=y2 - y1;
while chz<0 do chz:=chz+pm;
znam:=x2 - x1;
while znam<0 do znam:=znam+pm;
lam:=(chz)*ee(pm,znam);
lam:=lam mod pm;
x3:=(lam*lam)mod pm - x1 - x2;
while x3<0 do x3:=x3+pm;
y3:=(x1-x3)*lam - y1;
while y3<0 do y3:=y3+pm;
y3:=y3 mod pm;
end;
begin
write('x=');readln(xn);
write('y=');readln(yn);
{write('p=');readln(p);}p:=199;
write('k=');readln(k);
j:=0;
while k>0 do
begin
j:=j+1;
if odd(k) then a[j]:=true
else a[j]:=false;
k:=k div 2
end;
x:=xn;y:=yn;
for i:=j-1 downto 1 do
begin
if a[i]
then
begin
dub(x,y,p,xk,yk);x:=xk;y:=yk;
ad(x,y,xn,yn,p,xk,yk)
end
else dub(x,y,p,xk,yk);
x:=xk;y:=yk;
end;
{dub(xn,yn,p,x,y);
for i:=2 to k-1 do
begin
ad(x,y,xn,yn,p,xk,yk);
x:=xk;
y:=yk;
end;}
writeln(x,' ',y)
end.
Список использованной и рекомендуемой литературы.
Аверченков В.И. Криптографические методы защиты информации: учебное пособие./ Аверченков В.И., Рытов М.Ю., Шпичак С.А. – Брянск: Изд-во БГТУ, 2011. – 216 с.
Алферов А.П. Основы криптографии: учебное пособие./ Алферов А.П., Зубов А.Ю., Кузьмин А.С., Черемушкин А.В. – М.: Гелиос-АРВ, 2001. – 480 с.
Болотов А.А. Элементарное введение в эллиптическую криптографию: Алгебраические и алгоритмические основы./ Болотов А.А., Гашков С.Б., Фролов А.Б., Часовских А.А. – М.: КомКнига, 2006. – 328 с.
Болотов А.А. Элементарное введение в эллиптическую криптографию: Протоколы криптографии на эллиптических кривых./ Болотов А.А., Гашков С.Б., Фролов А.Б., Часовских А.А. – М.: КомКнига, 2006. – 280 с.
Василенко О.Н. Теоретико-числовые алгоритмы в криптографии./ Василенко О.Н. – М.: МЦНМО, 2003. – 328 с.
Запечников С.В. Криптографические протоколы и их применение в финансовой и коммерческой деятельности: учебное пособие./ Запечников С.В. - М.: Горячая линия-Телеком, 2007. – 320 с.
Кнут. Д. Искусство программирования. Т.2. Получисленные алгоритмы./Дональд Кнут. Пер. с англ. – М.: Вильямс – 2001 г.638 с.
Маховенко Е.Б. Теоретико-числовые методы в криптографии: учебное пособие./ Маховенко Е.Б. – М.: Гелиос-АРВ, 2006. – 320 с.
Рябко Б.Я. Криптографические методы защиты информации: учебное пособие./ Рябко Б.Я., Фионов А.Н. – М.: Горячая линия-Телеком, 2005. – 229 с.
Смарт. Н. Криптография./Найджел Смарт. Пер с англ. – М.: Техносфера, 2005. – 528 с.
Столлингс В. Криптография и защита сетей. Принципы и практика. 2-е изд./Вильям Столингс. Пер с англ. – М.: Вильямс, 2001. – 672 с.
Черемушкин А.В. Лекции по арифметическим алгоритмам в криптографии./ Черемушкин А.В. – М.:МЦНМО, 2002. – 104 с.
Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си./ Брюс Шнайер. Пер. с англ. – М.: ТРИУМФ, 2003. – 816 с.
Учебное издание
Рытов Михаил Юрьевич
Грабежов Илья Ефимович
Шпичак Сергей Александрович
Математические основы криптологии.
Задачник-практикум.
Редактор издательства
Компьютерный набор С.А. Шпичак
Темплан 2014г., п.
Подписано в печать __.___.14 Формат 60х84 1/16 Бумага офсетная. Офсетная печать. Усл. печ. л. ____ Уч.-изд. л. 12,42
Тираж ____ экз. Заказ ____
Издательство Брянского государственного технического университета
241035, Брянск, бульвар им. 50-летия Октября, 7, БГТУ, тел. 58-82-49
Лаборатория оперативной полиграфии БГТУ, ул. Институтская, 16.