Python.exe 停止使用 Charm Crypto HybridEnc.Decrypt()
Python.exe stopped working on Charm Crypto HybridEnc.Decrypt()
我正在尝试 运行 代理重新加密实现的代码,感谢 https://github.com/nikosft/IB-PRE
上的 Nikosft
我正在使用 pre_mg07a.py 文件。 Python 执行并成功打印所有用于加密和重新加密的调试消息,但在以下代码的最后一行,它显示 python.exe 已停止工作。我试图找出问题的根源,但我所知道的是它在 charm.adapters.pkenc_adapt_hybrid.
中调用 HybridEnc.decrypt() 方法时在解密过程中崩溃
我的test.py文件:
from pre_mg07a import PreGA
def main():
from charm.toolbox.pairinggroup import PairingGroup,GT
from charm.core.engine.util import objectToBytes,bytesToObject
from charm.schemes.pkenc.pkenc_cs98 import CS98
from charm.toolbox.ecgroup import ECGroup
from charm.toolbox.eccurve import prime192v2
group = PairingGroup('SS512', secparam=1024)
groupcs98 = ECGroup(prime192v2)
pkenc = CS98(groupcs98)
pre = PreGA(group,pkenc)
ID1 = "nikos"
msg = group.random(GT)
print("MESSAGE:::::::\n %s", msg)
(master_secret_key, params) = pre.setup()
(public_key, secret_key) = pkenc.keygen()
id1_secret_key = pre.keyGen(master_secret_key, ID1)
ciphertext = pre.encrypt(params, ID1, msg)
re_encryption_key = pre.rkGenPKenc(params,id1_secret_key, public_key)
ciphertext2 = pre.reEncryptPKenc(params, re_encryption_key, ciphertext)
pre.decryptPKenc(params, public_key, secret_key, ciphertext2) #problem here
if __name__ == "__main__": main()
https://github.com/nikosft/IB-PRE/blob/master/pre_mg07a.py
文件 'decrptPKenc' 方法:
def decryptPKenc(self, params, public_key, secret_key, cid):
print('here')
Xbytes = pkenc.decrypt(public_key, secret_key, cid['C3'])#stopped working
X = bytesToObject(Xbytes, group)
m = cid['C2']/pair(cid['C1'],group.hash(X,G1))
if(debug):
print('\nDecrypting...')
print('m=>')
print(m)
return m
平台详情:
Windows 7 64 位,Python 3.4 32 位,带 Msys 的 MingW 32 位。已安装:openssl 1.0.1u、GMP 5.0.2、PBC 0.5.14、Charm Crypto 0.43。
已尝试:使用不同的 python 版本,2.7 和 3.2。我无法用它们正确配置和制作魅力。
任何帮助将不胜感激。我知道这可能是一个非常具体的主题,但也许问题有所不同。也欢迎任何建议。
最终放弃windows。尝试了 Ubuntu 14.04,它在一些常见的配置问题后工作。
以下是其他人如何为 Python 3.4 配置 Charm-Crypto:
sudo apt-get install subversion
sudo apt-get install m4
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install libssl-dev
sudo apt-get install python3-setuptools python3-dev
sudo apt-get install libgmp-dev
wget http://crypto.stanford.edu/pbc/files/pbc-0.5.14.tar.gz
tar xf pbc-0.5.14.tar.gz
cd pbc-0.5.14
./configure && make && sudo make install
已从 https://pypi.python.org/pypi/charm-crypto/0.43 下载 charm 的 tar.gz 文件,解压缩并更改目录,然后:
./configure.sh
sudo make
sudo make install
sudo ldconfig
我正在尝试 运行 代理重新加密实现的代码,感谢 https://github.com/nikosft/IB-PRE
上的 Nikosft我正在使用 pre_mg07a.py 文件。 Python 执行并成功打印所有用于加密和重新加密的调试消息,但在以下代码的最后一行,它显示 python.exe 已停止工作。我试图找出问题的根源,但我所知道的是它在 charm.adapters.pkenc_adapt_hybrid.
中调用 HybridEnc.decrypt() 方法时在解密过程中崩溃我的test.py文件:
from pre_mg07a import PreGA
def main():
from charm.toolbox.pairinggroup import PairingGroup,GT
from charm.core.engine.util import objectToBytes,bytesToObject
from charm.schemes.pkenc.pkenc_cs98 import CS98
from charm.toolbox.ecgroup import ECGroup
from charm.toolbox.eccurve import prime192v2
group = PairingGroup('SS512', secparam=1024)
groupcs98 = ECGroup(prime192v2)
pkenc = CS98(groupcs98)
pre = PreGA(group,pkenc)
ID1 = "nikos"
msg = group.random(GT)
print("MESSAGE:::::::\n %s", msg)
(master_secret_key, params) = pre.setup()
(public_key, secret_key) = pkenc.keygen()
id1_secret_key = pre.keyGen(master_secret_key, ID1)
ciphertext = pre.encrypt(params, ID1, msg)
re_encryption_key = pre.rkGenPKenc(params,id1_secret_key, public_key)
ciphertext2 = pre.reEncryptPKenc(params, re_encryption_key, ciphertext)
pre.decryptPKenc(params, public_key, secret_key, ciphertext2) #problem here
if __name__ == "__main__": main()
https://github.com/nikosft/IB-PRE/blob/master/pre_mg07a.py 文件 'decrptPKenc' 方法:
def decryptPKenc(self, params, public_key, secret_key, cid):
print('here')
Xbytes = pkenc.decrypt(public_key, secret_key, cid['C3'])#stopped working
X = bytesToObject(Xbytes, group)
m = cid['C2']/pair(cid['C1'],group.hash(X,G1))
if(debug):
print('\nDecrypting...')
print('m=>')
print(m)
return m
平台详情: Windows 7 64 位,Python 3.4 32 位,带 Msys 的 MingW 32 位。已安装:openssl 1.0.1u、GMP 5.0.2、PBC 0.5.14、Charm Crypto 0.43。
已尝试:使用不同的 python 版本,2.7 和 3.2。我无法用它们正确配置和制作魅力。
任何帮助将不胜感激。我知道这可能是一个非常具体的主题,但也许问题有所不同。也欢迎任何建议。
最终放弃windows。尝试了 Ubuntu 14.04,它在一些常见的配置问题后工作。
以下是其他人如何为 Python 3.4 配置 Charm-Crypto:
sudo apt-get install subversion
sudo apt-get install m4
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install libssl-dev
sudo apt-get install python3-setuptools python3-dev
sudo apt-get install libgmp-dev
wget http://crypto.stanford.edu/pbc/files/pbc-0.5.14.tar.gz
tar xf pbc-0.5.14.tar.gz
cd pbc-0.5.14
./configure && make && sudo make install
已从 https://pypi.python.org/pypi/charm-crypto/0.43 下载 charm 的 tar.gz 文件,解压缩并更改目录,然后:
./configure.sh
sudo make
sudo make install
sudo ldconfig