DES原理、使用3DES替换DES(3DES加解密速度只有DES的1/3,为什么不使用2DES?)

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: DES原理、使用3DES替换DES(3DES加解密速度只有DES的1/3,为什么不使用2DES?)

一、DES原理

image.png

二、为什么用3DES而不用2DES
  大体过程:明文P,密文C,加密过程E,解密D;

  如果用暴力破解,时间复杂度是256,对于对称密钥加密,要增加安全性,最好是增加密钥的长度,于是采用多次加密的方法,但是为何采用3DES,却没有2DES?

如果使用2DES:

加密:P- - - E过程(k1)- - - 得到中间值X- - - E过程(k2)- - - C;
解密:C- - - D过程(k2)- - -   X   - - - D过程(k1)- - -P;

  这个原理,看似有效的密钥长度为56*2,其实不然。如果敌人获得的明文P和密文C,那么只要:

    x1=E(k1,P);
    x2=D(k2,C);

  使用暴力破解,使x1=x2,即获得中间值x,这样造成密钥k1,k2泄漏,而这种方法需要时间复杂度是2*256 = 257,跟DES比差不太多。

但是使用3DES:

加密:P- - - E过程(k1)- - - D过程(k2)- - - E过程(k3)- - - C;
解密:C - - - D过程(k3) - - - E过程(k2) - - - D过程(k1)- - - P;

这样即使获得P、C,破解k1,k2,k3也十分困难。所以采用3DES!

目录
打赏
0
0
0
0
22
分享
相关文章
Golang 里的 AES、DES、3DES 加解密,支持 ECB、CBC 等多种模式组合
Openssl encryption 是 OpenSSL 库的功能包装,支持对称加密算法(AES、DES、3DES)的 ECB 和 CBC 模式。提供简便的 Go 语言接口,用于加密和解密操作。安装命令:`go get -u github.com/forgoer/openssl`。示例代码展示了 AES-ECB、AES-CBC 等模式的使用方法,支持 PKCS7 填充。
91 23
加密解密(3DES)DES的加强版
加密解密(3DES)DES的加强版
|
11月前
|
安卓逆向 -- 自吐算法(3DES和AES)
安卓逆向 -- 自吐算法(3DES和AES)
85 1
|
11月前
|
安卓逆向 -- 算法基础(DES与3DES)
安卓逆向 -- 算法基础(DES与3DES)
72 0
分布式服务器框架之Servers.Core库实现 DES对称加密算法;SHA1信息摘要算法;MD5信息摘要算法
通信双方(通信主体)同时掌握一个钥匙,加解密都由这一个钥匙完成。通信双方通信前共同拟定一个密钥,不向第三方公开,发送前加密和接受后解密都由此密钥完成。即钥匙如果泄露,将暴露自己的全部信息。
Go语言实现对称加密算法AES、DES、3DES和非对称加密算法RSA
目录 1. 对称加密算法 1.1 特点 1.2 优缺点 1.3 go语言实现对称加密算法 1.3.1 AES 1.3.2 DES 1.3.3 DES (CBC模式) 2. 非对称加密算法 2.1 特点 2.2 优缺点 2.3 go语言实现非对称加密算法 2.3.1 RSA 最后
547 0
Go语言实现对称加密算法AES、DES、3DES和非对称加密算法RSA
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等