3DES加密算法原理及实现过程
之前介绍了DES算法的原理和实现过程,现在介绍一下3DES的原理和实现过程。
DES算法的密钥长度为64位(实际有效长度为56位,因为每隔8位中有1位为校验位,使用的是奇偶校验法)。
其实3DES就是DES的升级版,所利用的技术原理是一样的。
3DES原理: 其实就是对明文进行三次DES算法运算,主要是通过增加DES密钥的长度来使破解更难。
下图为3DES算法的加密和解密过程:
3DES算法使用的密钥有效长度为112位,虽然进行了三次DES算法运算,但是只使用了两种不同密钥(由于效率问题),一种密钥的有效长度为56位,两种就为56*2=112位,其中密钥K1=K3。
加密过程: 第一次为明文M与密钥K1进行DES 加密 得到的输出M’,第二次为第一次的输出M’与密钥K2进行DES 解密 得到的输出M’’,第三次为第二次的输出M’'与密钥K3进行DES 加密 最终得到密文C;
解密过程: 第一次为密文C与密钥K3进行DES 解密 得到的输出M’’,第二次为第一次的输出M’‘与密钥K2进行DES 加密 得到的输出M’,第三次为第二次的输出M’与密钥K3进行DES 解密 最终得到明文M;
可以实现K1、K2、K3都不相等,这样安全性会更高,但是效率会降低。
如果K1=K2或者K2=K3,那么就相当于使用了一个56位的密钥单DES。
怎么理解这句话呢?
我们知道DES的基本原理是:明文M两次与密钥K进行异或运算就能得出它本身,看下图式子,⊕表示异或运算。
例如:明文M,密钥K
则在加密过程中:密文C=M⊕K;
解密过程中:明文M=C⊕K;
即M=M⊕K⊕K。
那么如果K1=K2,那么不就相当于对明文M进行加密,再进行解密,那得到的不就还是原来的明文M吗?整个过程不就相当于对明文M加密了一次(因为前两次进行了抵消,相当于没有进行操作),3DES解密过程同理。
若K2=K3道理与K1=K2相同,故不做过多解释。
3DES加密算法特点:
**相对于DES来说,由于密钥长度的增加,安全性更高,还可以实现4DES算法等等;
**但是由于以DES为基本设计出来的,效率至少低于DES算法的1/3,所以处理速度并不高。
后面又出现了AES算法,相比于3DES算法,安全性更高,速度更快,后面会介绍。
3DES加密算法原理及实现过程相关推荐
- 3DES加密算法原理及实现
目录 引语 加密 加密算法公式 为什么采用加密-解密-加密的形式 解密 代码实现 注意:3DES是3重DES加解密算法,具体原理同DES,不在赘述. 引语 DES算法是全网公开的,其安全性是依靠秘钥的 ...
- TLS/SSL 工作原理及握手过程详解
目录 前言 TLS/SSL 基础概念 密钥协商过程中存在的问题及解决办法 TLS/SSL 握手过程 前言 本文是对 HTTPS 安全基础.TLS/SSL 工作原理及握手过程的总结.第一部分介绍为 HT ...
- Base64 加密算法原理
Base64 加密算法原理 Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法. 因为在内存中每个字节占8位,即 1 by ...
- 网站渗透测试原理及详细过程
渗透测试实战 site:baidu.com 渗透测试思路 site:baidu.com 带你入门渗透测试的5个项目:https://www.jianshu.com/p/5b82e42ae346 渗透测 ...
- HTTPS 加密算法原理详解
本文讲的是HTTPS 加密算法原理详解, 前言 HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer),其实 HTTPS 并不是一 ...
- RSA加密算法加密与解密过程解析
1.加密算法概述 加密算法根据内容是否可以还原分为可逆加密和非可逆加密. 可逆加密根据其加密解密是否使用的同一个密钥而可以分为对称加密和非对称加密. 所谓对称加密即是指在加密和解密时使用的是同一个密钥 ...
- CA认证原理与演化过程
1.基础知识 这部分内容主要解释一些概念和术语,最好是先理解这部分内容. 1.1.公钥密码体制(public-key cryptography) 公钥密码体制分为三个部分,公钥.私钥.加密解密算法,它 ...
- DES和3DES加密算法C语言实现
DES和3DES加密算法C语言实现 记录DES和3DES加密算法最简洁易懂的C语言源码 主要是要用到CBC这部分的算法,后边也有一个工具可以提供验证,因为网上的工具含有CBC的很少,也方便大家吧 之前 ...
- AES加密算法原理及python实现
AES加密算法原理及python实现 AES对称加密算法 1.Rijndael的设计思想 2.AES的基本结构 3.加密解密的详细结构 4.四种轮操作 1.字节代换(SubBytes) 2.行移位操作 ...
最新文章
- SAPABAP性能优化技巧—使用二分查找(Binary Search)选项
- MySQL 笔记5 -- 多表查询
- 一大批中文(BERT等)预训练模型等你认领!
- 计算机网络网关作用,默认网关的作用
- “开发一个静态 HTML 页面,我要价 18000 美元,有错吗?”
- 关于汇编程序编译的一些详细步骤和要点
- 第二章:Improving On User Commands--22.显示不同时区的时间
- JasperReport报表设计总结
- 阿里开源 GNN 框架 Graph-Learn,实现了各类可复用模型和编程接口!
- Mysql优化系列(1)--Innodb引擎下mysql自身配置优化
- English Learning from research paper
- 实时股票数据接口 (转,以防有用)
- Hi3516A开发--电阻分压阻值计算
- 章节1 概述 - Segger SystemView使用手册(译文)
- w10用的c语言编译软件,STVP STM8 COSMIC C编译器在WIN10上的安装使用
- oracle 索引优化
- android h5 qq登录,Android webview一键登录手机QQ(2018.11)
- C++ 11 内容总结
- 红楼梦人物出场统计python_用Python分析《红楼梦》:见证贾府的兴衰
- TMC4671基于硬件FOC伺服电机控制芯片适应BLDC/PMSM、两相步进、直流有刷、音圈电机
热门文章
- yolov3系列(二)-keras-yolo3训练自己的数据
- 神威.太湖之光和河南最大规模超算集群免费玩?这比赛牛大了!
- 基于51单片机的DS18B20温度计
- Portraiture是什么插件?
- 全款买房划算,还是贷款划算?
- Broadcom BCM4312 无线网卡驱动安装
- oracle job执行chain,全面学习ORACLE Scheduler特性(9)使用Chains之创建CHAIN
- matlab 多通道示波器,多通道高带宽示波器系统及其应用
- 关于如何获得使用[迅播播放器]播放过的电影的问题,及如何删除播放过的文件的解答(一)....
- XYCMS企业建站系统默认数据库、后台拿WebShell