CN106877999A - 一种des加解密密钥生成器及密钥生成方法 - Google Patents

一种des加解密密钥生成器及密钥生成方法 Download PDF

Info

Publication number
CN106877999A
CN106877999A CN201710035180.0A CN201710035180A CN106877999A CN 106877999 A CN106877999 A CN 106877999A CN 201710035180 A CN201710035180 A CN 201710035180A CN 106877999 A CN106877999 A CN 106877999A
Authority
CN
China
Prior art keywords
state
value
encryption
key
decryption key
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.)
Granted
Application number
CN201710035180.0A
Other languages
English (en)
Other versions
CN106877999B (zh
Inventor
张锐
张倩
周永彬
丁天
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Information Engineering of CAS
Original Assignee
Institute of Information Engineering of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Information Engineering of CAS filed Critical Institute of Information Engineering of CAS
Priority to CN201710035180.0A priority Critical patent/CN106877999B/zh
Publication of CN106877999A publication Critical patent/CN106877999A/zh
Application granted granted Critical
Publication of CN106877999B publication Critical patent/CN106877999B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种DES加解密密钥生成器及密钥生成方法。本发明包括控制单元、计算单元和输出寄存器单元;其中,控制单元,用于控制DES加解密密钥生成器内的状态机的状态跳转;加密过程中,计算单元根据当前的状态信息及其对应的密钥值、循环左移相对值计算每一周期的轮密钥和循环左移绝对值存入到输出寄存器单元,以及根据输出寄存器单元的值计算当前生成的轮密钥并输出;解密过程中,计算单元根据当前的状态信息及其对应的循环左移绝对值计算每一周期的循环右移相对值存入到输出寄存器单元,并根据输出寄存器单元的值计算对应周期的解密密钥值并输出。本发明不需要额外的存储单元存储密钥,同时将需要的逻辑单元化简到更少。

Description

一种DES加解密密钥生成器及密钥生成方法
技术领域
本发明涉及一种DES的加解密密钥生成器及密钥生成方法,属于信息安全技术领域。
背景技术
DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。
目前,基于DES算法的加密与解密硬件仍广泛应用于卫星通信、网关服务器、机顶盒、视频传输以及其他大量的数据传输业务中。然而,随着密码分析技术的不断发展,DES算法已被攻破,网络安全面临威胁。而在沿用原有应用系统方面,3-DES算法有很大的生存空间,通过增加密钥长度提高加密强度,被大量用来替换已经不安全的DES算法。
无论是DES、2DES或者3DES在使用过程中都需要密钥生成器。传统的密钥生成器包括控制单元、计算单元、存储单元、输出寄存器单元,如图1所示。实现方法如图2所示,为加密时,从第一个周期开始每个周期输出一个此轮加密需要的轮密钥;而当解密时,依次使用16个加密轮密钥k1-k16的倒叙即k16-k1,但是,由于算法计算过程,要先计算出k1,存入存储单元,由k1再计算出k2,再存入另一个存储单元,依次递推,计算出k16,用作第一个解密时使用的轮密钥,第二个解密密钥为k15,由存储单元存储的值中取出,第三个解密密钥是k14,同样由存储单元中给出,依次到第十六个解密密钥。即从第一个周期至第十六个周期每个周期产生一个加密密钥,依次存放在存储单元中,从第十六个周期开始,从存储单元中倒序输出,即从第十六个至第三十二个周期每个周期输出一个此轮解密需要的轮密钥。此方法在存储密钥时需要15个48比特的寄存器或者存储单元来存储密钥,且产生并使用解密密钥时总共需要32个周期。
发明内容
针对现有技术中存在的DES加解密密钥生成器所需周期数及存储单元多的问题,提出了一种DES加解密密钥生成器及密钥生成方法,本发明可以将加密密钥生成过程与解密密钥生成过程结合起来,根据加解密标志信号来判断属于加密运算还是解密运算后,利用化简的结果,当需要解密密钥时,不再需要16个48比特的存储单元,同时将计算解密时的周期数减少了16个周期。
本发明的技术方案为:
一种DES加解密密钥生成器,其特征在于,包括控制单元、计算单元和输出寄存器单元;
控制单元分别与计算单元、输出寄存器连接,计算单元与输出寄存器单元连接;其中,
控制单元,用于控制DES加解密密钥生成器内的状态机的状态跳转;该状态机分为17个状态,分别为状态0到状态16,每一状态对应一周期;状态0时为等待状态,当密钥有效时控制该状态机每个周期进行一次跳转并将状态信息发送给计算单元;
计算单元,包括一加解密密钥生成表,其包括状态字段、密钥值字段、循环左移相对值字段、循环左移绝对值字段、解密密钥值字段和循环右移相对值字段;加密过程中,计算单元根据当前的状态信息和该状态在加解密密钥生成表中对应的密钥值、循环左移相对值计算每一周期的轮密钥和循环左移绝对值,存入到输出寄存器单元,以及根据输出寄存器单元的值计算当前生成的轮密钥并输出到加解密密钥生成表的密钥值字段;解密过程中,计算单元根据当前的状态信息和该状态在加解密密钥生成表中对应的循环左移绝对值计算每一周期的循环右移相对值,存入到输出寄存器单元,并根据输出寄存器单元的值计算对应周期的解密密钥值并输出到加解密密钥生成表的解密密钥值字段;
输出寄存器单元,用于对每个周期生成的循环左移/右移绝对值进行存储。
进一步的,所述计算单元包括按位置换矩阵PC-1、按位置换矩阵PC-2,用于完成循环左移或循环右移操作生成轮密钥或解密密钥值;其中,按位置换矩阵PC-1只对初始密钥进行操作。
进一步的,该加解密密钥生成表的状态字段的状态值包括状态1~状态16;其中,加密过程,状态1、2、9、16对应的循环左移相对值为1,其余状态对应的循环左移相对值为2;状态1对应的密钥值为初始密钥值;解密过程,状态1对应的循环右移相对值为0,状态2、9、16对应的循环右移相对值为1,其余状态对应的循环右移相对值为2。
进一步的,所述输出寄存器单元包括两个28位的数据寄存器C、D。
一种DES加解密密钥生成器的密钥生成方法,其步骤为:
1)在DES加解密密钥生成器内设置一加解密密钥生成表,包括状态字段、密钥值字段、循环左移相对值字段、循环左移绝对值字段、解密密钥值字段和循环右移相对值字段;其中,该DES加解密密钥生成器内的状态机分为17个状态,分别为状态0到状态16,每一状态对应一周期,状态0时为等待状态;
2)当密钥有效时,控制单元控制该状态机每个周期进行一次跳转,并将状态信息发送给计算单元;
3)加密过程中,计算单元根据当前的状态信息和该状态在加解密密钥生成表中对应的密钥值、循环左移相对值计算每一周期的轮密钥和循环左移绝对值,存入到输出寄存器单元,根据输出寄存器单元的值计算当前生成的轮密钥并输出到加解密密钥生成表的密钥值字段;解密过程中,计算单元根据当前的状态信息和该状态在加解密密钥生成表中对应的循环左移绝对值计算每一周期的循环右移相对值,存入到输出寄存器单一,并根据输出寄存器单元的值计算对应周期的解密密钥值并输出到加解密密钥生成表的解密密钥值字段;
4)输出寄存器单元对每个周期生成的循环左移/右移值进行存储。
本发明的核心内容是密钥生成的优化方法,下面结合表格进一步介绍本发明的内容。
表1给出加解密的密钥生成过程。其方法如图3所示,在加密过程中依次使用密钥值k1-k16,这16个密钥值的得出可以从表1的第三列循环左移的相对值得出,同时在第4列,计算出循环左移的绝对值。由于密钥值由2个28位的数据构成,因此循环左移绝对值为28位时,即为原值。对于加密过程,第二列的密钥值(即轮密钥)属于在线计算,计算好的当前的轮密钥,直接输出到输出寄存器(即不用存储),用于其它模块(加密模块)计算使用。
在解密过程中,使用的第一轮到第十六轮解密密钥分别为k16-k1,由于密钥的使用顺序与加密时相反,因此希望可以先求出k16,依次类推,最后求出k1,这样每次使用密钥后,即可丢弃而不需要存储,节省了面积。使用的方法是直接由初始密钥输入值直接求得k16,由第四列可知,k16为循环左移的绝对值为28,由于密钥值就是28位,循环左移28位就是原值,即解密过程中使用的第一个密钥k16为原始值,接着求取第二个,由第四列的循环左移绝对值为27,可知k15为原始输入循环左移绝对值27,或者循环右移1位得到,即k16的值相对循环右移1位得到,k14的循环左移绝对值为25,也就等价于循环右移绝对值3位,即由K15的值相对循环右移2位得到。依次类推,可以从k16的循环左移绝对值得出相对上一个解密轮密钥的循环右移次数,每经过一个周期得出一个即将使用解密密钥。最后一列正序为解密时,从第一个迭代周期开始,相对上一个周期的输出,需要循环右移的相对值。
总之,如表1所示,加密时每个周期相对循环左移的位数,每个解密时每个周期相对循环右移的位数。在加密过程中有循环左移相对值有1位和2位两种情况,在解密过程中有循环右移相对值0位、1位以及2位的情况。由于二者的相似度极高,因此,密钥生成器只需要一个状态机控制状态转移,而选择左移右移由加密还是解密操作来决定,且在密钥生成器只需要一个28*2位的数据寄存器即可,而传统的既有加密又有解密的密钥生成模块需要16*28*2位的数据寄存器,这是本发明可以使3DES模块面积小同时不影响速度的原因之一。
表1加解密密钥生成
根据加解密的不同及为以下三个标志位,如表2所示:
表2状态信号与操作关系
与现有技术相比,本发明的积极效果为:
使用本发明的生成器可以将加密密钥生成过程与解密密钥生成过程结合起来,根据加密或者解密的不同,从第一个周期开始每个周期输出一个需要加密/解密密钥,且不需要额外的存储单元存储密钥,同时将需要的逻辑单元化简到更少。本发明为一种DES高效加解密密钥生成器,可用于硬件实现,可以作为FPGA或者ASIC软核,同时为基于DES、3DES的算法、安全协议等提供了一个高速小面积的加解密密钥生成器。
附图说明
图1为传统密钥生成器结构图;
图2为传统密钥生成器的密钥生成方法示意图;
图3为本发明密钥生成器的密钥生成方法示意图;
图4为本发明密钥生成器结构图;
图5为本发明密钥生成器程序设计简化图。
具体实施方式
下面结合附图对本发明的具体实施方式及优势进行详细描述。
本发明的密钥生成器如图4所示,其包含控制单元、计算单元及输出寄存器单元。控制单元与计算单元及输出寄存器连接,并控制二者的计算、输出状态,计算单元计算完成的结果存入到输出寄存器。
密钥生成器控制单元:密钥生成器内部的状态机分为17个状态,分别从状态0到状态16。状态0时为等待状态,当密钥有效时开始进入状态1,之后每个周期进行一次跳转,依次从状态1跳转到状态2,3,……,16。当状态为16时,跳转回状态0进入下一次DES密钥加解密生成器的等待状态。
密钥生成器输出寄存器单元:采用两个28比特的寄存器C、D对每个周期生成的轮密钥进行存储。每个状态的输出都存入到这两个寄存器中,在状态16时的输出即为最后一个轮密钥。
密钥生成器计算单元:计算单元主要由PC-1、PC-2以及循环移位三种操作构成。PC-1是一个按位置换矩阵,将原始输入的64比特按照置换矩阵进行变换,如将原始密钥的第五位移动到第十位,类似的操作;PC-2操作也是一个按位置换的矩阵。只在初始密钥输入时的周期使用PC-1,使用方法是将输入的初始密钥进行PC-1变换,如图5所示,之后每一轮按照表1的约定将两个28位的寄存器C、D循环移位,每一轮移位后的结果再次存放在输出寄存器C、D中,对寄存器C、D进行PC-2操作后,即为轮密钥输出K。
密钥生成器接口如表3所示,此密钥生成器可用于DES加解密模块中,与DES加解密模块相连的方法是通过复位信号rst及时钟信号clk同步,同时将轮密钥的输出K及K_out_valid送入到加解密模块与明文等信息一同进行加解密操作,加密时输出16个周期的K及K_out_valid信号,分别为第一轮到第十六轮加密密钥值。此加解密密钥生成器的优势为将解密需要的周期数由32减少为16个周期,且减少了15个48位的轮密钥存储单元。
表3加解密密钥生成器接口

Claims (8)

1.一种DES加解密密钥生成器,其特征在于,包括控制单元、计算单元和输出寄存器单元;控制单元分别与计算单元、输出寄存器连接,计算单元与输出寄存器单元连接;其中,
控制单元,用于控制DES加解密密钥生成器内的状态机的状态跳转;该状态机分为17个状态,分别为状态0到状态16,每一状态对应一周期;状态0时为等待状态,当密钥有效时控制该状态机每个周期进行一次跳转并将状态信息发送给计算单元;
计算单元,包括一加解密密钥生成表,其包括状态字段、密钥值字段、循环左移相对值字段、循环左移绝对值字段、解密密钥值字段和循环右移相对值字段;加密过程中,计算单元根据当前的状态信息和该状态在加解密密钥生成表中对应的密钥值、循环左移相对值计算每一周期的轮密钥和循环左移绝对值,存入到输出寄存器单元,以及根据输出寄存器单元的值计算当前生成的轮密钥并输出到加解密密钥生成表的密钥值字段;解密过程中,计算单元根据当前的状态信息和该状态在加解密密钥生成表中对应的循环左移绝对值计算每一周期的循环右移相对值,存入到输出寄存器单元,并根据输出寄存器单元的值计算对应周期的解密密钥值并输出到加解密密钥生成表的解密密钥值字段;
输出寄存器单元,用于对每个周期生成的循环左移/右移绝对值进行存储。
2.如权利要求1所述的DES加解密密钥生成器,其特征在于,所述计算单元包括按位置换矩阵PC-1、按位置换矩阵PC-2,用于完成循环左移或循环右移操作生成轮密钥或解密密钥值;其中,按位置换矩阵PC-1只对初始密钥进行操作。
3.如权利要求1或2所述的DES加解密密钥生成器,其特征在于,该加解密密钥生成表的状态字段的状态值包括状态1~状态16;其中,加密过程,状态1、2、9、16对应的循环左移相对值为1,其余状态对应的循环左移相对值为2;状态1对应的密钥值为初始密钥值;解密过程,状态1对应的循环右移相对值为0,状态2、9、16对应的循环右移相对值为1,其余状态对应的循环右移相对值为2。
4.如权利要求1或2所述的DES加解密密钥生成器,其特征在于,所述输出寄存器单元包括两个28位的数据寄存器C、D。
5.一种DES加解密密钥生成器的密钥生成方法,其步骤为:
1)在DES加解密密钥生成器内设置一加解密密钥生成表,包括状态字段、密钥值字段、循环左移相对值字段、循环左移绝对值字段、解密密钥值字段和循环右移相对值字段;其中,该DES加解密密钥生成器内的状态机分为17个状态,分别为状态0到状态16,每一状态对应一周期,状态0时为等待状态;
2)当密钥有效时,控制单元控制该状态机每个周期进行一次跳转,并将状态信息发送给计算单元;
3)加密过程中,计算单元根据当前的状态信息和该状态在加解密密钥生成表中对应的密钥值、循环左移相对值计算每一周期的轮密钥和循环左移绝对值,存入到输出寄存器单元,根据输出寄存器单元的值计算当前生成的轮密钥并输出到加解密密钥生成表的密钥值字段;解密过程中,计算单元根据当前的状态信息和该状态在加解密密钥生成表中对应的循环左移绝对值计算每一周期的循环右移相对值,存入到输出寄存器单一,并根据输出寄存器单元的值计算对应周期的解密密钥值并输出到加解密密钥生成表的解密密钥值字段;
4)输出寄存器单元对每个周期生成的循环左移/右移值进行存储。
6.如权利要求5所述的方法,其特征在于,所述计算单元包括按位置换矩阵PC-1、按位置换矩阵PC-2,循环左移或循环右移操作。
7.如权利要求5或6所述的方法,其特征在于,该加解密密钥生成表的状态字段的状态值包括状态1~状态16;其中,加密过程,状态1、2、9、16对应的循环左移相对值为1,其余状态对应的循环左移相对值为2;解密过程,状态1对应的循环右移相对值为0,即为初始密钥值,状态2、9、16对应的循环右移相对值为1,其余状态对应的循环右移相对值为2。
8.如权利要求5所述的方法,其特征在于,所述寄存器存储单元包括两个28比特的寄存器C、D。
CN201710035180.0A 2017-01-17 2017-01-17 一种des加解密密钥生成器及密钥生成方法 Active CN106877999B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710035180.0A CN106877999B (zh) 2017-01-17 2017-01-17 一种des加解密密钥生成器及密钥生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710035180.0A CN106877999B (zh) 2017-01-17 2017-01-17 一种des加解密密钥生成器及密钥生成方法

Publications (2)

Publication Number Publication Date
CN106877999A true CN106877999A (zh) 2017-06-20
CN106877999B CN106877999B (zh) 2020-05-22

Family

ID=59157826

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710035180.0A Active CN106877999B (zh) 2017-01-17 2017-01-17 一种des加解密密钥生成器及密钥生成方法

Country Status (1)

Country Link
CN (1) CN106877999B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080056488A1 (en) * 2006-09-01 2008-03-06 Kabushiki Kaisha Toshiba Cryptographic module and ic card
CN101431405A (zh) * 2008-11-17 2009-05-13 暨南大学 Des加密电路和方法及其硬件电路实现方法
CN104092535A (zh) * 2014-07-24 2014-10-08 福建升腾资讯有限公司 一种实现des密码加密的方法
CN104301095A (zh) * 2014-10-13 2015-01-21 深圳中科讯联科技有限公司 Des轮运算方法和电路
CN105049203A (zh) * 2015-06-17 2015-11-11 复旦大学 一种支持多工作模式的可配置3des加解密算法电路

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080056488A1 (en) * 2006-09-01 2008-03-06 Kabushiki Kaisha Toshiba Cryptographic module and ic card
CN101431405A (zh) * 2008-11-17 2009-05-13 暨南大学 Des加密电路和方法及其硬件电路实现方法
CN104092535A (zh) * 2014-07-24 2014-10-08 福建升腾资讯有限公司 一种实现des密码加密的方法
CN104301095A (zh) * 2014-10-13 2015-01-21 深圳中科讯联科技有限公司 Des轮运算方法和电路
CN105049203A (zh) * 2015-06-17 2015-11-11 复旦大学 一种支持多工作模式的可配置3des加解密算法电路

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李杰等: ""数据加密中的DES加密算法详解"", 《商场现代化》 *
王立胜: ""数据加密标准DES分析及其攻击研究"", 《计算机工程》 *

Also Published As

Publication number Publication date
CN106877999B (zh) 2020-05-22

Similar Documents

Publication Publication Date Title
US7688974B2 (en) Rijndael block cipher apparatus and encryption/decryption method thereof
US5835599A (en) Muti-cycle non-parallel data encryption engine
US20120093308A1 (en) Apparatus and method for generating random data
CN105007154B (zh) 一种基于aes算法的加密解密装置
KR20180081559A (ko) 암호화 동작을 위한 키 시퀀스 생성
US20190268134A1 (en) Method and circuit for implementing a substitution table
US6732271B1 (en) Method of deciphering ciphered data and apparatus for same
CN103346878B (zh) 一种基于fpga高速串行io的保密通信方法
CN103731822A (zh) 一种祖冲之算法的实现系统及其方法
CN105916141A (zh) 一种自同步的祖冲之加解密算法的实现系统及其方法
CN116488794A (zh) 基于fpga的高速sm4密码模组实现方法及装置
US7257229B1 (en) Apparatus and method for key scheduling
CN116073987A (zh) 一种分组密码模式的可靠性设计方法、密码卡、服务器
Miroshnik et al. Uses of programmable logic integrated circuits for implementations of data encryption standard and its experimental linear cryptanalysis
CN104219045A (zh) Rc4 流密码生成器
TW595183B (en) Crypto-system with an inverse key evaluation circuit
US20120321079A1 (en) System and method for generating round keys
CN106877999B (zh) 一种des加解密密钥生成器及密钥生成方法
CN109039608B (zh) 一种基于双S核的8-bitAES电路
Wang et al. An ultra compact block cipher for serialized architecture implementations
Anusha et al. Analysis and comparison of symmetric key cryptographic algorithms on FPGA
CN113922949B (zh) 一种基于clefia-sha3的密码协处理器
CZ296186B6 (cs) Zpusob kryptografické konverze binárních datovýchbloku
CN103051443B (zh) Aes密钥扩展的方法
CN112054889B (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
GR01 Patent grant
GR01 Patent grant