Ssh-Keygen
使用 AES 加密和 BASE64 編碼的 SSH 私鑰如何具有小於指定的大小?
這對某些人來說可能很明顯,但我想知道,如果我生成了 8192 大小的密鑰:
ssh-keygen -t rsa -b 8192
使用 AES 加密和 BASE64 編碼的 SSH 私鑰的大小如何小於指定的 8192?
它的大小為 6446。
是否涉及一些壓縮?
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
將大小增加至少 4 倍,它包含 6363 個字節。
查看私有文件的其他一些方法是:
openssl rsa -text -in rsatest
這表明文件包含的內容是整數
- 模量
- 公共指數
- 私人指數
- 素數1
- 素數2
- 指數1
- 指數2
- 係數