首页> 中国专利> 基于可重构技术的加解密算法中基本算子的提取方法

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

摘要

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

著录项

  • 公开/公告号CN102868532A

    专利类型发明专利

  • 公开/公告日2013-01-09

    原文格式PDF

  • 申请/专利权人 清华大学;

    申请/专利号CN201210337898.2

  • 申请日2012-09-12

  • 分类号H04L9/32(20060101);H04L9/30(20060101);

  • 代理机构北京清亦华知识产权代理事务所(普通合伙);

  • 代理人张大威

  • 地址 100084 北京市海淀区100084-82信箱

  • 入库时间 2024-02-19 16:49:45

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-05-20

    授权

    授权

  • 2013-02-20

    实质审查的生效 IPC(主分类):H04L9/32 申请日:20120912

    实质审查的生效

  • 2013-01-09

    公开

    公开

说明书

技术领域

本发明涉及密码算法中基本算子的提取方法,特别涉及一种基于可重构技 术的加解密算法中基本算子的提取方法。

背景技术

随着通信技术的发展,人们对信息进行加密的需求日益提高,随之出现了 很多现代密码算法,如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.FPGA  implementation and performance evaluation of a high throughput crypto  coprocessor[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)上的运算。在图中有一些空着的基本单元,这 些基本单元都被映射为了“随机”算子,从而对旁路攻击进行干扰,提高了密 码芯片的安全性。

本发明获得的基本算子集合具有很好的普适性和简易性,使得可重构密码 芯片可以高效地实现多种密码算法,提高了密码芯片的吞吐量。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、 “具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体 特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说 明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且, 描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例 中以合适的方式结合。

尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理 解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、 修改、替换和变型,本发明的范围由权利要求及其等同物限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号