数据加密标准与替换算法——DES加密介绍

一、介绍块加密

1.每次加密一块明文,属于对称加密,即分组加密。

        可以理解为一种特殊的替代密码,但每次替代的是一大块。‘

        明文空间时需要用这种复杂的加密算法来加解密明密文。但是明文可能过长或者过短,所以一般需要两个辅助:padding和分组加密模式。

2.基本策略

  • 混淆confusion:将密文与密钥之间的统计关系复杂化        

                一般使用复杂的非线性变化,常见变化有s盒,乘法。

  • 扩散diffusion:简单来说就是一位明文会影响多为密文

                常见方法有线性变换,置换和循环移位

3.加密结构:主要使用迭代

        一般包括三个部分:密钥置换,轮加密函数,轮解密函数

        轮函数:DES的feistel network和AES的SPN(substitution-permutation network)

二、DES算法概述

1.迭代算法

使用56位密码对64位长分组进行加密的密码。作为一种对称加密,des在加密和解密过程中使用的密钥相同。同时它也是一种迭代算法,每个分组都进行了16轮相同的操作,每一轮使用的子密钥都由主密钥推导而来。

2、feistel网络 

feistel网络每轮只加密(解密)输入位的一半,即输入位的左半部分。每轮重复一个过程,可表示为

L_{i}=R_{i-1}

R_{i}=L_{i-1}\bigoplus f(R-{i-1},k_{i})

三、内部结构

1.初始置换和逆初始置换

(1)初始置换

                原理图

初衷大概是以字节形式排列明文、密文和位,以方便8位数据总线的数据读取。

IP置换表

(2)逆初始IP置换

2、f函数

f函数在DES中扮演重要角色,输出作为XOR掩码,用来加密左半部分输入位

(1)E盒扩充

原理图

4位一组的数比如W_{5},W_{6},W_{7},W_{8}扩展为6位输出A_{7},A_{8},A_{9},A_{10},A_{11},A_{12},其中A_{7}=W_{4},A_{8\sim 11}=W_{5\sim 8},A_{12}=W_{9}

E盒表

(2)S盒替换

将6位输入位映射为4位

原理

第0、5位组成一个2位二进制数字后转化位十进制作为行,第1-4位组成一个4位的二进制数字转换为十进制后作为列,例如上图可得出第3行第2列,根据这个坐标在对应的s盒内查出对应的十进制数字,转换位4位的二进制数字。

S-盒

S盒在f函数中引入了非线性S(a)\bigoplus S(b)\neq S(a\bigoplus b)

    (3)f函数中的p置换

四、密码编排

        密码编排从原始的56位密钥中得到16个轮密钥K_{i},其中每个轮密钥都是48位。但是DES的密钥通常是64位的,但是每个第8位都作为前面7位的奇校验位,这8个奇校验位都不是真的密码位,也没有增加密码的安全性,所以可以说DES的密码是56位的。

初始密钥置换PC-1

得到的56位密钥将分为C_{0},D_{0}两个部分

        上图中,长度均为28位的左右两部分将周期性的向左移动一位或者两位(循环移位),移动的位数取决于轮数

i=1,2,9,16时,向左移动1位

i!=1,2,9,16时,向左移动两位

**移动位置总数位4*2+1*12=28,所以有C_{0}=C_{16},D_{0}=D_{16},这对解密密钥编排十分有用。

为了得到48位的子密钥,需要在进行一次PC-2的置换

PC-2

PC-2只至换了48位,忽略了其中8位·

五、结语

下次整理DES的解密和替代加密

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值