理論上可以通過除窮舉法以外的方法破解不可逆的加密演算法嗎?

時間 2021-06-02 13:02:43

1樓:

「不可逆「這個說法就是錯的。

既然窮盡法可以破解,哪有什麼不可逆?

從資訊學上說,真正的「不可逆」就只有一次墊密碼,金鑰長度大於等於明文長度,那就不可逆了。

2樓:慕容中關村

1. 舉個摘要演算法的例子,可能不太恰當。

f(x)=0

讓你破解x到底是多少,鬼才知道。

2. 再舉個加密演算法的例子

f(x)=x

讓你破解x到底是什麼。

大概就是這個意思,只是現實中f會複雜一些。

3樓:realot

問題不對,加密演算法不可逆要他何用?我的理解是:1.大整數分解,離散對數,橢圓曲線類,只能暴力破解;2.雜湊函式,只能暴力破解。如果有別的方法,那可是個大新聞。

4樓:車小胖

旗幟鮮明說觀點:沒有其它更好方法!

對稱加密、不對稱加密都是可逆的,唯獨單向雜湊演算法是不可逆的,題主說到的不可逆加密演算法應該是專指單向雜湊演算法。

B使用DES/3DES/AES對稱加密演算法,使用自己hardcoding的金鑰(key)來加密/解密

加密演算法如下:

Encryption( cisco123 + key) ---> 密文

解密演算法如下:

Decryption( 密文 + key) ---> cisco123

雜湊生成機制

C使用MD5/SHA做單向不可逆雜湊演算法(訊息摘要演算法),雜湊演算法如下:

MD5(cisco123) ---> 雜湊 (128位)

SHA1(cisco123) ---> 雜湊 (160位)

SHA256(cisco123) ---> 雜湊 (256位)

所謂單向不可逆是指:可以通過明文cisco123得到雜湊值,但是不可以通過雜湊值來推導出cisco123。

假設此時使用者登入此路由器,依據密碼的存放方式也有三種驗證方式:

1.1 密碼明文存放

直接將使用者輸入的密碼與存放的密碼cisco123比較,一致則驗證通過。

1.2 密碼加密存放

有兩種處理方式

1.2.1 將使用者輸入密碼加密處理

Encryption( 使用者輸入密碼 + key) ---> 使用者密文,然後和存放的密文比較,一致則驗證通過。

1.2.2 將存放密碼解密處理

Decryption( 密文 + key) ---> cisco123,然後比較使用者輸入的密碼與cisco123,一致則驗證通過。

1.3 密碼雜湊處理

先將使用者輸入密碼做單向雜湊,假設演算法為MD5,MD5(使用者輸入密碼) ---> 使用者輸入雜湊,然後和存放的雜湊比較,一致則驗證通過。

對稱加/解密是可逆的

通過以上例子1.2可以看出,加密/解密是雙向可逆操作,裝置可以根據自己的key將加密的密碼解密成明文cisco123,也可以將cisco123加密成密文,一旦這個key洩露,是可以破解密碼的,換句話說,Cisco是可以破解此密碼的。

單向雜湊是不可逆的

而1.3是單向不可逆操作,如果配置檔案只儲存密碼的雜湊值,是無法得到使用者的密碼的,為何?因為雜湊演算法通過壓縮將原始資訊截短了,資訊丟失無法復原!cisco也無能為力。

可以用乙個例子來形象比喻:大家看小電影,經常會有馬賽克,這個有馬賽克電影就是雜湊,如果你想把馬賽克電影還原成原始電影,這是乙個不可能完成的任務,因為打碼過程中丟失了很多關鍵資訊,熟悉影象資訊處理的同學肯定知道打碼的部分灰度值被平滑了,資訊丟失就無法復原。

一旦使用者密碼是以雜湊HASH形式儲存,連cisco裝置都不知道你的原始密碼是什麼(假定只儲存hash值),cisco也無法破解你的原始密碼(假定夠長、夠複雜)

如何破解單向雜湊?

針對1.3 的破解,目前常用的做法是:先用密碼的組合,比如生日 + 字典 + 名字 + 數字執行雜湊演算法,預先生成一張龐大的彩虹表,如果使用者密碼的雜湊不幸置身於彩虹表中,很抱歉的通知你,你被破解了!

如何防範密碼被破解?

2.1不要使用字典詞彙做密碼

2.2 不要使用生日做密碼

2.3 要使用特殊字元

2.4 密碼要複雜,有大小寫、特殊字元、英文本母、數字

2.5 密碼要夠長,這是最最關鍵的,曾經聽說德中國人輸入128位長的密碼,輸入時間為5分鐘

雜湊演算法的特點

以MD5為例,

MD5(Message) ----> Digest (128 bit)

訊息可以是任意長度,這意味著輸入引數(message)是無限的,而輸出(Digest)是有限的,儘管是128bit,數量也很驚人,但以有限輸出對無限的輸入,這本身就不可逆。

根據message 可以得到特定的Digest,但根據Digest卻不可以得到特定的Message。所以理論上肯定會有海量的不同Message產生相同的Digest,此謂碰撞collision,也意味著演算法破解(Broken)。

雜湊演算法的破解

針對MD5的破解,是預先用Message生成海量的Digest,然後拿需要破解的Digest來比對,比對上了就可以知道其message了。

5樓:alexxxx

如果你指的是摘要生成演算法,那真的沒有絕對的安全不可破解的方案,就像md5在一段時間內也沒人能破解但是最後還是被王教授破解了,或者不是完全意義上的破解,她的破解是有條件的,說不定未來的某一天,sha1就被破解了。

密碼學本來就是乙個不斷改進不斷破解的過程,從古至今都是,如果有人能夠證明某個密碼無法破解,密碼學的發展就,,呵呵了。

現在很多所謂的無法破解是基於數學難題的,但不能保證這些難題以後一直是難題。

6樓:週末

不可逆就不算加密演算法,摘要演算法或許可以找到碰撞,但恢復原文不太現實。現在很多摘要演算法都經過高次迭代,窮舉在計算量上也是不可行的。

7樓:Ivony

所謂不可逆演算法,就是乙個不可逆運算的運算,乙個演算法不可逆,那麼就不可能通過其結果得知輸入。譬如說f(x)=x*0|x是實數就是乙個不可逆的運算,對於任何x而言,其結果都是0,你無法通過這唯一的結果0推斷x是什麼。

所以,不可逆演算法不存在破解的可能,也不能用於加密

至於RSA什麼的,那是非對稱加密演算法,不是不可逆演算法。

8樓:paradisor

你問的問題用不同的斷句可以得到兩個不同的問題。

第乙個是:理論上來說,不可逆演算法能通過窮舉法之外的方法破解麼?答案應該是:

不知道。目前沒有確定性的方法驗證演算法是否可逆。一般認為久經考驗的加密演算法比較成熟,應該很難被破解。

第二個是:理論上不可逆的演算法,能通過窮舉法之外的方法破解麼?答案自然是不能。

能在理論上被證明不可逆的演算法是極少的,而據我所知,這些演算法能被證明理論上不可逆,是因為被證明即使使用窮舉法也不能攻破,比如最著名的一次一密演算法。

像圍棋這種遊戲,理論上是不是可以完全通過邏輯分析推出來?

許銘銘 夫圍棋之初,德先生和賽先生還不能作為推動時代發展的車輪,所謂天時地利人和。天難遂人願,地和人則是榮衰之理。地為棋盤,人為棋子,圍棋之道,是君子之道,是兵家之道,也是治國之道。君子之爭為名,兵家之爭為勝,國家之爭為利,名 勝 利者,非爭而不可得也。爭則德行有善惡,勝負有高下,利益有多寡。是不是...

MOBA類遊戲的AI理論上可以多強?

destinyfs 我覺得,以ai的能力,即便操作被設定成職業選手級別,也絕對是可以吊打最強的職業戰隊的,只要學習做的足夠,幾乎不可能會輸,這就像五個永遠不會失誤的lol韓服王者對五個新手一樣。每一步都是最優解,意識領先幾個賽季,大局觀小節奏,配合,陣容理解完全的碾壓,還不存在上頭的操作,不可能會贏...

理論上利用清明夢是否可以改變人的性格?

針對你的具體情況,我告訴你,可以。夢外觀察練習,夢裡嘗試突破。往前走,漸漸你會在黑暗裡看到遠處有什麼東西在發光,然後你會看清是一扇門,推開門,邁進去,你就成了。每個人的那扇門不一樣,但門裡確實是另乙個世界,你可以懷疑,但,等你看到那扇門的時候,你會發現那扇門如此清晰,連門上的花紋都可以一一描述出來。...