我想用openssl生成一個密鑰對,但我不能設置參數來生成我的私鑰/公鑰。 我想傳遞一個輸入參數,例如一個標識符(例如mac地址),以獲得唯一的私鑰/公鑰。對於相同的標識符,我想要相同的私鑰/公鑰。 我如何做到這一點? 在此先感謝:D自定義openssl生成RSA密鑰params
1
A
回答
0
RSA密鑰對必須隨機生成。
確定性地生成代 - 您不再生成密鑰,而是從某些數據(例如,基於MAC地址)獲取密鑰。這將生成的密鑰的安全性降低到零 - 因此它們是無用的,您甚至不必開始生成它們。
RSA安全的核心假設是私鑰只有密鑰擁有者才知道。如果你把一個公共信息,如MAC地址以下公式:
RSA密鑰對=您的-推導算法(MAC地址)
如果你想知道RSA私鑰(這是一部分密鑰對),您需要MAC地址和派生算法。 MAC是公共的,並且派生算法將在更早或更晚的時候公開。
因此,RSA私鑰也是公開的,從安全角度來看它是無用的,因爲每個知道MAC地址的人都可以生成它。
請注意:安全基於祕密數據和精心設計的算法。該算法是否公開對安全性不應有任何影響。如果它有一個影響,你有一個不安全的算法,你可以扔掉。
+0
嗨,你能解釋我如何生成相同的輸入參數相同的密鑰對我減少生成的密鑰的安全性? –
+0
查看我更新的答案。 – Robert
相關問題
- 1. 在perl中用自定義PRNG生成RSA密鑰對
- 2. RSA算法密鑰生成
- 3. 如何在JAVA中生成RSA密鑰對(採用openssl格式)
- 4. 在OpenSSL上使用Crypto ++生成的RSA密鑰
- 5. 如何在NodeJS中使用openssl-wrapper生成RSA密鑰?
- 6. AES加密 - 密鑰生成與OpenSSL的
- 7. M2CRYPTO用自動密碼生成RSA密鑰對
- 8. RSA公共密鑰生成 - SWIFT
- 9. 用Erlang生成一個RSA密鑰對?
- 10. 生成常量RSA密鑰(Java)
- 11. 正確生成RSA + AES密鑰
- 12. 在C中生成私有RSA密鑰#
- 13. 確定性生成RSA加密密鑰對
- 14. 如何將openssl RSA密鑰轉換爲Android引導程序RSA密鑰格式?
- 15. RSA密鑰對生成並存儲到密鑰庫
- 16. 從RSA編碼的AES密鑰生成AES密鑰
- 17. 分割故障,則產生RSA密鑰使用OpenSSL的
- 18. 如何使用openssl生成使用AES128或AES256加密的RSA私鑰?
- 19. Android:如何用RSA密鑰解密一個openssl加密文件?
- 20. C#bouncy castle生成rsa客戶端/服務器rsa密鑰對
- 21. 如何將由openSSL生成的RSA公鑰加載到RSACryptoServiceProvider中?
- 22. 將OpenSSL生成的RSA公鑰轉換爲OpenSSH格式(PHP)
- 23. 加密與給定的RSA公鑰的OpenSSL
- 24. MySQL:自定義自動生成的密鑰(AUTO_INCREMENT /多列索引)
- 25. 使用特定的公開指數生成RSA密鑰
- 26. 自動生成密鑰
- 27. java.security.InvalidKeyException:上生成RSA公鑰
- 28. 生成RSA密鑰對並將私鑰編碼爲字符串
- 29. asp.net生成沒有密鑰存儲的RSA公鑰對
- 30. 在生成公鑰/私鑰之前關閉RSA加密force
使用OpenSSL的'RSA_generate_ex'可能需要一些工作。您可能需要提供一個提供隨機數字生成器的'ENGINE'。您的RNG將提供密鑰生成算法使用的位。 Richard Levitte在[引擎構建課程1:最小無用引擎]中有幾個教程(https://www.openssl.org/blog/blog/2015/10/08/engine-building-lesson-1-a-最小無用引擎/)和[引擎構建第2課:MD5引擎示例](https://www.openssl.org/blog/blog/2015/11/23/engine-building-lesson-2-an-例如-MD5引擎/)。 – jww
一個更好的選擇可能會讓你創建'p','q','n','e','d'和CRT參數。他們只是'BIGNUM'的,你會完全控制表格。然後,將它們分配給一個'RSA *'。標準警告適用於這種方式與密鑰生成混合... – jww