首页> 中国专利> 使用可重构处理器实现安全算法、解密算法的方法及系统

使用可重构处理器实现安全算法、解密算法的方法及系统

摘要

本发明提供了一种使用可重构处理器实现安全算法的方法,包括:确定用于构建安全算法的多个子算法;以及根据多个子算法中各子算法的第一配置信息以及表示各子算法之间组合连接关系的第一组合配置信息,配置可重构处理器,以实现安全算法。本发明还提供了一种使用可重构处理器实现解密算法的方法、使用可重构处理器实现安全算法的系统、使用可重构处理器实现解密算法的系统、计算机系统。根据本发明实施例,使用各子算法的第一配置信息以及表示各子算法之间组合连接关系的第一组合配置信息,配置可重构处理器,可以保障安全算法的安全性、保障安全算法实现过程的安全性以及可以防范敏感数据管理上的安全风险和侧信道攻击的风险,具有极高的安全性。

著录项

  • 公开/公告号CN108616348A

    专利类型发明专利

  • 公开/公告日2018-10-02

    原文格式PDF

  • 申请/专利权人 清华大学无锡应用技术研究院;

    申请/专利号CN201810364457.9

  • 发明设计人 刘雷波;朱敏;魏少军;

    申请日2018-04-19

  • 分类号H04L9/00(20060101);H04L9/14(20060101);

  • 代理机构11021 中科专利商标代理有限责任公司;

  • 代理人吕雁葭

  • 地址 214000 江苏省无锡市滨湖区建筑西路777号A3栋811室

  • 入库时间 2023-06-19 06:41:45

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-08-23

    授权

    授权

  • 2018-10-30

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

    实质审查的生效

  • 2018-10-02

    公开

    公开

说明书

技术领域

本发明涉及一种使用可重构处理器实现安全算法的方法及系统、一种使用可重构处理器实现解密算法的方法及系统、一种计算机系统及一种计算机可读存储介质。

背景技术

随着网络技术的普及和发展,社会信息化程度日益提高,信息安全的重要性已逐渐凸显出来。在保障信息安全的过程中,安全算法尤其是加密算法是最常用的技术手段之一。目前,在安全算法中,常用的加密算法可以分为两类,一类是对称加密算法,另一类是非对称加密算法。

然而,在实现本发明构思的过程中,发明人发现现有技术中至少存在如下问题:一方面上述加密算法的安全性不高,另一方面实施上述加密算法时防御攻击和窥测需要付出较高的管理成本。

发明内容

本发明的一个方面提供了一种使用可重构处理器实现安全算法的方法,包括:确定用于构建上述安全算法的多个子算法;以及根据上述多个子算法中各子算法的第一配置信息以及表示上述各子算法之间组合连接关系的第一组合配置信息,配置上述可重构处理器,以实现上述安全算法。

本发明的另一个方面提供了一种使用可重构处理器实现解密算法的方法,包括:确定用于解密安全算法的多个解密子算法;以及根据上述多个解密子算法中各解密子算法的第二配置信息以及表示上述各解密子算法之间组合连接关系的第二组合配置信息,配置上述可重构处理器,以实现上述解密算法。

本发明的另一个方面提供了一种使用可重构处理器实现安全算法的系统,包括:第一确定模块,用于确定用于构建上述安全算法的多个子算法;以及第一配置模块,用于根据上述多个子算法中各子算法的第一配置信息以及表示上述各子算法之间组合连接关系的第一组合配置信息,配置上述可重构处理器,以实现上述安全算法。

本发明的另一个方面提供了一种使用可重构处理器实现解密算法的系统,包括:第二确定模块,用于确定用于解密安全算法的多个解密子算法;以及第二配置模块,用于根据上述多个解密子算法中各解密子算法的第二配置信息以及表示上述各解密子算法之间组合连接关系的第二组合配置信息,配置上述可重构处理器,以实现上述解密算法。

本发明的另一个方面提供了一种计算机系统,包括:一个或多个处理器;计算机可读存储介质,用于存储一个或多个程序,其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上述实施例中任一项所述的使用可重构处理器实现安全算法的方法,和/或实现如上述实施例中任一项所述的使用可重构处理器实现解密算法的方法。

本发明的另一个方面提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使上述处理器实现如上述实施例中任一项所述的使用可重构处理器实现安全算法的方法,和/或实现如上述实施例中任一项所述的使用可重构处理器实现解密算法的方法。

根据本发明实施例的技术方案,使用多个子算法中各子算法的第一配置信息以及表示该各子算法之间组合连接关系的第一组合配置信息,配置可重构处理器,可以保障安全算法的安全性、保障安全算法实现过程的安全性以及可以防范敏感数据管理上的安全风险和侧信道攻击的风险,具有极高的安全性。

根据本发明实施例的技术方案,根据多个解密子算法中各解密子算法的第二配置信息以及表示各解密子算法之间组合连接关系的第二组合配置信息,配置可重构处理器,可以保障解密算法的安全性、保障解密安全算法过程的安全性以及可以防范敏感数据管理上的安全风险和侧信道攻击的风险。

附图说明

为了更完整地理解本发明及其优势,现在将参考结合附图的以下描述,其中:

图1示意性示出了根据本发明实施例的使用可重构处理器实现安全算法的方法及系统的应用场景图;

图2A示意性示出了根据本发明实施例的使用可重构处理器实现安全算法的方法的流程图;

图2B示意性示出了根据本发明实施例的构建安全算法A的示意图;

图3A示意性示出了根据本发明实施例的确定用于构建安全算法的多个子算法的流程图;

图3B示意性示出了根据本发明实施例的第一算法库的示意图;

图3C示意性示出了根据本发明实施例的根据可重构处理器的特征参数和场景参数计算得到多个索引值中的每个索引值的流程图;

图3D示意性示出了根据本发明实施例的根据可重构处理器的特征参数和场景参数计算得到多个索引值的流程图;

图3E示意性示出了根据本发明实施例的在电路关键路径中加入延时电路的示意图;

图3F示意性示出了现有技术中攻击者通过测量电路的侧信道信号获取密钥信息的示意图;

图3G示意性示出了根据本发明实施例的改变关键数据寄存器的映射位置的示意图;

图4A示意性示出了根据本发明实施例的使用可重构处理器实现解密算法的方法的流程图;

图4B示意性示出了根据本发明实施例的确定用于解密安全算法的多个解密子算法的示意图;

图5示意性示出了根据本发明实施例的确定用于解密安全算法的多个解密子算法的流程图;

图6示意性示出了根据本发明实施例的使用可重构处理器实现安全算法的系统的框图;

图7A示意性示出了根据本发明实施例的第一确定模块的框图;

图7B示意性示出了根据本发明另一实施例的使用可重构处理器实现安全算法的系统的框图;

图7C示意性示出了根据本发明实施例的计算单元的框图;

图7D示意性示出了根据本发明另一实施例的使用可重构处理器实现安全算法的系统的框图

图7E示意性示出了根据本发明另一实施例的使用可重构处理器实现安全算法的系统的框图;

图8示意性示出了根据本发明实施例的使用可重构处理器实现解密算法的系统的框图;

图9A示意性示出了根据本发明实施例的第二确定模块的框图;

图9B示意性示出了根据本发明另一实施例的使用可重构处理器实现解密算法的系统的框图;以及

图10示意性示出了根据本发明实施例的可实现使用可重构处理器实现安全算法的方法,和/或可实现使用可重构处理器实现解密算法的方法的计算机系统的框图。

具体实施方式

以下,将参照附图来描述本发明的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本发明。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其它特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“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)或闪存;和/或有线/无线通信链路。

本发明的实施例提供了一种使用可重构处理器实现安全算法的方法,包括:确定用于构建安全算法的多个子算法;以及根据多个子算法中各子算法的第一配置信息以及表示各子算法之间组合连接关系的第一组合配置信息,配置可重构处理器(ReconfigurableComputing Processing,简称为RCP),以实现安全算法。

图1示意性示出了根据本发明实施例的使用可重构处理器实现安全算法的方法及系统的应用场景图。需要注意的是,图1所示仅为可以应用本发明实施例的场景的一个示例,以帮助本领域技术人员理解本发明的技术内容,并不意味着本发明实施例不可以用于其它设备、系统、环境或场景。

如图1所示,该应用场景包括映射工具110、可重构计算芯片(又称为可重构处理器)120。可重构计算芯片120可以包括可重构计算阵列121、控制器122。可重构计算阵列121可以包括第一存储器1211、运算单元阵列1212。控制器122可以包括第二存储器1221、配置管理和控制单元1222。

在本发明的实施例中,映射工具110可以将高级语言程序映射为可重构处理器的配置信息。这样,可以通过编写程序来配置可重构处理器实现不同的运算功能。

可选地,可以将程序载入可重构计算芯片120中。该可重构计算芯片120可以以阵列的形式出现,例如,可重构计算阵列121。下面以可重构计算阵列121为例进行详细描述。

根据本发明的实施例,可重构计算阵列121中的运算单元阵列1212可以由大量的运算单元(Processing Element,PE)组成,各运算单元之间具有灵活的互联结构。在执行运算任务时,运算单元阵列1212可以将中间结果等信息存储于第一存储器1211中。

需要说明的是,可重构计算阵列121或者其中的子阵列可以具有时序控制模块以及多套不同的数据输入输出接口。

根据本发明的实施例,在控制器122的控制下,可重构计算阵列121可以通过动态重构实现对计算资源的时分复用。由于安全算法、安全应用的配置信息量很小(比如大小不超过10k byte),可重构计算阵列121可以在纳秒(ns)或者微秒(us)级别完成功能切换。此外,还可以通过更改可重构计算阵列121中局部配置点的配置信息来实现局部功能切换。其中,上述配置信息可以存储在第二存储器1221中。

在本发明的实施例中,配置信息存储结构(又称为配置管理和控制单元1222)具有与随机数生成装置(又称为随机数发生器)联系的通路,该随机数生成装置可以生成部分随机配置信息,这部分配置信息可以改变计算结果或计算功能,但并不影响计算的主要形式(例如,加密形式、校验形式等)。

需要说明的是,在具体实施时,第一存储器1211和第二存储器1221可以实现为同一个存储器,或者第一存储器1211和第二存储器1221可以实现为相同类型或不同类型的不同存储器,本发明实施例对此不做限定。

图2A示意性示出了根据本发明实施例的使用可重构处理器实现安全算法的方法的流程图。如图2A所示,该使用可重构处理器实现安全算法的方法可以包括操作S201和操作S202,其中:

在操作S201,确定用于构建安全算法的多个子算法。

在操作S202,根据多个子算法中各子算法的第一配置信息以及表示各子算法之间组合连接关系的第一组合配置信息,配置可重构处理器,以实现安全算法。

需要说明的是,本发明实施例的安全算法不仅可以包括加密算法,还可以包括数字摘要算法、数字签名算法、信息编码算法等其它算法。

本发明实施例提供的第一算法库中存储有多个子算法。每个子算法均具有与其对应的配置信息(称为第一配置信息),该第一配置信息可以表示用于实现该子算法所需的电路逻辑结构。这样,在确定用于构建安全算法的多个子算法时,可以从该第一算法库中选择本次需要使用的子算法,进而根据选取的子算法的配置信息配置可重构处理器。

此外,在本发明实施例中,可以使用组合配置信息(又称第一组合配置信息)实现各个子算法之间的组合连接。例如,假设子算法a、子算法b和子算法c的组合连接关系为a-b-c(即子算法a连接子算法b,子算法b连接子算法c),则可以根据以上组合连接关系生成第一组合配置信息,或者获取预先生成的表示以上组合连接关系的第一组合配置信息。这样,在使用可重构处理器实现安全算法时,可以根据第一组合配置信息配置可重构处理器实现上述连接关系。

图2B示意性示出了根据本发明实施例的构建安全算法A的示意图。

如图2B所示,结合上述示例,在用户使用可重构处理器实现安全算法A时,可以先确定出用于构建该安全算法A的多个子算法及各个子算法之间的连接关系。例如,假设选择子算法a、子算法b和子算法c来构建安全算法A,其连接关系为a-b-c。那么,可以根据子算法a的第一配置信息a、子算法b的第一配置信息b、子算法c的第一配置信息c以及第一组合配置信息A1(用于实现上述组合连接关系a-b-c),配置可重构处理器,以实现安全算法A。

在保障信息安全的过程中,安全算法尤其是加密算法是最常用的技术手段之一。然而,任何安全产品或密码系统都必须面对一个如何防御攻击和窥测的问题。例如,在使用对称加密算法的场景中,为了防止攻击者攻破密钥,需要通过不断改变密钥来提高加密机的保密强度,进而导致密钥管理成本升高。此外,侧信道攻击等安全威胁还可以利用密码芯片在运行过程中泄露的旁路信息,诸如功耗、时间、电磁波以及差错信息等,对密码系统进行攻击和窥测,进而导致加密算法的安全性不高。

针对上述安全问题,在本发明的实施例中,可以使用可重构安全白片(又称为可重构处理器)从第一算法库中选择本次加密使用的若干算法组件(又称为子算法),并据此配置可重构处理器以构建本次使用的安全算法。例如,构建本次加密算法使用的加密电路。为了进一步提升安全性,第一算法库中的子算法可以来源于相互独立的多方。例如,来源于芯片的供应商(Vendor)、使用者、认证方、管理方等多方,进而使第一算法库中的各子算法的第一配置信息不被任一方所完全掌握。此外,对于某一特定的安全算法,还可以用不同的配置信息来描述该安全算法的功能,进而降低该安全算法电路的可预测性,大大地提升了该安全算法的安全性。

另外,在现有技术中,传统的安全芯片只能改变安全算法中的参数配置。例如,只能改变加密组件、反馈移位寄存器、私钥的扩展算法、表和函数等,使这些参数配置变成动态编制要素,以提高现有技术的安全算法的安全性。

与只改变安全算法的参数配置相比,本发明的实施例利用可重构处理器的可重构性,在实现安全算法过程中,从第一算法库中实时选取并组合多种子算法,以构建本次使用的安全算法,大大地降低了安全算法被攻破的概率,提升了加密算法的安全性。同时,有着优异的运算效率,能够满足高安全应用场景的加解密需求。

此外,与使用多个级联的专用集成电路(Application Specific IntegratedCircuit,简称为ASIC)模块实现组合算法相比,本发明实施例实现的组合算法(又称为安全算法)灵活性更高,更加难以预测和分析,这有利于提高安全算法(例如加密算法)的安全性/私密性。并且,可重构处理器的可重构特性很好的满足了这种组合算法实现的要求。例如,固定的多个ASIC模块可能会被针对性地攻击,且不能提升组合使用后系统的安全性。而本发明实施例的安全算法因其不可预测性而很难被攻击。

根据本发明实施例,使用多个子算法中各子算法的第一配置信息以及表示该各子算法之间组合连接关系的第一组合配置信息,配置可重构处理器,可以保障安全算法的安全性、保障安全算法实现过程的安全性以及可以防范敏感数据管理上的安全风险和侧信道攻击的风险,具有极高的安全性。

下面参考图3A~图3E、图3G,结合具体实施例对图2A和图2B所示的方法做进一步说明。

图3A示意性示出了根据本发明实施例的确定用于构建安全算法的多个子算法的流程图。如图3A所述,确定用于构建安全算法的多个子算法可以包括操作S301和操作S302,其中:

在操作S301,根据动态变化的信号源,计算得到多个索引值。

在操作S302,根据多个索引值,确定用于构建安全算法的多个子算法。

在本发明的实施例中,每个子算法均具有能够唯一表示自己的标识(例如,序号)。因此,在确定用于构建安全算法的多个子算法时,可以先计算出多个索引值,再将多个索引值与子算法的标识进行匹配,将匹配成功的标识所对应的子算法,作为用于构建安全算法的多个子算法。

具体地,可以根据动态变化的信号源,计算得到多个索引值。其中,该动态变化的信号源可以是唯一的、不可逆的。例如,可以为可重构处理器的特征参数和场景参数等。这样,由动态变化的信号源计算出的索引值也可以是唯一的、不可逆的且动态变化的。即在本次计算后,其它设备或用户是无法推测出本次安全算法是由哪些子算法构建实现的,进而极大地提升了安全算法的安全性。

作为一种可选的实施例,在根据动态变化的信号源,计算得到多个索引值时,可以根据可重构处理器的特征参数和场景参数,计算得到多个索引值。其中,特征参数可以包括硬件特征参数,场景参数可以包括系统时间或环境温度,动态变化的信号源可以包括可重构处理器的特征参数和场景参数等。

例如,可重构处理器的工艺偏差相当于可重构处理器的指纹,不同可重构处理器的工艺偏差不同,因此可以使用该工艺偏差作为硬件特征参数。可替换地,还可以用身份ID码代替该工艺偏差。但是,比较而言,使用工艺偏差来标识可重构处理器的身份,具有更高的安全性。

应理解,不同的应用场景可以使用不同的安全算法。以上使用特征参数(例如,工艺偏差)和场景参数(例如,时间)选择子算法的方式仅是一种实施例,也可以使用其它动态变化的信号源作为选择子算法的依据,本发明实施例对此不做限定。

根据本发明的实施例,根据可重构处理器的特征参数和场景参数,计算得到多个索引值,进而确定出多个子算法时,由于可重构处理器的特征参数和场景参数是唯一的、不可逆的,因此,大大提高了安全算法的安全性、防攻击性和难以预测性。

作为一种可选的实施例,根据多个索引值,确定用于构建安全算法的多个子算法时,可以根据多个索引值,从第一算法库中选择对应的多个子算法。其中,第一算法库包括N个子算法的第一配置信息,N大于本次选用的子算法数量。

如前所述,第一算法库中可以包括多个子算法的第一配置信息,例如N个。其中,N为大于1的正整数,且N大于本次选用的子算法数量。一般地,第一算法库中包含的算法数量越大,上述安全算法被攻破的概率越小。在具体实施第一算法库时,可以根据实际需要设置第一算法库中的算法数量,本发明实施例对此不做限定。

下面根据一个具体示例详细介绍本发明的实施例。

例如,假设第一算法库包括N(例如,N为大于30的整数)个子算法的第一配置信息。其中,每个子算法的第一配置信息均是通过可重构计算处理器的配置信息描述的。本次加密使用的安全算法A可以由以上30个子算法中的任意三项组成,且这30个子算法是由甲、乙、丙三家单位分别基于可重构处理器开发并提供的。例如,其中10个子算法由甲方提供;10个子算法由乙方提供;10个子算法由丙方提供。在可重构处理器上电时,可以先加载该30个子算法的第一配置信息到可重构处理器的内部存储器。这样,在进行加密时可重构处理器可以根据自身的工艺偏差和场景参数,选择并从内部存储器中读取其中特定的三个子算法形成安全算法A。然后,根据子算法a的第一配置信息a、子算法b的第一配置信息b、子算法c的第一配置信息c以及三者的第一组合配置信息(一种组合连接方式对应的配置信息),来配置可重构处理器实现安全算法A的功能。

应理解,选取3个子算法构建上述安全算法A仅是一个示例,本发明不限定选取的子算法的数量,只要选取的子算法数量大于1即可。图2B所示的子算法组合方式(即子算法a、子算法b和子算法c三者顺序排列)也仅是本发明的一种实现方式,选取的子算法还可以按照其它方式组成安全算法A,但需要组合后构成的安全算法A可逆,以便使用密钥可以完成解密。例如,安全算法A的组合方式可以为一维的排列,或者二维的阵列组合,或者更加复杂的其它形式(类似流密码等)。

可选地,在本发明实施例中,第一算法库可以存储于可重构处理器外的存储器。在满足一定条件时,再选择性地将该第一算法库的部分或全部载入可重构处理器的内部存储器。例如,该条件可以为可重构处理器上电。这样,可以降低可重构处理器的存储成本。

如前所述,第一算法库中的每个子算法均具有能够唯一表示自己的标识(例如,序号),这些标识也可以存储在第一算法库中。在根据动态变化的信号源计算出多个索引值,且能够与上述标识中的某几个标识匹配成功时,就可从第一算法库中挑选出对应的子算法,继而通过该些子算法构建安全算法。

可见,子算法的标识的私密性和不可攻破性在实现安全算法的过程中十分重要。因此,提高子算法的标识的可靠性是十分必要的。

作为一种可选的实施例,在将第一算法库载入可重构处理器时,使用可重构处理器的特征参数生成用于唯一表示第一算法库中各个子算法的标识。由于每个可重构处理器的特征参数是唯一的,因此使用可重构处理器的特征参数生成各个子算法的标识也是唯一的、不可逆的,进而可以实现提高标识可靠性的目的。

图3B示意性示出了根据本发明实施例的第一算法库的示意图。

如图3B所示,为方便描述,假设上述标识包括序号1、序号2、序号3、序号4、序号5、序号6、...等等。这些标识与各子算法一一对应地存储于第一算法库中,且这些标识均是在载入可重构处理器时根据其特征参数生成的。

根据本发明实施例,使用具有唯一性的特征参数生成第一算法库中各个子算法的标识,使其它设备无法获知本次使用各子算法的标识,进而极大地提高了标识的可靠性。将第一算法库动态加载存入可重构处理器时再生成以上标识,即使有任意一方通过其它非技术途径得到了完整的第一算法库,也难以破解以上标识并还原安全算法,因此提高了安全算法的安全性。

作为一种可选的实施例,根据可重构处理器的特征参数和场景参数,计算得到多个索引值时,可以按照以下方式计算每个索引值:基于特征参数和场景参数,按照第一预设算法,计算得到第一数值;然后将第一数值除以第一算法库中子算法总量N,得到对应的余数,将余数作为索引值。应理解,以上计算索引值的方式仅是本发明实施例的一种实现方式,本领域技术普通技术人员能够想到的其它变换方式也应落在本发明实施例的保护范围内。

图3C示意性示出了根据本发明实施例的根据可重构处理器的特征参数和场景参数计算得到多个索引值中的每个索引值的流程图。如图3C所示,根据可重构处理器的特征参数和场景参数计算得到多个索引值中的每个索引值可以包括操作S401和操作S402,其中:

在操作S401,基于特征参数和场景参数,按照第一预设算法,计算得到第一数值。

在操作S402,将第一数值除以第一算法库中子算法总量N,得到对应的余数,将余数作为索引值。

接着,将计算出的索引值与子算法的标识进行匹配。例如,判断该索引值是否等于第一算法库中任一子算法的标识。若是,则可以从第一算法库中挑选出该标识所唯一表示的子算法。

例如,假设特征参数为身份码,场景参数为时间。基于时间和身份码,按照第一预设算法计算得到一个数值后,将该数值除以第一算法库中子算法总量N,并取其余数。然后,从第一算法库中选择与该余数相等的标识的子算法。若结合上述示例,安全算法A包括3个子算法,则需要通过计算得到三个余数,然后据此选取用于构建安全算法A的3个子算法。

需要说明的是,执行一次操作S401和操作S402,可以计算出一个索引值。若用于构建安全算法的子算法的个数为M,考虑到计算出的索引值可能无法与标识匹配成功,因此执行操作S401和操作S402的次数应大于等于M。

根据本发明实施例,基于具有唯一性的特征参数和具有不可逆性的场景参数计算得到索引值,并根据索引值与标识的匹配关系选择对应的子算法,以构建本次使用的安全算法,使得外界无法通过逆推方式得知本次使用的子算法,提高了安全算法的安全性。

图3D示意性示出了根据本发明实施例的根据可重构处理器的特征参数和场景参数计算得到多个索引值的流程图。如图3D所示,根据可重构处理器的特征参数和场景参数计算得到多个索引值可以包括操作S501~操作S503,其中:

在操作S501,基于特征参数和场景参数,按照第二预设算法,计算得到第二数值。

在操作S502,将第二数值作为随机数发生器的种子,得到随机数值串。

在操作S503,从随机数值串中选择多个索引值。

需要说明的是,通过执行一次操作S501~操作S503,便可以选择出多个索引值。若用于构建安全算法的子算法的个数为X,考虑到选择出的多个索引值中的一个或多个可能无法与标识匹配成功,因此在操作S503从随机数值串中选择索引值的数量应大于等于X。

例如,假设特征参数为身份码,场景参数为时间。基于时间和身份码,按照第二预设算法计算得到一个数字后,可以将该数字作为随机数发生器的输入,得到足够长一串的数字(又称为随机数值串)。然后,从随机数值串中随机截取大于等于子算法数量的数值段,并将该数值段中的数字作为索引值。若结合上述示例,用于构建安全算法A的子算法数量为3,则可以从随机数值串中截取一段包含3个以上数值的数值段。然后,使用该数值段包含的数值作为索引值,以从第一算法库中选择与其相等的标识的子算法。

应理解,为了取得更高的安全性,本发明实施例中上述计算索引值的方式需满足:1、不可逆性,以防止攻击者通过逆算得到特征参数。第一预设算法和第二预设算法均为不可逆算法,例如不可逆的算法可以为Hash算法(SHA256算法、SHA3算法、SM3算法、MD5算法等)。2、不同的输入得到的计算结果也应不同。这样,由于场景参数是一个变量,使用特征参数和场景参数作为计算的输入,每次计算得到的计算结果均不同。

根据本发明的实施例,基于具有唯一性的特征参数和具有不可逆性的场景参数计算得到索引值,并根据索引值与标识的匹配关系选择对应的子算法,以构建本次使用的安全算法,使得外界无法通过逆推方式得知本次使用的子算法,提高了安全算法的安全性。并且,可以通过多种方式计算索引值,使得计算方式更加灵活。

作为一种可选的实施例,在配置可重构处理器时,多个子算法按照第一组合配置信息中指示的顺序连接,且前后连接的两个子算法不相关。应理解,前后两个子算法不相关仅是本发明优选的实施例。在安全算法A的子算法数量为奇数时,即使有一个或多个子算法与在前的子算法相关,安全算法A也可以实现一定的加密安全性。

需要说明的是,第一组合配置信息中指示的子算法的连接顺序可以是子算法被挑选的先后顺序,也可以是随机设定的顺序。此处,第一组合配置信息中指示的子算法的连接顺序只需满足可逆即可,以便可以完成相应的解密工作。

根据本发明实施例,使多个子算法按照第一组合配置信息中指示的顺序连接,通过改变第一组合配置信息就可以动态改变子算法的连接顺序,保证了安全算法中各子算法连接顺序的可变性,提升了安全算法的安全性。另外,使安全算法中前后连接的两个子算法不相关,可以避免所构建的安全算法的安全性下降。

作为一种可选的实施例,在配置可重构处理器之后,该使用可重构处理器实现安全算法时,还可以对可重构处理器中用于实现安全算法的电路关键点进行实时重构,和/或随机在可重构处理器中用于实现安全算法的电路关键路径中加入延时电路,以防范侧信道攻击。

由于安全算法是由一个或多个子算法构建而来,那么在子算法的设计阶段,就可以在高级语言描述的某个操作或函数的位置加入标注。这样,在可重构处理器实现安全算法时,可以选择两种及以上的重构方式(例如,位置置换、随机延时、逻辑电路的不同实现等),对被标注的电路关键点进行动态、随机的重构。在动态、随机重构的过程中,还可以根据随机数发生器的输出选择本次重构的电路关键点和/或重构方式。

此外,对于加密电路中的电路关键路径,也可以随机插入延时电路。例如,可以选择加密电路中的最长电路作为关键路径,或者使用延时标注来标识关键路径。这样,对于携带了延时标注的路径,可以根据读入的随机数值随机插入延时电路。

图3E示意性示出了根据本发明实施例的在电路关键路径中加入延时电路的示意图。

现以安全算法为加密算法为例,结合3E详细描述本发明实施例。如图3E的左图所示,为加密算法优化前的电路,其中,“初始密钥加”、Round1的“密钥加”、...、Round9的“密钥加”以及Round10的“密钥加”均为携带了延时电路的路径,也即“初始密钥加”、Round1的“密钥加”、...、Round9的“密钥加”以及Round10的“密钥加”均为电路关键路径。如图3E的右图所示,为加密算法优化后的电路,对比后可见,优化后的加密算法已在电路关键路径中加入了延时电路。

根据本发明的实施例,在实现安全算法的过程中,可重构安全白片可以利用自身的可重构特性,实时动态地重构安全算法中的电路关键点(例如,关键的操作/函数对应的电路),和/或随机地在电路关键路径中加入延时电路,以提高安全算法实现过程的安全性,且使得该安全算法能够有效地防范侧信道攻击。

为了更详细地说明本发明实施例所达到的有益效果,下面结合图3F和图3G进行阐述。

图3F示意性示出了现有技术中攻击者通过测量电路的侧信道信号获取密钥信息的示意图。图3G示意性示出了根据本发明实施例的改变关键数据寄存器的映射位置的示意图。

如图3F所示,现有技术中侧信道攻击的前提条件是电路的时间或空间稳定性,攻击者测量电路的侧信道(除主信道以外)信息以获得密钥信息,其中侧信道信息可以包括图中的电磁辐射、热辐射等等。

而本发明实施例中的可重构处理器可以通过改变电路的时间特征破坏功耗曲线的规律,例如随机在电路关键路径中插入延时电路,破化功耗攻击的基础。还可以通过改变可重构处理器中电路的空间特性以破化故障模式的规律,如图3G所示,通过随机改变数据通路中关键数据寄存器的映射位置,来破化故障攻击的基础。例如,利用随机比特驱动的二选一多路复用器(Input_Multiplexer,简称为IN_MUX)改变运算器(Arithmetic LogicalUnit,简称为ALU)与寄存器(Register,简称为Reg)的对应位置关系。其中,图3G中的“0”、“1”可表示随机位(Random Bit)。

需要说明的是,本发明使用多种子算法组合构建安全算法,还可以通过改变子算法的参数,来获得大量新的子算法。新的子算法在短期、或者小范围内的使用,有和商密类似的安全性(源于已有商密算法)。可重构处理器并不保留子算法的相关信息(或者说,最终实现的子算法是由芯片结构和配置信息共同决定的,在使用之前并不能通过反向工程获得算法的具体实现)。此外,可重构处理器的配置随机化(包括随机改变数据通路中关键数据寄存器的映射位置,在电路关键路径中随机插入延时电路等),可以破化侧信道攻击的理论基础,对侧信道攻击的防范效果优于其它芯片的实现方案。

图4A示意性示出了根据本发明实施例的使用可重构处理器实现解密算法的方法的流程图。如图4A所示,该使用可重构处理器实现解密算法的方法可以包括操作S601和操作S602,其中:

在操作S601,确定用于解密安全算法的多个解密子算法。

在操作S602,根据多个解密子算法中各解密子算法的第二配置信息以及表示各解密子算法之间组合连接关系的第二组合配置信息,配置可重构处理器,以实现解密算法。

根据本发明实施例,每个解密子算法均对应有第二配置信息,该第二配置信息包括对应的解密子算法的电路逻辑结构。应理解,在安全算法为加密算法时,需要有对应的解密算法完成数据解密。并且,用于构建解密算法的解密子算法数量应该和用于构建安全算法的子算法的数量相同,各解密子算法的第二配置信息分别与用于构建安全算法的各子算法的第一配置信息对应,各解密子算法之间的第二组合配置信息与各子算法之间的第一组合配置信息对应。

图4B示意性示出了根据本发明实施例的确定用于解密安全算法的多个解密子算法的示意图。如图4B所示,假设安全算法A为加密算法,下面以子算法a、子算法b和子算法c依序排列构成安全算法A为例,说明得到解密算法的方法。

具体地,可以先根据子算法a的标识、子算法b的标识和子算法c的标识,确定对应的解密子算法a’的标识、解密子算法b’的标识和解密子算法c’的标识,进而据此获取对应的第二配置信息。然后,根据子算法a、子算法b和子算法c的顺序作逆序排列后得到解密算法A’中各解密子算法的排列顺序,或者据此获取与第一组合配置信息对应的第二组合配置信息。

应理解,安全算法A可以为用于生成签名等的其它算法,在安全算法A不是加密算法的场景下,通常不需要对应的解密算法。以上示例的子算法a、子算法b和子算法c依序排列构成安全算法A也仅为本发明实施例的一种具体实现方式,相应地无论安全算法A按照何种组合连接顺序连接各个子算法,都要求解密算法A’的组合连接顺序为安全算法A的逆。

根据本发明实施例,根据多个解密子算法中各解密子算法的第二配置信息以及表示各解密子算法之间组合连接关系的第二组合配置信息,配置可重构处理器,可以保障解密算法的安全性、保障解密安全算法过程的安全性以及可以防范敏感数据管理上的安全风险和侧信道攻击的风险。

下面参考图5,结合具体实施例对图4A和图4B所示的方法做进一步说明。图5示意性示出了根据本发明实施例的确定用于解密安全算法的多个解密子算法的流程图。如图5所示,确定用于解密安全算法的多个解密子算法可以包括操作S701和操作S702,其中:

在操作S701,根据待解密数据包的包头信息,确定安全算法的多个子算法。

在操作S702,根据安全算法的多个子算法,从第二算法库中选择对应的多个解密子算法。

在本发明实施例中,可以将用于构建安全算法的多个子算法的参数信息(例如,各子算法的标识和各子算法之间的排序信息)作为数据包的包头,与被处理的数据保存在一起。由于在安全算法为加密算法的场景中,加密算法的子算法和解密算法的解密子算法可以成对出现在算法库中。因此,根据加密算法的子算法的标识可以获得对应的解密子算法。当需要进行解密时,可重构处理器可以先读取待解密数据包的包头信息,得到安全算法的各子算法的参数信息,再根据各子算法的参数信息产生对应的解密算法A’,以配置可重构处理器进行解密操作。

具体地,可以解析待解密数据包的包头信息,然后据此获取用于构建解密算法的第二配置信息和第二组合配置信息,并配置可重构处理器实现解密算法。如上文所述,在对数据进行加密时,将算法库动态加载存入可重构处理器时再生成子算法的标识。这样,如果执行解密的可重构处理器与执行加密的可重构处理器不同,需要执行加密的可重构处理器将生成的标识通知到该执行解密的可重构处理器。这种情况下,即使有任意一方通过其它非技术途径得到了完整的算法库,也不能根据包头信息中的算法标识破解加密算法或解密算法,因而提升了算法安全性。

需要说明的是,本发明实施例中的第一算法库和第二算法库可以实现为同一算法库。也即,该算法库中既可以包含用于构建安全算法的子算法,又可以包含用于解密安全算法的解密子算法。

作为一种可选的实施例,在根据多个解密子算法中各解密子算法的第二配置信息以及表示各解密子算法之间组合连接关系的第二组合配置信息,配置可重构处理器之前,还可以根据安全算法中多个子算法的连接顺序的逆序,生成第二组合配置信息。也就是说,第二组合配置信息可以根据安全算法中多个子算法的连接顺序的逆序生成。

例如,安全算法中的子算法a、子算法b和子算法c的连接顺序为a-b-c,且子算法a对应解密子算法a’、子算法b对应解密子算法b’以及子算法c对应解密子算法c’,则第二组合配置信息表示的解密子算法a’、解密子算法b’和解密子算法c’的连接顺序应为c’-b’-a’。

需要说明的是,上述子算法的组合连接方式仅是本发明的一种实现方式,选中的子算法还可以按照其它方式组成安全算法。相应的,选中的解密子算法也可以按照其它方式组成解密算法,本发明实施例不限于此。

图6示意性示出了根据本发明实施例的使用可重构处理器实现安全算法的系统的框图。

如图6所示,该使用可重构处理器实现安全算法的系统600可以包括第一确定模块610和第一配置模块620,其中:

第一确定模块610用于确定用于构建安全算法的多个子算法。

第一配置模块620用于根据多个子算法中各子算法的第一配置信息以及表示各子算法之间组合连接关系的第一组合配置信息,配置可重构处理器,以实现安全算法。

根据本发明实施例,使用多个子算法中各子算法的第一配置信息以及表示该各子算法之间组合连接关系的第一组合配置信息,配置可重构处理器,可以保障安全算法的安全性、保障安全算法实现过程的安全性以及可以防范敏感数据管理上的安全风险和侧信道攻击的风险,具有极高的安全性。

下面参考图7A~图7E,结合具体实施例对图6所示的系统做进一步说明。

图7A示意性示出了根据本发明实施例的第一确定模块的框图。

如图7A所示,第一确定模块610可以包括计算单元611和第一确定单元612,其中:

计算单元611用于根据动态变化的信号源,计算得到多个索引值。

第一确定单元612用于根据多个索引值,确定用于构建安全算法的多个子算法。

根据本发明实施例,由动态变化的信号源计算出的索引值也可以是唯一的、不可逆的且动态变化的。即在本次计算后,其它设备或用户是无法推测出本次安全算法是由哪些子算法构建实现的,进而极大地提升了安全算法的安全性。

作为一种可选的实施例,计算单元还用于根据可重构处理器的特征参数和场景参数,计算得到多个索引值,其中,特征参数包括硬件特征参数,场景参数包括系统时间或环境温度。

根据本发明的实施例,根据可重构处理器的特征参数和场景参数,计算得到多个索引值,进而确定出多个子算法时,由于可重构处理器的特征参数和场景参数是唯一的、不可逆的,因此,大大提高了安全算法的安全性、防攻击性和难以预测性。

作为一种可选的实施例,第一确定单元还用于根据多个索引值,从第一算法库中选择对应的多个子算法,其中,第一算法库包括N个子算法的第一配置信息,N大于本次选用的子算法数量。

图7B示意性示出了根据本发明另一实施例的使用可重构处理器实现安全算法的系统的框图。

如图7B所示,该使用可重构处理器实现安全算法的系统600还可以包括第一生成模块630,其中:

第一生成模块630用于在将第一算法库载入可重构处理器时,使用可重构处理器的特征参数生成用于唯一表示第一算法库中各个子算法的标识。

根据本发明的实施例,使用具有唯一性的特征参数生成第一算法库中各个子算法的标识,使其它设备无法获知本次使用各子算法的标识,进而极大地提高了标识的可靠性。将第一算法库动态加载存入可重构处理器时再生成以上标识,即使有任意一方通过其它非技术途径得到了完整的第一算法库,也难以破解以上标识并还原安全算法,因此提高了安全算法的安全性。

作为一种可选的实施例,计算单元还用于按照以下方式计算得到多个索引值中的每个索引值:基于特征参数和场景参数,按照第一预设算法,计算得到第一数值;以及将第一数值除以第一算法库中子算法总量N,得到对应的余数,将余数作为索引值。

根据本发明实施例,基于具有唯一性的特征参数和具有不可逆性的场景参数计算得到索引值,并根据索引值与标识的匹配关系选择对应的子算法,以构建本次使用的安全算法,使得外界无法通过逆推方式得知本次使用的子算法,提高了安全算法的安全性。

图7C示意性示出了根据本发明实施例的计算单元的框图。

如图7B所示,计算单元611可以包括计算子单元6111、处理子单元6112和选择子单元6113,其中:

计算子单元6111用于基于特征参数和场景参数,按照第二预设算法,计算得到第二数值。

处理子单元6112用于将第二数值作为随机数发生器的种子,得到随机数值串。

选择子单元6113用于从随机数值串中选择多个索引值。

根据本发明的实施例,基于具有唯一性的特征参数和具有不可逆性的场景参数计算得到索引值,并根据索引值与标识的匹配关系选择对应的子算法,以构建本次使用的安全算法,使得外界无法通过逆推方式得知本次使用的子算法,提高了安全算法的安全性。并且,可以通过多种方式计算索引值,使得计算方式更加灵活。

图7D示意性示出了根据本发明另一实施例的使用可重构处理器实现安全算法的系统的框图。

如图7D所示,该使用可重构处理器实现安全算法的系统600还可以包括处理模块640,其中:

处理模块640用于在配置可重构处理器时,使多个子算法按照第一组合配置信息中指示的顺序连接,且前后连接的两个子算法不相关。

根据本发明实施例,使多个子算法按照第一组合配置信息中指示的顺序连接,通过改变第一组合配置信息就可以动态改变子算法的连接顺序,保证了安全算法中各子算法连接顺序的可变性,提升了安全算法的安全性。另外,使安全算法中前后连接的两个子算法不相关,可以避免所构建的安全算法的安全性下降。

作为一种可选的实施例,使用可重构处理器实现安全算法的系统还可以包括:重构模块,用于在配置可重构处理器之后,对可重构处理器中用于实现安全算法的电路关键点进行实时重构;和/或添加模块,用于随机在可重构处理器中用于实现安全算法的电路关键路径中加入延时电路。

图7E示意性示出了根据本发明另一实施例的使用可重构处理器实现安全算法的系统的框图。

如图7E所示,该使用可重构处理器实现安全算法的系统600还可以包括重构模块650和添加模块660,其中:

重构模块650用于在配置可重构处理器之后,对可重构处理器中用于实现安全算法的电路关键点进行实时重构。

添加模块660用于随机在可重构处理器中用于实现安全算法的电路关键路径中加入延时电路。

根据本发明的实施例,在实现安全算法的过程中,可重构安全白片可以利用自身的可重构特性,实时动态地重构安全算法中的电路关键点(例如,关键的操作/函数对应的电路),和/或随机地在电路关键路径中加入延时电路,以提高安全算法实现过程的安全性,且使得该安全算法能够有效地防范侧信道攻击。

图8示意性示出了根据本发明实施例的使用可重构处理器实现解密算法的系统的框图。

如图8所示,该使用可重构处理器实现解密算法的系统800可以包括第二确定模块810和第二配置模块820,其中:

第二确定模块810用于确定用于解密安全算法的多个解密子算法。

第二配置模块820用于根据多个解密子算法中各解密子算法的第二配置信息以及表示各解密子算法之间组合连接关系的第二组合配置信息,配置可重构处理器,以实现解密算法。

根据本发明实施例,根据多个解密子算法中各解密子算法的第二配置信息以及表示各解密子算法之间组合连接关系的第二组合配置信息,配置可重构处理器,可以保障解密算法的安全性、保障解密安全算法过程的安全性以及可以防范敏感数据管理上的安全风险和侧信道攻击的风险。

下面参考图9A和图9B,结合具体实施例对图8所示的系统做进一步说明。

图9A示意性示出了根据本发明实施例的第二确定模块的框图。

如图9A所示,该第二确定模块810可以包括第二确定单元811和选择单元812,其中:

第二确定单元811用于根据待解密数据包的包头信息,确定安全算法的多个子算法。

选择单元812用于根据安全算法的多个子算法,从第二算法库中选择对应的多个解密子算法。

根据本发明的实施例,在对数据进行加密时,将算法库动态加载存入可重构处理器时再生成子算法的标识。这样,如果执行解密的可重构处理器与执行加密的可重构处理器不同,需要执行加密的可重构处理器将生成的标识通知到该执行解密的可重构处理器。这种情况下,即使有任意一方通过其它非技术途径得到了完整的算法库,也不能根据包头信息中的算法标识破解加密算法或解密算法,因而提升了算法安全性。

图9B示意性示出了根据本发明另一实施例的使用可重构处理器实现解密算法的系统的框图。

如图9B所示,该使用可重构处理器实现解密算法的系统800还可以包括第二生成模块830,其中:

第二生成模块830用于在根据多个解密子算法中各解密子算法的第二配置信息以及表示各解密子算法之间组合连接关系的第二组合配置信息,配置可重构处理器之前,根据安全算法中多个子算法的连接顺序的逆序,生成第二组合配置信息。

根据本发明的实施例的模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本发明实施例的模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本发明实施例的模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本发明实施例的模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如,第一确定模块610、第一配置模块620、第一生成模块630、处理模块640、重构模块650、添加模块660、计算单元611、第一确定单元612、计算子单元6111、处理子单元6112和选择子单元6113中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其它模块的至少部分功能相结合,并在一个模块中实现。第二确定模块810、第二配置模块820、第二生成模块830、第二确定单元811和选择单元812中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其它模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,第一确定模块610、第一配置模块620、第一生成模块630、处理模块640、重构模块650、添加模块660、第二确定模块810、第二配置模块820、第二生成模块830、计算单元611、第一确定单元612、第二确定单元811、选择单元812、计算子单元6111、处理子单元6112和选择子单元6113中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其它的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意多种的适当组合来实现。或者,第一确定模块610、第一配置模块620、第一生成模块630、处理模块640、重构模块650、添加模块660、第二确定模块810、第二配置模块820、第二生成模块830、计算单元611、第一确定单元612、第二确定单元811、选择单元812、计算子单元6111、处理子单元6112和选择子单元6113中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序被运行时,可以执行相应的功能。

本发明的另一方面提供了一种计算机系统,包括:一个或多个处理器;计算机可读存储介质,用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现如上述实施例中任一项所述的使用可重构处理器实现安全算法的方法,和/或实现如上述实施例中任一项所述的使用可重构处理器实现解密算法的方法。

图10示意性示出了根据本发明实施例的可实现使用可重构处理器实现安全算法的方法,和/或可实现使用可重构处理器实现解密算法的方法的计算机系统的框图。图10示出的计算机系统仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图10所示,计算机系统1000包括处理器1010、计算机可读存储介质1020。该计算机系统1000可以执行根据本发明实施例的方法。

具体地,处理器1010例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1010还可以包括用于缓存用途的板载存储器。处理器1010可以是用于执行根据本发明实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

计算机可读存储介质1020,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。

计算机可读存储介质1020可以包括计算机程序1021,该计算机程序1021可以包括代码/计算机可执行指令,其在由处理器1010执行时使得处理器1010执行根据本发明实施例的方法或其任何变形。

计算机程序1021可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序1021中的代码可以包括一个或多个程序模块,例如包括模块1021A、模块1021B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器1010执行时,使得处理器1010可以执行根据本发明实施例的方法或其任何变形。

根据本发明的实施例,第一确定模块610、第一配置模块620、第一生成模块630、处理模块640、重构模块650、添加模块660、第二确定模块810、第二配置模块820、第二生成模块830、计算单元611、第一确定单元612、第二确定单元811、选择单元812、计算子单元6111、处理子单元6112和选择子单元6113中的至少一个可以实现为参考图10描述的计算机程序模块,其在被处理器1010执行时,可以实现上面描述的相应操作。

本发明的另一方面提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使上述处理器实现如上述实施例中任一项的使用可重构处理器实现安全算法的方法,和/或实现如上述实施例中任一项的使用可重构处理器实现解密算法的方法。该计算机可读介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现:确定用于构建安全算法的多个子算法;以及根据多个子算法中各子算法的第一配置信息以及表示各子算法之间组合连接关系的第一组合配置信息,配置可重构处理器,以实现安全算法,和/或实现:确定用于解密安全算法的多个解密子算法;以及根据多个解密子算法中各解密子算法的第二配置信息以及表示各解密子算法之间组合连接关系的第二组合配置信息,配置可重构处理器,以实现解密算法。

根据本发明的实施例,计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、射频信号等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域技术人员可以理解,本发明的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本发明中。特别地,在不脱离本发明精神和教导的情况下,本发明的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本发明的范围。

尽管已经参照本发明的特定示例性实施例示出并描述了本发明,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本发明的精神和范围的情况下,可以对本发明进行形式和细节上的多种改变。因此,本发明的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号