分组密码:DES密码原理详解

目录

1.  DES概述

2.  DES原理

2.1 子密钥的产生

2.2 初始化置换IP

2.3 Feistel密码结构和16轮的轮函数F变换

2.4 逆初始置换


1.  DES概述

  • DES(Data Encryption Standard)数据加密标准
  • DES是分组密码的典型代表,也是第一个被公布出来的加密标准算法
  • 属于对称运算,综合使用了置换(P)、代替(S)和代数(异或)等多种密码技术。
  • 典型的Feistel密码结构,一共进行16轮迭代,现代大多数对称分组密码也是基于Feistel密码结构。

2.  DES原理

首先了解下整体过程:

  1. 由 64 位密钥生成 16 个 48 位的子密钥 k_{i} ;
  2. 对 64 位的明文初始化置换 IP,分成左右各半,即 L_{i} 和 R_{i} ;
  3. 在 16 个子密钥控制下按 Feistel密码结构 进行  16 轮迭代 (每轮迭代包括 E扩展、异或、S盒代换、P置换 );
  4. 交换左右  32 位得到  R_{16}L_{16},再进行 逆初始置换  IP^{-1}

下面介绍详细过程:

2.1 子密钥的产生

  • 对于 64 位的密钥,其有效密钥长度为 56 位(另外8位用于校验),先经过置换选择1后分成左右各 28 位。然后再经过 16 次的循环左移置换选择2,产生 16 个 48 位的子密钥。具体如下:

(1)置换选择1

  • 64 位的密钥首先去掉 8 位奇偶校验位,剩余56位有效密钥长度。如图,最后一列为奇偶校验位。

  • 然后根据下图的置换表PC-1,将密钥打乱重排,再分成左右各半,左边 28 位记为 C_{0},右边 28 位记为D_{0}
  • 例如,PC-1第1位是57,即把原密钥的第57位排在第1位。
  • 注:PC-1表是给定的,共有 8行7列。可以发现,PC-1表中不含奇偶校验位,所以在置换的同时就去掉奇偶校验位,而不用真的单独去掉后再打乱。
  • 即置换选择1后从 64 位变成 58 位

(2)循环移位

  • 根据下图的循环移位表决定C_{0}D_{0}左移的位数。
  • 如:1111000 0110011 0010101 0101111
  • 循环左移1位后:1110000 1100110 0101010 1011111
  • 注:迭代次数不同,移位次数不同。
迭代次数12345678910111213141516
移位次数1122222212222221

(3)置换选择2

  • 合并循环左移后的左右两部分,然后根据下图的置换表PC-2,将得到的C_{1}D_{1}打乱重排,并从 56 位变成 48 位,得到第1个子密钥k_{1}
  • 注:置换表PC-1是 8行6列。
  • 例如,PC-2第1位是14,即把循环移位后的第14位排在第1位。

(4)循环迭代

  • 之后重复循环移位置换选择2,再迭代15次。
  • 即总共需要迭代16次,最终得到16个子密钥。

2.2 初始化置换IP

  • 将明文用二进制位表示,按 64 位为单位进行分组,将 64 位明文根据初始置换表进行位与位的置换,置换后分为左右各半,即L_{0}R_{0},各 32 位。
  • 注:初始置换表为 8×8 的表格,是固定的。
  • 例如,初始置换表第1位是58,即把明文的第58位排在第1位。

2.3 Feistel密码结构和16轮的轮函数F变换

Feistel密码结构:

加密:

  • L_{i}=R_{i-1}
  • R_{i}=L_{i-1}\bigoplus F(R_{i},k_{i})

解密:

  • R_{i-1}=L_{i}
  • L_{i-1}=R_{i}\bigoplus F(R_{i-1},k_{i})

其中,F轮函数是DES的核心,数据处理宽度为 32 位,具体包括E扩展、异或操作、S盒代换、P置换:

(1)E扩展

  • 按照扩展置换表,对 R_{i} 进行E扩展得到 E(R_{i})由 32 位扩展到 48 位
  • 例,扩展置换表第1位是32表示该位置的值等于未扩展R中第32位。

(2)异或操作

  • 对 E(R_{i}) 和 k_{i+1} 进行异或操作,即 E(R_{i+1})=E(R_{i})\bigoplus k_{i+1},i=0,1,...,15

(3)S盒代换

  • S盒是DES唯一的非线性变换,是DES安全的关键,总共有8个S盒。每个S盒有6个输入,4个输出,是一种非线性的压缩变换。
  • 将48位的 E(R_{i}) 分为8组,每组6位,分别输入8个S盒,每个S盒产生4位输出,共输出32位。其中,每组的第1位和最后1位组成的二进制位行号中间4位组成的二进制位列号
  • 例,E(R_{0})\bigoplus k_{1} 前8位为011000,则S1盒输入为011000,其中00是行,1100是列,S1盒行为0、列为12的交叉处的值为5,即输出为二进制0101。
  • 后面位数也由相应的S盒处理,处理完成后由 48 位变回 32 位

(4)P置换

  • 按照置换运算P,将8个S盒代换后的值进行置换运算,把数据打乱。

按照上面步骤,进行 16 轮的轮函数F变换。进行 16 轮相同迭代后, 交换左右 32 比特得到R_{16}L_{16}

2.4 逆初始置换IP^{-1}

  • 按照逆初始置换表进行置换得到64位的密文,这是DES加密的最后一步。

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Hitsz现代密码学作业主要包括以下几个方面的内容。首先,作业会涉及对于对称加密算法和公钥加密算法的理解和应用。对于对称加密算法,作业可能会要求我们理解其工作原理和常用的对称加密算法,如AES、DES等,并能够进行加密和解密的实践操作。同时,还可能需要我们能够了解对称加密算法的优缺点和安全性。 其次,作业可能会要求我们学习和理解公钥加密算法的原理与应用。作业可能会要求我们学习RSA算法,理解其加密和解密的过程,并能够实践操作。同时,我们还需要了解公钥加密算法的安全性和应用场景,以及与对称加密算法的比较。 此外,作业可能会要求我们学习和应用密码学中的哈希函数和消息认证码。我们需要学习哈希函数的原理和常用的哈希算法,如MD5、SHA-1等,并能够进行哈希函数的实践运用。同时,我们还需要了解消息认证码的概念和应用,以及其在保障数据完整性和身份认证方面的作用。 最后,作业还可能会要求我们学习和理解密码学中的数字签名和密钥交换协议。我们需要了解数字签名的原理和应用,以及其在保证消息的真实性和不可抵赖性方面的作用。同时,我们还需要学习密钥交换协议的原理和常见的协议,如Diffie-Hellman密钥交换协议等,并能够进行实践操作。 综上所述,Hitsz现代密码学作业涉及对对称加密算法、公钥加密算法、哈希函数、消息认证码、数字签名以及密钥交换协议的学习和应用。我们需要理解它们的原理与应用场景,并能够进行实践操作。这些作业将帮助我们全面了解和掌握现代密码学的基本概念和技术,为今后的密码学研究和应用奠定基础。 ### 回答2: hitsz现代密码学作业是哈尔滨信息科技大学计算机学院中的一门课程作业。该课程主要介绍现代密码学的基本理论和应用,通过学习和掌握密码学的基本概念、加密算法和安全协议等,培养学生在信息安全领域的专业知识和能力。 在这门作业中,学生需要完成一系列与现代密码学相关的任务。这些任务可能包括选择适当的加密算法来实现安全的数据传输、设计密码学方案来保护敏感数据的机密性、进行密码攻击与防御的实验等。学生需要运用所学的知识和技能,结合实际情境和问题,提出解决方案并完成相应的实验和报告。 通过这门作业,学生可以加深对现代密码学基本原理的理解,提高密码学算法的设计和应用能力。同时,这门作业也能帮助学生培养解决实际安全问题的思维和能力,增强对信息安全的认识和重视程度。 总之,hitsz现代密码学作业是一门具有实践性和综合性的课程作业,通过完成这些作业任务,学生将能够在实际应用中熟练运用密码学的知识和技术,为信息安全提供有效的保护。 ### 回答3: HITSZ现代密码学作业涉及到现代密码学领域的一些基本概念和技术。在作业中,我们需要掌握对称加密算法和公钥密码学的基本原理和应用。对称加密算法包括DES、AES等,公钥密码学包括RSA、椭圆曲线密码学等。作业内容主要包括以下几个方面: 1. 对称加密算法的原理和应用:需要了解DES和AES算法的工作原理,以及它们在实际应用中的使用场景和安全性评估。 2. 公钥密码学的基本原理和应用:需要掌握RSA算法的原理,了解数字签名、密钥交换和身份认证等应用。同时,需要理解椭圆曲线密码学的基本概念和应用场景。 3. 密码学中的安全性分析:需要了解密码学中的攻击模型和常见的攻击手段,如密码分析、密钥泄露等。同时,需要学习密码学的安全性分析方法,如信息论和计算复杂性理论。 4. 实际应用案例研究:通过学习现代密码学的实际应用案例,如SSL/TLS安全协议,可理解密码学在互联网传输安全中的重要性和应用场景。 在完成作业的过程中,我们可以通过查阅相关教材、参考文献以及互联网上的学术资源来加深理解和掌握这些知识。同时,还可以尝试编写一些简单的代码实现,如DES算法的加解密过程,以提升对密码算法的认识。 总之,HITSZ现代密码学作业要求我们深入了解现代密码学的基本知识和技术,以及其在实际应用中的运用。通过完成作业,我们可以加深对密码学的理解,并将其应用于实际场景中,提高信息安全的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值