一种安全感知的车载CANFD网络设计空间搜索方法与流程

文档序号:12789743阅读:来源:国知局

技术特征:

1.一种安全感知的车载CAN FD网络设计空间搜索方法,其特征在于包括如下步骤:

步骤1,依据汽车电子功能的安全需求对信号进行分组,安全关键功能涉及的信号为一组,即安全关键信号组,非安全关键功能涉及的信号为另外一组,即非安全关键信号组;

步骤2,采用对称加密算法对安全关键的CAN FD消息进行安全防护;

步骤3,将CAN FD网络设计涉及的设计空间搜索问题抽象成整数线性规划问题,将安全性、实时性需求、信号打包限制抽象表示为整数线性规划问题中的限制条件,将带宽资源利用率最小化抽象表示为整数线性规划问题的优化目标;

步骤4,利用整数线性规划问题求解工具对上述问题进行求解,得到信号打包的消息集,以及所有消息的属性,从而完成CAN FD网络的设计。

2.如权利要求1所述的一种安全感知的CAN FD网络设计空间搜索方法,其特征在于:所述步骤1中,定义二进制变量s_sec(k,i)来表示ECUk中包含的信号sk,i是否属于安全关键功能,如果是,s_sec(k,i)=1;否则,s_sec(k,i)=0;其中,k为ECU表示符号的下标,i为信号表示符号的下标,j为消息表示符号的下标。

3.如权利要求1所述的一种安全感知的CAN FD网络设计空间搜索方法,其特征在于所述步骤2的详细内容是:消息的通信双方之间共享一个公共的密匙,消息发送方利用该密匙和消息的内容产生一个消息认证码MACs,MACs被添加到消息中与消息一同被传输到消息接收方;接收方利用密匙和接收到的消息内容再生成另一个消息认证码MACd,通过对比MACs和MACd来验证消息发送方的身份,以及消息的内容是否被篡改。

4.如权利要求1所述的一种安全感知的CAN FD网络设计空间搜索方法,其特征在于:所述步骤2中,还在消息中加入一个计数器,该计数器用于标识当前发送的消息实例,接收方通过检查接收到的消息中的计数器的当前值是否更新来判断该消息实例是否是发送方发送过来的最新消息,而不是其他攻击者转发过来的消息。

5.如权利要求1所述的一种安全感知的CAN FD网络设计空间搜索方法,其特征在于:所述步骤3中,优化目标表示为:

其中,MNk表示ECUk中的信号集Sk打包得到的消息个数,EN表示系统中ECU的个数,U(k,j)表示消息mk,j的带宽利用率;

限制条件包括:

(1)每个信号仅被打包一个消息中:

<mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <msub> <mi>MN</mi> <mi>k</mi> </msub> </mrow> </munderover> <mi>a</mi> <mi>s</mi> <mi>s</mi> <mi>i</mi> <mi>g</mi> <mi>n</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>,</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <mn>1</mn> </mrow>

其中二进制变量assign(i,j,k)表示信号sk,i是否被打包到消息mk,j之中;

(2)消息需满足实时性方面的要求,即消息mk,j的最差反应时间m_r(k,j)必须小于等于其最终时限m_deadline(k,j):

m_r(k,j)≤m_deadline(k,j)

(3)消息满足安全性方面的要求,即需在安全关键消息中加入消息认证码和计数器来分别避免伪装攻击和重继攻击,消息mk,j的安全关键属性根据如下公式进行计算:

其中m_sec(k,j)是一个二进制变量,用来表示ECUk中的信号打包得到的消息mk,j是否是安全关键消息,如果是,m_sec(k,j)=1,否则,m_sec(k,j)=0;当m_sec(k,j)=1时,需在消息中加入消息认证码和计数器;

(4)消息mk,j的负载大小m_payload(k,j)不能超过CAN FD协议规定的最大值64,单位:字节:

m_payload(k,j)≤64

m_payload(k,j)的计算方法如下:

<mrow> <mi>m</mi> <mo>_</mo> <mi>p</mi> <mi>a</mi> <mi>y</mi> <mi>l</mi> <mi>o</mi> <mi>a</mi> <mi>d</mi> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>,</mo> <mi>j</mi> </mrow> <mo>)</mo> </mrow> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mi>m</mi> <mo>_</mo> <mi>s</mi> <mi>i</mi> <mi>z</mi> <mi>e</mi> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>,</mo> <mi>j</mi> </mrow> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mi>i</mi> <mi>f</mi> <mn>0</mn> <mo>&lt;</mo> <mi>m</mi> <mo>_</mo> <mi>s</mi> <mi>i</mi> <mi>z</mi> <mi>e</mi> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>,</mo> <mi>j</mi> </mrow> <mo>)</mo> </mrow> <mo>&le;</mo> <mn>8</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mn>12</mn> </mtd> <mtd> <mrow> <mi>i</mi> <mi>f</mi> <mn>8</mn> <mo>&lt;</mo> <mi>m</mi> <mo>_</mo> <mi>s</mi> <mi>i</mi> <mi>z</mi> <mi>e</mi> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>,</mo> <mi>j</mi> </mrow> <mo>)</mo> </mrow> <mo>&le;</mo> <mn>12</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mn>16</mn> </mtd> <mtd> <mrow> <mi>i</mi> <mi>f</mi> <mn>12</mn> <mo>&lt;</mo> <mi>m</mi> <mo>_</mo> <mi>s</mi> <mi>i</mi> <mi>z</mi> <mi>e</mi> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>,</mo> <mi>j</mi> </mrow> <mo>)</mo> </mrow> <mo>&le;</mo> <mn>16</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mn>20</mn> </mtd> <mtd> <mrow> <mi>i</mi> <mi>f</mi> <mn>16</mn> <mo>&lt;</mo> <mi>m</mi> <mo>_</mo> <mi>s</mi> <mi>i</mi> <mi>z</mi> <mi>e</mi> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>,</mo> <mi>j</mi> </mrow> <mo>)</mo> </mrow> <mo>&le;</mo> <mn>20</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mn>24</mn> </mtd> <mtd> <mrow> <mi>i</mi> <mi>f</mi> <mn>20</mn> <mo>&lt;</mo> <mi>m</mi> <mo>_</mo> <mi>s</mi> <mi>i</mi> <mi>z</mi> <mi>e</mi> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>,</mo> <mi>j</mi> </mrow> <mo>)</mo> </mrow> <mo>&le;</mo> <mn>24</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mn>32</mn> </mtd> <mtd> <mrow> <mi>i</mi> <mi>f</mi> <mn>24</mn> <mo>&lt;</mo> <mi>m</mi> <mo>_</mo> <mi>s</mi> <mi>i</mi> <mi>z</mi> <mi>e</mi> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>,</mo> <mi>j</mi> </mrow> <mo>)</mo> </mrow> <mo>&le;</mo> <mn>32</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mn>48</mn> </mtd> <mtd> <mrow> <mi>i</mi> <mi>f</mi> <mn>32</mn> <mo>&lt;</mo> <mi>m</mi> <mo>_</mo> <mi>s</mi> <mi>i</mi> <mi>z</mi> <mi>e</mi> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>,</mo> <mi>j</mi> </mrow> <mo>)</mo> </mrow> <mo>&le;</mo> <mn>48</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mn>64</mn> </mtd> <mtd> <mrow> <mi>i</mi> <mi>f</mi> <mn>48</mn> <mo>&lt;</mo> <mi>m</mi> <mo>_</mo> <mi>s</mi> <mi>i</mi> <mi>z</mi> <mi>e</mi> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>,</mo> <mi>j</mi> </mrow> <mo>)</mo> </mrow> <mo>&le;</mo> <mn>64</mn> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow>

其中,m_size(k,j)表示消息的大小。

6.如权利要求1所述的一种安全感知的CAN FD网络设计空间搜索方法,其特征在于所述步骤4的详细内容是:ECUk中的信号集Sk将被打包成消息集Mk,Mk中的消息mk,j的周期m_period(k,j)、大小m_size(k,j)和最终截止时限m_deadline(k,j)的计算公式如下:

m_period(k,j)={s_period(k,i)sk,i∈mk,j}

<mrow> <mi>m</mi> <mo>_</mo> <mi>s</mi> <mi>i</mi> <mi>z</mi> <mi>e</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>=</mo> <mn>4</mn> <mo>&times;</mo> <mi>m</mi> <mo>_</mo> <mi>sec</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>+</mo> <munder> <mo>&Sigma;</mo> <mrow> <msub> <mi>s</mi> <mrow> <mi>k</mi> <mo>,</mo> <mi>i</mi> </mrow> </msub> <mo>&Element;</mo> <msub> <mi>m</mi> <mrow> <mi>k</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> </mrow> </munder> <mi>s</mi> <mo>_</mo> <mi>s</mi> <mi>i</mi> <mi>z</mi> <mi>e</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>,</mo> <mi>i</mi> <mo>)</mo> </mrow> </mrow>

m_deadline(k,j)=m_period(k,j)

其中,s_period(k,i)和s_size(k,i)分别表示信号sk,i的周期和大小,s_period(k,i)、m_deadline(k,j)的单位为毫秒,s_size(k,i)的单位为字节。

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