文档库

最新最全的文档下载
当前位置:文档库 > DES置换密码

DES置换密码

置换密码( Permutation Cipher )

1.置换密码又称为换位密码;

2.置换密码通过改变明文消息各元素的相对位置,但明文消息元素本身的取值或内容形式不变;

3.在前面的替代密码中,则可以认为是保持明文的符号顺序,但是将它们用其它符号来替代;

4.这种密码是把明文中各字符的位置次序重新排列来得到密文的一种密码体制。实现的方法多种多样。直接把明文顺序倒过来,然后排成固定长度的字母组作为密文就是一种最简单的置换密码。

DES概述

1.分组加密算法:明文和密文为64位分组长度

2.对称算法:加密和解密除密钥编排不同外,使用同一算法

3.密钥长度:密钥:k=k1k2…k64 ki = 0,1 (i = 1,2,…64 )

(其中k8,k16,…,k64是奇偶校验位,起作用的仅为56位)

4.密钥可为任意的56位数,但存在弱密钥,容易避开

5.采用混乱和扩散的组合,每个组合先替代后置换,共16轮

6.只使用了标准的算术和逻辑运算,易于实现

DES的描述

1.DES利用56比特长度的密钥K

2.分组长度64比特,密文64比特

3.算法分三个阶段实现:

3.1.对明文X,通过一个固定的初始置换IP得到X0。

X0=IP(X)=L0R0

分为左右两部分

3.2.函数F的16次迭代:LiRi(1<=i<=16)

Li=Ri-1, Ri=Li-1 F(Ri-1, Ki)

其中Ki是长为48位的子密钥。子密钥K1,K2,…,K16是作为密钥K(56位)的函数而计算出的。

3.3.对比特串R16L16使用逆置换IP-1得到密文Y。

Y=IP-1(R16L16)

4.DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES 算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。

DES算法是这样工作的:如Mode为加密,则用Key 去把数据Data进行加密,生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果。在通信网络的两端,双方约定一致的Key,在通信的源点用Key对核心数据进行DES加密,然后以密码形式在公共通信网(如电话网)中传输到通信网络的终点,数据到达目的地后,用同样的Key对密码数据进行解密,便再现了明码形式的核心数据。这样,便保证了核心数据(如PIN、MAC等)在公共通信网中传输的安全性和可靠性。

通过定期在通信网络的源端和目的端同时改用新的Key,便能更进一步提高数据的保密性,这正是现在金融交易网络的流行做法。

DES算法整体示意图

DES置换密码

密钥K计算子密钥:

1.密钥K是长度为64的位串,56位参加子密钥编排。8位是奇偶校验位(为了检错),在密钥编排的计算中,不参加运算。

(1). 给定64位的密钥K,放弃奇偶校验位(8,16,…,64)并根据固定置换PC-1(来排列K中剩下的位。我们写

PC-1(K)=C0D0

其中C0由PC-1(K)的前28位组成;D0由后28位组成。

(2)对1<=i<=16,计算

Ci=LSi(Ci-1)

Di=LSi(Di-1)

LSi表示循环左移2或1个位置,取决于i的的值。i=1,2,9和16 时移1个位置,否则移2位置

2.Ki=PC-2(CiDi), PC-2为固定置

注:一共16轮,每一轮使用K生成的一个子密钥。可算出16个表,第i个表中的元素可对应上第i轮密钥使用K中第几比特!如:

第7轮的表7:K7取K中的比特情况:

DES置换密码

轮密钥编排

DES置换密码

DES中的子密钥的生成

DES置换密码

DES置换密码

3.DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,整个算法的主流程图如下:

其功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,其置换规则IP见下表:

DES置换密码

4.即将输入的第58位换到第一位,第50位换到第2位,...,依此类推,最后一位是原来的第7位。L0、R0则是换位输出后的两部分,L0是输出的左32位,R0 是右32位,例:设置换前的输入值为D1D2D3......D64,则经过初始置换后的结果为:L0=D58D50 (8)

R0=D57D49 (7)

5.经过16次迭代运算后。得到L16、R16,将此作为输入,进行逆置换IP-1 ,即得到密文输出。逆置换正好是初始置的逆运算,例如,第1位经过初始置换后,处于第40位,而通过逆置换,又将第40位换回到第1位,其逆置换规则如下表所示:

DES置换密码

DES置换密码

DES置换密码

DES置换密码

DES置换密码

DES置换密码

乘积变换

选择扩展运算E。将输入的32 bit Ri-1扩展成48 bit的输出,令s表示E原输入数据比特的原下标,则E的输出是将原下标s 0或1(mod 4)的各比特重复一次得到的,即对原第

32, 1, 4, 5, 8, 9, 12, 13, 16, 17, 20, 21, 24, 25, 28, 29各位都重复一次,实现数据扩展。将表中数据按行读出得到48 bit输出。

密钥加密运算。将子密钥产生器输出的48 bit子密钥ki与选择扩展运算E输出的48 bits 数据按位模2相加。

选择压缩运算S。将前面送来的48 bit数据自左至右分成8组,每组为6 bit。而后并行送入8个S一盒,每个S盒为一非线性代

DES置换密码

DES置换密码

DES置换密码

DES置换密码

s盒省略。。。。。。。。

对F函数的说明

1.F(Ri-1, Ki):

2.函数F有两个输入:32的消息A=R(32bits)作第一个输入,48比特的子密钥J=K(48bits)作为第二个输入。产生的输出为长度为32的位串。

(1)对第一个变元A,先利用扩展函数E,扩展成48位E(A)

(2)计算E(A)+J,结果写成8个6位串,B=b1b2b3b4b5b6b7b8

(3)使用8个S盒,每个Sj是一个固定的4 16矩阵,它的元素取0~15的整数。给定长度为6个比特串,如

Bj=b1b2b3b4b5b6

计算Sj(Bj)如下:b1b6两个比特确定了Sj的行数, r(0<=r<=3); 而b2b3b4b5四个比特确定了Sj的列数c(0<=c<=15)。最后Sj(Bj)的值为S-盒矩阵Sj中r行c列的元素(r,c), 得Cj=Sj(Bj)。

(4) 最后,P为固定置换。

DES置换密码

DES置换密码

DES置换密码

至此,我们已将DES算法的基本构成作了介绍,加密过程可归结如下:令IP表示初始置换,KS表示密钥运算,i为迭代次数变量,KEY为64 bit密钥,f为加密函数, 表示逐位模2求和。

PKI的定义

PKI是一个用公钥概念与技术来实施和提供安全服务的普适性基础设施。

PKIX的定义:是一组建立在公开密钥算法基础上的硬件、软件、人员和应用程序的集合,它应具备产生、管理、存储、分发和废止证书的能力。

PKI主要完成功能:

①为用户生成一对密钥(公开密钥,私有密钥),并通过一定的途径分发给用户;

②CA为用户签发数字证书,形成用户的公开密钥信息,并通过一定的途径分发给用户;

③对用户证书的有效性进行验证;

④对用户的数字证书进行管理。这些管理包括有效证书的公布、撤销证书的公布、证书归档等。

DES置换密码

PKI中的证书

1.证书(certificate),有时候简称为cert

2.PKI适用于异构环境中,所以证书的格式在所使用的范围内必须统一

3.证书是一个机构颁发给一个安全个体的证明,所以证书的权威性取决于该机构的权威性

4.一个证书中,最重要的信息是个体名字、个体的公钥、机构的签名、算法和用途

5.签名证书和加密证书分开

6.最常用的证书格式为X.509 v3

DES置换密码