基于格密码的算法研究 - Go语言中文社区

基于格密码的算法研究


Q1:传统公钥密码面临的挑战
(1)安全性挑战:Shor量子分解算法利用量子计算的并行性,对任意大的整数进行快速因子分解,大大降低目前普遍使用的RSA算法的破解时间。随后又出现了针对基于离散对数问题的量子求解算法。这些量子算法的提出意味着只要出现实际的量子计算机,现有的以传统公钥密码为基石建立的安全系统将丧失所有的安全性。

(2)效率挑战:传统公钥密码算法的密钥长度一直在增加,使得传统密码算法码效率很低。通过寻找具有更简单运算的数学难题,来降低加解密操作的复杂性,有代表性的是基于格的密码系统,其基本运算为矢量的加法和乘法。和RSA相比,椭圆曲线算法尽管密钥和密文较短,但在椭圆曲线加法群上所进行的操作还是十分复杂,效率改善不大。
Q2格密码的定义
格是n维线性空间中离散点的集合,格中的每个元素都是一个向量。在n维线性空间中m(m≤n)个线性无关的向量(b1,b2,…,bm)所生成的向量集合称为格。向量组(b1,b2,…,bm)称为格的一组基;格的基中的向量个数称为格的维数;同一个格可以有多组不同的基,但是基的维数相同。

在这里插入图片描述
上图中的格密码以v1与v2为基,空间中所有的点都可以用v1,v2线性表示出来。(真实空间中的点是无穷的)
Q3:格上的困难问题
格密码的主要数学基础是格中的两个困难问题:
(1)格的最短矢量问题(SVP):对于给定的一组基,找出其所生成的格中欧氏距离(两点之间的距离)最小的非零向量。
即在格上找到一个非零向量v,满足对格上的任意非零向量u,均有||v||≤||u||。
(2)格的最近矢量问题(CVP):对于给定的格及任一向量,找出格中与该向量距离最近的向量。
即在格上找到一个向量v,满足对格上的任意非零向量u,均有||v-y||≤||u-y||。
格上的困难问题在代数上是很好解决的,但在几何上是困难的
Q4:格密码的优势
基于格的密码系统是后量子计算时代的密码候选方案之一。
(一)由于格的最短矢量问题(SVP)和格的最近矢量问题(CVP)被证明在随机归约下均属于NP-hard类问题。即某一类格中一些问题的平均难度等价于格上一类NP问题的难度。因此,在这些格问题基础上构建的公钥密码体制,其任意一个实例的安全性与其最难实例的安全性相同;
(二)由于格是一种线性结构,格上的运算大多是线性运算,因此利用格难题所构建的新型公钥密码体质比现有方案运算速度更快;
(三)目前还不存在解决某些格困难问题的多项式量子算法,因此,基于格难题所设计的新型公钥密码体质可以抵御量子攻击。
Q5:LWE算法
LWE算法与最坏情况下的格问题一样难,而最坏情况下的格问题被认为是指数级难(即使面对的是量子计算机)。
在这里插入图片描述
这里的图可以转化为符号表示:
As+e=b;根据图上所示A与b是已知的,e是很小的数(相当于噪声),s是秘钥。
如果没有随机产生的噪声e,就是一个简单的线性问题,求出秘钥很简单,但是增加了e,问题就变成了NP问题。
LWE问题(Learning With Errors)是一个格上的平均性困难问题,可以被归约到格的SVP等困难问题,也是抗量子的。目前主流的格上加密方案都是构建在LWE之上。
Q6:LWE算法的基本思想
在这里插入图片描述
1)取一个随机向量为秘钥s;
2)矩阵A,向量b已知,e为很小的分布且e的模远小于q;
3)通过b=As+e%q 最后计算s的值。
Q7:计算s的方法
NP-hard问题(NP是指非确定性多项式(non-deterministic polynomial,缩写NP)。所谓的非确定性是指,可用一定数量的运算去解决多项式时间内可解决的问题。):任意NP问题都可以在多项式时间内归约为该问题,但该问题本身不一定是NP问题。归约的意思是为了解决问题A,先将问题A归约为另一个问题B,解决问题B同时也间接解决了问题A.
在这里插入图片描述
1)现给定一个b与A已知,目的为求s;
2)选择一个确定的值r,使得b’=Ar+b(此式子中所有参数都已知)
3)把b=As+e带入上式
4)b’=A(r+s)+e(mod q)
5)s’=r+s---->b’=As’+e
6)解出s’后即可解出s
Q8:LWE的加密过程
在这里插入图片描述
Q9:传统的秘钥交换算法(DH算法)
传统密钥交换算法(DH算法):基于有限域上的离散对数难题,通过DH算法进行密钥分配,使得消息的收发双方可以安全地交换一个密钥,再通过这个密钥对数据进行加密和解密处理。

在这里插入图片描述 在这里插入图片描述
在这里插入图片描述

Q10:基于格的密钥交换方案
基于LWE问题构造的被动安全密钥交换协议:与传统DH协议类似,称为LDH协议,执行流程如下:

在这里插入图片描述 在这里插入图片描述

用户A作为发送者,用户B作为接受者。
协议执行之后,双方会完成交换一个会话密钥。
LDH协议正确性:
|--

Q11:实例
基于格的统计零知识证明的一个案例过程:
在这里插入图片描述
在这里插入图片描述
1)首先rs与re是随机的,前者相当于秘钥,后者相当于噪声。
2)t,a属于已知且整个过程不发生变化
3)从V方传来的c的作用相当于一个随机变量,是不确定的。其目的是即如果P方证明成功,则不管V方传来什么参数,等式都应该是成立的;

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/guoyihaoguoyihao/article/details/100746846
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-04-18 18:59:03
  • 阅读 ( 1071 )
  • 分类:算法

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢