|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.11.2011, 12:19 | #1 | ||
Форумчанин
Регистрация: 29.10.2009
Сообщений: 259
|
Описание алгоритма шифрования Эль-гамаль
Возникла необходимость реализовать алгоритм шифрования Эль-гамаль. Разумеется начал искать теоретические сведения по этому алгоритму, как он работает и т.д. Заглянул на любимую многими WikiPedi'ю, посмотрел там алгоритм, пример шифрования\дешифрования и если говорить откровенно, то ни черта его не понял. Цитирую:
Цитата:
Ладно, начал искать другие источники по алгоритму Эль-гамаль: последняя чудесная формула как только не перевиралась в разных источниках, считаешь вручную то, что написано в книге и получается совсем не тот результат(как говориться на форумах: "аффтар сжет")! На одном форуме, когда человек просил пояснить ему данный алгоритм, написали: "mod - это не остаток от деления, это результат решения уравнения...". Перерыл еще с десяток источников, без всякой надежды открыл книгу Рябко, Фионов - Криптографические методы защиты информации, посмотрел что автору пишут там, как объясняют пример и вручную пересчитал все то, что они написали и о чудо - результаты моих вычислений для предоставленных данных совпадают с результатами в книге! Начал пробовать по предоставленным формулам зашифровать другие данные с другими коэффициентами и все отлично шифруется-дешифруется - моей радости не было предела - единственная найденная мной книга с человеческим описанием алгоритма Эль-гамаль! Чтобы никто больше не мучился с реализацией и пониманием алгоритма шифрования Эль-гамаль, цитирую пример из книги Рябко, Фионов: Цитата:
Если не забуду, то когда реализую это все с помощью класса C#, постараюсь выложить свой код для простоты понимания.
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
|
||
28.11.2011, 13:38 | #2 | |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
Цитата:
(1679616^-1) mod 11 = 3 => 3*9 mod 11 = 5 Правда, такая операция выполнима не всегда, но, наверное, конкретно в этом алгоритме значения подобраны так, что деление можно выполнить. поскольку к C# вопрос тема отношения не имеет, перенесу в свободное общение. Последний раз редактировалось alexBlack; 28.11.2011 в 16:04. |
|
28.11.2011, 15:16 | #3 |
Форумчанин
Регистрация: 29.10.2009
Сообщений: 259
|
В процессе сегодняшней работы получилась следующая часть кода:
Код:
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
|
28.11.2011, 15:20 | #4 |
Форумчанин
Регистрация: 29.10.2009
Сообщений: 259
|
продолжение кода
Код:
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
|
28.11.2011, 15:20 | #5 |
Форумчанин
Регистрация: 29.10.2009
Сообщений: 259
|
продолжение кода
Код:
Завтра постараюсь продолжить данный код
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
Последний раз редактировалось Mixim; 28.11.2011 в 15:26. |
30.11.2011, 03:07 | #6 |
Форумчанин
Регистрация: 29.10.2009
Сообщений: 259
|
Вроде бы окончил реализацию метода Эль-гамаль. В ранее указанном коде были допущены некоторые ошибки(обнаружено с помощью отладчика). Не стал удалять из кода некоторые строки, которые использовались для отладки - просто их закомментировал. В итоге класс для шифрования текста методом Эль-гамаля имеет следующий вид(из-за ограниченного количества символов в посте класс будет последовательно размещен в нескольких сообщениях):
Код:
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
Последний раз редактировалось Mixim; 30.11.2011 в 03:13. |
30.11.2011, 03:09 | #7 |
Форумчанин
Регистрация: 29.10.2009
Сообщений: 259
|
ПРОДОЛЖЕНИЕ:
Код:
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
|
30.11.2011, 03:10 | #8 |
Форумчанин
Регистрация: 29.10.2009
Сообщений: 259
|
ПРОДОЛЖЕНИЕ 2:
Код:
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
|
30.11.2011, 03:11 | #9 |
Форумчанин
Регистрация: 29.10.2009
Сообщений: 259
|
ПРОДОЛЖЕНИЕ 3:
Код:
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
|
30.11.2011, 03:15 | #10 |
Форумчанин
Регистрация: 29.10.2009
Сообщений: 259
|
В коде использовался класс BigInteger, описание которого можно найти на MSDN ЗДЕСЬ
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
криптосистема Эль-Гамаля | Nanochka | Помощь студентам | 16 | 21.04.2012 10:53 |
криптография (эль-гамаль) | serega28 | Общие вопросы Delphi | 0 | 22.06.2011 11:54 |
Блок-схема алгоритма шифрования/расшифрования | MontyJo | Помощь студентам | 6 | 28.06.2010 21:20 |