CN108092760A - 一种分组密码的协处理器装置和非线性变换方法 - Google Patents
一种分组密码的协处理器装置和非线性变换方法 Download PDFInfo
- Publication number
- CN108092760A CN108092760A CN201611026082.2A CN201611026082A CN108092760A CN 108092760 A CN108092760 A CN 108092760A CN 201611026082 A CN201611026082 A CN 201611026082A CN 108092760 A CN108092760 A CN 108092760A
- Authority
- CN
- China
- Prior art keywords
- sbox
- control unit
- ram
- processor device
- 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.)
- 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/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/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种分组密码的协处理器装置和非线性变换方法。其中,所述协处理器装置包括配置单元、控制单元、SBOX‑RAM、寄存器单元和线性变换单元,配置单元外接总线,相互连接控制单元,控制单元相互连接SBOX‑RAM、寄存器单元和线性变换单元。本发明采用上述结构统一的协处理器装置,并基于非线性SBOX盒运算及其他的位置交换等线性运算,利用该协处理器装置配合软件配置或硬件配置,能够顺利实现DES/AES/SM1/SSF33/SM4的加解密算法,而且该协处理器装置的每一个单元既可软件实现,也可硬件实现,能够利用同一组寄存器完成配置及计算,极大地节省了芯片面积;并且,该协处理器装置综合利用软件及硬件安全措施,能够提高算法的安全防护。
Description
技术领域
本发明涉及集成电路安全保护技术领域, 尤其涉及分组密码算法运算的协处理器装置和非线性变换方法。
背景技术
分组加密算法通常都是硬件实现的。分组加密算法的结构类似,都是基于轮操作,每轮运算都包括SBOX(substitution BOX,置换盒)非线性单元和附加一些线性操来实现的。因此具有复用相关电路的基础。每种分组加密算法都涉及大量的寄存器单元用于存放数据、秘钥和轮运算的中间数据。
如图1所示,为现有的分组加密实现装置示意图。同时,分组加密算法还都涉及到SBOX变换,如果SBOX变换涉及到随机掩码,则每种算法至少需要1K的RAM(random accessmemory,随机存储器)存储空间用于SBOX的存放。目前已知的分组加密算法有5种,包括DES/AES/SM1/SSF33/SM4,涉及到的寄存器单元约有2.5K左右,RAM约为5K左右,占用的空间较大,也占用较大的芯片面积。
发明内容
针对上述现有技术中存在的不足,本发明的目的是提供一种分组密码协处理器装置,能够通过配置完成多种分组密码算法的运算。
为了达到上述技术目的,本发明所采用的技术方案是:
一种分组密码的协处理器装置,其特征在于,所述协处理器装置包括配置单元、控制单元、SBOX-RAM、寄存器单元和线性变换单元,其中,配置单元外接总线,相互连接控制单元,控制单元相互连接SBOX-RAM、寄存器单元和线性变换单元;
所述配置单元通过外接总线配置协处理器装置的功能,包括但不限于配置算法种类、运算轮数、是否掩码、运算启动与停止功能;
所述控制单元利用状态机控制数据流向,计算流程;
所述SBOX-RAM包括n组RAM单元,每组RAM单元,用于存放多种算法的SBOX置换表;
所述寄存器单元包括n组寄存器,每组寄存器,用于存储数据、秘钥及中间值;
所述线性变换单元,用于多种算法的线性变换。
一种分组密码的非线性变换方法,其具体步骤如下:
步骤1:首先通过外接总线将配置信息写入配置单元,最基本的配置功能,包括配置(1)算法种类、(2)运算轮数、(3)是否有掩码、(4)运算启动与停止这四类功能;
步骤2:通过外接总线将需要加密的数据和加密秘钥写入寄存器单元;
步骤3:通过外接总线写入步骤1的(4)配置运算启动;
步骤4:控制单元得到运算启动指令后,首先根据算法种类,将所需的SBOX置换表写入SBOX-RAM;如果步骤1的(3)是否有掩码,配置为带有随机掩码方案,则需将随机掩码写入并重新计算SBOX置换表的值并写入SBOX-RAM;
步骤5:控制单元首先从寄存器单元读出数据,根据算法种类,决定这些数据首先进行SBOX变换还是线性变换;
步骤6:如果进行SBOX变换,则控制单元根据从寄存器读出数据作为地址信号,读出SBOX-RAM的值作为变换结果,该变换结果作为线性变换单元的输入进行线性变换;
步骤7:进一步,需要根据算法种类选择采用哪种线性变换,线性变换结束后,输出结果给控制单元;
步骤8:控制单元将中间数据重新写入寄存器单元;
步骤9:一轮加密运算结束;
步骤10:循环上述步骤4~步骤9,直至运算轮数等于配置单元所配置的运算轮数;
步骤11:控制单元将结束标志输出给配置单元;
步骤12:总线读到运算结束的标志后,从寄存器单元读取加密结果。
本发明由于采用上述结构统一的协处理器装置,并基于非线性SBOX盒运算及其他的位置交换等线性运算,所获得的有益效果是, 利用该协处理器装置配合软件配置或硬件配置,能够顺利实现DES/AES/SM1/SSF33/SM4 的加解密算法,而且该协处理器装置包含寄存器单元、SBOX-RAM、线性变换单元和控制单元,其中,每一个单元既可以由软件实现,也可以由硬件实现,也可以灵活配置各单元的执行顺序;该协处理器装置的主要特点,是能够利用同一组寄存器完成配置及计算,复用其中大部分的运算单元则仅需寄存器单元0.5K左右,RAM约为1K左右,大大节省了芯片的面积;而且,该协处理器装置综合利用软件及硬件安全措施,能够提高了算法的安全防护。
下面结合附图和具体实施方式对本发明做进一步说明。
附图说明
图1是现有的分组密码实现装置结构示意图。
图2是本发明的分组密码协处理器装置结构示意图。
图3是本发明具体实施例的AES算法分组密码非线性变换方法示意图。
具体实施方式
参看图2,为本发明的分组密码协处理器装置结构示意图。该协处理器装置包括配置单元、控制单元、SBOX-RAM、寄存器单元和线性变换单元,其中,配置单元外接总线,相互连接控制单元,控制单元相互连接SBOX-RAM、寄存器单元和线性变换单元;配置单元通过外接总线配置协处理器装置的功能,包括但不限于配置算法种类、运算轮数、是否掩码、运算启动与停止功能;控制单元利用状态机控制数据流向,计算流程;SBOX-RAM包括n组RAM单元,每组RAM单元,用于存放多种算法的SBOX置换表;寄存器单元包括n组寄存器,每组寄存器,用于存储数据、秘钥及中间值;线性变换单元,用于多种算法的线性变换。
参看图3,为本发明具体实施例的AES算法分组密码非线性变换方法示意图,SB为SBOX 变换,SR为行移位,MC为列变。参看图3(A),为现有的AES分组加密方法运算原理图,可以看出,现有的AES分组加密方法的运算包含与密钥异或的初始化过程,SBOX非线性运算过程,SR行移位过程,MC列变换过程及密钥异或地过程。参看图3(B),是本发明所提供的方法将现有的AES分组加密方法的运算过程分解在本发明所述装置的各单元中所示,其中,初始化过程由控制单元B完成,数据存放在寄存器单元D中,SBOX信息存放在SBOX-RAM(C)中,线性变化单元Ln完成行移位、MC列变换过程及密钥异或地过程。
本发明具体实施例AES分组加密的非线性变换方法,具体运算过程如下:
步骤1:首先通过外接总线将配置信息写入配置单元,最基本的配置功能,包括配置(1)算法种类、(2)运算轮数、(3)是否有掩码、(4)运算启动与停止这四类功能;
步骤2:通过外接总线将需要加密的数据和加密秘钥写入寄存器单元;
步骤3:通过外接总线写入步骤1的(4)配置运算启动;
步骤4:控制单元得到运算启动指令后,首先根据算法种类,将所需的SBOX置换表写入SBOX-RAM;如果步骤1的(3)是否有掩码,配置为带有随机掩码方案,则需将随机掩码写入并重新计算SBOX置换表的值并写入SBOX-RAM;
步骤5:控制单元首先从寄存器单元读出数据,根据算法种类,决定这些数据首先进行SBOX变换还是线性变换;
步骤6:如果进行SBOX变换,则控制单元根据从寄存器读出数据作为地址信号,读出SBOX-RAM的值作为变换结果,该变换结果作为线性变换单元的输入进行线性变换;
步骤7:进一步,需要根据算法种类选择采用哪种线性变换,线性变换结束后,输出结果给控制单元;
步骤8:控制单元将中间数据重新写入寄存器单元;
步骤9:一轮加密运算结束;
步骤10:循环上述步骤4~步骤9,直至运算轮数等于配置单元所配置的运算轮数;
步骤11:控制单元将结束标志输出给配置单元;
步骤12:总线读到运算结束的标志后,从寄存器单元读取加密结果。
由上述图3中可以看出,无该发明之前,各算法都会有包括SBOX组和数据寄存器单元组合等在内的存储单元。通过本发明的方案,这些分组密码算法复用这些存储单元,灵活变更协处理器的功能,而且,这些功能还能够定制为软件实现或硬件实现,有很大的灵活性。
本发明并不限于上文讨论的实施方式,以上对具体实施方式的描述旨在于为了描述和说明本发明涉及的技术方案。基于本发明启示的显而易见的变换或替代也应当被认为落入本发明的保护范围;以上的具体实施方式用来揭示本发明的最佳实施方法,以使得本领域的普通技术人员能够应用本发明的多种实施方式以及多种替代方式来达到本发明的目的。
Claims (2)
1.一种分组密码的协处理器装置,其特征在于,所述协处理器装置包括配置单元、控制单元、SBOX-RAM、寄存器单元和线性变换单元,其中,配置单元外接总线,相互连接控制单元,控制单元相互连接SBOX-RAM、寄存器单元和线性变换单元;
所述配置单元通过总线配置协处理器装置的功能,包括但不限于,配置算法种类、运算轮数、是否掩码、运算启动与停止等功能;
所述控制单元利用状态机控制数据流向,计算流程;
所述SBOX-RAM,包括n组RAM单元,每组RAM单元,用于存放多种算法的SBOX置换表;
所述寄存器单元,包括n组寄存器,每组寄存器,用于存储数据、秘钥及中间值;
所述线性变换单元,用于多种算法的线性变换。
2.一种分组密码的非线性变换方法,其特征在于,所述非线性变换方法的具体步骤如下:
步骤1:首先通过外接总线将配置信息写入配置单元,最基本的配置功能,包括配置(1)算法种类、(2)运算轮数、(3)是否有掩码、(4)运算启动与停止这四类功能;
步骤2:通过外接总线将需要加密的数据和加密秘钥写入寄存器单元;
步骤3:通过外接总线写入步骤1的(4)配置运算启动;
步骤4:控制单元得到运算启动指令后,首先根据算法种类,将所需的SBOX置换表写入SBOX-RAM;如果步骤1的(3)是否有掩码,配置为带有随机掩码方案,则需将随机掩码写入并重新计算SBOX置换表的值并写入SBOX-RAM;
步骤5:控制单元首先从寄存器单元读出数据,根据算法种类,决定这些数据首先进行SBOX变换还是线性变换;
步骤6:如果进行SBOX变换,则控制单元根据从寄存器读出数据作为地址信号,读出SBOX-RAM的值作为变换结果,该变换结果作为线性变换单元的输入进行线性变换;
步骤7:进一步,需要根据算法种类选择采用哪种线性变换,线性变换结束后,输出结果给控制单元;
步骤8:控制单元将中间数据重新写入寄存器单元;
步骤9:一轮加密运算结束;
步骤10:循环上述步骤4~步骤9,直至运算轮数等于配置单元所配置的运算轮数;
步骤11:控制单元将结束标志输出给配置单元;
步骤12:总线读到运算结束的标志后,从寄存器单元读取加密结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611026082.2A CN108092760A (zh) | 2016-11-22 | 2016-11-22 | 一种分组密码的协处理器装置和非线性变换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611026082.2A CN108092760A (zh) | 2016-11-22 | 2016-11-22 | 一种分组密码的协处理器装置和非线性变换方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108092760A true CN108092760A (zh) | 2018-05-29 |
Family
ID=62169401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611026082.2A Pending CN108092760A (zh) | 2016-11-22 | 2016-11-22 | 一种分组密码的协处理器装置和非线性变换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108092760A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111162898A (zh) * | 2019-12-27 | 2020-05-15 | 北京航空航天大学 | 一种基于Android端的SM4快速软件实现方法及装置 |
CN111736902A (zh) * | 2020-07-16 | 2020-10-02 | 北京炼石网络技术有限公司 | 基于simd指令的sm4的并行计算方法及装置、可读存储介质 |
CN115549911A (zh) * | 2022-11-28 | 2022-12-30 | 苏州浪潮智能科技有限公司 | 一种加解密架构、方法、处理器和服务器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1957384A (zh) * | 2004-07-07 | 2007-05-02 | 三菱电机株式会社 | 电子元件和数据处理方法 |
CN105049194A (zh) * | 2015-06-01 | 2015-11-11 | 北京时代民芯科技有限公司 | 一种流水线结构的sm4算法实现系统 |
US20160062920A1 (en) * | 2014-08-29 | 2016-03-03 | The Boeing Company | Address-dependent key generation with a substitution-permutation network |
-
2016
- 2016-11-22 CN CN201611026082.2A patent/CN108092760A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1957384A (zh) * | 2004-07-07 | 2007-05-02 | 三菱电机株式会社 | 电子元件和数据处理方法 |
US20160062920A1 (en) * | 2014-08-29 | 2016-03-03 | The Boeing Company | Address-dependent key generation with a substitution-permutation network |
CN105049194A (zh) * | 2015-06-01 | 2015-11-11 | 北京时代民芯科技有限公司 | 一种流水线结构的sm4算法实现系统 |
Non-Patent Citations (1)
Title |
---|
郭艳珍,韩文报: "AES列混合变换", 《解放军理工大学学报》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111162898A (zh) * | 2019-12-27 | 2020-05-15 | 北京航空航天大学 | 一种基于Android端的SM4快速软件实现方法及装置 |
CN111736902A (zh) * | 2020-07-16 | 2020-10-02 | 北京炼石网络技术有限公司 | 基于simd指令的sm4的并行计算方法及装置、可读存储介质 |
CN111736902B (zh) * | 2020-07-16 | 2022-04-19 | 北京炼石网络技术有限公司 | 基于simd指令的sm4的并行计算方法及装置、可读存储介质 |
CN115549911A (zh) * | 2022-11-28 | 2022-12-30 | 苏州浪潮智能科技有限公司 | 一种加解密架构、方法、处理器和服务器 |
CN115549911B (zh) * | 2022-11-28 | 2023-03-14 | 苏州浪潮智能科技有限公司 | 一种加解密系统、方法、处理器和服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4317607B2 (ja) | 情報処理装置、耐タンパ処理装置 | |
CN101626289B (zh) | Aes加密芯片的设计方法及电脑加密机 | |
CN102138300B (zh) | 消息认证码预计算在安全存储器中的应用 | |
DE60121066T2 (de) | Angriffsresistente kryptographische Verfahren und Vorrichtung | |
CN112865954B (zh) | 用于Paillier解密的加速器、芯片及系统 | |
CN101206816A (zh) | 运算处理装置、运算处理控制方法以及计算机程序 | |
CN105607865B (zh) | 安全数据储存装置、系统及其数据写入与读取方法 | |
US10176121B2 (en) | Apparatus and method for memory address encryption | |
CN112291056B (zh) | 加密密钥生成器及传输系统 | |
CN107111966A (zh) | 用于测试并且加固软件应用的方法 | |
CN106487497B (zh) | 对rijndael算法的dpa保护 | |
CN102204158A (zh) | 低等待时间的分块密码术 | |
CN102411694B (zh) | 加密装置及存储器系统 | |
CN110166223A (zh) | 一种国密sm4的快速软件实现方法 | |
CN108092760A (zh) | 一种分组密码的协处理器装置和非线性变换方法 | |
CN104137467A (zh) | 信息处理装置、信息处理方法和程序 | |
CN103503362A (zh) | 数据处理装置、数据处理方法以及程序 | |
CN103746796B (zh) | 一种实现智能卡sm4 密码算法的协处理器 | |
CN102737270A (zh) | 一种基于国产算法的银行智能卡芯片安全协处理器 | |
CN107832635A (zh) | 访问权限控制方法、装置、设备及计算机可读存储介质 | |
CN101782846A (zh) | 用于蒙哥马利乘法的运算电路及密码电路 | |
CN103336920B (zh) | 用于无线传感网络soc芯片的安全系统 | |
CN103246494A (zh) | 一种抵抗能量分析和错误攻击的安全模幂计算方法 | |
US11200346B2 (en) | Secure computation for reading multiple elements from a secure text array | |
CN104871476B (zh) | 用于可计算、大型、可变及安全的替换盒的方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100083 18 floor, West Tower, block D, Tongfang science and Technology Plaza, 1 Wang Zhuang Road, Wudaokou, Haidian District, Beijing. Applicant after: ZIGUANG TONGXIN MICROELECTRONICS CO.,LTD. Address before: 100083 18 floor, West Tower, block D, Tongfang science and Technology Plaza, 1 Wang Zhuang Road, Wudaokou, Haidian District, Beijing. Applicant before: BEIJING TONGFANG MICROELECTRONICS Co.,Ltd. |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180529 |