CN102710415A - 一种利用对称密码算法进行数据加解密的方法及查表装置 - Google Patents

一种利用对称密码算法进行数据加解密的方法及查表装置 Download PDF

Info

Publication number
CN102710415A
CN102710415A CN2012102013967A CN201210201396A CN102710415A CN 102710415 A CN102710415 A CN 102710415A CN 2012102013967 A CN2012102013967 A CN 2012102013967A CN 201210201396 A CN201210201396 A CN 201210201396A CN 102710415 A CN102710415 A CN 102710415A
Authority
CN
China
Prior art keywords
box
algorithm
type
multiplexing
subelement
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
Application number
CN2012102013967A
Other languages
English (en)
Other versions
CN102710415B (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 Iwncomm Co Ltd
Original Assignee
China Iwncomm 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 Iwncomm Co Ltd filed Critical China Iwncomm Co Ltd
Priority to CN201210201396.7A priority Critical patent/CN102710415B/zh
Publication of CN102710415A publication Critical patent/CN102710415A/zh
Priority to US14/408,276 priority patent/US9374218B2/en
Priority to EP13807455.4A priority patent/EP2863577A4/en
Priority to PCT/CN2013/077060 priority patent/WO2013189253A1/zh
Application granted granted Critical
Publication of CN102710415B publication Critical patent/CN102710415B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3

Abstract

本发明公开了一种利用对称密码算法进行数据加解密的方法及查表装置,该方法包括:确定对称密码算法中需使用S盒查表时,确定需使用的S盒的所有类型;针对每种类型的S盒,确定该类型S盒的总数Ni,在Ni大于1时,确定该类型的S盒满足复用条件;利用对称密码算法进行数据加解密时,对满足复用条件的至少一个类型的S盒进行复用。本发明可以在硬件资源较为紧张的情况下,减少对称密码算法实现对硬件资源的占用。

Description

一种利用对称密码算法进行数据加解密的方法及查表装置
技术领域
本发明涉及信息安全技术领域,尤其涉及一种利用对称密码算法进行数据加解密的方法及查表装置。
背景技术
对称密码算法是一种加解密使用相同密钥的密码体制,其主要应用在对数据信息的加解密处理功能上。在某些具体应用情形,对称密码算法被实现于硬件系统中,在硬件资源较为紧张的情况下,减少对称密码算法实现对硬件资源的占用,成为算法实现方案设计首要考虑的因素。
在对称密码算法架构中,S盒(Sbox)通常为对称密码算法内必要的功能组件,S盒主要是实现N位输入,M位输出的查找表的查找功能,查找表在硬件实现上会占用较多的资源,且某些对称密码算法中,相同S盒的数量可存在多个。
对称密码算法领域中,具有S盒功能组件的算法有很多,如AES(AdvancedEncryption Standard,高级加密标准)密码算法、分组密码SM4算法和祖冲之(ZUC)序列密码算法等,下面对这些算法中的S盒功能组件进行简述。
一、AES密码算法
AES密码算法密钥长度可以使用128bits、192bits或256bits任意一种,分组长度固定为128bits,其算法流程描述如图1所示,包括加密流程和解密流程,具体的加解密流程为现有过程,这里不再详述。以密钥长度为128bits为例,密钥扩展流程如图2所示,具体的密钥扩展流程为现有过程,这里不再详述。
在AES密码算法架构中,应用S盒实现查表操作的步骤为加密流程中的字节代换步骤、解密流程中的字节代换求逆步骤以及密钥扩展流程中的字节代换步骤。S盒使用方式示意图如图3a~图3c所示,其中,S盒的种类有两种:S盒和逆S盒。
如图3a所示,加密流程中的字节代换步骤实现流程为:
1)以128bits分组长度的加密数据作为输入,将输入数据以8bits字段进行划分,划分为16个字段;
2)选用16个S盒,每个S盒对应一个8bits字段,可同时进行查表;
3)利用每个S盒对其对应的8bits字段进行一次查表操作,S盒查表输出为8bits数据,将16个8bits输出数据进行级联,构成128bits的输出数据;
4)加密流程中字节代换步骤结束。
如图3b所示,解密流程中的字节代换求逆步骤实现流程为:
1)以128bits分组长度的解密数据作为输入,将输入数据以8bits字段进行划分,划分为16个字段;
2)选用16个逆S盒,每个逆S盒对应一个8bits字段,可同时进行查表;
3)利用每个逆S盒对其对应的8bits字段进行一次查表操作,逆S盒查表输出为8bits数据,将16个8bits输出数据进行级联,构成128bits的输出数据;
4)解密流程中字节代换求逆步骤结束。
如图3c所示,密钥扩展流程中的字节代换步骤实现流程为:
1)以32bits长度的密钥数据作为输入,将输入数据以8bits字段进行划分,划分为4个字段;
2)选用4个S盒,每个S盒对应一个8bits字段,可同时进行查表;
3)利用每个S盒对其对应的8bits字段进行一次查表操作,S盒查表输出为8bits数据,将4个8bits输出数据进行级联,构成32bits的输出数据;
4)密钥扩展流程中的字节代换步骤结束。
由上述描述可知,共需要20个S盒和16个逆S盒来完成AES密码算法。
二、SM4密码算法
SM4密码算法密钥长度和数据分组长度固定为128bits。其加密流程如图4所示,解密流程如图5所示,密钥扩展流程如图6所示,具体的加解密流程及密钥扩展流程为现有过程,这里不再详述。
在SM4密码算法架构中,应用到S盒查表操作的步骤为加密流程中的字节代换步骤、解密流程中的字节代换步骤以及密钥扩展流程中的字节代换步骤。S盒使用方式如图7所示,其中,S盒的种类仅有一种,即加密、解密、密钥扩展使用S盒的方式相同,加密和解密使用相同的S盒。
如图7所示,SM4加密、解密或密钥扩展中的字节代换步骤实现流程为:
1)以32bits字长度的数据作为输入,将输入数据以8bits字段进行划分,划分为4个字段;
2)选用4个S盒,每个S盒对应一个8bits字段,可同时进行查表;
3)利用每个S盒对其对应的8bits字段进行一次查表操作,S盒查表输出为8bits数据,将4个8bits输出数据进行级联,构成32bits的输出数据;
4)字节代换步骤结束。
由上述描述可知,如果不采用S盒复用方式,共需要8个S盒完成SM4密码算法。
三、祖冲之(ZUC)密码算法
祖冲之(ZUC)算法是面向字的流密码算法,其输入为128bits的密钥Key和128bits的初始向量IV,可按照密钥长度需求不断输出32bits的密钥字,其算法架构如图8所示,具体的算法流程为现有过程,这里不再详述。在算法架构中,应用到S盒查表操作的步骤为非线性函数F内R1、R2值的求取步骤。
S盒使用方式示意图如图9所示,其中,包括S盒的种类有两种:盒S0和盒S1
如图9所示,祖冲之(ZUC)算法非线性函数F内R1、R2值的求取过程S盒查表实现流程为:
1)以32bits字长度的数据作为输入,将输入数据以8bits字段进行划分,划分为4个字段;
2)选用4个S盒,其中包括两个盒S0和两个盒S1,盒S0对应4个字段中的第一和第三字段,盒S1对应4个字段中的第二和第四字段,每个S盒对应一个8bits字段可同时进行查表;
3)利用每个S盒对其对应8bits字段进行一次查表操作,S盒查表输出为8bits数据,将4个8bits输出数据进行级联,构成32bits的输出数据;
4)S盒查表流程步骤结束。
由上述描述可知,如果不采用S盒复用方式,共需要2个盒S0和2个盒S1完成祖冲之(ZUC)密码算法。
上述AES密码算法、SM4密码算法和祖冲之(ZUC)密码算法中实现加密功能的所有组件构成加密单元,实现解密功能的所有组件构成解密单元,用于产生密钥的所有组件构成密钥扩展单元;将类似于图3a、图3b、图3c、图7、图9完成S盒查表功能的单元称之为查表单元。
从上述对AES密码算法、SM4密码算法和祖冲之(ZUC)密码算法加解密实现原理的描述上可知,在各算法的加解密具体实现过程中,会使用到数量较多的S盒,致使采用硬件来进行加解密实现的话,S盒部分将会占用相当多的硬件资源,这在硬件资源较为紧张的情况下,是很不理想的。
发明内容
本发明提供一种利用对称密码算法进行数据加解密的方法及查表装置,用以在硬件资源较为紧张的情况下,减少对称密码算法实现对硬件资源的占用。
本发明提供一种利用对称密码算法进行数据加解密的方法,包括:
确定对称密码算法中需使用S盒查表时,确定需使用的S盒的所有类型;
针对每种类型的S盒,确定该类型S盒的总数Ni,在Ni大于1时,确定该类型的S盒满足复用条件;
利用对称密码算法进行数据加解密时,对满足复用条件的至少一个类型的S盒进行复用。
本发明还提供一种利用对称密码算法进行数据加解密的查表装置,包括:
查表输入数据处理单元,利用对称密码算法进行加解密处理需要查表时,对于需要进行查表的输入数据进行处理后输入到S盒复用单元;
S盒复用单元,用于对满足复用条件且选择进行复用的S盒类型实施复用,按照预定对应关系对查表输入数据实施查表,其中,对于每个类型的S盒,在该类型S盒的总数Ni大于1时,确定该类型S盒为满足复用条件的S盒;
查表输出数据处理单元,用于对S盒复用单元查表输出信息进行处理后得到查表结果。
利用本发明提供的利用对称密码算法进行数据加解密的方法及查表装置,具有以下有益效果:通过采用S盒复用的方式,可根据硬件资源占用要求,进行S盒数量的确定,从而可对硬件资源的占用情况进行有效调节,以达到算法实现面积方面的要求。
附图说明
图1为AES算法加解密流程示意图;
图2为AES算法密钥扩展流程示意图;
图3a为AES算法加密流程字节代换步骤使用S盒示意图;
图3b为AES算法解密流程字节代换求逆步骤使用S盒示意图;
图3c为AES算法密钥扩展流程字节代换操作使用S盒示意图;
图4为SM4算法加密流程示意图;
图5为SM4算法解密流程原理图;
图6为SM4算法密钥扩展流程示意图;
图7为SM4算法S盒使用方式示意图;
图8为祖冲之(ZUC)序列密码算法架构示意图;
图9为祖冲之(ZUC)序列密码算法S盒使用方式示意图;
图10为本发明实施例利用对称密码算法进行数据加解密的方法流程图;
图11为本发明实施例1中S盒使用方式示意图;
图12为本发明实施例2中S盒使用方式示意图;
图13为本发明实施例3中S盒使用方式示意图;
图14为本发明实施例4中S盒使用方式示意图;
图15为本发明实施例5中S盒使用方式示意图;
图16为本发明实施例6中S盒使用方式示意图;
图17为本发明实施例7中S盒使用方式示意图;
图18为本发明实施例8中S盒使用方式示意图;
图19为本发明利用对称密码算法进行数据加解密装置结构图;
图20为利用对称密码算法进行数据加解密装置工作方式示例。
具体实施方式
下面结合附图和实施例对本发明提供的利用对称密码算法进行数据加解密的方法及装置进行更详细地说明。
本发明提出了一种利用对称密码算法进行数据加解密的方法,如图10所示,包括:
步骤101,确定对称密码算法中需使用S盒查表时,确定需使用的S盒的所有类型;
具体地,根据标准的对称密码算法流程,可以确定流程中是否需要S盒作为算法组件,如果需要S盒算法组件,则根据标准的对称密码算法流程,还可以确定所需要的S盒的所有类型,即S盒的种类及种类数目,本实施例可以设定需要使用M种类型的S盒。
步骤102,针对每种类型的S盒,确定该类型S盒的总数Ni,在Ni大于1时,确定该类型的S盒满足复用条件;
具体地,设定现有标准的对称密码算法流程中M种S盒各自对应的S盒个数为Ni,其中i为序号,取值从1到M;
对于M种S盒中的任一种,其个数为Ni,判断Ni是否大于1,如果Ni大于1,则确定该类型的S盒满足复用条件,即可进行S盒复用,否则不可进行S盒复用。
步骤103,利用对称密码算法进行数据加解密时,对满足复用条件的至少一个类型的S盒进行复用。
本发明实施例对于满足复用条件的至少一个类型的S盒,复用的方式具体为减少标准流程中规定的对称密码算法流程中该类型S盒的数目,即若复用前该类型S盒的总数为Ni,则复用后该类型S盒数目大于等于1且小于Ni
本发明实施例通过采用S盒复用的方式,可根据硬件资源占用要求,进行S盒数量的确定,从而可对硬件资源的占用情况进行有效调节,以达到算法实现面积方面的要求。
优选地,在某个类型的S盒不满足复用条件,即该类型的S盒仅有一个时,将该S盒作为一个查表单元,使用该类型S盒的算法子单元利用该查表单元进行查表。
本发明实施例可以对满足复用条件的所有类型的S盒进行S盒复用,也可以选择对满足复用条件的部分类型的S盒进行复用,如果选择对满足复用条件的部分类型的S盒进行复用,对于满足复用条件但未进行S盒复用的每个类型S盒,可以采用现有机制进行查表,即确定使用该类型S盒的所有算法子单元及每个算法子单元使用的该类型的S盒,将每个算法子单元使用的该类型的S盒作为一个查表单元,该算法子单元利用其对应的查表单元进行查表。
依照本发明的优选实施例中,对满足复用条件的其中一个类型的S盒进行复用,具体包括:
对满足复用条件的其中一个类型的S盒,确定使用该类型S盒的算法子单元;
在使用该类型S盒的算法子单元仅有一个时,确定复用后该类型S盒的个数为u,1≤u<Ni,即减少该算法子单元使用的该类型S盒的数目;
将u个该类型S盒作为一个查表单元,该算法子单元利用该查表单元进行查表。
依照本发明的另一优选实施例中,对满足复用条件的其中一个类型的S盒进行复用,具体包括:
对满足复用条件的其中一个类型的S盒,确定使用该类型S盒的算法子单元;
在使用该类型S盒的算法子单元至少有两个时,对于其中至少两个算法子单元,确定复用后使用该类型S盒的算法子单元中的所述至少两个算法子单元使用的该类型S盒的个数为u,1≤u≤Nmax,Nmax为复用前使用该类型S盒的算法子单元中的所述至少两个算法子单元中,使用该类型S盒最多的算法子单元使用的S盒个数;
将u个该类型S盒作为一个查表单元,使用该类型S盒的算法子单元中的所述至少两个算法子单元分时利用该查表单元进行查表。
本实施例中,由于多个算法子单元共同复用一个查表单元,因此复用该查表单元的多个算法子单元不能同时使用该查表单元进行查表,需要分时利用该查表单元进行查表。
依照本发明另一实施例中,对满足复用条件的其中一个类型的S盒进行复用,具体包括:
对满足复用条件的其中一个类型的S盒,确定使用该类型S盒的算法子单元;
在使用该类型S盒的算法子单元至少有两个时,对于其中至少一个算法子单元中的每个算法子单元,确定复用后该算法子单元使用的该类型S盒的个数为ui,1≤ui<Nj,Nj为复用前该算法子单元使用的该类型S盒的个数,将ui个该类型S盒作为一个查表单元,该算法子单元利用该查表单元单独进行查表。
具体地,对于该类型的S盒,可以减少每个使用该类型S盒的算法子单元使用的S盒数目,或者,也可以减少部分使用该类型S盒的算法子单元使用的S盒数目,则对于没有进行该类型S盒减少的算法子单元,确定该算法子单元使用的该类型的S盒,将该算法子单元使用的该类型的S盒作为一个查表单元,该算法子单元利用其对应的查表单元进行查表。
本实施例中,各算法子单元单独使用对应的查表单元进行查表,因此适用于多个算法子单元同时进行查表。
依照本发明另一优选实施例中,对满足复用条件的其中一个类型的S盒进行复用,具体包括:
对满足复用条件的其中一个类型的S盒,确定使用该类型S盒的算法子单元;
在使用该类型S盒的算法子单元至少有三个时,对于其中至少一个算法子单元中的每个算法子单元,确定复用后该算法子单元使用的该类型S盒的个数为ui,1≤ui<Nj,Nj为复用前该算法子单元使用的该类型S盒的个数,将ui个该类型S盒作为一个查表单元,该算法子单元利用该查表单元单独进行查表;
对于其中至少两个算法子单元,确定复用后使用该类型S盒的算法子单元中的所述至少两个算法子单元使用的该类型S盒的个数为ucom,1≤ucom≤Nmax,Nmax为复用前使用该类型S盒的算法子单元中的所述至少两个算法子单元中,使用该类型S盒最多的算法子单元使用的S盒个数,将ucom个该类型S盒作为一个查表单元,使用该类型S盒的算法子单元中的所述至少两个算法子单元分时利用该查表单元进行查表。
本实施例中,具体地,如果存在算法子单元使用的该类型S盒未进行复用,对于未进行该类型S盒复用的每个算法子单元,确定该算法子单元使用的该类型的S盒,将该算法子单元使用的该类型的S盒作为一个查表单元,该算法子单元利用其对应的查表单元进行查表。
优选地,所述对称密码算法为高级加密标准AES算法或分组密码SM4算法或祖冲之ZUC序列密码算法。
优选地,所述算法子单元为加密单元、解密单元或密钥扩展单元。在具体的密码算法(如SM4密码算法)实现上,加密单元和解密单元有时使用同一逻辑单元,此时算法子单元应视为一个。
优选地,本发明实施例中对于任一算法子单元,确定对该算法子单元使用的S盒选择进行复用时,根据S盒复用情况确定该算法子单元对应的查表单元,该算法子单元利用对应的查表单元进行查表,具体包括:
根据该查表单元的S盒个数及每个S盒输入数据长度,确定查表单元的输入数据最大长度h;
根据该算法子单元需要利用该查表单元进行查表的输入数据总长度l,将该算法子单元的该查表单元对应的输入数据划分为k个数据段,其中 为向上取整;
进行k次查表操作,每次查表时将输入的数据段按照S盒输入数据长度划分数据单元,按预定对应关系将各数据单元输入对应的S盒进行查表,并根据所述预定关系确定该次查表输出信息;
将k次查表的输出信息进行级联,得到查表结果。
下面以具体的示例说明本发明利用对称密码算法进行数据加解密的方法的优选实施例。
当对称密码算法中仅存在一种S盒,且使用该S盒的算法子单元仅有一个的情况下,根据本发明提供的S盒复用方式,则S盒复用具有一种应用方式,即一个算法子单元使用一个查表单元方式,具体见实施例1描述。
实施例1
本实施例中一个算法子单元使用一个查表单元,如附图11所示。以标准对称密码算法规定需要使用4个6bits输入,4bits输出的S盒为例,设算法子单元的输入数据总长度为48bits,执行此应用方式具体步骤如下:
(1)首先判断S盒为对称密码算法内组件,然后确定S盒种类为1种,S盒个数为4;
(2)因为S盒个数大于1,因此可进行S盒复用;
(3)选择进行S盒复用,且确定使用的S盒个数为3,则查表单元输入数据最大长度为18bits;
(4)将查表单元输入数据最大长度划分为3个6bits的数据单元,确定第一数据单元对应第三个S盒,第二数据单元对应第二个S盒,第三数据单元对应第一个S盒;
(5)如果算法子单元的输入数据总长度为48bits,则将48bits划分为3个输入数据段,其中第一数据段长度为18bits,第二数据段长度为18bits,第三数据段长度为12bits;
(6)确定查表参数为3,根据查表参数进行3次查表操作,根据步骤(4)中确定的数据输入与S盒的对应关系来确定查表输出;
(7)将查表输出信息进行级联,构成查表最终输出。
当对称密码算法中仅存在一种S盒,且使用该S盒的算法子单元存在两个或两个以上,根据本发明提供的S盒复用方式,S盒复用具有三种应用方式:其一为两个或两个以上算法子单元共同使用一个查表单元方式;其二为两个或两个以上算法子单元各自独立使用一个查表单元方式;其三为两个或两个以上算法子单元共同使用一个查表单元,且存在至少一个算法子单元独立使用一个查表单元方式。
实施例2
本实施例描述了两个或两个以上算法子单元共同使用一个查表单元的应用方式,如附图12所示。以标准对称密码算法规定需要使用8个8bits输入,8bits输出的S盒为例,具有两个算法子单元,每个算法子单元的输入数据总长度为32bits,执行此应用方式具体步骤如下:
(1)首先判断S盒为对称密码算法内组件,然后确定S盒种类为1种,S盒个数为8;
(2)因为S盒个数大于1,因此可进行S盒复用;
(3)选择进行S盒复用,且确定使用的S盒个数为2,则查表单元输入数据最大长度为16bits;
(4)将查表单元输入数据最大长度划分为2个8bits数据单元,确定第一数据单元对应第一个S盒,第二数据单元对应第二个S盒;
(5)每个算法子单元输入数据总长度为32bits,则将32bits划分为2个输入数据段,其中第一数据段长度为16bits,第二数据段长度为16bits,因此查表参数为2;
(6)两个算法子单元分时使用所生成的查表单元,当某个算法子单元使用查表单元时,根据查表参数进行2次查表操作,根据步骤(4)中确定的数据输入与S盒的对应关系来确定查表输出;
(7)将查表输出信息进行级联,构成此时使用该查表单元的算法子单元查表最终输出。
实施例3
本实施例描述了两个或两个以上算法子单元各自独立使用一个查表单元的应用方式,如附图13所示。以标准对称密码算法规定需要使用8个8bits输入,8bits输出的S盒为例,具有两个算法子单元,设每个算法子单元输入数据总长度为32bits,执行此应用方式具体步骤如下:
(1)首先判断S盒为对称密码算法内组件,然后确定S盒种类为1种,S盒个数为8;
(2)因为S盒个数大于1,因此可进行S盒复用;
(3)选择进行S盒复用;
(4)确定第一算法子单元使用的查表单元,具体步骤如下:
a、确定使用的S盒个数为2,则查表单元输入数据最大长度为16bits;
b、将查表单元输入数据最大长度划分为2个8bits输入数据单元,确定第一数据单元对应第一个S盒,第二数据单元对应第二个S盒;
c、如果第一算法子单元输入数据总长度为32bits,则将32bits划分为2个输入数据段,其中第一数据段长度为16bits,第二数据段长度为16bits,因此查表参数为2;
(5)确定第二算法子单元使用的查表单元,具体步骤如下:
a、确定使用的S盒个数为1,则查表单元输入数据最大长度为8bits;
b、确定查表单元输入数据最大长度为1个8bits输入数据段;
c、如果第二算法子单元输入信息总长度为32bits,则将32bits划分为4个输入数据段,其中第一数据段长度为8bits,第二数据段长度为8bits,第三数据段长度为8bits,第四数据段长度为8bits,因此查表参数为4;
(6)两个算法子单元可同时进行查表操作,其中,第一算法子单元根据查表参数进行2次查表,第二算法子单元根据查表参数进行4次查表,各自分别根据步骤(4)、步骤(5)中确定的数据输入与S盒的对应关系来确定查表输出;
(7)将查表输出信息进行级联,构成各算法子单元查表最终输出。
实施例4
本实施例描述了两个或两个以上算法子单元共同使用一个查表单元,且存在至少一个算法子单元独立使用一个查表单元方式,如附图14所示。以标准对称密码算法规定需要使用8个8bits输入,8bits输出的S盒为例,具有三个算法子单元,每个算法子单元输入数据总长度为32bits,执行此应用方式具体步骤如下:
(1)首先判断S盒为对称密码算法内组件,然后确定S盒种类为1种,S盒个数为8;
(2)因为S盒个数大于1,因此可进行S盒复用;
(3)选择进行S盒复用;
(4)确定第一算法子单元和第二算法子单元共同使用的第一查表单元,具体步骤如下:
a、确定使用的S盒个数为2,则查表单元输入数据最大长度为16bits;
b、将查表单元输入数据最大长度划分为2个8bits输入数据单元,确定第一数据单元对应第一个S盒,第二数据单元对应第二个S盒;
c、如果第一算法子单元和第二算法子单元输入数据总长度为32bits,则将32bits划分为2个输入数据段,其中第一数据段长度为16bits,第二数据段长度为16bits,因此查表参数为2;
(5)确定第三算法子单元独立使用的第二查表单元,具体步骤如下:
a、确定使用的S盒个数为1,则查表单元输入数据最大长度为8bits;
b、确定查表单元输入数据最大长度为1个8bits输入数据单元;
c、如果第三算法子单元输入数据总长度为32bits,则将32bits划分为4个输入数据段,其中第一数据段长度为8bits,第二数据段长度为8bits,第三数据段长度为8bits,第四数据段长度为8bits,因此查表参数为4;
(6)第一算法子单元和第二算法子单元分时使用所生成的第一查表单元,当某个算法子单元使用查表单元时,根据查表参数进行2次查表操作,根据步骤(4)中确定的数据输入与S盒的对应关系来确定查表输出;第三算法子单元独立进行查表操作,根据查表参数进行4次查表,根据步骤(5)中确定的数据输入与S盒的对应关系来确定查表输出;
(7)将查表输出信息进行级联,构成各算法子单元查表最终输出。
当对称密码算法中存在两种或两种以上S盒,且使用这些S盒的算法子单元仅有一个,根据本发明实施例S盒复用具有一种应用方式,即一个算法子单元使用多个查表单元方式。
实施例5
本实施例描述了一个算法子单元使用多个查表单元的应用方式,如附图15所示。以标准对称密码算法规定需要使用2个8bits输入,8bits输出的盒S0及2个8bits输入,8bits输出的盒S1为例,具有一个算法子单元,设算法子单元输入数据总长度为32bits,输入盒S0的输入数据总长度为16bits,输入盒S1的输入数据总长度为16bits,执行此应用方式具体步骤如下:
(1)首先判断S盒为对称密码算法内组件,然后确定S盒种类为2种,设定为盒S0和盒S1
(2)确定盒S0个数为2,盒S1个数为2;
(3)确定第一查表单元,具体步骤如下:
a、因为盒S0个数大于1,因此可进行盒S0复用;
b、选择进行盒S0复用,且确定使用的盒S0个数为1,则第一查表单元输入数据最大长度为8bits;
c、确定查表单元输入数据最大长度为1个8bits输入数据单元;
d、如果算法子单元输入查表单元的数据总长度为16bits,则将16bits划分为2个输入数据段,其中第一数据段长度为8bits,第二数据段长度为8bits,因此查表参数为2;
(4)确定第二查表单元,具体步骤如下:
a、因为盒S1个数大于1,因此可进行盒S1复用;
b、选择进行盒S1复用,且确定使用的盒S1个数为1,则第二查表单元输入数据最大长度为8bits;
c、确定查表单元输入数据最大长度为1个8bits输入数据单元;
d、如果算法子单元输入查表单元的数据总长度为16bits,则将16bits划分为2个输入数据段,其中第一数据段长度为8bits,第二数据段长度为8bits,因此查表参数为2;
(5)两查表单元可同时进行查表,根据查表参数需分别进行2次查表操作,并各自根据步骤(3)、步骤(4)中确定的数据输入与S盒的对应关系来确定查表输出;
(6)将查表输出信息进行级联,构成算法子单元查表最终输出。
当对称密码算法中存在两种或两种以上S盒,且使用这些S盒的算法子单元存在两个或两个以上,根据本发明实施例S盒复用具有三种应用方式:其一为两个或两个以上算法子单元共同使用两个或两个以上查表单元方式;其二为两个或两个以上算法子单元各自独立使用至少一个查表单元方式;其三为两个或两个以上算法子单元中某些子单元即独立使用至少一个查表单元,同时又与另一些算法子单元共同使用至少一个查表单元方式。
实施例6
本实施例描述了两个或两个以上算法子单元共同使用两个或两个以上查表单元方式,如附图16所示。以标准对称密码算法规定需要使用20个8bits输入,8bits输出的盒S0及16个8bits输入,8bits输出的盒S1为例,具有两个算法子单元,每个算法子单元输入盒S0的数据总长度为128bits,算法子单元输入盒S1的数据总长度为128bits,执行此应用方式具体步骤如下:
(1)首先判断S盒为对称密码算法内组件,然后确定S盒种类为2种,设定为盒S0和盒S1
(2)确定盒S0个数为20,盒S1个数为16;
(3)确定第一查表单元,具体步骤如下:
a、因为盒S0个数大于1,因此可进行盒S0复用;
b、选择进行盒S0复用,且确定使用的盒S0个数为1,则第一查表单元输入数据最大长度为8bits;
c、确定第一查表单元输入数据最大长度为1个8bits输入数据单元;
d、如果每个算法子单元输入盒S0的数据总长度为128bits,则将128bits划分为16个输入数据段,其中各数据段长度为8bits,因此查表参数为16;
(4)确定第二查表单元,具体步骤如下:
a、因为盒S1个数大于1,因此可进行盒S1复用;
b、选择进行盒S1复用,且确定使用的盒S1个数为1,则第二查表单元输入数据最大长度为8bits;
c、确定查表单元输入数据最大长度为1个8bits输入数据单元;
d、如果每个算法子单元输入盒S1的数据总长度为128bits,则将128bits划分为16个输入数据段,其中各数据段长度为8bits,因此查表参数为16;
(5)两个算法子单元分时使用所生成的第一查表单元和第二查表单元,当某个算法子单元使用第一查表单元和第二查表单元时,两查表单元可同时进行查表,根据查表参数需分别进行16次查表操作,并各自根据步骤(3)、步骤(4)中确定的数据输入与S盒的对应关系来确定查表输出;
(6)将查表输出信息进行级联,构成查表最终输出。
实施例7
本实施例描述了两个或两个以上算法子单元各自独立使用至少一个查表单元方式,如附图17所示。以标准对称密码算法规定需要使用20个8bits输入,8bits输出的盒S0及16个8bits输入,8bits输出的盒S1为例,具有两个算法子单元,设每个算法子单元输入盒S0的数据总长度为128bits,其中一个算法子单元输入盒S1的数据总长度为128bits,执行此应用方式具体步骤如下:
(1)首先判断S盒为对称密码算法内组件,然后确定S盒种类为2种,设定为盒S0和盒S1
(2)确定盒S0个数为20,盒S1个数为16;
(3)确定第一算法子单元使用的第一查表单元,具体步骤如下:
a、确定使用的盒S0个数为2,则第一查表单元输入数据最大长度为16bits;
b、将第一查表单元输入数据最大长度划分为2个8bits输入数据单元,确定第一数据单元对应第一个盒S0,第二数据单元对应第二个盒S0
c、如果第一算法子单元输入盒S0的数据总长度为128bits,则将128bits划分为8个输入数据段,其中各数据段长度为16bits,因此查表参数为8;
d、确定使用的盒S1个数为2,则第二查表单元输入数据最大长度为16bits;
e、将第二查表单元输入数据最大长度划分为2个8bits输入数据单元,确定第一数据单元对应第一个盒S1,第二数据单元对应第二个盒S1
f、如果第一算法子单元输入盒S1的数据总长度为128bits,则将128bits划分为8个输入数据段,其中各数据段长度为16bits,因此查表参数为8;
(4)确定第二算法子单元使用的第三查表单元,具体步骤如下:
a、确定使用的盒S0个数为1,则第三查表单元输入数据最大长度为8bits;
b、确定第三查表单元输入数据最大长度为1个8bits输入数据单元;
c、如果第二算法子单元输入盒S0的数据总长度为128bits,则将128bits划分为16个输入数据段,其中各数据段长度为8bits,因此查表参数为16;
(5)两个算法子单元可同时进行查表操作,其中,第一算法子单元中利用第一查表单元和第二查表可同时进行查表操作,根据查表参数分别进行8次查表,第二算法子单元利用第三查表单元,根据查表参数进行16次查表,各自分别根据步骤(3)、步骤(4)中确定的数据输入与S盒的对应关系来确定查表输出;
(6)将查表输出信息进行级联,构成各算法子单元查表最终输出。
实施例8
本实施例描述了两个或两个以上算法子单元中某些子单元即独立使用至少一个查表单元同时又与另一些算法子单元共同使用至少一个查表单元方式,如附图18所示。以标准对称密码算法规定需要使用20个8bits输入,8bits输出的盒S0及16个8bits输入,8bits输出的盒S1为例,具有两个算法子单元,设两个算法子单元输入盒S0的数据总长度分别为128bits和32bits,其中一个算法子单元输入盒S1的数据总长度为128bits,执行此应用方式具体步骤如下:
(1)首先判断S盒为对称密码算法内组件,然后确定S盒种类为2种,设定为盒S0和盒S1
(2)确定盒S0个数为20,盒S1个数为16;
(3)确定第一算法子单元和第二算法子单元共同使用的第一查表单元,具体步骤如下:
a、因为盒S0个数大于1,因此可进行盒S0复用;
b、选择进行盒S0复用,且确定使用的盒S0个数为2,则第一查表单元输入数据最大长度为16bits;
c、将第一查表单元输入数据最大长度划分为2个8bits输入数据单元,确定第一数据单元对应第一个盒S0,第二数据单元对应第二个盒S0
d、第一算法子单元输入盒S0的数据总长度为128bits,则将128bits划分为8个输入数据段,其中各数据段长度为16bits,因此查表参数为8;第二算法子单元输入盒S0的数据总长度为32bits,则将32bits划分为2个输入数据段,其中各信息段长度为16bits,因此查表参数为2;
(4)确定第一算法子单元独立使用的第二查表单元,具体步骤如下:
a、因为盒S1个数大于1,因此可进行盒S1复用;
b、选择进行盒S1复用,且确定使用的盒S1个数为1,则第二查表单元输入数据最大长度为8bits;
c、确定第二查表单元输入数据最大长度为1个8bits输入数据单元;
d、如果第一算法子单元输入盒S1的数据总长度为128bits,则将128bits划分为16个输入数据段,其中各数据段长度为8bits;
(5)两个算法子单元分时使用第一查表单元,当第一算法子单元使用第一查表单元时,根据查表参数需进行8次查表操作,当第二算法子单元使用第一查表单元时,根据查表参数需进行2次查表操作;第一算法子单元独立使用第二查表单元,根据查表参数需进行16次查表操作。各自根据步骤(3)、步骤(4)中确定的数据输入与S盒的对应关系来确定查表输出;
(6)将查表输出信息进行级联,构成查表最终输出。
本发明实施例还提供一种利用对称密码算法进行数据加解密的查表装置,如图19,包括:
查表输入数据处理单元,利用对称密码算法进行加解密处理需要查表时,对于需要进行查表的输入数据进行处理后输入到S盒复用单元;
S盒复用单元,用于对满足复用条件且选择进行复用的S盒类型实施复用,按照预定对应关系对查表输入数据实施查表,其中,对于每个类型的S盒,在该类型S盒的总数Ni大于1时,确定该类型S盒为满足复用条件的S盒;
查表输出数据处理单元,用于对S盒复用单元查表输出信息进行处理后得到查表结果。
优选地,所述查表输入数据处理单元,具体用于根据算法子单元使用的查表单元进行查表的输入数据总长度l,将算法子单元使用的该查表单元对应的输入数据划分为k个数据段,将k个数据段依次输入至S盒复用单元,其中
Figure BDA00001780065200201
Figure BDA00001780065200202
为向上取整,h为根据算法子单元使用的查表单元的S盒个数及每个S盒输入数据长度,确定的该查表单元的输入数据最大长度;
所述S盒复用单元,具体用于对算法子单元使用的查表单元进行k次查表操作,每次查表时将输入的数据段按照S盒输入数据长度划分数据单元,按预定对应关系将各数据单元输入至对应的S盒进行查表,并根据所述预定关系确定该次查表输出信息,将各次查表输出信息输出至查表输出数据处理单元;
所述利用对称密码算法进行数据加解密的装置还包括:查表计数单元,每个数据段完成一次查表后进行计数,直至计数达到k,确定查表操作结束;
所述查表输出数据处理单元,具体用于将每次查表的输出信息进行缓存,在查表操作结束后,将各次查表的输出信息进行级联,得到查表结果。
优选地,对于算法子单元中可能存在的未进行复用的各类型的S盒,查表输入数据处理单元不对未进行复用的S盒的查表输入信息进行数据分段,而是将该类型S盒所对应的查表输入信息直接输入到S盒复用单元,S盒复用单元将该算法子单元使用的该类型S盒独立作为一个查表单元,将输入的查表信息输入到对应的查表单元进行查表。
如图20为利用对称密码算法进行数据加解密的查表装置工作方式示例,其中,查表数据为48bits,查表参数为3,查表结果为32bits。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (11)

1.一种利用对称密码算法进行数据加解密的方法,其特征在于,包括:
确定对称密码算法中需使用S盒查表时,确定需使用的S盒的所有类型;
针对每种类型的S盒,确定该类型S盒的总数Ni,在Ni大于1时,确定该类型的S盒满足复用条件;
利用对称密码算法进行数据加解密时,对满足复用条件的至少一个类型的S盒进行复用。
2.如权利要求1所述的方法,其特征在于,对满足复用条件的其中一个类型的S盒进行复用,具体包括:
对满足复用条件的其中一个类型的S盒,确定使用该类型S盒的算法子单元;
在使用该类型S盒的算法子单元仅有一个时,确定复用后该类型S盒的个数为u,1≤u<Ni
将u个该类型S盒作为一个查表单元,该算法子单元利用该查表单元进行查表。
3.如权利要求1所述的方法,其特征在于,对满足复用条件的其中一个类型的S盒进行复用,具体包括:
对满足复用条件的其中一个类型的S盒,确定使用该类型S盒的算法子单元;
在使用该类型S盒的算法子单元至少有两个时,对于其中至少两个算法子单元,确定复用后使用该类型S盒的算法子单元中的所述至少两个算法子单元使用的该类型S盒的个数为u,1≤u≤Nmax,Nmax为复用前使用该类型S盒的算法子单元中的所述至少两个算法子单元中,使用该类型S盒最多的算法子单元使用的S盒个数;
将u个该类型S盒作为一个查表单元,使用该类型S盒的算法子单元中的所述至少两个算法子单元分时利用该查表单元进行查表。
4.如权利要求1所述的方法,其特征在于,对满足复用条件的其中一个类型的S盒进行复用,具体包括:
对满足复用条件的其中一个类型的S盒,确定使用该类型S盒的算法子单元;
在使用该类型S盒的算法子单元至少有两个时,对于其中至少一个算法子单元中的每个算法子单元,确定复用后该算法子单元使用的该类型S盒的个数为ui,1≤ui<Nj,Nj为复用前该算法子单元使用的该类型S盒的个数,将ui个该类型S盒作为一个查表单元,该算法子单元利用该查表单元单独进行查表。
5.如权利要求1所述的方法,其特征在于,对满足复用条件的其中一个类型的S盒进行复用,具体包括:
对满足复用条件的其中一个类型的S盒,确定使用该类型S盒的算法子单元;
在使用该类型S盒的算法子单元至少有三个时,对于其中至少一个算法子单元中的每个算法子单元,确定复用后该算法子单元使用的该类型S盒的个数为ui,1≤ui<Nj,Nj为复用前该算法子单元使用的该类型S盒的个数,将ui个该类型S盒作为一个查表单元,该算法子单元利用该查表单元单独进行查表;
对于其中至少两个算法子单元,确定复用后使用该类型S盒的算法子单元中的所述至少两个算法子单元使用的该类型S盒的个数为ucom,1≤ucom≤Nmax,Nmax为复用前使用该类型S盒的算法子单元中的所述至少两个算法子单元中,使用该类型S盒最多的算法子单元使用的S盒个数,将ucom个该类型S盒作为一个查表单元,使用该类型S盒的算法子单元中的所述至少两个算法子单元分时利用该查表单元进行查表。
6.如权利要求1~5任一所述的方法,其特征在于,对于任一算法子单元,确定对该算法子单元使用的S盒选择进行复用时,根据S盒复用情况确定该算法子单元对应的查表单元,该算法子单元利用对应的查表单元进行查表,包括:
根据该查表单元的S盒个数及每个S盒输入数据长度,确定查表单元的输入数据最大长度h;
根据该算法子单元需要利用该查表单元进行查表的输入数据总长度l,将该算法子单元的该查表单元对应的输入数据划分为k个数据段,其中
Figure FDA00001780065100031
Figure FDA00001780065100032
为向上取整;
进行k次查表操作,每次查表时将输入的数据段按照S盒输入数据长度划分数据单元,按预定对应关系将所述数据单元输入对应的S盒进行查表,并根据所述预定关系确定该次查表输出信息;
将k次查表的输出信息进行级联,得到查表结果。
7.如权利要求1~5任一所述的方法,其特征在于,所述对称密码算法为高级加密标准AES算法或分组密码SM4算法或祖冲之ZUC序列密码算法。
8.如权利要求2~5任一所述的方法,其特征在于,对于每个查表单元,在硬件实现上仅对应一个硬件模块。
9.如权利要求2~5任一所述的方法,其特征在于,所述算法子单元为加密单元、解密单元或密钥扩展单元。
10.一种利用对称密码算法进行数据加解密的查表装置,其特征在于,包括:
查表输入数据处理单元,利用对称密码算法进行加解密处理需要查表时,对于需要进行查表的输入数据进行处理后输入到S盒复用单元;
S盒复用单元,用于对满足复用条件且选择进行复用的S盒类型实施复用,按照预定对应关系对查表输入数据实施查表,其中,对于每个类型的S盒,在该类型S盒的总数Ni大于1时,确定该类型S盒为满足复用条件的S盒;
查表输出数据处理单元,用于对S盒复用单元查表输出信息进行处理后得到查表结果。
11.如权利要求10所述的装置,其特征在于,
所述查表输入数据处理单元,具体用于根据算法子单元使用的查表单元进行查表的输入数据总长度l,将算法子单元使用的该查表单元对应的输入数据划分为k个数据段,将k个数据段依次输入至S盒复用单元,其中
Figure FDA00001780065100041
Figure FDA00001780065100042
为向上取整,h为根据算法子单元使用的查表单元的S盒个数及每个S盒输入数据长度,确定的该查表单元的输入数据最大长度;
所述S盒复用单元,具体用于对算法子单元使用的查表单元进行k次查表操作,每次查表时将输入的数据段按照S盒输入数据长度划分数据单元,按预定对应关系将所述数据单元输入至对应的S盒进行查表,并根据所述预定关系确定该次查表输出信息,将各次查表输出信息输出至查表输出数据处理单元;
所述利用对称密码算法进行数据加解密时的查表装置还包括:查表计数单元,每个数据段完成一次查表后进行计数,直至计数达到k,确定查表操作结束;
所述查表输出数据处理单元,具体用于将每次查表的输出信息进行缓存,在查表操作结束后,将各次查表的输出信息进行级联,得到查表结果。
CN201210201396.7A 2012-06-18 2012-06-18 一种利用对称密码算法进行数据加解密的方法及查表装置 Active CN102710415B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201210201396.7A CN102710415B (zh) 2012-06-18 2012-06-18 一种利用对称密码算法进行数据加解密的方法及查表装置
US14/408,276 US9374218B2 (en) 2012-06-18 2013-06-09 Method for conducting data encryption and decryption using symmetric cryptography algorithm and table look-up device
EP13807455.4A EP2863577A4 (en) 2012-06-18 2013-06-09 METHOD FOR PERFORMING ENCRYPTION AND DECRYPTION OF DATA USING SYMMETRICAL CRYPTOGRAPHY ALGORITHM AND TABLE CONSULTING DEVICE
PCT/CN2013/077060 WO2013189253A1 (zh) 2012-06-18 2013-06-09 一种利用对称密码算法进行数据加解密的方法及查表装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210201396.7A CN102710415B (zh) 2012-06-18 2012-06-18 一种利用对称密码算法进行数据加解密的方法及查表装置

Publications (2)

Publication Number Publication Date
CN102710415A true CN102710415A (zh) 2012-10-03
CN102710415B CN102710415B (zh) 2015-03-11

Family

ID=46902987

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210201396.7A Active CN102710415B (zh) 2012-06-18 2012-06-18 一种利用对称密码算法进行数据加解密的方法及查表装置

Country Status (4)

Country Link
US (1) US9374218B2 (zh)
EP (1) EP2863577A4 (zh)
CN (1) CN102710415B (zh)
WO (1) WO2013189253A1 (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013189253A1 (zh) * 2012-06-18 2013-12-27 西安西电捷通无线网络通信股份有限公司 一种利用对称密码算法进行数据加解密的方法及查表装置
CN103731822A (zh) * 2012-10-15 2014-04-16 中国科学院微电子研究所 一种祖冲之算法的实现系统及其方法
CN103813313A (zh) * 2012-11-07 2014-05-21 中国科学院微电子研究所 一种祖冲之算法的硬件实现装置及方法
CN105553646A (zh) * 2015-12-31 2016-05-04 清华大学无锡应用技术研究院 面向分组密码算法并行计算的可重构s盒电路结构
CN107070630A (zh) * 2017-01-17 2017-08-18 中国科学院信息工程研究所 一种aes算法的快速安全硬件结构
CN107066900A (zh) * 2017-04-18 2017-08-18 东南大学 面向分组密码算法的可重构s盒、可重构计算阵列及门控方法
CN107209661A (zh) * 2014-09-26 2017-09-26 英特尔公司 用于提供simd sm4加密块密码功能性的指令和逻辑
CN108702286A (zh) * 2016-04-01 2018-10-23 英特尔公司 抗功率侧信道攻击的高级加密标准加速器处理器
WO2020037981A1 (zh) * 2018-08-24 2020-02-27 东南大学 一种基于双S核的8-bitAES电路
CN111400738A (zh) * 2020-03-19 2020-07-10 杭州趣维科技有限公司 一种多维查表方式的数据加密方法
CN111832051A (zh) * 2020-07-10 2020-10-27 郑州信大捷安信息技术股份有限公司 一种基于fpga的对称加解密方法及系统

Families Citing this family (10)

* 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
KR102456395B1 (ko) * 2015-08-24 2022-10-18 인텔 코포레이션 Simd sm4 암호화 블록 암호 기능성을 제공하는 명령어 및 로직
US9996708B2 (en) * 2015-06-26 2018-06-12 Intel Corporation SMS4 acceleration processors having encryption and decryption mapped on a same hardware
US11139953B2 (en) * 2017-04-12 2021-10-05 Beijing Lianshi Networks Technology Co., Ltd. Methods and apparatus for secure and efficient implementation of block ciphers
CN108170203B (zh) * 2018-02-02 2020-06-16 清华大学 用于可重构处理系统的查表算子及其配置方法
US20200313850A1 (en) * 2019-03-29 2020-10-01 Irdeto Canada Corporation Method and apparatus for implementing a white-box cipher
CN111526003B (zh) * 2020-04-09 2021-08-27 北京理工大学 数据加密方法、装置、存储介质和电子设备
CN113162756B (zh) * 2021-03-31 2022-02-11 郑州信大捷安信息技术股份有限公司 一种基于查表的sm4算法实现方法和装置
EP4117221A1 (en) * 2021-07-09 2023-01-11 STMicroelectronics S.r.l. Method for performing cryptographic operations in a processing device, corresponding processing device and computer program product
CN115208626B (zh) * 2022-06-02 2023-12-01 北京交大微联科技有限公司 铁路信号系统中基于安全通信密文传输的通信方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1688121A (zh) * 2005-06-16 2005-10-26 北京中星微电子有限公司 AES加解密电路优化方法及复用Sbox模块
CN1921382A (zh) * 2006-09-06 2007-02-28 华为技术有限公司 一种基于aes算法的加解密方法及加解密器

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2302784A1 (en) * 1997-09-17 1999-03-25 Frank C. Luyster Improved block cipher method
US20040202318A1 (en) * 2001-10-04 2004-10-14 Chih-Chung Lu Apparatus for supporting advanced encryption standard encryption and decryption
JP2005527853A (ja) * 2002-05-23 2005-09-15 アトメル・コーポレイション 高度暗号化規格(aes)のハードウェア暗号法エンジン
US20080019524A1 (en) * 2006-06-29 2008-01-24 Kim Moo S Apparatus and method for low power aes cryptographic circuit for embedded system
US7890750B2 (en) * 2006-07-06 2011-02-15 Accenture Global Services Limited Encryption and decryption on a graphics processing unit
US20090245510A1 (en) * 2008-03-25 2009-10-01 Mathieu Ciet Block cipher with security intrinsic aspects
KR101334040B1 (ko) * 2010-01-20 2013-11-28 한국전자통신연구원 대칭키 암호화 시스템의 마스킹 연산 방법 및 장치
US8605894B2 (en) * 2011-07-14 2013-12-10 Apple Inc. Cryptographic process execution protecting an input value against attacks
CN102710415B (zh) * 2012-06-18 2015-03-11 西安西电捷通无线网络通信股份有限公司 一种利用对称密码算法进行数据加解密的方法及查表装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1688121A (zh) * 2005-06-16 2005-10-26 北京中星微电子有限公司 AES加解密电路优化方法及复用Sbox模块
CN1921382A (zh) * 2006-09-06 2007-02-28 华为技术有限公司 一种基于aes算法的加解密方法及加解密器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
易立华: "无线传感网络安全机制中的对称密码算法研究", 《中国博士论文全文数据库》, 7 June 2010 (2010-06-07), pages 15 - 27 *

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013189253A1 (zh) * 2012-06-18 2013-12-27 西安西电捷通无线网络通信股份有限公司 一种利用对称密码算法进行数据加解密的方法及查表装置
US9374218B2 (en) 2012-06-18 2016-06-21 China Iwncomm Co., Ltd. Method for conducting data encryption and decryption using symmetric cryptography algorithm and table look-up device
CN103731822B (zh) * 2012-10-15 2018-11-30 中国科学院微电子研究所 一种祖冲之算法的实现系统及其方法
CN103731822A (zh) * 2012-10-15 2014-04-16 中国科学院微电子研究所 一种祖冲之算法的实现系统及其方法
CN103813313A (zh) * 2012-11-07 2014-05-21 中国科学院微电子研究所 一种祖冲之算法的硬件实现装置及方法
CN103813313B (zh) * 2012-11-07 2017-06-06 中国科学院微电子研究所 一种祖冲之算法的硬件实现装置及方法
US10778425B2 (en) 2014-09-26 2020-09-15 Intel Corporation Instructions and logic to provide SIMD SM4 cryptographic block cipher functionality
CN107209661B (zh) * 2014-09-26 2021-09-07 英特尔公司 用于提供simd sm4加密块密码功能性的指令和逻辑
CN107209661A (zh) * 2014-09-26 2017-09-26 英特尔公司 用于提供simd sm4加密块密码功能性的指令和逻辑
US11849035B2 (en) 2014-09-26 2023-12-19 Intel Corporation Instructions and logic to provide SIMD SM4 cryptographic block cipher
US11303438B2 (en) 2014-09-26 2022-04-12 Intel Corporation Instructions and logic to provide SIMD SM4 cryptographic block cipher functionality
CN105553646B (zh) * 2015-12-31 2018-09-18 清华大学无锡应用技术研究院 面向分组密码算法并行计算的可重构s盒电路结构
CN105553646A (zh) * 2015-12-31 2016-05-04 清华大学无锡应用技术研究院 面向分组密码算法并行计算的可重构s盒电路结构
CN108702286A (zh) * 2016-04-01 2018-10-23 英特尔公司 抗功率侧信道攻击的高级加密标准加速器处理器
CN107070630A (zh) * 2017-01-17 2017-08-18 中国科学院信息工程研究所 一种aes算法的快速安全硬件结构
CN107070630B (zh) * 2017-01-17 2019-10-11 中国科学院信息工程研究所 一种aes算法的快速安全硬件结构
CN107066900A (zh) * 2017-04-18 2017-08-18 东南大学 面向分组密码算法的可重构s盒、可重构计算阵列及门控方法
WO2020037981A1 (zh) * 2018-08-24 2020-02-27 东南大学 一种基于双S核的8-bitAES电路
CN111400738B (zh) * 2020-03-19 2023-05-02 杭州小影创新科技股份有限公司 一种多维查表方式的数据加密方法
CN111400738A (zh) * 2020-03-19 2020-07-10 杭州趣维科技有限公司 一种多维查表方式的数据加密方法
CN111832051B (zh) * 2020-07-10 2022-02-18 郑州信大捷安信息技术股份有限公司 一种基于fpga的对称加解密方法及系统
CN111832051A (zh) * 2020-07-10 2020-10-27 郑州信大捷安信息技术股份有限公司 一种基于fpga的对称加解密方法及系统

Also Published As

Publication number Publication date
CN102710415B (zh) 2015-03-11
EP2863577A1 (en) 2015-04-22
WO2013189253A1 (zh) 2013-12-27
US9374218B2 (en) 2016-06-21
US20150172043A1 (en) 2015-06-18
EP2863577A4 (en) 2015-07-22

Similar Documents

Publication Publication Date Title
CN102710415A (zh) 一种利用对称密码算法进行数据加解密的方法及查表装置
CN101753292B (zh) 用于链接式加密模式的方法和设备
US20060147040A1 (en) Rijndael block cipher apparatus and encryption/decryption method thereof
CN102025505A (zh) 一种基于aes算法的加密、解密方法及装置
CN105809046A (zh) 数据高效加密方法及系统
CN104205117A (zh) 设备文件的加解密方法及装置
CN102664740B (zh) 一种基于远程授权的招投标文件加解密方法
US10122690B2 (en) Data encryption and authentication using a mixing function in a communication system
CN102594548A (zh) 一种实现数据分段加密、解密的方法
US7925009B2 (en) Hybrid data encryption
CN103166943A (zh) 一种对电子控制单元ecu目标文件加密传输的方法及系统
US10686587B2 (en) Method for safeguarding the information security of data transmitted via a data bus and data bus system
EP3086585B1 (en) Method and system for securing data communicated in a network
CN102801519A (zh) 一种实现aes加解密的方法及装置
CN102624520B (zh) 基于aes的192比特位密钥扩展系统及方法
CN102238430A (zh) 个性化白箱解扰器
KR101095386B1 (ko) 이산화된 카오스 함수를 이용한 암호 시스템
CN101534190A (zh) 一种多通道加/解密方法、装置及系统
CN102594549A (zh) 一种数据多级加密、解密方法
CN102664730A (zh) 基于高级加密标准aes的128比特位密钥扩展方法
CN103501220A (zh) 加密方法和装置
CN103427981B (zh) 一种实现加密、解密的方法以及装置
CN101882991B (zh) 基于分组密码算法的通讯数据流加密方法
CN115967790A (zh) 监控系统及监控数据加密传输方法
CN102546152B (zh) 一种实现数据多级加密、解密的方法

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