SSH 私鑰密碼片語有什麼用途?
假設您使用
ssh-keygen -t rsa -b 2048
. 你最終會得到一個公鑰和私鑰。
id_rsa
id_rsa.pub
ssh-keygen
會提示:Enter passphrase (empty for no passphrase):
我的理解是,這
id_rsa
將獲得一個質數,id_rsa.pub
並將獲得另一個質數。密碼片語的用途是什麼?私鑰是否使用密碼在本地加密?我注意到
id_rsa
文件長度比id_rsa.pub
. 這是加密的副產品嗎?是否有更多編碼數據?
密碼片語的用途是什麼?私鑰是否使用密碼在本地加密?
密碼片語源自用於加密私鑰的對稱密鑰。它可以充當客戶端(不是最好的)第二個身份驗證因素(第一個是擁有私鑰文件),並在密鑰以某種方式洩漏時保護密鑰的機密性,例如從未加密的備份中.
我注意到 id_rsa 文件的長度比 id_rsa.pub 長很多。這是加密的副產品嗎?是否有更多編碼數據?
公鑰也附加到
id_rsa
文件中的私鑰。您可以僅使用私有文件來恢復公鑰文件。
我的理解是 id_rsa 將獲得一個質數,而 id_rsa.pub 將獲得另一個質數。
不完全的。公鑰有一個模數 $ r $ 和一個指數 $ e $ . 私鑰具有相同的模數 $ r $ 和一個指數 $ d $ . 選擇它們是為了對任何 $ a\leq r $ ,$$ (a^e)^d\equiv a (\mod r) $$
可以推斷 $ d $ 從 $ e $ (反之亦然)如果一個人知道 $ r $ . 我們假設這是唯一的方法。因為一般來說很容易分解具有很多小的質因數的東西,我們喜歡製作的質因數 $ r $ 盡可能大。通常這被描述為使 $ r $ 兩個素數的乘積,但這絕不是必要的。例如,在模數(比方說)剛好在 $ 2 $ , 實現者可以選擇獲得第三個小的素數 $ r $ 成那種形式。
密鑰長度
創建密鑰時,您可以選擇其中一個指數或多或少您喜歡的任何值,然後從中推斷出另一個。特別是,您可以選擇其中一個非常小,因為取冪所需的時間受指數大小和數量的影響 $ 1 $ 位在其中。 $ 3 $ 和 $ 65537 $ 是流行的選擇。顯然,這麼短的指數很容易猜到,因此,可以從這個縮寫中受益的是公鑰 - 請記住,這在數學上不是必需的,而只是為了實現方便。
因此*,如果這樣做,*公鑰(具有非常短的指數)實際上將是私鑰長度的一半。
密碼
該釋義對密碼學沒有太大的興趣。它的唯一功能是說“即使你不小心讓某人擁有了私鑰文件的副本,他也不會在沒有猜出密碼片語的情況下真正擁有私鑰”。