当前位置: 首页 > 专利查询>同济大学专利>正文

一种基于差异化编码和语句签名的可信计算方法技术

技术编号:17047526 阅读:25 留言:0更新日期:2018-01-17 17:39
本发明专利技术涉及一种基于差异化编码和语句签名的可信计算方法,具体包括以下步骤:对源代码分别进行变量编码、运算编码和分配语句签名操作;采用编译器对代码进行编译,输出安全二进制代码,分配语句签名操作包括:定义一个全局变量存储运行时签名;对复合表达式进行拆分后进行签名语句分配,若不是复合表达式,直接为当前运算表达式分配一个唯一的签名语句;计算当前表达式的签名和上一条表达式的签名的差值获得签名补偿;根据签名补偿值,更新运行时签名值。与现有技术相比,本发明专利技术具有能够通过系数的数学关系简化编码和解码步骤、减少性能开销、提升程序运行速度和保证安全性能符合SIL4的要求等优点。

A trusted computing method based on differential coding and statement signature

The invention relates to a method of trusted computing differential encoding and statement based signature, it includes the following steps: the source code for encoding, arithmetic encoding variable respectively and the distribution of the signature operation by the statement; the compiler to compile the code, output binary code allocation statement signature operation includes: the definition of a global variable storage operation signature; split the compound expression after signature statement assignment, if not compound expressions directly to the current operation expression is assigned a unique signature statement; calculation expression difference signature signature and a signature expression for current compensation; compensation value according to the signature, signature value update operation. Compared with the existing technology, the invention has the advantages of simplifying the encoding and decoding steps through the mathematical relationship of coefficients, reducing the performance cost, improving the operation speed of the program, and ensuring the safety performance meeting the requirements of SIL4.

【技术实现步骤摘要】
一种基于差异化编码和语句签名的可信计算方法
本专利技术涉及计算机系统硬件错误检测
,尤其是涉及一种基于差异化编码和语句签名的可信计算方法。
技术介绍
随着计算机技术的高速发展,计算机应用系统中的运算能力得到了指数级的提高,其硬件结构复杂度也越来越高。同时计算机广泛地运用在各个领域,其中包括轨道交通、航空航天、核工业控制、车联网控制、金融及交通管理等安全要求很高的领域,而在这些安全苛求系统(Safety-CriticalSystem)中的任何微小的故障,都可能造成巨大的人员伤亡或经济损失。当计算机的硬件系统受到元器件老化、长期高温环境、积灰、强电磁干扰等因素影响时,处理器元器件的逻辑状态会发生非正常的改变,导致存储内容的翻转,这些故障可能是临时性的也可能是永久性的,其结果是处理器对变量执行错误的读写或执行错误的运算,此类错误若未被系统发现将导致错误的输出结果,这被称之为静默数据损坏(SilentDataCorruption,SDC)。在安全苛求系统中,静默数据损坏将导致严重的后果。在轨道交通以及航空航天等安全等级很高的领域中,为保证系统的绝对安全,需要检测所有类型的硬件故障以保证静默数据损坏的错误覆盖率满足SIL4要求。目前使用的硬件错误检测技术分为硬件容错和软件容错两大类。基于硬件的典型容错方法有三模/双模冗余(TMR/DMR)、看门狗(watchdog)等,但基于硬件的容错方法成本很高,且性能较低,对于已经投入应用的商品化硬件,要实现这些方法需要改变硬件的内部结构,因此,在现代的系统应用中,越来越多地使用软件的方法来进行检错。软件容错方法主要是通过冗余来实现,不需专门的硬件。其中一种方式是通过指令重复执行来实现容错,不过该方法只能检测瞬时性错误,无法检测永久性错误。另一种底层硬件错误的检测方法是安全编码理论,典型应用有AN码和ANBD码,但是AN码只能检测运算错误而无法检测操作符错误与操作数错误,ANBD码虽然能覆盖所有类型的硬件错误,但是其编码方式过于复杂,将给系统带来30-100倍的额外开销,在实际系统中并不实用。目前的计算机硬件错误检测技术只能以大幅度地牺牲系统性能为代价来满足错误覆盖率的要求,难以实现性能与检错率的平衡。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种基于差异化编码和语句签名的可信计算方法。本专利技术的目的可以通过以下技术方案来实现:一种基于差异化编码和语句签名的可信计算方法,所述的可信计算方法依次进行编码和编译步骤,具体包括以下步骤:S1、对源代码分别进行变量编码、运算编码和分配语句签名操作,完成编码过程,同时编码过程伴随校验操作;S2、采用编译器对代码进行编译,输出安全二进制代码。S1中所述的变量编码操作具体为:对源代码分别以两个不同的常量为乘数进行AN码编码,得到变量第一份编码数据和变量第二份编码数据。S1中所述的运算编码操作包括以下步骤:S101、判断运算表达式是否为复合表达式,若为是则对其进行拆分后,再进行S102,若为否,直接进行S102;S102、判断运算表达式的操作符是否为双目操作符,若为是,则跳转至步骤S103,若为否跳转至步骤S105;S103、根据操作符类型,对左操作数和右操作数的变量第一份编码数据分别进行相应操作符编码运算,得到运算结果第一份编码数据;S104、根据操作符类型,对左操作数和右操作数的变量第二份编码数据分别进行相应操作符编码运算,得到运算结果第二份编码数据,结束步骤;S105、根据操作符类型,对左操作数的变量第一份编码数据进行相应操作符编码运算,得到运算结果第一份编码数据;S106、根据操作符类型,对左操作数的变量第二份编码数据进行相应操作符编码运算,得到运算结果第二份编码数据,结束步骤。所述的分配语句签名操作包括以下步骤:S111、定义一个全局变量存储运行时的签名;S112、判断运算表达式是否为复合表达式,若为是,则对复合表达式进行拆分后进入S113,若为否,直接进入S113;S113、为当前运算表达式分配一个唯一的签名;S114、计算当前表达式的签名和上一条表达式的签名的差值获得签名补偿;S115、根据签名补偿值,更新运行时签名值。所述的变量编码操作中的常量选取满足A1=2k+2i,A2=2k-2i,k,i为任意正整数常量,A1、A2均为选取的常量。S1中所述的校验操作包括对编码后数据的校验和运行时签名的校验。所述的对编码后数据的校验具体包括以下步骤:S201、获得待校验数据的运算结果第一份编码数据和运算结果第二份编码数据;S202、判断两份编码数据之和是否满足低(k+1)位全为0,若为是,则进入S203,若为否,则程序执行过程中发生错误终止程序;S203、判断两份编码数据之差是否满足低(i+1)位全为0,若为是,则进入S204,若为否,则程序执行过程中发生错误终止程序;S204、判断待校验数据的两组解码值是否相等,若为是,则程序执行过程中未发生错误,继续执行程序,若为否,则程序执行过程中发生错误终止程序。所述的运行时签名的校验具体包括以下步骤:S211、判断当前运行时签名值与当前程序节点所执行完的最后一条语句的语句签名值是否相等,若为是,则转至S212,若为否,则转至S213;S212、程序执行过程中未发生错误,继续执行程序;S213、程序执行过程中发生错误,终止程序。所述的运算编码类型包括算术运算编码、位运算编码和数组运算编码。与现有技术相比,本专利技术具有以下优点:(1)结合了AN码和重复指令的方法,并引入了差异化的编码方法和签名的思想,性能开销远小于ANBD码,而检错能力能覆盖所有错误类型,即能检测出AN码和重复指令技术无法单独检测出的错误类型;(2)使编码后数据运算中出现的错误能被检测到,可检测程序执行过程中的漏执行错误:引入了语句签名思想,用于检测语句漏执行错误和控制流错误;(3)采用了差异化AN码的编码方式,通过对编码参数的特定选取将除法运算转换为移位运算,用以提升性能,修改了乘法、除法部分的编码方式,同时实现了按位运算、数组运算的编码。(4)编码后可使程序具有能检错的模块,一旦检测到错误就执行故障导向安全的机制;(5)无需改动硬件,适用于任何硬件平台,具有较高灵活性。附图说明图1为工程实现流程图;图2为编码流程图;图3为数据编码示意图;图4为运算编码示意图;图5为语句签名模块示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本专利技术保护的范围。实施例本专利技术提供一种基于差异化编码和语句签名的可信计算技术,主要解决计算机硬件错误检测中性能与安全性的平衡问题。如图1和图2所示,本专利技术采用的技术方案是:结合AN码和重复指令的方法,引入了差异化的编码方法和签名的思想,对计算机程序中的变量和运算进行编码,并对语句分配签名,用来检测计算机硬件系统中的各种故障,该方案所覆盖的计算机系统硬件错误有:1、以错误持续时间划分:a)永久性错误;b)间歇性错误;c)瞬时性错误。2、以错误发生位置划分:a)操作数本文档来自技高网
...
一种基于差异化编码和语句签名的可信计算方法

【技术保护点】
一种基于差异化编码和语句签名的可信计算方法,其特征在于,所述的可信计算方法依次进行编码和编译步骤,具体包括以下步骤:S1、对源代码分别进行变量编码、运算编码和分配语句签名操作,完成编码过程,同时编码过程伴随校验操作;S2、采用编译器对代码进行编译,输出安全二进制代码。

【技术特征摘要】
1.一种基于差异化编码和语句签名的可信计算方法,其特征在于,所述的可信计算方法依次进行编码和编译步骤,具体包括以下步骤:S1、对源代码分别进行变量编码、运算编码和分配语句签名操作,完成编码过程,同时编码过程伴随校验操作;S2、采用编译器对代码进行编译,输出安全二进制代码。2.根据权利要求1所述的一种基于差异化编码和语句签名的可信计算方法,其特征在于,S1中所述的变量编码操作具体为:对源代码分别以两个不同的常量为乘数进行AN码编码,得到变量第一份编码数据和变量第二份编码数据。3.根据权利要求2所述的一种基于差异化编码和语句签名的可信计算方法,其特征在于,S1中所述的运算编码操作包括以下步骤:S101、判断运算表达式是否为复合表达式,若为是则对其进行拆分后,再进行S102,若为否,直接进行S102;S102、判断运算表达式的操作符是否为双目操作符,若为是,则跳转至步骤S103,若为否跳转至步骤S105;S103、根据操作符类型,对左操作数和右操作数的变量第一份编码数据分别进行相应操作符编码运算,得到运算结果第一份编码数据;S104、根据操作符类型,对左操作数和右操作数的变量第二份编码数据分别进行相应操作符编码运算,得到运算结果第二份编码数据,结束步骤;S105、根据操作符类型,对左操作数的变量第一份编码数据进行相应操作符编码运算,得到运算结果第一份编码数据;S106、根据操作符类型,对左操作数的变量第二份编码数据进行相应操作符编码运算,得到运算结果第二份编码数据,结束步骤。4.根据权利要求1所述的一种基于差异化编码和语句签名的可信计算方法,其特征在于,所述的分配语句签名操作包括以下步骤:S111、定义一个全局变量存储运行时的签名;S112、判断运算表达式是否为复合表达式,若为是,则对复合表达式进行拆分后进入S113,若为否,直接进入S113;S113...

【专利技术属性】
技术研发人员:薛小平周航王小平张芳张春花张令聪
申请(专利权)人:同济大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1