一种高效并行GCM实现方法技术

技术编号:23938213 阅读:30 留言:0更新日期:2020-04-25 03:59
本发明专利技术涉及一种高效并行GCM模块,其中,包括:运算调度模块、n个加解密模块、乘法核模块和参数配置模块;运算调度模块对多个加解密模块进行管理,包括预设各个加解密模块的初始加密数据,启动加解密模块运算,将加密结果依次传输到乘法核模块;n个加解密模块进行分组数据加解密,并输出密文和明文;乘法核模块根据附加信息A和密文C,产生鉴别标识T,用于指示根据GCM模式经加密的消息是否可信;参数配置模块根据GCM运算速率配置加解密模块的数量及乘法核运算速率。本发明专利技术的目的是提供一种高效GCM模块方式,该实现方式可根据GCM加解密速率要求配置加解密模块的数量和乘法核的运算速率,实现速度与面积的动态调整。

An efficient implementation of parallel GCM

【技术实现步骤摘要】
一种高效并行GCM实现方法
本专利技术涉及一种高速加解密器,具体的说是一种基于对称分组算法的GCM方法。
技术介绍
GCM(GaloisCounterMode)是用于对称密钥加密的块密码的操作模式,块密码是对称为“块”的固定长度的位组进行操作的对称密钥密码。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,…,nGHASH函数的定义为: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(GaloisCounterMode)模块,可实现加密速率和硬件实现面积的动态调整;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.一种高效并行GCM模块,其特征在于,包括:/n运算调度模块、n个加解密模块、乘法核模块和参数配置模块;/n运算调度模块对多个加解密模块进行管理,包括预设各个加解密模块的初始加密数据,启动加解密模块运算,将加密结果依次传输到乘法核模块;/nn个加解密模块进行分组数据加解密,并输出密文和明文;/n乘法核模块根据附加信息A和密文C,产生鉴别标识T,用于指示根据GCM模式经加密的消息是否可信;/n参数配置模块根据GCM运算速率配置加解密模块的数量及乘法核运算速率。/n

【技术特征摘要】
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.如权利...

【专利技术属性】
技术研发人员:冯志华原晋杰裴可万星梁书铭余仲宋峙峰邓威吴飞李燕婷张勇
申请(专利权)人:北京计算机技术及应用研究所
类型:发明
国别省市:北京;11

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

1