在IDEA 加密和解密过程中,明文和密文是分成 64 比特的块来处理的,但密钥宽度是 128 比特,加解密是依赖于下面的三种代数群的运算,每个代数群都是 16 比特数的运算,其中包括:

两个16 比特子块的按位异或 (XOR) 运算.

模加运算,两个整数相加后,对 216 取模,即忽略*高位进位的加法.

模乘运算,两个数求积后,对费马数 p=216 +1取模.

由于上面三种运算的任意两个运算间不满足分配律和结合律,使输入之间实现了较复杂的组合运算,图 3.1 给出了IDEA 算法的加密过程,在 8 轮变换之后,紧接着是一个输出变换.它们级联起来完成一次完整的加密,算法的解密过程和加密过程相同,只是参与运算的子密钥块小同,这个特性也被称为加密和解密的相似性,从图 3.1 可看出 IDEA算法包括 34 次16 位模乘和模加, 48 次异或运算。

如图3.1 所示, 64位的明文被分为 4 个16 比特的子块,四个明文的子模块被 52 个16 比特的密钥转换为 4 个16 比特的密文子块,每轮变换使用 6 个密钥子块,第 r( r=1,…,8)轮使用的密钥为 Z1 (R), … ,Z 6(R) ,若将输出置换作为*后一轮,它用四个密钥,标记为 Z1 (9), … ,Z 4(9) 用于加密和解密的 52个子密钥是由用户提供的 128 位密钥产生的,加密的各轮密钥是由原始密钥向左依次作 25 比特的循环移位后抽取得到的,解密密钥是由对应的加密密钥经模逆运算后产生的,假设 Ki(r) 表示解时第 r轮的第i个密钥,解密密钥和加密密钥具体关系如下:

由于解密密钥产生的复杂性, IDEA 的加密速度快于解密。

在每一轮的核心中,包含有两个模乘模块和两个模加模块,这种结构被称为乘加(MA) 结构,即图3.1 中虚线标注的部分,它是 IDEA 实现中的关键非线性构件,研究表明8轮迭代后能达到雪崩性的扩散和混淆,因而它能抵抗差分分析。

超时代手机视频加密转载 www.360drm.com

idea java 代码混淆加密_IDEA加密算法相关推荐

  1. idea java 代码混淆加密_使用 IntelliJ IDEA 开发一般 Java 应用程序时配置 Allatori 进行代码混淆...

    使用 IntelliJ IDEA 开发一般 Java 应用程序时通过 Allatori 进行代码混淆非常容易配置,下面总结一下本人经验,介绍一下配置方法. 首先在 IDEA 的 Module 所在硬盘 ...

  2. java代码混淆加密_Java代码混淆和加密--Jocky(转)

    1.1 什么是Jocky? 我们知道,Java是一种跨平台的编程语言,其源码(.java文件)被编译成与平台无关的字节码(.class文件),然后在运行期动态链接. 这样,编译后的类文件中将包含有符号 ...

  3. Java代码混淆和加密--Jocky

    原文地址为: Java代码混淆和加密--Jocky 1.1 什么是Jocky? 我们知道,Java是一种跨平台的编程语言,其源码(.java文件)被编译成与平台无关的字节码(.class文件),然后在 ...

  4. Java培训分享5个常用Java代码混淆器

    对于Java程序员来说,如果辛辛苦苦写的代码被人摽窃走,将是一件非常恼火的事情.如何保护自己的代码呢,可以通过逆向工程反编译得到Java程序的源代码,这种反编译工具之一就是JAD,尽可能给反编译人员制 ...

  5. 前端JavaScript代码混淆加密原理介绍

    因为JavaScript大都是运行在浏览器端,这就导致任何人都可以直接对网站的代码进行查看,如果代码没有进行任何处理就会导致直接暴露源码,他人便可轻而易举的复制你的劳动成果,但是由于没有纯粹的加密方案 ...

  6. java代码混淆器proguard使用大法3种

    ProGuard注意事项 1.反射调用类或者方法,可能失败 2.对外接口的类和方法,不要混淆 3.嵌套类 4.native方法 5.枚举类 https://www.guardsquare.com/en ...

  7. android加密墙,Android代码混淆加密配置(Proguard文件解析)

    Android代码混淆加密配置(Proguard文件解析) Android代码混淆加密配置(Proguard文件解析) 为了防止自己的APP被轻易反编译,我们需要对APK进行混淆,或者特殊加密处理.可 ...

  8. 安卓逆向_18 --- APK保护策略【Java代码混淆、资源混淆、签名校验】

    Java 代码混淆介绍:https://www.bilibili.com/video/BV1UE411A7rW?p=60 Android 反编译利器 jadx:GitHub上直接下载:https:// ...

  9. Java代码混淆工具ProGuard

    目录 Java代码混淆工具ProGuard 简介 描述 作用的环境 功能 工作原理 下载 使用时注意事项 版本问题 JDK位数问题 Java的字节码验证问题 关于使用类似于Hibernate的对象关系 ...

最新文章

  1. 百度造车和RoboTaxi利好自动驾驶?不,利好茅台
  2. mysql建表的auto_increment_koa2+koa+mysql快速搭建nodejs服务器
  3. python连接kafka-python连接kafka生产者,消费者脚本
  4. nosql的数据服务_使用NoSQL实现实体服务–第1部分:概述
  5. C++(STL):06---数值的极值(numeric_limits类)
  6. layui框架使用总结
  7. JMeter数据库操作详解
  8. Linux系统里存在两个剪切板
  9. 极客大学架构师训练营 系统架构 消息队列 负载均衡 数据库备份 第10课 听课总结
  10. STM32CAN波特率简易计算
  11. springboot调用so文件
  12. 生活小常识,哪些药物不能混合用?
  13. Oblog 2.52导出日志最新漏洞
  14. Unity中Transform和rotation相关小知识点
  15. 笔记本安装固态硬盘ssd教程
  16. 2020年8月4日王者服务器维修,2020年8月4日小鸡正确的答案
  17. Maxtang大唐英特尔12代J6412无风扇双网口迷你主机真实评测
  18. MarkdownPad的livepreview预览无效,显示this view has crashed
  19. 人类实体瘤临床细胞状态和生态系统图谱(EcoTpyer)
  20. C语言编程编制职工档案管理程序,C语言 编写一个职工档案程序.doc

热门文章

  1. 计算机专业有必要进实验室吗,本科生有必要进实验室吗? 看看学姐的经验
  2. 高通手机基带镜像解压¥混合基带制作方法。(解决手机距离感应器失效)
  3. 【MySQL索引】底层实现原理 MyISAM非聚簇索引 vs. InnoDB聚簇索引
  4. java如何开发视频软件_如何快速实现视频截图?很多人都在使用的一款软件
  5. 分布式微能源及储能系统
  6. 无ios开发者账号如何打包自己的ios 版本app(需要有苹果手机或者mac电脑)
  7. 云队友丨阿里彭蕾:我拿什么辅佐马云,提高阿里人的战斗力?
  8. 多旋翼飞行器设计与控制(七)—— 传感器标定和测量模型
  9. matlab参数化翼型,轴流风机机翼型叶片参数化建模方法
  10. 江苏省高二计算机考试知识点总结,江苏省计算机一考试知识点整理.doc