Главная страница

Атаки на эллиптические кривые


Скачать 191.67 Kb.
НазваниеАтаки на эллиптические кривые
Дата06.03.2022
Размер191.67 Kb.
Формат файлаdocx
Имя файлаReferat (1).docx
ТипРеферат
#384804
страница18 из 19
1   ...   11   12   13   14   15   16   17   18   19

СПИСОК ЛИТЕРАТУРЫ




  1. Баричев С.Г., Серов Р.Е. Основы современной криптографии: Учебное пособие. - М.: Горячая линия - Телеком, 2002.

  2. Болотов А.А., Гашков С.Б., Фролов А.Б. Элементарное введение в эллиптическую криптографию. Протоколы криптографии на эллиптических кривых. -М.: КомКнига, 2006.

  3. Рябко Б.Я., Фионов А.Н. Криптографические методы защиты информации. - М.: Горячая линия - Телеком, 2005.

  4. Смарт Н.Г. Криптография. -М.: Техносфера, 2005.

  5. Кнепп Э. Эллиптические кривые. -М.: Факториал Пресс, 2004.

  6. Жданов О.Н., Чалкин В.А. Эллиптические кривые. Основы теории и криптографические приложения. -М.: Кн. дом «ЛИБРОКОМ», 2012.

  7. Соловьев Ю.П. и др. Эллиптические кривые и современные алгоритмы теории чисел. -Москва-Ижевск: Ин-т компьютерных исследований, 2003.

  8. Коблиц Н. Курс теории чисел и криптографии — Москва: Научное изд-во ТВП, 2001. — 254 c.

  9. Панасенко С.П. Алгоритмы шифрования. Специальный справочник. – СПб.: БХВ-Петербург, 2009 576 с.

  10. Жельников В. Криптография от папируса до компьютера. – М.: ABF, 1996. – 336с.

  11. Кассами Т., Токура Н., Ивадари Е., Инагаки Я. Теория кодирования/ Пер. с япон. под ред. Б. С. Цыбакова и С. И. Гельфанда. М.: Мир, 1978. – 576с.

  12. Оков И.Н. Криптографические системы защиты информации. – СПб.: ВУС, 2001. – 236с.

  13. Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. Защита информации в компьютерных системах и сетях/ Под ред. В.Ф. Шаньгина. – М.: Радио и связь, 2001. 376с.




  1. Ю.А.Гатчин, А. Г. Коробейников. Основы криптографических алгоритмов Учебное пособие. СПб: ГИТМО (ТУ), 2002. 29 с.

  2. Ленг С. Эллиптические функции - М.: Наука, 1984. 312 с.

  3. Н. П. Варновский. Математическая криптография. Несколько этюдов. - М., 2003, с. 98–121.

  4. О. Н. Василенко. Теоретико-числовые алгоритмы в криптографии. МЦНМО, М., 2003 (1-е изд.)

  5. Б. Шнайер. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. Издательство ТРИУМФ, М., 2002.

  6. Х. К. А. ван Тилборг. Основы криптологии. Профессиональное руководство и интерактивный учебник. – М., Мир, 2006.

  7. Жиль Брассар. Современная криптология. Руководство. Пер. с англ. М.: "Полимед", 1999. - 176 с

  8. Koblitz N. A course in number theory and cryptography. Graduate texts in math. 114 New-York: Springer-Verlag, 1994.

  9. ElCamal. A public-key cryptosystem and a signature scheme based on discrete logarithms. IEEE Transaction on Informatoin Theory, 1985

  10. Myasnikov A., Shpilrain V., Ushakov A. Group-based cryptography.Advanced courses in mathematics CRM Barselona. Basel-Boston-Berlin: Birkhauser, 2008. 183 с.


ПРИЛОЖЕНИЕ

Алгоритм шифрования и дешифрования Эль-Гамаля, Алгоритм шифрования и дешифрования Диффи-Хеллмана.

Входные параметры – текст из файла Выходные параметры – расшифрованный текст Алгоритм Атаки на выбранные алгоритмы

Imports System.Globalization Imports System.Numerics

Module Module1

Dim

a

As

Integer

Dim

b

As

Integer

Dim

p

As

String

Dim

x1

As

Integer

Dim

y1

As

Integer

Dim

x2

As

Integer

Dim

y2

As

Integer

Dim

x3

As

Integer

Dim

y3

As

Integer


Dim chislitel As Integer Dim znamenatel As Integer
Dim k As Integer Dim r As Integer Dim m As String

Function obratni(ByVal t As Integer) Dim i As Integer = 0

Do While True
If i * t Mod p = 1 Then Exit Do

Else

i += 1

End If

Loop

Return i End Function

Sub udvoenie(ByVal x1 As Integer, ByVal y1 As Integer)

Dim i As Integer = 0
chislitel = 3 * x1 * x1 + a znamenatel = 2 * y1
''Нахождение обратного числа знаменателя i = obratni(znamenatel)
''Вычисление углового коэффициента k = (chislitel) * (i)

k = k Mod p

x3 = (k * k - 2 * x1)
''Проверка на попадание в поле координаты x If x3 < 0 Then

Do While x3 < 0 x3 += p


Else

Loop
x3 = x3 Mod p

End If
y3 = (k * (x1 - x3) - y1)
''Проверка на попадание в поле координаты y If y3 < 0 Then

Do While y3 < 0 y3 += p


Else

Loop
y3 = y3 Mod p

End If
End Sub

Sub slojenie(ByVal x1 As Integer, ByVal y1 As Integer, ByVal x2 As Integer, ByVal y2 As Integer)

chislitel = y2 - y1 If chislitel < 0 Then

Do While chislitel < 0 chislitel += p

Loop End If
znamenatel = x2 - x1 If znamenatel < 0 Then

znamenatel += p End If
Dim i As Integer = 0

''Нахождение обратного числа знаменателя i = obratni(znamenatel)
''Вычисление углового коэффициента k = (chislitel) * (i)

k = k Mod p

x3 = (k * k - x1 - x2)
''Проверка на попадание в поле координаты x If x3 < 0 Then

Do While x3 < 0 x3 += p


Else

Loop
x3 = x3 Mod p

End If
y3 = (k * (x1 - x3) - y1)
''Проверка на попадание в поле координаты y If y3 < 0 Then


Do While y3 < 0 y3 += p


Else

Loop
y3 = y3 Mod p

End If
End Sub Sub Main()

Dim fileReader As String Dim dlina_file As Integer Dim o As Integer

fileReader = My.Computer.FileSystem.ReadAllText("C:\users\alekud\шифр.txt") dlina_file = Len(fileReader)


Then

Dim mass(dlina_file + 1) As String Dim y As Integer = 0

For o = 1 To dlina_file

If (Asc(fileReader.Chars(o - 1))) = 10 Or (Asc(fileReader.Chars(o - 1))) = 13
y += 1

Else

If Asc(fileReader.Chars(o - 1)) = 0 Then Exit For

Else

m += Str(Asc(fileReader.Chars(o - 1))) End If


End If

Next

Dim soobsh As String soobsh = Int(m) dlina_file = Len(soobsh)
Dim tim As New System.Timers.Timer Dim start As String

Dim finish As String ''Описание эллиптической кривой a = Integer.Parse("-3")

b = Integer.Parse("60") p = 59

Dim dlina_p As Integer dlina_p = Len(p)
''Точка на эллиптической кривой x1 = 36

y1 = 23

Dim Gx, Gy As Integer

Gx = Integer.Parse("36") Gy = Integer.Parse("23")
Dim inv As Integer Dim disk As Integer
disk = (4 * a * a * a + 27 * b * b)

Do While disk < 0 disk += p

Loop


disk = disk Mod p disk = obratni(disk)
inv = -1728 * 4 * a * a * a * disk Do While inv < 0

inv += p

Loop

inv = inv Mod p


''шифр эль гамеля на эллиптических кривых ''выбор секретного ключа

Dim rx As Integer Dim ry As Integer
Dim Cb As Integer = 0 Dim u As Integer = 0 Dim l As String
Console.WriteLine("Шифр эль гамеля на эллиптических кривых ") Console.WriteLine()

Do While True
Console.WriteLine("Введите секретный ключ Cb, 0 Cb = Console.ReadLine()

Console.WriteLine()

If Cb < inv And 0 < Cb Then

Console.WriteLine("Выбран секретный ключ Cb={0}", Cb) Exit Do

Else

Console.WriteLine("Вы ввели недопустимые значени") Console.WriteLine()

End If

Loop
start = Timer tim.Start()

''Вычисляем открытый ключ udvoenie(x1, y1)

For i = 0 To Cb - 3 slojenie(x1, y1, x3, y3)

Next
finish = Timer

start = finish - start tim.Stop()

Console.WriteLine("Время вычисления открытого ключа {0}", start)
Console.WriteLine("Открытый ключ Db = [Cb]G = ({0}, {1}) выбран", x3, y3) Console.WriteLine()

''Вводим сообщения которое будем кодировать Dim Dbx, Dby As Integer

Dbx = x3 Dby = y3

Dim n As Integer

''выбор случайного числа Do While True

Console.WriteLine("Выберите случайное число u u = Console.ReadLine()

Console.WriteLine() If u < inv Then

Console.WriteLine("Выбрано число u={0}", u) Console.WriteLine()

Exit Do

Else

Console.WriteLine("Вы ввели недопустимые значени") Console.WriteLine()

End If

Loop
udvoenie(x1, y1)
For i = 0 To u - 3 slojenie(x1, y1, x3, y3)

Next

Console.Write("Вычисляем R=[u]G ") Console.WriteLine("R=[u]G= ({0}, {1}) ", x3, y3)

rx = x3 ry = y3
udvoenie(Dbx, Dby)
For i = 0 To u - 3 slojenie(Dbx, Dby, x3, y3)

Next

Console.Write("Вычисляем P = [u]Db ") Console.WriteLine("P
1   ...   11   12   13   14   15   16   17   18   19


написать администратору сайта