2016-12-14 31 views
0

我想运行一个代理重加密实现的代码,这要归功于Nikosft上https://github.com/nikosft/IB-PREPython.exe停在魅力加密HybridEnc.Decrypt()工作

我使用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 

平台详细信息: 64位Windows 7,Python的3.4 32位,32位MingW平台与MSYS。安装:openssl 1.0.1u,GMP 5.0.2,PBC 0.5.14,Charm Crypto 0.43。

试过:使用不同的python版本,2.7和3.2。我无法正确配置和配置它们的魅力。

任何帮助将非常感激。我知道这可能是一个非常具体的话题,但也许问题是不同的。任何建议也欢迎。

回答

1

最终放弃在Windows上。试过Ubuntu 14.04,它在一些常见的配置问题后工作。

下面是别人如何配置魅力,加密为Python 3.4:

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 python3-setuptools python3-dev 
sudo apt-get 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

下载魅力的tar.gz文件,提取,改变了目录,那么:

./configure.sh 
sudo make 
sudo make install 
sudo ldconfig