程序員解決 20 年前的加密問題
Ron Rivest 上個(gè)世紀(jì)為一個(gè) 1999 年的時(shí)間膠囊設(shè)計(jì)了加密方法。Ron Rivest 是公鑰加密算法 RSA 中的 R,他和其他兩人(Adi Shamir 和 Leonard Adleman)因 RSA 算法上的貢獻(xiàn)而在 2002 年獲得圖靈獎(jiǎng)。他為時(shí)間膠囊設(shè)計(jì)的加密方法并不復(fù)雜,主要考慮了計(jì)算復(fù)雜度,涉及到一個(gè)進(jìn)行約 80 萬(wàn)億次的平方運(yùn)算。他根據(jù) 1999 年的計(jì)算機(jī)運(yùn)算能力和摩爾定律估計(jì),算出問題的答案需要 35 年時(shí)間。
但在 2015 年,自學(xué)成才的程序員 Bernard Fabrot 發(fā)現(xiàn),使用自由軟件 GNU Multiple Precision Arithmetic Library,他能在更短時(shí)間內(nèi)算出答案,他開始用家用 PC 的一個(gè) CPU 核心每周 7 天每天 24 小時(shí)執(zhí)行計(jì)算,歷時(shí) 3 年半時(shí)間得到了結(jié)果。
與此同時(shí),一群加密專家組成的小組 Cryptophage 也嘗試去解決這個(gè)問題,他們使用的是 FPGA 芯片,F(xiàn)PGA 執(zhí)行特定算法的效率遠(yuǎn)高于高端 CPU,他們花了兩個(gè)月時(shí)間算出了結(jié)果。但當(dāng)他們通知 Rivest 教授,卻被告知有人搶先完成了。Rivest 教授說,這是驚人的巧合,他承認(rèn)自己高估了問題的難度,沒有預(yù)料到像 FPGA 這樣的技術(shù)突破。