Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Шифрование алгоритмом RSA [D7, WinXP]


Страницы:   1 2 3

cr@nk ©   (2011-01-15 23:30:00) 

Задается исходная строка и надо зашифровать её по алгоритму RSA
Для работы с большими числами скачал библиотеку FGInt ( http://www.submanifold.be/triade/GInt/gint.html  RSA.zip) . В архиве прилагается пример шифрования строки.
Подгоняю данные в их исходнике под пример из http://ru.wikipedia.org/wiki/RSA#.D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.80(просто фиксировано задаю переменные E, D, N)
program Project1;

{$APPTYPE CONSOLE}

uses
 SysUtils,
 FGInt,
 FGIntPrimeGeneration,
 FGIntRSA;

Var
 n, e, d : TFGInt;
 test : String;
Begin
 Base10StringToFGInt('3', e);
 Base10StringToFGInt('9173503', n);
 Base10StringToFGInt('6111579', d);
 RSAEncrypt('111111', e, n, test);
 writeln(test);
 readln;
End.

Получаю UА_n‹@k‘вместо 4051753

Также нашёл в сети пару программ ( http://dl.dropbox.com/u/4653598/RSA_sample.rar), демонстрирующих работу с RSA. В них видимо идентичный код, т.к. на выходе получаются идентичные данные
При значениях E= 7, N=697, D=183 и входной строке 111111получаю 535 535 535 535 535 535
Если эти же значения использовать с модулями от FGInt, то получаем на выходе получаем \x2\x15Ц §1–c.
Есть догадка, что в модуле от FGInt присутствует какая-то "добавка", которая в корне меняет конечный результат. Но также в тех 2-х программах очень не нравится выходная строка - одинаковые тройки чисел.

Что-то так много всего написал, что не знаю, как правильно сформулировать вопрос :)
Наверное хотелось бы увидеть нормальный модуль или пример, где реализован чистый алгоритм RSA, позволяющий шифровать отдельно текст, а не сами файлы на жёстком диске.
Второй день бьюсь над решением этой задачи

P.S.: При использовании модулей FGInt в Delphi 2010, XE возникает ошибка, если вызывать одну из функций (замечал это на функции Base256StringToFGInt). Эту информацию привожу для справки... вдруг она тоже окажется полезной


cr@nk   (2011-01-16 07:18:00) [41]


> А ты уверен, что данные модули правильно работают с Юникодом?

Нет, поэтому использую Delphi 7


Германн   (2011-01-16 03:52:00) [42]


> P.S.: При использовании модулей FGInt в Delphi 2010, XE
> возникает ошибка

А ты уверен, что данные модули правильно работают с Юникодом?


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо