AES暗号化とBASE64エンコーディングを使用するSSH秘密鍵のサイズが指定されたサイズより小さい場合はどうすればよいですか?

AES暗号化とBASE64エンコーディングを使用するSSH秘密鍵のサイズが指定されたサイズより小さい場合はどうすればよいですか?

これは一部の人にとっては明らかですが、次のようにサイズ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

もちろん「秘密鍵ファイル」です(少なくとも)含む:

  1. m値(共通係数)
  2. eの価値
  3. dの値
  4. pの値
  5. 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
  • 係数

おすすめ記事