(안전하지 않은) 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)

관련 정보