详解DES加密技术(一)

DES是一个标准的分组密码

知识储备

对称密码

  • 在一个密码体制上,需要有一个发送方和接收方,发送方对明文进行加密得到密文,接收方对密文进行解密得到明文。
  • 在整个过程中有两把钥匙,加密的钥匙控制加密的算法,解密的钥匙控制解密的算法。
  • 对于对称密码有一个特点,加密钥匙和解密钥匙是相等的。使用的是同一把钥匙。在这里插入图片描述

分类

  • 流密码在这里插入图片描述
    • 如果抛开密钥生成算法不谈,单单看下方的过程,很明显,流密码就是使用单纯的异或操作实现的加密和解密。
    • 异或运算有两个重要的性质,叫做归零律和自反律,归零律是指A异或A等于0,自反律是指,A异或0还等于A。所以明文m异或两次密钥之后,还是自身。
    • 逐比特处理就像是水流一样,所以称为流密码。
  • 分组密码在这里插入图片描述
    • 分组密码的要求较多,它对于明文的长度要求为b比特,经过一个密钥K加密之后形成密文也是b比特。
    • 分组密码顾名思义,就是把数据当成一个等长的分组。
    • 分组密码的加/解密运算是:输出块中的每一位是由输入块的每一位和密钥的每一位共同决定。
    • 加密算法中重复地使用代替(替代)和置换(移位)两种基本的加密变换,此即Shannon 1949年发现的隐藏信息的两种技术:混淆和扩散。
    • 混淆(Confusion):就是改变数据块,使得输出位与输入位之间没有明显的统计关系(代替、XOR);
    • 扩散(Diffusion):就是密钥位转移到密文的其它位上(移位)。
    • 分组密码的特点:有良好的扩散性;对插入信息的敏感性,较强的适应性;差错的扩散和传播。
  • 代换(代替、替换)技术
    • 将明文字母替换成其他字母、数字或者符号的方法。
  • 置换(换位)技术
    • 保持明文的所有字母不变,只是打乱明文字母的位置和次序。
  • 一次一密
    • Vernam代数密码,加解密算法都是模2加。

1.代替与换位

  • 代替Substitution
    • 在输入一组数据时,输出另一组数据。在这里插入图片描述
    • 输入和输出的长度未必一样长(压缩,等长,扩展)
    • 输入和输出未必一一对应(一对多,多对一)。
    • 操作:算术/逻辑运算,非线性映射
    • 由于计算机字长和计算能力的限制,代替所处理的数据长度很有限,所以在处理长明文块时,需要多个代替模块。
    • 各个代替模块之间没有关联。

 

  • 换位(置换)Permutation
    • 交换各个数据位之间的位置。
    • 交换各个子代替,使得混淆和扩散效果在更大的范围内实施。

 

  • 代替和换位使得数据变得复杂,难以反向推测。如图:在这里插入图片描述
    • 如果只看第一行的话,他就是一个简单的S盒,每一个盒子输入的3比特信息,比会影响到另一个盒子的3比特信息流。
    • 但是经历过一次P置换之后,每个盒子之间就会产生影响了。这仅仅时一次S和P,在真实的加密过程中会经历多次的S和P操作,使得数据变得更加复杂,很难进行反向推测。

 

  • 通过对包含密钥的数据进行代替和换位,可以获得复杂的数据,可以当作密钥流,加密明文数据。

Feistel网络结构

  • 一次加密
    • 加密
    • 解密在这里插入图片描述
    • 过程和传统密码加密的思想基本一致,明文经过钥匙异或之后形成密文。当然钥匙是经过代替和换位产生。
  • 多次加密
    • 如图:在这里插入图片描述
    • 明文经过多次一次一密,多次混淆和扩散之后,形成的密文将会变得更加安全。
       
  • 标准的Feistel结构在这里插入图片描述
    • 该结构会把数据分成左右两个部分,左块L0不变,而右块R0与一个钥匙直接放到F函数里面与进行一些复杂运算。
    • 接着让L0与R0进行异或(XOR)运算。第一次的运算结果作为第二次的右块R,而第一次的R块R0作为第二次的左块L0。
    • 依次类推,得到Ln,Rn。
    • 由图知,前面的n-1次的运算都要用到交叉,但是最后一次运算并没有使用交叉。而最后一轮不交换可以使得加密和解密公用一个流程。

 

  • 扩展的Feistel结构
  • 更加复杂,如图在这里插入图片描述
    • 这种结构在现今也在大量应用。暂不了解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旺旺的碎冰冰~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值