![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Шифрование алгоритмом RSA [D7, WinXP]
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
> возникает ошибка
А ты уверен, что данные модули правильно работают с Юникодом?