最近开始调研同态加密实现的PSI,回顾了一下基于RSA的PSI方式,见文章
https://eprint.iacr.org/2009/491.pdfzzi
按自己的理解实现了一个python的RSA隐私求交的流程
流程基本按下图实现:

为了理解中间“盲化”和哈希的过程,所以没有用现成的RSA加解密方案 而是用gmpy2 库的加速模幂计算方法做了 加解密操作。
from Cryptodome.PublicKey import RSA
import hashlib
import binascii
import gmpy2
import os
rand_bits = 128
def hash_bignumber(num,method='sha1'):
'''
num: an integer
'''
if method == 'sha1':
hash_obj = hashlib.sha1(str(num).encode('utf-8'))
digest_hex = hash_obj.hexdigest()
return int(digest_hex,16)
def gen_key():
key = RSA.generate(1024)
pk = (key.n,key.e)
sk = (key.n,key.d)
return pk,sk
def blind_msg_arr_use_pk(msg_a

本文档介绍了一种基于RSA的隐私信息求交(PSI)方法,通过盲化和哈希过程确保数据安全性。作者使用gmpy2库实现了加解密,并在Python中模拟了整个流程,包括客户端的盲化、服务器端的解盲、加密和哈希,以及双方的共同元素查找。实验结果验证了该方法的有效性。
最低0.47元/天 解锁文章
1227

被折叠的 条评论
为什么被折叠?



