2010-09-28 2 views
4

Я пишу реализацию обмена ключами diffie-hellman в рубине для проекта для одного из моих университетских классов. Мне нужно генерировать большие (безопасные) простые числа длиной не менее 500 бит. Есть идеи? Должен ли я использовать библиотеку OpenSSL? Если да, то какие функции вы бы порекомендовали?Создание больших простых чисел для Diffie-Hellman в Ruby

ответ

2

Используйте OpenSSL камень

OpenSSL :: BN :: рэнд

Вы можете указать размер вам нужно - например, так OpenSSL :: BN :: рандов (212)

+0

Awesome, спасибо! Где я могу найти документацию по этому вопросу? Я проверил ruby-doc.org, но все, что я могу найти, это материал на OpenSSL :: HMAC и несколько других. – Jarsen

+0

Кроме того, есть ли функция, которая гарантирует, что это просто? – Jarsen

+1

Также попробуйте OpenSSL :: BN :: generate_prime (500) – abdollar

0

OpenSSL::BN::generate_prime(500) будет делать это, как сказал абдоллар. Убедитесь поставить require 'openssl' в верхней части, чтобы включить его в свой файл рубинового

Чтобы проверить это правильное число битов вы можете распечатать двоичном, просто выдав OpenSSL::BN::generate_prime(500).to_i.to_s(2).length и напечатает 500, и ведущий бит будет 1

Open SSL Documentation

Смежные вопросы