① 通常攻擊密碼都有什麼方法
攻擊密碼系統的方法大概可以分為三種對密碼進行分析的嘗試稱為攻擊。Kerckhoffs最早在19世紀闡明密碼分析的一個基本假設,這個假設就是秘密必須完全寓於密鑰中。Kerckhoffs假設密碼分析者已有密碼演算法及其實現的全部詳細資料。
密碼分析者攻擊密碼系統的方法主要有以下三種。
窮舉攻擊
所謂窮舉攻擊是指密碼分析者採用依次試遍所有可能的密鑰,對所獲密文進行解密,直至得到正確的明文;或者用一個確定的密鑰對所有可能的明文進行加密,直至得到所獲得的密文。顯然,理論上對於任何實用密碼,只要有足夠的資源都可以用窮舉攻擊將其攻破。
窮舉攻擊所花費的時間等於嘗試次數乘以一次解密(加密)所需的時間。顯然可以通過增大密鑰量或者加大解密(加密)演算法的復雜性來對抗窮舉攻擊。當密鑰量增大時,嘗試的次數必然增大。當解密(加密)演算法的復雜性增大時,完成一次解密(加密)所需的時間增大,從而使窮舉攻擊在實際上不能實現。窮舉攻擊是對密碼的一種最基本的攻擊方法。
統計分析攻擊
所謂統計分析攻擊就是指密碼分析者通過分析密文和明文的統計規律來破譯密碼。統計分析攻擊在歷史上為破譯密碼做出過極大的貢獻。許多古典密碼都可以通過分析密文字母和字母組的頻率和其他統計參數而破譯。對抗統計分析攻擊的方法是設法使明文的統計特性不帶入密文。這樣密文不帶有明文的痕跡,從而使統計分析攻擊成為不可能。能夠抵抗統計分析攻擊已成為近代密碼的基本要求。
數學分析攻擊
所謂數學分析攻擊是指密碼分析者針對加解密演算法的數學基礎和某些密碼學特性,通過數學求解的方法來破譯密碼。數學分析攻擊是對基於數學難題的各種密碼的主要威脅。為了對抗這種數學分析攻擊,應當選用具有堅實數學基礎和足夠復雜的加解密演算法。
② 密碼分析學的攻擊類型
不同的密碼分析攻擊有不同的效力,對於實際的密碼系統的威脅也不盡相同。有的時候,對於某個密碼系統的攻擊只是停留在理論上,對於任何實際的密碼系統可能並不適用。這就是所謂的「證書式弱點」(certificational weakness)。現代密碼分析的學術研究結果大部分都屬於這一類。從根本上說,某種攻擊方式在實際中的有效性取決於它對於以下幾個問題給出的答案:
這個攻擊需要何種知識及能力? 通過攻擊可獲得多少新的秘密信息? 這個攻擊需要花多少工夫?(它的計算復雜度為何?) 在攻擊中,通過觀察或研究目標系統,多少會獲得關於這個系統的信息。隨著能夠獲得信息多少的假設不同,密碼分析的方法也不盡相同。在密碼分析中最基本的一點,就是假設攻擊者能夠知道系統所用的演算法。這也就是「敵人了解系統」的所謂柯克霍夫原則。這個假設在實際中是合理的。從古至今,有無數的秘密演算法最後終為人所知,而其途徑多種多樣,包括間諜,叛變,以及逆向工程。在一些不多見的情況下,密碼機也能夠通過純粹的推演而被重建。例如德國的洛侖茲密碼機(Lorenz Cipher)和日本的PURPLE密碼機,以及其它很多經典密碼。
另外,我們通常用攻擊模式來描述攻擊者可以獲得關於系統信息的方式。攻擊模式包括以下幾種:
唯密文攻擊:攻擊者僅能獲得一些加密過的密文。 已知明文攻擊:攻擊者有一些密文並且知道相對應的明文。 選擇明文攻擊:攻擊者在開始攻擊之前可以選擇一些明文並從系統中獲得相對應的密文。如果攻擊者在攻擊中途可以根據已經獲得的信息選擇新的明文並獲得對應的密文,則稱為適應性選擇明文攻擊。 選擇密文攻擊:攻擊者在開始攻擊之前可以選擇一些密文並從系統中獲得相對應的明文。如果攻擊者在攻擊中途可以根據已經獲得的信息選擇新的密文並獲得對應的明文,則稱為適應性選擇密文攻擊。 相關鑰匙攻擊:與選擇明文(或密文)攻擊類似。不同的是,攻擊者可以得到被兩個不同的鑰匙所加密(或解密)得到的密文(或明文)。攻擊者不知道這兩個鑰匙的數值,但知道這兩個鑰匙之間的關系,比如兩個鑰匙之間相差一個比特。 顯然,這些不同種類的攻擊在實際中可能出現的機會也大不相同。盡管有些攻擊比其它的較為常見,密碼學家在設計演算法時通常會採取保守的方式看待安全問題,總是假設最壞的情形。理由是,如果一個演算法連不現實的攻擊都可以承受,那麼它自然也可以抵抗實際可行的密碼分析。
事實上,這些假設雖然初看上去不切實際,但其實不然。例如在已知明文攻擊中,密碼分析者很有可能能夠知道或猜出明文的一部分。比方說,一封加密過的信有可能是以「敬啟者」開頭,而一個電腦會話則有可能以「用戶名:」開頭。選擇明文攻擊在密鑰密碼中較為少見,但也並非不可能。而在公鑰密碼中,選擇明文攻擊人人都可做到,因為加密用的鑰匙通常是公開或已知的。相關鑰匙攻擊通常只是在理論上的討論,但在實際中也會被用到,例如對WEP的攻擊。 對於密碼分析的結果來說,其有用的程度也各有不同。密碼學家Lars Knudsen於1998年將對於分組密碼的攻擊按照獲得的秘密信息的不同分為以下幾類:
完全破解 -- 攻擊者獲得秘密鑰匙。 全局演繹 -- 攻擊者獲得一個和加密和解密相當的演算法,盡管可能並不知道鑰匙。 實例(局部)演繹 -- 攻擊者獲得了一些攻擊之前並不知道的明文(或密文)。 信息演繹 -- 攻擊者獲得了一些以前不知道的關於明文或密文的香農信息。 分辨演算法 -- 攻擊者能夠區別加密演算法和隨機排列。 對於其它類型的密碼學演算法,也可以做出類似的分類。
③ 密碼攻擊通常都使用什麼信息來攻擊
根據密碼分析者可利用的數據資源來分類
可將破譯密碼的類型分為以下幾種。
唯密文攻擊
所謂唯密文攻擊是指密碼分析者有一些消息的密文,這些消息都用同一種加密演算法加密。密碼分析者的任務是恢復盡可能多的明文,最好是能夠推算出加密密鑰,以便可以使用該密鑰解密出其他被加密的消息。因為密碼分析者所能利用的數據資源僅有密文,因此這是對密碼分析者最不利的情況。
已知明文攻擊
所謂已知明文攻擊是指密碼分析者不僅可以得到一些消息的密文,而且也知道這些消息的明文。分析者的任務就是利用這些信息,推導出加密的密鑰或者導出一個演算法,此演算法可以對用同一密鑰加密的任何新的消息進行解密。
例如密碼分析者可能知道,從終端送到計算機的密文數據以一個標准詞「LOGIN」開頭。又例如,加密成密文的計算機程序文件特別容易受到這種攻擊。這是因為諸如「BEGIN」,「END」,「IF」,「THEN」,「ELSE」等詞的密文有規律地在密文中出現,密碼分析者可以據此合理地猜測它們。近代密碼學認為,能夠抵抗已知明文攻擊是密碼的最起碼的要求。
選擇明文攻擊
所謂選擇明文攻擊是指密碼分析者不僅可得到一些消息的密文及對應的明文,而且他們也可選擇被加密的明文。這比已知明文攻擊更有效。因為密碼分析者可以選擇特定的明文去加密,據此可能得到更多的關於密鑰的信息。這是對密碼分析者十分有利的情況。分析者的任務是推出用來加密的密鑰或者導出一個演算法,此演算法可以對用同一密鑰加密的任何新的消息進行解密。
自適應選擇明文攻擊
這是選擇明文攻擊的特殊情況。密碼分析者不僅能選擇被加密的明文,而且可以基於以前加密的結果修正這個選擇。在選擇明文攻擊中,密碼分析者可以選擇一大塊被加了密的明文。而在自適應選擇明文攻擊中,它可以選擇較小的明文塊,然後再基於第一塊的結果選擇另一明文塊,依此類推。
選擇密文攻擊
所謂選擇密文攻擊是指密碼分析者可以選擇不同的密文,並獲得相應的解密明文。密碼分析者的任務是推導出密鑰。
選擇密鑰攻擊
這種攻擊並不表示密碼分析者能夠選擇密鑰,它只表示密碼分析者具有不同密鑰之間的關系的有關知識。這種方法有點奇特晦澀,不是很實際。
非技術攻擊手段
密碼分析者威脅、勒索,或者折磨某人,直到他給出密鑰為止。行賄有時稱為購買密鑰攻擊。這些非技術手段是非常有效的攻擊,並且經常是破譯演算法的最有效途徑→_→ 恩,我覺得這是最高效的方法。
④ 什麼是密碼分析,其攻擊類型有哪些
答:密碼分析是指研究在不知道密鑰的情況下來恢復明文的科學。攻擊類型有隻有密文的攻擊,已知明文的攻擊,選擇明文的攻擊,適應性選擇明文攻擊,選擇密文的攻擊,選擇密鑰的攻擊,橡皮管密碼攻擊。S盒是DES演算法的核心。其功能是把6bit數據變為4bit數據。