前言
原文链接:https://iopscience.iop.org/article/10.1088/1757-899X/453/1/012018/pdf
文章的主要目的在于解决公钥密码和对称密码各自的缺陷,用一种同时包含两种秘钥的混合加密算法解决各自的缺点,即对称密码的秘钥必要放在一条安全的通道传送,这是对称秘钥的缺点;非对称秘钥也就是公钥体制的弱点在于较大的明文(没懂作者为什么这样说,难道是明文太大不好加密?)。
1.DES(Data Encryption Standard)
DES是公钥体制的一种分组算法,秘钥长度56位,分组大小64位。一共要经历16个轮加密
1.秘钥生成:DES有内部秘钥和外部密码,外部密码的长度是8字符,被用于初始置换;有16轮加密,所以需要16个内部秘钥。
2.加密:DES的明文是64位一组,而且都会被转换成二进制数。
(1)初始置换
(2)分成L0和R0两组
(3)Literacy(没懂这个是什么意思)
a.扩展队列
b.与内部秘钥异或
c.S盒变化(代换,对于混乱,混乱也就是指要足够复杂)
d.P盒变化(置换,对于扩散,扩展指一个明文的变化对全部密文的影响要大)
(4)逆置换
3.解密:使用相同的算法进行解密,不同点是使用的秘钥顺序不同,也就是相反。
Triple DES:DES现在基本不用了,主要的原因和缺陷是因为秘钥的长度太短了,因此产生了Triple DES,使用三个相互独立的秘钥,但是解密的时间也花费了三倍。
2.EIGamal
具体算法我在之前的文章中介绍过,主要是针对离散对数上的困难问题形成的算法。
3.混合加密
1.产生一组EIGamal的秘钥
2.使用DES的秘钥加密消息
3.用EIGamal公钥加密DES的秘钥
4.用EIGamal私钥解密DES的秘钥
5.使用DES的秘钥解密消息
ps:为了方便理解我改变了顺序
总结
使用EIGamal加密DES的密钥,解决了DES只能在安全通道上传送的弱点,我思考如果直接用EIGamal加密消息,不也能解决这一问题吗?突然想到如果使用EIGamal加密所以明文的计算量远大于只加密DES秘钥,解答了文章开头我的疑惑,这一混合算法确实解决了公钥体制和私钥体制两种体制的弱点。