密码学
先铺垫一个基本的密码学的逻辑:一个问题只要足够难那么就是密码学安全的,换句话说,你要破解这个密码,那你就要解决一个足够难的问题(事实上不可能)。
于是就有了很经典的,基于分解质因数的一大类算法,这类算法的基础就是这个命题是成立的:“将两个大质数相乘得到一个大的合数很容易计算,然而将一个大的合数分解成两个质数的乘积是非常困难的”。
然而这个玩意现在很危险,因为量子计算机的出现,这个难题不再“那么”困难了,又稍微正规的语言描述就是:量子计算机的出现,使得在人类可以接受的时间内(学名多项式时间)进行大合数的质因数分解这一难题成为可能。于是这一类密码学算法在不远的将来可能就不再安全了。同样类似的,椭圆曲线等基于离散对数的一系列算法也不再安全。因此,现在的经典密码学迫切的需要进化为“后量子”密码学。
于是,格密码学应运而生。先说格是什么,格顾名思义就是空间中用坐标表示的点,准确的说,这个空间就是线性代数里面大家学过的一组向量做基底,用他们的线性组合(格里面只能用整数做乘数)所表示的各个点作为其中元素(也就是每个格)的集合。
在这上,其中一种难题可以看作是一个空间版的分解质因数,举两个最经典的例子:
- 给定一组基,找这个格里面最短的非零向量(也就是找到一组能让这个向量最短的线性组合的乘数,至于为什么这个最短的非零向量会存在,请往上看☝️)
还有另外一个例子:
- 给定一个向量(可能不在格空间内),找到格内的一个向量使得他们距离最短。
基于这些难题,能设计出很多抗量子的密码学算法,就不一一列举了,有兴趣的可以以关键字shortest/closest vector problem,或者更进一步的learning with errors去搜一搜。
努力铺垫了,还好像还是写不成大家都能听懂的密码学,轻喷🥹
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 一悲自留地!