摘要:我認為學習密碼學,不僅不需要寫代碼,而且編寫攻擊代碼對于學習現代密碼學根本毫無用處。學習現代密碼學最好的方式是研究數學論證。這就是純粹的工程學。我相信托馬斯所做的事情,以及他在實施密碼攻擊上所積累的經驗是非常有用的。
托馬斯.普塔切克曾經發過一條Twitter“如果你不是編寫攻擊代碼的時候學習的密碼學,那么你可能根本沒有在學密碼學”。?從Twitter上對這條信息的關注及其引用數來看,它似乎得到了很多人的認同。盡管我很尊重托馬斯,但我絕對不同意他的觀點。我認為學習密碼學,不僅不需要寫代碼,而且編寫攻擊代碼對于學習現代密碼學根本毫無用處。學習現代密碼學最好的方式是研究數學論證。
如果我們仍然是處在20世紀90年代的話,我會同意托馬斯的觀點。當時的密碼學充滿了漏洞,你能想到的最浪漫的事就是了解你的工具是如何崩潰的,因為之后你就可以去解決它們的問題。那時,DES和RC4加密算法,盡管有很多已知的缺陷,卻被廣泛地使用;那時,人們避免使用CTR模式去轉換塊密碼到序列密碼,因為他們擔心如果所提供的輸入數據塊中包含有很多相同(0)數據的話,脆弱的塊密碼會被破解;那時,人們關心塊密碼的誤差傳播能力,這關系到在密文中有少量的位發生未知變化后,對于解密數據的正確性會產生多少影響;那時,人們通常建議在加密數據前,先對其進行壓縮,因為這將會“壓縮”信息熵使得攻擊者即使得到了秘鑰也很難理解密文。因此,誕生于這個時代的SSL,有很多很多的缺陷,也就不足為奇了。
但是,從2010年開始密碼學變得完全不同了。現在,我們開始有了可以高度信賴的的基礎構件——比如:塊密碼已被確信是近似隨機排列,并且已經從數學上證明它是足夠安全的,可以抵御某些類型的攻擊——比如:AES是已知的可以抵御差分密碼分析的加密算法。我們以這些組件為基礎,利用已被證明是不會引入漏洞的機制創建高階的系統。例如,如果你在CTR模式下,使用類隨機排列的塊加密算法(比如,AES)對數據加密,從而產生一個有序的分組序列,并使用分組序列號作為CTR隨機數,然后追加一個不易偽造的針對被加密數據的MAC地址(比如,HMAC-SHA256)及分組序列號,那么這些分組既可以保密數據,也可以禁止任何未聲明的篡改(包括報文重放和重新排序)。一旦Keccak(即SHA-3)得到更加廣泛地檢驗和信任,生活甚至會變得更加美好,因為它類似海綿的彈性結構去構造大量重要的加密構件,這已經被證明是安全的了。
在20世紀90年代的密碼學就像是在嘗試建一種橋,你花了許多時間確保你的橋能屹立不倒,并且為此憂心忡忡,即使有一些地方焊接的不夠完美,一些螺絲生銹了,由于周期性的負載導致的金屬疲勞,等等。雖然從理論上講量身定制可以有很好效果,但你知道的實際總是與理論不符,因此這座橋實際是建在了安全與不安全的邊界上,這使得橋的構造成本更高,也更加復雜。這就是純粹的工程學。
但是,現代密碼學是截然不同的,它不是在建造一座橋,而是像規劃一個依靠重力輔助的星際的軌道。當然,這是復雜的,你必須正確的掌握所有的細節。但是,如果你做到了,一旦開始運行,使你無法到達目的地的唯一可能就是物理或數學定理改變了。現代密碼學已經充分地發展到理論與實際相符,因此,相比通過觀察橋的倒塌進行學習,理論學習就已經十分有效了,然后你需要遵從一個簡單的原則:只做數學告訴你你能做的事情。這就是純粹的科學。
我相信托馬斯所做的事情,以及他在實施密碼攻擊上所積累的經驗是非常有用的。畢竟,他是以挖掘應用缺陷為生,但他所遇到的絕大多數加密方法很可能是20世紀90年代的加密方法,那是一個已經逝去的時代。因此對于開發者,我推薦以一個更加現代化的方法學習密碼學,那就是學習理論并設計出你能證明是安全的系統。
原文 Cryptography is a science, not engineering
翻譯 周耀平
via idf.cn
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/11081.html
摘要:據阿里云官方消息報道,兩次理論計算機最高獎哥德爾獎得主匈牙利裔美國計算機科學家馬里奧塞格德入職阿里巴巴達摩院位于西雅圖的阿里云量子實驗室。據阿里云官方消息報道,兩次理論計算機最高獎哥德爾獎得主、匈牙利裔美國計算機科學家馬里奧·塞格德(Mario Szegedy)入職阿里巴巴達摩院位于西雅圖的阿里云量子實驗室(AQL)。馬里奧·塞格德出生于盛產科學家的國度匈牙利,研究領域包括量子計算和計算復雜...
摘要:解決問題的心態軟件工程師不認為編程是他們事業的全部。好的軟件工程師以經驗和直覺判定。環境與測試軟件工程師寫的程序要保證在不同環境,不同時區正常工作。軟件缺陷是不可見的,我們預測和避免缺陷的能力也是有限的,所以軟件工程師懂得利用工具矯正代碼。 原文 Software Engineering is different from Programming 一些人因為工程這個詞而不喜歡軟件工程...
摘要:我們來看一下美國相關專業人員對兩者的對比,只是粗略而不精準的翻譯一下。小結其實在寫這篇文章之前,我就問過一下包括清華在內的學校以及一些數學專業的學生,和還是占主流,但是經過一番調查發現在美國在數據科學數學等方面好像漸成壓倒性的優勢。 作為一枚程序員,想要研究Python編程語言與數學學習(教學)的結合,就不能不了解以及比對一下其他數學學習與應用的解決方案,比如R語言、Matlab等數學...
摘要:在上篇文章里,為大家推薦了一些數學學習的軟件和微積分線性代數概率統計的學習視頻,今天再推薦一些精心挑選的經典教材,并為大家提供電子書的下載鏈接,和視頻搭配起來一起學習,效果會更好。我們要使用的以及等都包含在里面,無需額外下載。 在上篇文章里,為大家推薦了一些數學學習的軟件和微積分、線性代數、概率統計的學習視頻,今天再推薦一些精心挑選的經典教材,并為大家提供電子書的下載鏈接,和視頻搭配起...
閱讀 3152·2021-11-04 16:09
閱讀 3104·2021-09-23 11:49
閱讀 3602·2021-09-09 09:33
閱讀 3603·2021-08-18 10:22
閱讀 2040·2019-08-30 15:55
閱讀 3624·2019-08-30 15:53
閱讀 2653·2019-08-28 18:08
閱讀 888·2019-08-26 18:18