密码学系列之:IDEA
密码学系列之:IDEA
[toc]
简介
IDEA的全称是International Data Encryption Algorithm,也叫做国际加密算法,注意,这里不是我们常用的那个开发工具IDEA。
今天给大家详细介绍一下IDEA。
IDEA简介
IDEA中文叫做国际加密算法,最开始也被叫做Improved Proposed Encryption Standard (IPES)。它是一种对称密钥加密算法,最初是由James Massey 和 Xuejia Lai 在1991年提出的。
其目标是替代DES算法。IDEA是对早期的 PES 的一次修订。IDEA是OpenPGP标准的可选算法。
IDEA的专利在2012年已经过期了,现在是可以免费使用的。
IDEA原理
IDEA加密块长度是64bits,密钥长度是128bits,是由八轮变换和半轮输出转换组合而成的。加密和解密的过程是类似的。我们看下IDEA的基本流程图:
上面图中, 蓝色圆圈是XOR异或操作,绿色框是加法模数216。红色的点是乘模216 + 1,如果输入都是0(0x0000)那么将会被转换为216,如果输入是216,那么会被转换为0(0x0000)。
八轮操作之后,就是下面的半轮输出转换了,输出转换如下所示(中间两个值的交换抵消了最后一轮结束时的交换,因此没有净交换):
IDEA子密钥的生成
IDEA使用的是 Lai–Massey结构。 每轮使用6个16位子密钥,最后的半轮使用4个子密钥,共8.5回合52个子密钥。
前面8个子密钥直接从密钥中提取,因为密钥的长度是128bits,刚好可以分成8个16bits的自密钥。其中第一轮的K1为密钥的16位。
通过在每8组之间将主密钥向左移动25位,从而创建更多的8组子密钥。
本文已收录于 http://www.flydean.com/idea/
最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!
欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!
- 我爱Java系列之---【使用idea快速创建springboot项目教程】
- Intellij IDEA 2016学习系列之(二)mybatis-generator自动生成
- IDEA和PyCharm 等系列产品激活激活方法和激活码
- [IDE][IDEA小技巧系列]Intellij IDEA快捷键
- IntelliJ IDEA插件系列:五大装逼神器
- spring系列之1--IDEA Spring mvc maven 工程
- IDEA jar包生产与导入(纯小白看不懂打我系列)
- InteliJ IDEA设置系列(二):Eclipse Code Formatter插件设置和使用
- hadoop入门系列之九--使用IDEA开发Spark Application及Local与打包测试讲解
- 使用IDEA开发Srping系列之一:xml文件示例
- pycharm激活(JetBrains IDEA 系列产品通用xx方法)
- springMVC笔记系列(17 特别篇的开始)——springMVC要点回顾及idea开发环境搭建
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink实战基础0016--IDEA搭建非maven管理的集成开发环境001
- Intellij IDEA设置系列(四):各种乱码解决方案
- IntelliJ IDEA插件系列:Lombok的安装
- Java应用系列:命令行生成jar包(附IJ Idea导出jar方法)
- IDEA 激活 (Jetbrains系列所有软件均可激活)
- 【密码学系列】|| 轻松搞定公钥加密算法。
- Clion/IDEA/Pycharm激活码有效期到2019年(jetbrains系列软件应该都可以使用)
- Spring Boot系列一----使用idea快速构建Spring boot项目