Categories:

RSA получилось, но тормозит.



Получилось написать RSA на Basic, вот оно:




Однако тормозит. Кодирование серийника происходит быстро, за секунду, а вот декодирование медленно, статистика:


На 256-битном ключе – 2 секунды, быстро, но ключ слабый.


На 512-битном ключе – 40 секунд.


На 400-битном ключе – 10 секунд.



Поэтому я озабочен тем, чтобы найти DLL, которая будет делать расчет RSA-ключа.


Если бы у меня была программа на .NET, я бы просто использовал тип BigInteger, ведь по сути, все что требуется, это возвести шифруемое число в степень публичного ключа и разделить на публичный модус. Но степень и модус - огромные числа.


Может кто знает библиотеку DLL, которую можно подрубить для кодирования приватным/декодирования публичным на RSA?


По поводу формы прокомментирую, что я извлекаю из PEM-файла с помощью OpenSSL текстовое описание ключа RSA, далее оттуда получаею публичную и приватную экспоненту и модус. Прикольно, че.


Только вот операции с длинными целыми числами реализовано в используемой мною библиотеке на VB через работу со строками, т.е. жутко медленно.


Вот для справки информация о ключах:



Хороший анализ защиты, обеспечиваемой определенной длиной модуля, приведен в


описании модуля дискретного логарифма Rivest, но то же можно применить и к алгоритму


RSA. В более позднем обзоре защиты, предлагаемой ключами RSA различной длины защита


анализируется на основе методов разложения на множители (факторинга), существовавших в


1995 и перспективах их развития, а также рассматривает возможность привлечения больших


вычислительных ресурсов по информационным сетям. Проведенная в 1997 году оценка


показала, что 512-битный ключ RSA может быть вскрыт (факторингом) за $ 1,000,000 и


восемь месяцев. В 1999 году 512-битный ключ был вскрыт за семь месяцев и это означает,


что 512-битные ключи уже не обеспечивают достаточную безопасность за исключением


очень краткосрочных задач безопасности.


В настоящее время Лаборатория RSA рекомендует для обычных задач ключи размером 1024


бита, а для особо важных задач – 2048 битов (например, для главного Мастера


Сертификатов).


Некоторые недавно введенные стандарты устанавливают для общих задач минимальный


размер ключа 1024 бита. Менее ценная информация может быть надежно зашифрована


ключом 768-битной длины, поскольку такой ключ все еще недосягаем для всех известных


алгоритмов взлома. Для оценки уровней безопасности различных размеров ключей можно


использовать модель предлагаемую Lenstra и Verheul.


 

promo fixin december 31, 2037 16:57 1420
Buy for 30 tokens
UPD: Друзья, в августе 2019 года блог переехал на http://fixinchik.ru. Welcome! Добро пожаловать в журнал Осипова Сергея Александровича, известного также как Fixin и Гений 1С. Рекомендую ознакомиться с Часто Задаваемыми Вопросами обо мне. Что я хочу в подарок - список. Мой проект "…