CN102868532B - 基于可重构技术的加解密算法中基本算子的提取方法 - Google Patents

基于可重构技术的加解密算法中基本算子的提取方法 Download PDF

Info

Publication number
CN102868532B
CN102868532B CN201210337898.2A CN201210337898A CN102868532B CN 102868532 B CN102868532 B CN 102868532B CN 201210337898 A CN201210337898 A CN 201210337898A CN 102868532 B CN102868532 B CN 102868532B
Authority
CN
China
Prior art keywords
basic
operator
algorithm
submodule
enciphering
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.)
Active
Application number
CN201210337898.2A
Other languages
English (en)
Other versions
CN102868532A (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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN201210337898.2A priority Critical patent/CN102868532B/zh
Publication of CN102868532A publication Critical patent/CN102868532A/zh
Application granted granted Critical
Publication of CN102868532B publication Critical patent/CN102868532B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明提出了一种基于可重构技术的加解密算法中基本算子的提取方法,其包括如下步骤:首先,分析待实现的加解密算法,画出各个算法的数据流图并划分子模块,在数据流图中标出各个子模块的计算粒度,并计算出各个子模块中关键路径的长度;然后,对数据流图中的子模块进行切分,得到基本算子集合,最后,在基本算子中增加随机逻辑。本发明获得的基本算子集合具有很好的普适性和简易性,使得可重构密码芯片可以高效地实现多种密码算法,提高了密码芯片的吞吐量。本发明的基本算子可以对旁路攻击进行干扰,提高了密码芯片的安全性。

Description

基于可重构技术的加解密算法中基本算子的提取方法
技术领域
本发明涉及密码算法中基本算子的提取方法,特别涉及一种基于可重构技术的加解密算法中基本算子的提取方法。
背景技术
随着通信技术的发展,人们对信息进行加密的需求日益提高,随之出现了很多现代密码算法,如RSA、AES、IDEA、SMS4等算法。通常使用ASIC(Application Specific Integrated Circuit,专用集成电路)等硬件实现可以有效满足通信系统对于密码算法性能的需求。但是,随着芯片制造工艺的发展,尤其是当制程进入45nm时代之后,使用单个芯片的一次性设计费用越来越高,而传统的ASIC芯片在流片后就功能无法再进行修改,即一次流片只能实现一个功能,这使得单个功能的实现成本过高。
与此同时,通信系统对加密算法的需求越来越复杂。出于安全性考虑,通信系统需要不断对密码算法进行修改,甚至可能完整地替换密码算法。例如美国国家标准与技术研究院(NIST)于2001年11月26日于FIPS PUB 197宣布自2002年5月26日起使用AES算法替代之前使用非常广泛的DES算法。而传统ASIC实现下对密码算法进行升级或替换的成本太高,难以满足如今安全标准越来越高的通信系统的需求。
可重构计算是上述问题的可能解决方法之一。在可重构计算中,芯片的功能不再固定,而是可以通过芯片配置信息进行修改。这种芯片实现的密码算法可以非常方便地进行升级和替换,实现了多种密码算法在同一个芯片上的复用,从而降低了单个功能的实现成本。
目前,国内外针对密码领域的可重构实现的研究主要有两种解决方法。一种是使用FPGA来实现,这种方法将已有的FPGA平台作为基础,降低了设计的难度。但是,FPGA配置信息量过大难以在运行时灵活地进行重构,同时商用FPGA安全性不佳,这些不利之处催生了第二种解决方法,即定制可重构VLSI实现密码算法,这种方法可以根据密码算法的需求更灵活地调整硬件结构,从而可以获得更好的性能;同时,由于硬件结构完全定制,芯片的安全性得到了保障。
要使用单个可重构VLSI实现多种密码算法,最关键的一点是分析各个密码算法的加密解密过程,将各个算法拆解成子功能模块,然后再从这些子功能模块中提取出一些基本算子。这些基本算子将作为可重构芯片基本单元的操作来实现,这些基本单元的操作可以根据需求进行替换,从而实现了芯片的重构。可重构VLSI实现下密码算法的基本算子集合需要有如下的特征:
普适性:基本算子应该涵盖或可以组成密码算法中的绝大多数功能模块,包括基本逻辑运算(与、或、非、异或)、有限域上的运算、移位、模加、模乘、线性反馈移位寄存器等。
简易性:每个基本算子都不能太复杂,这样可以简化可重构芯片基本单元的设计,并提高芯片的性能。
安全性:为了保证芯片上的密钥和加密算法的安全性,基本算子需要有对密钥和加密算法的保护功能。
目前,针对密码算法中基本算子提取的研究在国内还比较少,而在国外已有研究成果中,有些提取方法针对的密码算法比较单一(Mostafa I.FPGAimplementation and performance evaluation of a high throughput cryptocoprocessor[J].Journal of Parallel and Distributed Computing,Volume 71 Issue 8,Pages 1075-1084,August,2011),还有些方法提取的基本算子由于比较复杂在进行实现后性能不佳。究其原因,主要是没有对密码算法中各个模块进行充分地分解,只是得到的基本算子集合或者无法覆盖更多的算法,或者即使可以实现多种算法,但由于分解不彻底致使可重构芯片中的基本单元实现过于复杂。此外,多数研究中对于在基本算子的层面提高系统的安全性考虑很少。因此,需要考虑新的密码算法基本算子提取方法,以满足通信系统中对密码芯片的需求。
发明内容
本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种基于可重构技术的加解密算法中基本算子的提取方法。
为了实现本发明的上述目的,本发明提供了一种基于可重构技术的加解密算法中基本算子的提取方法,其包括如下步骤:
S1:分析待实现的加解密算法,画出各个算法的数据流图并将所述数据流图划分为子模块,在所述数据流图中标出各个子模块的计算粒度,并计算出各个子模块中关键路径的长度;
S2:对所述数据流图中的子模块进行切分,得到基本算子集合;
S3:在所述基本算子中增加随机逻辑。
本发明获得的基本算子集合具有很好的普适性和简易性,使得可重构密码芯片可以高效地实现多种密码算法,提高了密码芯片的吞吐量。
在本发明的一种优选实施方式中,得到的基本算子包含待实现的加解密算法中采用的所有操作数运算及不同操作数之间的相互转化。
在本发明的另一种优选实施方式中,得到的基本算子同时包含1-bit、4-bit和32-bit的操作数运算及不同操作数之间的相互转化。
本发明的基本算子多粒度混合特性,可以在减少芯片配置信息的前提下满足多种算法的需求,提高了基本算子集合的普适性和高效性,提高了硬件资源的利用率。
在本发明的一种优选实施方式中,基本算子的路径长度相等或相差一级逻辑运算。
在本发明的另一种优选实施方式中,基本算子的路径长度为三级或四级逻辑运算。
本发明的基本算子的路径长度相等或相近,便于待实现的加解密算法的流水线实现,提高了基本算子的普适性和高效性。
在本发明的一种优选实施方式中,在所述基本算子中增加随机逻辑的方法为:将待实现的加解密算法映射后,硬件中未使用的单元在不影响电路正常工作的前提下随机地赋予可以正常工作的逻辑,从而干扰旁路攻击。
本发明的基本算子可以对旁路攻击进行干扰,提高了密码芯片的安全性。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是在本发明一种优选实施例中利用表1中所示的基本算子实现线性反馈移位寄存器的示意图;
图2是在本发明一种优选实施例中利用图表1中所示的基本算子实现S-BOX的示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
本发明提供了一种基于可重构技术的加解密算法中基本算子的提取方法,其包括如下步骤:
S1:分析待实现的加解密算法,画出各个算法的数据流图并将所述数据流图划分为子模块,在所述数据流图中标出各个子模块的计算粒度,并计算出各个子模块中关键路径的长度;
S2:对数据流图中的子模块进行切分,得到基本算子集合;
S3:在基本算子中增加随机逻辑,提高安全性。
在本发明的一种优选实施方式中,该基于可重构技术的加解密算法中基本算子的提取方法的具体步骤为:
第一步:分析待实现的加解密算法,画出各个算法的数据流图并划分子模块,在数据流图中标出各个子模块的计算粒度,并计算出各个子模块中关键路径的长度。在本实施方式中,划分子模块的方法为:首先将完整的数据流图按照其功能初步划分为几个规模大小相近的子模块,然后检查子模块是否超过了预先设定的阵列规模,若超过规模,则在之前的基础上对数据流图进行划分得到一组新的子模块,并重新检查是否超过阵列规模,如果还超过规模,则继续重新划分直到各个子模块都满足阵列规模的限制。关键路径定义方法为:得到各个算子之后分析其逻辑门的级数,然后计算各条逻辑通路的总逻辑级数,级数最多的一条通路即为关键路径。
第二步:对数据流图中的子模块进行切分,得到基本算子集合。在本实施方式中,对子模块进行切分中,首先需要考虑基本算子中多种计算粒度混合。密码算法中同时包括多种计算粒度,例如AES算法中有4-bit和32-bit运算,流密码算法中有1-bit、18-bit和20bit等不规则运算,为了尽可能少的浪费硬件资源,需要使得算子中包含多种粒度的计算。在本实施方式中,得到的基本算子包含待实现的加解密算法中采用的所有操作数运算及不同操作数之间的相互转化,即包括1-bit、4-bit、18-bit、20bit和32-bit的操作数运算及不同操作数之间的相互转化。在本发明的一种更加优选的实施方式中,得到的基本算子同时包含1-bit、4-bit和32-bit的操作数运算及不同操作数之间的相互转化,例如,“移位条件加”操作首先将32-bit的操作数1进行移位,然后若1-bit的控制位输入为1,则将移位后的结果与32-bit操作数2相加,这一操作可以用于线性反馈移位寄存器的实现或者模乘模块的实现中。基本算子多粒度混合可以在尽量减少芯片配置信息的前提下满足多种算法的需求,提高了基本算子集合的普适性和高效性,提高了硬件资源的利用率。
对子模块进行切分中,还需要尽量使各个子模块关键路径的长度相近,从而便于整个算法的流水线实现。在本实施方式中,基本算子的路径长度相等或相差一级逻辑运算。在本发明的一种更加优选的实施方式中,基本算子的路径长度为三级或四级逻辑运算。例如,在AES算法、SMS4算法中都使用了S-BOX字节替换,如果直接将整个S-BOX作为一个基本算子,那么它的关键路径大约有21级逻辑运算,与其他逻辑模块相比过长,需要将它切割成8段基本算子的级联。本发明的基本算子的路径长度相等或相近,便于待实现的加解密算法的流水线实现,提高了基本算子的普适性和高效性。
在本发明另外的优选实施方式中,划分子模块的方法还可以为:
S11:将完整的数据流图按照其功能初步划分为几个规模大小相近的子模块;
S12:在第二步中对子模块进行初步切分得到基本算子集合;
S13:检查子模块是否超过了预先设定的阵列规模,若超过规模则返回步骤S11,在步骤S11的基础上对数据流图进行划分得到一组新的子模块,并得到改进的基本算子集合,在得到改进的基本算子集合后重新检查是否超过阵列规模,直到各个子模块都满足阵列规模的限制。
利用本发明的方法对AES、SMS 5、SHACAL、A5、IDEA五种算法提取基本算子。分析这五种算法,发现AES和SMS4中为4-bit和32-bit运算,A5算法中有1-bit、18-bit和20-bit等不规则运算,SHACAL和IDEA主要为32-bit运算。这几个算法中的子模块有基本逻辑运算(与、或、非、异或)、有限域上的运算、移位、模加、模乘、线性反馈移位寄存器。使用“基本算子中多种计算粒度混合”这一原则,设定提取结果中同时有1-bit、4-bit和32-bit运算,而A5中不规则长度的运算可以使用数个4-bit运算拼接而成。根据“各个子模块关键路径的长度相近”这一原则,对这些子模块依照之前设定的计算粒度进行切分,最终可以得到表1中所示的结果。
表1.利用本发明的基于可重构技术的加解密算法中基本算子的提取方法对AES、SMS5、SHACAL、A5、IDEA五种算法提取出的基本算子集合
图1是在本发明一种优选实施例中利用表1中所示的基本算子实现A5算法中线性反馈移位寄存器的示意图,从图中可见,使用基本算子实现A5算法中线性反馈移位寄存器时,基本算子的计算粒度有1-bit和4-bit,图中上面一行可以实现17-20bits的移位寄存器,图中下面一行则通过对寄存器中的数据进行奇偶校验提供反馈,并将反馈作为寄存器最右边的一位输入寄存器。这里,图中上面一行的移位寄存器有两个输入,其中一个输入是寄存器在上一周期的结果,由于基本单元内部没有寄存器,只有在输出端有寄存器,故需要将上一周期的结果输回基本单元,另一个输入是寄存器的位数控制。
第三步:在基本算子中增加随机逻辑,提高安全性。本发明使用随机逻辑增加芯片在面对旁路攻击,尤其是差分功耗攻击时的安全性。旁路攻击通过分析一个芯片在执行密码算法时各个部分的功耗变化,可以推断出芯片使用的密钥等信息。具体增加随机逻辑的方法为:将待实现的加解密算法映射后,硬件阵列中未使用的单元在不影响电路正常工作的前提下随机地赋予可以正常工作的逻辑,从而干扰旁路攻击。在本实施方式中,在基本算子中增加了一个“随机”操作码,这样芯片中冗余部分在不影响电路正常工作的前提下“随机”赋予可以正常工作的逻辑,从而干扰旁路攻击。图2是在本发明另一种优选实施例中利用图表1中所示的基本算子实现AES算法中S-BOX(substitution box,密码置换盒)的示意图。从图中可见,使用基本算子是实现AES算法中的S-BOX时,主要使用了有限域GF(24)上的运算。在图中有一些空着的基本单元,这些基本单元都被映射为了“随机”算子,从而对旁路攻击进行干扰,提高了密码芯片的安全性。
本发明获得的基本算子集合具有很好的普适性和简易性,使得可重构密码芯片可以高效地实现多种密码算法,提高了密码芯片的吞吐量。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

Claims (4)

1.一种基于可重构技术的加解密算法中基本算子的提取方法,其特征在于,包括如下步骤:
S1:分析待实现的加解密算法,画出各个算法的数据流图并将所述数据流图划分为子模块,在所述数据流图中标出各个子模块的计算粒度,并计算出各个子模块中关键路径的长度;
S2:对所述数据流图中的子模块进行切分,得到基本算子集合,其中,得到的基本算子包含待实现的加解密算法中采用的所有操作数运算及不同操作数之间的相互转化,基本算子的路径长度相等或相差一级逻辑运算;
S3:在所述基本算子中增加随机逻辑。
2.如权利要求1所述的基于可重构技术的加解密算法中基本算子的提取方法,其特征在于,在所述步骤S2中,得到的基本算子同时包含1-bit、4-bit和32-bit的操作数运算及不同操作数之间的相互转化。
3.如权利要求1所述的基于可重构技术的加解密算法中基本算子的提取方法,其特征在于,在所述步骤S2中,基本算子的路径长度为三级或四级逻辑运算。
4.如权利要求1所述的基于可重构技术的加解密算法中基本算子的提取方法,其特征在于,在所述基本算子中增加随机逻辑的方法为:将待实现的加解密算法映射后,硬件中未使用的单元在不影响电路正常工作的前提下随机地赋予可以正常工作的逻辑,从而干扰旁路攻击。
CN201210337898.2A 2012-09-12 2012-09-12 基于可重构技术的加解密算法中基本算子的提取方法 Active CN102868532B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210337898.2A CN102868532B (zh) 2012-09-12 2012-09-12 基于可重构技术的加解密算法中基本算子的提取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210337898.2A CN102868532B (zh) 2012-09-12 2012-09-12 基于可重构技术的加解密算法中基本算子的提取方法

Publications (2)

Publication Number Publication Date
CN102868532A CN102868532A (zh) 2013-01-09
CN102868532B true CN102868532B (zh) 2015-05-20

Family

ID=47447138

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210337898.2A Active CN102868532B (zh) 2012-09-12 2012-09-12 基于可重构技术的加解密算法中基本算子的提取方法

Country Status (1)

Country Link
CN (1) CN102868532B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104484615B (zh) * 2014-12-31 2017-08-08 清华大学无锡应用技术研究院 适用于可重构阵列架构的基于空间随机化抗故障攻击方法
CN107203487B (zh) * 2017-05-24 2020-09-11 东南大学 一种抗功耗攻击的安全可重构架构
CN109274497A (zh) * 2018-08-30 2019-01-25 无锡凯特微电子有限公司 一种基于可重构阵列的sm3算法的映射方法
CN110034920B (zh) * 2019-04-09 2023-03-31 中国人民解放军战略支援部队信息工程大学 粗粒度可重构密码逻辑阵列的映射方法及装置
CN110298186B (zh) * 2019-07-02 2021-04-06 北京计算机技术及应用研究所 一种基于动态可重构密码芯片的无密钥数据加解密方法
CN111897580B (zh) * 2020-09-29 2021-01-12 北京清微智能科技有限公司 一种可重构阵列处理器的指令调度系统及方法
CN114661656B (zh) * 2022-05-25 2022-08-30 广州万协通信息技术有限公司 一种可重构阵列配置方法、装置、设备以及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101414337A (zh) * 2008-11-17 2009-04-22 武汉大学 演化密码芯片
CN101630274A (zh) * 2009-07-31 2010-01-20 清华大学 一种实现对循环任务进行软硬件划分的方法和装置
CN101826142A (zh) * 2010-04-19 2010-09-08 中国人民解放军信息工程大学 一种可重构椭圆曲线密码处理器
CN102253921A (zh) * 2011-06-14 2011-11-23 清华大学 一种动态可重构处理器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101414337A (zh) * 2008-11-17 2009-04-22 武汉大学 演化密码芯片
CN101630274A (zh) * 2009-07-31 2010-01-20 清华大学 一种实现对循环任务进行软硬件划分的方法和装置
CN101826142A (zh) * 2010-04-19 2010-09-08 中国人民解放军信息工程大学 一种可重构椭圆曲线密码处理器
CN102253921A (zh) * 2011-06-14 2011-11-23 清华大学 一种动态可重构处理器

Also Published As

Publication number Publication date
CN102868532A (zh) 2013-01-09

Similar Documents

Publication Publication Date Title
CN102868532B (zh) 基于可重构技术的加解密算法中基本算子的提取方法
CN101622816B (zh) 用于高级加密标准(aes)的灵活结构和指令
CN105099652B (zh) 数据加密、解密方法和装置
CN103595539A (zh) 保留格式的数值型个人识别信息的加密方法
CN105007154B (zh) 一种基于aes算法的加密解密装置
CN103455446A (zh) 用于实施加密方法的设备及对此的运行方法
CN102509036A (zh) 一种可重构密码处理器及抗功耗攻击方法
CN107292134A (zh) 一种防止Android应用被反编译的应用加固方法及系统
CN110704854B (zh) 针对文本数据保留格式的流式加密方法
CN103973432A (zh) 一种基于fpga和usb接口芯片的sm4算法加密设备
CN109547201A (zh) 一种根密钥的加密方法、计算机可读存储介质及终端设备
KR20220052858A (ko) Aes 카운터 모드 암호화에서 쿼시그룹 연산으로 암호화된 정수들을 가산하고 비교하기 위한 시스템 및 방법
CN102497270B (zh) 一类规范化文档的加密方法
Shanta Evaluating the performance of symmetric key algorithms: AES (advanced encryption standard) and DES (data encryption standard)
Tay et al. Compact and low power aes block cipher using lightweight key expansion mechanism and optimal number of s-boxes
Gaspar et al. HCrypt: a novel concept of crypto-processor with secured key management
Wei et al. A reconfigurable block cryptographic processor based on VLIW architecture
CN100369017C (zh) 静态随机存储器可编程门阵列芯片的加密装置及加密方法
Huo et al. High‐Throughput Area‐Efficient Processor for Cryptography
Zhang et al. A hybrid-CPU-FPGA-based solution to the recovery of sha256crypt-hashed passwords
CN103338104B (zh) 记录仪实时采集数据的加密方法
CN103150522B (zh) 一种适用于无源便携式设备的3des加密算法电路
Conti et al. Design exploration of aes accelerators on fpgas and gpus
Chang et al. Hardware-assisted security mechanism: The acceleration of cryptographic operations with low hardware cost
CN104837131B (zh) 一种基于批处理指数运算乘积的批Cramer-Shoup密码方法

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