
これは一部の人にとっては明らかですが、次のようにサイズ8192のキーを生成したかどうか疑問に思います。
ssh-keygen -t rsa -b 8192
AES暗号化とBASE64エンコーディングを使用するSSH秘密鍵のサイズは、指定された8192より小さくできますか?
サイズは6446です。
少し圧縮が含まれていますか?
答え1
8192 rsa キー8192ビット、バイトではありません。 1024バイトです。
BASE64のエンコードされたバイトサイズは4/3倍増加します。
$ echo $((1024*8/6))
1365
これは公開鍵ファイルの鍵サイズに似ています。
$ awk '{print $2}' rsatest.pub | wc -c
1397
もちろん「秘密鍵ファイル」です(少なくとも)含む:
- m値(共通係数)
- eの価値
- dの値
- pの値
- qの価値
実際には、8つの(大きな数字と小さな数字)数字が含まれています。
cat rsatest | grep -v -- ----- | tr -d '\n' | base64 -d | openssl asn1parse -inform DER
サイズは6363バイトを含むように4倍以上増加します。
個人ファイルの内部を見る他の方法は次のとおりです。
openssl rsa -text -in rsatest
これは、ファイルに整数が含まれていることを示します。
- 係数
- 公開インデックス
- プライベートインデックス
- 素数1
- 素数2
- インデックス1
- インデックス2
- 係数
答え2
RSA キーの長さはバイトではなくビットで指定されます。 RSAキーモジュールへの長さは8192ビットまたは1024バイトです。