Ed25519

ed25519 ssh 公鑰總是 80 個字元長?

  • June 27, 2019

我正在使用 ed25519 創建一些 ssh 密鑰,例如:

$ ssh-keygen -t ed25519
$ ssh-keygen -o -a 10 -t ed25519
$ ssh-keygen -o -a 100 -t ed25519
$ ssh-keygen -o -a 1000 -t ed25519

但我注意到公鑰的輸出總是相同的大小(80 個字元):

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB8Ht8Z3j6yDWPBHQtOp/R9rjWvfMYo3MSA/K6q8D86r
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILYAIoV2OKRSh/DcM3TicD/NK/4TdqwwBPbKgFQKmGZ3
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICpuH/fqCFLbAConChyVH6rZzSaxlnHSwQk6qvtPsf5E
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICip4hl6WjuVHs60PeikVUs0sWE/kPhk2D0rRHWsIuyL

在創建 RSA 密鑰時是否有可能影響密鑰長度的選項/參數,或者設計上總是 80 個(68 個刪除 ssh-ed25519)字元?

在創建 RSA 密鑰時是否有可能影響密鑰長度的選項/參數,或者設計上總是 80 個(68 個刪除 ssh-ed25519)字元?

不,不可能有任何這樣的選擇。

首先請注意,只有範例公鑰的最後 43 個字元是可變的。由於這是Base64-encoding,它們最多可以編碼 $ 43\cdot 6=258 $ 位資訊,足以容納 255 位 $ y $ - 座標和 1 位的符號 $ x $ -座標(這稱為點壓縮)。

下一個注意,EdDSA(這裡使用的簽名方案)需要一個組來工作,而 Ed25519 是 EdDSA 的變體,它將這個組固定到 Edwards-25519 曲線上的點(在 255 位欄位上執行) . 現在因為您的組是固定的並且您的公鑰是曲線的一個點,所以它的最大長度可能只有 256 位(或 SSH 編碼中的 80 個字元)。

現在有比 Ed25519 使用的具有更長密鑰的曲線“更安全”的曲線(例如Ed448-“Goldilocks”),但簽名方案將不再稱為 Ed25519…

引用自:https://crypto.stackexchange.com/questions/44584