该协议可以使用同态加密技术实现,具体步骤如下:

  1. 选择两个大质数p和q,并计算n=pq和λ=lcm(p-1,q-1)。

  2. 选择一个随机数g,使得g的阶为λ,即对于任意整数a,满足g^a mod n ≠ 1且g^(a*λ) mod n = 1。

  3. 甲将自己的资产a=6加密为c1=g^6 mod n,并将[12,3456,7910]十个数分别加密为c2i=g^(2^i) mod n,其中i∈{0,1,2,...,9}。

  4. 甲将比较结果数组[<,<,<,<,<=_>.>.>]中的每个元素加密为c3i=g^bi mod n,其中b∈{0,1}表示比较结果。

  5. 甲将所有加密结果c1、c2i和c3i发送给乙。

  6. 乙选择自己的资产b=5,并将标签为[1,2,3,4,5,6,7,8,9,10]的加密数组[<,<<,<,<,=,>,>,>,>]中的第5个元素加密为c4=g^5 mod n。

  7. 乙将加密结果c4发送给甲。

  8. 双方同时解密c1、c2i、c3i和c4,得到明文a=6和b=5,以及比较结果数组[<,<,<,<,<=_>.>.>]中的第5个元素c35。

  9. 乙根据c35的值得出结论a<b。

在该协议中,所有加密操作都是同态的,即对于任意整数a、b和同态加密算法E,都有E(a)*E(b)=E(a+b)和E(a)^b=E(ab)成立。因此,即使攻击者拥有所有加密结果,也无法从中推出明文信息,保证了选择明文安全性


原文地址: https://www.cveoy.top/t/topic/fdvv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录