王小雲檢視原始碼討論檢視歷史
王小雲(1966年-),生於中國山東省諸城。山東大學數學學院教授,博士生導師[1][2],中國密碼學家。
目錄
經歷
她在1987年取得山東大學學士學位,1990年取得山東大學碩士學位,並於1993年取得山東大學博士學位[2],導師為潘承洞。畢業後,王小雲於1993年起於山東大學數學系任教,至1995年升至助理教授一職,並於2001年正式成為教授[2]。現今王小雲擔任山東大學密碼技術與信息安全教育部重點實驗室主任,清華大學密碼理論與技術研究中心主任,同時兼任中國密碼學會密碼數學理論專業委員會主任[2]。
雜湊函數碰撞
2004年的國際密碼討論年會(CRYPTO)尾聲,王小雲及其研究同事展示了MD5、SHA-0及其他相關雜湊函數的雜湊衝撞[3]。所謂雜湊衝撞指兩個完全不同的訊息經雜湊函數計算得出完全相同的雜湊值。根據鴿巢原理,以有長度限制的雜湊函數計算沒有長度限制的訊息是必然會有衝撞情況出現的。可是一直以來,信息安全專家一直無法給出實際例子,而王小雲提供了第一個碰撞範例。
2005年2月,王小雲與其同事提出SHA-1雜湊函數的雜湊衝撞。由於SHA-1雜湊函數被廣泛應用於現今的主流電腦保安產品,其影響可想而知。王小雲所提的雜湊衝撞演算法只需少於269步驟,少於生日攻擊所需的280步。同年8月,王小雲、姚期智,以及姚期智妻子姚儲楓聯手於國際密碼討論年會提出SHA-1雜湊函數雜湊衝撞演算法的改良版。此改良版使破解SHA-1時間縮短為263步。[4]
為什麼王小雲破譯大數密碼是詐騙
為什麼王小雲破譯大數密碼是無法完成的?
第一節-命題
我們想想,命題是怎麼產生的?需要怎麼樣去證明?
演繹證明某事肯定是這樣,演繹是從一般到特殊,只有演繹推理形式是必然有效的,因為大範疇的存在,是小範疇存在的充分條件,所以,演繹推理是必然的因果關係推理。
歸納說明某事在實際上是有效的,歸納是從一些特殊到一般。溯因推理是說某事可能是這樣。 溯因推理是推理形式最弱的一種。溯因推理藉助不完全歸納預測成為一個命題叫做猜想(證明一個猜想是告訴你結果,讓你按照規則找出原因-過程的必然性,把道理講清楚)。
歸納只能預測,不能證明。 我們證明一個數學命題就是一種整體上弱勢溯因加歸納推理,每一個局部需要強勢演繹推理。
為什麼不能用歸納法證明?
因為設立命題時使用少量樣本歸納出來的,再用少量樣本證明,就不可靠了。
舉例哥德巴赫猜想:原始信息(6=3+3,8=3+5,..。就是逐一歸納有限的樣本,具有某種性質(兩個素數之和),於是歸納推出「哥德巴赫猜想」推導出(預測)有無窮多個的數量樣本也具有某種性質)。
在有限數量基礎上歸納產生的猜想,通過演繹證明是不對等的。
歸納是在一個有窮大的樣本中逐一列舉, 只要樣本空間沒有被窮盡, 使用的都是簡單枚舉歸納推理。 而命題是對於無窮大的樣本, 我們根本不可能窮盡該樣本空間, (例如哥德巴赫猜想中的偶數就有無窮多個)因此只能使用簡單枚舉歸納推理,簡單枚舉歸納推理是一種擴大了前提條件的推理, 它的結論是不可靠的。
使用歸納推理提出假說, 其假說是非常脆弱的, 因為對它的逐一證實是絕對不可能的, 除非你窮盡樣本空間, 而一旦如此, 你使用的已經不是歸納推理了。它的脆弱性體現在只要一個反例, 就可以推翻這個假說命題。
無窮多個樣本的數學定理必須是全稱判斷,數學家必須完成一個:由歸納出來的有限個事實樣本去證實無窮多個元素的--不可能完全證實的命題進行演繹方法證明,並且結論是全稱肯定判斷的正確三段論只能是第一格的AAA式。
這是絕大多數數學命題證明無法做到的。溯因加歸納推理是從結果追溯原因的推理,溯因推理是關於採納假說的推理.,採納一個留待觀察的假說-歸納產生的全稱命題, 它僅以疑問的或猜測的方式斷定其結論是真的。
歸納推理是基於有限觀察的、從有限樣本推出一般結論的推理, 它的前提是關於個別事物具有某種性質的論斷, 結論卻試圖得出全體事物皆具有此性質的論斷。
不完全歸納出來的全稱判斷形成的待證命題,怎麼可能通過演繹推理回到初始信息?讓初始信息變成一個定理?歸納產生的樣本,推導出命題,歸納的樣本沒有進入命題因果關係;沒有進入證據鏈,前提不是結論(即全稱判斷的命題)的必然原因,所以只能是猜測。
因為少量歸納產生的元素具有某種屬性,誇大和膨脹了命題(有無窮多個元素),證明命題時候就要填補這個誇大的空缺。
第二節-大數分解
大數分解與命題產生的機理恰恰相反,大數是由演繹產生的,素因數與乘積是因果關係,而分解則是相關關係: 大前提:a和b都是素數(全稱肯定判斷A)。
小前提:a xb=c(全稱肯定判斷A)。
結論:c是一個合數(全稱肯定判斷)。
分解當然也可以用演繹完成,將c逐一試除,最終完成精確分解。但是,大數構造的密碼,要求在短時間分解,無法在幾萬年持續試除,所以,只能通過少量的-有限的-有效的工作解決。就是在逐一試除中抽樣(取樣)一些素數,那麼,這個工作就是歸納法了。
設立哥德巴赫猜想的歸納單項都是明確的,例如,6=3+3,10=5+5,不能出現反例,否則,命題無法推出。 大數分解證明中的歸納是猜測的,所有的試除都是錯誤的,直到出現一個正確的素因數才結束。13試除不行,那麼就17試除吧,再不行,就下一個。
看出來了沒?你要拿出方案證明大數分解可以在短時間完成,就要對·變量c和a,b進行演繹推理,概括出絕對的規律。
第三節-對比
數學命題證明針對的是因果關係;
大數分解針對的是相關關係。
王小雲企圖用證明方法解決相關關係,好比穿救生衣跳傘。只能摔死。
設大數c可以有1000位數,1001位數,....。c是一個變量;a也是變量,是有待歸納的變量,是一種獨立的變量,不會因為c的變化而變化。c與a是相關的關係,不是因果關係。
(大家知道三體問題,太陽-地球-月亮,他們的兩兩之間關係是明確的,是因果關係。但是,依然是二階變化率,即變化率的變化率,是二階邏輯問題,是無法一次性證明的)。
大數分解的大數c與素因數a是更加詭異的變量,比三體問題更加複雜,兩個獨立的變量c和a要求達到一致,並且對於所有的-並且無窮多個的c,找到一種能夠一次性解決的分解方法,這是神的工作,人類永遠不能做到。所以,王小雲大數密碼破譯是痴人說夢。
大數密碼破譯,短時間分解大數求得素因數是不可能完成的。永遠不可能! 王小雲知道不知道?如果她知道,就是故意詐騙,如果她不知道,那麼她就是一個智障。
文章目錄 1.MD5 簡介 2.MD5 應用場景 3.MD5 生成的 Hash 值為什麼不可逆 4.王小雲院士真地破解了 MD5 嗎? 5.結論 參考文獻 1.MD5 簡介 MD5(Message-Digest Algorithm 5)是一種被廣泛使用的消息摘要算法,也稱為哈希算法、散列算法或雜湊算法,可以產生出一個定長的 128 位(16 字節)的散列值(Hash Value),一般用於數字簽名以確保信息傳輸完整性與密碼的加密存儲。
MD5 由美國密碼學家羅納德·李維斯特(Ronald Linn Rivest)設計,於 1992 年公開,用以取代 MD4 算法。
2.MD5 應用場景 一個安全的散列算法需要滿足如下兩個條件,也是散列算法的兩個特性。 (1)抗碰撞性。根據一個輸入,找到一個其它輸入得到相同的輸出,在計算上是不可行的; (2)不可逆性。根據一個輸出,找到一個輸入其散列值等於輸出,在計算上是不可行的,即不可能從結果逆向推導初始值。
注意,抗碰撞性並不是說散列算法無碰撞,無碰撞的算法不可能是一個散列算法,而只能是一個無損壓縮算法,因為散列算法在計算過程中必然會丟失原文部分信息。
MD5 作為一個應用廣泛散列算法,滿足上述兩個特點。根據第一個特點,MD5 可用於信息的數字簽名用來驗證信息傳輸的完整性和發送者的身份認證。根據第二個特點,MD5 可用於用戶密碼的散列存儲。
(1)信息的數字簽名。 對重要信息進行 MD5 計算生成散列值,作為信息的數字簽名,用於確定信息在傳輸過程中是否被篡改以及發送者的身份認證。
(2)用戶密碼的散列存儲。 常見用途就是網站敏感信息加密,比如用戶名密碼。將用戶密碼進行散列計算後落地存儲,即使被拖庫,用戶的密碼仍是安全的,因為 MD5 算法的不可逆性決定無法通過散列值逆向推算出密碼。當然,密碼破解有很多方法,比如暴力破解、彩虹表等,還是有可能從正向破解密碼散列值的。
3.MD5 生成的 Hash 值為什麼不可逆 因為 MD5 算法裡面有很多不可逆的運算,會丟失很多原文的信息,無法找回,所以是不可逆的。比如移位,假設 10010001 左移兩位後是 01000100,你沒有什麼辦法把它移回來。
4.王小雲院士真地破解了 MD5 嗎? 在 2004 年,王小雲院士與其他研究人員合作發表了一篇名為《Collisions for Hash Functions》的論文,展示了如何通過碰撞攻擊生成具有相同 MD5 哈希值的兩個不同輸入。
所謂的「破解」其實誤導了很多人,並不是說扔給王小雲一個 MD5 散列值,然後她馬上就能算出一個原文來。從密文推算出明文理論上是不可能的,所以王小雲的研究成果並不能通過 MD5 的散列值逆向推算出明文。即給定 Hash 值,王小雲不能逆向計算出 M。
MD5(M)=Hash
文章目錄 1.MD5 簡介 2.MD5 應用場景 3.MD5 生成的 Hash 值為什麼不可逆 4.王小雲院士真地破解了 MD5 嗎? 5.結論 參考文獻 1.MD5 簡介 MD5(Message-Digest Algorithm 5)是一種被廣泛使用的消息摘要算法,也稱為哈希算法、散列算法或雜湊算法,可以產生出一個定長的 128 位(16 字節)的散列值(Hash Value),一般用於數字簽名以確保信息傳輸完整性與密碼的加密存儲。
MD5 由美國密碼學家羅納德·李維斯特(Ronald Linn Rivest)設計,於 1992 年公開,用以取代 MD4 算法。
2.MD5 應用場景 一個安全的散列算法需要滿足如下兩個條件,也是散列算法的兩個特性。 (1)抗碰撞性。根據一個輸入,找到一個其它輸入得到相同的輸出,在計算上是不可行的; (2)不可逆性。根據一個輸出,找到一個輸入其散列值等於輸出,在計算上是不可行的,即不可能從結果逆向推導初始值。
注意,抗碰撞性並不是說散列算法無碰撞,無碰撞的算法不可能是一個散列算法,而只能是一個無損壓縮算法,因為散列算法在計算過程中必然會丟失原文部分信息。
MD5 作為一個應用廣泛散列算法,滿足上述兩個特點。根據第一個特點,MD5 可用於信息的數字簽名用來驗證信息傳輸的完整性和發送者的身份認證。根據第二個特點,MD5 可用於用戶密碼的散列存儲。
(1)信息的數字簽名。 對重要信息進行 MD5 計算生成散列值,作為信息的數字簽名,用於確定信息在傳輸過程中是否被篡改以及發送者的身份認證。
(2)用戶密碼的散列存儲。 常見用途就是網站敏感信息加密,比如用戶名密碼。將用戶密碼進行散列計算後落地存儲,即使被拖庫,用戶的密碼仍是安全的,因為 MD5 算法的不可逆性決定無法通過散列值逆向推算出密碼。當然,密碼破解有很多方法,比如暴力破解、彩虹表等,還是有可能從正向破解密碼散列值的。
3.MD5 生成的 Hash 值為什麼不可逆 因為 MD5 算法裡面有很多不可逆的運算,會丟失很多原文的信息,無法找回,所以是不可逆的。比如移位,假設 10010001 左移兩位後是 01000100,你沒有什麼辦法把它移回來。
4.王小雲院士真地破解了 MD5 嗎? 在 2004 年,王小雲院士與其他研究人員合作發表了一篇名為《Collisions for Hash Functions》的論文,展示了如何通過碰撞攻擊生成具有相同 MD5 哈希值的兩個不同輸入。
所謂的「破解」其實誤導了很多人,並不是說扔給王小雲一個 MD5 散列值,然後她馬上就能算出一個原文來。從密文推算出明文理論上是不可能的,所以王小雲的研究成果並不能通過 MD5 的散列值逆向推算出明文。即給定 Hash 值,王小雲不能逆向計算出 M。
MD5(M)=Hash 1 其中 M 指密碼的明文,Hash 表示密碼散列後的密文。
實際上,王小雲的研究成果如下:
MD5(M1)=MD5(M2) 1 即給定消息 M1,能夠計算獲取 M2,使得 M2 產生的散列值與 M1 產生的散列值相同。如此,MD5 的抗碰撞性就已經不滿足了,使得 MD5 不再是安全的散列算法。這樣一來,MD5 用於數字簽名將存在嚴重問題,因為可以篡改原始消息,而生成相同的 Hash 值。
這裡,簡單地用王教授的碰撞法給大家舉個簡單的例子。假如用戶 A 給 B 寫了個 Email 內容為 Hello,然後通過王教授的碰撞法,可能得到 Fuck 這個字符串的摘要信息和 Hello 這個字符串產生的摘要信息是一樣的。如果 B 收到的 Email 內容為 Fuck,經過 MD5 計算後的,B 也將認為 Email 並沒有被修改!但事實並非如此。
王小雲院士的研究報告表明,MD4,MD5,HAVAL-128 和 RIPEMD 均已被證實存在上面的漏洞,即給定消息 M1,能夠找到不同消息 M2 產生相同的散列值,即產生 Hash 碰撞。
後來在 2005 年,王小雲同其他研究人員又發布了一篇論文《Finding Collisions in the Full SHA-1》,理論上證明了 SHA-1 也同樣存在碰撞的漏洞。
隨着時間的推移,計算機計算能力不斷增強和攻擊技術的不斷進步,SHA-1算法的安全性逐漸受到威脅。在2017年,Google研究人員宣布成功生成了第一個實際的SHA-1碰撞,這意味着攻擊者可以通過特定的方法找到兩個不同的輸入,但它們具有相同的SHA-1哈希值。
5.結論 雖然 MD5、SHA1 已經被證實在數字簽名存在安全問題,但是 MD5、SHA1 在密碼的散列存儲方面還是很安全的算法,只要密碼足夠複雜,加鹽且迭代次數足夠多,抗得住主流的口令破解方法,如暴力破解、彩虹表、字典攻擊、詞表重整攻擊、概率上下文無關文法等。
————————————————