小說《暗算》的年代中還沒有公鑰系統這回事,如果當時就有RSA之類的演算法了,小說的背景(一群人用算盤解密)還能成立嗎?

RSA製造密鑰也需要很大的計算量,在當時的技術條件下能否製造出以同樣的計算能力無法破解的密鑰和加密體系來?


我猜當時的密鑰破解主要基於選擇明文攻擊加上明文到密文的雪崩效應不夠。選擇明文就是可以忽悠對方發一些消息。比如美國在中途島海戰之前詐稱中途島缺水。雪崩效應不夠是指明文的變化只導緻密文的局部發生變化。後者已經被ACE,DES等解決了。而RSA解決的是密鑰傳遞問題。用RSA直接加密信息計算量太大。

@paradisor 稱PKI體系的最重要作用在於防偽造。這我並不贊同。PKI體系最重要的作用是防止密鑰本身被泄漏——比如 @paradisor 自己提到的間諜抓獲,或者實體密碼機被截獲。而PKI體系的作用在於私鑰無從截獲。

另外,加密術語的中文翻譯真的很混亂。密碼:其實應該對應encrypt key,不過國內約定俗成都對應password了。所以還是用密鑰比較準確。


現代密碼系統雖然以RSA作為代表,但是RSA並非是以其「難以破解」而著稱的。公私鑰體系的最重要作用在於防偽造,我個人是沒有想到防偽造效果在戰時有何重大意義,就我了解的二戰史來看,從未有過偽造敵方命令的情報行為,因為這會導致敵方知曉密碼被攻破的事實。

在二戰中被破解的密碼大致有兩種,一種是直接的密碼本泄密,一種是對於加密演算法(即密碼機)的漏洞攻擊。二戰中被破解的著名密碼體系往往是在兩者相結合的情況下被攻破的,比如Enigma密碼和日本海軍密碼,都走過了「加密演算法被間諜獲取----演算法的一部分被盟國攻破----盟國建立情報優勢----繳獲密碼本」這樣的過程。而日本陸軍密碼則從未被攻破。我想從這段歷史事實闡述的結論是:對密碼體系的攻擊不僅僅是計算能力的較量,更多的是對密碼體系中其它漏洞的攻擊。戰時所有的密碼體系的基本要求都是像你所說,「以同樣的計算能力無法破解」的,然而是否真的無法破解,除了實踐檢驗以外別無他途。

補充:感謝@馮東 對公鑰體系的解釋,鄙人學藝不精,對密碼學知識點理解不夠深刻。誠如@馮東 所說,如果有公鑰體系,密碼本的泄漏不會造成毀滅性的影響,但是這不能防止對稱加密演算法本身被攻破。如果再回顧到戰史上,似乎上文提到的被攻破的兩個密碼體系還是會悲劇。所以總結一下就是想要密碼不被攻破,需要的是更先進的加密演算法和保密體系(這似乎是廢話)。上文裡面對計算能力的評論,似乎依然是成立的。


密碼是個系統,是有很多環節組成的。要想不被攻破,必須所有的環節和人,物都不會被人惦記。

比如再高級的通訊加密系統,如果部門投誠了怎麼辦,發報員就是對方的人又怎麼辦,你還沒準備發報呢,對方都知道你要發什麼了,那不悲催。

所以記住一句話,要想不被賊偷,就別被賊惦記。


推薦閱讀:

密碼到底該設置難的還是簡單的好?
如果你有一台超級計算機,你會拿來做什麼?
為何將為提高密碼安全性添加的擾動信息稱為「鹽」?
IP 地址早就分配完了,但仍然有新的設備被分配 IP 地址,是通過什麼技術分配的?
計算機圖形學是不是計算機專業方向中對數學要求最高的?

TAG:小說 | 演算法 | 數學 | 計算機 | 密碼 |