fixin (fixin) wrote,
fixin
fixin

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.


 

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

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 30 comments