本文發表於《大眾科學》的前部落格網路,反映了作者的觀點,不一定反映《大眾科學》的觀點
您可能聽說過出現了一個新的最大質數。這個數字 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 上關於此事的文章。