asn1parse
これを行う 1 つの方法は、OpenSSL のコマンドの-genconf
オプションを使用して DER でエンコードされたキーを生成することです。
標準形式 ( RFC 3447asn1parse -genconf
ごと) で RSA キーを生成するには、入力ファイルを作成する必要があります。の構文は次のとおりです: http://www.openssl.org/docs/crypto/ASN1_generate_nconf.html実際、RSA キーを構築するための例が既にあります。asn1parse -genconf
さらにいくつかの値を計算する必要があります (具体的にはd mod (p-1)
、d mod (q-1)
および。指定した 、のq^-1 mod p
値についてはp
、次のとおりです。q
d
d mod(p-1) = 23 mod 16 = 7
d mod(q-1) = 23 mod 10 = 3
q^-1 mod p = 14
これをすべて適切な形式のテキスト ファイルにまとめます。
asn1=SEQUENCE:rsa_key
[rsa_key]
version=INTEGER:0
modulus=INTEGER:187
pubExp=INTEGER:7
privExp=INTEGER:23
p=INTEGER:17
q=INTEGER:11
e1=INTEGER:7
e2=INTEGER:3
coeff=INTEGER:14
バイナリ DER ファイルを作成するには、次のようにします。
openssl asn1parse -genconf <path to above file> -out newkey.der
その後、OpenSSL のrsa
コマンドを使用してこれを実行し、確認できます。
openssl rsa -in newkey.der -inform der -text -check
どちらが出力されますか:
Private-Key: (8 bit)
modulus: 187 (0xbb)
publicExponent: 7 (0x7)
privateExponent: 23 (0x17)
prime1: 17 (0x11)
prime2: 11 (0xb)
exponent1: 7 (0x7)
exponent2: 3 (0x3)
coefficient: 14 (0xe)
RSA key ok
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
MBwCAQACAgC7AgEHAgEXAgERAgELAgEHAgEDAgEO
-----END RSA PRIVATE KEY-----
これを使用して、OpenSSL のrsautl
コマンドでデータを暗号化できます (ただし、このキーを使用すると、データの 1 バイトのみの暗号化に制限されますが、そのバイトも 187 未満である必要があります)。