2013-06-26 41 views
1

我一直在努力加密一個字符串並將其顯示爲QR碼(在base64編碼字符串之後)。如何將ElGamal密鑰導出到文本文件?

我想在PyCrypto中使用ElGamal私鑰加密模塊進行加密,但問題是它沒有導出功能將密鑰保存到文本文件中。我錯過了什麼嗎?如果沒有,我可以導出一個聰明的方法,或者我應該看看的其他東西?

PS。使用ElGamal而不是RSA的原因是我可以使關鍵字小於1024字節,這使得更小,更簡單的qr代碼。

+1

埃爾 - 賈邁勒密鑰大小並不比RSA短。您應該查看ECC(橢圓曲線密碼術)以獲得更短的非對稱密鑰大小。 – zindorsky

+0

只是一個快速幫助谷歌搜索這個:這個算法的名稱實際上是「ElGamal」。注意'a'而不是'e'。 – korius

+0

768位密鑰已被破解,蠻力攻擊一直變得更快。對於任何安全性來說,1024位是現在最低的。 – ntoskrnl

回答

1

您可以直接使用ElGamal密鑰組件,因爲它們是密鑰對象的成員。

在Python 2.x中,一個可以做下面的一個文本文件,打印出的組件:

from Crypto.PublicKey import ElGamal 
from Crypto.Random import get_random_bytes 

key = ElGamal.generate(2048, get_random_bytes) 
comps = ('p', 'g', 'y', 'x') 
out = "\n".join(["{} = {}".format(comp, getattr(key, comp)) for comp in comps]) 
print out