- 密碼學教程
- 密碼學 - 首頁
- 密碼學 - 起源
- 密碼學 - 歷史
- 密碼學 - 原理
- 密碼學 - 應用
- 密碼學 - 優點與缺點
- 密碼學 - 現代
- 密碼學 - 傳統密碼
- 密碼學 - 加密需求
- 密碼學 - 雙重強度加密
- 密碼系統
- 密碼系統
- 密碼系統 - 組成部分
- 密碼系統攻擊
- 密碼系統 - 彩虹表攻擊
- 密碼系統 - 字典攻擊
- 密碼系統 - 暴力攻擊
- 密碼系統 - 密碼分析技術
- 密碼學型別
- 密碼系統 - 型別
- 公鑰加密
- 現代對稱金鑰加密
- 密碼學雜湊函式
- 金鑰管理
- 密碼系統 - 金鑰生成
- 密碼系統 - 金鑰儲存
- 密碼系統 - 金鑰分發
- 密碼系統 - 金鑰撤銷
- 分組密碼
- 密碼系統 - 流密碼
- 密碼學 - 分組密碼
- 密碼學 - 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 非對稱
- 密碼學有用資源
- 密碼學 - 快速指南
- 密碼學 - 討論
IDEA - 國際資料加密演算法
IDEA代表國際資料加密演算法。IDEA是由James Massey和Xuejia Lai開發的一種分組密碼,最初於1991年制定。它具有128位的金鑰長度,並使用64位的塊進行操作。
它由一組八個相同的變換組成,這些變換基於按位異或、加法和乘法模組。它基於對稱密碼,並使用相對較弱的金鑰設計技術,因此該演算法的安全性遠低於DES。由於其複雜的開發過程,IDEA未能獲得廣泛的普及。
IDEA不同於其他分組密碼演算法,它正在被瑞士公司Ascom研究。然而,他們的獨特之處在於他們允許免費的非商業用途,這使得IDEA成為著名的訊息字元加密中使用的分組密碼演算法。
IDEA的工作原理?
IDEA是一種分組密碼,它對64位明文和128位金鑰進行操作。與DES一樣,IDEA是可逆的,這意味著相同的技術可用於加密和解密。IDEA需要擴散和混淆來進行加密。
64位明文被分成四個16位的部分(P1-P4)。這些是第一輪的輸入。共有八輪這樣的操作。金鑰包含128位。在每個迴圈中,從原始金鑰生成六個子金鑰,每個子金鑰包含16位。
第一輪可以使用金鑰K1到K6,第二輪可以使用金鑰K7到K12,最後一輪可以使用金鑰K13到K18。最後一步需要一個輸出修改,需要四個子金鑰(K49到K52)。
最終輸出是輸出變換階段的結果。塊C1-C4連線起來生成最終結果。
IDEA中的輪次
IDEA共有八輪。每一輪都包括對四個資料塊和六個金鑰的一系列操作。第一輪可以包含金鑰K1到K6,第二輪可以包含金鑰K7到K12,最後一輪可以包含金鑰K13到K18。最後階段涉及一個輸出修改,需要四個子金鑰(K49到K52)。
最終輸出是輸出變換階段的結果。最終輸出是透過連線塊C1-C4形成的。每一輪有14個步驟,如下所示:
IDEA中一輪的細節
Step1 : Multiply * P1 and K1 Step2 : Add * P2and K2 Step3 : Add * P3and K3 Step4 : Multiply * P4 and K4 Step5 : XOR the results of step1 and step3 Step6 : XOR the results of step2 and step4 Step7 : Multiply * the results of step5 with K5 Step8 : Add * the results of step6 and step7 Step9 : Multiply * the results of step8 with K6 Step10 : Add * the results of step7 and step9 Step11 : XOR the results of step1 and step9 Step12 : XOR the results of step3 and step9 Step13 : XOR the results of step2 and step10 Step14 : XOR the results of step4 and step10
在每個迴圈中的下一步中,“加法*”和“乘法*”不是基本的加法和乘法,而是模216(模65536)加法和模216+1(模65537)乘法。輸入和輸出都是無符號的16位整數。
普通的加法會得到一個17位的數字。它只能使用16位空間用於round2輸出。
因此,它可以將這個數字(十進位制為130753)減少到一個16位的數值。它可以取這個數模65536。130753模65536得到65217,其二進位制表示為11111111011000001,是一個很好的16位整數。
輸入塊為P1-P4,子金鑰為K1-K6,此步驟的輸出為R1-R4(而不是C1-C4,因為這不是最終的密文)。這是一箇中間輸出,將在後續步驟以及輸出變換階段處理。
IDEA中使用的操作
IDEA的操作包括:
- IDEA使用按位異或,表示為⊕
- 模216(模65536)整數加法,使用無符號16位整數作為輸入和輸出。
- 此操作稱為⊕。
- 模216+1(模65537)整數乘法,輸入和輸出都是無符號的16位整數。全零塊表示216。此操作稱為⊗。
一輪的子金鑰生成
- 在第一輪中,使用金鑰的第1-96位。第97-128位保持未使用。它們被分配到第二輪。
- 在第二輪中,首先使用第97-128位,進行25位的迴圈左移,然後使用新的第26-89位。第90-128位和第1-25位保持未使用。
- 在第三輪中,再次使用未使用的第90-128位和第1-25位,然後進行25位的迴圈左移,並使用第51-82位。第83-128位和第1-50位保持未使用。
- 在第四輪中,使用第83-128位和第1-50位。
- 在第五輪中,發生25位的迴圈左移,使用第76-128位和第1-43位。第44-75位保持未使用。
- 在第六輪中,使用第五輪中未使用的位,並進行25位的迴圈左移,留下第37-100位未使用。
- 在第七輪中,首先使用第六輪中未使用的位,第37-100位,然後進行25位的迴圈左移到第126-128位和第1-29位。第30-125位保持未使用。
- 使用第七輪中未使用的位,第30-125位,金鑰被停用。
輸出變換
這是一個一次性操作。它發生在第八輪結束時。因此,一個64位的數值被分成四個子塊(例如R1到R4),每個子塊都有自己的子金鑰。
解密
解密類似於加密,但是它反轉輪金鑰和奇數輪的子金鑰的順序。因此,K49-K52的逆反恢復了相應密碼學集合操作中子金鑰K1-K4的值,而每組的K5和K6應該由K47和K48恢復以進行此密碼學操作中的解密。
IDEA的特性
以下特性與IDEA的密碼強度有關:
- 分組長度 − 分組長度應防止統計分析。然而,開發有效加密演算法的複雜性似乎隨著分組大小呈指數增長。
- 金鑰強度 − 金鑰長度應足夠長,以避免窮舉金鑰搜尋。IDEA 使用 128 位金鑰長度,在未來相當長一段時間內在這個方面似乎都是安全的。
- 混淆 − 密文應以複雜且有效的方式依賴於明文和金鑰。目標是使確定密文統計與明文統計之間關係變得更加困難。IDEA 透過隨後討論的三個不同的操作來實現此目的。這與主要基於 XOR 運算和小型非線性 S 盒的 DES 形成對比。
- 擴散 − 每個明文位都應影響每個密文位,就像每個金鑰位都應影響每個密文位一樣。單個明文位在多個密文位上的分散模糊了明文的統計結構。IDEA 在這方面非常有效。
IDEA 的安全性
IDEA 加密方法被認為對某些型別的攻擊(例如差分密碼分析)非常強大。直到 2007 年,沒有人成功發現其設計中的弱點。即使是當時已知的最佳攻擊也只能破解簡化版(6 輪)的 IDEA,而完整版使用 8.5 輪。
受人尊敬的密碼學家布魯斯·施奈爾 (Bruce Schneier) 在 1996 年稱讚 IDEA 是當時最好、最安全的加密方法。然而,到 1999 年,他停止推薦它,因為開發出了更新、更快的演算法,在 IDEA 中發現了一些弱點,並且存在專利問題。
2011 年,一種名為“中間相遇”的方法被用來破解完整的 8.5 輪 IDEA 加密。然後,在 2012 年,另一種名為“窄雙向群”的攻擊被用來稍微削弱 IDEA,但它對於實際使用仍然安全。