同态加密

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

7
6
检索算法:
1)用户在上传同态加密后的文档时,会在文档首部加入用户加密时使用的Q 与 实时产生的随机大数 Q*Rt 的乘积 。 2)用户在进行检索时,要向服务器提供检索需要的关键词密文Key。其中Key 的值是通过下面计算得到的: Key = (mm + P*R2) mod N 其中mm 是对应的明文中的关键词,Key 是经过同态加密后的结果。 3)服务器后的操作是: 假设已知的密文是: Ci = (Mi + P*R1) mod N 则对应于用户提供的关键词: Key = (mm + P*R2) mod N 检索时的操作是: (1)用用户的公钥解密文章首部的Q*Rt。 (2)计算: res = ((Key – Ci ) * Q * Rt) mod N = (((mm + P*R2) – (mi + P*R1) mod N = ((mm – mi)*Q*Rt+(R2 – R1) * P*Q*Rt) mod N (3)如果res=0,则匹配,否则,不匹配。
所以,算法具有加法同态性。
4
同态性验证:
同态减法特性验证: 假设有两组明文M1 和M2,分别对他们用上述的加密算 法进行加密得到C1 和C2。 C1 =(M1+P*R1)mod N C2 =(M2+P*R2) mod N 则对于明文操作M3=M1-M2,有密文操作: C4= C1 - C2 = (M1-M2+P*(R1-R2)) mod N = (M4+P* (R1-R2 )) mod N 对C3 进行解密: M4 = C3 mod P =(C1-C2)mod P =(M1-M2+P*(R1-R2))mod P = M1-M2
读取二进 制字符
二进制文件每 8bit 加密

文件末尾?
是 加密完成,输 出密文文件
2
算法解密过程:
解密开始
读取密文 一行
解密方法,
mi=ci mod P
文件末尾?

行密文解密为 二进制数字
是 密文转换为二 进制数字完 成,输出二进 制数字文件
读取二进 制数字 二进制数字转 化为十进制数 字
将接收到的密文分组,依次采用解密算法对 分组密文进行解密,得到分组明文,然后将 分组明文合并得到解密后的明文。 (1)接收方收到密文C 并把密文C 分组得 到C=c1c2c3⋯ct ; (2)使用密钥P 和解密算法mi=ci mod P计 算mi ; (3)得到明文消息M=m1m2m3⋯mi。

文件末尾?

ห้องสมุดไป่ตู้二进制数字转化为 十进制数字完成, 生成临时文件
十进制数字转化为 明文文件
解密完成
3
同态性验证:
同态加法特性验证: 假设有两组明文M1 和M2,分别对他们用上述的加密算 法进行加密得到C1 和C2。 C1 =(M1+P*R1)mod N C2 =(M2+P*R2) mod N 则对于明文操作M3=M1+M2,有密文操作: C3 = C1 + C2 = (M1+M2+P*(R1+R2)) mod N = (M3+P* (R1+R2 )) mod N 对C3 进行解密: M3 = C3 mod P =(C1+C2)mod P =(M1+M2+P*(R1+R2))mod P = M1+M2
补充:
同态加密:对经过同态加密的数据进行处理得到一个输 出,将这一输出进行解密,其结果与用同一方法处理未 加密的原始数据得到的输出结果是一样的。
1
算法加密过程:
加密开始
读取明文 字符
文件末尾? 是 二进制转换完 成 加密方法, ci = (mi + P*R1) mod N

字符转换成二 进制数字
(1)选取随机产生的两个安全大素数P 和 Q(目前两个数的长度都接近512bit 是安 全的); (2)计算乘积N = P×Q ;并且生成一个 随机数R1 ; (3)把消息M 分组为若干长度L(L 的长度 应该小于P)的消息分组M=m1m2m3⋯mt ; (4)使用加密算法ci = (mi + P*R1) mod N, 同时计算出密文C=c1c2c3⋯ct������
所以,算法具有减法同态性。
5
同态性验证:
同态乘法特性验证: 假设有两组明文M1 和M2,分别对他们用上述的加密算 法进行加密得到C1 和C2。 C1 =(M1+P*R1)mod N C2 =(M2+P*R2) mod N 则对于明文操作M5=M1*M2,有密文操作: C5 = C1 * C2 = ((M1+P*R1)*(M2+P*R2)) mod N = (M1*M2 + M1*P*R2+M2*P*R1 + P2*R1*R2) mod N = (M1*M2 + P*R3) mod N = (M5+P*R3) mod N 对C4进行解密: M5 = C5 mod P =(C1*C2)mod P = ( (M1+P*R1) * (M2+P*R2) )mod P = (M1*M2 + M1*P*R2 + M2*P*R1 + P2*R1*R2) mod P = M1*M2 所以,算法具有乘法同态性。
相关文档
最新文档