Ed25519
短 Ed25519 鍵:我可以用作 ID 嗎?
我正在建構分佈式系統,每個使用者都發送簽名消息。我不想有一個公鑰證書系統,就像在 SSL 中完成的那樣,所以我想自己使用公鑰作為使用者 ID。喜歡:
a message from My public key to Your public key: hello! and here goes a signature of "hello!", made with sender's secret key. and anyone can validate the message by sender's id, which also happens to be his public key, making the message self-contained
我不確定的一件事… Ed25519 公鑰太短了,將其用作唯一使用者ID 是否有風險?系統為多個使用者生成相同使用者 ID 的機率是多少?假設生成公鑰時 - 系統無法檢查此使用者 ID 是否已經存在(因為系統的分佈式特性)
系統為多個使用者生成相同使用者 ID 的機率是多少?
你需要的不僅僅是 $ 2^{100} $ 密鑰對/使用者的衝突。
使用 Ed25519,公鑰是 $ P=[a]G $ 和 $ a $ 作為私鑰和 $ G $ 是曲線的公共生成點。現在由於標量乘法的確定性,如果 $ P=P’ $ 然後 $ a=a’ $ 因此使用者共享相同的私鑰。如果兩個使用者都使用一個好的隨機數生成器,他們永遠不會選擇相同的私鑰。更準確地說:如果你生成的少於 $ 2^{126} $ 密鑰對不應該有任何兩個具有相同私鑰的密鑰對,因為您會尋找衝突的隨機 256 位字元串。