密码学应用-对称加密算法DES的应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

密码学应用-对称加密算法DES的应用

实验虚拟主机用户密码如下:

H-basiclinux--1主机:

用户:root 密码:123456

第一步、进入basiclinux 实验机,开始实验

第二步、基本加密

1) 看明文文件a.txt # cat a.txt

2) 执行#openssl des3 -pass pass:"123" -in a.txt -out a.txt.des3

注:其中加密算法是des3,密钥是123,明文文件是a.txt, 密文文件是a.txt.des3 加密结果在a.txt.des3中。

3) 查看a.txt.des3 的内容#cat a.txt.des3

第三步、基本解密

执行#openssl enc -d -des3 -pass pass:"123" -in a.txt.des3 -out b.txt

第四步、3des算法的初始值

除密钥,明文文件外,3des 算法需要salt,key和iv值。通过以下命令可以获得

从上述操作可以获得des3 加密的三个初始值:salt,key 和iv。

第五步、每次加密3des 加密的初始值是不同的

执行多次#openssl enc -P -des3 -pass pass:123 -in a.txt

由于key 是由salt + pass 生成的,尽管pass 都相同,但key 都是不同的,

第五步、缺省的加密过称是使用salt 的,加盐法的最大特色是增加加密强度,它是一种动态方法。经过加盐处理可以做到,即使用同样的明文、同样的用户密码每次加密得到的密文都不一样,密码、明文、密文没有固定的对应关系这样当然不好分析了。下面我们使用没

有盐的加密函数 openssl enc -P -des3 -pass pass:123 -in a.txt -nosalt

-out a.txt.des 多执行几次

我们可以看出,没有加盐的加密每次key 是一样的

第六步、密钥长度认识

[openssl enc -P -des -pass pass:123 -in a.txt - nosalt -out a.txt.des]

Des 加密的密钥长度是64位

我们发现key为16位的16进制数,每位对应2进制4位,des是64位加密算法。

同时iv 为64位

第七步、3des 的密钥长度,执行命

令 openssl enc -p -des3 -pass pass:123 -in a.txt -nosalt -out a.txt.des

从实验可以看出,3des 的密钥长度也是128位的

第八步、从以上2步可以看出,不管是64位密钥的des 算法,还是128位的3des 算法,IV都是64位的。iv的作用主要是用于产生密文的第一个block,以使最终生成的密文产生差异(明文相同的情况下),使密码攻击变得更为困难。

第九步、使用des-cbc 模式进行文件加密试验

[openssl des-cbc -e -in a.txt -out a.txt.descbc]

上述命令在实验过程中需要输入密码。

第十步、des-cbc 加密需要的初始值[openssl des-cbc -P -e -in a.txt -out a.txt.descbc]

从本试验可看出,des-cbc 也是 64位密钥。

注: des-cbc 密文分组链接方式。

加密步骤如下:

1. 首先将数据按照8个字节一组进行分组得到D1D

2......Dn(若数据不是8的整数倍,用指定的PADDING数据补位)

2. 第一组数据D1与初始化向量I异或后的结果进行DES加密得到第一组密文C1(初始化向量I为全零)

3. 第二组数据D2与第一组的加密结果C1异或以后的结果进行DES加密,得到第二组密文C2

4. 之后的数据以此类推,得到Cn

5. 按顺序连为即为加密结果

第十一步、实验结束,关闭所有虚拟机。

相关文档
最新文档