CN106789056A - 一种硬件加密系统和方法 - Google Patents
一种硬件加密系统和方法 Download PDFInfo
- Publication number
- CN106789056A CN106789056A CN201710063423.1A CN201710063423A CN106789056A CN 106789056 A CN106789056 A CN 106789056A CN 201710063423 A CN201710063423 A CN 201710063423A CN 106789056 A CN106789056 A CN 106789056A
- Authority
- CN
- China
- Prior art keywords
- sub
- key
- pipeline stage
- ciphertext
- current
- 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
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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
- H04L9/16—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种硬件加密系统和方法,其中,该方法通过至少一个S盒对初始明文进行非线性变换,生成待处理明文;处理单元根据确定的拆分阈值,将待处理明文拆分成至少两个子明文;选择控制电路根据确定的初始密钥生成至少十六个子密钥;流水线站单元针对每一个子明文,利用至少十六个子密钥,对当前子明文进行加密,生成与当前子明文对应的当前子密文,该当前子密文经过处理单元整合后,生成待发送密文。该方法通过S盒、处理单元、选择控制电路和流水线站单元实现DES算法,并对初始明文进行加密,这种通过硬件方式实现的DES算法能够降低系统资源的占用率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种硬件加密系统和方法。
背景技术
DES(Data Encryption Standard,数据加密算法)在成为加密标准到今天,经历了长期的考验。实践证明,DES算法的安全性是能够满足大部分的安全要求的。
目前,在利用DES算法对数据进行加密时,主要通过软件方式实现。但是,DES算法本身并没有大量的复杂数学计算,在加密过程和密钥生成过程中仅有逻辑运算和查表运算,通过软件实现的DES算法会在很大程度上占用系统资源,造成系统性能的严重下降。
发明内容
本发明实施例提供了一种硬件加密系统和方法,能够降低系统资源的占用率。
一方面,本发明实施例提供了一种硬件加密系统,包括:至少一个S盒、流水线站单元、密钥产生单元和处理单元;
所述至少一个S盒,用于接收外部发送的初始明文,对所述初始明文进行非线性变换,生成待处理明文;
所述处理单元,用于确定拆分阈值,根据所述拆分阈值,对所述至少一个S盒生成的所述待处理明文进行拆分,生成至少两个子明文,对所述流水线站单元生成的当前子密文进行整合,生成待发送密文;
所述密钥产生单元,包括:选择控制电路;
所述选择控制电路,用于确定初始密钥,根据所述初始密钥生成至少十六个子密钥;
所述流水线站单元,用于针对所述处理单元拆分成的每一个所述子明文,利用所述选择控制电路生成的所述至少十六个子密钥,对当前子明文进行加密,生成与所述当前子明文对应的所述当前子密文。
优选地,
所述流水线站单元包括:流水线站;
所述选择控制电路,进一步用于为所述至少十六个子密钥分配所述流水线站,确定所述至少十六个子密钥的执行顺序;
所述执行顺序中第一个所述子密钥对应的所述流水线站,用于获取所述当前子明文,利用所述第一个所述子密钥,对所述当前子明文进行加密,生成加密后的中间子密文;
所述执行顺序中最后一个所述子密钥对应的所述流水线站,用于获取当前流水线站对应的当前子密钥在所述执行顺序中的上一个所述子密钥对应的所述流水线站加密后的所述中间子密文,利用所述当前子密钥,对所述中间子密文进行加密,输出所述当前子密文;
所述执行顺序中第一个所述子密钥与最后一个所述子密钥之间的所述子密钥对应的所述流水线站,用于获取当前流水线站对应的当前子密钥在所述执行顺序中的上一个所述子密钥对应的所述流水线站加密后的所述中间子密文,利用所述当前子密钥,对所述中间子密文进行加密。
优选地,
所述流水线站单元中的所述流水线站的数量不小于所述子密钥的数量;
所述处理单元,进一步用于在所述流水线站单元的所述流水线站中,确定与所述子密钥的数量相同的待使用流水线站;
所述选择控制电路,用于为每一个所述子密钥分配一个所述待使用流水线站。
优选地,
所述流水线站单元中的所述流水线站的数量小于所述子密钥的数量;
所述选择控制电路为每一个所述子密钥分配一个所述流水线站。
优选地,
所述密钥产生单元,进一步包括:循环移位寄存器;
所述循环移位寄存器与所述流水线站是一一对应的;
所述循环移位寄存器,用于存储对应的所述流水线站的所述子密钥,并按照预设的周期为对应的所述流水线站提供所述子密钥。
优选地,
所述密钥产生单元,进一步包括:压缩置换电路;
所述压缩置换电路,用于将每个所述流水线站生成的所述中间子密文进行压缩置换后,发送给下一个流水线站。
另一方面,本发明实施例提供了一种硬件加密方法,包括:
至少一个S盒接收外部发送的初始明文,对所述初始明文进行非线性变换,生成待处理明文;
选择控制电路确定初始密钥,根据所述初始密钥生成至少十六个子密钥;
处理单元确定拆分阈值,根据所述拆分阈值,对所述待处理明文进行拆分,生成至少两个子明文;
流水线站单元针对每一个所述子明文,利用所述至少十六个子密钥,对当前子明文进行加密,生成与所述当前子明文对应的当前子密文;
所述处理单元对所述当前子密文进行整合,生成待发送密文。
优选地,
所述流水线站单元包括:流水线站;
在根据所述初始密钥生成至少十六个子密钥之后,在所述利用所述至少十六个子密钥,对当前子明文进行加密之前,进一步包括:
所述选择控制电路确定所述至少十六个子密钥的执行顺序,为所述至少十六个子密钥分配所述流水线站;
所述流水线站单元针对每一个所述子明文,利用所述至少十六个子密钥,对当前子明文进行加密,生成与所述当前子明文对应的所述当前子密文,包括:
每个所述执行顺序中第一个所述子密钥对应的所述流水线站获取所述当前子明文,利用所述第一个所述子密钥,对所述当前子明文进行加密,生成加密后的中间子密文;
所述执行顺序中第一个所述子密钥与最后一个所述子密钥之间的所述子密钥对应的所述流水线站,获取当前流水线站对应的当前子密钥在所述执行顺序中的上一个所述子密钥对应的所述流水线站加密后的所述中间子密文,利用所述当前子密钥,对所述中间子密文进行加密;
所述执行顺序中最后一个所述子密钥对应的所述流水线站,获取当前流水线站对应的当前子密钥在所述执行顺序中的上一个所述子密钥对应的所述流水线站加密后的所述中间子密文,利用所述当前子密钥,对所述中间子密文进行加密,输出所述当前子密文。
优选地,
当所述流水线站单元中的所述流水线站的数量不小于所述子密钥的数量时;
在所述选择控制电路为所述至少十六个子密钥分配所述流水线站之前,进一步包括:
所述处理单元在所述流水线站中,确定与所述子密钥的数量相同的待使用流水线站;
所述选择控制电路为所述至少十六个子密钥分配所述流水线站,包括:
所述选择控制电路为每一个所述子密钥分配一个所述待使用流水线站。
优选地,
当所述流水线站单元中的所述流水线站的数量小于所述子密钥的数量时;
所述选择控制电路为所述至少十六个子密钥分配所述流水线站,包括:
所述选择控制电路为每一个所述子密钥分配一个所述流水线站。
优选地,
在所述选择控制电路为所述至少十六个子密钥分配所述流水线站之后,进一步包括:
循环移位寄存器存储对应的所述流水线站的所述子密钥,并按照预设的周期为对应的所述流水线站提供所述子密钥。
优选地,
在每个所述流水线站生成加密后的中间子密文之后,进一步包括:
压缩置换电路将每个所述流水线站生成的所述中间子密文进行压缩置换后,发送给下一个流水线站。
本发明实施例提供了一种硬件加密系统和方法,其中,该方法通过至少一个S盒对初始明文进行非线性变换,生成待处理明文;处理单元根据确定的拆分阈值,将待处理明文拆分成至少两个子明文;选择控制电路根据确定的初始密钥生成至少十六个子密钥;流水线站单元针对每一个子明文,利用至少十六个子密钥,对当前子明文进行加密,生成与当前子明文对应的当前子密文,该当前子密文经过处理单元整合后,生成待发送密文。该方法通过S盒、处理单元、选择控制电路和流水线站单元实现DES算法,并对初始明文进行加密,这种通过硬件方式实现的DES算法能够降低系统资源的占用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种硬件加密系统结构示意图;
图2是本发明一个实施例提供的另一种硬件加密系统结构示意图;
图3是本发明一个实施例提供的又一种硬件加密系统结构示意图;
图4是本发明一个实施例提供的再一种硬件加密系统结构示意图;
图5是本发明一个实施例提供的一种硬件加密方法流程图;
图6是本发明一个实施例提供的另一种硬件加密方法流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种硬件加密系统,包括:至少一个S盒101、流水线站单元102、密钥产生单元103和处理单元104;如图1所示,本发明实施例以一个S盒101为例进行说明。
至少一个S盒101,用于接收外部发送的初始明文,对初始明文进行非线性变换,生成待处理明文;
处理单元104,用于确定拆分阈值,根据拆分阈值,对至少一个S盒101生成的待处理明文进行拆分,生成至少两个子明文,对流水线站单元102生成的当前子密文进行整合,生成待发送密文;
密钥产生单元103,包括:选择控制电路1031;
选择控制电路1031,用于确定初始密钥,根据初始密钥生成至少十六个子密钥;
流水线站单元102,用于针对处理单元104拆分成的每一个子明文,利用选择控制电路1031生成的至少十六个子密钥,对当前子明文进行加密,生成与当前子明文对应的当前子密文。
该系统通过S盒、处理单元、选择控制电路和流水线站单元实现DES算法,并对初始明文进行加密,这种通过硬件方式实现的DES算法能够降低系统资源的占用率。
其中,选择控制电路确定初始密钥,可以通过多路选择器生成至少十六个子密钥,用于至少十六次迭代运算。产生的至少十六个子密钥同时并行输出,此种方式的好处是每一轮的密钥都会在每一轮的运算之前准备,便于采用流水线实现加密过程。选择控制电路还可以包括多路选择器,该至少十六个子密钥一次性通过多路选择器产生出来,类似于生成了一个“密钥池”,然后不同的轮数依次利用寄存器来保存并跟流水线同步。
例如,对于DES算法,一般初始密钥大小为64b,通过选择控制电路一次性产生十六个子密钥,每一个子密钥大小为64b,同时并行输出,用于十六次迭代运算。每一轮循环运算采用不同的子密钥。
在本发明的一个实施例中,为了提高对初始明文的加密效率,如图2所示,流水线站单元102,包括:流水线站1021;
选择控制电路1031,还用于为至少十六个子密钥分配流水线站1021,确定至少十六个子密钥的执行顺序;
执行顺序中第一个子密钥对应的流水线站1021,用于获取当前子明文,利用第一个子密钥,对当前子明文进行加密,生成加密后的中间子密文;
执行顺序中最后一个子密钥对应的流水线站1021,用于获取当前流水线站1021对应的当前子密钥在执行顺序中的上一个子密钥对应的流水线站1021加密后的中间子密文,利用当前子密钥,对中间子密文进行加密,输出当前子密文;
执行顺序中第一个子密钥与最后一个子密钥之间的子密钥对应的流水线站1021,用于获取当前流水线站1021对应的当前子密钥在执行顺序中的上一个子密钥对应的流水线站1021加密后的中间子密文,利用当前子密钥,对中间子密文进行加密。
其中,为了提高加密效率,本发明实施例采用了流水线的方式实现迭代运算。流水线是提高数字电路在单位时间内处理数据量的常用方法,是把在一个时钟周期内执行的逻辑操作分成几步较小的操作,并在多个较高速的时钟内完成。在这种结构中,与K轮加密对应的组合逻辑被均分为K个部分,这些分割得到的组合逻辑电路部分称为流水线站。通过这种方法,电路可以同时处理多个数据块,提高系统在单位时间内处理的的数据量,也就是速度。在每一个时钟周期,被部分处理过的数据块移人下一个流水线站,后续数据块则紧跟其上,占据它原来的位置。也就是说,一个流水线电路可以同时加密与他所含有的流水线站数量相等的数据块。以这种将循环展开为流水线的处理方式,展开后的流水线处理周期在理想情况下接近于基本结构处理周期时间的1/K。
为了最大程度地利用流水线站,提高加密效率,可以根据流水线站的数量确定拆分阈值。例如,初始明文为A,当前的流水线站的数量为3,则可以将初始明文为A拆分成3个子明文。流水线站按照一定的顺序对拆分形成的子密钥进行处理。例如,3个子明文分别为A1、A2、A3,流水线站按照A1、A2、A3的顺序进行处理,需要说明的是,该顺序并不是唯一的,但当对子密文进行整合时,需要按照初始明文拆分时对应的顺序。
由于生成的子密钥对应不同的迭代运算,为了保证后续的解密算法能够解密出迭代运算产生的待发送密文,至少十六个子密钥有确定的执行顺序。例如,现有子密钥A、B、C,选择控制电路确定执行顺序为B、A、C,则流水线站先执行子密钥B对应的迭代运算,接着执行子密钥A对应的迭代运算,最后执行子密钥C对应的迭代运算。
在本发明的一个实施例中,流水线站单元中的流水线站的数量不小于子密钥的数量;
处理单元104,进一步用于在流水线站单元102的流水线站1021中,确定与子密钥的数量相同的待使用流水线站1021;
选择控制电路1031,用于为每一个子密钥分配一个待使用流水线站1021。
例如,DES算法中,存在流水线站的数量为十八,子密钥的数量为十六。在十八个流水线站中,确定十六个待使用流水线站,并为每一个子密钥分配一个待使用流水线站,该流水线站按照对应的子密钥的执行顺序进行加密。
例如,按照执行顺序子密钥分别为Z1、Z2、Z3……Z16,待使用流水线站为A、B、C……P,这些待使用流水线站要对初始明文W拆分成的4个子明文W1、W2、W3、W4进行加密。流水线站A获取子明文W1,利用子密钥Z1对子明文W1进行加密,生成中间子密文X1,并将中间子密文X1发送给流水线站B,流水线站B利用子密钥Z2对中间子密文X1进行加密,生成中间子密文X2……以此类推,直至流水线站A、B、C……P完成对子明文W1的十六次加密过程,生成子明文W1对应的子密文。需要说明的是,当流水线站A将中间子密文X1发送给流水线站B后,紧接着获取子明文W2,并对子明文W2做相应的处理,使流水线站始终处于工作的状态,提高加密效率。
在本发明的一个实施例中,流水线站单元102中的流水线站1021的数量小于子密钥的数量;选择控制电路1031为每一个子密钥分配一个流水线站1021。
当流水线站的数量小于子密钥的数量时,多个子密钥可能对应一个流水线站,可以根据流水线站的实际处理情况进行动态的分配,也可以固定每一个流水线站对应的子密钥的数量。
在本发明的一个实施例中,为了保存分配的子密钥,并实现与流水线同步,如图3所示,密钥产生单元103,还包括:循环移位寄存器1032;
循环移位寄存器1032与流水线站1021是一一对应的;循环移位寄存器1032,用于存储对应的流水线站1021的子密钥,并按照预设的周期为对应的流水线站1021提供子密钥。
在本发明的一个实施例中,为了保证中间子密文在流水线站之间顺利传输,防止由于中间子密文的数据量过大影响加密过程,如图4所示,密钥产生单元103,还包括:压缩置换电路1033;
压缩置换电路1033,用于将每个流水线站1021生成的中间子密文进行压缩置换后,发送给下一个流水线站1021。
该压缩置换电路位于流水线站之间,根据执行顺序,在相邻的两个流水线站之间,设置压缩置换电路。例如,根据执行顺序,流水线站A、B、C依次执行加密过程,在A、B和B、C之间,分别设置一个压缩置换电路。
如图5所示,本发明实施例提供了一种硬件加密方法,该方法可以包括以下步骤:
步骤501:至少一个S盒接收外部发送的初始明文,对初始明文进行非线性变换,生成待处理明文;
步骤502:选择控制电路确定初始密钥,根据初始密钥生成至少十六个子密钥;
步骤503:处理单元确定拆分阈值,根据拆分阈值,对待处理明文进行拆分,生成至少两个子明文;
步骤504:流水线站单元针对每一个子明文,利用至少十六个子密钥,对当前子明文进行加密,生成与当前子明文对应的当前子密文;
步骤505:处理单元对当前子密文进行整合,生成待发送密文。
在图5所示的实施例中,该方法通过至少一个S盒对初始明文进行非线性变换,生成待处理明文;处理单元根据确定的拆分阈值,将待处理明文拆分成至少两个子明文;选择控制电路根据确定的初始密钥生成至少十六个子密钥;流水线站单元针对每一个子明文,利用至少十六个子密钥,对当前子明文进行加密,生成与当前子明文对应的当前子密文,该当前子密文经过处理单元整合后,生成待发送密文。该方法通过S盒、处理单元、选择控制电路和流水线站单元实现DES算法,并对初始明文进行加密,这种通过硬件方式实现的DES算法能够降低系统资源的占用率。
在本发明的一个实施例中,流水线站单元包括:流水线站;
该方法还包括:选择控制电路为至少十六个子密钥分配流水线站,确定至少十六个子密钥的执行顺序;
步骤504还包括:
执行顺序中第一个子密钥对应的流水线站获取当前子明文,利用第一个子密钥,对当前子明文进行加密,生成加密后的中间子密文;
每个执行顺序中第一个子密钥与最后一个子密钥之间的子密钥对应的流水线站,获取当前流水线站对应的当前子密钥在执行顺序中的上一个子密钥对应的流水线站加密后的中间子密文,利用当前子密钥,对中间子密文进行加密;
执行顺序中最后一个子密钥对应的流水线站,获取当前流水线站对应的当前子密钥在执行顺序中的上一个子密钥对应的流水线站加密后的中间子密文,利用当前子密钥,对中间子密文进行加密,输出当前子密文。
在本发明的一个实施例中,流水线站的数量与生成的子密钥的数量可能存在两种情况:
情况1:流水线站单元中的流水线站的数量不小于子密钥的数量;
在选择控制电路为至少十六个子密钥分配流水线站之前,进一步包括:处理单元在流水线站中,确定与子密钥的数量相同的待使用流水线站;
选择控制电路为至少十六个子密钥分配流水线站,包括:选择控制电路为每一个子密钥分配一个待使用流水线站。
情况2:流水线站单元中的流水线站的数量小于子密钥的数量;
选择控制电路为至少十六个子密钥分配流水线站,包括:选择控制电路为每一个子密钥分配一个流水线站。
在本发明的一个实施例中,为了保存分配的子密钥,并实现与流水线同步,在选择控制电路为至少十六个子密钥分配流水线站之后,进一步包括:循环移位寄存器存储对应的流水线站的子密钥,并按照预设的周期为对应的流水线站提供子密钥。
循环移位寄存器与流水线站是一一对应的,可以根据流水线站的处理速度,预先设置周期,根据该周期,每隔一段时间,为对应的流水线站提供子密钥。
在本发明的一个实施例中,为了保证中间子密文在流水线站之间顺利传输,防止由于中间子密文的数据量过大影响加密过程,在每个流水线站生成加密后的中间子密文之后,还包括:压缩置换电路将当前流水线站生成的中间子密文进行压缩置换后,发送给下一个流水线站。
如图6所示,本发明实施例以流水线站单元中的流水线站的数量为十八个为例,对硬件加密方法进行详细地说明,该方法包括以下步骤:
步骤601:S盒接收外部发送的初始明文,对初始明文进行非线性变换,生成待处理明文。
在本实施例中,为了增加初始明文的复杂度,提高加密后的密文的安全性,需要利用S盒对初始明文进行处理。S盒通过VHDL(VHSIC Hardware Description Language,超高速集成电路硬件描述语言)对初始明文进行非线性变换,生成待处理明文。需要说明的是,可以根据初始明文的数据大小设置S盒的数量,在本实施例中,以一个S盒为例进行说明。
步骤602:选择控制电路确定初始密钥,根据初始密钥生成十六个子密钥。
选择控制电路确定初始密钥为Z,通过选择控制电路生成十六个子密钥,分别为Z1、Z2、Z3……Z16,初始密钥与每一个子密钥的大小都为64b。
步骤603:选择控制电路确定十六个子密钥的执行顺序。
选择控制电路确定十六个子密钥的执行顺序为Z1、Z2、Z3……Z16。
步骤604:处理单元确定拆分阈值,根据拆分阈值,对待处理明文进行拆分,生成至少两个子明文。
可以根据流水线站的数量和子密钥的数量确定拆分阈值,保证每一个子密钥有对应的流水线站,并且,最大程度利用流水线站提高加密效率。在本实施例中,确定拆分阈值为十六,即对待处理明文进行拆分,生成十六个子明文,W1、W2、W3……W16。
步骤605:处理单元在十八个流水线站中,确定十六个待使用流水线站。
流水线站单元中存在十八个流水线站,从中确定十六个流水线站作为待使用流水线站,待使用流水线站包括:A、B、C……P。
步骤606:选择控制电路为每一个子密钥分配一个待使用流水线站。
此时,待使用流水线站的数量等于子密钥的数量,为每一个子密钥分配一个待使用流水线站,在本实施例中,子密钥Z1、Z2、Z3……Z16对应的待使用流水线站分别为A、B、C……P。
步骤607:循环移位寄存器存储对应的流水线站匹配的子密钥,并按照预设的周期为对应的流水线站提供子密钥。
循环移位寄存器与流水线站是一一对应的,待使用流水线站A、B、C……P对应的循环移位寄存器分别为S1、S2、S3……S16,分别存储子密钥Z1、Z2、Z3……Z16。预设的周期为5S,则每隔5S,循环移位寄存器为对应的流水线站提供子密钥。
步骤608:流水线站单元针对每一个子明文,执行顺序中第一个子密钥对应的流水线站获取当前子明文,利用第一个子密钥,对当前子明文进行加密,生成加密后的中间子密文。
将压缩置换电路将中间子密文经过压缩置换发送给执行顺序中下一个子密钥对应的流水线站。
针对子明文W1,流水线站A获取当前子明文W1,利用对应的循环移位寄存器中存储的子密钥Z1对当前子明文W1进行加密,生成中间子密文X1,经过压缩置换发送给执行顺序中下一个子密钥Z2对应的流水线站B。
步骤609:每个执行顺序中第一个子密钥与最后一个子密钥之间的子密钥对应的流水线站,获取当前流水线站对应的当前子密钥在执行顺序中的上一个子密钥对应的流水线站加密后的中间子密文,利用当前子密钥,对中间子密文进行加密。压缩置换电路将当前流水线站生成的中间子密文进行压缩置换后,发送给下一个流水线站。
流水线站B获取子密钥Z1加密后生成的中间子密文X1,利用子密钥Z2对中间子密文X1进行加密,生成中间子密文X2,经过压缩置换发送给执行顺序中下一个子密钥Z3对应的流水线站C。
以此类推,流水线站C、D、E……O,完成对当前子明文W1的十五次加密过程,生成中间子密文X15。将中间子密文X15经过压缩置换发送给执行顺序中下一个子密钥Z16对应的流水线站P。
步骤610:执行顺序中最后一个子密钥对应的流水线站,获取当前流水线站对应的当前子密钥在执行顺序中的上一个子密钥对应的流水线站加密后的中间子密文,利用当前子密钥,对中间子密文进行加密,输出当前子密文。
流水线站P获取子密钥Z15加密后生成的中间子密文X15,利用子密钥Z16对中间子密文X十六进行加密,输出与当前子明文W1对应的当前子密文M1。需要说明的是,子明文W2、W3……W16的过程与W1的处理过程类似,这里不再赘述。并且当流水线站A将中间子明文中间子密文X1发送给流水线站B后,紧接着获取子明文W2,并对子明文W2做相应的处理,使流水线站始终处于工作的状态,提高加密效率。
步骤611:处理单元对当前子密文进行整合,生成待发送密文。
将子明文W1、W2……W16加密生成的子密文M1、M2、M3……M16进行整合,生成待发送密文。
综上,本发明各个实施例至少具有如下有益效果:
1、在本发明实施例中,本发明实施例提供了一种硬件加密系统和方法,其中,该方法通过至少一个S盒对初始明文进行非线性变换,生成待处理明文;处理单元根据确定的拆分阈值,将待处理明文拆分成至少两个子明文;选择控制电路根据初始密钥生成至少十六个子密钥,流水线站单元针对每一个子明文,利用至少十六个子密钥,对当前子明文进行加密,生成与当前子明文对应的当前子密文;处理单元对当前子密文进行整合,生成待发送密文。该方法通过S盒、处理单元、选择控制电路和流水线站单元实现DES算法,并对初始明文进行加密,这种通过硬件方式实现的DES算法能够降低系统资源的占用率。
2、在本发明实施例中,为每一个子密钥分配对应的流水线站,采用流水线的方式针对初始明文拆分得到的每一个子明文,按照子密钥对应的执行顺序依次对每一个子明文进行至少十六次加密。同一时间,可以实现每一个子明文对应一个流水线站进行加密处理。
3、在本发明实施例中,前一个流水线站处理后的中间子密文需要经过压缩置换电路,再进入下一个流水线站,以避免中间子密文的数据量过大,造成传输缓慢,影响加密效率。
4、在本发明实施例中,通过循环移位寄存器存储与流水线站对应的子密钥,可以实现周期性地为对应的所述流水线站提供所述子密钥,可以提高流水线站的加密效率。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃·····”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种硬件加密系统,其特征在于,包括:至少一个S盒、流水线站单元、密钥产生单元和处理单元;
所述至少一个S盒,用于接收外部发送的初始明文,对所述初始明文进行非线性变换,生成待处理明文;
所述处理单元,用于确定拆分阈值,根据所述拆分阈值,对所述至少一个S盒生成的所述待处理明文进行拆分,生成至少两个子明文,对所述流水线站单元生成的当前子密文进行整合,生成待发送密文;
所述密钥产生单元,包括:选择控制电路;
所述选择控制电路,用于确定初始密钥,根据所述初始密钥生成至少十六个子密钥;
所述流水线站单元,用于针对所述处理单元拆分成的每一个所述子明文,利用所述选择控制电路生成的所述至少十六个子密钥,对当前子明文进行加密,生成与所述当前子明文对应的所述当前子密文。
2.根据权利要求1所述的硬件加密系统,其特征在于,
所述流水线站单元包括:流水线站;
所述选择控制电路,进一步用于为所述至少十六个子密钥分配所述流水线站,确定所述至少十六个子密钥的执行顺序;
所述执行顺序中第一个所述子密钥对应的所述流水线站,用于获取所述当前子明文,利用所述第一个所述子密钥,对所述当前子明文进行加密,生成加密后的中间子密文;
所述执行顺序中最后一个所述子密钥对应的所述流水线站,用于获取当前流水线站对应的当前子密钥在所述执行顺序中的上一个所述子密钥对应的所述流水线站加密后的所述中间子密文,利用所述当前子密钥,对所述中间子密文进行加密,输出所述当前子密文;
所述执行顺序中第一个所述子密钥与最后一个所述子密钥之间的所述子密钥对应的所述流水线站,用于获取当前流水线站对应的当前子密钥在所述执行顺序中的上一个所述子密钥对应的所述流水线站加密后的所述中间子密文,利用所述当前子密钥,对所述中间子密文进行加密。
3.根据权利要求2所述的硬件加密系统,其特征在于,
所述流水线站单元中的所述流水线站的数量不小于所述子密钥的数量;
所述处理单元,进一步用于在所述流水线站单元的所述流水线站中,确定与所述子密钥的数量相同的待使用流水线站;
所述选择控制电路,用于为每一个所述子密钥分配一个所述待使用流水线站;
或,
所述流水线站单元中的所述流水线站的数量小于所述子密钥的数量;
所述选择控制电路为每一个所述子密钥分配一个所述流水线站。
4.根据权利要求2所述的硬件加密系统,其特征在于,
所述密钥产生单元,进一步包括:循环移位寄存器;
所述循环移位寄存器与所述流水线站是一一对应的;
所述循环移位寄存器,用于存储对应的所述流水线站的所述子密钥,并按照预设的周期为对应的所述流水线站提供所述子密钥。
5.根据权利要求2-4任一所述的硬件加密系统,其特征在于,
所述密钥产生单元,进一步包括:压缩置换电路;
所述压缩置换电路,用于将每个所述流水线站生成的所述中间子密文进行压缩置换后,发送给下一个流水线站。
6.一种硬件加密方法,其特征在于,包括:
至少一个S盒接收外部发送的初始明文,对所述初始明文进行非线性变换,生成待处理明文;
选择控制电路确定初始密钥,根据所述初始密钥生成至少十六个子密钥;
处理单元确定拆分阈值,根据所述拆分阈值,对所述待处理明文进行拆分,生成至少两个子明文;
流水线站单元针对每一个所述子明文,利用所述至少十六个子密钥,对当前子明文进行加密,生成与所述当前子明文对应的当前子密文;
所述处理单元对所述当前子密文进行整合,生成待发送密文。
7.根据权利要求6所述的方法,其特征在于,
所述流水线站单元包括:流水线站;
在根据所述初始密钥生成至少十六个子密钥之后,在所述利用所述至少十六个子密钥,对当前子明文进行加密之前,进一步包括:
所述选择控制电路确定所述至少十六个子密钥的执行顺序,为所述至少十六个子密钥分配所述流水线站;
所述流水线站单元针对每一个所述子明文,利用所述至少十六个子密钥,对当前子明文进行加密,生成与所述当前子明文对应的所述当前子密文,包括:
所述执行顺序中第一个所述子密钥对应的所述流水线站获取所述当前子明文,利用所述第一个所述子密钥,对所述当前子明文进行加密,生成加密后的中间子密文;
每个所述执行顺序中第一个所述子密钥与最后一个所述子密钥之间的所述子密钥对应的所述流水线站,获取当前流水线站对应的当前子密钥在所述执行顺序中的上一个所述子密钥对应的所述流水线站加密后的所述中间子密文,利用所述当前子密钥,对所述中间子密文进行加密;
所述执行顺序中最后一个所述子密钥对应的所述流水线站,获取当前流水线站对应的当前子密钥在所述执行顺序中的上一个所述子密钥对应的所述流水线站加密后的所述中间子密文,利用所述当前子密钥,对所述中间子密文进行加密,输出所述当前子密文。
8.根据权利要求7所述的方法,其特征在于,
当所述流水线站单元中的所述流水线站的数量不小于所述子密钥的数量时;
在所述选择控制电路为所述至少十六个子密钥分配所述流水线站之前,进一步包括:
所述处理单元在所述流水线站中,确定与所述子密钥的数量相同的待使用流水线站;
所述选择控制电路为所述至少十六个子密钥分配所述流水线站,包括:
所述选择控制电路为每一个所述子密钥分配一个所述待使用流水线站;
或,
当所述流水线站单元中的所述流水线站的数量小于所述子密钥的数量时;
所述选择控制电路为所述至少十六个子密钥分配所述流水线站,包括:
所述选择控制电路为每一个所述子密钥分配一个所述流水线站。
9.根据权利要求7所述的硬件加密系统,其特征在于,
在所述选择控制电路为所述至少十六个子密钥分配所述流水线站之后,进一步包括:
循环移位寄存器存储对应的所述流水线站的所述子密钥,并按照预设的周期为对应的所述流水线站提供所述子密钥。
10.根据权利要求7-9任一所述的硬件加密系统,其特征在于,
在每个所述流水线站生成加密后的中间子密文之后,进一步包括:
压缩置换电路将当前流水线站生成的所述中间子密文进行压缩置换后,发送给下一个流水线站。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710063423.1A CN106789056A (zh) | 2017-02-03 | 2017-02-03 | 一种硬件加密系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710063423.1A CN106789056A (zh) | 2017-02-03 | 2017-02-03 | 一种硬件加密系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106789056A true CN106789056A (zh) | 2017-05-31 |
Family
ID=58956481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710063423.1A Pending CN106789056A (zh) | 2017-02-03 | 2017-02-03 | 一种硬件加密系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106789056A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109429222A (zh) * | 2017-08-22 | 2019-03-05 | 马鞍山明阳通信科技有限公司 | 一种对无线网络设备升级程序及通讯数据加密的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101431405A (zh) * | 2008-11-17 | 2009-05-13 | 暨南大学 | Des加密电路和方法及其硬件电路实现方法 |
CN102221990A (zh) * | 2011-05-26 | 2011-10-19 | 山东大学 | 针对aes对称加密算法的指令优化方法及其处理器 |
CN105049194A (zh) * | 2015-06-01 | 2015-11-11 | 北京时代民芯科技有限公司 | 一种流水线结构的sm4算法实现系统 |
CN105790930A (zh) * | 2016-04-29 | 2016-07-20 | 南京酷派软件技术有限公司 | 用于移动终端的信息加密方法、信息加密装置和移动终端 |
-
2017
- 2017-02-03 CN CN201710063423.1A patent/CN106789056A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101431405A (zh) * | 2008-11-17 | 2009-05-13 | 暨南大学 | Des加密电路和方法及其硬件电路实现方法 |
CN102221990A (zh) * | 2011-05-26 | 2011-10-19 | 山东大学 | 针对aes对称加密算法的指令优化方法及其处理器 |
CN105049194A (zh) * | 2015-06-01 | 2015-11-11 | 北京时代民芯科技有限公司 | 一种流水线结构的sm4算法实现系统 |
CN105790930A (zh) * | 2016-04-29 | 2016-07-20 | 南京酷派软件技术有限公司 | 用于移动终端的信息加密方法、信息加密装置和移动终端 |
Non-Patent Citations (2)
Title |
---|
石志国: "《计算机网络安全教程》", 28 February 2011 * |
高红梅: "基于USB和EDA的硬件加密系统", 《现代电子技术》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109429222A (zh) * | 2017-08-22 | 2019-03-05 | 马鞍山明阳通信科技有限公司 | 一种对无线网络设备升级程序及通讯数据加密的方法 |
CN109429222B (zh) * | 2017-08-22 | 2022-06-07 | 叶毅嵘 | 一种对无线网络设备升级程序及通讯数据加密的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1271839B1 (en) | AES Encryption circuit | |
CN104639314A (zh) | 基于aes加密/解密算法的装置和流水控制方法 | |
CN104852798B (zh) | 一种数据加解密系统及方法 | |
CN110880967B (zh) | 采用分组对称密钥算法对多消息并行加解密方法 | |
CN103731822B (zh) | 一种祖冲之算法的实现系统及其方法 | |
CN101764685A (zh) | 实现sms4算法的加解密系统 | |
CN105007154A (zh) | 一种基于aes算法的加密解密装置 | |
CN109495242A (zh) | 一种数据加密方法及数据加密设备 | |
JP2000066587A (ja) | データ処理装置及び通信システム並びに記録媒体 | |
CN101729242A (zh) | 对称分组密码的生成方法及其装置 | |
CN101431407A (zh) | 支持线程级加解密的密码处理器及其密码运算操作方法 | |
Lam et al. | An improved method for locating and extracting the eye in human face images | |
CN104219045B (zh) | Rc4 流密码生成器 | |
US9992053B1 (en) | Multi-channel, multi-lane encryption circuitry and methods | |
CN109033892A (zh) | 基于合成矩阵的轮变换复用电路及aes解密电路 | |
CN105577363A (zh) | 针对sm4密码算法的可扩展流水线电路及其实现方法 | |
CN106789056A (zh) | 一种硬件加密系统和方法 | |
CN114615069A (zh) | 一种Quartet轻量级加密算法的实现装置及方法 | |
CN109150495A (zh) | 一种轮变换复用电路及其aes解密电路 | |
CN108566271A (zh) | 复用轮变换电路、aes加密电路及其加密方法 | |
CN109033847A (zh) | Aes加密运算单元、aes加密电路及其加密方法 | |
EP1629626B1 (en) | Method and apparatus for a low memory hardware implementation of the key expansion function | |
Thirer | A pipelined FPGA implementation of an encryption algorithm based on genetic algorithm | |
CN115499152A (zh) | 一种基于寄存器优化的sm4快速软件实现方法 | |
JPH09251267A (ja) | 暗号化装置及び暗号化方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170531 |