CN117978365A - 一种des加密方法 - Google Patents
一种des加密方法 Download PDFInfo
- Publication number
- CN117978365A CN117978365A CN202410278224.2A CN202410278224A CN117978365A CN 117978365 A CN117978365 A CN 117978365A CN 202410278224 A CN202410278224 A CN 202410278224A CN 117978365 A CN117978365 A CN 117978365A
- Authority
- CN
- China
- Prior art keywords
- key
- des
- data
- bits
- string
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 121
- 150000003839 salts Chemical class 0.000 claims description 97
- 101100203322 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SKS1 gene Proteins 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 abstract description 4
- 238000013478 data encryption standard Methods 0.000 description 148
- 230000008569 process Effects 0.000 description 10
- 238000005336 cracking Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 238000009795 derivation Methods 0.000 description 5
- 230000018109 developmental process Effects 0.000 description 3
- 238000010521 absorption reaction Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000001583 randomness test Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000000528 statistical test Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 108020004705 Codon Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008713 feedback mechanism Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种DES加密方法,涉及数据处理技术领域,包括:获取待加密数据;获取长度为N位的二进制位串,作为密钥串;从生成的密钥串的N1位至N2位提取M1位的密钥串,作为第一DES密钥;从生成的密钥串的N3位至N4位提取M2位的密钥串,作为第二DES密钥;从生成的密钥串的N5位至N6位提取M3位的密钥串,作为第三DES密钥;采用第一DES密钥对待加密数据进行DES算法加密,得到第一阶段加密数据;采用第二DES密钥对第一阶段加密数据进行DES算法解密,得到第二阶段解密数据;采用第三DES密钥对第二阶段解密数据进行DES算法加密,得到最终的加密数据。针对现有技术中存在的DES加密安全性低的问题,本申请通过多层加密和解密,提高了DES加密的安全性。
Description
技术领域
本申请涉及数据处理技术领域,特别涉及一种DES加密方法。
背景技术
随着互联网的发展,数据安全问题日益受到重视。数据在网络传输和终端存储过程中面临被窃取、泄露的风险,如何对重要数据进行可靠加密成为一个关键技术难题。针对各类数据,需要具有较强加密强度的对称加密算法来保护数据安全。DES算法由于其算法结构相对简单,56位密钥长度在计算机算力增强的今天显得不足,已经无法满足数据加密的安全需求。如何在保持算法效率的同时,增强DES算法的安全强度,是当前的研究热点之一。
DES算法采用56位密钥,经过16轮Feistel网络迭代,对64位分组数据进行加密。由于密钥空间较小,容易通过暴力破解获得密钥。此外,简单的Feistel结构以及线性变换也容易受到差分和线性密码分析的攻击。
在相关技术中,比如中国专利文献CN117407906A中提供了一种基于DES算法的软件开发数据安全加密方法,包括:获取软件开发数据,对数据进行预处理,数据的分块预处理,实现数据的加密等级混合,根据等级混合后的加密数据生成密钥,通过确保密钥生成的安全,进一步确保数据加密的安全,根据密钥进行数据加密,但是该方案密钥的生成仅仅依赖于加密数据的分级结果,容易被预测,因此加密安全性有待进一步提高。
发明内容
1.要解决的技术问题
针对现有技术中存在的DES加密安全性低的问题,本申请提供了一种DES加密方法,通过多层加密和解密,提高了DES加密的安全性。
2.技术方案
本申请的目的通过以下技术方案实现。
本说明书实施例提供一种DES加密方法,包括:获取待加密数据;获取长度为N位的二进制位串,作为密钥串;从生成的密钥串的N1位至N2位提取M1位的密钥串,作为第一DES密钥;从生成的密钥串的N3位至N4位提取M2位的密钥串,作为第二DES密钥;从生成的密钥串的N5位至N6位提取M3位的密钥串,作为第三DES密钥;采用第一DES密钥对待加密数据进行DES算法加密,得到第一阶段加密数据;采用第二DES密钥对第一阶段加密数据进行DES算法解密,得到第二阶段解密数据;采用第三DES密钥对第二阶段解密数据进行DES算法加密,得到最终的加密数据。
其中,密钥串指用于加密/解密的数据加密算法所需的一串二进制比特数据。该串通常由0和1组成,长度为算法所需的密钥长度。在本申请中,密钥串是DES算法所需的二进制密钥。其长度N为56位,相当于DES算法的密钥长度。该密钥串将用于后续的DES算法加解密计算中。密钥串的获取可通过多种方式实现,如用户输入、随机生成、根据密码及盐值派生等。本方案中是根据用户密码和盐值,通过HMAC迭代的方式生成56位的密钥串。密钥串以二进制比特流形式存在。在实际使用时可转换为通用的16进制表示。如56位密钥可表示为14个十六进制字符。
具体的,将一个较长的密钥串,分成几段提取出来,作为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位密钥,密钥片段之间有一定位的间隔,增加解析难度。三个密钥片段不重叠,并可以完全覆盖原始密钥。
其中,DES密钥是数据加密标准(DES)算法所使用的一组二进制比特串,它是DES算法的重要输入参数之一。在本申请中,其中“密钥”表示这组比特用于控制DES算法的加密/解密计算过程和结果。“DES”表示它是专用于DES算法的密钥。第一DES密钥是从生成的密钥串中提取的一段比特串,它将作为DES算法的输入密钥,用于对数据进行初步DES加密,输出第一阶段的加密结果。DES密钥长度固定为64位,通常用16进制表示为16个字符。该方案中第一DES密钥为提取的64位串。第一DES密钥决定了初次DES加密运算的结果,是保证整体多轮加密安全的重要组成部分。
具体的,采用了三重DES的结构,进行了三轮的加解密操作。每轮使用不同的DES密钥,即第一DES密钥、第二DES密钥和第三DES密钥。第一轮使用第一密钥加密,第二轮使用第二密钥解密,第三轮使用第三密钥加密。每轮的输入数据都是上一轮的输出数据。第一轮输入是原始待加密数据,第二轮输入是第一轮的加密数据,第三轮输入是第二轮的解密数据。经过三轮计算,输出第三轮的加密数据,作为最终的加密结果。多轮运算与不同密钥的应用可以有效抵御穷举破解,增强算法抗攻击能力。
进一步的,生成密钥串,包括:设置用户盐值和全局盐值,用户盐值表示用户唯一标识;全局盐值用于系统加密;将用户盐值和全局盐值进行串联组合,作为组合盐值;采用HMAC-SHA512算法作为伪随机函数;根据组合盐值和伪随机函数,迭代计算,生成N位的二进制位串,作为密钥串。
其中,用户盐值是表示每个用户唯一标识的一段随机比特串,用于用户密码的加盐操作。全局盐值是系统生成的一段随机比特串,用于所有用户密码的加盐操作。在本申请中,用户盐值和全局盐值先进行连接,然后与用户输入密码一起,生成用于加密/解密的密钥。用户盐值用于产生用户专属的密钥;全局盐值提高了密钥的随机性和全局唯一性。用户盐值可以使用用户ID和随机数生成;全局盐值在服务器端使用密码学安全的伪随机数生成器生成。用户盐值和全局盐值长度相等,为密钥串长度的一半,比如256位。
具体的,串联组合是指将两个字符串直接拼接在一起,生成一个新的字符串。假设用户盐值为UV,全局盐值为GV,两者长度都是n比特。则他们串联生成组合盐值CV的步骤是:将UV和GV转换为比特串,得到:UV=uv1uv2……uvn,GV=gv1gv2……gvn,直接将上述两个比特串拼接:CV=uv1uv2……uvngv1gv2……gvn,组合盐值CV长度为2n比特。串联拼接可以将用户信息和全局信息组合,生成用于密钥派生的比特串输入。串联操作简单高效,同时包含了用户自定义数据和全局随机数成分。
其中,HMAC-SHA512算法,这是一种散列消息认证码算法,基于SHA-512哈希函数与共享密钥构造,可以产生512比特的MAC认证标签。伪随机函数是一类通过确定算法,依据特定输入而产生看似随机输出的函数。它可以用于生成看似随机的比特序列。在本申请中,将HMAC-SHA512算法用作伪随机函数,根据输入的组合盐值,迭代计算出较长的随机比特串,作为DES算法的密钥。每次迭代将上次的输出和组合盐值作为新输入,经HMAC-SHA512计算后输出新结果,最终生成所需长度的随机密钥串。HMAC-SHA512算法结构简单高效,作为伪随机函数可以快速产生质量较高的随机数。
具体的,利用组合盐值和伪随机函数迭代生成N位密钥串,采用循环迭代的方式,通过重复调用伪随机函数生成密钥串。每次迭代输入为上一次输出结果和组合盐值。第一轮迭代输入只有组合盐值,输出为初始密钥。采用HMAC-SHA512作为迭代的伪随机函数。将上轮密钥和组合盐值作为输入,运行HMAC-SHA512,输出新密钥。轮数根据需要的密钥串长度确定,每轮输出长度固定。经过设定轮数迭代,串联每轮的输出,生成最终的N位密钥串。迭代计算可以利用简单函数产生较长复杂密钥,提高随机性。
进一步的,用户盐值和全局盐值的长度相等,为密钥串长度的一半;M1、M2和M3的长度相等。具体的,让两个盐值长度相等,各占密钥串的一半,使其在最终生成的密钥串中有相同的影响力。如果一个盐值比例过大,则相对泄露了更多该部分的信息,降低了安全性。两个部分长度相等,各自的随机性可充分发挥作用,相互补充,产生更强随机的密钥。相等长度可以简化两者的拼接过程,无需复杂的交织组合。长度相等可以提高串联和后续运算的速度效率。
具体的,将主密钥等分成多个段,长度相等可以划分清晰,便于后续分组组合。将数据等分为多个组,长度一致便于处理和对应。各组数据和密钥长度相同,可以匹配计算资源,提高运算效率。不同密钥分组长度一致,可以增加难以分析的混淆度。组间处理对称一致,有利于算法调试,校验数据流向。多密钥等长分组,可以增强算法抗差分分析的能力。
进一步的,采用SHA3算法对待加密数据进行哈希运算,得到哈希值H1;采用SM3算法对待加密数据进行哈希运算,得到哈希值H2;将哈希值H1和哈希值H2进行串联组合,作为加密后的待加密数据。
其中,SHA3是一种安全哈希算法,由NIST于2015年发布,是SHA-2算法家族的后继者,提供更强的抗穷举破解能力。SHA代表安全哈希算法(Secure Hash Algorithm),3表示这是SHA算法的第三个版本。SHA3算法利用置换和吸收操作,迭代压缩输入消息,产生固定长度的摘要作为输出。在本申请中,采用SHA3算法对待加密的数据进行哈希运算,输出一个安全散列值H1。通过哈希运算增强数据完整性保护,同时产生输入用于后续的密钥派生。
其中,SM3算法是由中国自主研发的一种哈希算法,输出哈希值长度为256比特,抗穷举破解能力强。SM3表示国密3号算法,是中国国密算法标准体系中的一种哈希算法。SM3利用压缩函数和模32运算的迭代运算结构,产生消息摘要。在本申请中,采用SM3算法对待加密的数据进行哈希运算,输出一个256比特的哈希值H2。与SHA3的散列值相组合,增强数据完整性保护,同时产生输入用于后续的密钥派生。
进一步的,根据组合盐值和伪随机函数,迭代计算,生成N位的二进制位串,作为密钥串,包括:将组合盐值和加密后的待加密数据进行串联,生成比特串P0;将比特串P0作为输入,利用HMAC-SHA512算法,生成二进制比特串O0;获取O0中的前N位作为初始密钥K0。
具体的,加密后的数据,指经过SHA3和SM3双哈希运算后的待加密数据。将组合盐值和加密后的数据直接拼接成一个新的比特串。假设组合盐值长度为n比特,加密后数据长度为m比特。则:将组合盐值转换为比特串S,长度为n比特。将加密后的数据转换为比特串D,长度为m比特。拼接两个比特串,P0=S||D。最终组合比特串P0长度为n+m比特。P0作为伪随机函数的输入,用于后续迭代生成密钥。串联操作简单高效,将固定盐值和变化数据结合,提高生成密钥的随机性。
具体的,输入比特串P0,这是前面步骤生成的组合盐值和加密后数据的串联比特串。采用HMAC-SHA512作为伪随机函数。其中HMAC结构提供密钥的引入,SHA512生成强随机数。初始化一个512位的密钥K。计算HMAC-SHA512(K,P0),以P0和K作为输入。从输出的HMAC值中提取512位,作为比特串O0。O0长度固定为512位,将作为下一轮迭代的部分输入。利用HMAC-SHA512的密码学安全性质生成高强度随机数。
具体的,O0是通过HMAC-SHA512算法生成的512位随机二进制比特串。从O0的开头取前N位,作为初始密钥K0。N可以取为AES算法的密钥长度,如128、192或256位。例如,当N=256时,取O0的前256位作为K0。K0将作为后续迭代生成完整密钥时的初始值。从高强度随机数O0中提取子串作为密钥种子,可以获得更好的密钥随机性。
进一步的,根据组合盐值、伪随机函数和待加密数据,迭代计算,生成N位的二进制位串,作为密钥串,还包括:将初始密钥K0作为输入;在第i次迭代中,将第i-1次迭代生成的N位密钥Ei-1作为输入;将密钥Ei-1和组合盐值进行串联,生成比特串Ei;将比特串Ei作为输入,利用HMAC-SHA512算法,生成二进制比特串Oi;获取Oi中的前N位,作为第i次的密钥Ki;重复迭代计算直到预设迭代次数,生成最终的N位密钥串。
具体的,初始输入,将前面获取的N位初始密钥K0作为第一次迭代的输入。循环迭代,进行多轮迭代,每轮输入为上轮的输出密钥和组合盐值。第一轮,输入是初始密钥K0和组合盐值,进行串联生成比特串E1。中间轮次,第i轮输入是第i-1轮的输出密钥Ei-1和组合盐值,进行串联生成比特串Ei。串联方式,可以直接拼接,也可以间隔拼接组合盐值的各比特。输出密钥,每轮迭代的输出为N位密钥,长度不变。终止条件,当达到预定的迭代轮数时,输出最后一轮的密钥作为最终密钥。
具体的,输入比特串Ei,每轮迭代的输入是上轮N位密钥和组合盐值的串联比特串Ei。HMAC-SHA512计算,将Ei作为输入,运行HMAC-SHA512算法,生成512位随机二进制比特串Oi。获取子串,从Oi中提取前N位作为该轮的输出密钥Ki。重复迭代,将上轮的Ki和组合盐值进行串联,生成新一轮的输入Ei+1。重复以上步骤,计算出下一轮的Ki+1。迭代轮数,重复迭代计算,直到预先设置的迭代次数,例如1000轮。最后一轮生成的N位密钥即为最终输出的密钥串。迭代和密钥拼接操作可以生成更随机强度更高的密钥。
进一步的,生成第一阶段加密数据,包括:将加密后的待加密数据分为P组;设置F位比特的初始向量IV;将第一组加密数据P1和初始向量IV进行异或运算,得到第一组输入数据D1;采用第一DES密钥对第一组输入数据D1进行DES加密运算,得到第一组密文C1;将第i组加密数据Pi与第i-1组密文Ci-1进行异或运算,得到第i组输入数据Di;采用第一DES密钥对第i组输入数据Di进行DES加密运算,得到第i组密文Ci;将密码C1至Ci顺序组合,作为第一阶段加密数据。
具体的,将整个待加密的数据分成若干组,每组长度相同。P值根据数据总长度和单组长度来确定。比如数据长度为L比特,单组长度定为n比特,则分组数量P=L/n。可以按照字节将数据平分为多组,每组包含固定字节数。也可以按比特分割。若整除后有多余的数据没有组入,可以单独形成最后一组。或者Padding填充数据使其可整除。每组数据可以独立成帧保存在存储空间中,也可以按序连续存储。之后每组数据分别采用密码算法单独加密或者关联加密。
优选的采用FBKDF2算法生成F位比特的初始向量IV,其中,FBKDF2算法,这是一种密钥派生函数,可以从初始密钥材料派生出所需长度的密钥或其他比特串。FB表示FeedBack,有反馈的意思。初始向量IV,在对称加密算法中,初始向量是加密第一块数据时使用的一个随机数串。它增强了算法的安全性。在本申请中,采用FBKDF2算法,根据输入密码生成一个F位的随机比特串,作为对称加密算法的初始向量IV。FBKDF2利用HMAC迭代计算,增加反馈机制,可以有效抵抗穷举攻击。生成高强度随机的IV,增强加密系统的综合安全性。
其中,异或运算是一种逻辑运算,对两个二进制数按位进行运算,当两对应的二进制位不同时,结果为1,否则为0。异或运算通常用符号"⊕"表示。在本申请中,这里将第一组加密数据P1和初始向量IV进行异或运算,得到第一组输入数据D1。如果P1和IV对应的位不同,则D1相应位为1,如果相同则为0。异或运算可以隐藏原始数据,增强加密的混淆性。同时也符合流密码的需求。
具体的,第一DES密钥,指使用上述方法生成的最终N位密钥串中的第一段,用于加密第一组数据。采用经典的DES对称加密算法,包括初始置换、Feistel网络、逆置换等操作。将第一组输入数据D1作为DES算法的明文输入。使用第一DES密钥作为DES算法的密钥输入。运行DES加密算法,得到密文输出C1。将第一组密文C1记录存储,作为第一组的数据密文。之后对更多组分别采用对应的DES密钥分组加密。
具体的,第i组加密数据Pi,将原始数据分组后,Pi表示第i组待加密数据。第i-1组密文Ci-1,在该方案中,每组密文作为下一组的一部分输入。Ci-1是前一组的数据的DES加密结果。异或运算,将Pi和Ci-1按位进行异或操作,生成第i组输入数据Di。第i个DES密钥,对应第i组数据采用该方案产生的第i个DES密钥。DES加密运算,用第i个DES密钥对输入数据Di进行DES加密,生成第i组密文Ci。循环迭代,重复对每组数据分别采用对应密钥加密,形成循环加密链。
具体的,密码顺序,按照生成顺序,从C1到Ci,共i组密码。组合方式,可以简单顺序拼接,也可以以某种模式交织组合。例如,如果有5组密码C1、C2、C3、C4、C5,则组合方式可以是:C1||C2||C3||C4||C5或C1||C3||C5||C2||C4。存储格式,可以分别存储每组密文,也可以联合成一个文件。下一阶段,该组合结果可作为下一加密阶段的输入数据。
进一步的,采用第二DES密钥对第一阶段加密数据进行DES算法解密,得到第二阶段解密数据,包括:将第二DES密钥分为四段,得到4组子密码,每段长度相等,标记为MK1、MK2、MK3和MK4;将第一阶段加密数据分为四组,得到四组子加密数据,每组长度相等;采用MK1对第一组子加密数据进行DES算法解密,得到解密数据IP1;采用MK2对第二组子加密数据进行DES算法解密,得到解密数据IP2;采用MK3对第三组子加密数据进行DES算法解密,得到解密数据IP3;采用MK4对第四组子加密数据进行DES算法解密,得到解密数据IP4;将解密数据IP1、IP2、IP3和IP4进行串联组合,作为第二阶段解密数据IP。
具体的,第二DES密钥,指使用上述方法产生的最终N位密钥串中的第二段,用于第二阶段加密。分段数量,这里将第二DES密钥分为4段,也可以根据需要分为其他数量。相等长度,每段子密码的长度相同,假设第二DES密钥长度为L,则每段长度为L/4。分段方法,可以从密钥开头顺序分段,也可以交叉分段。标记,将得到的4段子密码标记为MK1、MK2、MK3和MK4。存储,可以将4段子密码分开存储,也可以顺序连续存储。这4段子密码将在第二阶段加密中发挥不同的作用。
具体的,第一阶段加密数据,指前一阶段所有组密码C1至Ci顺序组合的结果。分组数量,这里将第一阶段的数据分为4组。也可以根据需要分成其他数量的组。相等长度,每组子加密数据长度相同。假设第一阶段数据长度为L,则每组长度为L/4。分组方式,可以从数据开头顺序分组,也可以采用交叉切分的方式。标记,将分割后的4组子数据标记为D1、D2、D3、D4。存储,可以把4组子数据独立存储,也可以顺序存放。这4组子数据将参与第二阶段加密运算。
具体的,四组子密钥,将第二DES密钥划分的四段子密钥MK1、MK2、MK3和MK4。四组子数据,第一阶段的数据分成的四组子加密数据D1、D2、D3、D4。DES解密,分别采用不同的子密钥,对对应的子数据进行DES算法的解密运算。解密结果,使用MK1解密D1,得到IP1;使用MK2解密D2,得到IP2;使用MK3解密D3,得到IP3;使用MK4解密D4,得到IP4。串联组合,将所有解密结果IP1、IP2、IP3、IP4进行简单拼接,生成第二阶段解密数据IP。
进一步的,采用第三DES密钥对第二阶段解密数据进行DES算法加密,得到最终的加密数据,包括:将第三DES密钥等分成四组子密钥,标记为MK5、MK6、MK7和MK8;采用MK5对解密数据IP进行DES加密,输出向量OP1;采用MK6对向量OP1进行DES加密,输出向量OP2;采用MK7对向量OP2进行DES加密,输出向量OP3;采用MK8对向量OP3进行DES加密,输出向量OP4;采用MK5对向量OP4进行DES加密,输出向量OP5;采用MK6对向量OP5进行DES加密,输出向量OP6;采用MK7对向量OP6进行DES加密,输出向量OP7;采用MK8对向量OP7进行DES加密,输出向量OP8;将向量OP8作为最终的加密数据。
具体的,第三DES密钥,指使用上述方法生成的最终N位密钥串中的第三段,用于第三阶段加密。分组数量,这里将第三DES密钥等分为4组子密钥,也可以根据需要分成其他数量。相等长度,每组子密钥长度相同。假设第三DES密钥长度为L,则每组子密钥长度为L/4。分组方式,可以从密钥开头顺序分组,也可以采用交叉分组的方式。标记,将分出的4组子密钥标记为MK5、MK6、MK7和MK8。存储,可以将4组子密钥分开存储,也可以顺序存放。这4组子密钥将在第三阶段采用不同组合方式参与加密。
具体的,四组子密钥,将第三DES密钥等分的四组子密钥MK5、MK6、MK7和MK8。第二阶段的解密数据IP。使用不同子密钥循环加密8轮,每轮输入为上轮的输出:MK5加密IP,输出OP1,MK6加密OP1,输出OP2,MK7加密OP2,输出OP3,MK8加密OP3,输出OP4,MK5加密OP4,输出OP5,MK6加密OP5,输出OP6,MK7加密OP6,输出OP7,MK8加密OP7,输出OP8。第八轮输出OP8作为最终加密数据。多轮、多密钥可产生强混淆效果。
进一步的,设置F位比特的初始向量IV,包括:采用HMAC-SHA512算法设置长度为LK1比特的初始密钥SK;选择一随机数nonce,其长度为LK2比特;将初始密钥SK和随机数nonce进行位级异或运算,生成比特串S1,长度为LK1+LK2;根据比特串S1,采用SHA3-256哈希算法,生成哈希值SH1;将哈希值SH1和比特串S1进行位级异或运算,生成比特串S2;根据比特串S2,采用SHA3-256哈希算法,生成哈希值SH2;重复上述操作,迭代r次,生成比特串Sr;获取比特串Sr的前F位作为初始向量IV。
具体的,采用HMAC-SHA512算法设置初始密钥SK,选择一个密钥MK,长度为m比特。选择一个随机数nonce,长度为n比特。将密钥MK和随机数nonce拼接成一个种子序列种子,长度为m+n比特。定义迭代次数i=1。在第1轮迭代中:将种子作为HMAC-SHA512的输入key,结合一个常数c1作为input data,计算HMAC值h1。从h1的前LK1位提取作为初始密钥SK。在第i轮迭代中:将前一轮的hi-1作为key,结合一个常数ci作为input data,计算HMAC值hi。从hi的前LK1位提取作为初始密钥SK。重复直到迭代次数达到预设的r轮。最后一轮的SK即为最终设置的初始密钥。通过HMAC迭代计算,可获得高熵、不可预测的初始密钥SK。其中m、n、r、LK1等参数可根据需要配置。
具体的,设定随机数nonce的长度为LK2比特。生成一个真随机比特序列rand_bits,长度为128比特。真随机数可由硬件随机数生成器产生。对rand_bits进行SHA3-256哈希运算,得到一个256比特的哈希值hash。从hash中提取前LK2位作为随机数nonce。将提取出的LK2比特随机数nonce进行随机性测试,如运用NIST SP 800-22统计测试套件中的多个测试来检验其随机性。如果随机性测试通过,则确认该nonce可直接使用。如果不通过,则重复重新生成nonce。将通过测试的LK2比特随机数nonce输出。通过真随机数种子和哈希提取,可获得具有良好随机性的nonce,而且长度可配置。统计测试可验证其随机性。
具体的,根据前述步骤分别生成长度LK1比特的初始密钥SK和长度为LK2比特的随机数nonce。定义一个空比特串S1,其长度初始化为LK1+LK2比特。使用逻辑异或门,逐位对初始密钥SK和随机数nonce进行异或运算:SK的第1位与nonce的第1位异或,结果作为S1的第1位,SK的第2位与nonce的第2位异或,结果作为S1的第2位,......,SK的第LK1位与nonce的第LK1位异或,结果作为S1的第LK1位,SK的第LK1+1位与nonce的第LK1+1位异或,结果作为S1的第LK1+1位,......,直到SK和nonce的末尾各自的第LK1位和第LK2位。最终得到长度为LK1+LK2比特的比特串S1。通过逐位异或,可发挥SK和nonce的随机性,生成更强随机的比特串S1。
具体的,已获得长度为LK1+LK2比特的比特串S1。输入比特串S1到SHA3-256哈希算法中。SHA3-256哈希算法流程:将S1 padded到满足算法输入要求的比特长度,将padding后的比特串划分为固定大小的块,对每个块迭代进行吸收运算、混合运算、压缩运算等,最后输出长度为256比特的哈希值,从SHA3-256算法的256比特输出中,提取前b比特作为哈希值SH1。b可以根据需要设定。将SH1输出供后续步骤使用。通过SHA3-256哈希,可增强输入比特串S1的混淆性,生成更强随机的哈希输出。
具体的,已获得长度为b比特的哈希值SH1和长度为LK1+LK2比特的比特串S1。使用逻辑异或门,逐位对SH1和S1进行异或运算,生成长度为b比特的比特串S2。将比特串S2作为输入,再次输入到SHA3-256哈希算法中,生成长度为b比特的哈希值SH2。重复连续迭代r轮:第i轮的输入为上一轮的比特串Si-1,SHA3-256(Si-1)生成哈希值SHi,SHi异或Si-1生成比特串Si。迭代r轮后,获得长度为b比特的比特串Sr。从比特串Sr中提取前F位(F≤b)作为初始向量IV。通过迭代哈希和异或,可产生更高熵的向量IV。参数r、b、F均可配置。
具体的,已获得长度为b比特的比特串Sr,是经过r轮迭代后输出的结果。定义初始向量IV的长度为F位。其中F是小于等于b的正整数。从比特串Sr中,提取从第1位开始的连续F位。具体提取过程:获得Sr的第1位,作为IV的第1位,获得Sr的第2位,作为IV的第2位,......,获得Sr的第F位,作为IV的第F位,将提取得到的F位二进制序列,作为该方法生成的初始向量IV。IV的长度F可以根据实际需要进行配置,提供不同长度选择。通过从更长比特串中提取部分比特,可获得随机性更强的初始向量IV。
3.有益效果
相比于现有技术,本申请的优点在于:
(1)通过采用多层DES加密和解密过程,以及多重密钥生成策略,加密安全性得到显著增强。攻击者需要破解多个不同的DES密钥才能获取数据,提高了系统的安全性;
(2)使用了哈希算法对待加密数据进行处理,并结合盐值和迭代计算生成密钥,有效地提高了密码的安全性,降低了密码被破解的可能性;
(3)通过盐值的引入和哈希算法的运用,有效地防止了彩虹表攻击,增强了系统对密码破解的抵抗能力;
(4)采用了多重密钥生成策略,密钥生成过程中引入了用户唯一标识和全局盐值,增加了攻击者获取密钥的难度,从而提高了系统的抗中间人攻击能力;
(5)使用FBKDF2算法代替随机生成初始向量,增加IV生成的复杂度,提高安全性;
(6)通过采用HMAC-SHA512算法作为伪随机函数,并在密钥生成过程中引入用户唯一标识和全局盐值,有效地保护了数据的完整性,防止了数据被篡改或伪造。
附图说明
本说明书将以示例性实施例的方式进一步描述,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的一种DES加密方法的示例性流程图;
图2是根据本说明书一些实施例所示的生成密钥串的示例性流程图;
图3是根据本说明书一些实施例所示的生成第一阶段加密数据的示例性流程图;
图4是根据本说明书一些实施例所示的生成第二阶段解密数据的示例性流程图;
图5是根据本说明书一些实施例所示的生成最终加密数据的示例性流程图。
具体实施方式
下面结合附图对本说明书实施例提供的方法和系统进行详细说明。
图1是根据本说明书一些实施例所示的一种DES加密方法的示例性流程图,获取待加密数据;获取长度为N位的二进制位串,作为密钥串;从生成的密钥串的N1位至N2位提取M1位的密钥串,作为第一DES密钥;从生成的密钥串的N3位至N4位提取M2位的密钥串,作为第二DES密钥;从生成的密钥串的N5位至N6位提取M3位的密钥串,作为第三DES密钥;采用第一DES密钥对待加密数据进行DES算法加密,得到第一阶段加密数据;采用第二DES密钥对第一阶段加密数据进行DES算法解密,得到第二阶段解密数据;采用第三DES密钥对第二阶段解密数据进行DES算法加密,得到最终的加密数据。
具体的,待加密数据:original_data="Hello World"。生成256位密钥串:key="00112233445566778899aabbccddeeff00112233445566778899aabbccdd"。提取子密钥:K1(第一DES密钥)=key[0:64]="00112233445566778899aabbccddeeff"。K2(第二DES密钥)=key[64:128]="00112233445566778899aabbccdd",K3(第三DES密钥)=key[128:192]="00112233445566778899aabbcc"。三轮加密:C1=DES_encrypt(original_data,K1),C2=DES_decrypt(C1,K2),C3=DES_encrypt(C2,K3),输出C3作为最终加密数据。
原始数据预处理,对原始待加密数据进行双哈希运算,以增强随机性和差异性。采用SHA3和SM3两种哈希算法,分别计算哈希值,并将两个哈希值连接作为修改后的原始数据。生成密钥串,包括:设置用户盐值和全局盐值,用户盐值表示用户唯一标识;全局盐值用于系统加密;将用户盐值和全局盐值进行串联组合,作为组合盐值;采用HMAC-SHA512算法作为伪随机函数;根据组合盐值和伪随机函数,迭代计算,生成N位的二进制位串,作为密钥串。用户盐值和全局盐值的长度相等,为密钥串长度的一半。具体的,原始数据为一段文本:"The quickbrown foxjumps overthe lazy dog"。计算SHA3哈希值:SHA3("Thequickbrown foxjumps overthe lazy dog")="000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f"。计算SM3哈希值:SM3("The quickbrown foxjumpsover the lazy dog")="4142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f"。连接两个哈希值,得到修改后的原始数据:
"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f4142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f"。生成密钥串,用户盐值:"87654321",全局盐值:"abcdefgh",组合盐值:"87654321abcdefgh",采用HMAC-SHA512作为伪随机函数,设置迭代计算次数为1000,生成256比特(32字节)的密钥串,"d7f2d9071d9de30d5b5e220a2ab3ec0543e0a11bb5417b7bc0e5f2769d90ef7e"。
图2是根据本说明书一些实施例所示的生成密钥串的示例性流程图,动态密钥生成,根据用户ID和全局系统参数,动态生成长度可配置的二进制比特串,作为DES算法的密钥。密钥生成过程采用HMAC-SHA512和盐值,通过迭代计算获得强随机性。采用SHA3算法对待加密数据进行哈希运算,得到哈希值H1;采用SM3算法对待加密数据进行哈希运算,得到哈希值H2;将哈希值H1和哈希值H2进行串联组合,作为加密后的待加密数据,输入PBKDF2算法。根据组合盐值和伪随机函数,迭代计算,生成N位的二进制位串,作为密钥串,包括:将组合盐值和加密后的待加密数据进行串联,生成比特串P0;将比特串P0作为输入,利用HMAC-SHA512算法,生成二进制比特串O0;获取O0中的前N位作为初始密钥K0;根据组合盐值、伪随机函数和待加密数据,迭代计算,生成N位的二进制位串,作为密钥串,还包括:将初始密钥K0作为输入;在第i次迭代中,将第i-1次迭代生成的N位密钥Ei-1作为输入;将密钥Ei-1和组合盐值进行串联,生成比特串Ei;将比特串Ei作为输入,利用HMAC-SHA512算法,生成二进制比特串Oi;获取Oi中的前N位,作为第i次的密钥Ki;重复迭代计算直到预设迭代次数,生成最终的N位密钥串。
具体的,原始数据:“The quickbrown foxjumps over the lazy dog”。SHA3哈希:H1=SHA3(原始数据)="000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f"。SM3哈希:H2=SM3(原始数据)="4142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f"。连接哈希值:H1||H2="000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f4142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f"。用户盐值:87654321,全局盐值:abcdefgh,组合盐值:Salt=87654321abcdefgh。生成256位密钥:P0=Salt||H1||H2,O0=HMAC-SHA512(P0),K0=前256位的O0,对i=1到1000:Ei=Ki-1||Salt,Oi=HMAC-SHA512(Ei),Ki=前256位的Oi,最终256位密钥:K1000。
图3是根据本说明书一些实施例所示的生成第一阶段加密数据的示例性流程图,多轮可配置加解密流程,对修改后的原始数据,采用多轮DES运算进行加解密。加解密轮数、每轮使用的子密钥长度都可根据安全性需求进行配置。典型流程为三轮,每轮密钥可分组使用。采用第一DES密钥对待加密数据进行DES算法加密,得到第一阶段加密数据。将待加密数据分为P组;采用FBKDF2算法生成F位比特的初始向量IV;将第一组加密数据P1和初始向量IV进行异或运算,得到第一组输入数据D1;采用第一DES密钥对第一组输入数据D1进行DES加密运算,得到第一组密文C1;将第i组加密数据Pi与第i-1组密文Ci-1进行异或运算,得到第i组输入数据Di;采用第一DES密钥对第i组输入数据Di进行DES加密运算,得到第i组密文Ci;将密码C1至Ci顺序组合,作为第一阶段加密数据。
具体的,原始数据:“hello world”。分组:将数据分为2组,每组6个字节:P1=“hello w”,P2=“orld”。生成初始向量:IV=FBKDF2(密钥,盐值)的前64位。第一轮加密:D1=P1⊕IV,C1=DES(D1,密钥1)。D2=P2⊕C1,C2=DES(D2,密钥1),第一阶段输出:C=C1||C2,="459ef95d214c5881275e7"||"abcdefgh38945236"。
图4是根据本说明书一些实施例所示的生成第二阶段解密数据的示例性流程图,采用第二DES密钥对第一阶段加密数据进行DES算法解密,得到第二阶段解密数据,包括:将第二DES密钥分为四段,得到4组子密码,每段长度相等,标记为MK1、MK2、MK3和MK4;将第一阶段加密数据分为四组,得到四组子加密数据,每组长度相等;采用MK1对第一组子加密数据进行DES算法解密,得到解密数据IP1;采用MK2对第二组子加密数据进行DES算法解密,得到解密数据IP2;采用MK3对第三组子加密数据进行DES算法解密,得到解密数据IP3;采用MK4对第四组子加密数据进行DES算法解密,得到解密数据IP4;将解密数据IP1、IP2、IP3和IP4进行串联组合,作为第二阶段解密数据IP。
具体的,第二DES密钥:ABCDEF12345566FFFFFF。分割成4段子密钥:MK1=ABCDEF12,MK2=345566FF,MK3=FFFFABCD,MK4=EF123455。第一阶段数据:459ef95d214c5881275e7abcdefgh38945236。分为4组数据:
D1=459ef95d214c5881275e7,D2=abcdefgh,D3=38945236,D4=FFFFABCD。解密:IP1=DES(MK1,D1)=hello w o,IP2=DES(MK2,D2)=rld,IP3=DES(MK3,D3)=1234,IP4=DES(MK4,D4)=5678。第二阶段数据:IP=IP1||IP2||IP3||IP4="hello wo"||"rld"||"1234"||"5678"。
图5是根据本说明书一些实施例所示的生成最终加密数据的示例性流程图,采用第三DES密钥对第二阶段解密数据进行DES算法加密,得到最终的加密数据,包括:将第三DES密钥等分成四组子密钥,标记为MK5、MK6、MK7和MK8;采用MK5对解密数据IP进行DES加密,输出OP1;采用MK6对OP1进行DES加密,输出OP2;采用MK7对OP2进行DES加密,输出OP3;采用MK8对OP3进行DES加密,输出OP4;采用MK5对OP4进行DES加密,输出OP5;采用MK6对OP5进行DES加密,输出OP6;采用MK7对OP6进行DES加密,输出OP7;采用MK8对OP7进行DES加密,输出OP8;将OP8作为最终的加密数据。M1、M2和M3的长度相等。
具体的,第三DES密钥:AABBCCDDEEFF001122334455667788。分割成4段子密钥:MK5=AABBCCDD,MK6=EEFF0011,MK7=22334455,MK8=667788AA。第二阶段数据:IP=hellowo12345678。多轮加密:OP1=DES(MK5,IP),OP2=DES(MK6,OP1),OP3=DES(MK7,OP2),OP4=DES(MK8,OP3),OP5=DES(MK5,OP4),OP6=DES(MK6,OP5),OP7=DES(MK7,OP6),OP8=DES(MK8,OP7)。最终输出:OP8=bbaa1122ddcc7788(16进制)。
分组传输机制,在加解密流程中,支持原始数据和中间数据的分组传输,每组采用异或方式与上一组密文递归计算,提高随机性。
具体的,原始数据:"The quickbrown foxjumps over the lazy dog"。分组:分为4组,每组12个字节:D1:"The quickbr",D2:"own foxjump",D3:"s over the l",D4:"azydog"。传输加密:C0=IV#初始化向量,C1=DES(D1⊕C0),C2=DES(D2⊕C1),C3=DES(D3⊕C2),C4=DES(D4⊕C3)。分组传输:分4批传输加密后的数据:Batch1:C1,Batch2:C2,Batch3:C3,Batch4:C4,接收端收到后按顺序连接,进行解密。这样通过分组传输和异或递归,可以提高数据的随机性和混淆性。
以上示意性地对本申请创造及其实施方式进行了描述,该描述没有限制性,在不背离本申请的精神或者基本特征的情况下,能够以其他的具体形式实现本申请。附图中所示的也只是本申请创造的实施方式之一,实际的结构并不局限于此,权利要求中的任何附图标记不应限制所涉及的权利要求。所以,如果本领域的普通技术人员受其启示,在不脱离本创造宗旨的情况下,不经创造性地设计出与该技术方案相似的结构方式及实施例,均应属于本申请的保护范围。此外,“包括”一词不排除其他元件或步骤,在元件前的“一个”一词不排除包括“多个”该元件。产品权利要求中陈述的多个元件也可以由一个元件通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (10)
1.一种DES加密方法,包括:
获取待加密数据;
获取长度为N位的二进制位串,作为密钥串;
从生成的密钥串的N1位至N2位提取M1位的密钥串,作为第一DES密钥;
从生成的密钥串的N3位至N4位提取M2位的密钥串,作为第二DES密钥;
从生成的密钥串的N5位至N6位提取M3位的密钥串,作为第三DES密钥;
采用第一DES密钥对待加密数据进行DES算法加密,得到第一阶段加密数据;
采用第二DES密钥对第一阶段加密数据进行DES算法解密,得到第二阶段解密数据;
采用第三DES密钥对第二阶段解密数据进行DES算法加密,得到最终的加密数据。
2.根据权利要求1所述的DES加密方法,其特征在于:
生成密钥串,包括:
设置用户盐值和全局盐值,用户盐值表示用户唯一标识;全局盐值用于系统加密;
将用户盐值和全局盐值进行串联组合,作为组合盐值;
采用HMAC-SHA512算法作为伪随机函数;
根据组合盐值和伪随机函数,迭代计算,生成N位的二进制位串,作为密钥串。
3.根据权利要求2所述的DES加密方法,其特征在于:
用户盐值和全局盐值的长度相等,为密钥串长度的一半;
M1、M2和M3的长度相等。
4.根据权利要求3所述的DES加密方法,其特征在于:
还包括:
采用SHA3算法对待加密数据进行哈希运算,得到哈希值H1;
采用SM3算法对待加密数据进行哈希运算,得到哈希值H2;
将哈希值H1和哈希值H2进行串联组合,作为加密后的待加密数据。
5.根据权利要求4所述的DES加密方法,其特征在于:
根据组合盐值和伪随机函数,迭代计算,生成N位的二进制位串,作为密钥串,包括:
将组合盐值和加密后的待加密数据进行串联,生成比特串P0;
将比特串P0作为输入,利用HMAC-SHA512算法,生成二进制比特串O0;
获取O0中的N位作为初始密钥K0。
6.根据权利要求5所述的DES加密方法,其特征在于:
生成密钥串,还包括:
将初始密钥K0作为输入;
在第i次迭代中,将第i-1次迭代生成的N位密钥Ei-1作为输入;
将密钥Ei-1和组合盐值进行串联,生成比特串Ei;
将比特串Ei作为输入,利用HMAC-SHA512算法,生成二进制比特串Oi;
获取Oi中的前N位,作为第i次的密钥Ki;
重复迭代计算直到预设迭代次数,生成最终的N位密钥串。
7.根据权利要求4至6任一所述的DES加密方法,其特征在于:
生成第一阶段加密数据,包括:
将加密后的待加密数据分为P组;
设置F位比特的初始向量IV;
将第一组加密数据P1和初始向量IV进行异或运算,得到第一组输入数据D1;
采用第一DES密钥对第一组输入数据D1进行DES加密运算,得到第一组密文C1;
将第i组加密数据Pi与第i-1组密文Ci-1进行异或运算,得到第i组输入数据Di;
采用第一DES密钥对第i组输入数据Di进行DES加密运算,得到第i组密文Ci;
将密码C1至Ci顺序组合,作为第一阶段加密数据。
8.根据权利要求7所述的DES加密方法,其特征在于:
采用第二DES密钥对第一阶段加密数据进行DES算法解密,得到第二阶段解密数据,包括:
将第二DES密钥分为四段,得到4组子密码,每段长度相等,标记为MK1、MK2、MK3和MK4;
将第一阶段加密数据分为四组,得到四组子加密数据,每组长度相等;
采用MK1对第一组子加密数据进行DES算法解密,得到解密数据IP1;
采用MK2对第二组子加密数据进行DES算法解密,得到解密数据IP2;
采用MK3对第三组子加密数据进行DES算法解密,得到解密数据IP3;
采用MK4对第四组子加密数据进行DES算法解密,得到解密数据IP4;
将解密数据IP1、IP2、IP3和IP4进行串联组合,作为第二阶段解密数据IP。
9.根据权利要求8所述的DES加密方法,其特征在于:
采用第三DES密钥对第二阶段解密数据进行DES算法加密,得到最终的加密数据,包括:
将第三DES密钥等分成四组子密钥,标记为MK5、MK6、MK7和MK8;
采用MK5对解密数据IP进行DES加密,输出向量OP1;
采用MK6对向量OP1进行DES加密,输出向量OP2;
采用MK7对向量OP2进行DES加密,输出向量OP3;
采用MK8对向量OP3进行DES加密,输出向量OP4;
采用MK5对向量OP4进行DES加密,输出向量OP5;
采用MK6对向量OP5进行DES加密,输出向量OP6;
采用MK7对向量OP6进行DES加密,输出向量OP7;
采用MK8对向量OP7进行DES加密,输出向量OP8;
将向量OP8作为最终的加密数据。
10.根据权利要求9所述的DES加密方法,其特征在于:
设置F位比特的初始向量IV,包括:
采用HMAC-SHA512算法设置长度为LK1比特的初始密钥SK;
选择一随机数nonce,其长度为LK2比特;
将初始密钥SK和随机数nonce进行位级异或运算,生成比特串S1,长度为LK1+LK2;
根据比特串S1,采用SHA3-256哈希算法,生成哈希值SH1;
将哈希值SH1和比特串S1进行位级异或运算,生成比特串S2;
根据比特串S2,采用SHA3-256哈希算法,生成哈希值SH2;
重复迭代r次,生成比特串Sr;
获取比特串Sr的前F位作为初始向量IV。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410278224.2A CN117978365A (zh) | 2024-03-12 | 2024-03-12 | 一种des加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410278224.2A CN117978365A (zh) | 2024-03-12 | 2024-03-12 | 一种des加密方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117978365A true CN117978365A (zh) | 2024-05-03 |
Family
ID=90856592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410278224.2A Pending CN117978365A (zh) | 2024-03-12 | 2024-03-12 | 一种des加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117978365A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5768390A (en) * | 1995-10-25 | 1998-06-16 | International Business Machines Corporation | Cryptographic system with masking |
CN108848073A (zh) * | 2018-05-31 | 2018-11-20 | 唐山智能电子有限公司 | 对实时数据采集系统的数据进行加密解密的方法以及系统 |
CN109861810A (zh) * | 2019-03-19 | 2019-06-07 | 天津中德应用技术大学 | 一种基于混沌块加密算法的数据加密方法及解密方法 |
CN116032655A (zh) * | 2023-02-13 | 2023-04-28 | 杭州天谷信息科技有限公司 | 一种可抵御计时攻击的身份鉴别方法以及系统 |
-
2024
- 2024-03-12 CN CN202410278224.2A patent/CN117978365A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5768390A (en) * | 1995-10-25 | 1998-06-16 | International Business Machines Corporation | Cryptographic system with masking |
CN108848073A (zh) * | 2018-05-31 | 2018-11-20 | 唐山智能电子有限公司 | 对实时数据采集系统的数据进行加密解密的方法以及系统 |
CN109861810A (zh) * | 2019-03-19 | 2019-06-07 | 天津中德应用技术大学 | 一种基于混沌块加密算法的数据加密方法及解密方法 |
CN116032655A (zh) * | 2023-02-13 | 2023-04-28 | 杭州天谷信息科技有限公司 | 一种可抵御计时攻击的身份鉴别方法以及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Alenezi et al. | Symmetric encryption algorithms: Review and evaluation study | |
CN106656475B (zh) | 一种用于高速加密的新型对称型密钥加密方法 | |
US8712036B2 (en) | System for encrypting and decrypting a plaintext message with authentication | |
US7092525B2 (en) | Cryptographic system with enhanced encryption function and cipher key for data encryption standard | |
US7715553B2 (en) | Encrypting a plaintext message with authentication | |
US7860241B2 (en) | Simple universal hash for plaintext aware encryption | |
US8509427B2 (en) | Hybrid mode cryptographic method and system with message authentication | |
WO2012132623A1 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
JP2012500509A (ja) | 暗号に基づくメッセージ認証コードの生成方法 | |
Hoang et al. | AEZ v1: authenticated-encryption by enciphering | |
Wu et al. | JAMBU lightweight authenticated encryption mode and AES-JAMBU | |
Mattsson | Format controlling encryption using datatype preserving encryption | |
WO2022237440A1 (en) | Authenticated encryption apparatus with initialization-vector misuse resistance and method therefor | |
KR100259836B1 (ko) | N-라운드 라운드 출력문 귀환 블록 암호화/복호화 방법 | |
CN117978365A (zh) | 一种des加密方法 | |
Mohan et al. | Revised aes and its modes of operation | |
Xiao et al. | Data transmission scheme based on AES and polar codes | |
RU2738321C1 (ru) | Способ криптографического преобразования и устройство для его осуществления | |
WO2022125337A1 (en) | High-speed circuit combining aes and sm4 encryption and decryption | |
WO2009104827A1 (en) | Method and apparatus for generating key stream for stream cipher, s-box for block cipher and method for substituting input vector using the s-box | |
Henricksen | Tiny Dragon-An Encryption Algorithm for Wireless Sensor Networks | |
CN117725605B (zh) | 一种远端自动编制电子档案文件信息保密的方法和系统 | |
Manojkumar et al. | AES Algorithm for the Next Generation of 5G Network Encryption Standards | |
Mehner | Limdolen | |
CN111130768B (zh) | 一种轻量级区块链中快速生成消息摘要的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |