前言

一直困扰着我关于数据加密这一块,24号晚上用了接近3个小时去完成一项任务,本以为立马能解决,但是为了保证数据的安全性,我们开始去对数据进行加密,然后接下来3个小时专门去研究加密这一块,然而用着用着却发现了一点问题,于是下班回来到写这篇博客到深夜才正式解决,请往下看。

3DES数据加密

由于数据需要获取出来并显示于是只能使用对称加密,关于加密这一块网上对于.NET Framework的实现数不胜数,好像对于.NET Core这一块比较少,于是就开始进行研究。这个时候就利用DES或者Triple DES也称作3DES,全名为Triple Data Encryption Algorithm (TDEA or Triple DEA),也就是对称密码块密码,3DES对数据的每个数据块利用算法进行3次加密,最初开始设计该算法时,位数只有56位也就是7个字节,设计者认为已经足够用,但是随着计算机的高速发展,暴露破解已经使得该算法呈现的问题日益突出,而3DES算法的出现提供了一种比较简单的方法来增加密钥的大小从而防止攻击,而不是重新设计一套全新的分组密码算法。

3DES加密算法命名

定义算法最早期的标准被放在ANS X9.52中并在1998年发布并将其描述为三重数据加密算法(简称TDEA),在ANSI X3.92中定义了该算法的三个操作但是并没有使用DES或者3DES,直到1999年发布的FIPS PUB 46-3在正式命名三重数据加密算法,大概在2004到2005的样子才正式引入三重数据加密算法,之前一直以TDEA存在着,也就是说TDEA就是3DES,但是没有使用3DES作为标准术语。

3DES算法逻辑

三重数据加密算法使用包括密钥K1,密钥K2和密钥约束K3,每一个包含56位不包含奇偶校验,算法实现公式如下:

ciphertext = EK3(DK2(EK1(plaintext)))

密文 = EK3(DK2(EK1(平文)))

用K1对数据进行加密,用K2对数据进行解密,用K3对数据再加密。

解密公式为如下:

plaintext = DK1(EK2