仮想マシンでテストとデモの目的で少なくとも2つのGPGキーを自動的に生成したいと思います。このような背景のために私はこう考えました。キーが迅速に生成されたことを確認し、/dev/*random
まったく使用または変更しないことをお勧めします。たとえば、システムクロックをランダム性の唯一のソースとして使用すると、次のように動作します。
$ gpg --quick-gen-key 'alice' [options] --random-data $(date +%s)
$ sleep 2
$ gpg --quick-gen-key 'bob' [options] --random-data $(date +%s)
私はこのようなオプションを見つけることができませんでした。持つ-quick-random
そして--debug-quick-random
ページにないコンテンツは、以下でサポートされman
ているようです。gpg
ただ動作しません。たとえば、次のコマンドは、私が終了する前に数分間実行されました。
$ gpg --batch --debug-quick-random --passphrase 'alice' --quick-gen-key '[email protected]'
$ gpg --batch -quick-random --passphrase 'alice' --quick-gen-key '[email protected]'
gpg
(GnuPG)の使用2.1.2。
答え1
/dev/random
一時的に次のコマンドを使用できます。/dev/urandom
rng-tools
# rngd -v -f -r /dev/urandom
詳細については、ここをクリックしてください。https://madebits.github.io/#blog/2014/2014-05-30-Making-dev-random-Temporary-Faster.md
答え2
記事を書いている間も同じ要件があります。スマートカード設定プログラム。テスト中は、エントロピーを気にせずにテストするたびに、複数のGPGキーを連続して生成する必要があります。
私の答えで説明されているようにここ次のスクリプトは、作業をスピードアップするのに役立ちました。
#!/usr/bin/env python
# For testing purposes only
# DO NOT USE THIS, THIS DOES NOT PROVIDE ENTROPY TO /dev/random, JUST BYTES
import fcntl
import time
import struct
RNDADDENTROPY=0x40085203
while True:
random = "3420348024823049823-984230942049832423l4j2l42j"
t = struct.pack("ii32s", 8, 32, random)
with open("/dev/random", mode='wb') as fp:
# as fp has a method fileno(), you can pass it to ioctl
res = fcntl.ioctl(fp, RNDADDENTROPY, t)
time.sleep(0.001)