我想用openssl生成一個密鑰對,但我不能設置參數來生成我的私鑰/公鑰。 我想傳遞一個輸入參數,例如一個標識符(例如mac地址),以獲得唯一的私鑰/公鑰。對於相同的標識符,我想要相同的私鑰/公鑰。 我如何做到這一點? 在此先感謝:D自定義openssl生成RSA密鑰params
1
A
回答
0
RSA密鑰對必須隨機生成。
確定性地生成代 - 您不再生成密鑰,而是從某些數據(例如,基於MAC地址)獲取密鑰。這將生成的密鑰的安全性降低到零 - 因此它們是無用的,您甚至不必開始生成它們。
RSA安全的核心假設是私鑰只有密鑰擁有者才知道。如果你把一個公共信息,如MAC地址以下公式:
RSA密鑰對=您的-推導算法(MAC地址)
如果你想知道RSA私鑰(這是一部分密鑰對),您需要MAC地址和派生算法。 MAC是公共的,並且派生算法將在更早或更晚的時候公開。
因此,RSA私鑰也是公開的,從安全角度來看它是無用的,因爲每個知道MAC地址的人都可以生成它。
請注意:安全基於祕密數據和精心設計的算法。該算法是否公開對安全性不應有任何影響。如果它有一個影響,你有一個不安全的算法,你可以扔掉。
+0
嗨,你能解釋我如何生成相同的輸入參數相同的密鑰對我減少生成的密鑰的安全性? –
+0
查看我更新的答案。 – Robert
相關問題
- 1. 使用openssl生成RSA 1024密鑰對
- 2. RSA密鑰生成
- 3. 在perl中用自定義PRNG生成RSA密鑰對
- 4. RSA公鑰加密openssl
- 5. C#OpenSSL RSA私鑰加密
- 6. RSA算法密鑰生成
- 7. C RSA密鑰生成器
- 8. 使openssl生成確定性密鑰
- 9. OpenSSL的生成密鑰對OSX OpenSSL的
- 10. 加載OpenSSL生成的Android/Java中的RSA密鑰?
- 11. 在OpenSSL上使用Crypto ++生成的RSA密鑰
- 12. 如何在JAVA中生成RSA密鑰對(採用openssl格式)
- 13. Python Openssl生成rsa密鑰對並寫入文件
- 14. 如何在NodeJS中使用openssl-wrapper生成RSA密鑰?
- 15. 自定義密鑰生成在RavenDB
- 16. AES加密 - 密鑰生成與OpenSSL的
- 17. 如何生成Android中生成的RSA密鑰類似於OpenSSL的PEM_write_PUBKEY鍵
- 18. OpenSSL,從CString讀取公共RSA密鑰
- 19. OpenSSL(cpp)和.net RSA密鑰交換
- 20. M2CRYPTO用自動密碼生成RSA密鑰對
- 21. RSA公共密鑰生成 - SWIFT
- 22. 爲用戶安全生成RSA密鑰
- 23. 如何在Dart中生成RSA密鑰?
- 24. 正確生成RSA + AES密鑰
- 25. 在C中生成私有RSA密鑰#
- 26. 生成常量RSA密鑰(Java)
- 27. 錯誤RSA密鑰對生成Java中
- 28. iOS生成RSA非隨機密鑰對?
- 29. 生成RSA密鑰對 - 壞地址
- 30. 用Erlang生成一個RSA密鑰對?
使用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