Diffie-Hellmanパラメータを生成しましたが、速すぎるようです。すべてが1秒未満で終わりました。
$ openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
This is going to take a long time
..............................................+.++*++*
$
比較的新しいECS t2.mediumインスタンス(2 VCPU、4GB RAM)で実行しています。
もう一度実行したところ、今回は5918文字が出力され、約30秒かかりました。
初めて何が起こったのですか?
Diffie Hellmanパラメータを作成する場合、大きな素数であるp
を法として作成するのに最も時間がかかります。これを作成するには、半乱数を取り、素数性をチェックします。運が良ければ、すぐに素数を選択すると、アルゴリズムはすぐに終了します。
具体的には:
BN_generate_prime_ex
呼び出し probable_prime_dh_safe
乱数を受け取り、最初の2048個の素数で割り切れるかどうかをチェックします。そうである場合は、別の乱数などを使用します。素数が見つかると、ドットを印刷します。BN_is_prime_fasttest_ex
を呼び出して、 Miller–Rabin素数性テスト を実行します。テストされた値が素数の場合、「+」を出力します。p
と(p-1)/2
の両方をこの方法でテストし、両方が素数の場合は*
を出力します。実際に確認するために数回テストします。 2048ビットの場合、チェックします twice 。そのため、出力の最後に++*++*
が表示されます。素数である可能性が非常に高い数が見つかるまで、これらのステップを繰り返します。必要なループの数は、偶然によって異なります。