- 密码学教程
- 密码学 - 首页
- 密码学 - 起源
- 密码学 - 历史
- 密码学 - 原理
- 密码学 - 应用
- 密码学 - 优点与缺点
- 密码学 - 现代
- 密码学 - 传统密码
- 密码学 - 加密需求
- 密码学 - 双重强度加密
- 密码系统
- 密码系统
- 密码系统 - 组成部分
- 密码系统攻击
- 密码系统 - 彩虹表攻击
- 密码系统 - 字典攻击
- 密码系统 - 暴力攻击
- 密码系统 - 密码分析技术
- 密码学类型
- 密码系统 - 类型
- 公钥加密
- 现代对称密钥加密
- 密码学哈希函数
- 密钥管理
- 密码系统 - 密钥生成
- 密码系统 - 密钥存储
- 密码系统 - 密钥分发
- 密码系统 - 密钥撤销
- 分组密码
- 密码系统 - 流密码
- 密码学 - 分组密码
- 密码学 - 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,但它对于实际使用仍然安全。