今年2月,三位中國專家在山東宣布的研究成果,震動了國際數學界和密碼學界。
大多數人可能根本無法理解,這項研究成果——一張布滿數字的表格究竟有什么意義?對于某些數學專家來說,它意味著,人們在理論上可以使用一臺價值25萬美元的先進計算機,花四個月的時間復制一串很長的數字——這有什么值得大驚小怪的呢?
答案很簡單。它關乎我們每一個人的銀行賬戶安全。
目前,我們在處理網上業務時采用的關鍵保密措施,是通過一種名為安全散列算法的數學方法產生的數字串來確認信息發送者的身份,并確保內容的真實性。這些數字串是互聯網上“數字簽名”的核心所在——數字簽名是網上類似于指紋、印記、手寫簽名的識別信息。
安全散列算法是互聯網軟件基礎的一部分,一旦它被證明是脆弱的,就意味著所有人的銀行賬戶都可能面臨更高的被非法進入并被盜取存款的危險。而來自山東大學、山東交通大學和中國科學院的研究者宣布,他們已經通過數學方法證明:安全散列算法遠比人們想像的要脆弱得多。
安全散列算法是一種相對古老的算法,全世界的數學家已經花了很多年時間去測試并嘗試攻破它。山東的研究成果是目前最先進的遠景研究,一旦被證實,它將會給網上業務帶來深遠的影響。
安全散列算法中的“散列算法”是一種人們設計的方程式,它可以將一條信息轉化成一個惟一的、擁有固定長度的壓縮數字串;產生數字串的惟一方法,就是將這個算法應用于初始信息上。信息發送者將散列數字串和信息都加密,接收者把它們解密后,將散列算法應用于接收到信息上,然后將產生的散列數字串和收到的數字串進行對比,以驗證收到的信息和發送者散列的是否相同。
這樣的信息也可以是密碼。通過如此的步驟后,接收者可以驗證該密碼的正確性;同時因為看不到密碼究竟是什么,從而保證了密碼的安全性——為什么當我們忘記了銀行密碼的時候,銀行不能告訴我們之前的密碼是什么,而只能讓我們重新設定一個?就是因為當我們通過互聯網輸入密碼“shamao66”的時候,銀行端接收到的可能是類似“2fd4e1c67a2d28fced849ee1bb76e7391b93e b12”的一串東西。
散列程序之所以有價值,是因為它是單向的。如果你手頭只有經過散列得到的數字串,并沒有辦法通過這一算法反過來去得到初始信息(當然,能否保證完全“不可逆”,這個問題在理論上還沒有解決)。作為安全互聯網交易的基礎,所有的公鑰和私鑰密碼技術都依靠散列算法。
安全散列算法(SHA)程序是由美國國家安全局(U.S. National Security Agency)設計、由美國國家標準技術研究院公布的。安全散列算法的第二個版本,即被稱為SHA-1的算法,在1995年公布。像SHA這樣的重要算法通常被廣泛地公布,從而使全球的電腦專家(包括黑客)可以對其進行測試,以期在應用以前找到漏洞和弱點。SHA-1算法可以產生264(2的64次方)個可能的結果;如果在少于這個數目的嘗試中發現同一結果出現了兩次,那么,這個算法就可認為是被“攻破”了。王小云、尹依群和于紅波三位專家宣布,他們在2的第33次方上攻破了這個算法。這意味著,如果一個犯罪組織擁有強大的計算能力和足夠的時間,就有可能偽造數字簽名。
研究者們目前還沒有公布科學研究的細節,以保護正在使用的公共編碼結構。人們更關注的,并非是黑客可能將用2的第33次方攻擊來獲取銀行密碼,而是這項研究揭示了這樣一種可能性,即一個使用筆記本電腦的16歲小孩就能冒充“網上中國銀行”。一些新的、更長的SHA-1版本已經被公布,但是它還沒有經過測試,因而也沒有被收入為標準編碼技術。
中國的研究者們攻破了世界上最著名的方程式,也讓中國展開了一場是否應將編碼技術列為《國家保密法》保護范疇的爭論。支持者認為,用于保證秘密安全的技術本身就要求保密;反對者則指出,最安全的技術來自于廣泛的公共參與。
密碼學不再是間諜和軍事密碼信息的獨有領域,區分真實發送者和冒名者、區分真實信息和偽造信息已經成為必要——即使約定一個喝咖啡的日期這樣的小事也是如此。或許,中國研究者們的最大貢獻,就在于把這個事關公共安全和需求的事情從陰影中解放出來,把其帶入到公共科學的研究范疇里。
作者楊思安(Anne Stevenson-Yang)為美國信息產業機構(USITC)駐北京首席代表,杜志豪(Ken DeWoskin)為美國密歇根大學名譽教授、普華永道(PricewaterhouseCoopers) 原中國合伙人