- 密碼學教程
- 密碼學 - 首頁
- 密碼學 - 起源
- 密碼學 - 歷史
- 密碼學 - 原理
- 密碼學 - 應用
- 密碼學 - 優點與缺點
- 密碼學 - 現代
- 密碼學 - 傳統密碼
- 密碼學 - 加密需求
- 密碼學 - 雙重強度加密
- 密碼系統
- 密碼系統
- 密碼系統 - 組成部分
- 密碼系統攻擊
- 密碼系統 - 彩虹表攻擊
- 密碼系統 - 字典攻擊
- 密碼系統 - 暴力攻擊
- 密碼系統 - 密碼分析技術
- 密碼學型別
- 密碼系統 - 型別
- 公鑰加密
- 現代對稱金鑰加密
- 密碼學雜湊函式
- 金鑰管理
- 密碼系統 - 金鑰生成
- 密碼系統 - 金鑰儲存
- 密碼系統 - 金鑰分發
- 密碼系統 - 金鑰撤銷
- 分組密碼
- 密碼系統 - 流密碼
- 密碼學 - 分組密碼
- 密碼學 - Feistel分組密碼
- 分組密碼的工作模式
- 分組密碼的工作模式
- 電子密碼本 (ECB) 模式
- 密碼分組連結 (CBC) 模式
- 密碼反饋 (CFB) 模式
- 輸出反饋 (OFB) 模式
- 計數器 (CTR) 模式
- 古典密碼
- 密碼學 - 反向密碼
- 密碼學 - 凱撒密碼
- 密碼學 - ROT13 演算法
- 密碼學 - 置換密碼
- 密碼學 - 加密置換密碼
- 密碼學 - 解密置換密碼
- 密碼學 - 乘法密碼
- 密碼學 - 仿射密碼
- 密碼學 - 簡單替換密碼
- 密碼學 - 簡單替換密碼加密
- 密碼學 - 簡單替換密碼解密
- 密碼學 - 維吉尼亞密碼
- 密碼學 - 維吉尼亞密碼的實現
- 現代密碼
- Base64 編碼與解碼
- 密碼學 - XOR 加密
- 替換技術
- 密碼學 - 單字母替換密碼
- 密碼學 - 單字母替換密碼的破解
- 密碼學 - 多字母替換密碼
- 密碼學 - Playfair 密碼
- 密碼學 - Hill 密碼
- 多字母替換密碼
- 密碼學 - 一次性密碼本密碼
- 一次性密碼本密碼的實現
- 密碼學 - 置換技術
- 密碼學 - 柵欄密碼
- 密碼學 - 列置換密碼
- 密碼學 - 密碼隱寫術
- 對稱演算法
- 密碼學 - 資料加密
- 密碼學 - 加密演算法
- 密碼學 - 資料加密標準 (DES)
- 密碼學 - 三重 DES
- 密碼學 - 雙重 DES
- 高階加密標準 (AES)
- 密碼學 - AES 結構
- 密碼學 - AES 變換函式
- 密碼學 - 位元組替換變換
- 密碼學 - 行移位變換
- 密碼學 - 列混淆變換
- 密碼學 - 輪金鑰加變換
- 密碼學 - AES 金鑰擴充套件演算法
- 密碼學 - Blowfish 演算法
- 密碼學 - SHA 演算法
- 密碼學 - RC4 演算法
- 密碼學 - Camellia 加密演算法
- 密碼學 - ChaCha20 加密演算法
- 密碼學 - CAST5 加密演算法
- 密碼學 - SEED 加密演算法
- 密碼學 - SM4 加密演算法
- IDEA - 國際資料加密演算法
- 公鑰(非對稱)密碼演算法
- 密碼學 - RSA 演算法
- 密碼學 - RSA 加密
- 密碼學 - RSA 解密
- 密碼學 - 建立 RSA 金鑰
- 密碼學 - 破解 RSA 密碼
- 密碼學 - ECDSA 演算法
- 密碼學 - DSA 演算法
- 密碼學 - Diffie-Hellman 演算法
- 密碼學中的資料完整性
- 密碼學中的資料完整性
- 訊息認證
- 密碼學數字簽名
- 公鑰基礎設施 (PKI)
- 雜湊
- MD5 (訊息摘要演算法 5)
- SHA-1 (安全雜湊演算法 1)
- SHA-256 (安全雜湊演算法 256 位)
- SHA-512 (安全雜湊演算法 512 位)
- SHA-3 (安全雜湊演算法 3)
- 密碼雜湊
- Bcrypt 雜湊模組
- 現代密碼學
- 量子密碼學
- 後量子密碼學
- 密碼協議
- 密碼學 - SSL/TLS 協議
- 密碼學 - SSH 協議
- 密碼學 - IPsec 協議
- 密碼學 - PGP 協議
- 影像與檔案加密
- 密碼學 - 影像
- 密碼學 - 檔案
- 密碼隱寫術 - 影像
- 檔案加密和解密
- 密碼學 - 檔案加密
- 密碼學 - 檔案解密
- 物聯網中的密碼學
- 物聯網安全挑戰、威脅和攻擊
- 物聯網安全的密碼技術
- 物聯網裝置的通訊協議
- 常用的密碼技術
- 自定義構建密碼演算法(混合密碼)
- 雲密碼學
- 量子密碼學
- 密碼學中的影像隱寫術
- DNA 密碼學
- 密碼學中的一次性密碼 (OTP) 演算法
- 區別
- 密碼學 - MD5 vs SHA1
- 密碼學 - RSA vs DSA
- 密碼學 - RSA vs Diffie-Hellman
- 密碼學 vs 密碼學
- 密碼學 - 密碼學 vs 密碼分析
- 密碼學 - 經典 vs 量子
- 密碼學 vs 密碼隱寫術
- 密碼學 vs 加密
- 密碼學 vs 網路安全
- 密碼學 - 流密碼 vs 分組密碼
- 密碼學 - AES vs DES 密碼
- 密碼學 - 對稱 vs 非對稱
- 密碼學有用資源
- 密碼學 - 快速指南
- 密碼學 - 討論
密碼系統攻擊
在當今時代,不僅是商業,幾乎所有人類生活方面都由資訊驅動。因此,保護有用資訊免受惡意活動(如攻擊)的影響已變得至關重要。讓我們考慮一下資訊通常會受到哪些型別的攻擊。
攻擊通常根據攻擊者執行的操作進行分類。因此,攻擊可以是**被動**的或**主動**的。
被動攻擊
被動攻擊的主要目標是**未經授權地訪問資訊**。例如,攔截和竊聽通訊通道等行為可以視為被動攻擊。
這些行為本質上是被動的,因為它們既不影響資訊也不破壞通訊通道。被動攻擊通常被視為竊取資訊。竊取實物和竊取資訊的區別在於,資料被盜後,所有者仍然擁有該資料。因此,被動資訊攻擊比竊取貨物更危險,因為資訊被盜可能不會被所有者注意到。
主動攻擊
主動攻擊涉及透過對資訊進行一些處理來以某種方式更改資訊。例如,
以未經授權的方式修改資訊。
啟動意外的或未經授權的資訊傳輸。
更改身份驗證資料,例如與資訊相關的發件人名稱或時間戳
未經授權刪除資料。
拒絕合法使用者訪問資訊(拒絕服務)。
密碼學提供了許多工具和技術,用於實現能夠防止上述大多數攻擊的密碼系統。
攻擊者假設
讓我們看看密碼系統周圍普遍存在的環境,然後看看用來破壞這些系統的攻擊型別:
密碼系統周圍的環境
在考慮對密碼系統的可能攻擊時,瞭解密碼系統環境是必要的。攻擊者的假設和對環境的瞭解決定了他的能力。
在密碼學中,對安全環境和攻擊者的能力作出了以下三個假設。
加密方案的細節
密碼系統的設計基於以下兩種密碼演算法:
**公開演算法** - 使用此選項,演算法的所有詳細資訊都處於公共領域,每個人都知道。
**私有演算法** - 演算法的詳細資訊僅為系統設計人員和使用者所知。
對於私有演算法,安全性是透過模糊性來確保的。私有演算法可能不是最強大的演算法,因為它們是在內部開發的,並且可能沒有經過廣泛的弱點調查。
其次,它們只允許封閉組之間進行通訊。因此,它們不適合現代通訊,在現代通訊中,人們與大量已知或未知的實體進行通訊。此外,根據 Kerckhoff 原則,優選公開演算法,加密強度取決於 *金鑰*。
因此,關於安全環境的第一個假設是**攻擊者知道加密演算法**。
密文的可用性
我們知道,一旦明文被加密成密文,它就會被放到不安全的公共通道(例如電子郵件)上進行傳輸。因此,攻擊者顯然可以假設它**可以訪問密碼系統生成的密文**。
明文和密文的可用性
這個假設不像其他假設那樣顯而易見。但是,在某些情況下,攻擊者可能**可以訪問明文和對應的密文**。一些可能的這種情況是:
攻擊者影響傳送者轉換他選擇的明文並獲得密文。
接收者可能無意中向攻擊者洩露明文。攻擊者可以訪問從開放通道收集的相應密文。
在公鑰密碼系統中,加密金鑰處於公開領域,任何潛在攻擊者都知道。使用此金鑰,他可以生成成對的相應明文和密文。
密碼攻擊
攻擊者的基本意圖是破壞密碼系統並從密文中找到明文。為了獲得明文,攻擊者只需要找出秘密解密金鑰,因為演算法已經在公共領域。
因此,攻擊者會盡最大努力找出密碼系統中使用的金鑰。一旦攻擊者能夠確定金鑰,則被攻擊的系統被認為是被破壞的或被入侵的。
根據使用的方法,對密碼系統的攻擊可分為如下幾類:
僅知密文攻擊 (COA) − 在這種方法中,攻擊者可以訪問一組密文。他無法訪問相應的明文。當可以根據給定的密文集確定相應的明文時,COA 被認為是成功的。有時,可以從此攻擊中確定加密金鑰。現代密碼系統能夠抵禦僅知密文攻擊。
已知明文攻擊 (KPA) − 在這種方法中,攻擊者知道密文某些部分的明文。任務是使用此資訊解密其餘密文。這可以透過確定金鑰或透過其他方法來完成。這種攻擊的最佳示例是針對分組密碼的線性密碼分析。
選擇明文攻擊 (CPA) − 在這種方法中,攻擊者可以選擇要加密的文字。因此,他擁有自己選擇的密文-明文對。這簡化了他確定加密金鑰的任務。這種攻擊的一個例子是差分密碼分析,它應用於分組密碼和雜湊函式。流行的公鑰密碼系統RSA也容易受到選擇明文攻擊。
字典攻擊 − 此攻擊有很多變體,所有這些變體都涉及編譯“字典”。在這種攻擊的最簡單方法中,攻擊者會構建一個包含他一段時間內學習到的密文和相應明文的字典。將來,當攻擊者獲得密文時,他會參考字典以查詢相應的明文。
暴力攻擊 (BFA) − 在這種方法中,攻擊者嘗試透過嘗試所有可能的金鑰來確定金鑰。如果金鑰長度為8位,則可能的金鑰數量為28 = 256。攻擊者知道密文和演算法,現在他依次嘗試所有256個金鑰進行解密。如果金鑰很長,則完成攻擊所需的時間將非常長。
生日攻擊 − 此攻擊是暴力技術的變體。它用於對抗密碼雜湊函式。當要求班上的學生說出他們的生日時,答案是365個可能的日期之一。假設第一個學生的生日是8月3日。那麼,要找到下一個生日是8月3日的學生,我們需要詢問大約1.25*√365 ≈ 25個學生。
同樣,如果雜湊函式產生64位雜湊值,則可能的雜湊值是1.8x1019。透過反覆對不同輸入評估函式,預計在大約5.1x109個隨機輸入後將獲得相同的輸出。
如果攻擊者能夠找到兩個不同的輸入產生相同的雜湊值,則這是一個衝突,並且該雜湊函式被認為是被破壞的。
中間人攻擊 (MIM) − 此攻擊的目標主要是涉及金鑰交換的公鑰密碼系統。
主機A想要與主機B通訊,因此請求B的公鑰。
攻擊者攔截此請求併發送其公鑰。
因此,主機A傳送給主機B的任何內容,攻擊者都可以讀取。
為了保持通訊,攻擊者在讀取後使用其公鑰重新加密資料併發送給B。
攻擊者將自己的公鑰作為A的公鑰傳送,以便B將其視為來自A。
旁道攻擊 (SCA) − 此類攻擊並非針對任何特定型別的密碼系統或演算法。相反,它是為了利用密碼系統物理實現中的弱點而發起的。
定時攻擊 − 它們利用這樣一個事實:不同的計算在處理器上需要不同的時間來計算。透過測量這些時間,可以瞭解處理器正在執行的特定計算。例如,如果加密時間更長,則表明金鑰很長。
功耗分析攻擊 − 這些攻擊類似於定時攻擊,只是使用功耗來獲取有關底層計算性質的資訊。
故障分析攻擊 − 在這些攻擊中,會在密碼系統中引入錯誤,攻擊者會研究由此產生的輸出以獲取有用的資訊。
攻擊的實用性
此處描述的對密碼系統的攻擊在很大程度上是學術性的,因為其中大多數來自學術界。事實上,許多學術攻擊都涉及對環境以及攻擊者能力的相當不現實的假設。例如,在選擇密文攻擊中,攻擊者需要數量不切實際的故意選擇的明文-密文對。這可能根本不實用。
儘管如此,任何攻擊的存在都應該引起關注,特別是如果攻擊技術有改進的潛力。