(安全でない)GPGキーをすばやく生成する方法は?

(安全でない)GPGキーをすばやく生成する方法は?

仮想マシンでテストとデモの目的で少なくとも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/urandomrng-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)

関連情報