Ssh
SSH 密鑰:為什麼 id_rsa 比 id_rsa.pub 大?
我的私鑰 (
~/.ssh/id_rsa
) 是一個 1766 字節的文件,但我的公鑰 (~/.ssh/id_rsa.pub
) 長度只有 396 字節。為什麼會有巨大的差異?是因為私鑰是用AES加密的嗎?AES 密文的長度通常與明文的長度不一樣嗎?
你的私鑰比你的公鑰擁有更多的資訊。公鑰僅傳遞加密指數 (e) 和模數 (n),而私鑰還包括解密指數 (d) 和模數的兩個素數因子(p 和 q)。私鑰本質上里面有一個公鑰。
$$ Encryption: ciphertext = message^e (mod n); Decryption: message = ciphertext^d (mod n) $$ 要查看私鑰文件中的所有數據:
$ openssl rsa -in id_rsa -text -noout
編輯:私鑰文件顯然沒有加密指數,但它有指數 d_1 和 d_2,其中 d_1 = d (mod p-1) 和 d_2 = d (mod q-1)。這些用於加速解密——您可以將解密取冪拆分為更小的並行取冪呼叫,最終對於大 d 和大 n 來說比一個大 m=c^d (mod n) 更快。