现代密码学---DES算法

目录

一、DES算法简介

二、DES算法操作过程

DES算法框架图

DES算法流程

三、DES算法流程具体介绍

        1、初始置换与逆初始置换

        2、DES的轮函数

        轮函数结构

        函数f(R,K)的计算过程

        选择拓展运算E

        选择压缩运算S

        P盒置换

        3、DES的子密钥的生成


一、DES算法简介
  • DES算法为密码体制中的对称密码体制。DES是一种对称密码,即其加密过程和解密过程使用相同的密钥,与几乎所有现代分组加密一样。
  • 在DES算法中由于大部分原始数据较长,首先需要将数据切成64位的明文分组,所以DES算法也叫做分组加密算法。
  • 在DES算法中使用的密钥位64位,其中有效的密钥长度其实只有56位(分成8块每块长为8位,每隔8位设置左后一位为校验位,采用奇偶校验法)。
  • 在DES算法中加密的明文较长,需要对DES加密进行16轮的函数循环迭代。
二、DES算法操作过程

        算法主要过程:初始置换IP,16轮迭代的乘积变换,逆初始置换IP^{-1},16个子密钥产生器

  • DES算法框架图

  • DES算法流程

三、DES算法流程具体介绍
        1、初始置换与逆初始置换
  • 初始置换IP:将64bit明文的位置进行置换,得到一个乱序的64bit明文组。
  • 逆初始置换:将16轮迭代后给出的64bit组进行置换,得出输出的密文组。读取时按行读取。
  • 其中两次置换主要目的是为了打乱输入x的ASCII码字划分关系。

        图中对于初始置换和逆初始置换就是在打乱每一个bit的位置,实现输入x的ASCII码字划分关系的目的。

        2、DES的轮函数

        将DES算法流程中一次轮函数截取分析。

        该过程就是对于输入(x,y)首先会将x与f(k,y)进行异或运算,之后再将结果与y交换位置。其中f函数是一个规定好的规则,k是每一轮的子密钥。

        在每一轮运算都是在重复该步骤。

        轮函数结构

        具体的轮函数结构如下

        函数f(R,K)的计算过程

        选择拓展运算E

        其中的E就是在进行拓展/置换,该规则就是将32bit的数据以一个8行4列的矩阵形式向左向右各拓展一位,其中推展的数值向左拓展时是最左边一列都减一,向右拓展是最右一列都加一。最终形式如下图。加粗部分就是拓展的数据。

        之后与48bit的密钥进行异或运算。运算完成之后会进行选择压缩运算S。

        选择压缩运算S

        由f(R,K)函数图可知有8个S盒,则每个S盒完成的工作就是将6bit数据压缩为4bit,之后得到32bit数据。其中具体的S盒运算输入输出关系如下图所示。

        假设输入的数据为x5~x0也就是101100,首先将首位2bit数据合在一起为10,转换为十进制为2,也就是对应的第2行,中间4bit数据是0110十进制对应6,也就是对应的第6列,最终在第2行第6列找到数据2,该数据为十进制表示,转换为二进制为0010,则最终的输出为0010。

        因此输入的101100,6bit数据也就输出为0010,4bit数据。

        P盒置换

        

        P盒置换:上一个S盒的输出32bit作为P盒的输入,按照置换表中的顺序进行置换。

        此过程就完成了f(R,K)函数的运算过程,这就是轮函数的左半部分过程介绍。

        3、DES的子密钥的生成

        在介绍轮函数时,仅仅提到了每一轮都需要用到一个子密钥,下面将介绍每一轮子密钥的生成方式。

        开始的密钥是64bit的密钥,需要进行一次置换选择1,去掉8bit的校验位,将剩下的56bit数据按照置换表进行排列。

        排列完成之后分成左右28bit两部分,并开始循环左移,其中循环左移的过程每一次的左移位数是按照一个表来的,上表中会规定第几轮子密钥生成会左移多少位。

        左移完成之后会合并两边然后去掉固定位置的比特,再进行置换选择2,置换选择2也是按照一个置换选择表进行重新排列。完成之后最终得到了48bit的数据。

        

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值