RAR加密使用中文(假設4個字),破解,需要多大人力物力?

各位大神羊年大吉,今天加密突然想到這個問題,以前在加密的時候英文字元和數字都有可能被破解,那麼中文字元呢?4個中文等於多少字元?那麼假設一個文件價值1千萬(肯定就不是這樣加密的方式了),破解這4個字需要付出的花費值嗎?


如果我沒記錯,RAR使用AES演算法進行加密,目前AES並沒有有效的破解方法(AES為各大商業公司到美國軍方公認的加密演算法),所以下面做出本答案的基礎假定:

採用暴力破解密碼的方式破解加密。

此假定直接推論:密碼必須達到暴力破解所無法破解的複雜度(或破解成本遠大於密文價值)

1. 目前商業密碼的要求為 112 bits of security。112以及以上的密碼是個怎樣的破解成本呢?大概就是拿美國全年GDP造一堆破解機器幾十年也算不出來的水平。

2. 英文字元和數字密碼難道真的那麼弱嗎?很多時候只是隨機性或位數不夠。

下面我們計算一下完全隨機的英文字元+數字需要多少位才能達到上面說的 112 位。

定義:英文字母區分大小寫A-Za-z共52個,數字0-9共十個,符號暫只取+/這兩個,共64個。

(這64個其實就是base64編碼的範圍啦)

log_2{(64^{19})}=114>112

也就是說19個完全隨機的英文字元+數字即可滿足要求。

(非重要數據可以再少四五個字元,但不能再少了!)

我隨機生成一個19位的密碼:dBxiacbpbE/x6o+iyf3

不長吧?這種密碼就能滿足如今幾乎所有加密需求了。

要注意,

密碼位數和破解複雜度是指數增長的!

指數增長的!

指數!

因為重要所以說三遍!

也就是說你認為需要更安全些的話,只需將密鑰稍微增加幾位,破解複雜度成指數爆炸的方式增長。而減少幾位,破解複雜度也成指數衰減!

3. 4個漢字真的安全嗎?

漢字是個神奇的東西,因為誰都不知道漢字有多少個,這使問題分析起來變得比較複雜,但我們做個簡化模型吧:GB2312中一級漢字也就是我們通常說的常用字,有3755個,而加上次常用字有6763個。我翻了一下碼錶(http://www.zsks.gov.cn/upload/gb2312.pdf),我的識字水平基本在絕大多數一級漢字加少數二級漢字,粗略估計為最多5000吧。

計算一下完全隨機的4個我認識的漢字的安全性:

log_2{(5000^4)}=49.2

不足 50 位。這種強度的密碼如果進行密碼學上的攻擊,用個人 PC 最多幾天就能完成(這是我推算的,僅供參考)。

如果還不信,給你一個參考數據:2006 年造價大約是一萬美金的 COPACOBANA(FPGA製作的 DES 破解機)大約可以用平均 6 天的時間破解一個 DES 密鑰。

而 DES 是採用 56 位密鑰。如前所述,密碼位數與破解成本是指數增長的,也就是破解 56 位密鑰的成本是破解上述密碼的 115 倍。

考慮到摩爾定律,九年前的六天也就相當與現在的幾個小時。現在再看我上面的估計還算保守吧。

現在再看破解這四個字值嗎?

4. 我在上面的論證反覆提到完全隨機這個假設。

怎麼獲取隨機數不用我說了吧,/dev/random (/dev/urandom?) 即可。

安利一個網站:RANDOM.ORG - True Random Number Service

如做不到完全隨機,即使是長密碼很可能就是秒破。

你覺得「知乎用戶」這種字典密碼和「機咳惡賽」這種隨機密碼破解難度一樣嗎?

=====================================================

總結:很多時候破解這件事這麼容易,主要是我們喜歡用我們能記住的密碼,但這很可能就是弱密碼。

安全的密碼=足夠的位數+隨機性。


會不會是數字、字母、符號的組合和漢字組合的區別?應該是漢字的組合容易破解吧?


推薦閱讀:

破解版和盜版是同一個東西嗎?
如何看待3DM宣布不再破解單機遊戲?
怎麼樣儘可能地分析出一個 dll 文件的有用信息?
(已解決)psv破解對於正版卡帶價格的影響?
M1卡破解 數據分析?

TAG:破解 | 壓縮 | RAR文件格式 | 加密解密 |