CN111064563A - 一种高效并行gcm实现方法 - Google Patents
一种高效并行gcm实现方法 Download PDFInfo
- Publication number
- CN111064563A CN111064563A CN201911272368.2A CN201911272368A CN111064563A CN 111064563 A CN111064563 A CN 111064563A CN 201911272368 A CN201911272368 A CN 201911272368A CN 111064563 A CN111064563 A CN 111064563A
- Authority
- CN
- China
- Prior art keywords
- encryption
- module
- decryption
- gcm
- multiplication core
- 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
Links
Images
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
-
- 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/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及一种高效并行GCM模块,其中,包括:运算调度模块、n个加解密模块、乘法核模块和参数配置模块;运算调度模块对多个加解密模块进行管理,包括预设各个加解密模块的初始加密数据,启动加解密模块运算,将加密结果依次传输到乘法核模块;n个加解密模块进行分组数据加解密,并输出密文和明文;乘法核模块根据附加信息A和密文C,产生鉴别标识T,用于指示根据GCM模式经加密的消息是否可信;参数配置模块根据GCM运算速率配置加解密模块的数量及乘法核运算速率。本发明的目的是提供一种高效GCM模块方式,该实现方式可根据GCM加解密速率要求配置加解密模块的数量和乘法核的运算速率,实现速度与面积的动态调整。
Description
技术领域
本发明涉及一种高速加解密器,具体的说是一种基于对称分组算法的GCM方法。
背景技术
GCM(Galois Counter Mode)是用于对称密钥加密的块密码的操作模式,块密码是对称为“块”的固定长度的位组进行操作的对称密钥密码。GCM采用对称分组算法的计数器模式及Ghash函数,同时产生密文和鉴别标识码。
GCM进行加密运算时有四个输入信号:加密密钥Key,初始化向量IV,明文P及附加鉴别信息A;有两个输出信号:密文C及鉴别标识码T。将P和A按128位分组,分别记为:P1,P2,P3,…,P(n-1),Pn*和A1,A2,A3,…,A(m-1),Am*。其中Pn*和Am*的长度分别为u和v(1≦u,v≦128),其他分组长度为128位。
GCM加密算法定义如下所示:
H=E(K,0128)
Yi=incr(Yi-1),i=1,…,n
其中||表示并置符合,len()返回一个数据串长度,E(K,Y)表示用密钥K对Y进行SM4加密,incr()表示将参数加1并和232进行取模运算。
GCM解密算法定义如下所示:
H=E(K,0128)
Yi=incr(Yi-1),i=1,…,n
GHASH函数的定义为:GHASH(H,A,C)=Xm+n+1,而Xi的表示如下所示:
对称分组算法包含但不限于AES或SM4,一般分组数据为128位,运算周期根据轮密钥循环迭代的次数不同,实现方式分别为32个时钟周期或16个时钟周期,而乘法核的运算周期最小为1个时钟周期,根据上述GHASH函数的定义,乘法核在加解密数据有效时启动乘法运算,在实际运算过程中乘法核会出现等待状态,等待加解密运算结果,效率较低。为提高运算效率,减少乘法核的运算等待时间,加解密运算速度要与乘法核模块运算速率匹配。
发明内容
本发明的目的在于提供一种高效并行GCM模块,用于解决上述现有技术的问题。
本发明一种高效并行GCM模块,其中,包括:运算调度模块、n个加解密模块、乘法核模块和参数配置模块;运算调度模块对多个加解密模块进行管理,包括预设各个加解密模块的初始加密数据,启动加解密模块运算,将加密结果依次传输到乘法核模块;n个加解密模块进行分组数据加解密,并输出密文和明文;乘法核模块根据附加信息A和密文C,产生鉴别标识T,用于指示根据GCM模式经加密的消息是否可信;参数配置模块根据GCM运算速率配置加解密模块的数量及乘法核运算速率。
根据本发明的高效并行GCM模块的一实施例,其中,根据GCM运算速率,配置多个加解密模块并行进行数据加解密。
根据本发明的高效并行GCM模块的一实施例,其中,乘法核模块利用GHASH函数产生鉴别标识T。
根据本发明的高效并行GCM模块的一实施例,其中,加解密模块采用对称分组算法,加密周期为32个时钟周期或16个时钟周期。
根据本发明的高效并行GCM模块的一实施例,其中,当GCM运算速率确定后,参数配置模块选择并行加解密模块的数量及乘法核运算周期,使并行加解密模块的数量与乘法核运算速率匹配。多个加解密模块同时进行数据加解密,并将加密结果依次传输到乘法核模块进行GHASH运算,当前加解密模块运算结果传输完成后立刻进行下一轮加解密运算,乘法核模块在数据有效时一直循环进行运算。
根据本发明的高效并行GCM模块的一实施例,其中,GCM运算启动后,算法调度模块首先启动加解密运算模块计算出H值,而后等待接收Y0值,乘法器模块接收到H值后,开始计算Y0值,如果IV长度不等于96bits,循环接收IV值进行乘法运算,利用GHASH(H,{},IV)返回值作为Y0,如果IV长度等于96bits,将IV||031||1作为Y0;Y0计算完成后乘法器模块开始接收附加消息鉴别码A,进行附加消息鉴别码初始值运算,而算法调度模块接收到Y0值后,通过预置初始值模块分别给各加解密运算模块预置计数器初始值,而后同时启动多个加解密运算模块并行进行数据加解密;各个加解密模块并行进行数据加解密运算,运算结果寄存到寄存器,并依次顺序输出到乘法核模块,当某个加解密模块运算结果被读取后,读取的该加解密模块开始进行下一轮运算,运算调度模块将下一个加解密模块的运算结果传送到乘法核模块;乘法核模块完成附加消息鉴别码初始运算后,读取E(K,Y0)信息进行寄存,而后读取E(K,Yi)进行一组加密或解密数据的输出,在加密运算时,明文P与E(K,Yi)进行异或运算得到密文P,在解密运算时,密文C与E(K,Yi)进行异或运算得到明文P;在加密运算时,加密结果C与乘法核运算值进行异或运算后作为GHASH函数的输入;在解密运算时,将需要解密的密文C与乘法核运算值进行异或运算后作为GHASH函数的输入;将GHASH(H,A,C)函数的运算结果与E(K,Y0)进行异或运算后得到鉴别标识T。
本发明一种高效并行GCM(Galois Counter Mode)模块,可实现加密速率和硬件实现面积的动态调整;GCM算法模块包含运算调度模块、乘法核模块及参数配置模块;加解密模块采用对称分组算法,主要完成分组数据的加/解密操作,并输出密文/明文,乘法核模块根据附加信息A和密文C,利用GHASH函数产生鉴别标识T。参数配置模块根据加密速率要求配置加解密模块的数量及乘法核的运算速率,当GCM运算速率高时,由于对称算法运算时间大于乘法核运算时间,为减少乘法核等待时间,提高运算效率,可根据GCM运算速率配置多个加解密模块并行进行数据加解密。当GCM运算速率低时,此时加解密模块的数量最少,乘法核模块可降低运算速率,减少硬件实现面积,实现运算速度及面积的动态调整。
附图说明
图1为GCM加/解码算法模块整体框图;
图2为GCM加/解码算法模块实现框图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明一种高效并行GCM模块,包括:GCM算法基于对称分组加解密算法,包括但不限于AES或SM4,主要包含运算调度模块(1),加解密模块1(2),加解密模块n(3),乘法核模块(4)和参数配置模块(5),其中加解密模块n(3)中的n表示第n个加解密模块;运算调度模块(1)对多个加解密模块进行管理,包括预设各个加解密模块的初始加密数据,启动加解密模块运算,将加密结果依次传输到乘法核模块;加解密模块1(2)和加解密模块n(3)主要进行分组数据加解密,并输出密文和明文;乘法核模块(4)根据附加信息A和密文C,利用GHASH函数产生鉴别标识T,用于指示根据GCM模式经加密的消息是否可信;参数配置模块根据GCM运算速率配置加解密模块的数量及乘法核运算速率,当GCM运算速率高时,由于对称算法运算时间大于乘法核运算时间,为减少乘法核等待时间,提高运算效率,可根据运算速率配置多个加解密模块并行进行数据加解密。当GCM运算速率低时,此时加解密模块的数量最少,乘法核模块可降低运算速率,减少硬件实现面积,实现运算速度及面积的动态调整。
加解密模块1(2)和加解密模块n(3)采用对称分组算法,加密周期为32个时钟周期或16个时钟周期,而乘法核模块运算周期小于对称算法运算周期,最快为1个时钟周期。当GCM运算速率确定后,通过参数配置模块选择并行加解密模块的数量及乘法核运算周期,使并行加解密模块的数量与乘法核运算速率匹配。多个加解密模块同时进行数据加解密,并将加密结果依次传输到乘法核模块进行GHASH运算,当前加解密模块运算结果传输完成后立刻进行下一轮加解密运算,乘法核模块在数据有效时一直循环进行运算。该方法减少了乘法核等待时间,充分利用多个并行加解密模块的性能。
如图1以及图2所示,本发明一种高效并行GCM模块,图1所示是本发明的整体框图。该算法基于分组对称加密算法,包括运算调度模块,加解密模块1,加解密模块n和乘法核模块,其中加解密模块n中的n表示第n个加解密模块。对称算法加解密模块运算周期为32个时钟周期或16个时钟周期,而乘法核模块运算周期小于加解密模块的运算周期。为了减少乘法核模块运算等待时间,可同时启动多个加解密运算模块并行进行数据加解密,并将运算结果依次传输到乘法核模块,加解密数据传输完成后开始下一轮分组数据加解密运算直至最后一组数据运算完成。乘法核模块根据附加鉴别码A及传输的加解密数据,利用GHASH函数得到鉴别标识T,用于指示根据GCM模式经加密的消息是否可信。
如图2所示,本发明所述GCM算法实现框图说明如下:
(1)参数配置模块根据GCM算法速率配置加解密模块数量及乘法核运算速率,然后开始进行算法运算;
(2)GCM运算启动后,算法调度模块首先启动加解密运算模块0计算出H值,而后等待接收Y0值;
(3)乘法器模块接收到H值后,开始计算Y0值。如果IV长度不等于96bits,循环接收IV值进行乘法运算,利用GHASH(H,{},IV)返回值作为Y0,如果IV长度等于96bits,将IV||031||1作为Y0;
(4)Y0计算完成后乘法器模块开始接收附加消息鉴别码A,进行附加消息鉴别码初始值运算。而算法调度模块接收到Y0值后,通过预置初始值模块分别给加解密运算模块1、加解密运算模块2、...加解密运算模块n预置计数器初始值,而后同时启动多个加解密运算模块并行进行数据加解密;
(4)各个加解密模块并行进行数据加解密运算,运算结果寄存到寄存器,并依次顺序输出到乘法核模块。当某个加解密模块运算结果被读取后,该模块开始进行下一轮运算,运算调度模块将下一个加解密模块的运算结果传送到乘法核模块;
(5)乘法核模块完成附加消息鉴别码初始运算后,读取E(K,Y0)信息进行寄存,而后读取E(K,Yi)进行一组加密或解密数据的输出,在加密运算时,明文P与E(K,Yi)进行异或运算得到密文P,在解密运算时,密文C与E(K,Yi)进行异或运算得到明文P;
(6)在加密运算时,加密结果C与乘法核运算值进行异或运算后作为GHASH函数的输入;在解密运算时,直接将需要解密的密文C与乘法核运算值进行异或运算后作为GHASH函数的输入;
(7)最后将GHASH(H,A,C)函数的运算结果与E(K,Y0)进行异或运算后得到鉴别标识T。
本发明设计了一种GCM算法实现的模块,可实现速度和面积的动态调整。GCM算法可通过参数配置模块实现速度和面积的动态调整。如果GCM算法加解密速率高,则根据单个加解密模块的性能决定需要配置的并行加解密模块的数量及对应的乘法核模块运算周期,此时GCM算法性能高,而硬件实现面积及难度相对较大;如果GCM算法加解密速率低,则根据单个加解密模块的性能配置最少的加解密模块,此时乘法核的运算速率也可对应降低,这种方法可降低硬件实现面积,降低实现难度。本发明介绍的GCM算法实现方式运算速度可调,硬件实现灵活,复杂度低,适用于在FPGA及ASIC上实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (6)
1.一种高效并行GCM模块,其特征在于,包括:
运算调度模块、n个加解密模块、乘法核模块和参数配置模块;
运算调度模块对多个加解密模块进行管理,包括预设各个加解密模块的初始加密数据,启动加解密模块运算,将加密结果依次传输到乘法核模块;
n个加解密模块进行分组数据加解密,并输出密文和明文;
乘法核模块根据附加信息A和密文C,产生鉴别标识T,用于指示根据GCM模式经加密的消息是否可信;
参数配置模块根据GCM运算速率配置加解密模块的数量及乘法核运算速率。
2.如权利要求1所述的高效并行GCM模块,其特征在于,根据GCM运算速率,配置多个加解密模块并行进行数据加解密。
3.如权利要求1所述的高效并行GCM模块,其特征在于,乘法核模块利用GHASH函数产生鉴别标识T。
4.如权利要求1所述的高效并行GCM模块,其特征在于,加解密模块采用对称分组算法,加密周期为32个时钟周期或16个时钟周期。
5.如权利要求3所述的高效并行GCM模块,其特征在于,当GCM运算速率确定后,参数配置模块选择并行加解密模块的数量及乘法核运算周期,使并行加解密模块的数量与乘法核运算速率匹配。多个加解密模块同时进行数据加解密,并将加密结果依次传输到乘法核模块进行GHASH运算,当前加解密模块运算结果传输完成后立刻进行下一轮加解密运算,乘法核模块在数据有效时一直循环进行运算。
6.如权利要求1所述的高效并行GCM模块,其特征在于,GCM运算启动后,算法调度模块首先启动加解密运算模块计算出H值,而后等待接收Y0值,乘法器模块接收到H值后,开始计算Y0值,如果IV长度不等于96bits,循环接收IV值进行乘法运算,利用GHASH(H,{},IV)返回值作为Y0,如果IV长度等于96bits,将IV||031||1作为Y0;
Y0计算完成后乘法器模块开始接收附加消息鉴别码A,进行附加消息鉴别码初始值运算,而算法调度模块接收到Y0值后,通过预置初始值模块分别给各加解密运算模块预置计数器初始值,而后同时启动多个加解密运算模块并行进行数据加解密;
各个加解密模块并行进行数据加解密运算,运算结果寄存到寄存器,并依次顺序输出到乘法核模块,当某个加解密模块运算结果被读取后,读取的该加解密模块开始进行下一轮运算,运算调度模块将下一个加解密模块的运算结果传送到乘法核模块;
乘法核模块完成附加消息鉴别码初始运算后,读取E(K,Y0)信息进行寄存,而后读取E(K,Yi)进行一组加密或解密数据的输出,在加密运算时,明文P与E(K,Yi)进行异或运算得到密文P,在解密运算时,密文C与E(K,Yi)进行异或运算得到明文P;
在加密运算时,加密结果C与乘法核运算值进行异或运算后作为GHASH函数的输入;在解密运算时,将需要解密的密文C与乘法核运算值进行异或运算后作为GHASH函数的输入;
将GHASH(H,A,C)函数的运算结果与E(K,Y0)进行异或运算后得到鉴别标识T。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911272368.2A CN111064563B (zh) | 2019-12-12 | 2019-12-12 | 一种高效并行gcm实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911272368.2A CN111064563B (zh) | 2019-12-12 | 2019-12-12 | 一种高效并行gcm实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111064563A true CN111064563A (zh) | 2020-04-24 |
CN111064563B CN111064563B (zh) | 2023-04-07 |
Family
ID=70298915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911272368.2A Active CN111064563B (zh) | 2019-12-12 | 2019-12-12 | 一种高效并行gcm实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111064563B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114124354A (zh) * | 2021-11-23 | 2022-03-01 | 中国银行股份有限公司 | 确定性鉴别加解密装置及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060126835A1 (en) * | 2004-12-13 | 2006-06-15 | Kim Kwang O | High-speed GCM-AES block cipher apparatus and method |
CN101499896A (zh) * | 2008-01-29 | 2009-08-05 | 财团法人工业技术研究院 | 迦罗瓦计数模式中的平行运算的赫序方法与结构 |
CN101827107A (zh) * | 2010-05-11 | 2010-09-08 | 南京大学 | 一种基于ieee802.1ae协议的gcm高速加解密器 |
CN109714151A (zh) * | 2019-01-14 | 2019-05-03 | 盛科网络(苏州)有限公司 | 基于aes-gcm的芯片数据处理方法及系统 |
CN110336661A (zh) * | 2019-09-02 | 2019-10-15 | 灵长智能科技(杭州)有限公司 | Aes-gcm数据处理方法、装置、电子设备及存储介质 |
-
2019
- 2019-12-12 CN CN201911272368.2A patent/CN111064563B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060126835A1 (en) * | 2004-12-13 | 2006-06-15 | Kim Kwang O | High-speed GCM-AES block cipher apparatus and method |
CN101499896A (zh) * | 2008-01-29 | 2009-08-05 | 财团法人工业技术研究院 | 迦罗瓦计数模式中的平行运算的赫序方法与结构 |
CN101827107A (zh) * | 2010-05-11 | 2010-09-08 | 南京大学 | 一种基于ieee802.1ae协议的gcm高速加解密器 |
CN109714151A (zh) * | 2019-01-14 | 2019-05-03 | 盛科网络(苏州)有限公司 | 基于aes-gcm的芯片数据处理方法及系统 |
CN110336661A (zh) * | 2019-09-02 | 2019-10-15 | 灵长智能科技(杭州)有限公司 | Aes-gcm数据处理方法、装置、电子设备及存储介质 |
Non-Patent Citations (5)
Title |
---|
AKASHI SATOH: "High-Speed Parallel Hardware Architecture for Galois Counter Mode" * |
LI LI等: "An implementation method for SM4-GCM on FPGA" * |
MENG ZHAO等: "High-Speed Architecture Design and Implementation for SMS4-GCM", 《2011 THIRD INTERNATIONAL CONFERENCE ON COMMUNICATIONS AND MOBILE COMPUTING》 * |
赵晶晶;李丽;潘红兵;许俊;吴志刚;林军;: "IEEE802.1AE中GCM的高速硬件实现" * |
赵晶晶等: "IEEE802.1AE中GCM的高速硬件实现", 《电子与信息学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114124354A (zh) * | 2021-11-23 | 2022-03-01 | 中国银行股份有限公司 | 确定性鉴别加解密装置及方法 |
CN114124354B (zh) * | 2021-11-23 | 2024-04-16 | 中国银行股份有限公司 | 确定性鉴别加解密装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111064563B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9209967B2 (en) | Precalculated encryption key | |
Rodriguez-Henriquez et al. | 4.2 Gbits/sec Single-Chip FPGA Implementation of the AES Algorithm. | |
Henzen et al. | FPGA parallel-pipelined AES-GCM core for 100G Ethernet applications | |
US7827408B1 (en) | Device for and method of authenticated cryptography | |
US8233619B2 (en) | Implementation of AES encryption circuitry with CCM | |
CN108476132B (zh) | 用于加密操作的密钥序列生成的方法、设备和计算机可读介质 | |
US9417847B2 (en) | Low depth combinational finite field multiplier | |
US7657757B2 (en) | Semiconductor device and method utilizing variable mode control with block ciphers | |
Buhrow et al. | A highly parallel AES-GCM core for authenticated encryption of 400 Gb/s network protocols | |
Lopez-Trejo et al. | An FPGA implementation of CCM mode using AES | |
Pirzada et al. | Implementation of CMAC Authentication Algorithm on FPGA for Satellite Communication | |
CN105429748A (zh) | 一种数据加密方法和系统 | |
CN111064563B (zh) | 一种高效并行gcm实现方法 | |
Pirzada et al. | The parallel CMAC authenticated encryption algorithm for satellite communication | |
Deshpande et al. | AES encryption engines of many core processor arrays on FPGA by using parallel, pipeline and sequential technique | |
Jeddi et al. | A novel authenticated encryption algorithm for RFID systems | |
Mohan et al. | Revised aes and its modes of operation | |
Bajaj et al. | AES algorithm for encryption | |
CN103731257A (zh) | 一种Piccolo加密算法硬件实现方法 | |
Alam et al. | Single chip encryptor/decryptor core implementation of AES algorithm | |
KR100494560B1 (ko) | Rijndael암호를 이용한 블록 데이터 실시간암호복호화 장치 및 방법 | |
Lin et al. | The Design of a High-Throughput Hardware Architecture for the AES-GCM Algorithm | |
RU2775253C1 (ru) | Способ криптографического преобразования с одновременной выработкой производного ключа шифрования | |
Nguyen et al. | High Throughput–Resource Saving Hardware Implementation of AES-CCM for Robust Security Network | |
KR100835718B1 (ko) | Aes에서의 암호화 장치 및 그 방법 |
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 |