System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种DES加密方法技术_技高网

一种DES加密方法技术

技术编号:41252621 阅读:5 留言:0更新日期:2024-05-10 00:00
本申请公开了一种DES加密方法,涉及数据处理技术领域,包括:获取待加密数据;获取长度为N位的二进制位串,作为密钥串;从生成的密钥串的N1位至N2位提取M1位的密钥串,作为第一DES密钥;从生成的密钥串的N3位至N4位提取M2位的密钥串,作为第二DES密钥;从生成的密钥串的N5位至N6位提取M3位的密钥串,作为第三DES密钥;采用第一DES密钥对待加密数据进行DES算法加密,得到第一阶段加密数据;采用第二DES密钥对第一阶段加密数据进行DES算法解密,得到第二阶段解密数据;采用第三DES密钥对第二阶段解密数据进行DES算法加密,得到最终的加密数据。针对现有技术中存在的DES加密安全性低的问题,本申请通过多层加密和解密,提高了DES加密的安全性。

【技术实现步骤摘要】

本申请涉及数据处理,特别涉及一种des加密方法。


技术介绍

1、随着互联网的发展,数据安全问题日益受到重视。数据在网络传输和终端存储过程中面临被窃取、泄露的风险,如何对重要数据进行可靠加密成为一个关键技术难题。针对各类数据,需要具有较强加密强度的对称加密算法来保护数据安全。des算法由于其算法结构相对简单,56位密钥长度在计算机算力增强的今天显得不足,已经无法满足数据加密的安全需求。如何在保持算法效率的同时,增强des算法的安全强度,是当前的研究热点之一。

2、des算法采用56位密钥,经过16轮feistel网络迭代,对64位分组数据进行加密。由于密钥空间较小,容易通过暴力破解获得密钥。此外,简单的feistel结构以及线性变换也容易受到差分和线性密码分析的攻击。

3、在相关技术中,比如中国专利文献cn117407906a中提供了一种基于des算法的软件开发数据安全加密方法,包括:获取软件开发数据,对数据进行预处理,数据的分块预处理,实现数据的加密等级混合,根据等级混合后的加密数据生成密钥,通过确保密钥生成的安全,进一步确保数据加密的安全,根据密钥进行数据加密,但是该方案密钥的生成仅仅依赖于加密数据的分级结果,容易被预测,因此加密安全性有待进一步提高。


技术实现思路

1、1.要解决的技术问题

2、针对现有技术中存在的des加密安全性低的问题,本申请提供了一种des加密方法,通过多层加密和解密,提高了des加密的安全性。

3、2.技术方案

4、本申请的目的通过以下技术方案实现。

5、本说明书实施例提供一种des加密方法,包括:获取待加密数据;获取长度为n位的二进制位串,作为密钥串;从生成的密钥串的n1位至n2位提取m1位的密钥串,作为第一des密钥;从生成的密钥串的n3位至n4位提取m2位的密钥串,作为第二des密钥;从生成的密钥串的n5位至n6位提取m3位的密钥串,作为第三des密钥;采用第一des密钥对待加密数据进行des算法加密,得到第一阶段加密数据;采用第二des密钥对第一阶段加密数据进行des算法解密,得到第二阶段解密数据;采用第三des密钥对第二阶段解密数据进行des算法加密,得到最终的加密数据。

6、其中,密钥串指用于加密/解密的数据加密算法所需的一串二进制比特数据。该串通常由0和1组成,长度为算法所需的密钥长度。在本申请中,密钥串是des算法所需的二进制密钥。其长度n为56位,相当于des算法的密钥长度。该密钥串将用于后续的des算法加解密计算中。密钥串的获取可通过多种方式实现,如用户输入、随机生成、根据密码及盐值派生等。本方案中是根据用户密码和盐值,通过hmac迭代的方式生成56位的密钥串。密钥串以二进制比特流形式存在。在实际使用时可转换为通用的16进制表示。如56位密钥可表示为14个十六进制字符。

7、具体的,将一个较长的密钥串,分成几段提取出来,作为des算法中不同阶段使用的密钥。分别定义了每段密钥的起始和结束位,以及需要提取的长度。第一密钥从n1到n2位,长度为m1位。以此类推定义第二、三密钥的位置和长度。第一des密钥用于初次加密,第二des密钥用于中间解密,第三des密钥用于再次加密。三个密钥在算法不同阶段发挥不同作用。使用不同密钥进行多轮加解密,可以有效提高对抗穷举破解的安全强度。可以根据需要调整每个密钥的长度参数,提高密码分析难度。也可以增加密钥数量,进行更多轮加解密。更具体的,n1至n6表示各个密钥片段在整个密钥串中的起止位。密钥串总长度为n位,例如可以设置为512位。根据三重des的结构,需要确定三个56位的des密钥。为提供一定安全裕度,每个子密钥可以设置为64位,即m1、m2、m3取64。那么n1至n6的一个可行取值方案是:n1=1,n2=64,提取第1至64位作为第一个64位密钥,n3=129,n4=192,提取第129至192位作为第二个64位密钥,n5=257,n6=320,提取第257至320位作为第三个64位密钥,密钥片段之间有一定位的间隔,增加解析难度。三个密钥片段不重叠,并可以完全覆盖原始密钥。

8、其中,des密钥是数据加密标准(des)算法所使用的一组二进制比特串,它是des算法的重要输入参数之一。在本申请中,其中“密钥”表示这组比特用于控制des算法的加密/解密计算过程和结果。“des”表示它是专用于des算法的密钥。第一des密钥是从生成的密钥串中提取的一段比特串,它将作为des算法的输入密钥,用于对数据进行初步des加密,输出第一阶段的加密结果。des密钥长度固定为64位,通常用16进制表示为16个字符。该方案中第一des密钥为提取的64位串。第一des密钥决定了初次des加密运算的结果,是保证整体多轮加密安全的重要组成部分。

9、具体的,采用了三重des的结构,进行了三轮的加解密操作。每轮使用不同的des密钥,即第一des密钥、第二des密钥和第三des密钥。第一轮使用第一密钥加密,第二轮使用第二密钥解密,第三轮使用第三密钥加密。每轮的输入数据都是上一轮的输出数据。第一轮输入是原始待加密数据,第二轮输入是第一轮的加密数据,第三轮输入是第二轮的解密数据。经过三轮计算,输出第三轮的加密数据,作为最终的加密结果。多轮运算与不同密钥的应用可以有效抵御穷举破解,增强算法抗攻击能力。

10、进一步的,生成密钥串,包括:设置用户盐值和全局盐值,用户盐值表示用户唯一标识;全局盐值用于系统加密;将用户盐值和全局盐值进行串联组合,作为组合盐值;采用hmac-sha512算法作为伪随机函数;根据组合盐值和伪随机函数,迭代计算,生成n位的二进制位串,作为密钥串。

11、其中,用户盐值是表示每个用户唯一标识的一段随机比特串,用于用户密码的加盐操作。全局盐值是系统生成的一段随机比特串,用于所有用户密码的加盐操作。在本申请中,用户盐值和全局盐值先进行连接,然后与用户输入密码一起,生成用于加密/解密的密钥。用户盐值用于产生用户专属的密钥;全局盐值提高了密钥的随机性和全局唯一性。用户盐值可以使用用户id和随机数生成;全局盐值在服务器端使用密码学安全的伪随机数生成器生成。用户盐值和全局盐值长度相等,为密钥串长度的一半,比如256位。

12、具体的,串联组合是指将两个字符串直接拼接在一起,生成一个新的字符串。假设用户盐值为uv,全局盐值为gv,两者长度都是n比特。则他们串联生成组合盐值cv的步骤是:将uv和gv转换为比特串,得到:uv=uv1uv2……uvn,gv=gv1gv2……gvn,直接将上述两个比特串拼接:cv=uv1uv2……uvngv1gv2……gvn,组合盐值cv长度为2n比特。串联拼接可以将用户信息和全局信息组合,生成用于密钥派生的比特串输入。串联操作简单高效,同时包含了用户自定义数据和全局随机数成分。

13、其中,hmac-sha512算法,这是一种散列消息认证码算法,基于sha-512哈希函数与共本文档来自技高网...

【技术保护点】

1.一种DES加密方法,包括:

2.根据权利要求1所述的DES加密方法,其特征在于:

3.根据权利要求2所述的DES加密方法,其特征在于:

4.根据权利要求3所述的DES加密方法,其特征在于:

5.根据权利要求4所述的DES加密方法,其特征在于:

6.根据权利要求5所述的DES加密方法,其特征在于:

7.根据权利要求4至6任一所述的DES加密方法,其特征在于:

8.根据权利要求7所述的DES加密方法,其特征在于:

9.根据权利要求8所述的DES加密方法,其特征在于:

10.根据权利要求9所述的DES加密方法,其特征在于:

【技术特征摘要】

1.一种des加密方法,包括:

2.根据权利要求1所述的des加密方法,其特征在于:

3.根据权利要求2所述的des加密方法,其特征在于:

4.根据权利要求3所述的des加密方法,其特征在于:

5.根据权利要求4所述的des加密方法,其特征在于:

6.根据权...

【专利技术属性】
技术研发人员:张侠安佰春马旭董科程鹏
申请(专利权)人:青岛青软晶尊微电子科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1