DES讲解
DES加密算法整体来说分为两部分:明文部分、密钥部分,两部分分别处理后合并,继续执行某些操作行成密文。它的安全性取决于密钥的不可预测性,而不是加密方法的保密性。那么其实每一步的操作都是公开的,只是密钥无法被破解,之所以无法破解是因为密钥是8字节的,即64位二进制,破解起来很困难。
由于一系列操作都是以8字节为基础,所以明文输入应该是为8字节,那显然,明文只能输8字节这并不合理,所以要给明文分组,每8字节一组,不足8字节就补0。(这里其实存在一个问题,补0固然可以加密,但是解密时,如何判断0是补的0还是明文本身就有的0,所以补足位的选取很重要,有兴趣的可以一起探讨。)
这里设置了3个循环变量i,j,k。j代表了明文的组数,i代码明文循环的次数(即明文的组数),k代表密钥循环的次数。
明文主要涉及的模块有:初始置换,扩展变换等。
密钥主要涉及的模块有:置换选择1,循环移位等,置换选择2。
明文和密文通过乘积变换组合在一起,其中包括S盒操作,置换运算P,以及初始逆置换,由此便可以形成密文。
其中很重要的一个模块是S盒,S盒主要提供分组密码算法所必须的混淆作用,是许多密码算法的唯一非线性部件,它的密码强度决定了整个密码算法的安全强度。
附件为DES的流程图,具体的操作步骤及方法请看附件。流程图可能有一些不标准的地方,欢迎指正。
DES的解密即以上的逆过程。
相关推荐
Ghero 2020-05-25
yuanran0 2020-05-09
田有朋 2020-05-08
sunjunior 2020-04-22
东哥笔记 2020-02-18
seekerhit 2019-12-24
数据与算法之美 2015-03-09
xianzhe 2019-09-07
蜗牛Running 2016-09-29
zhuyonge 2013-11-21
走在IT的路上 2013-11-07
风吹夏天 2012-08-28
wangdan0 2019-06-30
Broadview 2019-06-28
tuonioooo 2015-03-09
wangxiaohua 2010-09-21
LOADING 2012-02-09
lancecrazy 2018-10-28