Python中的代理重新加密演示
这是Proxy Re-Encryption(PRE)的演示,演示了如何将其与对称加密正确结合使用,以实现用户数据隐私的极高安全性。
在这种情况下,使用流密码CHACHA20和块密码AES来确保代理(服务器)无法获取用户的私钥和存储在其上的明文数据。
用法
pip3 install -r requirements.txt
python3 demo.py
演示/样本输出
A ---------------------Request key pair----------------------> CA
A <-----------------A key pair, global param------------------ CA
B ---------------------Request key pair-------------
前言
对于RSA的解密,即密文的数字的 D 次方求mod N 即可,即密文和自己做 D 次乘法,再对结果除以 N 求余数即可得到明文。D 和 N 的组合就是私钥(private key)。
算法的加密和解密还是很简单的,可是公钥和私钥的生成算法却不是随意的。使用RSA公钥解密,用openssl命令就是openssl rsautl -verify -in cipher_text -inkey public.pem -pubin -out clear_text,但其python网上还真没有找到有博文去写,只有hash的rsa解签名。
这里使用rsa库,如果没有可以到官方网址https://pypi
RSA Ruby累加器
基于Ruby中强大的RSA假设密码累加器。
安装
将此行添加到您的应用程序的Gemfile中:
gem 'rsa-accumulator'
然后执行:
$ bundle
或将其自己安装为:
$ gem install rsa-accumulator
用法
设置累加器
首先,初始化累加器。 由于累加器使用顺序未知的组,因此可以通过以下方式生成累加器:
require 'rsa-accumulator'
# using RSA modulus published by RSA Laboratory
acc = RSA::Accumulator.generate_rsa2048
# using Random RSA modulus with a specified bit length(default value is )
acc = RSA::Accumul