回答
您應該不僅使用非對稱加密的任何數量的字節,可以超過密鑰的大小,減去一定的最小開銷。這個開銷取決於所使用的算法,例如RSA PKCS#1填充開銷最少需要11個字節,OAEP最少需要大約42個字節。如果直接使用不對稱原語,則會爲數據的keylength - overhead
的每個塊獲得此開銷。
基本上,爲了安全起見,你應該總是加密少量的字節。一般而言,這意味着一個hybrid cryptosystem被部署用於任何不平凡的字節數量(並且爲了保持兼容性,通常也爲少量的字節)。
混合密碼系統爲每個要加密的消息隨機生成一個對稱會話或數據密鑰。這個對稱密鑰加密數據。對稱密鑰本身也使用非對稱算法加密(或者爲了更好的術語,將其包裝)。然後發送這兩個元素,爲對稱加密和非對稱算法的輸出大小(通常是密鑰大小)提供0到32字節的小開銷。解密解開對稱密鑰,然後解密密文。
正如您所看到的,混合密碼系統在密文大小和CPU時間方面效率更高。不對稱加密比對稱加密效率低得多。
至於使用的算法,ElGamal是一個非常古老的方案。我建議RSA OAEP爲非對稱基元,密鑰大小爲4096位,AES-GCM爲對稱基元。由於不對稱和對稱之間的差異,該方案仍然比ElGamal更快。
以上是一個直接的答案,但考慮到這個問題,我強烈建議預製圖書館/協議,而不是建立自己的(用於生產質量軟件)。 –
非常感謝! – Chandramouli
- 1. 如何使用ElGamal加密/解密文本文件
- 2. 使用ElGamal加密/解密圖像文件
- 3. 如何使用ElGamal加密加密文本
- 4. 密碼的密鑰大小是什麼意思
- 5. ElGamal加密的例子?
- 6. Jenkins使用什麼密碼加密?
- 7. 什麼是密碼加密位
- 8. 在文件加密文件系統
- 9. 自定義密碼加密文件系統用於在Android中存儲文件
- 10. apache2中的密碼文件是什麼?
- 11. 哪個加密算法在NSDataWritingFileProtection中使用iOS,密鑰大小是什麼?
- 12. 谷歌的Hadoop文件系統加密
- 13. IOS的文件系統加密?
- 14. 使用大於密鑰大小的密鑰加密消息
- 15. 使用系統密碼充當應用程序的密碼
- 16. 寫密碼參數到文件系統
- 17. 爲什麼Rijndael加密代碼不適用於大文件?
- 18. 使用系統密碼更新保存的密碼
- 19. 爲什麼在加密文本時使用jasypt設置密碼?
- 20. 系統級文件。加密方式
- 21. AWS使用什麼密碼/密鑰進行AES-256加密?
- 22. 數據庫加密或文件系統加密?
- 23. USB密鑰文件系統
- 24. 是否可以解密使用「IonCube」加密加密的文件?
- 25. Windows 10 - 解密過去加密的文件操作系統
- 26. Postgres createuser想要一個密碼(不是我的系統密碼)
- 27. 密碼的強度與加密有什麼關係?
- 28. 大密鑰大小的加密算法
- 29. 什麼加密被用來加密密碼
- 30. 當我使用鹽漬的CRYPT_MD5加密我的密碼時,什麼在加密?
沒有代碼,我們只能猜測問題是什麼。 –
@JamesKPolk不,不是,上面清楚地描述了什麼是錯誤的:直接使用不對稱原語來加密文件。 –