一种基于平行签名唯一性的多维度的冗余编码方法技术

技术编号:12095617 阅读:74 留言:0更新日期:2015-09-23 13:29
本发明专利技术涉及一种基于平行签名唯一性的多维度的冗余编码方法,包括以下步骤:1)将源码分为主程序部分和独立编码部分,首次编码时分别对两部分进行编码,后续修改仅对独立编码部分进行编码;2)在每次修改源码后,需要重新编码,仅需对有修改的部分进行编码;3)在保证平行签名唯一的基础上,配置主程序部分和独立编码部分公共变量及其对应位置的签名,配置非编码部分到编码部分输入变量及其签名,配置编码部分到非编码部分输出变量及其签名,配置用于数值计算的汇编宏代码。与现有技术相比,本发明专利技术在保持较高安全性的基础上,增加了编码的灵活性,同时提高了冗余码的可用性和运行效率。

【技术实现步骤摘要】

本专利技术涉及一种铁路信号系统的安全编码方法,尤其是涉及。
技术介绍
铁路信号系统是列车能够安全运行的重要基础设备,设计高安全性的铁路信号系统的重要性不言而喻,冗余编码技术就是提高系统安全性常用的一种技术,该技术能够被用在包括列车自动保护系统(ATP)和列车自动监控系统(ATS)等多种安全相关的铁路信号系统的子系统中。目前的安全编码技术,冗余代码中所有的变量由数值域、签名、时间戳和校验域组成,四者满足一定的关系,校验域可以通过数值域、签名和时间戳计算获得,也可以通过数值域、校验域和时间戳反算出签名。系统在运行过程中的某个时刻,可以将变量的数值域和校验域发送给第三方工具或者模块进行签名正确性检查,以此判断系统在运行过程中是否出现寻址错误、硬件失效等故障(随机失效)。如果系统中的变量在同一时间的签名不唯一,就会导致系统的故障可能检测不出来,无法达到预期的错误不可检出率。现有的编码方法,为了保证冗余代码具有较高的安全性,牺牲了编码软件的可用性和可扩展性,如为了保证签名预先计算而将编码顺序固定,编码过程耗时较长,每次源码做出小的改动均需要整体重新编码;同时也使得冗余代码的效率不够高,冗余代码运行过程中错误难以定位,适用的架构和系统单一等等。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种安全性高、错误不可检出率低且编码顺序灵活,简化编码过程,多样性高,可用性强的基于平行签名唯一性的多维度的冗余编码方法。本专利技术的目的可以通过以下技术方案来实现:,其特征在于,包括以下步骤:I)将源码分为主程序部分和独立编码部分,首次编码时分别对两部分进行编码,后续修改仅对独立编码部分进行编码;2)在每次修改源码后,需要重新编码,仅需对有修改的部分进行编码;3)在保证平行签名唯一的基础上,配置主程序部分和独立编码部分公共变量及其对应位置的签名,配置非编码部分到编码部分输入变量及其签名,配置编码部分到非编码部分输出变量及其签名,配置用于数值计算的汇编宏代码。所述的首次编码时分别对两部分进行编码具体为:编码过程中基于公共变量配置文件、输入输出变量配置文件、汇编宏配置文件和两套签名表,对主程序部分和独立编码部分进行平行编码,编码时公共变量、输入变量和输出变量按照配置文件中签名以及相应的规则进行编码,所有变量分配和计算签名后均会对签名进行唯一性检查,并调整有冲突的签名,直到所有被检查的变量签名唯一。所述的签名一致性检查过程如下:I)遇到变量声明或定义时,从签名表中为变量分配签名;若遇到数值计算,则计算数值变量的签名;2)将所分配或计算的签名与签名表中已分配的签名以及当前保存变量签名的列表中的签名进行一致性检查;3)如果发生冲突,则重新分配签名;4)重复2),3)步骤,直到分配的签名不与已有签名冲突;5)根据分配的签名和变量数值域计算变量校验域。对于主程序部分和独立编码部分进行平行编码时,分别配置两套完全不同的签名表,同时两套签名表中的签名也均与所有配置文件中分配的签名不一致,保证了主程序部分和独立编码部分除公共变量,不会出现相同的签名分配。对主程序部分内部的签名唯一性通过以下方式保证:编码过程中会对每个变量的最新签名和其他已保存的变量签名以及所有配置文件中已分配的签名进行冲突检测,若检测到冲突,则为变量重新分配签名,直到没有冲突为止;对独立编码部分内部签名的唯一性通过以下方式保证:变量的签名分配和调整的签名都来自独立编码部分的签名表,签名表中使用过的签名不会重复使用。对于主程序部分与独立编码公共变量的平行签名唯一性通过以下方式保证:对主程序部分进行编码,若遇到独立编码部分的函数调用,在该函数调用的冗余代码之前调整其中的公共全局变量的签名为预先配置的入口签名,在函数调用之后,调整其中的全局变量的签名为预先配置的出口签名;对独立编码部分的函数进行编码时,如果遇到与主程序部分的公共全局变量,函数内与主程序部分公共全局变量的初始签名按照预先配置的入口签名进行编码。编码部分与非编码部分的平行签名唯一性通过以下方式来保证:遇到输入变量的定义或声明,按照预先配置的签名进行编码;编码结束时,将输出变量的签名调整为预先配置的输出签名;同时,在主程序和独立编码部分编码过程中,每次分配和计算新的签名,都会与配置的输入变量和输出变量的签名进行唯一性检查,保证输入变量和输出变量的签名与编码部分的签名唯一。整个冗余代码的签名唯一性通过以下方式来保证:主程序部分编码结束后,会将保存的所有变量各个时刻的签名与独立编码部分的签名表进行冲突检测,若检测到冲突,则对主程序部分的签名表顺序进行一定的调整,然后重新对主程序部分进行编码,直至无冲突出现,以保证不会与独立编码部分的签名出现冲突。该方法配置从非编码部分到编码部分的输入变量,根据配置信息生成校验变量输入到编码部分相关信息的接口函数;可配置编码部分到非编码部分的输出变量,生成计算变量输出到非编码部分相关信息的函数接口。该方法配置冗余编码中用于数值计算的汇编宏,包括适用于X86架构的汇编宏和PPC架构的汇编宏;将冗余码中数值计算相关的操作通过调用预先配置的汇编宏实现,可大大提高冗余代码的执行效率。与现有技术相比,本专利技术基于平行签名平行唯一性进行多维度的安全冗余编码,在编码过程中会对变量进行平行签名唯一性检查,同时结合各种签名调整策略保证整体的平行签名唯一性,在保持系统高安全性的基础上通过多维度的各种可配置的选项使得编码具有更多的灵活性和冗余代码具有更高的可用性和执行效率。【附图说明】图1为本专利技术的原理示意图;图2为本专利技术的编码过程签名一致性检查过程示意图;图3为本专利技术的独立编码相关的变量签名处理过程示意图;图4为本专利技术输出的冗余码的应用场景。【具体实施方式】下面结合附图和具体实施例对本专利技术进行详细说明。本实施例以本专利技术技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围不限于下述的实施例。实施例如图1所示,,将源码分为主程序部分和独立编码部分,首次编码时分别对两部分进行编码,后续在不同的项目中,仅对独立编码部分进行编码。在每次修改源码后,需要重新编码,仅需对有修改的部分进行编码。在保证平行签名唯一的基础上,配置主程序部分和独立编码部分公共变量及其对应位置的签名,配置非编码部分到编码部分输入变量及其签名,配置编码部分到非编码部分输出变量及其签名,配置用于数值计算的汇编宏代码。编码过程中基于公共变量配置文件、输入输出变量配置文件、汇编宏配置文件和两套签名表,对主程序部分和独立编码部分进行平行编码,编码时公共变量、输入变量和输出变量按照配置文件中签名以及相应的规则进行编码,所有变量分配和计算签名后均会对签名进行唯一性检查,并调整有冲突的签名,直到所有被检查的变量签名唯一。编码结束时也会进行整体的平行签名唯一性检查,只有当编码过程中没有出现错误且整体签名唯一性检查通过时,冗余代码才能输出,以此来保证SIL4所述的错误不可检出率。所述的多维度冗余编码具体是指:I)编码后的变量分为值域和校验域,校验域由变量的值域,签名和时间戳,按照预先定义的算法原理计算得到。2)可以对主程序当前第1页1 2 本文档来自技高网...
一种基于平行签名唯一性的多维度的冗余编码方法

【技术保护点】
一种基于平行签名唯一性的多维度的冗余编码方法,其特征在于,包括以下步骤:1)将源码分为主程序部分和独立编码部分,首次编码时分别对两部分进行编码,后续修改仅对独立编码部分进行编码;2)在每次修改源码后,需要重新编码,仅需对有修改的部分进行编码;3)在保证平行签名唯一的基础上,配置主程序部分和独立编码部分公共变量及其对应位置的签名,配置非编码部分到编码部分输入变量及其签名,配置编码部分到非编码部分输出变量及其签名,配置用于数值计算的汇编宏代码。

【技术特征摘要】

【专利技术属性】
技术研发人员:罗娟汪明新周庭梁张磊涂维纳夏伟
申请(专利权)人:卡斯柯信号有限公司
类型:发明
国别省市:上海;31

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

1