物联网(IoT)系统通常比台式机系统具有更少的存储和计算能力。为了适合物联网系统的安全计算,研究人员提出了一种有效的BGV型同态加密方案。 与以前的BGV型密码系统相比,研究人员的方案减少了用于交换密钥和密文评估时间的存储空间。具体而言,同态计算中的切换键可以是一个常数,但对于每个级别都不再是一个。而且,两个密文的乘积可以与它们在同一子层,并且可以在两个子层之间重复乘法运算。结果,乘法时间将不受L中的L的限制。级电路,因此,密文评估时间将大大减少。 研究人员使用C语言实现该方案。性能测试表明,在相同配置下,改进方案的效率优于Helib。
相关论文以题为“ An Efficient BGV-type Encryption Scheme for IoT Systems ”发表在《 Applied Sciences 》上。
物联网(IoT)系统已经广泛应用于人们的日常生活中。在物联网系统中,可以控制自己的远程设备来完成预期的任务。 这就要求设备具有安全的计算能力。同态加密允许设备在没有用户密钥的情况下对加密数据执行任意计算。与非同态加密相比,它消除了对设备的信任,使研究人员更容易使用设备的计算能力。同态加密具有广阔的应用前景。Gentry在其突破性工作中证明了基于理想格的全同态加密在理论上是可能的。在Gentry的工作中,密文可以看作是附在明文上的一些“噪声”,并且噪声会随着评价次数的增加而增加。当噪声超过阈值导致解密失败时,bootstrapping程序可以刷新计算引入的噪声,使其成为由加密算法生成的新噪声。然而,该方案的效率远低于实际应用。
继Gentry的工作之后,许多研究人员试图改进同态加密的性能。 基于错误假设学习,Brakerski和Vaikuntanathan (BV)提出了一种降维模量技术,构造了一种不需要自引导加密的水平同态加密。然后Brakerski, Gentry和Vaikuntanathan (BGV)显著改善了bv型同态加密的性能。Gentry、Halevi和Smart降低了bgv型方案的公钥和密文[18]的大小,以增加密钥恢复攻击的概率为代价。随后,他们优化了快速傅里叶变换(FFT)和中文提醒定理(CRT)的执行时间,减少了系数和求值表示法之间的多项式变换次数。Brakerski进一步降低了乘法运算的密文噪声增长率。Halevi和Shoup在算法实现方面对bgv型方案进行了持续全面的优化。Castryck、Iliashenko和Vercauteren改进了并行性能,可以在一条指令中封装更多的数据。Ozturk, Doroz, Savas和Sunar设计了一个自定义硬件加速器,以提高多项式乘法器的性能。Eric, Chris和Chad提供了一个用于同态加密的编译器,让没有同态加密特殊知识的程序员可以轻松地使用它。此外,许多努力已经为改进bootstrapping性能而付出了代价。正如Chen、Chillotti和Song所宣称的,每个明文插槽的引导时间已经减少到大约1秒。本文主要研究如何提高bgv型密码系统的存储和计算效率,主要目标是减少FFT和CRT的表示变换次数。
实施和性能分析
在本节中,研究人员在占用32位的“int”范围内实例化上述scheme。“int”是C语言中最直观的数据类型。它表达的数字介于−2147483648和2147483647之间。去掉负的部分,使所有计算结果在[0,2147483647]范围内。虽然“int”太小,无法防止攻击,但可以验证上述方案的正确性和性能。在实际应用中,像c++中的“bigint”或Java中的“biginteger”这样的大数可以很容易地替代它。在研究人员的实现中,深度L被设置为3。p = 11 m = 5 d = 1 l = 4=11, = 253(=11×23),= 16951(=11×23×67)。模逆= 34可以计算出= 67×34 = 1 mod 253。研究人员设置p = 11的原因是,等于1模11的两个最小素数分别是23和67。然后16951 = 287336401 <2147483647可以保证所有中间计算结果不超过“int”的表示范围。设p = 13,最小的两个素数分别是= 53和= 79。然后有= 689,= 54431。因为= 2962733761 >2147483647,最后可能解密失败。当然,p可以被设置为比玩具实现中的11更小的质数。加密算法生成的初始密文、秘钥、公钥和密钥生成算法生成的开关密钥都是第2级。为了简化实现,所有的随机数都是从C库中的随机数生成器中选择的。
在不失一般性的前提下,研究人员简单地选取四维向量(1,2,3,4)作为初始明文,生成相应的密文ct。随后,研究人员计算i = 0,2,4,6,8时ct = ctct和ct = ct + ct。例如,ct应该是(1,4,9,5),ct应该是(2,6,1,9)等等。正确性验证的结果如图1所示。
图1. 五个乘法和五个加法的示例。
向量pt [0],⋯,pt [10]是明文乘法和加法结果。向量dpt [0],⋯,dpt 是相应明文的密文的解密结果。研究人员可以看到dpt [i] s与对应的pt [i] s相同。
接下来,研究人员测试该方案的性能。它包括三个文件,stdafx.h,stdafx.cpp和无限同态加密.cpp。“ stdafx.h”定义所有数据结构。“ stdafx.cpp”定义所有功能。这些功能在“无限同态加密.cpp”中调用。附录B列出了基于Helib库的实现的源代码。该实现使用与研究人员类似的参数。图2列出了它们的执行时间。研究人员的测试机器是一台ThinkPad X1笔记本电脑,它具有Intel(R)i7-8750H CPU @ 2.2GHz 8核Visual Studio 2005(美国,华盛顿州,雷德蒙德)。
图2. 效率比较。
直观地,在研究人员的方案中,同态计算时间线性增长,而在基于Helib的方案中,同态计算时间呈指数增长。同时,研究人员的方案的执行时间比基于Helib的方案的执行时间少得多。
研究人员知道RSA是一种仅支持乘法同态的加密方案,并且已被应用于许多安全应用程序中。作为进一步的比较,研究人员列出了RSA的Mul操作时间。由于研究人员的方案的密文模数为q2= 16951,研究人员在玩具RSA示例中选择p = 127和p = 131,这样它们的乘积n = 16637非常接近q2。研究人员的方案的执行时间约为RSA的100倍。
最后,图3列出了Helib和研究人员的存储成本。Helib中公钥的大小是线性增长且乘以最大次数,而研究人员方案中公钥的大小是一个常数。
图3. 存储比较。
结论
在本文中,研究人员提出了一种用于物联网系统的高效BGV型方案。他们的方案减少了存储空间和评估时间,它更适用于安全的物联网系统。对概念验证实施的性能测试表明,研究人员的新方案比当前方法更实用。