什麼是密碼分析?閱讀完整概述


密碼分析是指在不使用實際金鑰的情況下,對程式碼、密碼和加密文字進行解密和分析的研究和實踐。它是一種在無法獲得解密金鑰時訪問通訊明文內容的方法。

定義相關術語

密碼學分為密碼術(建立秘密程式碼)和密碼分析(研究密碼演算法和破解此類密碼)。密碼分析師是從事密碼分析的人。

密碼分析的作用

密碼分析在開發健壯的密碼系統過程中發揮著重要作用。如果密碼系統的設計者沒有考慮所有潛在的攻擊途徑,那麼“透過模糊性實現安全”可能會導致實施弱密碼系統。

密碼分析師做什麼?

他們的工作包括識別密碼系統中的任何弱點。它有助於我們瞭解它們以及我們加強它們的能力,並改進演算法以生成更安全的秘密程式碼。例如,密碼分析師可能會嘗試解密密文以獲取明文。它可以幫助我們確定明文或加密金鑰。

什麼是密碼分析攻擊

攻擊密碼系統以識別其缺陷至關重要。它們被稱為密碼分析攻擊。攻擊取決於演算法的性質以及對明文基本元素的瞭解,這些元素可以是標準的英文文件或 Java 程式碼。因此,在發起攻擊之前瞭解明文的性質至關重要。

密碼分析攻擊型別

  • 已知明文攻擊 (KPA) - 在這種型別的攻擊中,一些明文-密文組合已知。攻擊者將它們對映以獲取加密金鑰。此攻擊更容易執行,因為大量資料已經可用。

  • 選擇明文攻擊 (CPA) - 在此攻擊方法中,攻擊者選擇不規則的明文,獲取相應的密文,並嘗試解密訊息。它與 KPA 一樣易於實施,但成功率似乎很低。

  • 僅密文攻擊 (COA) - 在此攻擊中,攻擊者僅擁有密文的一部分,並試圖推斷出相應的加密金鑰和明文。它構建起來最複雜,但也是最有可能被攻擊的,因為只需要密文。

中間人 (MITM) 攻擊

攻擊者可以透過安全通訊通道攔截雙向通訊夥伴之間傳輸的訊息/金鑰。

簡單的密碼分析技術

較新的加密演算法被構建為能夠抵禦所有已知的密碼分析方法。但是,一些簡單的策略可以幫助評估(並可能破壞)較舊或新手密碼系統的安全性。

熵計算

熵是系統中存在的不確定性程度的指標。強大的加密演算法應該生成具有較大隨機性的密文,這表明密文包含很少或根本不包含與原始明文或金鑰相關的有用資訊。

因此,熵測試是識別加密資料的有效工具。雖然可以手動計算熵,但 Binwalk 和 radare2 等工具包含可以用來區分檔案中加密資料的熵檢視器。

識別加密資料後,可以使用其他功能來幫助識別使用的加密演算法。密文和塊長度以及函式名稱都是有用的資訊。

如果可以識別演算法,則可以確定加密演算法是否存在缺陷。該演算法還可以找到檔案中的加密金鑰,這可能是非常有用的資訊。

字元頻率分析

除了好的密文之外,現代語言並非隨機的。具備足夠的語言專業知識,就可以推測出某個給定序列之後會是什麼字母。例如,在英語中,哪個字母幾乎總是跟在字母 Q 之後?

語言缺乏隨機性有利於密碼分析,因為它使弱密碼易於破解。使用字元頻率分析可以輕鬆破解替換和旋轉密碼。

加密與編碼

編碼和加密都是隱藏資料的方法。但是,它們的實現和效果卻大不相同。

對於加密和解密,加密需要使用金鑰。知道這個金鑰後,就可以從密文中提取明文。

在沒有金鑰的情況下,編碼演算法對資料執行可逆操作。這意味著任何熟悉編碼演算法的人都可以將其反轉。

編碼演算法經常在勒索軟體中用作加密的簡單替代品。但是,如果知道編碼演算法,則可以輕鬆地更改它們。

Base64 編碼

Base64 編碼是一種編碼技術,允許任何型別的資料透過僅限於字母數字字元和符號的協議傳送。這是透過將三個位元組的序列對映到四個字元的集合來實現的。

此對映允許您將六位序列(四組六個字元等於 24 位或三個位元組)分配給 64 個可列印符號之一,如上表所示。base64 系統使用填充來確保輸入並非正好是三個位元組的倍數,從而導致編碼版本在末尾有一個或兩個等號(如 =/==)。

由於 base64 字元集和這些等號,這種編碼方法很容易識別。

由於 Base 64 編碼用於使原本不可列印的資料可列印,因此它通常用於編碼加密資料。有時會使用可以輕鬆反轉的編碼來代替加密。

編碼 URL

另一種用於在字元集有限的協議中啟用資料傳輸的編碼方法是 URL 編碼。在這種情況下,URL 編碼旨在使 URL 中保留的字元(如“?”和“.”)可以在域名或 URL 的其他部分中使用。

結論

大多數現代加密演算法能夠抵抗已知的攻擊,並且許多“被破解”的演算法需要複雜的數學知識才能理解攻擊。但是,簡單的方法使得許多較舊的編碼和加密演算法很容易被破解。

這很有利,因為許多惡意軟體變種依賴於這些安全性較低的加密技術。瞭解基本的密碼分析概念和方法在網路安全中可能非常有益。

更新於: 2022-12-09

173 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告