これはよくわかりませんね。
according to: http://www.madboa.com/geek/openssl/#key-rsa , 秘密鍵から公開鍵を生成することができます。
openssl genrsa -out mykey.pem 1024
openssl rsa -in mykey.pem -pubout > mykey.pub
最初に考えたのは、この2つはペアで一緒に生成されるということでした。 RSAの秘密鍵には和が含まれているのか、それとも公開鍵が含まれているのか。
openssl genrsa -out mykey.pem 1024
と入力すると、実際に公開鍵と秘密鍵のペアが生成されます。このペアは、生成された mykey.pem
ファイルに格納されます。
openssl rsa -in mykey.pem -pubout > mykey.pub
は公開鍵を抽出してそれをプリントアウトします。ここに、このことをよりよく説明しているページへのリンクがあります。
EDIT: ここの例のセクションをチェックしてください。秘密鍵の公開部分だけを出力するには。
openssl rsa -in key.pem -pubout -out pubkey.pem
SSHで使える公開鍵を得るには、ssh-keygenを使います。
ssh-keygen -y -f key.pem > key.pub
opensslを含め、RSA秘密鍵を生成するほとんどのソフトウェアでは、秘密鍵はPKCS#1 RSAPrivatekeyオブジェクトまたはその派生物として表されます。
A.1.2 RSA秘密鍵の構文 > A.1.2 RSA秘密鍵の構文 > RSA秘密鍵は以下のASN.1型で表される。 RSAPrivateKey:
RSAPrivateKey: > RSAPrivateKey ::= SEQUENCE { バージョン バージョン。 modulus INTEGER, -- n publicExponent INTEGER, -- e privateExponent INTEGER, -- d prime1 INTEGER, -- p 素数1 INTEGER, -- p > 素数2 INTEGER, -- q exponent1 INTEGER, -- d mod (p-1) 指数2 INTEGER, -- d mod (q-1) 係数 INTEGER, -- (qの逆数) mod p otherPrimeInfos OtherPrimeInfos OPTIONAL }。
ご覧のように、このフォーマットは、モジュラスと公開指数を含む多くのフィールドを持っており、RSA公開鍵の情報の厳密なスーパーセットとなっています。