2016-09-26 47 views
0

使用橢圓曲線對正常文本進行加密(例如1mb文件)後,elgamal加密文件的大小是多少?什麼是使用elgamal密碼系統的加密文件大小?

我得到一個250MB的加密文件大小?正常標準多少錢?

+0

沒有代碼,我們只能猜測問題是什麼。 –

+0

@JamesKPolk不,不是,上面清楚地描述了什麼是錯誤的:直接使用不對稱原語來加密文件。 –

回答

1

您應該不僅使用非對稱加密的任何數量的字節,可以超過密鑰的大小,減去一定的最小開銷。這個開銷取決於所使用的算法,例如RSA PKCS#1填充開銷最少需要11個字節,OAEP最少需要大約42個字節。如果直接使用不對稱原語,則會爲數據的keylength - overhead的每個塊獲得此開銷

基本上,爲了安全起見,你應該總是加密少量的字節。一般而言,這意味着一個hybrid cryptosystem被部署用於任何不平凡的字節數量(並且爲了保持兼容性,通常也爲少量的字節)。

混合密碼系統爲每個要加密的消息隨機生成一個對稱會話或數據密鑰。這個對稱密鑰加密數據。對稱密鑰本身也使用非對稱算法加密(或者爲了更好的術語,將其包裝)。然後發送這兩個元素,爲對稱加密和非對稱算法的輸出大小(通常是密鑰大小)提供0到32字節的小開銷。解密解開對稱密鑰,然後解密密文。

正如您所看到的,混合密碼系統在密文大小和CPU時間方面效率更高。不對稱加密比對稱加密效率低得多。

至於使用的算法,ElGamal是一個非常古老的方案。我建議RSA OAEP爲非對稱基元,密鑰大小爲4096位,AES-GCM爲對稱基元。由於不對稱和對稱之間的差異,該方案仍然比ElGamal更快。

+0

以上是一個直接的答案,但考慮到這個問題,我強烈建議預製圖書館/協議,而不是建立自己的(用於生產質量軟件)。 –

+0

非常感謝! – Chandramouli