Public-Key
證明擁有 libsodium 中的私鑰
我想證明我擁有使用
sk
公鑰的私鑰。pk``libsodium
因此,我正在
m
使用 libsodium 的crypto_sign
功能簽署一條持續的消息。然後發布已簽名的消息 (signature + m
)。libsodium
crypto_sign
用作Ed25519
數字簽名方案。問題:
- 重複使用恆定消息是否會引入任何攻擊媒介?
- 關於狀態的 libsodium 文件
crypto_sing
:在驗證使用公鑰簽名的消息之前,驗證者需要已經知道並最終信任公鑰。
https://libsodium.gitbook.io/doc/public-key_cryptography/public-key_signatures#purpose
該資訊是否與我的案件相關,因為我實際上不想驗證消息,但想證明擁有
sk
?
如果您要多次公開帶有簽名的同一消息,它很容易受到重放攻擊。這是另一方基本上複製您的消息和簽名並可以隨時重新發布的地方,這意味著他們擁有密鑰。為了解決這個問題,請在簽名前向消息中添加一小段資訊,例如每個已發布簽名唯一的計數器或隨機數。
至於信任簽名密鑰,必須使用受信任方,即證書頒發機構或 PKI,以便從他們那裡收到的任何數據都是可信的。所以當 Alice 發布消息和簽名時,CA 告訴人們 Alice 的靜態公鑰,這是可信的,然後每個人都可以安全地驗證 Alice 確實擁有她聲稱擁有的私鑰這一事實。