CN108170203A - 用于可重构处理系统的查表算子及其配置方法 - Google Patents

用于可重构处理系统的查表算子及其配置方法 Download PDF

Info

Publication number
CN108170203A
CN108170203A CN201810110047.1A CN201810110047A CN108170203A CN 108170203 A CN108170203 A CN 108170203A CN 201810110047 A CN201810110047 A CN 201810110047A CN 108170203 A CN108170203 A CN 108170203A
Authority
CN
China
Prior art keywords
look
box
operator
table unit
data
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
CN201810110047.1A
Other languages
English (en)
Other versions
CN108170203B (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
Wuxi Research Institute of Applied Technologies of Tsinghua University
Original Assignee
Wuxi Research Institute of Applied Technologies of 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 Wuxi Research Institute of Applied Technologies of Tsinghua University filed Critical Wuxi Research Institute of Applied Technologies of Tsinghua University
Priority to CN201810110047.1A priority Critical patent/CN108170203B/zh
Publication of CN108170203A publication Critical patent/CN108170203A/zh
Application granted granted Critical
Publication of CN108170203B publication Critical patent/CN108170203B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种用于可重构处理系统的查表算子,其特征在于,所述查表算子包括:多个查找表单元S‑Box,每个所述查找表单元S‑Box中包括至少一个查找表,其中,响应于输入数据输入至所述查表算子,所述查表算子中的一个或多个查找表单元S‑Box对所述输入数据进行处理。本发明还提供了一种用于可重构处理系统的查表算子配置方法。

Description

用于可重构处理系统的查表算子及其配置方法
技术领域
本发明涉及一种用于可重构处理系统的查表算子和一种用于可重构处理系统的查表算子配置方法。
背景技术
可重构处理器(Reconfigurable Processing Unit,RPU)是一种结合计算灵活性和计算的高效性为一体的新型计算架构,可以应用于包括汽车、航空航天、国防等在内各个领域中,适用范围较广。在可重构处理器中,通常使用查找表单元S-Box实现数据的非线性置换功能。
目前,查找表单元S-Box的实现方案有两种。对于查找表单元S-Box的输入输出有固定的运算关系的情况下(例如,高级加密标准(Advanced Encryption Standard,AES)),一般根据其固有的输入输出关系采用组合逻辑电路实现。然而,对于查找表单元S-Box的输入输出没有固定的运算关系的情况下(例如,数据加密算法(Data Encryption Algorithm,DES)),每次加解密之前需要预先根据不同的随机数计算出查找表单元S-Box的数值存储在存储器中,在运算过程中再利用查找表单元得到所需要的数值,使得工作效率比较低。
发明内容
本发明的一个方面提供了一种用于可重构处理系统的查表算子,其特征在于,所述查表算子包括:多个查找表单元S-Box,每个所述查找表单元S-Box中包括至少一个查找表,其中,响应于输入数据输入至所述查表算子,所述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理。
可选地,上述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理,包括:根据所述一个或多个查找表单元S-Box的至少一个查找表获得与所述输入数据相应的输出数据。
可选地,上述每个所述查找表单元S-Box还包括:配置模块,用于接收配置信息,并根据所述配置信息对相应的所述查找表单元S-Box进行配置。
可选地,上述根据所述配置信息对相应的所述查找表单元S-Box进行配置包括:对相应的所述查找表单元S-Box的所述至少一张查找表的内容进行配置,和/或将相应的所述查找表单元S-Box配置为工作状态或者空闲状态,和/或确定相应的所述查找表单元S-Box的所述至少一张查找表中的第一查找表,将所述第一查找表配置为工作查找表。
可选地,上述每个所述查找表单元S-Box还包括:输入截取模块,用于对所述输入的数据进行截取。上述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理包括:通过所述一个或多个查找表单元S-Box的所述输入截取模块对所述输入数据进行截取。
可选地,上述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理,还包括:根据截取后的数据,在一个或多个查找表单元S-Box的相应查找表中获得相应的输出数据。
可选地,上述每个所述查找表单元S-Box还包括:输出处理模块,用于对所述输出数据进行逻辑运算处理。上述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理包括:通过所述一个或多个查找表单元S-Box的所述输出处理模块对所述输出数据进行逻辑运算处理。
可选地,上述查表算子还包括:拼接模块,用于将至少一个所述查找表单元S-Box输出的数据进行拼接,以生成所述查表算子的所述输出数据。
可选地,上述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理,包括:所述查表算子中的多个查找表单元S-Box对所述输入数据进行处理,所述多个查找表单元S-Box并行地分别对所述输入数据的一部分进行处理。
本发明的另一个方面提供了一种用于可重构处理系统的查表算子配置方法,其特征在于,所述配置方法包括:为所述查表算子配置多个查找表单元S-Box,每个所述查找表单元S-Box中包括至少一个查找表,其中,响应于输入数据输入至所述查表算子,所述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理。
可选地,上述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理,包括:根据所述一个或多个查找表单元S-Box的至少一个查找表获得与所述输入数据相应的输出数据。
可选地,上述方法还包括:为所述查找表单元S-Box配置配置模块,所述配置模块用于接收配置信息,并根据所述配置信息对相应的所述查找表单元S-Box进行配置。
可选地,上述根据所述配置信息对相应的所述查找表单元S-Box进行配置包括:对相应的所述查找表单元S-Box的所述至少一张查找表的内容进行配置,和/或将相应的所述查找表单元S-Box配置为工作状态或者空闲状态,和/或确定相应的所述查找表单元S-Box的所述至少一张查找表中的第一查找表,将所述第一查找表配置为工作查找表。
可选地,上述方法还包括:为所述查找表单元S-Box配置输入截取模块,所述输入截取模块用于对所述输入的数据进行截取。上述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理包括:通过所述一个或多个查找表单元S-Box的所述输入截取模块对所述输入数据进行截取。
可选地,上述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理,还包括:根据截取后的数据,在一个或多个查找表单元S-Box的相应查找表中获得相应的输出数据。
可选地,上述方法还包括:为所述查找表单元S-Box配置输出处理模块,所述输出处理模块用于对所述输出数据进行逻辑运算处理。上述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理包括:通过所述一个或多个查找表单元S-Box的所述输出处理模块对所述输出数据进行逻辑运算处理。
可选地,上述方法还包括:为所述查找表单元S-Box配置拼接模块,所述拼接模块用于将至少一个所述查找表单元S-Box输出的数据进行拼接,以生成所述查表算子的所述输出数据。
可选地,上述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理,包括:所述查表算子中的多个查找表单元S-Box对所述输入数据进行处理,所述多个查找表单元S-Box并行地分别对所述输入数据的一部分进行处理。
可见,本发明实施例提供的查表算子包括多个查找表单元S-Box,从而可以实现多路的并行查找运算,每个查找表单元S-Box中可以包括多个查找表,从而可以实现多种查找方式,通过动态地切换查找表可以灵活地适应多种算法需求。
附图说明
为了更完整地理解本发明及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本发明实施例的用于可重构处理系统的查表算子的应用场景;
图2示意性示出了根据本发明实施例的用于可重构处理系统的查表算子的示意图;
图3示意性示出了根据本发明另一实施例的用于可重构处理系统的查表算子的示意图;
图4示意性示出了根据本发明另一实施例的用于可重构处理系统的查表算子配置方法的流程图。
具体实施方式
以下,将参照附图来描述本发明的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本发明。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“A或B”应当被理解为包括“A”或“B”、或“A和B”的可能性。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本发明的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本发明的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本发明的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
本发明的实施例提供了一种用于可重构处理系统的查表算子及其配置方法。该查表算子包括:多个查找表单元S-Box,每个所述查找表单元S-Box中包括至少一个查找表。其中,响应于输入数据输入至所述查表算子,所述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理。
图1示意性示出了根据本发明实施例的用于可重构处理系统的查表算子的应用场景100。
如图1所示,该应用场景100包括电子设备110和硬件电路120。
电子设备110可以是具有显示装置且能够实现数据传输的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
硬件电路120例如可以是可编程电路,例如,RPU等等,但不限于此。可重构处理器例如可以包括可重构单元阵列(Reconfigurable Cell Array,RCA),其中,可重构单元阵列RCA可以包括查找表单元S-Box。
在本发明实施例中,电子设备110与硬件电路120能够建立通信连接,例如,电子设备110与硬件电路120可以实现彼此之间的数据传输。
例如,在电子设备110需要进行数据处理时,可以将相关的数据发送至硬件电路120,由硬件电路120对该数据进行相应处理。可以理解,通过硬件电路实现数据处理可以提高数据处理速度。
需要注意的是,图1所示仅为可以应用本发明实施例的场景的示例,以帮助本领域技术人员理解本发明的技术内容,但并不意味着本发明实施例不可以用于其他设备、系统、环境或场景。
图2示意性示出了根据本发明实施例的用于可重构处理系统的查表算子200的示意图。应该理解,图2中的查找表单元S-Box 210、查找表211的数目仅仅是示意性的。根据实现需要,可以具有任意数目的查找表单元S-Box 210、查找表211。
如图2所示,用于可重构处理系统的查表算子200包括多个查找表单元S-Box 210。每个查找表单元S-Box 210中包括至少一个查找表211。
根据本发明实施例,响应于输入数据DATA_IN输入至查表算子200,查表算子200中的一个或多个查找表单元S-Box 210对输入数据DATA_IN进行处理。其中,查找表单元S-Box210例如可以用于实现数据的非线性置换的功能,例如可以实现4bit-4bit的置换,6bit-4bit的置换,8bit-8bit的置换,8bit-32bit的置换或者9bit-9bit的置换等等。
根据本发明实施例,在查表算子200中的一个或多个查找表单元S-Box 210对输入数据进行处理时,可以根据一个或多个查找表单元S-Box 210中的至少一个查找表211获得与输入数据相应的输出数据。
在本发明实施例中,每个查找表单元S-Box 210中包括至少一个查找表211,每个查找表211可以被配置为相同功能的查找表,也可以被配置为不同功能的查找表。可以根据实际的数据处理需要,选择一个或者多个查找表单元,并通过选择的查找表单元中的相应功能的查找表对其进行处理。
根据本发明实施例,查表算子200中的一个或多个查找表单元S-Box 210对输入数据进行处理时,可以是查表算子200中的多个查找表单元S-Box 210对输入数据进行处理。例如,多个查找表单元S-Box210并行地分别对输入数据的一部分进行处理。
例如,当有数据输入至查表算子200时,查表算子200中的特定查找表单元210可以分别并行对输入的数据的一部分进行处理。例如,当输入数据为16比特位的数据时,查找表单元S-Box1可以对前8个比特位的数据进行处理,查找表单元S-Box2可以对后8个比特位的数据进行处理。
本发明实施例中的每个查找表单元S-Box可以包括多个查找表,该多个查找表中的每个查找表可以被配置为不同的功能,从而可以实现多种查找方式。本发明实施例可以至少部分地避免现有技术中面对不同运算时每次都需要重新配置查找表的问题。
本发明实施例中的查表算子包括多个查找表单元S-Box,多个查找表单元S-Box可以并行工作,从而可以实现多路的并行查找运算,能够更好地适应多种算法需求,提高了运算效率。
图3示意性示出了根据本发明另一实施例的用于可重构处理系统的查表算子300的示意图。
如图3所示,查表算子300包括拼接模块320以及多个查找表单元S-Box 310。其中,查找表单元S-Box 310包括配置模块311、输入截取模块312、至少一个查找表313以及输出处理模块314。
配置模块311可以用于接收配置信息,并根据配置信息对相应的查找表单元S-Box进行配置。例如,属于S-Box1的配置模块可以对S-Box1进行配置,属于S-Box2的配置模块可以对S-Box2进行配置。
配置模块311可以在查表算子300工作前对其进行配置,也可以在查表算子300工作中对其进行配置。例如,可以对查表算子中当前不处于工作状态的查找表单元S-Box 310进行配置,或者可以对当前不处于工作状态的查找表313进行配置。
根据本发明实施例,根据配置信息对相应的查找表单元S-Box进行配置可以是对相应的查找表单元S-Box的至少一张查找表的内容进行配置。
例如,可以将每张查找表配置为内容相同的查找表,也可以将每张查找表配置为内容不同的查找表。例如,可以将多张查找表分别配置为可以实现4bit-4bit的置换,6bit-4bit的置换,8bit-8bit的置换,8bit-32bit的置换或者9bit-9bit的置换的查找表。
例如,在工作之前,可以通过配置模块311在每个S-Box的查找表中填充数据。例如,一个S-Box有4个查找表,每个查找表的大小是256(D)×32(W),那么需要向每个S-Box中填充256×32×4bit的数据。
根据本发明实施例,根据配置信息对相应的查找表单元S-Box进行配置也可以是将相应的查找表单元S-Box配置为工作状态或者空闲状态。
例如,可以根据实际需要,选择使查找表单元S-Box中的一个或者多个处于工作状态,而使其它S-Box处于空闲状态。例如,可以将S-Box1配置位设为1,表示该查找表单元处于工作状态,将S-Box2配置位设为0,表示该查找表单元处于空闲状态。当多个S-Box都处于工作状态时,查表算子300可以实现多路的并行查找运算。
可以理解,根据配置信息,本发明实施例中的查表算子300可以实现多路或者多种查表运算,例如4bit-4bit的置换,6bit-4bit的置换,8bit-8bit的置换,8bit-32bit的置换等。查表算子300也可以实现单独一路的查表运算,例如9bit-9bit的置换。
根据本发明实施例,根据配置信息对相应的查找表单元S-Box进行配置还可以是确定相应的查找表单元S-Box的至少一张查找表中的第一查找表,将第一查找表配置为工作查找表。
例如,可以根据算法的要求选择S-Box中相应的查找表作为工作查找表,例如,将该相应的查找表的配置位设为1,将其他查找表的配置位设为0。在本发明实施例中,每个S-Box例如可以包括四张查找表,根据算法的要求来选择其中一张查找表作为当前工作查找表,在运算的时候,也可以动态的切换当前的工作查找表。
在本发明实施例中,配置模块311还可以配置查表算子做完查找变换之后,对查找得到的数据字节进行逻辑运算,比如异或运算等。例如,配置S-Box的工作方式和确定查表运算后是否对数据进行逻辑运算处理。
根据本发明实施例,通过配置模块311对查表算子300的工作模式进行配置,使得查表算子300在面对不同的查表运算时,无需重新设计电路,只需要根据运算要求重新配置查表算子就可以实现不同的查表运算。
输入截取模块312用于对输入的数据进行截取。
在本发明实施例中,输入截取模块312可以对DATA_IN进行适当的截取,例如,DATA_IN是32bit的数据,需要实现6bit-8bit的映射,则可以通过输入截取模块312在32bit的输入数据中,每个byte需要截取其低6位来进行处理。
根据本发明实施例,上述查表算子中的一个或多个查找表单元S-Box对输入数据进行处理可以包括:通过一个或多个查找表单元S-Box的输入截取模块312对输入数据进行截取。
根据本发明实施例,上述查表算子中的一个或多个查找表单元S-Box对输入数据进行处理还可以包括:根据截取后的数据,在一个或多个查找表单元S-Box的相应查找表中获得相应的输出数据。
至少一个查找表313例如可以与上述参考图2描述的查找表211相同或者类似,在此简单描述。
在本发明实施例中,每个S-Box 310例如可以至少包括4个查找表313。查找表313可以是一个地址位宽为8bit,数据位宽为32bit的存储器,这样能够满足绝大多数的密码算法中的查表运算的要求,同时也最大限度的节省了硬件面积。
例如,需要进行8bit-32bit的四路S-Box的查表运算时,可以配置使能4个S-BoxS-Box1~S-Box4,为这4个S-Box各自选择一个工作查找表,并选择这4个S-Box的工作模式为8bit-32bit的置换,输出处理例如都可以配置为bypass(即,不做其它逻辑运算直接输出),那么从S-Box输出的数据就是查找之后正确的数据。
输出处理模块314还可以用于对输出数据进行逻辑运算处理。
例如,通过查找表映射之后的数据是32bit的数据,根据查表设置,在输出处理模块314中截取相应的bit段。例如,假设需要置换成8bit,那么应截取低8bit的数据。又如,处理9bit-9bit的置换时,输入截取模块312可以截取低8bit的数据作为查找表的输入,这样查找表输出的数据是32bit。接着,根据输入的最高位bit[8]来选择是输出低16bit还是高16bit来作为置换后的9bit数据的来源。另外,输出处理模块314还可以对查找表输出的32bit进行以byte为单位的逻辑处理。例如,对4个byte进行逻辑异或,这样不需要用额外的逻辑模块处理这部分运算。
根据本发明实施例,上述查表算子中的一个或多个查找表单元S-Box对输入数据进行处理可以包括:通过一个或多个查找表单元S-Box的输出处理模块对输出数据进行逻辑运算处理。
拼接模块320用于将至少一个查找表单元S-Box输出的数据进行拼接,以生成查表算子的输出数据。
根据本发明实施例,拼接模块320可以根据S-Box的使能和配置来将相应的S-Box的输出拼接为最终输出的数据。例如,假设每个S-Box输出的数据都是32bit,如果将图3所示的S-Box1配置为工作状态,而将其它S-Box配置为空闲状态,那么拼接之后的数据应该为96bit的0在高位,S-Box1输出的32bit的数据在低位。
本发明实施例提供的查表算子可以包括多个S-Box,每个S-Box可以包括多个查找表,从而可以同时实现多种查找方式。此外,在本发明实施例中,可以利用多个S-Box实现一路的查找运算,也可以实现多路的并行查找运算。例如,本发明实施例可以实现并行多路的4bit-4bit,6bit-4bit,8bit-8bit,8bit-32bit置换,也可以实现单独的一路置换,比如9bit-9bit置换。此外,还可以实现查表后的一系列的逻辑运算操作,如查表后的数据拼接及异或运算等。
每个S-Box可以配置有至少4组查找表,进而同时支持至少4种不同的非线性置换。在不影响其它功能的前提下,通过配置来变换需要的查找表。这样动态地切换查找表可以灵活地实现多种算法需要的置换表格,而不会影响正在执行的算法,大大提高了适配性和运算效率。此外,利用多组查找表的同时置换,可以实现多bit的数据置换。
本发明实施例利用读存储器来实现地址和数据的置换,从而实现查找的功能,这样的实现结构简单、易于维护,有利于提高设计频率。本发明实施例支持绝大多数的置换算法,支持的置换类型也非常全面,可以根据实现的算法来配置单个或者多个S-Box来完成置换,十分地灵活,满足了密码算法中绝大多数的置换方式需求。
本发明的另一实施例提供了一种用于可重构处理系统的查表算子配置方法。
根据本发明实施例,该方法包括:为查表算子配置多个查找表单元S-Box,每个查找表单元S-Box包括至少一个查找表。其中,响应于输入数据输入至查表算子,查表算子中的一个或多个查找表单元S-Box对该输入数据进行处理。
根据本发明实施例,查表算子中的一个或多个查找表单元S-Box对输入数据进行处理可以包括:根据一个或多个查找表单元S-Box的至少一个查找表获得与输入数据相应的输出数据。
根据本发明实施例,查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理还可以包括:查表算子中的多个查找表单元S-Box对输入数据进行处理,多个查找表单元S-Box分别并行对输入数据的一部分进行处理。
根据本发明实施例,该方法例如可以用于对上文参考图2描述的查表算子200进行配置,在此不再赘述。
本发明的另一实施例提供了一种用于可重构处理系统的查表算子配置方法。
图4示意性示出了根据本发明另一实施例的用于可重构处理系统的查表算子配置方法的流程图。
如图4所示,该方法包括操作S401~S405。
在操作S401,为查表算子配置多个查找表单元S-Box,每个查找表单元S-Box中包括至少一个查找表,其中,响应于输入数据输入至查表算子,查表算子中的一个或多个查找表单元S-Box对该输入数据进行处理。
在操作S402,为查找表单元S-Box配置配置模块,配置模块用于接收配置信息,并根据配置信息对相应的查找表单元S-Box进行配置。
根据本发明实施例,根据配置信息对相应的查找表单元S-Box进行配置包括:对相应的查找表单元S-Box的至少一张查找表的内容进行配置,和/或将相应的查找表单元S-Box配置为工作状态或者空闲状态,和/或确定相应的查找表单元S-Box的至少一张查找表中的第一查找表,将第一查找表配置为工作查找表。
根据本发明实施例,操作S402例如可以用于对上文参考图3描述的配置模块311进行配置,在此不再赘述。
在操作S403,为查找表单元S-Box配置输入截取模块,输入截取模块用于对输入的数据进行截取。
根据本发明实施例,查表算子中的一个或多个查找表单元S-Box对输入数据进行处理可以包括:通过一个或多个查找表单元S-Box的输入截取模块对输入数据进行截取。
根据本发明实施例,查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理还可以包括:根据截取后的数据,在一个或多个查找表单元S-Box的相应查找表中获得相应的输出数据。
根据本发明实施例,操作S403例如可以用于对上文参考图3描述的输入截取模块312进行配置,在此不再赘述。
在操作S404,为查找表单元S-Box配置输出处理模块,输出处理模块用于对输出数据进行逻辑运算处理。
根据本发明实施例,查表算子中的一个或多个查找表单元S-Box对输入数据进行处理可以包括:通过一个或多个查找表单元S-Box的输出处理模块对输出数据进行逻辑运算处理。
根据本发明实施例,操作S404例如可以用于对上文参考图3描述的输出处理模块314进行配置,在此不再赘述。
在操作S405,为查找表单元S-Box配置拼接模块,拼接模块用于将至少一个查找表单元S-Box输出的数据进行拼接,以生成查表算子的输出数据。
根据本发明实施例,操作S405例如可以用于对上文参考图3描述的拼接模块320进行配置,在此不再赘述。
本领域技术人员可以理解,本发明的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本发明中。特别地,在不脱离本发明精神和教导的情况下,本发明的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本发明的范围。
尽管已经参照本发明的特定示例性实施例示出并描述了本发明,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本发明的精神和范围的情况下,可以对本发明进行形式和细节上的多种改变。因此,本发明的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

Claims (18)

1.一种用于可重构处理系统的查表算子,其特征在于,所述查表算子包括:
多个查找表单元S-Box,每个所述查找表单元S-Box中包括至少一个查找表,其中,响应于输入数据输入至所述查表算子,所述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理。
2.根据权利要求1所述的查表算子,其特征在于,所述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理,包括:
根据所述一个或多个查找表单元S-Box的至少一个查找表获得与所述输入数据相应的输出数据。
3.根据权利要求1所述的算子单元,其特征在于,每个所述查找表单元S-Box还包括:
配置模块,用于接收配置信息,并根据所述配置信息对相应的所述查找表单元S-Box进行配置。
4.根据权利要求3所述的算子单元,其特征在于,所述根据所述配置信息对相应的所述查找表单元S-Box进行配置包括:
对相应的所述查找表单元S-Box的所述至少一张查找表的内容进行配置;和/或
将相应的所述查找表单元S-Box配置为工作状态或者空闲状态;和/或
确定相应的所述查找表单元S-Box的所述至少一张查找表中的第一查找表,将所述第一查找表配置为工作查找表。
5.根据权利要求1所述的算子单元,其特征在于:
每个所述查找表单元S-Box还包括:输入截取模块,用于对所述输入的数据进行截取;
所述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理包括:通过所述一个或多个查找表单元S-Box的所述输入截取模块对所述输入数据进行截取。
6.根据权利要求5所述的算子单元,其特征在于,所述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理,还包括:
根据截取后的数据,在一个或多个查找表单元S-Box的相应查找表中获得相应的输出数据。
7.根据权利要求6所述的算子单元,其特征在于:
每个所述查找表单元S-Box还包括:输出处理模块,用于对所述输出数据进行逻辑运算处理;
所述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理包括:通过所述一个或多个查找表单元S-Box的所述输出处理模块对所述输出数据进行逻辑运算处理。
8.根据权利要求1所述的查表算子,其特征在于,所述查表算子还包括:
拼接模块,用于将至少一个所述查找表单元S-Box输出的数据进行拼接,以生成所述查表算子的所述输出数据。
9.根据权利要求1所述的算子单元,其特征在于,所述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理,包括:
所述查表算子中的多个查找表单元S-Box对所述输入数据进行处理,其中,所述多个查找表单元S-Box并行地分别对所述输入数据的一部分进行处理。
10.一种用于可重构处理系统的查表算子配置方法,其特征在于,所述配置方法包括:
为所述查表算子配置多个查找表单元S-Box,每个所述查找表单元S-Box中包括至少一个查找表,其中,响应于输入数据输入至所述查表算子,所述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理。
11.根据权利要求10所述的方法,其特征在于,所述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理,包括:
根据所述一个或多个查找表单元S-Box的至少一个查找表获得与所述输入数据相应的输出数据。
12.根据权利要求10所述的方法,还包括:
为所述查找表单元S-Box配置配置模块,所述配置模块用于接收配置信息,并根据所述配置信息对相应的所述查找表单元S-Box进行配置。
13.根据权利要求12所述的方法,其特征在于,所述根据所述配置信息对相应的所述查找表单元S-Box进行配置包括:
对相应的所述查找表单元S-Box的所述至少一张查找表的内容进行配置;和/或
将相应的所述查找表单元S-Box配置为工作状态或者空闲状态;和/或
确定相应的所述查找表单元S-Box的所述至少一张查找表中的第一查找表,将所述第一查找表配置为工作查找表。
14.根据权利要求10所述的方法,其特征在于:
所述方法还包括:为所述查找表单元S-Box配置输入截取模块,所述输入截取模块用于对所述输入的数据进行截取;
所述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理包括:通过所述一个或多个查找表单元S-Box的所述输入截取模块对所述输入数据进行截取。
15.根据权利要求14所述的方法,其特征在于,所述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理,还包括:
根据截取后的数据,在一个或多个查找表单元S-Box的相应查找表中获得相应的输出数据。
16.根据权利要求15所述的方法,其特征在于:
所述方法还包括:为所述查找表单元S-Box配置输出处理模块,所述输出处理模块用于对所述输出数据进行逻辑运算处理;
所述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理包括:通过所述一个或多个查找表单元S-Box的所述输出处理模块对所述输出数据进行逻辑运算处理。
17.根据权利要求15所述的方法,还包括:
为所述查找表单元S-Box配置拼接模块,所述拼接模块用于将至少一个所述查找表单元S-Box输出的数据进行拼接,以生成所述查表算子的所述输出数据。
18.根据权利要求10所述的方法,其特征在于,所述查表算子中的一个或多个查找表单元S-Box对所述输入数据进行处理,包括:
所述查表算子中的多个查找表单元S-Box对所述输入数据进行处理,所述多个查找表单元S-Box并行地分别对所述输入数据的一部分进行处理。
CN201810110047.1A 2018-02-02 2018-02-02 用于可重构处理系统的查表算子及其配置方法 Active CN108170203B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810110047.1A CN108170203B (zh) 2018-02-02 2018-02-02 用于可重构处理系统的查表算子及其配置方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810110047.1A CN108170203B (zh) 2018-02-02 2018-02-02 用于可重构处理系统的查表算子及其配置方法

Publications (2)

Publication Number Publication Date
CN108170203A true CN108170203A (zh) 2018-06-15
CN108170203B CN108170203B (zh) 2020-06-16

Family

ID=62512663

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810110047.1A Active CN108170203B (zh) 2018-02-02 2018-02-02 用于可重构处理系统的查表算子及其配置方法

Country Status (1)

Country Link
CN (1) CN108170203B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111651487A (zh) * 2020-05-25 2020-09-11 上海寒武纪信息科技有限公司 处理装置及方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020081885A (ko) * 2001-04-20 2002-10-30 한국전자통신연구원 Fcsr과 s-box를 이용한 비선형 난수열 발생기
CN1383648A (zh) * 2000-07-04 2002-12-04 皇家菲利浦电子有限公司 用于对称密钥密码的替换盒
CN101604337A (zh) * 2009-07-13 2009-12-16 中兴通讯股份有限公司 一种哈希表项存储、查找装置及方法
CN101951314A (zh) * 2010-10-12 2011-01-19 北京航空航天大学 对称密码加密中s-盒的设计方法
US8750498B1 (en) * 2006-10-10 2014-06-10 Marvell International Ltd. Method and apparatus for encoding data in accordance with the advanced encryption standard (AES)
US20150172043A1 (en) * 2012-06-18 2015-06-18 China Iwncomm Co., Ltd. Method for conducting data encryption and decryption using symmetric cryptography algorithm and table look-up device
CN104933008A (zh) * 2015-06-24 2015-09-23 东南大学 可重构系统和可重构阵列结构及其应用
CN105191139A (zh) * 2013-04-02 2015-12-23 太阳诱电株式会社 可重构逻辑器件
CN105553646A (zh) * 2015-12-31 2016-05-04 清华大学无锡应用技术研究院 面向分组密码算法并行计算的可重构s盒电路结构
CN107066900A (zh) * 2017-04-18 2017-08-18 东南大学 面向分组密码算法的可重构s盒、可重构计算阵列及门控方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1383648A (zh) * 2000-07-04 2002-12-04 皇家菲利浦电子有限公司 用于对称密钥密码的替换盒
KR20020081885A (ko) * 2001-04-20 2002-10-30 한국전자통신연구원 Fcsr과 s-box를 이용한 비선형 난수열 발생기
US8750498B1 (en) * 2006-10-10 2014-06-10 Marvell International Ltd. Method and apparatus for encoding data in accordance with the advanced encryption standard (AES)
CN101604337A (zh) * 2009-07-13 2009-12-16 中兴通讯股份有限公司 一种哈希表项存储、查找装置及方法
CN101951314A (zh) * 2010-10-12 2011-01-19 北京航空航天大学 对称密码加密中s-盒的设计方法
US20150172043A1 (en) * 2012-06-18 2015-06-18 China Iwncomm Co., Ltd. Method for conducting data encryption and decryption using symmetric cryptography algorithm and table look-up device
CN105191139A (zh) * 2013-04-02 2015-12-23 太阳诱电株式会社 可重构逻辑器件
CN104933008A (zh) * 2015-06-24 2015-09-23 东南大学 可重构系统和可重构阵列结构及其应用
CN105553646A (zh) * 2015-12-31 2016-05-04 清华大学无锡应用技术研究院 面向分组密码算法并行计算的可重构s盒电路结构
CN107066900A (zh) * 2017-04-18 2017-08-18 东南大学 面向分组密码算法的可重构s盒、可重构计算阵列及门控方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
BO WANG, LEIBO LIU: "Dynamically reconfigurable architecture for symmetric ciphers", 《SCIENCE CHINA INFORMATION SCIENCES》 *
QIHUAN HUANG; LEIBO LIU; HAI HUANG; SHAOJUN WEI: ""Area-efficient polynomial modular multiplication over GF(2nlandn) and application to AES"", 《2017 IEEE 9TH INTERNATIONAL CONFERENCE ON COMMUNICATION SOFTWARE AND NETWORKS (ICCSN)》 *
朱敏,刘雷波,尹首一,陈英杰,魏邵军: "面向对称密码领域的可重构阵列涉及", 《微电子学》 *
郭岩松,刘雷波: ""一种面向分组密码的粗粒度可重构"", 《微电子学与计算机》 *
闵婧: "《面向分组密码算法的S盒置换单元并发访问结构设计与优化》", 《中国优秀硕士学位论文全文数据库》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111651487A (zh) * 2020-05-25 2020-09-11 上海寒武纪信息科技有限公司 处理装置及方法
CN111651487B (zh) * 2020-05-25 2023-06-27 上海寒武纪信息科技有限公司 处理装置及方法

Also Published As

Publication number Publication date
CN108170203B (zh) 2020-06-16

Similar Documents

Publication Publication Date Title
US20190327089A1 (en) Method and System of Implementing Security Algorithm and Decryption Algorithm by Using Reconfigurable Processor
CN105843775B (zh) 片上数据划分读写方法、系统及其装置
CN103023827A (zh) 一种虚拟化数据中心的数据转发方法及其实现设备
CN112787913B (zh) 智能网卡组件、物理机、云服务系统以及报文发送方法
CN112134686A (zh) 一种基于可重构计算的aes硬件实现方法及运行该方法的计算机设备与可读存储介质
US7299338B2 (en) Vector indexed memory unit and method
CN112636908A (zh) 密钥查询方法及装置、加密设备及存储介质
CN108170203A (zh) 用于可重构处理系统的查表算子及其配置方法
CN104601645A (zh) 一种数据包处理方法及装置
CN103534996B (zh) 实现负载均衡的方法及设备
CN101599910A (zh) 报文发送的方法及设备
CN112019322B (zh) 密码流生成方法及其装置
Cheng et al. Lightweight and flexible hardware implementation of authenticated encryption algorithm SIMON‐Galois/Counter Mode
US8775776B2 (en) Hash table using hash table banks
EP2696294B1 (en) Method and device of supporting arbitrary replacement among multiple data units
US9851743B2 (en) Lookup table sharing for memory-based computing
CN114880020A (zh) 软件开发工具包管理方法、相关装置及计算机程序产品
CN103036815A (zh) 一种信息技术和通信技术ict融合系统
Yao et al. A dynamic reconfigurable design of multiple cryptographic algorithms based on FPGA
CN102385558B (zh) 请求控制装置、请求控制方法及相关的处理器
US20200117630A1 (en) Communication between field programmable gate arrays
CN110113147A (zh) 一种数字加密装置及方法
CN102769538A (zh) 一种端口变更方法、相关装置及系统
US20230244650A1 (en) Systems and methods for enabling two parties to find an intersection between private data sets without learning anything other than the intersection of the datasets
EP4102784A1 (en) Data stream processing method and device

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
TA01 Transfer of patent application right

Effective date of registration: 20181217

Address after: 100084 Tsinghua Yuan, Haidian District, Beijing, No. 1

Applicant after: Tsinghua University

Applicant after: WUXI RESEARCH INSTITUTE OF APPLIED TECHNOLOGIES, TSINGHUA UNIVERSITY

Address before: Room 811, Building A3, 777 Jianhu West Road, Binhu District, Wuxi City, Jiangsu Province, 214000

Applicant before: WUXI RESEARCH INSTITUTE OF APPLIED TECHNOLOGIES, TSINGHUA UNIVERSITY

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant