在计算机安全领域,特别是密码学中,通常使用人名作主人公,许多人名表示不同的角色,人名与角色的对应关系如表3-5所示。
表3-5 人名与角色的对应关系
【任务描述】
现在Alice要给Bob发送一份文件,文件内容非常机密。Alice不希望文件在发送的过程中因被人截取而泄密。这时需要对文件进行加密,当然除了加密外,还需要让Bob能够解密。就像Alice对文件上了锁,为了让Bob能够解开,则Bob必须有钥匙对文件解锁。在信息安全或密码学中,将这种“钥匙”称为密钥。
Bob和Alice事先已经约定,将使用DES算法,并且已经约定好使用的密钥。于是Alice使用密钥对文件进行加密,并发送给Bob。Bob只要使用相同的密钥对文件进行解密即可,如图3-29所示。
图3-29 使用对称密码技术
上网搜索DES算法,并将其应用在电子商务活动的文件加解密中。
【任务分析】
本任务涉及DES密钥管理,包括密钥的产生、分配、存储、校验和DES明文的处理。
【知识准备】
1.对称密码体制
实现古典密码有两种基本方法——代替和置换,它们是构造现代对称分组密码的核心方式。
比较常见的对称密码算法有DES、3DES、RC4、AES、DEA、IDEA等。在众多对称密码算法中,影响最大的是DES算法。DES是Data Encryption Standard(数据加密标准)的缩写,它是由IBM公司研制的一种对称密码算法,美国国家标准局于1977年把它作为非机要部门使用的数据加密标准。
2.DES算法
DES密码是采用传统替代与置换的加密方法的分组密码系统。
1)DES算法的划分
DES算法由对密钥的处理和对明文数据的处理两部分组成。
(1)对密钥的处理。把64位密钥(实际用的是56位,去掉了8个奇偶校验位)分散成16个4位的子密钥。
(2)对明文数据的处理。加密一组明文,每个子密钥按照顺序(1~16)以一系列的位操作施加于数据上,每个子密钥一次,一共重复16次。每次迭代称为一轮,最终生成密文。
2)DES算法的入口参数
DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或解密的数据;Mode为DES算法的工作方式,有两种:加密或解密。
3)DES算法的特点
(1)每次加密的密文长度为64位(8个字节);
(2)当相同的明文使用相同的密钥和初始向量时,CBC模式总是产生相同的密文;
(3)密文块依赖以前的操作结果,所以不能进行重新排列;
(4)可以使用不同的初始化向量避免相同的明文产生相同的密文,可在一定程度上抵抗字典攻击;
(5)当一个错误发生以后,当前和以后的密文都会被影响。
4)DES加密过程
明文的处理经过了三个阶段,如图3-30所示。
图3-30 64 bit明文处理过程
(1)第一阶段:初始置换。64位明文经过初始置换被重新排列。
(2)第二阶段:16次迭代变换。进行16轮相同函数的作用,每轮作用都有置换和替代。最后一轮迭代的输出为64位,它是输入明文和密钥的函数。其左半部分和右半部分互换产生预输出。
(3)第三阶段:逆(初始)置换。它是初始置换的逆置换,记为IP-1。在对16次迭代的结果(R16,L16)再使用逆置换IP-1后得到的结果,即可作为DES算法的64位密文Y输出,即Y=IP-1(R16,L16)。
图3-30所示的左半部分给出了明文处理过程,右半部分给出了使用密钥的过程。密钥经过初始置换(置换选择1)后,经过循环左移和置换(置换选择2)分别得到子密钥K i并将其用作每一轮的迭代。每轮的置换函数都一样,但是密钥的循环移位使子密钥互不相同。
子密钥的产生如图3-31所示。
图3-31 子密钥的产生
DES算法输入64位的密钥,密钥各比特分别标记为1~64。DES算法流程如图3-32所示。
(www.xing528.com)
图3-32 DES算法流程
从DES算法流程可以看出,整个DES加密过程需要16个轮密钥(K1,K2,K3,K4,…,K16)参与运算,才能完整地将明文输入块变换成密文输出块。
5)DES解密过程
图3-33 输出64位明文
DES解密过程与其加密过程基本相同。两者的不同之处在于解密时子密钥Ki的使用顺序与加密时相反,如果子密钥为K1,K2,…,K16,那么解密时子密钥的使用顺序为K16,K15,…,K1,即使用DES解密算法进行解密时,将以64位密文作为输入,第1次迭代运算使用子密钥K16,第2次迭代运算使用子密钥K15,……,第16次迭代使用子密钥K1,其他运算与加密算法相同。这样,最后输出的是64位明文,如图3-33所示。
异或运算有性质:(A⊕B)⊕C=A⊕(B⊕C);D⊕D=0;E⊕0=E
因此有LD1=RE15和RD1=LE15,所以解密过程的第一轮输出为LE15‖RE15,正是加密过程中第16轮输入左、右32位互换值,对于其他轮也是如此,所以DES解密算法是DES加密算法的逆过程,如图3-34所示。
图3-34 DES解密算法是DES加密算法的逆过程
注:i表示迭代次数;⊕表示按位异或;f为加密函数。
【任务实施】
1.了解对称密码体制
1)对称密码体制的概念
对称密码体制采用对称密码算法,其加解密运算使用的是同样的密钥,信息的发送者和信息的接收者在进行信息的传输与处理时,必须共同持有该密钥(称为对称密钥),如图3-35所示。
图3-35 两个通信者需要共享的密钥
2)对称密码算法带来的问题
对称密码算法的运算速度快,但是存在难以解决的弱点,主要有以下3个:
(1)密钥管理问题。通信双方必须统一密钥,如何才能把密钥安全送到收信方是对称密码体制的突出问题,如图3-36所示。
图3-36 密钥的保密问题
如果每对通信者都需要一对不同的密钥,那么n个用户通信就需要n!对密钥。两两分别用一个密钥时,则n个用户需要C2n=n(n-1)/2个密钥,当使用量增大时,密钥空间急剧增大,出现了密钥管理量剧增、管理难度大的问题。例如,当n=100时,共需要4 995个密钥;当n=5 000时,密钥会增加到12 497 500个。
(2)密钥传输问题。因为需要安全共享密钥,所以对协商密钥的信道的安全性的要求比正常的传送消息的信道的安全性要高。
(3)数字签名问题。传统密码算法无法满足抗抵赖的需求;现代密码技术应用到电子商务活动中时,也出现了如何满足抗抵赖的需求的问题,对称密码算法无法解决该问题。
2.使用CAP 4软件进行DES加解密
1)使用CAP 4软件进行DES加密
打开CAP 4软件,在“Plaintext”文本框内输入需要加密的字符,本任务输入“beijing”,然后选择“Ciphers”→“DES”选项,弹出“Data Encryption Stardard DES”对话框,在密钥框中输入8位密钥,本任务中输入“12345678”,单击“Encipher”按钮,如图3-37所示。
图3-37 进行DES加密
加密成功后,在“Ciphertext”框出现二进制的密文。
2)使用CAP 4软件进行DES解密
将密文复制到“Ciphertext”文本框中,选择“Ciphers”→“DES”选项,输入正确的数值产生密钥,单击“Decipher”按钮进行解密,结果返回明文。
请尝试使用不同的密钥,观察返回的明文。
3.对称密码技术的密钥管理和保护
密钥的分配和更换过程需要对用户透明,但是对称密码的密钥不能公开,所以其密钥管理需要重点防范,遵循“密钥永远不可以以明文的形式出现在密码装置之外”的原则,密码装置是一种保密工具,既可以是硬件,也可以是软件。
思政元素8
思政元素9
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。