CN103746796B - 一种实现智能卡sm4 密码算法的协处理器 - Google Patents

一种实现智能卡sm4 密码算法的协处理器 Download PDF

Info

Publication number
CN103746796B
CN103746796B CN201410025955.2A CN201410025955A CN103746796B CN 103746796 B CN103746796 B CN 103746796B CN 201410025955 A CN201410025955 A CN 201410025955A CN 103746796 B CN103746796 B CN 103746796B
Authority
CN
China
Prior art keywords
module
data
register file
exported
computing
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.)
Expired - Fee Related
Application number
CN201410025955.2A
Other languages
English (en)
Other versions
CN103746796A (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.)
China Vision Intelligent Card Reader Co ltd
Original Assignee
CHINA VISION MICROELECTRONIC Co Ltd
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 CHINA VISION MICROELECTRONIC Co Ltd filed Critical CHINA VISION MICROELECTRONIC Co Ltd
Priority to CN201410025955.2A priority Critical patent/CN103746796B/zh
Publication of CN103746796A publication Critical patent/CN103746796A/zh
Application granted granted Critical
Publication of CN103746796B publication Critical patent/CN103746796B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种实现智能卡SM4密码算法的协处理器,该协处理器包括:接口模块、有限状态机模块、寄存器文件模块和逻辑功能模块,其中,接口模块用于实现与外部的控制模块进行数据交互;有限状态机模块用于对寄存器文件模块和逻辑功能模块进行控制,并向接口模块返回运行状态信号;寄存器文件模块用于对相应寄存器进行读/写操作,及将数据送到逻辑功能模块进行处理并取回相应的结果;逻辑功能模块用于对寄存器文件模块发送来的数据轮流进行密钥扩展的轮运算和加/解密的轮运算,直至32轮结束,并向寄存器文件模块返回每次运算的结果。实施本发明的技术方案,使协处理器面积小且应用灵活性高。

Description

一种实现智能卡SM4密码算法的协处理器
技术领域
本发明涉及通讯领域,尤其涉及一种实现智能卡SM4密码算法的协处理器。
背景技术
随着科技的进步和人们对信息安全要求的不断提高,智能卡已经在日常成活中得到广泛应用。在交通、金融、教育等领域均可以看到智能卡的身影。
SM4算法是由国家商用密码管理局在2006年1月公布的一种分组密码算法,主要用于无线局域网的通讯,是第一个官方公布的商用密码算法。国家商用密码管理局批准其为商用密码行业标准,命名为SM4算法。SM4算法采用非平衡的Feistel结构,具有较强的抵抗差分攻击的能力,安全强度达到国际分组密码算法标准。
SM4算法的明文和密钥长度均为128比特,加密轮数为32。在第一轮操作是直接对输入的数据进行轮运算。在后面的轮运算中,SM4算法对上一轮函数的输出数据进行轮运算。在进行完32轮运算后,把数据进行顺序倒置后输出。其中每轮用到的轮密钥由密钥扩展算法对输入的密钥扩展得到,扩展算法和加密算法类似,每经过一次轮运算就输出一个轮密钥,总共需要生成32个轮密钥,依次用在不同的加密轮运算中。SM4算法的解密变换与加密变换结构相同,不同的仅是轮密钥的使用顺序。
然而,目前,通常分别针对扩展算法和加密算法设置两套运算模块,因此,使得协处理器芯片的面积较大,应用的灵活性较低。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述协处理器芯片面积大、应用的灵活性低的缺陷,提供一种实现智能卡SM4密码算法的协处理器,面积小且应用灵活性高。
本发明解决其技术问题所采用的技术方案是:构造一种实现智能卡SM4密码算法的协处理器,包括:接口模块、有限状态机模块、寄存器文件模块和逻辑功能模块,其中,
所述接口模块用于实现与外部的控制模块进行数据交互;
所述有限状态机模块用于根据所述接口模块的加/解密命令对所述寄存器文件模块和所述逻辑功能模块进行控制,并向所述接口模块返回运行状态信号;
所述寄存器文件模块用于根据所述接口模块的读/写命令对相应寄存器进行读/写操作,及在所述有限状态机模块的控制下,将数据送到所述逻辑功能模块进行处理并取回相应的结果;
所述逻辑功能模块用于在所述有限状态机模块的控制下,对所述寄存器文件模块发送来的数据轮流进行密钥扩展的轮运算和加/解密的轮运算,直至32轮结束,并向所述寄存器文件模块返回每次运算的结果。
在本发明所述的实现智能卡SM4密码算法的协处理器中,所述逻辑功能模块包括:
常数生成模块,用于根据所述有限状态机模块所输出的轮数,生成用于密钥扩展的常数;
第一选择器,用于根据所述有限状态机模块所输出的密钥扩展轮运算控制信号或加/解密轮运算控制信号,选择输出来自所述常数生成模块的常数或来自所述寄存器文件模块的轮密钥;
第一异或运算模块,用于对所述第一选择器所输出的数据与所述寄存器文件模块所输出的第一组明/密文数据、第二组明/密文数据、第三组明/密文数据进行异或运算;
S盒运算模块,用于对所述第一异或运算模块所输出的数据进行非线性运算;
第一线性运算模块,用于对所述S盒运算模块所输出的数据进行用于加/解密的第一线性运算;
第二线性运算模块,用于对所述S盒运算模块所输出的数据进行用于密钥扩展的第二线性运算;
第二异或运算模块,用于对所述第一线性运算模块所输出的数据与所述寄存器文件模块所输出的第四组明/密文数据进行异或运算;
第三异或运算模块,用于对所述第二线性运算模块所输出的数据与所述寄存器文件模块所输出的第四组明/密文数据进行异或运算;
第二选择器,用于根据所述有限状态机模块所输出的密钥扩展轮运算控制信号或加/解密轮运算控制信号,选择输出来自所述第二异或运算模块的数据或来自所述第三异或运算模块的数据。
在本发明所述的实现智能卡SM4密码算法的协处理器中,所述S盒运算模块包括四个并行的S盒运算单元,每个S盒运算单元对8比特的输入数据进行非线性运算。
在本发明所述的实现智能卡SM4密码算法的协处理器中,所述S盒运算单元的数学模型为:
S=(a*A1+C1)-1*A2+C2
其中,S为S盒运算单元的输出数据,a为输入数据,C1、C2为(1,1,0,0,1,0,1,1);
A 1 = A 2 = 11100101 11110010 01111001 10111100 01011110 00101111 10010111 11001011 .
实施本发明的技术方案,该协处理器的逻辑功能模块在有限状态机模块的控制下,通过对轮函数复用来实现密钥扩展功能和加/解密功能,无需针对密钥扩展轮运算算法和加密轮运算算法设置两套运算模块,因此,能在很小的协处理器芯片上实现完整的SM算法,降低了协处理器芯片的面积,增强了应用的灵活性,降低了实现代价,具有良好的应用前景。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实现智能卡SM4密码算法的协处理器实施例一的逻辑图;
图2是图1中逻辑功能模块优选实施例的逻辑图。
具体实施方式
图1是本发明实现智能卡SM4密码算法的协处理器实施例一的逻辑图,该协处理器包括接口模块1、有限状态机模块2、寄存器文件模块3和逻辑功能模块4,其中,接口模块1分别与有限状态机模块2和寄存器文件模块3连接,有限状态机模块2分别与接口模块1、寄存器文件模块3和逻辑功能模块4连接,寄存器文件模块3分别与接口模块1、有限状态机模块2和逻辑功能模块4连接,逻辑功能模块4分别与有限状态机模块2和寄存器文件模块3模块连接。而且,接口模块1用于实现与外部的控制模块(未示出)进行数据交互,例如,从外部的控制模块接收读/写命令或加/解密命令,及接收待写入的数据或待加/解密的数据;还向外部的控制模块发送所读的数据或加/解密后的数据。有限状态机模块2用于根据接口模块1的加/解密命令对寄存器文件模块3和逻辑功能模块4进行控制,并向接口模块1返回运行状态信号。寄存器文件模块3用于根据接口模块1的读/写命令对相应寄存器进行读/写操作,及在有限状态机模块2的控制下,将数据送到逻辑功能模块4进行处理并取回相应的结果,在此需说明的是,在进行写操作时,将从接口模块1所接收的待加/解密的128比特数据分四组存储在存储器中,每组32比特数据。逻辑功能模块4用于在有限状态机模块2的控制下,对寄存器文件模块3发送来的数据轮流进行密钥扩展的轮运算和加/解密的轮运算,直至32轮结束,并向寄存器文件模块3返回每次运算的结果。
实施本实施例的技术方案,该协处理器的逻辑功能模块4在有限状态机模块2的控制下,通过对轮函数复用来实现密钥扩展功能和加/解密功能,无需针对密钥扩展轮运算算法和加密轮运算算法设置两套运算模块,因此,能在很小的协处理器芯片上实现完整的SM算法,降低了协处理器芯片的面积,增强了应用的灵活性,降低了实现代价,具有良好的应用前景。
图2是图1中逻辑功能模块优选实施例的逻辑图,该逻辑功能模块包括:常数生成模块41、第一选择器42、第一异或运算模块43、S盒运算模块44、第一线性运算模块45、第二线性运算模块46、第二异或运算模块47、第三异或运算模块48和第二选择器49。其中,常数生成模块41用于根据有限状态机模块2所输出的轮数,生成用于密钥扩展的常数;第一选择器42用于根据有限状态机模块2所输出的密钥扩展轮运算控制信号或加/解密轮运算控制信号,选择输出来自常数生成模块41的常数或来自寄存器文件模块3的轮密钥;第一异或运算模块43用于对第一选择器42所输出的数据与寄存器文件模块3所输出的第一组明/密文数据、第二组明/密文数据、第三组明/密文数据进行异或运算;S盒运算模块44用于对第一异或运算模块43所输出的数据进行非线性运算;第一线性运算模块45用于对S盒运算模块44所输出的数据进行用于加/解密的第一线性运算;第二线性运算模块46用于对S盒运算模块44所输出的数据进行用于密钥扩展的第二线性运算;第二异或运算模块47用于对第一线性运算模块45所输出的数据与寄存器文件模块3所输出的第四组明/密文数据进行异或运算;第三异或运算模块48用于对第二线性运算模块46所输出的数据与寄存器文件模块3所输出的第四组明/密文数据进行异或运算;第二选择器49用于根据有限状态机模块2所输出的密钥扩展轮运算控制信号或加/解密轮运算控制信号,选择输出来自第二异或运算模块47的数据或来自第三异或运算模块48的数据。
下面结合图1和图2具体说明该协处理器的工作原理:接口模块1处理外部的控制模块发送来的命令,实现对有限状态机模块2和寄存器文件模块3的控制。如果外部的控制模块发送写数据命令,接口模块1则把数据写入到寄存器文件模块3中相应的寄存器中;如果外部的控制模块发送读数据命令,接口模块1则从寄存器文件模块3中相应的寄存器中读取数据并发给外部的控制模块;如果外部的控制模块发送是加/解密命令,接口模块1则把命令发给有限状态机模块2,并监控有限状态机模块2的运行状态信号,直到运算结束。
当有限状态机模块2收到接口模块1发来的加/解密命令后,通过控制寄存器文件模块3和逻辑功能模块4来完成32轮的密钥扩展和32轮的加/解密,并把最终运行状态发送给接口模块。
逻辑功能模块3在有限状态机模块2的控制下,对寄存器文件模块3送来的数据轮流进行密钥扩展的轮运算和加/解密的轮运算,并把把运算结果发送给寄存器文件模块3。
当进行密钥扩展运算时,常数生成模块41根据有限状态机模块2所输出的轮数生成常数,同时,第一选择器42在有限状态机模块2的控制下选择输出该常数。第一异或运算模块43对第一组明/密文数据、第二组明/密文数据、第三组明/密文数据和该常数进行异或运算;S盒运算模块44对第一异或运算模块43的输出进行S盒操作;第二线性运算模块46对S盒运算模块44的输出进行线性运算;第三异或运算模块48对第二线性运算模块46的输出和第四组明/密文数据进行异或运算。最后,第二选择器49在有限状态机模块2的控制下,选择输出来自第三异或运算模块48的数据,并将该数据存入寄存器文件模块3的相应寄存器中。而且,每经过一次密钥扩展轮运算就输出一个轮密钥,总共需要生成32个轮密钥,依次用在不同的加/解密轮运算中。
当进行加/解密运算时,第一选择器42在有限状态机模块2的控制下选择输出来自寄存器文件模块3的相应寄存器中的轮密钥;第一异或运算模块43对第一选择器42所输出的数据与寄存器文件模块3所输出的第一组明/密文数据、第二组明/密文数据、第三组明/密文数据进行异或运算;S盒运算模块44用于对第一异或运算模块43所输出的数据进行非线性运算;第一线性运算模块45对S盒运算模块44的输出进行线性运算;第二异或运算模块47对第一线性运算模块45的输出和第四组明/密文数据进行异或运算。最后,第二选择器49在有限状态机模块2的控制下,选择输出来自第二异或运算模块47的数据,并将该数据存入寄存器文件模块3的相应寄存器中。
另外,优选地,S盒运算模块包括四个并行的S盒运算单元,每个S盒运算单元对8比特的输入数据进行非线性运算。另外,该S盒运算单元采用基于代数结构的生成方法。对于8比特的输入数据a,首先进行仿射变换得到a*A1+C1,其次,对a*A1+C1在有限域GF(28)上进行求逆运算得到(a*A1+C1)-1,然后对(a*A1+C1)-1再进行仿射变换得到(a*A1+C1)-1*A2+C2,其中,向量C1、C2为(1,1,0,0,1,0,1,1),GF(28)由不可约多项式x8+x7+x6+x5+x4+x3+x2+1生成变换矩阵A1和A2 11100101 11110010 01111001 10111100 01011110 00101111 10010111 11001011 .
因此,可确定每个S盒运算单元的数学模型为:
S=(a*A1+C1)-1*A2+C2
其中,S为S盒运算单元的输出数据,a为输入数据。
这种采用基于代数结构的S盒实现方法,相比传统的查表法,能进一步降低协处理器实现SM4算法的实现代价。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

Claims (3)

1.一种实现智能卡SM4密码算法的协处理器,其特征在于,包括:接口模块(1)、有限状态机模块(2)、寄存器文件模块(3)和逻辑功能模块(4),其中,
所述接口模块(1)用于实现与外部的控制模块进行数据交互;
所述有限状态机模块(2)用于根据所述接口模块(1)的加/解密命令对所述寄存器文件模块(3)和所述逻辑功能模块(4)进行控制,并向所述接口模块(1)返回运行状态信号;
所述寄存器文件模块(3)用于根据所述接口模块(1)的读/写命令对相应寄存器进行读/写操作,及在所述有限状态机模块(2)的控制下,将数据送到所述逻辑功能模块(4)进行处理并取回相应的结果;
所述逻辑功能模块(4)用于在所述有限状态机模块(2)的控制下,对所述寄存器文件模块(3)发送来的数据轮流进行密钥扩展的轮运算和加/解密的轮运算,直至32轮结束,并向所述寄存器文件模块(3)返回每次运算的结果;
其中,所述逻辑功能模块(4)包括:
常数生成模块(41),用于根据所述有限状态机模块(2)所输出的轮数,生成用于密钥扩展的常数;
第一选择器(42),用于根据所述有限状态机模块(2)所输出的密钥扩展轮运算控制信号或加/解密轮运算控制信号,选择输出来自所述常数生成模块(41)的常数或来自所述寄存器文件模块(3)的轮密钥;
第一异或运算模块(43),用于对所述第一选择器(42)所输出的数据与所述寄存器文件模块(3)所输出的第一组明/密文数据、第二组明/密文数据、第三组明/密文数据进行异或运算;
S盒运算模块(44),用于对所述第一异或运算模块(43)所输出的数据进行非线性运算;
第一线性运算模块(45),用于对所述S盒运算模块(44)所输出的数据进行用于加/解密的第一线性运算;
第二线性运算模块(46),用于对所述S盒运算模块(44)所输出的数据进行用于密钥扩展的第二线性运算;
第二异或运算模块(47),用于对所述第一线性运算模块(45)所输出的数据与所述寄存器文件模块(3)所输出的第四组明/密文数据进行异或运算;
第三异或运算模块(48),用于对所述第二线性运算模块(46)所输出的数据与所述寄存器文件模块(3)所输出的第四组明/密文数据进行异或运算;
第二选择器(49),用于根据所述有限状态机模块(2)所输出的密钥扩展轮运算控制信号或加/解密轮运算控制信号,选择输出来自所述第二异或运算模块(47)的数据或来自所述第三异或运算模块(48)的数据。
2.根据权利要求1所述的实现智能卡SM4密码算法的协处理器,其特征在于,所述S盒运算模块包括四个并行的S盒运算单元,每个S盒运算单元对8比特的输入数据进行非线性运算。
3.根据权利要求2所述的实现智能卡SM4密码算法的协处理器,其特征在于,所述S盒运算单元的数学模型为:
S=(a*A1+C1)-1*A2+C2
其中,S为S盒运算单元的输出数据,a为输入数据,C1、C2为(1,1,0,0,1,0,1,1);
A 1 = A 2 = 11100101 11110010 01111001 10111100 01011110 00101111 10010111 11001011 .
CN201410025955.2A 2014-01-20 2014-01-20 一种实现智能卡sm4 密码算法的协处理器 Expired - Fee Related CN103746796B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410025955.2A CN103746796B (zh) 2014-01-20 2014-01-20 一种实现智能卡sm4 密码算法的协处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410025955.2A CN103746796B (zh) 2014-01-20 2014-01-20 一种实现智能卡sm4 密码算法的协处理器

Publications (2)

Publication Number Publication Date
CN103746796A CN103746796A (zh) 2014-04-23
CN103746796B true CN103746796B (zh) 2017-01-04

Family

ID=50503788

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410025955.2A Expired - Fee Related CN103746796B (zh) 2014-01-20 2014-01-20 一种实现智能卡sm4 密码算法的协处理器

Country Status (1)

Country Link
CN (1) CN103746796B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9513913B2 (en) * 2014-07-22 2016-12-06 Intel Corporation SM4 acceleration processors, methods, systems, and instructions
US9467279B2 (en) 2014-09-26 2016-10-11 Intel Corporation Instructions and logic to provide SIMD SM4 cryptographic block cipher functionality
CN104579636B (zh) * 2015-02-16 2018-01-05 滨州职业学院 一种超高速实现sm4算法的系统及其运行方法
CN105024804A (zh) * 2015-06-10 2015-11-04 国网智能电网研究院 一种高效可配的对称密钥装置及配对方法
CN112436941A (zh) * 2020-11-03 2021-03-02 海光信息技术股份有限公司 支持标识密码算法的协处理器、方法、芯片及电子设备
CN114629665B (zh) * 2022-05-16 2022-07-29 百信信息技术有限公司 一种用于可信计算的硬件平台

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101101624A (zh) * 2007-07-31 2008-01-09 北京华大恒泰科技有限责任公司 加密控制系统及方法
CN101599828A (zh) * 2009-06-17 2009-12-09 刘霁中 一种高效的rsa加解密方法及其协处理器
CN103336920A (zh) * 2013-05-29 2013-10-02 东南大学 用于无线传感网络soc芯片的安全系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101101624A (zh) * 2007-07-31 2008-01-09 北京华大恒泰科技有限责任公司 加密控制系统及方法
CN101599828A (zh) * 2009-06-17 2009-12-09 刘霁中 一种高效的rsa加解密方法及其协处理器
CN103336920A (zh) * 2013-05-29 2013-10-02 东南大学 用于无线传感网络soc芯片的安全系统

Also Published As

Publication number Publication date
CN103746796A (zh) 2014-04-23

Similar Documents

Publication Publication Date Title
CN103746796B (zh) 一种实现智能卡sm4 密码算法的协处理器
CN101626289B (zh) Aes加密芯片的设计方法及电脑加密机
CN104639314A (zh) 基于aes加密/解密算法的装置和流水控制方法
CN103167213B (zh) 基于Cat映射与超混沌Lorenz系统的数字图像加密方法
CN103503362B (zh) 数据处理装置、数据处理方法以及程序
CN102025484A (zh) 一种分组密码加解密方法
CN105959107B (zh) 一种新型高安全的轻量级sfn分组密码实现方法
CN110166223A (zh) 一种国密sm4的快速软件实现方法
CN101431405B (zh) Des加密方法及其硬件电路实现方法
CN101702709A (zh) 一种适用于mips处理器的aes加密单元
CN102801519A (zh) 一种实现aes加解密的方法及装置
CN104219045B (zh) Rc4 流密码生成器
CN105117653B (zh) 一种近红外光谱数据加密方法
CN107481294A (zh) 一种基于混沌映射的图像加密算法及系统
CN103336920B (zh) 用于无线传感网络soc芯片的安全系统
CN102932135A (zh) 一种3des加密方法
CN106982116A (zh) 一种基于可逆逻辑电路的aes的本地文件加密方法
EP1625693A2 (en) A hardware implementation of the mixcolumn / invmixcolumn functions
CN107171782A (zh) 一种基于可逆逻辑电路的aes私密日志加密方法
CN106100826B (zh) 一种数据变换方法和装置
CN102857334B (zh) 一种实现aes加解密的方法及装置
CN103546277B (zh) 一种智能卡sm4算法的dpa攻击与密钥还原方法及系统
John Cryptography for resource constrained devices: A survey
Cui et al. A new image encryption algorithm based on DNA dynamic encoding and hyper-chaotic system
CN105721139A (zh) 一种适用于有限io资源的fpga的aes加解密方法及电路

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200914

Address after: 518000, Shenzhen, Guangdong, Futian District Futian street, China Road, excellent Merlin Center Plaza (North District) 4, 1205

Patentee after: CHINA-VISION INTELLIGENT CARD READER Co.,Ltd.

Address before: 518000 Guangdong Province, Shenzhen city Futian District Mei Hua Lu Shen Hua Science and Technology Industrial Park, 1 floor East Building 4 A

Patentee before: CHINA VISION MICROELECTRONIC Co.,Ltd.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170104

CF01 Termination of patent right due to non-payment of annual fee