龙空技术网

【技术分享】DES算法详解

星云博创 137

前言:

此时我们对“des算法核心”大体比较着重,看官们都需要知道一些“des算法核心”的相关内容。那么小编同时在网上搜集了一些有关“des算法核心””的相关资讯,希望朋友们能喜欢,你们一起来学习一下吧!

前言:

本期技术分享将与大家以“DES算法详解”为主题,通过剖析其加密、分割压缩、密钥生成等过程,与大家共同探讨如何利用DES加密算法对数据进行加密解密。

(一)术语释义

1. DES(Data Encryption Standard)数据加密标准

DES是由IBM公司研制的一种对称加密算法,美国国家标准局于1977年公布把它作为非机要部门使用的数据加密标准。

DES是一个分组加密算法,就是将明文分组进行加密,每次按顺序取明文的一部分。一个典型的DES以64位为分组,加密解密用算法相同。它的密钥长度为56位,因为每组第8位是用来做奇偶校验,密钥可以是任意56位的数,保密性依赖于密钥。

2. 密钥:8个字节共64位的工作密钥(决定保密性能)。

3. 明文:8个字节共64位的需要被加密的数据。

4. 密文:8个字节共64位的需要被解密的数据。

DES算法属于对称加密算法中的分组加密算法(也称块加密) ,对应着流密码加密形式(流密码即对逐个字节进行加密)。

(二)加密过程

其中K1为48bit的秘钥,每轮循环的key都不一样。

IP:置换

IP -1 :逆置换

图为16轮循环过程

(1)因为k1-16的秘钥均为48位,但是R0为32位,所以首先需要经过E盒的扩展,得到48bit的R0数据。

(2)与48bit的key1进行异或,再经过S盒进行压缩,将48bit的数据压缩为32bit。

(3)经过p盒置换得到值后,再去l0异或。

(三)流程详细剖析

1. 初始置换,表格如下所示。第一个为初始置换表,第二个为逆置换表。

举例:初始置换的第一个数字是58,代表的是把现在数据64bit的第58位换到数据的第一位。

2.轮函数-E盒子扩展,目标将32位的输入扩展为48位的输出,以此和秘钥进行计算。

3.如下图显示,中间为原本的32位,外面两列为新增。

4.举例分析。

(1)原始数据如下显示。

(2)经过扩展后,数据如下显示。

(3)扩展方式如下,扩展的来源和原数据一致。

(4)此时扩展完毕后,再去进行秘钥进行异或。异或后的结果再进行S盒压缩处理,48bit分割为8块,每块6bit。

4.具体分割压缩过程如下图举例所示。

(1)根据行数、列数到下表中对应寻找,结果显示为13。

(2)得到32bit数据后,再经过p盒的计算,得到相同结果。提取目标第16位数据,并前移至第一位。

(3)至此,一轮循环已经完成。得到的结果需要和l0异或结果赋给R1进行16次迭代运算,得到了R16和L16,将两者拼接到一起后再进行逆置换,即可得到最终密文。

(四)密钥生成过程

1. 64位密钥经过PC-1表置换得到56位的密钥。

2.将56 bit数据再分割为两个C1和D1各28bit,并通过下面的移位次数表,循环共16次迭代及按照表格所示进行左移。

3.最终C1和D1将会生成一个新的结果,将其拼接后,再经过下图PC-2置换表的置换,即可得到第一轮的秘钥48bit。

(五)关于校验位的概念

(六)DES算法

(七)关于小星,关于星云博创

星云博创科技有限公司(简称“星云博创”)成立于2016年,是国内新兴的网络安全产品、可信安全管理平台、专业安全服务与解决方案的综合提供商。星云博创设北京为北方总部,广州为南方总部,并于成都、合肥、南昌、贵州、武汉、太原、哈尔滨等多个城市设立分支机构。同时,星云博创为不断完善客户服务体系和应急响应体系,在全国10余个省、市、自治区、直辖市建立三级服务支持中心,7×24小时接受客户需求,及时提供标准一致的安全服务。

作为一家以技术先导的企业,星云博创始终坚持在网络安全、数据安全、态势感知、等级保护、合规性安全管理等领域进行技术创新,利用安全分析、大数据分析、人工智能等技术,对网络空间安全要素、安全风险进行深度挖掘与关联分析,构建了多层次的纵深防御体系,持续推出态势感知平台、静态脱敏系统、终端安全监测系统等一系列优秀的安全产品和行业解决方案,广泛应用于政府、运营商、医疗、教育、电力、能源等多个领域,让风险无所遁形。

星云博创已获得ISO9001、ISO27001、 ISO20000管理体系认证,CMMI5软件成熟度认证,信息系统安全集成服务、信息安全风险评估服务、软件安全开发服务资质的CCRC二级认证,及安全运维服务资质、应急处理服务资质的CCRC三级认证。此外,星云博创还是国家信息安全漏洞库(CNNVD)技术支撑单位、海南省网络安全应急技术支撑单位、广州市应急联动机构支撑单位。

标签: #des算法核心