在我参加的计算机安全课程(密码学是其中一章)中,我记得这位教授说过有关当前非对称密码算法是基于整数分解(即质数)和离散对数的。

所以我的问题是,是否有不基于这两个数学领域的非对称密码算法?不使用质数和对数就很难提出一个强大的算法吗?

#1 楼

是的,您还可以基于非对称加密来解决其他难题。

格子。 NTRU系统基于理想晶格中的最短向量问题。如今,基于格子的密码学引起了人们的极大兴趣,其原因有两个:(1)与因式分解和离散对数不同,没有一种有效的算法可以解决(仍然是理论上的问题,但应该在我们的一生中发生)量子计算机上的这些问题; (2)您可以使用基于晶格的系统对仍处于加密状态的数据进行任意操作(尽管不是使用NTRU,而是使用其他基于晶格的系统)。

编码理论。 McEliece系统基于解码线性代码。这是一个非常古老的系统,但由于与晶格系统相同的后量子原因,最近引起了人们的兴趣。

其他。还有其他更晦涩的(研究级)密码系统,例如学习有噪声的奇偶性,有错误的学习(与晶格中的SVP有关),子集和问题(包括著名的破例),求解多元或二元方程等。

针对您的第二个问题,是否很难找到替代品,答案是相当困难。对于大多数加密原语,您需要查找难以反转的函数示例,特别是对于非对称加密,您通常对具有允许反转的特定值的函数感兴趣(但前提是您知道该值) 。请参阅活板门功能。很难为活板门功能找到新的候选者,并且很难确定它们的适用性。

#2 楼

“离散对数”是一类。最初,这意味着我们在有限域中工作(例如,对大素数进行模运算的整数),并且在给定$ g $,$ p $和$ g ^ x \ bmod p $的情况下,恢复$ x $(它很难计算)一旦$ p $足够大,今天的技术就不可能实现。)在某些时候,有人注意到离散对数是较大情况的特殊情况,适用于通用组。因此,我们可以使用其他种类的组,尤其是椭圆曲线。令人困惑的是,尽管所涉及的数学非常不同,但这也称为“离散对数”。有用于打破离散对数的通用算法,该算法适用于所有组,但价格昂贵。而且有更快的算法只适用于原始的离散对数组(整数模为大质数)。

由于(我认为)吉尔斯·布拉萨德(Gilles Brassard)有一个相当笼统的定理,它说很难NP问题(换句话说,尚无快速求解算法,但可以有效验证给定解决方案的问题)很容易变成零知识证明,而零知识证明则变成了非交互式知识零知识证明,可以成为数字签名算法。但是,诀窍是要找到一个问题,以使相应的签名算法可以容忍地快。布拉萨德定理是关于渐近行为的:给定足够大的参数,使用该算法与破坏该算法之间存在足够大的性能差异,但不能保证“使用”部分实际上在当前存在的计算机上是可行的。 >
@PulpSpy讨论晶格和编码理论。子集和问题(也称为“背包”)是传统的问题,但是所有快速变型都被晶格简化所破坏;剩下的一个不间断的背负式密码系统归功于Naccache和Stern,但是该算法使用乘法,而较早的方案使用加法,这使得它在性能上没有吸引力。看起来很有希望的另一种问题是多元二次方程。相应的非对称算法是HFE(加密)以及Quartz和Sflash(签名)。它们可能允许很小的签名(例如128位),但其安全性仍在争论中。

#3 楼

还有背包密码。但是,如果很好地使用它,则更具挑战性,因为众所周知,背包在某种程度上是易碎的(对于更普遍的背包问题还是未知的)。