CN107066900A - 面向分组密码算法的可重构s盒、可重构计算阵列及门控方法 - Google Patents

面向分组密码算法的可重构s盒、可重构计算阵列及门控方法 Download PDF

Info

Publication number
CN107066900A
CN107066900A CN201710253059.5A CN201710253059A CN107066900A CN 107066900 A CN107066900 A CN 107066900A CN 201710253059 A CN201710253059 A CN 201710253059A CN 107066900 A CN107066900 A CN 107066900A
Authority
CN
China
Prior art keywords
boxes
box
resource
reconfigurable
table lookup
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
Application number
CN201710253059.5A
Other languages
English (en)
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.)
Southeast University
Original Assignee
Southeast 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 Southeast University filed Critical Southeast University
Priority to CN201710253059.5A priority Critical patent/CN107066900A/zh
Publication of CN107066900A publication Critical patent/CN107066900A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种面向分组密码算法的可重构S盒,对S盒内部增加门控开关电路,用于控制S盒使能信号为有效或者无效状态,从而控制S盒是否进行查表操作。本发明还公开了采用可重构S盒的可重构计算阵列,所述可重构计算阵列包括多个计算资源块,每一个计算资源块包括一组S盒资源和多组算术逻辑资源,多组算术逻辑资源共享一组S盒资源。此外,本发明还公开了可重构S盒的门控方法。本发明能够实现多种分组密码算法,性能高,灵活性高,电路实现面积小,功耗低,能够对S盒实现细粒度控制。

Description

面向分组密码算法的可重构S盒、可重构计算阵列及门控方法
技术领域
本发明涉及嵌入式系统领域,特别是涉及面向分组密码算法的可重构S盒、可重构计算阵列及门控方法。
背景技术
随着电子科技的发展和网络及无线通信技术的广泛应用,信息安全越来越被人们重视。如何有效防止信息的泄露和对敏感信息的管理成为信息安全技术领域的重要关注点。芯片加密技术用以解决上述问题成为现在广泛使用的有效手段,而提高芯片加密的处理速度,灵活性及安全性成为工程技术研究的重点问题。在密码算法中,分组密码是一种作用于分组数据的算法,尤其适用于对大块数据的加解密操作,从而被广泛使用。
在实现方式上,现在被广泛使用的专用集成电路(ASIC)具有处理速度快的优势,但灵活性较差,不能较好地根据算法和参数的不同而做出改变。相比于ASIC的实现方式,可重构的结构具有更高的灵活性,平衡了性能和灵活性的要求,为分组密码的实现提供了新的选择。
S盒是许多分组密码算法中的重要组成部分,与算法的其他部分不同,对S盒的操作是非线性的,它对整个计算模块所占的空间和计算速度起到关键的制约作用。现有的S盒结构有两种,基于逻辑电路的方法和基于查找表的方法。基于逻辑电路的方法占用面积小但灵活性差,不能兼容不同类型的S盒操作;基于查找表的方法占用面积大但易更新,所以广泛使用于可重构结构中。
现有的S盒设计方法有两种:1)对于特定的算法,根据算法需要,在输出数据需要进行S盒查表操作的算术逻辑资源后连接S盒结构,再连接下一个算术逻辑资源。这种方法将S盒置于计算路径中的固定位置,不适用于对多种算法的运算,灵活性差;2)对于可执行多种算法的计算阵列结构,在每个算术逻辑资源后都连接S盒。如果算术逻辑资源执行完某一运算后需要根据算法进行S盒查表操作,数据进入S盒,否则直接进入下一个算术逻辑资源进行运算。这种方法资源开销较大,利用率不高。
发明内容
发明目的:本发明的目的是提供一种灵活性高、功耗低的面向分组密码算法的可重构S盒、可重构计算阵列及门控方法。
技术方案:为达到此目的,本发明采用以下技术方案:
本发明所述的面向分组密码算法的可重构S盒,对可重构计算阵列中的S盒内部增加门控开关电路,根据S盒使能信号是否有效,控制S盒是否进行查表操作。
本发明所述的可重构计算阵列包括多个计算资源块和多个S盒,每个计算资源块包括多组算术逻辑资源,每个计算资源块共享一个S盒资源。
进一步,如果在可重构计算阵列映射任务的数据流图对应的配置信息中没有对S盒进行数据配置,则将S盒的使能信号设置为无效状态,并根据该使能信号通过门控开关电路使得S盒不进行查表操作;如果映射任务的数据流图对应的配置信息中对S盒进行了数据配置,则根据使能配置,将S盒的使能信号设置为有效或无效状态,并根据该使能信号,使得S盒进行或不进行查表操作,查表操作的输入数据源选取和输出数据目标选取分别由输入路由和输出路由决定。
本发明所述的计算阵列的门控方法,如果使能配置显示上一组算术逻辑资源的输出数据在下一计算周期需要进行S盒查表操作,则将S盒使能信号设置为有效状态,通过门控开关电路使得S盒根据输入路由和输出路由配置进行查找操作,查表输出代替下一组算术逻辑资源的输出;否则,将S盒使能状态设置为无效状态。
有益效果:与现有技术相比,本发明具有如下的有益效果:
(1)性能高,灵活性高。S盒内部结构并行的特征提高了查找速度,可重构的S盒结构使得所述S盒能够支持多种不同的分组密码算法的查表操作。
(2)面积减小。一个计算资源块中的所有算术逻辑资源共享一组S盒资源,S盒根据配置信息代替计算资源的某一段路径,避免了整个数据路径中要经过多组空闲的S盒资源的特点。有效的节省了S盒的数量,减少了系统的面积,提高了S盒利用的效率和算法映射的灵活性。
(3)功耗低。S盒的设计方法采用对S盒细粒度的门控设计,增加门控开关电路,控制S盒使能的有效或无效。这种设计使得不需要进行S盒查找时,S盒不会出现在数据路径之中,不产生动态功耗。
附图说明
图1为本发明具体实施方式中S盒和可重构计算阵列的结构示意图;
图2为本发明具体实施方式中S盒使能信号随运算周期的开关示意图;
图3为本发明具体实施方式中S盒的工作流程图;
图4为本发明具体实施方式中S盒应用于SoC芯片的架构示意图。
具体实施方式
下面结合附图和具体实施方式对本发明的技术方案作进一步的介绍。
本具体实施方式公开了一种面向分组密码算法的可重构S盒,如图1所示,S盒包括输入选择单元、查找表单元、输出选择单元和门控开关电路。输入选择单元主要负责选择查找表的输入地址来源,查找表单元内部由若干存储器组成,存储器含有多个并行端口,用来读入和写出数据,从而在单个计算单元中并行完成S盒的运算。查找表单元主要负责对分组密码算法的查找表替换信息进行存储分配,输出选择单元主要负责将查表输出数据传输到正确的算术逻辑单元中。门控开关电路根据S盒使能信号是否有效对可重构S盒进行细粒度门控,控制S盒是否进行查表操作。对S盒进行细粒度门控的使能信号由算法的配置信息确定提供。当配置信息没有对S盒进行数据配置,S盒使能信号处于无效状态,根据该使能信号通过门控开关电路使得S盒不进行查表操作,S盒不产生动态功耗。当根据配置信息,数据通路中的某组算术逻辑资源的输出数据在下一周期需要进行S盒查表操作时,S盒使能信号被设为有效状态,根据查找表的输入地址信号与该使能有效信号进行查表操作,查表输出代替该组算术逻辑资源的输出,并将运算结果输入到相应的下一层。当该次查表操作完成后,根据配置信息,数据通路中的某组算术逻辑资源的输出数据在下一周期不需要进行S盒查表操作时,S盒使能信号被设为无效状态。
如图1所示,可重构计算阵列包括多个计算资源块和多个S盒,每个计算资源块包括多组算术逻辑资源,每个计算资源块共享一个S盒资源。每个计算资源块中的各组算术逻辑资源的输入通过输入选择单元与S盒的输入相连,每一组算术逻辑资源的输出都通过输出选择单元与S盒的输出相连。
如图1所示,可重构计算阵列中各个计算资源块和各个S盒独立配置,各个计算资源块流水执行,可在阵列流水执行的过程中对S盒进行逐级门控,将不使用的S盒使能置为无效。对于算法映射中使用的S盒,当数据输入将S盒使能设为有效,当查表操作完成后将S盒使能设为无效。在阵列流水执行过程中,各个S盒随着阵列流水的方向,呈现出依次使能有效,再依次使能无效的状态。
图2为本发明具体实施方式中S盒使能信号随着阵列流水方向设为有效或无效状态的示意图,设定高电平为使能有效。假设可重构计算阵列中有5个计算资源块和5个S盒,每个计算资源块有4组算术逻辑资源。假设对于某算法映射的配置信息,第0、2、4个计算资源块的第1组算术逻辑资源以查找操作的结果作为输出,第1、3个计算资源块的第3组算术逻辑资源以查表操作的结果作为输出,共对10组数据进行加密。图2的横轴为时钟周期数,每个时间周期可供一组算术逻辑资源完成一次运算或一个S盒完成一次查表操作,纵轴为各个S盒的使能有效状态。如图2所示,每组数据由第0组计算资源块流向第4组计算资源块,故第0组至第4组计算资源块分别从第0/4/8/12/16个周期开始运算。由于第0/2/4个计算资源块的第1组算术逻辑资源以查表操作的结果作为输出,因此第0/2/4个S盒的使能信号从第1/9/17周期开始有效。同样的,由于第1/3个计算资源块的第3组算术逻辑资源以查表操作的结果作为输出,因此第1/3个S盒的使能信号从7/15周期开始有效。由于各个计算资源块流水执行,因此各个S盒使能信号在流水执行完成前一直保持有效状态,保持有效状态的周期数与加密数据量一致,为10个周期。
图3为本发明具体实施方式中可重构S盒的工作流程图,具体流程说明如下:
第一步:系统上电复位,开始工作;
第二步:根据数据流图完成配置信息初始化或者配置信息重构;
第三步:判断S盒是否收到数据配置:若有,执行第四步;否则S盒使能置为无效并等待计算资源块完成计算后,执行第六步;
第四步:S盒解析配置信息,包括控制配置、路由配置和使能配置。其中控制配置设定S盒中存储器的连接状态,以使得配置后的S盒可以满足查表操作需求;路由配置设定查找操作的输入源和输出目标;使能配置设定S盒使能信号的有效状态;
第五步:判断当前数据流图是否完成计算:若是,执行第六步;否则执行第七步;
第六步:判断是否还有后续数据流图:若是,返回第二步;否则结束;
第七步:根据使能配置确定S盒使能是否有效:若是,执行第八步;否则以当前算术逻辑资源组的结果作为输出,进入下一层,返回第五步;
第八步:根据S盒使能信号有效状态,门控S盒执行查表操作,查表操作的结果替代当前算术逻辑资源组的结果作为输出,进入下一层,返回执行第五步。
图4本发明具体实施方式中S盒应用于SoC芯片的架构示意图。该SoC芯片的结构包括ARM7TDMI处理器、AHB总线、可重构系统和片外存储器。其中,ARM7TDMI处理器作为主控处理器,AHB总线连接ARM7TDMI主控处理器、片外存储器和可重构系统。可重构系统通过AHB总线接受ARM7TDMI主控处理器的指令并完成运算,片外存储器存储可重构计算中需要的数据信息并通过AHB总线被访问。可重构系统包括配置控制器、配置接口、内部存储器、计算资源块和S盒。系统上电开始工作后,配置控制器初始化、读取并解析配置信息,并将其发送至计算资源块和S盒的配置信息接口。计算资源块根据配置信息执行阵列流水,S盒根据配置信息执行查表操作,当S盒根据使能配置将使能信号设为有效时,S盒的查表操作的结果代替对应计算资源块的算术逻辑资源组的结果作为输出。

Claims (4)

1.面向分组密码算法的可重构S盒,其特征在于:对可重构计算阵列中的S盒内部增加门控开关电路,根据S盒使能信号是否有效,控制S盒是否进行查表操作。
2.采用根据权利要求1所述可重构S盒的可重构计算阵列,其特征在于:所述可重构计算阵列包括多个计算资源块和多个S盒,每个计算资源块包括多组算术逻辑资源,每个计算资源块共享一个S盒资源。
3.根据权利要求1所述可重构S盒,其特征在于:如果在可重构计算阵列映射任务的数据流图对应的配置信息中没有对S盒进行数据配置,则将S盒的使能信号设置为无效状态,并根据该使能信号通过门控开关电路使得S盒不进行查表操作;如果映射任务的数据流图对应的配置信息中对S盒进行了数据配置,则根据使能配置,将S盒的使能信号设置为有效或无效状态,并根据该使能信号,使得S盒进行或不进行查表操作,查表操作的输入数据源选取和输出数据目标选取分别由输入路由和输出路由决定。
4.根据权利要求2所述的计算阵列的门控方法,其特征在于:如果使能配置显示上一组算术逻辑资源的输出数据在下一计算周期需要进行S盒查表操作,则将S盒使能信号设置为有效状态,通过门控开关电路使得S盒根据输入路由和输出路由配置进行查找操作,查表输出代替下一组算术逻辑资源的输出;否则,将S盒使能状态设置为无效状态。
CN201710253059.5A 2017-04-18 2017-04-18 面向分组密码算法的可重构s盒、可重构计算阵列及门控方法 Pending CN107066900A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710253059.5A CN107066900A (zh) 2017-04-18 2017-04-18 面向分组密码算法的可重构s盒、可重构计算阵列及门控方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710253059.5A CN107066900A (zh) 2017-04-18 2017-04-18 面向分组密码算法的可重构s盒、可重构计算阵列及门控方法

Publications (1)

Publication Number Publication Date
CN107066900A true CN107066900A (zh) 2017-08-18

Family

ID=59600666

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710253059.5A Pending CN107066900A (zh) 2017-04-18 2017-04-18 面向分组密码算法的可重构s盒、可重构计算阵列及门控方法

Country Status (1)

Country Link
CN (1) CN107066900A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170203A (zh) * 2018-02-02 2018-06-15 清华大学无锡应用技术研究院 用于可重构处理系统的查表算子及其配置方法
CN109039608A (zh) * 2018-08-24 2018-12-18 东南大学 一种基于双S核的8-bitAES电路
CN114519200A (zh) * 2022-04-19 2022-05-20 广州万协通信息技术有限公司 实时生成查找表的加密方法、装置、设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102347833A (zh) * 2011-09-22 2012-02-08 东南大学 一种基于ram共享技术的可重构s盒电路结构
CN102710415A (zh) * 2012-06-18 2012-10-03 西安西电捷通无线网络通信股份有限公司 一种利用对称密码算法进行数据加解密的方法及查表装置
CN104539417A (zh) * 2015-01-12 2015-04-22 浪潮(北京)电子信息产业有限公司 一种基于流密码的加密设备
CN105553646A (zh) * 2015-12-31 2016-05-04 清华大学无锡应用技术研究院 面向分组密码算法并行计算的可重构s盒电路结构

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102347833A (zh) * 2011-09-22 2012-02-08 东南大学 一种基于ram共享技术的可重构s盒电路结构
CN102710415A (zh) * 2012-06-18 2012-10-03 西安西电捷通无线网络通信股份有限公司 一种利用对称密码算法进行数据加解密的方法及查表装置
CN104539417A (zh) * 2015-01-12 2015-04-22 浪潮(北京)电子信息产业有限公司 一种基于流密码的加密设备
CN105553646A (zh) * 2015-12-31 2016-05-04 清华大学无锡应用技术研究院 面向分组密码算法并行计算的可重构s盒电路结构

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
闵婧: "面向分组密码算法的S盒置换单元并发访问结构设计与优化", 《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170203A (zh) * 2018-02-02 2018-06-15 清华大学无锡应用技术研究院 用于可重构处理系统的查表算子及其配置方法
CN108170203B (zh) * 2018-02-02 2020-06-16 清华大学 用于可重构处理系统的查表算子及其配置方法
CN109039608A (zh) * 2018-08-24 2018-12-18 东南大学 一种基于双S核的8-bitAES电路
CN114519200A (zh) * 2022-04-19 2022-05-20 广州万协通信息技术有限公司 实时生成查找表的加密方法、装置、设备和存储介质

Similar Documents

Publication Publication Date Title
US9734056B2 (en) Cache structure and management method for use in implementing reconfigurable system configuration information storage
US9195610B2 (en) Transaction info bypass for nodes coupled to an interconnect fabric
CN105468568B (zh) 高效的粗粒度可重构计算系统
CN107066900A (zh) 面向分组密码算法的可重构s盒、可重构计算阵列及门控方法
CN106294278B (zh) 用于动态可重构阵列计算系统的自适硬件预配置控制器
CN104391813B (zh) 一种嵌入式数据安全系统用soc芯片
US9965187B2 (en) Near-memory data reorganization engine
CN105912501A (zh) 一种基于大规模粗粒度可重构处理器的sm4-128加密算法实现方法及系统
CN104579636A (zh) 一种超高速实现sm4算法的系统及其运行方法
BR102020019649A2 (pt) aparelho e método para agendar adaptativamente o trabalho em recursos de processamento heterogêneo
CN104391770B (zh) 一种嵌入式数据安全系统用soc芯片的在线调试及上位机通讯模块
CN107070795A (zh) 多通道交换网络中的通道选择
CN102567279B (zh) 一种动态可重构阵列时序配置信息的生成方法
BR112019027531A2 (pt) processadores de alto rendimento
US20240078112A1 (en) Techniques for decoupled access-execute near-memory processing
CN102495980A (zh) 一种可动态重构的可信密码模块
CN107423256B (zh) 可重构处理器及可重构处理器的时序控制方法
CN115865911A (zh) 用于跨分布式一致边缘计算系统共享存储器的方法和装置
CN110704109A (zh) 一种椭圆曲线密码协处理器
CN105808351A (zh) 一种多模式自适应切换处理器
CN102307090B (zh) 基于ⅱ型最优正规基的椭圆曲线密码协处理器
CN109582364B (zh) 基于忆阻器的精简指令集处理器
CN104364755B (zh) 用于通过中间阶层运算的并行计算来加速计算的方法和装置
CN105553646B (zh) 面向分组密码算法并行计算的可重构s盒电路结构
CN105224286B (zh) 用于可重构密码处理器的缓存装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170818

RJ01 Rejection of invention patent application after publication