|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.11.2008, 18:06 | #1 |
Пользователь
Регистрация: 07.11.2008
Сообщений: 11
|
криптосистема Эль-Гамаля
Привет! я сдесь новенькая, завела нужда! в университете задали написать на Делфи программу, тема: "Криптоситема Эль-Гамаля"(должна зашифровывать сообщение), весь инет перерыла, очень много бьяснений самого алгоритма, но нет никаких подсказок к написанию программы, надеюсь на вашу помошь, заранее спасибо!
Последний раз редактировалось Nanochka; 07.11.2008 в 18:49. |
09.11.2008, 20:06 | #2 |
Пользователь
Регистрация: 07.11.2008
Сообщений: 11
|
Задание
Генерация ключей:
Выбираются случайные простые числа P и Q так, что Q<P, затем выбирается случайное число X<P , которое является секретным ключом 1. Вычисляется y = Q^x mod p. Открытым ключом является тройка (p,q,y), закрытым ключом — число x. Шифрование В дальнейшем будем понимать под М — исходное сообщение. 1. Выбирается случайное секретное число k, взаимно простое с p − 1. 2. Вычисляется a = q^Kmod p, b = y^K*Mmod p, где M — исходное сообщение. Пара чисел (a,b) является шифротекстом. При этом длина шифротекста длиннее исходного сообщения M вдвое. Дешифрование Зная закрытый ключ x, исходное сообщение получается из шифротекста (a,b) по формуле: M = b / (a^X)mod p. Нетрудно проверить, что a^X=Q^KX mod p b/a^X=(y^KM)/a^X=(Q^KX*M)/Q^KX=M(mod p) Порядок выполнения работы: 1. проверить 2 больших чиcла на взаимную простоту; 2. вычислить степень большого целого числа; 3. решить сравнение a*x=b mod p Сдесь нужно использовать алгоритм Евклида для вычисления наибольшего общего целого (b) еще есть вот такой код выдернутый из программы (я не специалист но похоже на С++) может вы знаете как его адаптировать что бы это выглядело как прога на DELPHI??? Код:
Последний раз редактировалось Nanochka; 09.11.2008 в 21:07. |
12.11.2008, 22:37 | #3 |
Пользователь
Регистрация: 07.11.2008
Сообщений: 11
|
Ребятушки! ну неужели никто не знает как это делается??
вот я попыталась это сделать, но мне непонятны некоторые моменты! посмотрите, пожалуйста!!!: Код:
Последний раз редактировалось Nanochka; 12.11.2008 в 23:12. |
15.11.2008, 21:37 | #4 |
Пользователь
Регистрация: 07.11.2008
Сообщений: 11
|
Ну ребята!!!! HELP!!! Мне правда срочно надо!!!!
Последний раз редактировалось Nanochka; 16.11.2008 в 21:35. |
16.11.2008, 21:38 | #5 |
Пользователь
Регистрация: 07.11.2008
Сообщений: 11
|
|
17.11.2008, 10:15 | #6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Nanochka, Вы ж поймите, раз никто не отзывается, значит нечего сказать... а не потому, что Вас игнорируют! Вы вообще умница. Хорошо копаете...
А вот тема у Вас очень непростая... Теперь по существу. Я абсолютно не уверен, что Вы правильно переводите алгоритм.. (некогда разбираться и копать глубоко ;-( 1) даже если Вы правильно и полностью переведёте вышеприведённую программу с C на Pascal - всё равно не получится - в коде программы на C используется, например, функции XYmodP() или Y_K_M_mod_P(), которые Вам прийдётся писать самостоятельно... 2) перед первым выделенным красным кодом while(K,(P-1)) == 0) ; в программе на C есть присвоение K=simple[random(R)]; где это у Вас?.. 3) while(K,(P-1)) == 0) ; на Паскале (Delphi) будет так: while( (K mod (P-1)) = 0) do ... 4) выделенный второй участок кода находится в ЗАКОММЕНТИРОВАННОЙ части программы... и т.д.... |
17.11.2008, 16:33 | #7 |
Пользователь
Регистрация: 07.11.2008
Сообщений: 11
|
Ну хоть на это спасибо
|
17.11.2008, 16:50 | #8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
к сожалению, не за что...
лучше расскажите - 1) каковы сроки? 2) насколько Ваш проект должен быть приближён к практической жизни? (можно ли использовать МАЛЕНЬКИЕ простые числа? просто для иллюстрации работы алгоритма?) |
20.11.2008, 14:01 | #9 |
Пользователь
Регистрация: 07.11.2008
Сообщений: 11
|
сроков сдачи уже нету, на следующей неделе-расстрел.
в программе не должно быть ничего особенного, вплоть до того, что пример шифруемого текста может нажодиться не на форме, а в тексте программы, но программа должна его шифровать и куда-нибудь выводить полученвые значения,больше никаких ограничений! |
22.11.2008, 23:20 | #10 |
Пользователь
Регистрация: 07.11.2008
Сообщений: 11
|
может кто нибудь в нете что встречал?
|