基于冗余编码的变量签名唯一性安全处理方法技术

技术编号:8801024 阅读:319 留言:0更新日期:2013-06-13 05:42
本发明专利技术涉及一种基于冗余编码的变量签名唯一性安全处理方法,包括以下步骤:1)按照签名生成算法产生签名;2)输入待编码的文件,判断待编码的语句的类型,为每个变量分配或计算签名;3)对步骤2)得到的签名做签名唯一性检查,如果该签名与已经分配的签名相同,则转向步骤4),否则转向步骤5);4)从签名表中重新取一个签名分配给该变量,再转向步骤3);5)存储经过签名唯一性检查的签名,并判断编码是否结束,如果没有到达待编码文件的结尾,则转向步骤2),否则转向步骤6);6)结束。与现有技术相比,本发明专利技术具有大大降低了系统的错误不可检出率等优点。

【技术实现步骤摘要】

本专利技术涉及一种安全编码技术,尤其是涉及一种。
技术介绍
在现有的安全冗余编码系统中,对源码中所有的变量都会生成高位和低位,其中高位存储源码的变量值,低位存储变量的校验信息,通过高位和低位信息可以计算出变量的签名。所以,在系统每个周期运行结束之后,可以通过检查变量的签名是否正确来判断系统在运行过程中是否出现寻址错误、硬件失效等故障(非系统本身的逻辑错误)。如果变量的签名不唯一,就会导致系统的故障可能检测不出来,同时也不方便对系统的安全进行定量的分析。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种大大降低了系统的错误不可检出率的。本专利技术的目的可以通过以下技术方案来实现:一种,其特征在于,包括以下步骤:I)按照签名生成算法产生签名;2)输入待编码的文件,判断待编码的语句的类型,为每个变量分配或计算签名;3)对步骤2)得到的签名做签名唯一性检查,如果该签名与已经分配的签名相同,则转向步骤4),否则转向步骤5);4)从签名表中重新取一个签名分配给该变量,再转向步骤3);5)存储经过签名唯一性检查的签名,并判断编码是否结束,如果没有到达待编码文件的结尾,则转向步骤2),否则转向步骤6);6)结束。所述的步骤2)具体为:21)若语句为变量定义或声明,则从步骤I)生成的签名表中分配一个签名给该变量;22)若语句为基本运算,则判断该基本运算属于哪种运算,并按照相应算法的签名方式计算签名;23)若语句为数组运算,判断其是数组赋值运算还是数组取值运算,如果是数组赋值运算,则按数组赋值运算的签名计算方式计算签名;如果是数组取值运算,则按数组取值运算的签名计算方式计算签名。2.4)若语句为分支、循环结构,判断是分支结构还是循环结构,如果是分支结构,则按分支结构的签名计算方式计算签名;如果为循环结构,则按循环结构的签名计算方式计算签名;2.5)若语句为函数调用,判断其是模块函数调用还是计算函数调用,如果为模块函数调用,则按模块函数调用的签名计算方式计算签名;如果为计算函数调用,则按计算函数调用的签名计算方式计算签名。所述的步骤22)判断该基本运算属于哪种运算,并按照相应算法的签名方式计算签名具体为:如果是加法运算,则按加法运算的签名计算方式计算签名;如果是减法运算,则按减法运算的签名计算方式计算签名;如果是乘法运算,则按乘法运算的签名计算方式计算签名;如果是除法运算,则按除法运算的签名计算方式计算签名;如果是逻辑与运算,则按逻辑与运算的签名计算方式计算签名;如果是逻辑或运算,则按逻辑或运算的签名计算方式计算签名;如果是逻辑非运算,则按逻辑非运算的签名计算方式计算签名;如果是左移运算,则按左移运算的签名计算方式计算签名;如果是右移运算,则按右移运算的签名计算方式计算签名。与现有技术相比,本专利技术具有以下优点:I)该专利技术保证了所有变量的签名都是唯一的,利用对系统的安全进行定量的分析;2)该专利技术保证了所有变量的签名都是唯一的,使所有的变量都被唯一标识,对于系统的所有单点故障都能检测出来;对于系统的多点故障,系统的错误不可检出率也明显降低,所以该专利技术大大降低了系统的错误不可检出率。附图说明图1为本专利技术的功能模块图;图2为本专利技术的流程图;图3为本专利技术签名产生模块的流程图;图4为语句为基本运算的签名计算流程图;图5为语句为数组运算的签名计算流程图;图6为语句为分支、循环结构的签名计算流程图;图7为语句为函数调用的签名计算流程图。具体实施例方式下面结合附图和具体实施例对本专利技术进行详细说明。实施例图1所示为本专利技术的功能模块结构示意图,本专利技术包括经签名产生模块后依次进入签名分配模块或签名计算模块、签名检查模块,最后在签名存储模块存储签名。图2所示为本专利技术的工作流程图,下面结合图2-图7对各步骤进行详细描述:步骤1:按照签名生成算法产生签名,图3是签名产生模块的具体步骤,如果产生的签名个数足够,就转向步骤2,否则继续执行步骤I。例如可以设定产生10000个签名。步骤2:输入待编码的文件,判断待编码的语句的类型,为每个变量分配或计算签名。2.1)该语句为变量定义或声明,则从步骤I生成的签名表中分配一个签名给该变量;2.2)该语句属于基本运算,则判断该基本运算属于哪种运算,图4是描述了该过程的具体步骤。如果是加法运算,则按加法运算的签名计算方式计算签名;如果是减法运算,则按减法运算的签名计算方式计算签名;如果是乘法运算,则按乘法运算的签名计算方式计算签名;如果是除 法运算,则按除法运算的签名计算方式计算签名;如果是逻辑与运算,则按逻辑与运算的签名计算方式计算签名;如果是逻辑或运算,则按逻辑或运算的签名计算方式计算签名;如果是逻辑非运算,则按逻辑非运算的签名计算方式计算签名;如果是左移运算,则按左移运算的签名计算方式计算签名;如果是右移运算,则按右移运算的签名计算方式计算签名。2.3)该语句为数组运算,图5描述了该过程的具体步骤。如果是数组赋值运算,则按数组赋值运算的签名计算方式计算签名;如果是数组取值运算,则按数组取值运算的签名计算方式计算签名。2.4)该语句为分支、循环结构,图6描述了该过程的具体步骤。如果是分支结构,则按分支结构的签名计算方式计算签名;如果为循环结构,则按循环结构的签名计算方式计算签名。2.5)该语句为函数调用,图7描述了该过程的具体步骤。如果为模块函数调用,则按模块函数调用的签名计算方式计算签名;如果为计算函数调用,则按计算函数调用的签名计算方式计算签名。为变量分配或计算好签名之后,则转向步骤3.步骤3:对步骤2得到的签名做签名唯一性检查,如果该签名与已经分配的签名相同,则转向步骤4,否则转向步骤5。步骤4:从签名表中重新取一个签名分配给该变量,再转向步骤3。步骤5:存储经过签名唯一性检查的签名,并判断编码是否结束,如果没有到达待编码文件的结尾,则转向步骤2,否则转向步骤6。步骤6:结束。本文档来自技高网...

【技术保护点】
一种基于冗余编码的变量签名唯一性安全处理方法,其特征在于,包括以下步骤:1)按照签名生成算法产生签名;2)输入待编码的文件,判断待编码的语句的类型,为每个变量分配或计算签名;3)对步骤2)得到的签名做签名唯一性检查,如果该签名与已经分配的签名相同,则转向步骤4),否则转向步骤5);4)从签名表中重新取一个签名分配给该变量,再转向步骤3);5)存储经过签名唯一性检查的签名,并判断编码是否结束,如果没有到达待编码文件的结尾,则转向步骤2),否则转向步骤6);6)结束。

【技术特征摘要】
1.一种基于冗余编码的变量签名唯一性安全处理方法,其特征在于,包括以下步骤: 1)按照签名生成算法产生签名; 2)输入待编码的文件,判断待编码的语句的类型,为每个变量分配或计算签名; 3)对步骤2)得到的签名做签名唯一性检查,如果该签名与已经分配的签名相同,则转向步骤4),否则转向步骤5); 4)从签名表中重新取一个签名分配给该变量,再转向步骤3); 5)存储经过签名唯一性检查的签名,并判断编码是否结束,如果没有到达待编码文件的结尾,则转向步骤2),否则转向步骤6); 6)结束。2.根据权利要求1所述的一种基于冗余编码的变量签名唯一性安全处理方法,其特征在于,所述的步骤2)具体为: 21)若语句为变量定义或声明,则从步骤I)生成的签名表中分配一个签名给该变量; 22)若语句为基本运算,则判断该基本运算属于哪种运算,并按照相应算法的签名方式计算签名; 23)若语句为数组运算,判断其是数组赋值运算还是数组取值运算,如果是数组赋值运算,则按数组赋值运算的签名计算方式计算签名;如果是数组取值运算,则按数组取值运算的签名计算方式计算签名。2.4)若语句为分支、循环结构,判断...

【专利技术属性】
技术研发人员:孙军峰汪明新张磊曹杰秘慧杰江伟何昀锋
申请(专利权)人:卡斯柯信号有限公司
类型:发明
国别省市:

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

1