同态加密的发展的思想与优化

  • 1.不安全的特征值方法的提出

    -2.加入随机噪声解决安全性后变成困难的LWE问题(格密码相关,量子力学不可破解),但误差不可控

    3.使用二进制转化后,对应范数变小,但仍会随着迭代次数增大而误差爆炸

    问题来了:我们如何让它多轮同态加密也不会出现误差爆炸的情况呢?

Alice的珠宝店

Alice开了⼀家珠宝店,主要业务是把不同的珠宝(钻⽯、⻩⾦)加⼯成⾸饰卖给客户; Alice雇佣了员⼯Bob负责加⼯的⼯作,但是⼜担⼼Bob会私藏加⼯原料; Alice想出⼀个精妙的idea: 买来了⼀个⼿套箱,箱体有两个带有⼿套的洞,⼿可以伸进箱⼦内操作箱内空间的物品,箱⼦有⼀个单 向的进⼝,没有钥匙的⼈只能将物体投⼊箱内,⽽⽆法取出箱内的物体。Alice保管着箱⼦的钥匙。 然⽽这个箱⼦存在⼏个问题:

  • 戴上⼿套的Bob的⼯作效率有所下降;
  • Bob⽆法将将加⼯完的⾸饰交给顾客,需要Alice的操作;
  • 致命的问题:⼿套箱具有⼀定的使⽤寿命,只能在箱⼦内加⼯珠宝 L 次;
    Alice的平⾏世界:FHE(⼿套箱与FHE的共性) 1. Alice拥有⼿套箱的钥匙,可以打开箱⼦取出其中的物品(FHE的解密正确性);
  • Bob可以将东⻄投⼊箱中,但是⽆法取出东⻄(FHE是安全的公钥加密系统,任意第三⽅可以创建密 ⽂但⽆法解开密⽂);
  • Bob通过⼿套操作箱内的原材料,效率⼤幅降低(同态计算的⾼开销);
  • ⼿套箱具有⼀定的使⽤寿命(基于Lattice的FHE系统中噪声累积与上限);

针对箱⼦具有使⽤寿命这⼀致命问题,Alice⼜想出⼀个绝妙的⽅法: 假如Alice事先预估出Bob加⼯⼀件⾸饰所需要消耗的⼿套箱个数是2,于是准备了两个⼿套箱A和B, Alice保留了箱B的钥匙并将箱A的钥匙放⼊了B箱之中;

  • 如此⼀来,当Bob在箱A中加⼯操作达到损耗阈值的时候,就把箱A放⼊箱B中,并在箱B中使⽤提前放⼊ 的钥匙打开箱A,取出半成品继续加⼯;
  • Alice的这个想法,构成了Bootstrapping的设想: 把⼀个满噪⾳的FHE密⽂加密进另⼀个FHE密⽂中,并采⽤同态运算FHE的解密算法,将内层的密⽂解密 为原⽂,就能获得⼀个全新的低噪⾳的FHE密⽂。实现了密⽂噪⾳的刷新

同态加密算法库 同态加密的缺点_同态加密算法库

  • bob一开始只能把手伸进去A进行加密的操作
  • 但是一段时间后A的误差爆炸
  • 所以alice就把A的key塞进B中
  • 再让bob把手放进B中操作
  • bob先通过A的key解开A盒子,这样化解了大的误差
  • 再继续在B中进行下一轮的同态加密
  • 以此类推,不停地套
  • 这就是bootrapping,是不是就能理解成套娃?

一个更优的方案

上述alice的做法要套很多层,我们可以优化到在两个盒子之间轮流套娃即可
具体步骤如下:

  • 为了实现任意深度的Bootstrapping链条,可以⽣成循环利⽤的公钥来实现⽆限次的加密解密; 例如⼀个双密钥的循环系统: (pk1, sk1),(pk2, sk2) ,我们公开 sk1 在 pk2 下加密的密⽂ ctsk1 和 sk2 在 pk1 下加密的密⽂ ctsk2 ;
  • 当第⼆层的密⽂( Enc(pk2, m) )的噪声达到上限的时候,可以先在 pk1 下加密,然后再同态地解 密内层使⽤ pk2 加密的密⽂ Eval(Decctsk2 , Enc(pk1, Enc(pk2, m))) → Enc(pk1, m) ;
  • 当第三层的密⽂( Enc(pk1, m) )的噪声达到上限时,可以采⽤重复的类似操作;
  • 需要关注的安全性问题:在⼀个密钥循环体系中,使⽤了不同的公钥加密另外的私钥并公开密⽂,这样 的操作是否会暴露额外的信息,从⽽⾜以露出破绽让⼈破解使⽤的公钥加密系统;
  • 密钥循环安全假设:1-Circular Security、2-Circular Security 等。⽬前,我们仍然相信这个假设是安全的;

总结

对于初学者来说
同态加密的细节不用细究
重要是理解它的一个演进的过程
什么样的方法有什么样的劣势,怎么样提出新的方法可以解决这个劣势
新的方法又有怎么样的劣势。。。这些劣势解决不了咋办
然后就要进行思想性的创造
有什么重要的思想:这里的核心思想就是套娃,从而及时降低误差爆炸
但还有可能会有很长的链条
最后优化成两个节点之间的互相套娃即可
整个的思维过程还是比较有意思的