Answers:
在某些情况下,量子计算机可能比传统计算机具有某些优势。最显着的例子是Shor算法,该算法可以将多项式时间作为因子(传统上,最著名的算法需要花费指数时间)。基于分解的难度,这完全破坏了像RSA这样的方案。
哈希函数不一定是这种情况。首先,我们需要定义破坏哈希函数的含义。破解它的一种方法称为图像前攻击:您给我哈希值,我需要找到一条消息m,使得hash (m )= v。另一种攻击是碰撞攻击,在这种攻击中,您什么也没给我,我需要提出两个具有相同哈希值(m 1)= hash (m 2)的不同消息m 1,m 2。这比找到原像要容易得多,因为我没有绑定到特定的。
昆腾计算机可以做什么?主要结果是Grover的搜索算法:量子计算机在时间为O (√的情况下,在大小为的未排序数据库中进行搜索的一种方法(传统上,这将花费N/2的预期时间)。
使用Grover算法,找到输出为的哈希函数的原像需要O (2 k / 2)时间,而不是O (2 k)时间。
这有问题吗?不必要。哈希函数的设计使时间被认为是“安全的”(换句话说,哈希设计器始终将k翻倍)。这是由于生日悖论,通过经典计算机可以在时间O (2 k / 2)下找到碰撞。
关于Grover算法的好处是它是最佳的-在未排序的数据库中查找元素的所有其他量子算法将在时间。
量子计算机可以执行更好的碰撞攻击吗?其实我不确定。可以扩展Grover算法,使得如果有项(即原像),则找到一项的时间减少为O (√。但这不会产生冲突-再次运行该算法可能会返回相同的原像。另一方面,如果我们随机选择m1,然后使用Grover算法,则很可能会返回不同的消息。我不确定这是否会带来更好的攻击。
(这回答了更普遍的问题,而没有将计算机限制为20个qubit,这不足以打破当前的1024位哈希值)。
据我了解,量子计算确实有能力轻松打破当今的哈希算法。但是,从长远来看,我们还将能够使用更复杂的哈希算法,并且通常比进行解密更容易加密。我认为要考虑的最大问题是,只有少数几个人可以使用量子计算,这使他们可以很容易地访问受当今算法保护的内容,而这要早于更高级的算法甚至对威胁的意识尚未普及。
请参阅此处,以获取有关堆栈溢出问题的实际技术答案。