本文发表于《大众科学》的前博客网络,反映了作者的观点,不一定反映《大众科学》的观点
您可能听说过出现了一个新的最大质数。这个数字 274,207,281-1,或 M74207281,有 22,338,618 个十进制数字,尽管更明智的写法是二进制:它只是 74,207,281 个 1。这像我们所知的其他大多数最大质数一样,是一个梅森素数,一个比 2 的幂小 1 的数。我知道它很新很吸引人,但是不要,我再说一遍,不要,用它来进行 RSA 加密。
RSA 加密利用分解两个大质数乘积的难度来确保黑客无法找到您的信用卡号。要实现它,首先您必须找到两个非常大的质数并将它们相乘。
一般来说,您找到的质数越大,您的秘密就越安全。91 很容易分解;两个 300 位质数的 600 位乘积,就没那么容易了。因此,新的梅森素数似乎是完美的候选者,这似乎是合乎逻辑的。
关于支持科学新闻
如果您喜欢这篇文章,请考虑通过以下方式支持我们屡获殊荣的新闻事业 订阅。通过购买订阅,您正在帮助确保未来能够继续讲述关于塑造我们当今世界的发现和想法的有影响力的故事。
唯一的问题是您将立即变得容易被黑客攻击。人们习惯于看到数百位长的公钥。如果他们看到一个数百万位的公钥,那会引起一些注意。您不太可能偶然发现一个数百万位的质数。《质数定理》表明,当您达到 M74207281 时,大约每 5000 万个数字中只有一个是质数。人们会开始怀疑您从哪里得到的那个质数,他们会检查看看 M74207281 或其较小的兄弟姐妹之一是否是您公钥的因子。他们可能需要一段时间才能检查,但不会像在没有任何除数的情况下分解数字那么长。
当我说是可破解性是唯一的问题时,我可能撒谎了。还有另一个更技术性的潜在复杂性。RSA 的工作原理是将数字提高到很大的幂,然后找到除以大数后的余数。实际上,用数学符号来理解会更容易一些。我们将我们的消息称为 m,我们的指数称为 e,我们的大数称为 N。要使用 RSA 编码某些内容,您需要找到 me mod N。Mod 是 modular 的缩写,只是指您除以 N 时的余数。M74207281 非常大,以至于取决于 m 和 e 的大小,加密消息 me 可能不大于 N,因此它将是它自己的余数 mod N。这不太好,因为您可以直接取数字的 e 次方根来找到原始消息 m。糟糕。
所以,至少在目前,请抵制住使用数百万位质数进行 RSA 加密的诱惑。学术界花了两年时间才破解 RSA-768,一个 232 位的数字。我们在分解大数方面不断变得更快,但是我们需要那些大的梅森素数的全部能力还需要相当长一段时间。
如果您想知道为什么所有的大质数都是梅森素数,请查看我在 Slate 上关于此事的文章。