图解密码技术笔记对称密码(共享密钥密码)——用相同的密钥进行加密和解密
Posted nceuaprsf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图解密码技术笔记对称密码(共享密钥密码)——用相同的密钥进行加密和解密相关的知识,希望对你有一定的参考价值。
最基本的6种密码技术总结:
对称密码:
是使用相同的密钥进行加密和解密的技术,用于确保信息的机密性。在对称密码的算法方面,DES和3DES曾被广泛使用,但今后将过度到AES。尽管对称密码能够确保消息的机密性,但需要解决将解密密钥配送给接收者的密钥配送问题
公钥密码:
是一种用不同密钥进行加密和解密的技术,和对称密码一样用于确保消息的机密性。使用最广泛的一种公钥密码算法是RSA,除此之外还有ELGamal和Rabin等算法,以及相关的Diffie-Hellman密钥交换技术。和对称密码相比,公钥密码的速度非常慢,因此一般都会和对称密码一起组成混合密码系统来使用。公钥密码能够解决对称密码中的密码交换问题,但存在在通过中间人攻击被伪装的风险,因此需要对带有数字签名的公钥进行认证
单向散列函数:
是一种将长消息转换为短散列值得技术,用于确保消息的完整性。在单向散列函数的算法方面,128比特的MD5和160比特的SHA-1曾被广泛使用,但今后将逐步使用能够产生长度更长的散列值得算法。单向散列函数可以单独使用,也可以作为消息认证码,数字签名以及伪随机数生成器等技术的技术的组成元素来使用。
信息认证码:
是一种能够识别通信对象发送的信息是否被篡改的认证技术,用于验证消息的完整性,以及对消息进行认证。消息认证码的算法中,最常用的是利用单向散列函数的HMAC。HMAC的构成不依赖于某一种具体的单向散列函数的算法。消息认证码能够对通信对象进行认证,但无法对第三方进行认证。此外,它也无法防止否认。
数字签名:
是一种能够对第三方进行消息认证,并能够防止通信对象做出否认的认证技术。数字签名的算法包括RSA,EIGamal和DSA。公钥基础设施(PKI)中使用的证书,就是对公钥加上认证机构的数字签名所构成的。要验证公钥的数字签名,需要通过某种途径获取认证机构自身的合法公钥。
伪随机数生成器:
是一种能够生成具备不可预测性的比特序列的技术,由密码和单向散列函数等技术构成。伪随机数生成器用于生成密钥和初始化向量等。
对称密码(共享密钥密码)——用相同的密钥进行加密和解密
一次性密码本(one-time pad):绝对不会被破译的密码
加密原理:将明文与一串随机的比特序列进行异或运算
解密原理:解密就是加密的反向运算,用密文和密钥进行异或运算
一次性密码本无法被破解的原因:无法判断正确的明文
一次性密码本没有被使用的原因:
1.密钥的配送:发送方需要把密钥发送给接收方,接收方才能解密,一次性密钥的长度和明文长度相同,如果如办法把密钥安全发送出去,为什么不直接用这种方法发送明文
2.密钥的保存:一次性密码本是指只是将“保存明文”问题转化成“保存和明文等长的密钥”而已
3.密钥的重用:密码本不能重用过去用过的随机比特序列,否则如果密钥泄露之前所有的通信都将会被解密
4.密钥的同步:明文很长时密钥也会一样长,如果密钥在同步时出现一点差错,所有将无法解密
5.密钥的生成:一次性密码本中,需要生成大量的随机数,这里的随机数不是计算机程序生成的伪随机数,而必须是无重现性的真正随机数
DES(data encryption standard)
DES的密钥长度是64比特,但每隔7比特会设置一个用于错误检验的比特,因此实际上密钥长度是56比特,目前DES以不安全
DES是以64比特的明文为一个单位进行加密的
DES的采用的基本结构为Feistel网络,DES是一种16轮循环的Feistel网络
Feistel网络的性质:
轮数可以任意增加
加密时无论使用任何函数作为轮函数都可以正确解密
加密和解密可以用完全相同的结构来实现
Feiste网络一轮的结构如下图:
三重DES(triple-DES)
3DES是为了增加DES强度,将DES重复3次得到的,3DES实际的密钥长度是56*3=168比特,3DES处理速度不高,安全性也存在一些问题
3DES的加密过程是加密-解密-加密,DES的加密和解密过程只是改变了子密钥的顺序,而实际进行的处理是相同的,这样做的目的是让3DES能兼容DES
3DES的解密过程和加密相反,是以密钥3,密钥2,密钥1的顺序执行解密-加密-解密
如果密钥1和密钥3使用相同的密钥,密钥2使用不同的密钥,这种3DES称为DES-EDE2
如果密钥1,密钥2,密钥3使用不同的密钥,这种3DES称为DES-EDE3
AES(advances encryption standard)
AES是通过竞争来实现的标准化,最终rijindael算法被选为AES算法
rijindael算法的分组长度是128比特,密钥长度可以是128比特,192比特,256比特,AES安全,快速能够在各种平台上工作
rijindael算法没有使用feistel网络,而是使用SPN结构,rijindael算法也是由多轮构成的
以上是关于图解密码技术笔记对称密码(共享密钥密码)——用相同的密钥进行加密和解密的主要内容,如果未能解决你的问题,请参考以下文章