2021SC@SDUSC
今天来对pke中的样例进行一个理解
这部分准备了一些基本的预定数值
并由此产生了以下的参数
在激活参数的过程中 做了哪些工作呢
首先是使用encodingParams对明文进行了一个封装
然后根据若干参数 ( 加密等级等 ) 进行了一个对加密上下文的封装
这个cryptoContext 在上几次的分析中也可以见得 是加密过程中随机参数以外的主要凭据
cryptoContext是可以自己选择激活特性的 这里是选择了 加密以及部分同态
以下为我们演示了这个上下文具备的基本能力 首先是获取明文的模
以及ElementParams和CyclotomicOrder
由第三组用例是可以发现 这个加密上下文的模块也是封装了一些常用的数值计算的模块
这以下的实例就是我们在上几次分析中看到的 产生公私密钥的过程了 这里仍有一个上次遗漏的点 就是这个密钥生成甚至可能是失败的 不知道是以什么标准来判别的
现在就是在演示如何去打包加密明文了 明文以数组的形式传入
将密文都存储起来 使用PU进行加密
接下里就是比较感兴趣的部分了 对两个密文进行同态的乘
验证同态计算的正确性
由此可以看出开放的计算接口是非常丰富的
从一个工程库的角度来讲 我觉得这是非常友好的接口 即使难以理解背后的详细机制
但是这部分的样例就已经足够让人明白其基本的用法了 封装省去了非常多繁复的细节 也让书写这样的加密操作变得更为愉悦
这样的大型工程的一大难点就是在设计时如何去把握其接口的合理形式
这一点上 这个加密库做的相当的出色