号化されたままのデータに対して演算(加算や乗算)を行える暗号方式
from phe import paillier
# 鍵生成
public_key, private_key = paillier.generate_paillier_keypair()
# 平文データ
a = 10
b = 20
# 暗号化
enc_a = public_key.encrypt(a)
enc_b = public_key.encrypt(b)
# 暗号上での加算(a + b)
enc_sum = enc_a + enc_b
# 暗号上でのスカラー乗算(a * 5)
enc_mul = enc_a * 5
# 復号
dec_sum = private_key.decrypt(enc_sum)
dec_mul = private_key.decrypt(enc_mul)
print("平文 a =", a, ", b =", b)
print("復号後 (a + b) =", dec_sum)
print("復号後 (a * 5) =", dec_mul)
$ python3 paillier.py
平文 a = 10 , b = 20
復号後 (a + b) = 30
復号後 (a * 5) = 50
 
					 
