- 密碼學教程
- 密碼學 - 首頁
- 密碼學 - 起源
- 密碼學 - 歷史
- 密碼學 - 原理
- 密碼學 - 應用
- 密碼學 - 優點與缺點
- 密碼學 - 現代
- 密碼學 - 傳統密碼
- 密碼學 - 加密的需求
- 密碼學 - 雙重強度加密
- 密碼系統
- 密碼系統
- 密碼系統 - 組成部分
- 密碼系統攻擊
- 密碼系統 - 彩虹表攻擊
- 密碼系統 - 字典攻擊
- 密碼系統 - 暴力破解攻擊
- 密碼系統 - 密碼分析技術
- 密碼學的型別
- 密碼系統 - 型別
- 公鑰加密
- 現代對稱金鑰加密
- 密碼學雜湊函式
- 金鑰管理
- 密碼系統 - 金鑰生成
- 密碼系統 - 金鑰儲存
- 密碼系統 - 金鑰分發
- 密碼系統 - 金鑰吊銷
- 分組密碼
- 密碼系統 - 流密碼
- 密碼學 - 分組密碼
- 密碼學 - Feistel分組密碼
- 分組密碼的工作模式
- 分組密碼的工作模式
- 電子密碼本 (ECB) 模式
- 密碼分組連結 (CBC) 模式
- 密文反饋 (CFB) 模式
- 輸出反饋 (OFB) 模式
- 計數器 (CTR) 模式
- 經典密碼
- 密碼學 - 反向密碼
- 密碼學 - 凱撒密碼
- 密碼學 - ROT13演算法
- 密碼學 - 置換密碼
- 密碼學 - 加密置換密碼
- 密碼學 - 解密置換密碼
- 密碼學 - 乘法密碼
- 密碼學 - 仿射密碼
- 密碼學 - 簡單替換密碼
- 密碼學 - 簡單替換密碼的加密
- 密碼學 - 簡單替換密碼的解密
- 密碼學 - 維吉尼亞密碼
- 密碼學 - 維吉尼亞密碼的實現
- 現代密碼
- Base64編碼和解碼
- 密碼學 - XOR加密
- 替換技術
- 密碼學 - 單表替換密碼
- 密碼學 - 單表替換密碼的破解
- 密碼學 - 多表替換密碼
- 密碼學 - Playfair密碼
- 密碼學 - Hill密碼
- 多表替換密碼
- 密碼學 - 一次性密碼本
- 一次性密碼本的實現
- 密碼學 - 置換技術
- 密碼學 - 柵欄密碼
- 密碼學 - 列置換密碼
- 密碼學 -隱寫術
- 對稱演算法
- 密碼學 - 資料加密
- 密碼學 - 加密演算法
- 密碼學 - 資料加密標準 (DES)
- 密碼學 - 三重DES
- 密碼學 - 雙重DES
- 高階加密標準
- 密碼學 - AES結構
- 密碼學 - AES變換函式
- 密碼學 - 位元組替換變換
- 密碼學 - 行移位變換
- 密碼學 - 列混淆變換
- 密碼學 - 輪金鑰加變換
- 密碼學 - AES金鑰擴充套件演算法
- 密碼學 - Blowfish演算法
- 密碼學 - SHA演算法
- 密碼學 - RC4演算法
- 密碼學 - Camellia加密演算法
- 密碼學 - ChaCha20加密演算法
- 密碼學 - CAST5加密演算法
- 密碼學 - SEED加密演算法
- 密碼學 - SM4加密演算法
- IDEA - 國際資料加密演算法
- 公鑰(非對稱)密碼演算法
- 密碼學 - RSA演算法
- 密碼學 - RSA加密
- 密碼學 - RSA解密
- 密碼學 - 建立RSA金鑰
- 密碼學 - 破解RSA密碼
- 密碼學 - ECDSA演算法
- 密碼學 - DSA演算法
- 密碼學 - Diffie-Hellman演算法
- 密碼學中的資料完整性
- 密碼學中的資料完整性
- 訊息認證
- 密碼學數字簽名
- 公鑰基礎設施
- 雜湊
- 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 非對稱
- 密碼學有用資源
- 密碼學 - 快速指南
- 密碼學 - 討論
高階加密標準
目前最流行和廣泛採用的對稱加密演算法是高階加密標準 (AES)。它的速度至少比三重DES快六倍。
由於DES的金鑰長度太短,需要對其進行替換。隨著計算能力的提高,它被認為容易受到窮舉金鑰搜尋攻擊。三重DES旨在克服這一缺點,但速度較慢。
AES的特點如下:
- 對稱金鑰對稱分組密碼
- 128位資料,128/192/256位金鑰
- 比三重DES更強大更快
- 提供完整的規範和設計細節
- 可在C和Java中實現的軟體
AES的操作
AES是一種迭代密碼,而不是Feistel密碼。它基於“替換-置換網路”。它包括一系列連結操作,其中一些操作涉及用特定輸出替換輸入(替換),而另一些操作則涉及重新排列位(置換)。
有趣的是,AES在其所有計算中使用位元組而不是位。因此,AES將明文塊的128位視為16個位元組。這16個位元組被排列成四列四行,作為矩陣進行處理:
與DES不同,AES中的輪數是可變的,並且取決於金鑰的長度。對於128位金鑰,AES使用10輪;對於192位金鑰,使用12輪;對於256位金鑰,使用14輪。每一輪都使用不同的128位輪金鑰,該金鑰由原始AES金鑰計算得出。
AES結構的示意圖如下所示:
加密過程
這裡,我們只描述AES加密的典型輪次。每一輪包含四個子過程。第一輪過程如下圖所示:
位元組替換 (SubBytes)
透過查詢設計中給定的固定表(S盒)來替換16個輸入位元組。結果是一個四行四列的矩陣。
行移位 (Shiftrows)
矩陣的四行中的每一行都向左移動。任何“掉落”的條目都重新插入到行的右側。移位如下進行:
第一行不移位。
第二行向左移動一個(位元組)位置。
第三行向左移動兩個位置。
第四行向左移動三個位置。
結果是一個新的矩陣,它包含相同的16個位元組,但彼此之間發生了移位。
列混淆 (MixColumns)
現在使用特殊的數學函式變換四個位元組的每一列。此函式以一列的四個位元組作為輸入,並輸出四個全新的位元組,這些位元組替換原始列。結果是另一個新的包含16個新位元組的矩陣。需要注意的是,在最後一輪中不執行此步驟。
輪金鑰加 (Addroundkey)
矩陣的16個位元組現在被視為128位,並與輪金鑰的128位進行異或運算。如果這是最後一輪,則輸出為密文。否則,將生成的128位解釋為16個位元組,然後我們開始另一輪類似的輪次。
解密過程
AES密文的解密過程與加密過程類似,但順序相反。每一輪都包含四個以相反順序進行的子過程:
- 輪金鑰加
- 列混淆
- 行移位
- 位元組替換
由於每一輪中的子過程都是反向的,因此與Feistel密碼不同,加密和解密演算法需要分別實現,儘管它們非常密切相關。
AES分析
在當今的密碼學中,AES被廣泛採用並在硬體和軟體中都得到支援。到目前為止,尚未發現針對AES的任何實際密碼分析攻擊。此外,AES具有內建的金鑰長度靈活性,這使得它能夠在一定程度上“防範未來”,以應對窮舉金鑰搜尋能力的進步。
但是,與DES一樣,只有在正確實現AES並採用良好的金鑰管理時,才能保證其安全性。