文章目录

  • 简介
  • IDEA简介
  • IDEA原理
  • IDEA子密钥的生成

简介

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/

最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!

欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!

密码学系列之:IDEA相关推荐

  1. 密码学系列之:SAFER

    简介 分组密码是一个非常优秀的加密结构,很多常用加的加密算法使用的都是分组算法,比如DES.SAFER表示的也是一种分组密码算法.一起来看看吧. SAFER简介 SAFER的全称是Secure And ...

  2. 密码学系列(一):密码行业、政策介绍

    密码学系列(一):密码行业.政策介绍 管理部门 <密码法>(19年) <密码法>具体章节 第3章 商用密码 第4章 法律责任 相关零散知识 管理部门 国家密码管理局--商密办- ...

  3. 密码学系列 - 椭圆曲线签名的基本原理

    ECDSA 涉及到三个重要的概念 第一个是私钥,私钥是一个只有我自己知道的数字,我可以用私钥去生成签名,比特币使用的私钥是一个256 bit 的整数. 第二个是公钥,公钥是跟私钥配对的一个数,是根据私 ...

  4. 密码学系列 - 椭圆曲线 ECC - ED25519

    密码学 - 椭圆曲线 ECC ED25519 椭圆曲线是一系列满足如下方程的点: y^2 = x^3 + ax + b 并且 4a^3 + 27b^2 != 0 特性 封闭性:因为椭圆曲线上的点相加, ...

  5. 密码学系列 - 国密算法

    国密即国家密码局认定的国产密码算法.主要有SM1,SM2,SM3,SM4,SM9.密钥长度和分组长度均为128位. 国密算法种类 SM1 为对称加密.其加密强度与AES相当.该算法不公开,调用该算法时 ...

  6. 密码学系列 - 棱镜门

    prime256v1 (即 secp256r1) NSA对SECP256r1曲线安置了后门陷阱, 被美国情报人员破解可能性非常大 2013年发生了震惊世界的棱镜门事件.这一年,前中情局(CIA)职员爱 ...

  7. 密码学系列 - 默克尔路径

    默克尔树 (merkle tree) 默克尔树,也称为哈希二叉树,是一种用于有效地汇总和验证大型数据集完整性的数据结构. 默克尔路径 可用于证明在一个很大字节数的区块中上千笔交易中的具体某一笔交易的存 ...

  8. 密码学系列(三):区块链+密码学基础知识

    密码学系列(三):区块链+密码学基础知识 一.区块链的概念 区块链概述 区块链的特点 区块链变化 市场现状 二.区块链政策与标准 区块链的特点与发展 三.区块链的定义 区块链的价值 四.区块链开发语言 ...

  9. 密码学系列 - 国密算法SM1/SSF33

    国密分组密码 SM1分组密码和SSF33分组密码均为国密分组密码标标准,SM1和SSF33的密钥长度和分组长度均为128比特. 目前这两个分组密码标准的算法尚未公开,其实现仅可以通过硬件芯片的方式获得 ...

  10. 密码学系列(二):专有名词缩写【持更】

    密码学系列(二):遇到的一些专有名词缩写[持更] 密码学相关 密码产品所需 密码学相关 CRL:证书吊销列表 在线证书状态协议(OCSP):一个互联网协议,用于获取符合X.509标准的数字证书的状态. ...

最新文章

  1. 如何通过远程修改另一台电脑注册表
  2. 分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility (续2篇-模板导出综合示例)...
  3. micro-job 0.0.2 发布,分布式任务调度框架
  4. 主机主浏览服务器宣告的运作原理机制
  5. 权威认可!PolarDB-X高分通过中国信通院《分布式事务数据库稳定性专项评测》
  6. 在ubuntu系统中删除软件的三种最佳方法
  7. php把excel转化为csv,php xls如何转csv
  8. 深入分析Java Web技术内幕 修订版 pdf
  9. 21天Jenkins打卡Day17-查看Jenkins服务器上的目录结构
  10. paip.python连接mysql最佳实践o4
  11. Android 打开WIFI并快速获取WIFI的信息
  12. html5 获取剪切板内容,H5剪切板功能
  13. IO字节流读取文本中文乱码
  14. H5开发使用 “navigationStyle“: “custom“,但是最外层的title标题显示不正确
  15. 电子器件系列十四:缓冲器
  16. 脚下,梦開始的地方——七月总结
  17. 关于车--标致206相关问题解析及选车建议(zt)
  18. 公路货运、安全如何风险感知?
  19. Python_获取某年某月的天数
  20. Python 绘制3D宇宙飞船

热门文章

  1. Keras-数据准备
  2. wx:for-item循环数组失败
  3. Miller-Rabin素数测试
  4. 数据库服务器(SQL SERVER)的安全设置
  5. GetModuleHandle,AfxGetInstanceHandle使用区别
  6. Charles+安卓模拟器 抓取https请求
  7. RabbitMQ负载均衡(2)——HAProxy
  8. 为什么你不应该接受有 race 的代码
  9. GRTN赋能淘系内容业务的演进路线及未来规划
  10. 【LiveVideoStack线上分享】FFmpeg深度学习模块架构与代码实践