CN104932886A - 一种基于平行签名唯一性的多维度的冗余编码方法 - Google Patents
一种基于平行签名唯一性的多维度的冗余编码方法 Download PDFInfo
- Publication number
- CN104932886A CN104932886A CN201510323289.5A CN201510323289A CN104932886A CN 104932886 A CN104932886 A CN 104932886A CN 201510323289 A CN201510323289 A CN 201510323289A CN 104932886 A CN104932886 A CN 104932886A
- Authority
- CN
- China
- Prior art keywords
- signature
- variable
- coding
- uniqueness
- main program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本发明涉及一种基于平行签名唯一性的多维度的冗余编码方法,包括以下步骤:1)将源码分为主程序部分和独立编码部分,首次编码时分别对两部分进行编码,后续修改仅对独立编码部分进行编码;2)在每次修改源码后,需要重新编码,仅需对有修改的部分进行编码;3)在保证平行签名唯一的基础上,配置主程序部分和独立编码部分公共变量及其对应位置的签名,配置非编码部分到编码部分输入变量及其签名,配置编码部分到非编码部分输出变量及其签名,配置用于数值计算的汇编宏代码。与现有技术相比,本发明在保持较高安全性的基础上,增加了编码的灵活性,同时提高了冗余码的可用性和运行效率。
Description
技术领域
本发明涉及一种铁路信号系统的安全编码方法,尤其是涉及一种基于平行签名唯一性的多维度的冗余编码方法。
背景技术
铁路信号系统是列车能够安全运行的重要基础设备,设计高安全性的铁路信号系统的重要性不言而喻,冗余编码技术就是提高系统安全性常用的一种技术,该技术能够被用在包括列车自动保护系统(ATP)和列车自动监控系统(ATS)等多种安全相关的铁路信号系统的子系统中。
目前的安全编码技术,冗余代码中所有的变量由数值域、签名、时间戳和校验域组成,四者满足一定的关系,校验域可以通过数值域、签名和时间戳计算获得,也可以通过数值域、校验域和时间戳反算出签名。系统在运行过程中的某个时刻,可以将变量的数值域和校验域发送给第三方工具或者模块进行签名正确性检查,以此判断系统在运行过程中是否出现寻址错误、硬件失效等故障(随机失效)。如果系统中的变量在同一时间的签名不唯一,就会导致系统的故障可能检测不出来,无法达到预期的错误不可检出率。
现有的编码方法,为了保证冗余代码具有较高的安全性,牺牲了编码软件的可用性和可扩展性,如为了保证签名预先计算而将编码顺序固定,编码过程耗时较长,每次源码做出小的改动均需要整体重新编码;同时也使得冗余代码的效率不够高,冗余代码运行过程中错误难以定位,适用的架构和系统单一等等。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种安全性高、错误不可检出率低且编码顺序灵活,简化编码过程,多样性高,可用性强的基于平行签名唯一性的多维度的冗余编码方法。
本发明的目的可以通过以下技术方案来实现:
一种基于平行签名唯一性的多维度的冗余编码方法,其特征在于,包括以下步骤:
1)将源码分为主程序部分和独立编码部分,首次编码时分别对两部分进行编码,后续修改仅对独立编码部分进行编码;
2)在每次修改源码后,需要重新编码,仅需对有修改的部分进行编码;
3)在保证平行签名唯一的基础上,配置主程序部分和独立编码部分公共变量及其对应位置的签名,配置非编码部分到编码部分输入变量及其签名,配置编码部分到非编码部分输出变量及其签名,配置用于数值计算的汇编宏代码。
所述的首次编码时分别对两部分进行编码具体为:
编码过程中基于公共变量配置文件、输入输出变量配置文件、汇编宏配置文件和两套签名表,对主程序部分和独立编码部分进行平行编码,编码时公共变量、输入变量和输出变量按照配置文件中签名以及相应的规则进行编码,所有变量分配和计算签名后均会对签名进行唯一性检查,并调整有冲突的签名,直到所有被检查的变量签名唯一。
所述的签名一致性检查过程如下:
1)遇到变量声明或定义时,从签名表中为变量分配签名;若遇到数值计算,则计算数值变量的签名;
2)将所分配或计算的签名与签名表中已分配的签名以及当前保存变量签名的列表中的签名进行一致性检查;
3)如果发生冲突,则重新分配签名;
4)重复2),3)步骤,直到分配的签名不与已有签名冲突;
5)根据分配的签名和变量数值域计算变量校验域。
对于主程序部分和独立编码部分进行平行编码时,分别配置两套完全不同的签名表,同时两套签名表中的签名也均与所有配置文件中分配的签名不一致,保证了主程序部分和独立编码部分除公共变量,不会出现相同的签名分配。
对主程序部分内部的签名唯一性通过以下方式保证:编码过程中会对每个变量的最新签名和其他已保存的变量签名以及所有配置文件中已分配的签名进行冲突检测,若检测到冲突,则为变量重新分配签名,直到没有冲突为止;
对独立编码部分内部签名的唯一性通过以下方式保证:变量的签名分配和调整的签名都来自独立编码部分的签名表,签名表中使用过的签名不会重复使用。
对于主程序部分与独立编码公共变量的平行签名唯一性通过以下方式保证:对主程序部分进行编码,若遇到独立编码部分的函数调用,在该函数调用的冗余代码之前调整其中的公共全局变量的签名为预先配置的入口签名,在函数调用之后,调整其中的全局变量的签名为预先配置的出口签名;对独立编码部分的函数进行编码时,如果遇到与主程序部分的公共全局变量,函数内与主程序部分公共全局变量的初始签名按照预先配置的入口签名进行编码。
编码部分与非编码部分的平行签名唯一性通过以下方式来保证:遇到输入变量的定义或声明,按照预先配置的签名进行编码;编码结束时,将输出变量的签名调整为预先配置的输出签名;同时,在主程序和独立编码部分编码过程中,每次分配和计算新的签名,都会与配置的输入变量和输出变量的签名进行唯一性检查,保证输入变量和输出变量的签名与编码部分的签名唯一。
整个冗余代码的签名唯一性通过以下方式来保证:主程序部分编码结束后,会将保存的所有变量各个时刻的签名与独立编码部分的签名表进行冲突检测,若检测到冲突,则对主程序部分的签名表顺序进行一定的调整,然后重新对主程序部分进行编码,直至无冲突出现,以保证不会与独立编码部分的签名出现冲突。
该方法配置从非编码部分到编码部分的输入变量,根据配置信息生成校验变量输入到编码部分相关信息的接口函数;可配置编码部分到非编码部分的输出变量,生成计算变量输出到非编码部分相关信息的函数接口。
该方法配置冗余编码中用于数值计算的汇编宏,包括适用于X86架构的汇编宏和PPC架构的汇编宏;将冗余码中数值计算相关的操作通过调用预先配置的汇编宏实现,可大大提高冗余代码的执行效率。
与现有技术相比,本发明基于平行签名平行唯一性进行多维度的安全冗余编码,在编码过程中会对变量进行平行签名唯一性检查,同时结合各种签名调整策略保证整体的平行签名唯一性,在保持系统高安全性的基础上通过多维度的各种可配置的选项使得编码具有更多的灵活性和冗余代码具有更高的可用性和执行效率。
附图说明
图1为本发明的原理示意图;
图2为本发明的编码过程签名一致性检查过程示意图;
图3为本发明的独立编码相关的变量签名处理过程示意图;
图4为本发明输出的冗余码的应用场景。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例
如图1所示,一种基于平行签名唯一性的多维度的冗余编码方法,将源码分为主程序部分和独立编码部分,首次编码时分别对两部分进行编码,后续在不同的项目中,仅对独立编码部分进行编码。在每次修改源码后,需要重新编码,仅需对有修改的部分进行编码。在保证平行签名唯一的基础上,配置主程序部分和独立编码部分公共变量及其对应位置的签名,配置非编码部分到编码部分输入变量及其签名,配置编码部分到非编码部分输出变量及其签名,配置用于数值计算的汇编宏代码。
编码过程中基于公共变量配置文件、输入输出变量配置文件、汇编宏配置文件和两套签名表,对主程序部分和独立编码部分进行平行编码,编码时公共变量、输入变量和输出变量按照配置文件中签名以及相应的规则进行编码,所有变量分配和计算签名后均会对签名进行唯一性检查,并调整有冲突的签名,直到所有被检查的变量签名唯一。编码结束时也会进行整体的平行签名唯一性检查,只有当编码过程中没有出现错误且整体签名唯一性检查通过时,冗余代码才能输出,以此来保证SIL4所述的错误不可检出率。
所述的多维度冗余编码具体是指:
1)编码后的变量分为值域和校验域,校验域由变量的值域,签名和时间戳,按照预先定义的算法原理计算得到。
2)可以对主程序部分和独立编码部分进行平行编码,两部分编码可以并行进行,互不影响。
3)可以通过配置指定最终冗余码的形式,支持生成X86架构和PPC架构下的冗余码,使得冗余码能够满足不同系统的代码形式,同时配置相应架构下的用于数值计算的汇编宏代码,提高冗余码的执行效率。
4)可以通过配置生成编码部分到非编码部分的输入变量接口函数和非编码部分到编码部分的接口函数。
签名一致性检查过程如图2所示
1)遇到变量声明或定义时,从签名表中为变量分配签名;若遇到数值计算,则计算左值变量的签名
2)将所分配(或计算)的签名与签名表中已分配的签名以及当前保存变量签名的列表中的签名进行一致性检查
3)如果发生冲突,则重新分配签名
4)重复2),3)步骤,直到分配的签名不与已有签名冲突
5)根据分配的签名和变量数值域计算变量校验域
独立编码相关的变量签名处理过程如图3所示
1)遇到函数调用,判断是否定义在独立编码部分
2)如果定义在主程序部分,则输出函数调用的冗余代码形式后结束
3)如果定义在独立编码部分,则读取配置文件,判断是否与主程序部分存在公共的全局变量
4)如果不存在公共全局变量,则输出函数调用的冗余代码形式后结束
5)如果存在公共全局变量,则调整公共变量的签名为配置的入口签名
6)输出函数调用的冗余代码形式
7)调整公共变量的签名为配置的出口签名
8)结束
冗余代码的应用场景如图4所示
主程序部分的冗余代码可以接收非编码部分的输入变量,调用独立编码部分定义的函数,每个周期结束后将需要进行签名正确性检查的变量输出到签名正确性检查模块。
本发明在保持较高安全性的基础上,增加了编码的灵活性,同时提高了冗余码的可用性和运行效率,本方法能够保持已有编码方法的高安全性,保证系统达到SIL4标准中所要求达到的错误不可检出率。本方法主要适用的领域为铁路信号系统,除此以外,也适用于各种安全相关的其他领域的系统。本方法尤其适用于列车自动保护ATP系统和自动列车监控ATS系统的安全计算。本方法可以进行各种灵活配置,在保持系统高安全性的基础上,能够提高编码的灵活性和编码效率,同时能够提高编码后的冗余代码的可用性和执行效率。
Claims (10)
1.一种基于平行签名唯一性的多维度的冗余编码方法,其特征在于,包括以下步骤:
1)将源码分为主程序部分和独立编码部分,首次编码时分别对两部分进行编码,后续修改仅对独立编码部分进行编码;
2)在每次修改源码后,需要重新编码,仅需对有修改的部分进行编码;
3)在保证平行签名唯一的基础上,配置主程序部分和独立编码部分公共变量及其对应位置的签名,配置非编码部分到编码部分输入变量及其签名,配置编码部分到非编码部分输出变量及其签名,配置用于数值计算的汇编宏代码。
2.根据权利要求1所述的一种基于平行签名唯一性的多维度的冗余编码方法,其特征在于,所述的首次编码时分别对两部分进行编码具体为:
编码过程中基于公共变量配置文件、输入输出变量配置文件、汇编宏配置文件和两套签名表,对主程序部分和独立编码部分进行平行编码,编码时公共变量、输入变量和输出变量按照配置文件中签名以及相应的规则进行编码,所有变量分配和计算签名后均会对签名进行唯一性检查,并调整有冲突的签名,直到所有被检查的变量签名唯一。
3.根据权利要求2所述的一种基于平行签名唯一性的多维度的冗余编码方法,其特征在于,所述的签名一致性检查过程如下:
1)遇到变量声明或定义时,从签名表中为变量分配签名;若遇到数值计算,则计算数值变量的签名;
2)将所分配或计算的签名与签名表中已分配的签名以及当前保存变量签名的列表中的签名进行一致性检查;
3)如果发生冲突,则重新分配签名;
4)重复2),3)步骤,直到分配的签名不与已有签名冲突;
5)根据分配的签名和变量数值域计算变量校验域。
4.根据权利要求2所述的一种基于平行签名唯一性的多维度的冗余编码方法,其特征在于,对于主程序部分和独立编码部分进行平行编码时,分别配置两套完全不同的签名表,同时两套签名表中的签名也均与所有配置文件中分配的签名不一致,保证了主程序部分和独立编码部分除公共变量,不会出现相同的签名分配。
5.根据权利要求2所述的一种基于平行签名唯一性的多维度的冗余编码方法,其特征在于,
对主程序部分内部的签名唯一性通过以下方式保证:编码过程中会对每个变量的最新签名和其他已保存的变量签名以及所有配置文件中已分配的签名进行冲突检测,若检测到冲突,则为变量重新分配签名,直到没有冲突为止;
对独立编码部分内部签名的唯一性通过以下方式保证:变量的签名分配和调整的签名都来自独立编码部分的签名表,签名表中使用过的签名不会重复使用。
6.根据权利要求2所述的一种基于平行签名唯一性的多维度的冗余编码方法,其特征在于,对于主程序部分与独立编码公共变量的平行签名唯一性通过以下方式保证:对主程序部分进行编码,若遇到独立编码部分的函数调用,在该函数调用的冗余代码之前调整其中的公共全局变量的签名为预先配置的入口签名,在函数调用之后,调整其中的全局变量的签名为预先配置的出口签名;对独立编码部分的函数进行编码时,如果遇到与主程序部分的公共全局变量,函数内与主程序部分公共全局变量的初始签名按照预先配置的入口签名进行编码。
7.根据权利要求2所述的一种基于平行签名唯一性的多维度的冗余编码方法,其特征在于,编码部分与非编码部分的平行签名唯一性通过以下方式来保证:遇到输入变量的定义或声明,按照预先配置的签名进行编码;编码结束时,将输出变量的签名调整为预先配置的输出签名;同时,在主程序和独立编码部分编码过程中,每次分配和计算新的签名,都会与配置的输入变量和输出变量的签名进行唯一性检查,保证输入变量和输出变量的签名与编码部分的签名唯一。
8.根据权利要求2所述的一种基于平行签名唯一性的多维度的冗余编码方法,其特征在于,整个冗余代码的签名唯一性通过以下方式来保证:主程序部分编码结束后,会将保存的所有变量各个时刻的签名与独立编码部分的签名表进行冲突检测,若检测到冲突,则对主程序部分的签名表顺序进行一定的调整,然后重新对主程序部分进行编码,直至无冲突出现,以保证不会与独立编码部分的签名出现冲突。
9.根据权利要求2所述的一种基于平行签名唯一性的多维度的冗余编码方法,其特征在于,该方法配置从非编码部分到编码部分的输入变量,根据配置信息生成校验变量输入到编码部分相关信息的接口函数;可配置编码部分到非编码部分的输出变量,生成计算变量输出到非编码部分相关信息的函数接口。
10.根据权利要求2所述的一种基于平行签名唯一性的多维度的冗余编码方法,其特征在于,该方法配置冗余编码中用于数值计算的汇编宏,包括适用于X86架构的汇编宏和PPC架构的汇编宏;将冗余码中数值计算相关的操作通过调用预先配置的汇编宏实现,可大大提高冗余代码的执行效率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510323289.5A CN104932886B (zh) | 2015-06-12 | 2015-06-12 | 一种基于平行签名唯一性的多维度的冗余编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510323289.5A CN104932886B (zh) | 2015-06-12 | 2015-06-12 | 一种基于平行签名唯一性的多维度的冗余编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104932886A true CN104932886A (zh) | 2015-09-23 |
CN104932886B CN104932886B (zh) | 2018-01-19 |
Family
ID=54120062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510323289.5A Active CN104932886B (zh) | 2015-06-12 | 2015-06-12 | 一种基于平行签名唯一性的多维度的冗余编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104932886B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109472138A (zh) * | 2017-12-01 | 2019-03-15 | 北京安天网络安全技术有限公司 | 一种检测snort规则冲突的方法、装置和存储介质 |
CN111010258A (zh) * | 2019-12-23 | 2020-04-14 | 卡斯柯信号有限公司 | 一种基于编码的计算机联锁系统通信方法 |
CN112965722A (zh) * | 2021-03-03 | 2021-06-15 | 深圳华大九天科技有限公司 | 一种Verilog-A模型的优化方法、电子设备及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101764619A (zh) * | 2009-12-15 | 2010-06-30 | 卡斯柯信号有限公司 | 一种用于车载atp系统的安全冗余编码处理方法 |
CN103150227A (zh) * | 2013-02-04 | 2013-06-12 | 卡斯柯信号有限公司 | 基于冗余编码的变量签名唯一性安全处理方法 |
-
2015
- 2015-06-12 CN CN201510323289.5A patent/CN104932886B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101764619A (zh) * | 2009-12-15 | 2010-06-30 | 卡斯柯信号有限公司 | 一种用于车载atp系统的安全冗余编码处理方法 |
CN103150227A (zh) * | 2013-02-04 | 2013-06-12 | 卡斯柯信号有限公司 | 基于冗余编码的变量签名唯一性安全处理方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109472138A (zh) * | 2017-12-01 | 2019-03-15 | 北京安天网络安全技术有限公司 | 一种检测snort规则冲突的方法、装置和存储介质 |
CN111010258A (zh) * | 2019-12-23 | 2020-04-14 | 卡斯柯信号有限公司 | 一种基于编码的计算机联锁系统通信方法 |
CN111010258B (zh) * | 2019-12-23 | 2022-01-28 | 卡斯柯信号有限公司 | 一种基于编码的计算机联锁系统通信方法 |
CN112965722A (zh) * | 2021-03-03 | 2021-06-15 | 深圳华大九天科技有限公司 | 一种Verilog-A模型的优化方法、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104932886B (zh) | 2018-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9168936B2 (en) | System and method of transforming movement authority limits | |
CN104932886A (zh) | 一种基于平行签名唯一性的多维度的冗余编码方法 | |
CN101376393A (zh) | 铁路信号系统中故障容错的安全处理器 | |
US10229036B2 (en) | Software update of non-critical components in dual safety-critical distributed systems | |
US20210349443A1 (en) | Method and apparatus for the computer-aided creation and execution of a control function | |
MX2015010726A (es) | Metodo para realizar pruebas a multiples dispositivos de proteccion distribuidos espacialmente de una red de suministro de energia y sistema de prueba correspondiente. | |
ITUB20154590A1 (it) | Procedimento di esecuzione di programmi in un sistema elettronico per applicazioni in sicurezza funzionale comprendente una pluralita' di processori, relativo sistema e prodotto informatico | |
US10053079B2 (en) | Redundant signal processing of a safety-relevant application | |
CN107766188B (zh) | 列车控制系统中的内存检测方法及装置 | |
CN103150227B (zh) | 基于冗余编码的变量签名唯一性安全处理方法 | |
JP7206410B2 (ja) | 安全システムおよび安全システムの作動方法 | |
CN103220100B (zh) | 一种基于编码的输出表决方法 | |
US20160080376A1 (en) | Method and device for checking an identifier | |
EP2533154A3 (en) | Failure detection and mitigation in logic circuits | |
CN107430539B (zh) | 安全相关的计算机系统 | |
CN101764619B (zh) | 一种用于车载atp系统的安全冗余编码处理方法 | |
CN103144657B (zh) | 带校验板的通用轨旁安全平台主处理子系统 | |
Rástočný et al. | Safety of signalling systems-opinions and reality | |
Hristov et al. | Safety Critical Computer Systems: failure Independence and software diversity effects on Reliability of dual channel structures | |
KR100835383B1 (ko) | 시간여분을 이용한 철도신호용 이중계구조 결함허용 제어기 | |
WO2021157113A1 (ja) | バスインタフェース装置 | |
CN201576184U (zh) | 一种用于车载atp系统的安全冗余编码处理装置 | |
Ahangari et al. | Analysis of design parameters in SIL-4 safety-critical computer | |
Zhao et al. | A functional safety analysis approach for analyzing CBTC system | |
Xie et al. | Formal verification of communication based train control system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |