generate(size) -> OpenSSL::PKey::DSA
[permalink][rdoc][edit]generate(size) {|u,n| ... } -> OpenSSL::PKey::DSA
-
乱数により DSA 公開鍵と秘密鍵のペアを生成して、DSA オブジェクトとして返します。
このメソッドを呼ぶ前に OpenSSL::Random の各モジュール関数によって乱数が適切に初期化されている必要があります。
size は DSA パラメータの素数のビット数を指定します。最大 1024 まで指定できます。通常 512 か 1024 を使います。
このメソッドにブロックが渡された場合には、鍵パラメータ生成の途中経過の情報を引数としてブロックが呼び出されます。
- n個目の素数候補を生成した場合、u=0 でブロックが呼びだされる
- 生成した素数候補が小さな素数で割りきれてしまった場合は u=1, n=-1 でブロックが呼びだされる
- 生成した素数候補がn回目の素数テスト(Miller-Robin)に成功した 場合、u=1 でブロックが呼び出される
- 適当な1つめの素数が見付かった場合は、u=2, n=0 と u=3, n=0 でブロックが呼び出される
- もう1つ素数を見付けるために、上の1,2,3をもう一度繰り返す
- 適当な2つめの素数が見付かった場合は、u=2, n=1 でブロックが 呼び出される
- パラメータ g (generator) が見付かった場合には、 u=3, n=1 でブロックが呼び出される
DSA パラメータの生成には時間がかかるため、生成の途中経過をユーザに表示したい場合にこの機能を使います。