---------------------------------------------------------------
本文题干阅读时间推荐10min
----------------------------------------------------------------
如果各位童鞋想讨论以下相关内容,欢迎关注公众号, 联系我:
-
OSCP相关技术(备考中)
-
CISSP备考经验(已通过认证)
-
CCSK(云安全)(已通过认证)
-
ISO/IEC 27001 Foundation(已通过认证)
----------------------------------------------------------------
一、加密算法概述
1、加密与解密
加密是以某种特定的算法,改变原有的数据信息,使得未授权的用户即使获得了加密后的数据,但因不知解密的方法(确切的说是不知道密钥),仍然无法了解其信息内容。而解密则是加密的逆过程。
2、明文和密文
我们称尚未加密的数据为明文,通过固定算法加密后的数据为密文。
3、加密的密钥
密钥是一种参数,它是在明文转换为密文或密文转换为明文时算法的输入参数。可以理解成密码的钥匙。
4、对称与非对称
常见的数字加密方式分为两类:对称加密 和 非对称加密。
对称加密
对称加密算法中,数据发送方将明文和密钥一起经过特殊加密算法处理成密文后,将它发送出去。接收方收到密文后,若想解读原文,则需要使用加密用到的相同密钥及相同算法的逆算法对密文进行解密,才能使其恢复成原文。
它的最大优势是加/解密速度快,适用于大数据量进行加密,缺点是密钥管理困难,最典型的问题就是如何同步这个密钥,同步过程如果在公网上,不进行加密是可以抓包拿到的,那么这里就遇到了要对密钥加密的问题。
常见的对称加密算法有 AES、DES、Blowfish 等等。
对称加密的核心是只有一把密钥。
非对称加密
非对称加密算法中,有两个密钥:公钥和私钥。它们是一对,如果用公钥进行加密,只有用对应的私钥才能解密;如果用私钥进行加密,只有用对应的公钥才能解密。
非对称加密算法实现机密信息的交换过程为:甲方生成一对密钥并将其中一个作为公钥向其他方公开;得到该公钥的乙方使用该密钥对机密信息进行加密后发送给甲方;甲方再用自己的另一个专用密钥对加密后的信息进行解密。
最有名的非对称加密算法当属 RSA 了,本文将对 RSA 算法的加/解密过程进行详细剖析。
非对称加密拥有两把密钥。
二、对称加密-DES算法流程
什么DES算法
DES(Data Encryption Standard)是一种对称密钥加密算法,广泛应用于数据保护和安全通信领域。
DES算法的基本原理
DES使用64位的密钥对64位的数据块进行加密和解密操作。它采用分组密码的方式,将明文分成64位的数据块,并通过一系列复杂的置换、替代和混淆运算来实现加密过程。DES算法具有良好的扩散性和混淆性,使得密文与密钥之间的关联极为复杂,从而提供较高的安全性。
密钥生成
DES使用56位的密钥,但实际上只有48位用于加密运算,其余8位用于奇偶校验。密钥生成算法将输入的64位密钥进行置换、左移和压缩等操作,生成16个48位的子密钥,用于每轮加密运算。
加密过程
DES加密过程包括16轮迭代,每轮都使用不同的子密钥进行数据变换。首先,明文经过初始置换(IP)得到置换后的数据块,然后将数据块分成左右两部分。接下来,通过轮函数对右半部分进行扩展、异或运算和S盒替代,然后经过置换运算得到新的右半部分。最后,交换左右两部分的位置,并进行下一轮迭代。经过16轮迭代后,得到最终的置换数据块。
解密过程
DES的解密过程与加密过程相似,只是使用的子密钥顺序相反。解密过程将密文作为输入,使用子密钥的逆序进行加密运算,得到原始的明文数据块。
三、DES加密算法的优点和缺点
优点:优点:简单,容易实现,运行效率高。
缺点:分组比较短、密码生命周期短、容易被暴力解密,密钥难管理,不好分配(密钥交换问题--如何安全的将密钥传输给解密方),无签名认证功能。
四、DES与3DES
3DES(即Triple DES)是DES向AES过渡的加密算法,它使用3条56位的密钥对数据进行三次加密。是DES的一个更安全的变形。它以DES为基本模块,通过组合分组方法设计出分组加密算法。比起最初的DES,3DES更为安全。
该方法使用两个密钥,执行三次DES算法,加密的过程是加密-解密-加密,解密的过程是解密-加密-解密。
3DES加密过程为:C=Ek3(Dk2(Ek1(P)))
3DES解密过程为:P=Dk1(EK2(Dk3(C)))
采用两个密钥进行三重加密的好处有:
①两个密钥合起来有效密钥长度有112bit,可以满足商业应用的需要,若采用总长为168bit的三个密钥,会产生不必要的开销。
②加密时采用加密-解密-加密,而不是加密-加密-加密的形式,这样有效的实现了与现有DES系统的向后兼容问题。因为当K1=K2时,三重DES的效果就和原来的DES一样,有助于逐渐推广三重DES。
③三重DES具有足够的安全性,还没有关于攻破3DES的报道。
五、S-盒代替(功能表S盒)
DES的S盒(S-box)是DES加密算法中的一个重要组成部分,用于将输入的6位比特块映射为4位比特输出。DES中共有8个S盒,通常称为S1至S8盒。每个S盒都是一个4x16的置换表,用于代替加密过程中的某些比特。
S-盒1:
14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7,
0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8,
4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0,
15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13,
S-盒2:
15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10,
3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5,
0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15,
13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9,
S-盒计算过程:
以S-盒8为例子
假设S-盒8的输入(即异或函数的第43~18位)为110011。
第1位和最后一位组合形成了11(二进制),对应S-盒8的第3行。中间的4位组成形成1001(二进制),对应S-盒8的第9列。所以对应S-盒8第3行第9列值是12。则S-盒输出是1100(二进制)。
注解:
第1位和最后一位组合形成了11(二进制) ==》 转换成十进制为:3
中间的4位组成形成1001(二进制) ==》 转换成十进制为:9
二进制转换十进制计算方法:
1001==》1*2^3+0*2^2+0*2^1+1*2^0=8+0+0+1=9
点赞&“在看”,年薪百万 =》
原文始发于微信公众号(从放弃到入门):计算机网络安全基础概论-密码学-DES
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论