簡體   English   中英

是否可以從 Rust-openssl 中的密碼生成 RSA 密鑰對?

[英]Is it possible to generate a RSA key-pair from a password in Rust-openssl?

客戶端將其私鑰存儲在本地並用於對發送到服務器的消息進行簽名,服務器將用戶的公鑰存儲在數據庫中以驗證來自客戶端的消息。

這是我的問題,如果客戶端由於某些意外(例如硬盤被損壞)丟失了私鑰,它將永遠無法連接到服務器(除非致電服務器管理員重置其密鑰)。

所以我在想,如果有一種算法可以從密碼(可以保存在客戶端的人腦中)生成確定性的 RSA 密鑰對,那么上面提到的問題將被消除。

可以使用 Rust-openssl 實現這樣的算法嗎?

這樣做基本上歸結為使用密碼作為輸入來播種偽隨機數生成器。 相同的種子將產生相同的偽隨機數。 可以在此處找到確定性地生成素數(將用於最終生成 RSA 密鑰)的示例。 如果這是一個單一用途的獨立可執行文件,那么您可以執行RSA_generate_key_ex ,否則編寫一個 RSA 密鑰生成器(使用 BN 函數)並導入密鑰。

查看 dOpenSSL: https : //github.com/bernardoaraujor/dopenssl.rs

它由一些 OpenSSL 功能的確定性實現組成,即:

  • 確定性大數生成
  • 確定性偽隨機數生成
  • 確定性 RSA 密鑰對生成

我開始這個存儲庫作為練習。 我也在維護https://github.com/bernardoaraujor/dopenssl (fork),它是用 C 編寫的。

我在 dopenssl.rs 中的目標是使用bindgen自動生成 Rust Wrappers。 dOpenSSL 功能穩定,但 Rust Wrappers 仍在開發中。

歡迎投稿。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM