一种解密方法及系统与流程

文档序号:12490941阅读:368来源:国知局
一种解密方法及系统与流程

本申请涉及集成电路、处理器、信息安全等领域,特别是涉及一种解密方法及系统,及新型处理器架构。



背景技术:

在目前处理器体系结构下,信息安全体系主要采用许可证、密码、软件加密等措施,上述加密方法主要集中在通信安全、数据安全、知识产权保护等方面。如果是对软件程序进行加密,则称未加密的程序为明文程序、加密后的程序为密文程序。由于在现有的计算机系统上只能运行明文程序,因此密文程序在运行前必须解密成明文程序,软件程序的安全性止于软件程序运行前。由于处理器上所能运行的程序都是明文程序,因此黑客们能够把木马程序、病毒程序等非法程序植入到明文软件程序中,或者就以明文程序驻留于计算机系统中。由于处理器本身不能区分合法程序和非法程序,只要非法程序存在就容易被处理器所运行,达到入侵系统的目的,即现有的信息安全体系并不能够从根本上保证系统的安全性。



技术实现要素:

本申请的目的是提供一种解密方法及系统,发明一种新的处理器架构,在保持现有的编程语言(如C语言、C++语言等)、开发环境不变的条件下,实现在处理器上直接运行密文程序。程序开发者首先应用现有的程序设计语言和开发工具完成程序开发后得到明文程序,再选择一种加密算法对明文程序的明文机器码以字节、字或多字为单位逐一加密,明文机器码加密后称为密文机器码,由密文机器码组成的密文程序。在密文程序不解密成明文程序下,本申请的处理器能够直接读入密文机器码到处理器内部解密算法重构平台,在该平台上实现把密文机器码解密成明文机器码,然后处理器再对明文机器码经过译码、执行等完成指令功能,解密算法重构平台可以由用户实现多种解密算法的静态重构和动态重构,不同的用户或程序可以独立重构各自的硬件解密算法,实现了从根本上对信息安全性的保障。

为实现上述目的,本申请提供了如下方案:

一种解密方法,包括:

读取密文机器码,所述密文机器码为对处理器中定义的机器码进行加密后得到的机器码;

重构硬件解密算法,所述硬件解密算法是由用户通过重构端口向所述处理器的解密算法重构平台的FPGA(Field Programmable Gate Array)下载解密算法重构程序、进行动态重构得到解密算法的硬件实现电路;或者是在程序运行过程中,向所述处理器的解密算法重构平台的FPGA下载解密算法重构程序、进行动态重构得到解密算法的硬件实现电路;该所得到的解密算法的硬件实现电路,也称为硬件解密器;

获取解密密码,从解密密码存储单元(也称为密码寄存器)读取解密密码,所述解密密码用于对所述密文机器码进行解密;

解密密文机器码,在所述处理器的解密算法重构平台上,利用所述硬件解密算法和所述解密密码对所述密文机器码进行解密,得到明文机器码,所述明文机器码为所述处理器中定义的机器码,能够为处理器所执行的机器码;

执行所述明文机器码,对所述明文机器码进行译码,得到的指令功能的控制信号,由指令执行模块执行指令。

可选的,所述读取密文机器码,还包括:

获取机器码,所述获取机器码是由指令读取(预取)模块来读取明文机器码或者密文机器码;

获取工作模式控制信号,所述工作模式包括执行明文机器码模式或执行密文机器码模式,实现与现有处理器的完全兼容;所述执行明文机器码模式不需要对机器码进行解密,直接对所述机器码进行译码和执行;所述执行密文机器码模式能够对所述密文机器码进行解密得到明文机器码,然后对明文机器码进行译码执行;

判断所述工作模式控制信号是或否来确定是否需要对所述机器码进行解密;

如果否,则所述机器码为明文机器码,对所述明文机器码直接进行译码,所述译码为将所述机器码转化为所述处理器能够直接执行的指令功能的控制信号。

如果是,则所述机器码为密文机器码,读取密文机器码,输入到所述解密算法重构平台上解密,所述解密算法重构平台将密文机器码解密为明文机器码;

可选的,所述重构硬件解密算法,具体包括:

采用算术运算类算法在解密算法重构平台上重构硬件解密算法;

或者,采用逻辑运算类算法在解密算法重构平台上重构硬件解密算法;

或者,采用所述算术运算类算法与所述逻辑运算类算法相结合的方式在所述解密算法重构平台上重构硬件解密算法;

或者,采用用户所使用的其它解密算法来重构硬件解密算法。

可选的,所述利用所述硬件解密算法和所述解密密码对所述密文机器码进行解密,具体包括:

将所述解密密码和所述密文机器码输入到所述解密算法重构平台上使用所述硬件解密算法进行解密计算。

本申请还提供了一种解密系统,所述系统包括:

密文机器码读取单元,用于读取密文机器码,所述密文机器码为对处理器中定义的机器码进行加密后得到的加了密的机器码;

解密算法重构单元,用于重构硬件解密算法,所述硬件解密算法是由用户通过重构端口向所述处理器的解密算法重构平台的FPGA下载解密算法重构程序、进行动态重构得到解密算法的硬件实现电路;或者是在程序运行过程中,向所述处理器的解密算法重构平台的FPGA下载解密算法重构程序、进行动态重构得到解密算法的硬件实现电路,进一步实现在程序运行过程中对解密算法的动态重构,达到程序执行级安全性的动态的、实时的保护与保障;该所得到的解密算法的硬件实现电路,也称为硬件解密器;

解密密码获取单元,用于获取解密密码,从解密密码存储单元(也称为密码寄存器)读取解密密码,所述解密密码用于对所述密文机器码进行解密;

解密单元,用于解密密文机器码,在所述处理器的解密算法重构平台上,利用所述硬件解密算法和所述解密密码对所述密文机器码进行解密,得到明文机器码,所述明文机器码为所述处理器中定义的机器码;

译码单元,用于执行所述明文机器码,对所述明文机器码进行译码,得到的指令功能的控制信号,由指令执行模块执行指令。

可选的,所述系统还包括:

机器码获取单元,用于读取机器码,所述获取机器码是由指令读取(预取)模块读取明文机器码或者密文机器码;

工作模式获取单元,用于获取工作模式控制信号,所述工作模式包括执行明文机器码模式或执行密文机器码模式,实现与现有处理器的完全兼容;所述执行明文机器码模式不需要对机器码进行解密,直接对所述明文机器码进行译码和执行;所述执行密文机器码模式能够对所述密文机器码进行解密生成明文机器码,然后再对明文机器码进行译码和执行;

判断单元,用于判断所述工作模式控制信号是或否来确定是否需要对所述机器码进行解密。

所述密文读取单元还用于当所述控制信号为是表示需要对所述机器码进行解密时,在所述机器码为密文机器码时,读取密文机器码,由解密算法重构平台将密文机器码解密为明文机器码;

所述译码单元还用于当所述控制信号为否表示不需要对所述机器码进行解密时,对所述明文机器码直接进行译码,所述译码为将所述机器码转化为所述处理器能够直接执行的指令功能的控制信号。

可选的,所述解密算法重构单元,具体包括:

第一构建子单元,用于采用算术运算类算法重构硬件解密算法;

第二构建子单元,用于采用逻辑运算类算法重构硬件解密算法;

第三构建子单元,用于采用所述算术运算类算法与所述逻辑运算类算法相结合的方式重构硬件解密算法;

第四类构建子单元,用于采用用户所使用的其它解密算法来重构硬件解密算法。

可选的,所述解密单元具体包括:

解密子单元,用于将所述解密密码和所述密文机器码输入到所述解密算法重构平台上使用所述硬件解密算法进行解密计算。

根据本申请提供的具体实施例,本申请公开了以下技术效果:明文机器码是处理器中定义的机器码,本申请提供的动态可重构解密平台是对经过用户加过密的明文机器码(即密文机器码)进行解密。其中,解密算法可以采用逻辑运算或是算术运算或是算术逻辑混合运算或者是用户所使用的其它运算;明文机器码加密后得到的密文机器码在处理器中并没有相关的定义或者失去了明文机器码原有的意义或功能;因而,密文机器码在处理器中并不能够被执行或者不能够被正确运行或者是一种混乱运行;在动态可重构解密平台中所重构的硬件解密算法是与对明文机器码加密时所采用的加密算法相对应的解密算法,硬件解密器对密文机器码进行解密,将其转化为处理器中有定义的明文机器码,进而再由处理器进行常规的译码与执行;本申请提供的解密算法从根本上保障了信息的安全性。此外,本申请的解密算法重构平台中包含FPGA,通过向FPGA下载解密算法重构程序、由FPGA来动态重构密文机器码的硬件解密电路(也称为硬件解密器),具有硬件安全性、实时安全性、速度快、效率高的完全安全保护优势。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例解密方法的流程示意图;

图2为现有的处理器三级流水线结构示意图;

图3为基于本申请提供的方法的处理器的四级流水线模型;

图4为本申请采用的处理器的结构示意图;

图5为本申请的可重构解密平台的解密流程图;

图6为本申请实施例解密系统的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请的目的是提供一种解密方法及系统,该方法和系统从根本上保障了系统和信息的安全性、程序执行的安全性。

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

图1为本申请实施例解密方法的流程示意图,如图1所示,本申请提供的解密方法具体包括以下步骤:

步骤101:读取密文机器码,所述密文机器码为对处理器中定义的机器码进行加密后得到的机器码,由指令读取(预取)模块读取到处理器中;

步骤102:构建解密算法,所述解密算法由用户或程序在所述处理器的解密平台FPGA上重构得到;或者,所述解密算法通过重构端口被下载到所述处理器的解密平台FPGA中;重构所得到的解密算法为硬件实现电路,也称为硬件解密器。

对于具体的解密算法,用户还可以设置安全度不同的多级加解密算法,例如,安全级设置三级,每级对应设置一定数量的加解密算法,比如,每级设置三套加解密算法,安全级别越高,其中设置的加解密算法越复杂。机器码在加密时,处理器根据机器码的重要程度选择加密算法的安全级别,并在选定的安全级别中随机选择加密算法,并记录被加密的机器码所采用的加密算法的安全级别和算法代号,解密处理器在读取到此密文机器码后,会根据记录的安全级别以及算法代号调取相应的解密算法,对所述密文机器码进行解密,进一步实现在当前程序运行中动态重构随后运行程序需要使用的硬件解密算法;

步骤103:所述解密密码用于对所述密文机器码进行解密;

步骤104:利用所述解密算法和所述解密密码对所述密文机器码进行解密,得到明文机器码,所述明文机器码为所述处理器中定义的机器码;比如,明文机器码的十六进制为FAH,加密密码的十六进制为A0H,加密算法为“异或”,即用明文机器码“异或”密码,得到密文机器码,根据上述加密算法计算得到的密文机器码的十六进制为5AH。那么,处理器在接收到上述密文机器码后,一方面,根据上述加密算法确定对应的解密算法,对于本实施例而言,解密算法也为“异或”,另一方面,获取解密密码A0H,对“异或”而言解密密码与加密密码相同。然后,将密文机器码5AH以及解密密码A0H传送到动态可重构解密平台上的硬件解密器中,在硬件解密器中实现密文机器码“异或”解密密码的异或运算过程,得到解密后的明文机器码FAH。当然,在上述实施例中的解密算法也可以采用其他逻辑运算类算法,或者采用算术运算类算法,或者采用算术运算类算法与逻辑运算类算法相结合的方式等其它可使用的算法。具体采用何种算法以及算法的而复杂度由用户自己选择。

步骤105:由指令译码模块对所述明文机器码进行译码,由指令执行模块执行并实现指令功能。

为了对上述步骤进行解释说明,下面提供一简单的实施例。在Intel公司x86指令系统中,清零进位标志位的汇编指令为CLC,对应的机器码十六进制为F8H(二进制码为11111000),那么预先对二进制码11111000“取反”加密得到密文机器码00000111(十六进制为07H);指令预取模块读取到密文机器码07H后,利用本申请提供的解密算法(取反)解密得到明文机器码F8H。

在步骤101之前,还包括:

获取机器码;

获取工作模式控制信号,控制信号来源于重构端口,重构端口为一外设端口,本申请的工作模式包括两种:一种是直接执行密文机器码模式;另一种是执行明文机器码模式,实现与现有处理器的完全兼容;

判断所述控制信号是或否来确定是否需要对所述机器码进行解密;

如果否,则所述机器码为明文机器码、直接进行译码,所述译码为将所述机器码转化为所述处理器能够直接执行的指令信号;

如果是,则所述机器码为密文机器码,需要对所述机器码进行解密为明文机器码,然后才能译码和执行。

处理器的存储结构包括冯诺依曼结构和哈佛结构,指令系统包括复杂指令集(CISC)与精简指令集(RISC),每一类处理器都有自己的指令系统,指令运行是通过流水线结构实现的。在流水线(包括三级流水线及更多级流水线)中,都会包括读取指令模块与指令译码模块。在现有的处理器架构中,处理器从内存/缓存中直接读得机器码来执行,一段程序可以在相同架构处理器上运行(例如微软WORD软件能在不同PC兼容机上运行)。

图2为现有的处理器的典型的三级流水线结构示意图,如图2所示,每个模块执行需要一个时钟,正常流水时,每一个时钟三个流水操作都同时执行、完成一条指令的执行。处理器执行指令的过程:处理器首先从内存/缓存中读取指令机器码,然后对机器码译码,最后执行指令完成指令功能。处理器所执行的程序都是以处理器的机器码“明码”呈现的(明码是指现有处理器能够执行的机器码)。就PC机而言,程序执行时,首先将程序加载到内存中,然后由处理器从内存中逐条读取指令机器码、译码、执行,完成一条指令的执行。非流水线工作中,读取指令、译码、执行各需要一个时钟,正常流水线工作中,读取指令、译码、执行一个时钟完成。

而本申请提供的处理器结构,在流水线中添加了一级解密流水操作,例如在指令读取模块和指令译码模块之间添加一个解密算法重构平台,图3为基于本申请提供的处理器结构的典型的四级流水线模型,如图3所示,在解密算法重构平台FPGA上可以由用户独立实现硬件解密算法的加载与重构。读取指令机器码后,由解密算法重构平台上所构建的硬件解密算法对已加密指令解密生成可执行的明文机器码,然后再进行译码,最后再执行指令,实现指令功能,实现了处理器在指令执行级上的安全性。如果处理器从内存/缓存中读得的是未定义机器码,那么处理器就无法执行该机器码并产生异常报错(如同除数为零的除法运算)。也就是说,如果处理器把密文机器码当明文机器码执行(明文机器码加密后可能成了未定义的机器码或失去原意义的机器码),处理器就不能执行或者产生异常,可实现对程序知识产权、系统安全性的保护等;同样,在解密执行模式下,明文机器码被当做密文机器码解密后就是未定义的机器码或失去原意义的机器码,处理器也不能执行或者产生异常,可实现防黑客攻击、防病毒等。另外,解密算法重构平台也可以添加在指令读取模块之前。

图4为本申请采用的处理器的内部结构示意图,如图4所示,重构引脚包括重构端口所需要的重构信号和模式控制信号(处理器的其它通用引脚为默认引脚,没有标出);重构端口与解密算法重构平台通过重构总线连接,重构端口主要实现在解密算法重构平台上构建硬件解密算法,即通过重构端口将解密算法重构文件(是用硬件描述语言HDL实现的硬件编程文件)下载到解密算法重构平台上,在FPGA中构成一个硬件实现的解密算法;模式控制信号主要用于控制解密算法重构平台的左端总线和右端总线是否直接连通:如果模式控制信号为否,则左右总线直接连通,实现对指令解密平台旁路,解密算法重构平台为非解密工作模式,该模式暨可以实现处理器内部的原始配置等功能、也是一个默认执行状态(非加密工作状态)、也是一个和现有通用处理器兼容的状态(即处于非解密工作状态就是一款现有的通用处理器);模式控制信号为是,则左右总线不连通,解密算法重构平台为解密工作模式,指令预取模块获取密文机器码输出至指令解密平台,经由可重构指令解密平台进行解密之后,得到明文机器码输出至指令译码模块,明文机器码经由指令译码模块进行译码后,得到可执行的指令信号输入到指令执行模块,最后由指令执行模块执行,实现各种指令功能。电源用于为处理器提供电能,处理器的其它通用默认模块没有重复给出。

图5为本申请的解密算法重构平台的解密流程图,如图5所示,解密算法重构平台通过重构端口下载解密算法的重构文件并重构解密算法,根据解密密码和解密算法对密文机器码进行解密,得到明文机器码。

本申请主要是在不改变现有处理器的指令系统的基础上,在体系结构的流水线中添加了一级解密流水操作,通过重构解密算法,处理器实现了“直接执行已加密指令”功能,达到了处理器指令执行级的安全性。

在基于本申请的架构的处理器设计中,在不改变现有处理器的指令系统的基础上,在其流水线的指令读取模块之前或者在指令读取模块与指令译码模块之间添加一个解密算法重构平台,达到与现有处理器的性能和工艺上做到最大兼容。用户可以在解密算法重构平台中独立构建各自的硬件解密算法,实现处理器直接执行密文机器码。黑客等不知道加解密算法和密码,因此他们无法将黑客程序、病毒程序等转换成密文机器码。在解密执行模式下,明文机器码被当做密文机器码解密后就是未定义或错误码,处理器不能执行。这样,极大地提高了系统的保密性和抗攻击性。

解密算法重构平台可以通过重构端口实现多种解密算法的静态重构,也可以实现动态重构,由用户在程序运行过程中动态构建硬件解密算法。重构可以实现不同的用户选择不同的加解密算法和密码,甚至是不同的程序选择不同的加解密算法和密码,提供了更大的灵活性和更高的安全性。常用的加解密算法如算术运算类算法、逻辑运算类算法等等。

基于本申请的处理器或系统是在原有(现有)的通用处理器的基础上,在其指令读取模块与指令译码模块之间或者在其指令读取模块之前添加一个解密算法重构平台实现,也可以把指令预取模块与解密算法重构平台合并为一个模块或者把解密算法重构平台与指令译码模块合并为一个模块,达到与目前现有处理器的性能和工艺上做到最大兼容。

本申请设计的处理器实现了从处理器执行级的程序安全。可以实现程序安全、数据安全、通讯安全、执行安全,防黑客攻击、防病毒安全、保护知识产权等。

为达到上述目的,本申请还提供了一种解密系统,图6为本申请实施例解密系统的结构示意图,如图6所示,所述系统包括:

密文机器码读取单元601,用于读取密文机器码,所述密文机器码为对处理器中定义的机器码进行加密后得到的机器码;

解密算法重构单元602,用于重构硬件解密算法,所述硬件解密算法由用户在所述解密算法重构平台中的FPGA上构建得到;

解密密码获取单元603,用于获取解密密码,所述解密密码用于对所述密文机器码进行解密;

解密单元604,用于利用所述硬件解密算法和所述解密密码对所述密文机器码进行解密,得到明文机器码,所述明文机器码为所述处理器中定义的机器码;

译码单元605,用于对所述明文机器码进行译码,输出给处理器指令执行模块执行指令、实现指令功能。

所述系统还包括:

机器码获取单元,用于获取机器码;

工作模式获取单元,用于获取工作模式控制信号;

判断单元,用于判断所述控制信号是或否来确定是否需要对所述机器码进行解密;

所述密文机器码读取单元还用于当所述模式控制信号表示需要对所述机器码进行解密时,读取密文机器码;

所述译码单元还用于当所述模式控制信号表示不需要对所述机器码进行解密时,对所述机器码进行译码,输出给处理器指令执行模块执行指令、实现指令功能。

解密算法重构单元602,具体包括:

第一构建子单元,用于采用算术运算类算法构建解密算法;

第二构建子单元,用于采用逻辑运算类算法构建解密算法;

第三构建子单元,用于采用所述算术运算类算法与所述逻辑运算类算法相结合的方式构建解密算法;

第四类构建子单元,用于采用用户所使用的其它解密算法来重构硬件解密算法。

解密单元604,具体包括:

解密子单元,用于将所述解密密码和所述机器码代入所述解密算法中进行计算。

本申请提供的解密系统中的密文机器码是经过加密的明文机器码,解密时,采用解密算法将密文机器码转化为处理器中定义的明文机器码,进而,由处理器译码、执行该明文机器码,如果不能对密文机器码进行解密,那么处理器将不能执行指令或是产生异常,本申请提供的系统从处理器执行的指令机器码上入手,从根本上保障了信息的安全性。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1