2008年9月23日 星期二

MD5的反思

昨天在說‘挑戰與回應算法’時,在註釋中我提到MD5算法,有朋友看了說這個已聞名已久,但一直都不了解實在是甚麼,想多了解一些。今天,本來我想講一講MD5,但在資料搜集的過程我有一個反思,我現先和各位分享一下,遲些有機會才和大家說MD5的詳情。

我先講一個故事。廿多年前,當時電腦病毒尚未於一般人的概念裏出現。我第一次在科學雜誌看到電腦病毒的綜合報導時,便有一研究員的訪問,這研究員在大學裏進行電腦病毒的實驗,病毒以驚人的速度擴散,大學管理層立刻制止他的實驗。對此他表示強烈的不滿,他向記者說,大學可以阻止我做實驗,但她們可以阻止‘別有用心’的人做實際嗎?電腦病毒是危險的,但正因如此,我們更加應該‘正面’研究。

這又和MD5有甚麼關係?就是因為要寫MD5,我在網上翻查資料,維基百科的中英文版就存在著很大的分歧,在中文版有一句是這樣的‘顯然這樣會為病毒大開方便之門’。其上文就是在討論近年對MD5的弱點的研究成果,其中一個最新對MD5攻擊的方法。以文字論,這句實有價值判斷!這就好像說,你這個研究結果就是為‘別有用心’的人提供了工具。而類似的言論在英文版就找不到。

相對於善,有惡。人至少在口頭上都是喜善惡惡的。所以,很多人都會迴避‘惡’,例如,很多人視‘性工作者’為惡,見到她(他)們便‘閃’開。但有人類歷史以來,就有‘性工作者’。這是個不爭的事實。難道不許學者研究電腦病毒,就是沒有電腦病毒嗎?我們看不見‘性工作者’,就是沒有‘性工作者’嗎?

無論怎樣說,西方在這問題上態度是比較開放的。特別在資訊科技界,我們公認開源式,即將所有秘密和寫法都公開的密碼,為最穩妥安全的密碼系統。甚麼?明明是密碼,不就是要保密,公開了還有甚麼機密?

一個盾有多強,去問造盾者是不全面的。盾的強度應由矛來決定!同樣,評估一鎖的真正強度,應是開鎖人而不是造鎖人的工作!開源式密碼系統就是可讓全世界的‘駭客’都可以研究和攻擊。若你想出一個天下無敵的密碼系統,這祗是你自己認為是天下無敵而已。是否真的天下無敵,就要由全世界的‘駭客’來決定。

經驗告訴我們,沒有一個密碼系統在想出來時便覺得自己有問題的。但真正的問題就永遠在攻擊中發現。

我在上文假設‘性工作者’是惡,其實這個假設本身經已有問題,但就算真的是惡,這也是必要之惡。一個社會真的可以一個‘性工作者’也沒有嗎?積極而有建設性的態度應是承認和面對。而不是掩耳盜鈴。

不少研究員的工作,就是要找出密碼系統的弱點。這些研究成果可能是致命性的。但難道他們不去做,‘別有用心’的人就不可以去做嗎?

我經常聽到‘統一思想’,但若思想統一了,便不會有今天的資訊科技。

沒有留言:

網誌存檔