JP7268562B2 - METHOD AND INFORMATION PROCESSING APPARATUS FOR ESTIMATING MESSAGE FEATURES - Google Patents
METHOD AND INFORMATION PROCESSING APPARATUS FOR ESTIMATING MESSAGE FEATURES Download PDFInfo
- Publication number
- JP7268562B2 JP7268562B2 JP2019178794A JP2019178794A JP7268562B2 JP 7268562 B2 JP7268562 B2 JP 7268562B2 JP 2019178794 A JP2019178794 A JP 2019178794A JP 2019178794 A JP2019178794 A JP 2019178794A JP 7268562 B2 JP7268562 B2 JP 7268562B2
- Authority
- JP
- Japan
- Prior art keywords
- message
- partial area
- value
- variable
- data
- 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.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Description
本発明は、ネットワーク内で送信されるメッセージの特徴を推定する方法および情報処理装置に係わる。 The present invention relates to a method and information processing apparatus for estimating characteristics of messages transmitted within a network.
自動車の車載ネットワークにおいて、CAN(Controller Area Network)と呼ばれるネットワーク技術が使用されることがある。CANを使用するネットワークにおいては、各ノードにECU(electronic control unit)が実装される。 A network technology called CAN (Controller Area Network) may be used in an in-vehicle network of an automobile. In a network using CAN, each node is equipped with an ECU (electronic control unit).
ECUから送信されるメッセージには、識別情報(ID)が付与されている。このメッセージは、ネットワーク内のECUにブロードキャストされる。ここで、各ECUは、自分が取得すべきメッセージのIDを認識している。そして、各ECUは、受信メッセージのIDをチェックすることにより、必要なメッセージを取得する。 Identification information (ID) is attached to the message transmitted from the ECU. This message is broadcast to the ECUs in the network. Here, each ECU recognizes the ID of the message it should acquire. Each ECU then acquires the necessary message by checking the ID of the received message.
上記構成のCANシステムにおいて、悪意ある第3者によりECUが乗っ取られ、そのECUから悪意あるメッセージが出力される攻撃が行われることがある。例えば、CANシステムにおいて使用されるIDが、悪意あるメッセージに付与される。そうすると、そのメッセージを受信したECUは、意図しない処理を実行するおそれがある。よって、ネットワークへの攻撃または不正なアクセスを検知する方法が検討されている。 In the CAN system configured as described above, an ECU may be hijacked by a malicious third party, and an attack may occur in which a malicious message is output from the ECU. For example, an ID used in CAN systems is given to malicious messages. Then, the ECU receiving the message may perform unintended processing. Therefore, methods for detecting attacks or unauthorized access to networks are being studied.
なお、多様で変化し得る攻撃に適応して攻撃フレームを検知し得るセキュリティ装置が提案されている(例えば、特許文献1)。複数の電子制御ユニット(ECU)が通信するネットワークにおいて、ネットワークから受信したフレームが不正か否かを判定する情報処理装置が提案されている(例えば、特許文献2)。車載ネットワークを流れるデータフレームを処理する情報処理方法が提案されている(例えば、特許文献3)。 In addition, a security device has been proposed that can detect attack frames by adapting to various and changing attacks (for example, Patent Document 1). In a network in which a plurality of electronic control units (ECUs) communicate, an information processing apparatus has been proposed that determines whether or not a frame received from the network is invalid (for example, Patent Document 2). An information processing method for processing data frames flowing through an in-vehicle network has been proposed (for example, Patent Document 3).
CANシステムにおいては、メッセージに付与される識別子毎に、送信タイプ(又は、送信パターン)が異なることがある。送信タイプとしては、例えば、下記の3つが想定される。
(1)周期メッセージ
(2)非周期メッセージ
(3)イベント送信付き周期メッセージ
なお、周期メッセージは、あるECUにより一定の周期で送信される。イベント送信付き周期メッセージは、通常は、一定の周期で送信されるが、あるイベントが発生したときには、そのイベントの発生に起因して送信される。非周期メッセージは、周期メッセージまたはイベント送信付き周期メッセージ以外のメッセージである。
In the CAN system, the transmission type (or transmission pattern) may differ for each identifier assigned to the message. For example, the following three transmission types are assumed.
(1) Periodic message (2) Aperiodic message (3) Periodic message with event transmission Note that a periodic message is transmitted at a constant period by an ECU. Periodic messages with event transmission are normally transmitted at regular intervals, but when a certain event occurs, they are transmitted due to the occurrence of that event. Aperiodic messages are messages other than periodic messages or periodic messages with event transmission.
そして、攻撃検知においては、識別子ごとにメッセージの送信タイプが分かっていることが好ましい。加えて、攻撃検知においては、受信フレーム内のどの領域にどのような形式(または、属性)のデータが書き込まれているのかを認識できることが好ましい。 In attack detection, it is preferable to know the message transmission type for each identifier. In addition, in attack detection, it is preferable to be able to recognize what format (or attribute) data is written in which area in the received frame.
しかし、従来の技術では、送信タイプの判定およびフレーム内の各データの形式の判定を効率よく実行できない。一例としては、2つの判定処理が独立して実行される。また、従来の技術では、イベント送信付き周期メッセージを認識した攻撃検知を行っていない。したがって、従来の技術の攻撃検知方法は、改善の余地がある。 However, conventional techniques cannot efficiently determine the type of transmission and the format of each piece of data within a frame. As an example, two determination processes are executed independently. In addition, the conventional technology does not detect attacks by recognizing periodic messages with event transmission. Therefore, the attack detection methods of the prior art have room for improvement.
本発明の1つの側面に係わる目的は、ネットワーク内で送信されるメッセージの特徴を精度よく推定する方法を提供することである。 It is an object according to one aspect of the present invention to provide a method for accurately estimating characteristics of messages transmitted within a network.
本発明の1つの態様の推定方法は、ネットワーク内で送信されるメッセージの特徴を推定する。この推定方法は、各メッセージの受信時刻および各メッセージに格納されているデータが記録された通信ログを参照し、各メッセージについて、当該メッセージの受信時刻と当該メッセージの受信前に受信したメッセージの受信時刻との差分を表す受信間隔を計算し、各メッセージのデータ領域内の位置および長さの組合せで指定される複数の異なる部分領域それぞれに格納されている値を検出することで、各部分領域について、検出される異なる値の数を表すパターン数をそれぞれカウントし、各部分領域に対して設けられている、メッセージの受信間隔が所定の送信周期と対応するか否かを表す第1の変数、および、メッセージの受信間隔が所定のイベントの発生時以外の期間において前記送信周期と対応するか否かを表す第2の変数を、前記受信間隔および当該部分領域に格納されている値に基づいてそれぞれ更新し、前記第1の変数、前記第2の変数、および前記パターン数に基づいて、メッセージの送信タイプおよびメッセージのデータ領域内に格納されているデータの形式を推定する。 An estimation method of one aspect of the present invention estimates characteristics of messages transmitted within a network. This estimation method refers to the communication log that records the reception time of each message and the data stored in each message. By calculating the reception interval that represents the difference from the time and detecting the values stored in each of the multiple different partial areas specified by the combination of the position and length in the data area of each message, each partial area , the number of patterns representing the number of detected different values is counted, and a first variable representing whether or not the message reception interval provided for each partial region corresponds to a predetermined transmission cycle and a second variable representing whether or not the message reception interval corresponds to the transmission period during a period other than when a predetermined event occurs, based on the reception interval and the value stored in the partial area. respectively, and based on said first variable, said second variable and said number of patterns, the transmission type of the message and the format of the data stored in the data area of the message.
上述の態様によれば、ネットワーク内で送信されるメッセージの特徴を精度よく推定できる。 According to the above aspect, it is possible to accurately estimate the characteristics of the message transmitted within the network.
図1は、本発明の実施形態に係わる推定装置が使用されるネットワークの一例を示す。図1に示すネットワーク100は、複数のECU(ECU0~ECUk)を備える。複数のECUは、バスを介して互いに接続されている。そして、この実施例では、複数のECUは、CAN(Controller Area Network)システムを構成する。
FIG. 1 shows an example of a network in which an estimator according to an embodiment of the invention is used. A
各ECUは、バスを介してメッセージを送信できる。このメッセージは、ネットワーク100の全てのECUにブロードキャストされる。このとき、メッセージは、送信元ノードにも到着する。また、各メッセージには、識別子(ID)が付与されている。ここで、各ECUは、自分が取得すべきメッセージのIDを認識している。そして、各ECUは、受信メッセージのIDをチェックすることにより、必要なメッセージを取得する。なお、各ECUは、「通信装置」の一例である。
Each ECU can send messages over the bus. This message is broadcast to all ECUs in
上記ネットワーク100において、複数のECUの中の1つに推定装置が実装される。図1に示す実施例では、ECU0に推定装置が実装されている。この場合、推定装置が実装されるECUは、「情報処理装置」の一例である。また、推定装置は、いずれかのECUに実装されるのではなく、コンピュータ等の情報処理装置に実装されてもよい。さらに、車外のコンピュータにおいて当該技術を利用して特徴を推定し、推定した特徴を用いて、車内のECUまたはコンピュータ、あるいは車外のコンピュータにて攻撃検知を行っても良い。
In the
推定装置は、ネットワーク100内を伝送されるメッセージの送信タイプおよびメッセージ中に含まれるデータの形式(または、属性)を推定する。なお、推定装置は、攻撃検知装置と共に使用されることがある。この場合、攻撃検知装置は、推定装置の推定結果を利用して、受信メッセージが攻撃メッセージであるか否かを判定する。また、推定装置および攻撃検知装置は、同じECU内に実装されてもよい。
The estimator estimates the transmission type of messages transmitted within
ECU1~ECUkは、指定された識別子を含むメッセージを送信する。図1に示す例では、ECU1は、識別情報ID_Aを含むメッセージを送信し、ECU2は、識別情報ID_Bを含むメッセージを送信し、ECU3は、識別情報ID_Cを含むメッセージを送信する。ここで、各メッセージは、ネットワーク100内でブロードキャストされる。よって、推定装置が実装されるECU(ここでは、ECU0)は、すべてのメッセージを受信できる。なお、図1のタイミングチャートは、ECU1~ECU3から送信されるメッセージがECU0に到着する様子を示している。
ECU1-ECUk transmit a message containing the specified identifier. In the example shown in FIG. 1, ECU1 transmits a message including identification information ID_A, ECU2 transmits a message including identification information ID_B, and ECU3 transmits a message including identification information ID_C. Here, each message is broadcast within
ネットワーク100において送信されるメッセージは、識別子ごとに、下記のいずれかに分類される。
(1)周期メッセージ
(2)非周期メッセージ
(3)イベント送信付き周期メッセージ
Messages transmitted in the
(1) Cyclic message (2) Aperiodic message (3) Cyclic message with event transmission
周期メッセージは、あるECUにより一定の周期で送信される。例えば、ID=0x123を含むメッセージは10m秒間隔で送信され、ID=0x456を含むメッセージは20m秒間隔で送信される。 A periodic message is sent by a given ECU at regular intervals. For example, messages with ID=0x123 are sent at 10 ms intervals, and messages with ID=0x456 are sent at 20 ms intervals.
イベント送信付き周期メッセージは、通常は、一定の周期で送信されるが、あるイベントが発生したときには、そのイベントの発生に起因して送信される。図2に示す例では、メッセージは、通常時には、周期T1で送信される。具体的には、メッセージM1~M4は、周期T1で送信されている。但し、所定のイベント(例えば、ユーザの指示またはアラームの検知など)が発生すると、そのイベントの発生に起因してメッセージが送信される。図2では、イベントの発生に起因してメッセージM5が送信されている。このとき、メッセージM4の送信タイミングとメッセージM5の送信タイミングとの差分T2は、周期T1より短くなる。この後、メッセージM6~M7が送信される。このとき、メッセージの送信間隔は、T1に戻る。 Periodic messages with event transmission are normally transmitted at regular intervals, but when a certain event occurs, they are transmitted due to the occurrence of that event. In the example shown in FIG. 2, messages are normally sent with a period T1. Specifically, the messages M1 to M4 are transmitted with a period T1. However, when a predetermined event (eg, user's instruction or detection of an alarm) occurs, the message is transmitted due to the occurrence of the event. In FIG. 2, message M5 is sent due to the occurrence of an event. At this time, the difference T2 between the transmission timing of the message M4 and the transmission timing of the message M5 is shorter than the period T1. After this, messages M6-M7 are sent. At this time, the message transmission interval returns to T1.
なお、イベントの発生に起因して送信されるメッセージの所定の領域には、特定の値が設定される。例えば、図2に示すケース1では、メッセージM1~M4、M6~M7の所定の領域には「1」が設定されているが、メッセージM5の同じ領域には「3」が設定される。或いは、イベントの発生に起因して、メッセージの所定の領域の値が変化する。例えば、ケース2では、メッセージM1~M4の所定の領域には「1」が設定され、メッセージM5以降の同じ領域には「7」が設定されている。
A specific value is set in a predetermined area of the message transmitted due to the occurrence of the event. For example, in
なお、車載ネットワークにおいては、複数のECUは、車両を制御するために使用される。例えば、ID=0x123を含むメッセージは、アクセル開度を表すデータを伝送する。また、ID=0x456を含むメッセージは、ブレーキ踏込み角度を表すデータを伝送する。 In an in-vehicle network, multiple ECUs are used to control the vehicle. For example, a message containing ID=0x123 transmits data representing the accelerator opening. Also, a message including ID=0x456 transmits data representing the brake depression angle.
図3は、メッセージを伝送するフレームのフォーマットの例を示す。標準仕様のフレームは、SOF(Start of Frame)、調停(arbitration)フィールド、コントロールフィールド、データフィールド、CRCフィールド、ACKフィールド、およびEOF(End of Frame)を含む。調停フィールドは、IDおよびRTR(Remote Transmission Request)を含む。IDは、メッセージを識別するための識別情報を表す。コントロールフィールドは、IDE(Identifier Extension)、予約ビット、DLC(Data Length Code)を含む。CRCフィールドは、CRCシーケンスおよびCRCデリミタを含む。ACKフィールドは、ACKスロットおよびACKデリミタを含む。なお、図3において各情報要素に対して表記されている値は、ビット長を表す。例えば、IDの長さは11ビットであり、データフィールドの長さは0~64ビットの可変長である。 FIG. 3 shows an example format of a frame for transmitting messages. A standard frame includes a Start of Frame (SOF), an arbitration field, a control field, a data field, a CRC field, an ACK field, and an End of Frame (EOF). The arbitration field includes ID and RTR (Remote Transmission Request). ID represents identification information for identifying a message. The control field includes IDE (Identifier Extension), reserved bits, and DLC (Data Length Code). The CRC field contains a CRC sequence and a CRC delimiter. The ACK field contains the ACK slot and ACK delimiter. The value shown for each information element in FIG. 3 represents the bit length. For example, the length of the ID is 11 bits and the length of the data field is variable from 0 to 64 bits.
標準仕様のフレームと同様に、拡張仕様で使用されるフレームも、SOF、調停フィールド、コントロールフィールド、データフィールド、CRCフィールド、ACKフィールド、EOFを含む。ただし、拡張仕様では、より多くのビット数で識別情報が表される。 Similar to the standard specification frame, the frame used in the extension specification also contains SOF, arbitration field, control field, data field, CRC field, ACK field, EOF. However, in the extended specification, identification information is represented by a larger number of bits.
以下の記載では、標準仕様のフレームを利用してメッセージが伝送されるものとする。ただし、本発明の実施形態に係わる推定方法は、拡張仕様のフレームを利用してメッセージが伝送されるケースにも適用される。また、本発明の実施形態に係わる推定方法は、CAN-FDと呼ばれる規格にも対応可能である。 In the following description, it is assumed that messages are transmitted using standardized frames. However, the estimation method according to the embodiment of the present invention is also applicable to the case where messages are transmitted using extended specification frames. Also, the estimation method according to the embodiment of the present invention is compatible with a standard called CAN-FD.
図4は、推定装置が実装されるECUのハードウェア構成の一例を示す。ECU200は、この例では、CANトランシーバ201、CANコントローラ202、処理回路203を含む。処理回路203は、プロセッサ204およびメモリ205を含む。
FIG. 4 shows an example of the hardware configuration of an ECU in which the estimating device is mounted.
CANトランシーバ201は、図3に示すフレームを送信および受信する機能を備える。CANコントローラ202は、CANトランシーバ201が受信したフレームからデータを抽出すると共に、そのフレームの受信時刻を測定する。なお、CANコントローラ202は、受信フレームに対してCRCチェックを実行してもよい。また、CANコントローラ202は、送信フレームにデータを格納することができる。プロセッサ204は、メモリ205に格納されているプログラムを実行することにより、メッセージの送信タイプの推定およびメッセージ中に含まれるデータの形式の推定を実現する。この場合、このプログラムは、後述するフローチャートの手順を記述している。
本発明の実施形態に係わる推定装置は、ネットワークへの攻撃を検知する攻撃検知装置が利用する情報を生成する。すなわち、推定装置は、識別子ごとにメッセージの送信タイプを推定し、また、識別子ごとにメッセージ中に含まれるデータの形式を推定する。 An estimation device according to an embodiment of the present invention generates information used by an attack detection device that detects attacks on a network. That is, the estimating device estimates the transmission type of the message for each identifier, and also estimates the format of the data contained in the message for each identifier.
ここで、攻撃検知は、下記の前提条件の下で行われるものとする。
(1)識別子ごとに検知を行う。
(2)検知対象の識別子を含むメッセージが、周期メッセージ、イベント送信付き周期メッセージ、または非周期メッセージのいずれであるのかは不明である。
(3)ただし、周期メッセージまたはイベント送信付き周期メッセージの送信周期は、既知であるか、検出可能である。
(4)データ領域にどのような形式のデータが格納されているか(例えば、「第5ビットから8ビット分の領域に固定値が格納されている」)は不明である。
Here, attack detection shall be performed under the following preconditions.
(1) Perform detection for each identifier.
(2) It is unclear whether the message containing the identifier to be detected is a periodic message, a periodic message with event transmission, or an aperiodic message.
(3) However, the transmission cycle of the periodic message or the periodic message with event transmission is known or detectable.
(4) It is unknown what type of data is stored in the data area (for example, "a fixed value is stored in the area for 8 bits from the 5th bit").
これらの前提条件の下では、攻撃検知装置(または、検知者)は、攻撃検知の前に下記の事前準備を行う。
準備処理1:事前に取得した通信ログに基づいて、識別子ごとにメッセージの送信タイプを推定する。
準備処理2:準備手順1で得られる送信タイプに対応する検知方法を準備する。
Under these preconditions, the attack detection device (or detector) makes the following advance preparations before attack detection.
Preparatory process 1: Based on the communication log acquired in advance, the transmission type of the message is estimated for each identifier.
Preparatory process 2: A detection method corresponding to the transmission type obtained in
検知方法としては、メッセージの送信周期を利用して、送信周期から外れて到着したメッセージを攻撃メッセージと判定する方法が提案されている。また、メッセージ内のデータの振舞いに基づいて攻撃メッセージを検知する方法も提案されている。非周期メッセージまたはイベント送信付き周期メッセージに対しては、メッセージ内のデータの振舞いに基づく方法が有効である。 As a detection method, a method has been proposed in which a message transmission cycle is used and a message that arrives outside the transmission cycle is determined to be an attack message. Methods have also been proposed to detect attack messages based on the behavior of data in the messages. For aperiodic messages or periodic messages with event transmission, methods based on the behavior of data in the messages are effective.
データの振舞いに基づく検知手法においては、例えば、特定の識別子を含むメッセージのデータ領域の先頭の8ビットが固定値である場合、受信メッセージの先頭の8ビットの値がその固定値と異なるときは、そのメッセージが攻撃メッセージであると判定される。或いは、順番に送信されるメッセージの所定の領域の値が所定のルール(例えば、1ずつインクリメントされる)に従って変化する場合、受信メッセージがそのルールに従わなければ、そのメッセージが攻撃メッセージであると判定される。他にも多くのルールが存在し、受信メッセージがそれぞれのルールから逸脱したときに、その受信メッセージが攻撃メッセージであると判定される。 In the detection method based on data behavior, for example, if the first 8 bits of the data area of a message containing a specific identifier have a fixed value, when the value of the first 8 bits of the received message differs from the fixed value, , the message is determined to be an attack message. Alternatively, if the value of a predetermined field in sequentially transmitted messages changes according to a predetermined rule (eg, incremented by 1), then if the received message does not follow that rule, the message is considered an attack message. be judged. There are many other rules, and an incoming message is determined to be an attack message when it deviates from the respective rules.
よって、データの振舞いに基づく検知手法を実行する場合、識別子ごとに、データ領域内の何ビット目から何ビット目までの間にどのような形式のデータが格納されているのかを事前に知っておく必要がある。具体的には、攻撃検知を行う前に、ネットワークの通信ログに基づいて、メッセージ内にどのような形式のデータが格納されているのかを調査する必要がある。すなわち、検知者は、攻撃検知を行う前に、下記の2つの処理を行う。
処理A:ネットワークの通信ログに基づいて、識別子ごとに、メッセージの送信タイプを推定する。
処理B:ネットワークの通信ログに基づいて、識別子ごとに、メッセージのデータ領域内にどのような形式のデータが含まれているのかを推定する。
Therefore, when executing a detection method based on data behavior, it is necessary to know in advance what type of data is stored between bits in the data area for each identifier. need to leave Specifically, before attack detection, it is necessary to investigate what type of data is stored in messages based on network communication logs. That is, the detector performs the following two processes before attack detection.
Process A: Based on the network communication log, the transmission type of the message is estimated for each identifier.
Process B: Based on the communication log of the network, for each identifier, the type of data contained in the data area of the message is estimated.
図5は、メッセージ内に格納される各データの形式の例を示す。この例では、先頭の16ビットのデータ形式が連続値であり、次の8ビットのデータ形式が固定値であり、最後の8ビットのデータ形式がチェックサムである。ここで、「連続値」は、ある受信メッセージに格納されている値とその次の受信メッセージに格納されている値との差分が所定の閾値より小さいデータを表す。例えば、所定の時間間隔(例えば、10m秒)で検出されるハンドル角度の変化量は、所定値より大きくなることはないと考えられる。よって、ある受信メッセージから検出される値とその次の受信メッセージから検出される値との差分が閾値より大きいときは、攻撃が発生したと判定される。或いは、「固定値」が格納されている領域において他の値が検出されたときには、攻撃が発生したと判定される。 FIG. 5 shows an example of the format of each data stored in the message. In this example, the first 16-bit data format is a continuous value, the next 8-bit data format is a fixed value, and the last 8-bit data format is a checksum. Here, "continuous value" represents data in which the difference between the value stored in a certain received message and the value stored in the next received message is smaller than a predetermined threshold. For example, it is conceivable that the amount of change in the steering wheel angle detected at predetermined time intervals (eg, 10 ms) will not exceed a predetermined value. Therefore, when the difference between the value detected from a certain received message and the value detected from the next received message is greater than a threshold, it is determined that an attack has occurred. Alternatively, when another value is detected in the area where the "fixed value" is stored, it is determined that an attack has occurred.
ここで、処理B(即ち、メッセージのデータ領域内のどの位置にどのような形式のデータが格納されているのかの推定)については、例えば、文献Xまたは文献Yに記載されている。
文献X:Field Classification, Modeling and Anomaly Detection in Unknown CAN Bus Networks (Markovitz, Wool)(国際会議escar 2015)
文献Y:WO2018/105330
Here, process B (that is, estimation of what type of data is stored at which position in the data area of the message) is described in document X or document Y, for example.
Document X: Field Classification, Modeling and Anomaly Detection in Unknown CAN Bus Networks (Markovitz, Wool) (International Conference escar 2015)
Literature Y: WO2018/105330
文献Xに記載されている方法では、データのユニーク性を利用して3つの形式(固定値、マルチ値、連続値/センサ値)が識別される。また、文献Yに記載されている方法では、データのユニーク性およびデータの時系列変化に関する特徴量(分散など)を利用することで、5つの形式(固定値、カウンタ、連続値、チェックサム、ステータス(マルチ値))が識別される。 The method described in Document X exploits the uniqueness of the data to identify three types (fixed value, multi-value, continuous/sensor value). In addition, in the method described in Document Y, five formats (fixed value, counter, continuous value, checksum, status (multi-value)) is identified.
しかし、文献Xまたは文献Yに記載されている方法では、イベント送信付き周期メッセージからイベント領域を検出することは困難である。なお、「イベント領域」は、この明細書では、イベント送信付き周期メッセージにおいてイベントの発生時に特定の値が設定される領域、又は、イベント送信付き周期メッセージにおいて通常時には固定値であるがイベントの発生時にはその値が変化する領域を意味する。また、文献Xまたは文献Yに記載されている方法では、上述した処理Bと同時または平行に、上述した処理Aを行うことは困難である。このため、攻撃検知の準備に要する時間が長くなってしまう。そこで、本発明の実施形態に係わる推定方法は、これらの問題を解決する機能を備える。 However, with the method described in Document X or Document Y, it is difficult to detect an event region from a periodic message with event transmission. In this specification, an "event area" is an area in which a specific value is set when an event occurs in a periodic message with event transmission, or an area in which a fixed value is normally set in a periodic message with event transmission but when an event occurs. Sometimes it means a region whose value changes. Further, in the method described in Document X or Document Y, it is difficult to perform the above-described process A simultaneously with or in parallel with the above-described process B. For this reason, the time required to prepare for attack detection becomes long. Therefore, the estimation method according to the embodiment of the present invention has functions to solve these problems.
<第1の実施形態>
図6は、本発明の実施形態に係わる推定装置の一例を示す。本発明の実施形態に係わる推定装置10は、通信ログデータベース11、制御部12、パターン数カウンタ13、受信間隔判定部14、変数更新部15、形式推定部16、途中結果格納部17、および最終結果推定部18を備える。なお、推定装置10は、図6に示していない他の回路または機能を備えていてもよい。
<First embodiment>
FIG. 6 shows an example of an estimation device according to an embodiment of the invention. The
推定装置10は、複数のECUを含む通信ネットワークに接続される。そして、推定装置10は、各ECUから送信されるフレームを受信する。各フレームには、メッセージが格納されている。すなわち、推定装置10は、各ECUから送信されるメッセージを受信する。図1に示す例では、ECU0が推定装置10として動作してもよい。この場合、推定装置10は、ECU1~ECUkから送信されるメッセージを受信する。あるいは、推定装置10は、複数のECUを含む通信ネットワークから取得した通信ログを分析する、外部の計算装置に実装されたコンピュータプログラムである。この場合、各ECUから送信された通信ログから1個ずつフレームのログを取得して処理を行う。
The estimating
推定装置10は、メッセージの送信タイプを識別する機能を備える。すなわち、推定装置10は、周期メッセージ、非周期メッセージ、又はイベント送信付き周期メッセージを識別する機能を備える。イベント送信付き周期メッセージは、図2を参照して説明したように、通常時は一定の周期で送信されるが、所定のイベントが発生したときは、そのイベントの発生に起因して送信される。したがって、イベント送信付き周期メッセージは、通常時は一定の周期で送信されるが、イベントの発生時には、その周期より短い時間間隔で送信される。また、第1の実施形態において検出されるイベント送信付き周期メッセージは、イベントの発生時には、図2に示すケース1のように、メッセージ中の所定の領域に特定の値が設定されるものとする。
The estimating
通信ログデータベース11には、推定装置10が受信するメッセージに係わる通信ログが保存される。通信ログには、図7に示すように、メッセージの受信時刻、メッセージに含まれる識別子、およびメッセージのデータ領域に格納されているデータが記録される。なお、この実施例では、図3に示すように、データ領域は64ビットである。よって、各メッセージに格納されるデータの長さは、最大で64ビットである。
The
推定装置10は、通信ログデータベース11に保存されている通信ログを利用して、識別子ごとに、メッセージの送信タイプおよびメッセージに格納されているデータの特徴を推定する。なお、以下の説明では、特に断らない限り、推定対象の識別子に対する処理について記載する。
The
制御部12は、所定のモニタ期間を指定する。そして、制御部12は、モニタ期間に対応する通信ログから、各メッセージの受信時刻を表す情報およびデータ領域に格納されているデータを取得する。以下の記載では、i番目に推定装置10に到着したメッセージの受信時刻を「t(i)」と表記し、そのメッセージに格納されているデータを「Data(i)」と表記することがある。
The
ここで、推定装置10は、各メッセージに格納されているデータの振舞いに基づく攻撃検知を実現するための情報を生成する。このため、推定装置10は、各メッセージのデータ領域を解析する。ただし、推定装置10にとって、データ領域内のどの位置にどのような長さのデータが格納されているのかは未知である。よって、推定装置10は、すべての格納パターンについてデータの値を解析する。
Here, the estimating
なお、以下の記載では、64ビットのデータ領域内に1または複数の個別データが格納されるとき、各個別データが格納される領域を「部分領域」と呼ぶことがある。例えば、図5に示す実施例では、データ領域は、ハンドル角度データを格納する16ビットの部分領域、固定データを格納する8ビットの部分領域、およびチェックサムデータを格納する8ビットの部分領域を含んでいる。 In the following description, when one or more pieces of individual data are stored in a 64-bit data area, the area in which each piece of individual data is stored may be called a "partial area." For example, in the embodiment shown in FIG. 5, the data area comprises a 16-bit partial area for storing steering wheel angle data, an 8-bit partial area for storing fixed data, and an 8-bit partial area for storing checksum data. contains.
推定装置10は、各部分領域に格納されているデータを解析する。ここで、個別データを格納する部分領域の開始位置および長さは未知である。よって、推定装置10は、すべての格納パターンについてデータの値を解析する。例えば、部分領域の長さが1ビットである場合、第1ビットから開始される部分領域、第2ビットから開始される部分領域・・・第64ビットから開始される部分領域、が存在し得る。すなわち、部分領域の長さが1ビットである場合、64種類の部分領域が存在し得る。また、部分領域の長さが2ビットである場合、第1ビットから開始される部分領域、第1ビットから開始される部分領域・・・第63ビットから開始される部分領域、が存在し得る。すなわち、部分領域の長さが2ビットである場合、63種類の部分領域が存在し得る。以下、同様に、部分領域の長さがkビットである場合、「64+1-k」種類の部分領域が存在し得る。よって、合計で2080パターンの部分領域が存在することになる。
このように、各部分領域は、データ領域内での開始位置および長さの組合せで識別される。よって、以下の記載では、開始位置Pおよび長さLで識別される部分領域またはその部分領域に格納されている値を「Data(P,L)」と表記することがある。例えば、図8において、ハンドル角度データは、データ領域内の第1ビットから格納され、その長さは16ビットである。よって、ハンドル角度データが格納されている部分領域は「Data(1,16)」で表される。また、固定データは、データ領域内の第17ビットから格納され、その長さは8ビットである。よって、固定データが格納されている部分領域は「Data(17,8)」で表される。 Thus, each partial area is identified by a combination of starting position and length within the data area. Therefore, in the following description, the partial area identified by the starting position P and the length L or the value stored in the partial area may be referred to as "Data (P, L)". For example, in FIG. 8, the steering wheel angle data is stored from the first bit in the data area and its length is 16 bits. Therefore, the partial area storing the steering wheel angle data is represented by "Data (1, 16)". Also, the fixed data is stored from the 17th bit in the data area, and its length is 8 bits. Therefore, the partial area storing the fixed data is represented by "Data (17, 8)".
パターン数カウンタ13は、各部分領域についてパターン数をカウントする。即ち、2080通りの部分領域それぞれについてパターン数がカウントされる。パターン数は、モニタ期間内に推定装置10に到着したメッセージにおいて現れる、異なる値の数を表す。例えば、全ての受信メッセージに同じ値が格納されているときは、パターン数は「1」である。また、10個の受信メッセージのうち、5個のメッセージに値Xが格納され、残りの5個のメッセージに値Yが格納されているときは、パターン数は「2」である。更に、10個の受信メッセージのうち、5個のメッセージに値Xが格納され、3個のメッセージに値Yが格納され、残りの2個のメッセージに値Zが格納されているときは、パターン数は「3」である。なお、以下の記載においては、部分領域Data(P,L)のパターン数を「DP(P,L)」と表記することがある。
The pattern number counter 13 counts the number of patterns for each partial area. That is, the number of patterns is counted for each of 2080 partial areas. The number of patterns represents the number of different values that appear in messages arriving at the
受信間隔判定部14は、各受信メッセージについて、当該メッセージの受信時刻と当該メッセージの直前のメッセージの受信時刻の差分を表す受信間隔を計算する。すなわち、i番目のメッセージに対して、受信時刻t(i)と受信時刻t(i-1)との差分を計算することにより受信間隔dt(i)が計算される。また、受信間隔判定部14は、各受信メッセージに対して送信周期と受信間隔dt(i)とを比較して、その比較結果を制御部12に通知する。
The reception
変数更新部15は、各部分領域に対して、下記の3つの変数を管理する。即ち、2080通りの部分領域それぞれに対して各変数が管理される。なお、下記の送信間隔は、推定対象の識別子を含むメッセージの送信間隔を表す。
(1)メッセージの受信間隔が送信周期より短いか否かを表す変数s_f
(2)メッセージの受信間隔が送信周期と一致するか否かを表す変数p_f
(3)メッセージの受信間隔が所定のイベントの発生時以外の期間において送信周期と一致するか否かを表す変数f_f
なお、変数f_fは、メッセージの受信間隔が所定のイベントの発生時以外の期間において送信周期と一致するか否かを表すことに加えて、イベント発生時以外の期間にデータが一定であるか否かを表してもよい。すなわち、変数f_fは、メッセージの受信間隔が所定のイベントの発生時以外の期間において送信周期と一致するか否かを表すことに加えて、イベントの発生時以外の期間において部分領域に格納される値がイベント発生時以外に格納されるべき値であるか否かを表してもよい。そして、変数更新部15は、メッセージの受信間隔に基づいて、これらのメッセージを更新する。このとき、ある部分領域に係わる変数は、メッセージの受信間隔およびその部分領域の値に基づいて更新されることがある。これらの変数の初期値は、それぞれ「1」である。また、これらの変数は、いったん「0」に更新された後は、「1」に戻ることはない。なお、以下の記載では、開始位置Pおよび長さLで識別される部分領域に係わる変数をそれぞれ「s_f(P,L)」「p_f(P,L)」「f_f(P,L)」と表記することがある。
The
(1) Variable s_f representing whether or not the message reception interval is shorter than the transmission cycle
(2) Variable p_f representing whether or not the message reception interval matches the transmission cycle
(3) Variable f_f representing whether or not the message reception interval coincides with the transmission cycle during a period other than when a predetermined event occurs
Note that the variable f_f indicates whether or not the message reception interval coincides with the transmission cycle during a period other than when a predetermined event occurs. or That is, the variable f_f indicates whether or not the message reception interval coincides with the transmission cycle during a period other than when a predetermined event occurs. It may indicate whether the value should be stored at times other than when an event occurs. Then, the
形式推定部16は、各部分領域に格納されているデータの形式(または、属性)を推定する。このとき、形式推定部16は、格納されているデータの値、パターン数カウンタ13により得られるパターン数DP、および変数更新部15により更新された変数に基づいて、各部分領域に格納されているデータの形式を推定する。
The
途中結果格納部17は、パターン数カウンタ13、受信間隔判定部14、変数更新部15および形式推定部16の処理結果を一時的に保存する。
The intermediate
制御部12は、モニタ期間内のすべての通信ログについて処理が終了すると、終了通知を生成して最終結果推定部18に与える。そうすると、最終結果推定部18は、途中結果格納部17に保存されている処理結果を利用して、識別子ごとに、メッセージの送信タイプおよびメッセージに格納されているデータの形式を推定する。このとき、最終結果推定部18は、各部分領域についての推定結果に基づいて、メッセージの送信タイプおよびメッセージに格納されているデータの形式を推定する。
When the processing for all communication logs within the monitoring period is completed, the
図9は、本発明の実施形態に係わる推定処理の一例を示すフローチャートである。このフローチャートの処理は、指定されたモニタ期間および指定された識別子に対して実行される。 FIG. 9 is a flow chart showing an example of estimation processing according to the embodiment of the present invention. The processing of this flow chart is performed for the designated monitoring period and the designated identifier.
S1において、推定装置10は、推定処理において使用する変数を初期化する。具体的には、全ての部分領域について、パターン数DP(P,L)が「ゼロ」に初期化される。また、全ての部分領域について、変数s_f、p_f、f_fがそれぞれ「1」に初期化される。
In S1, the
各変数は、図10に示す変数管理テーブルにより管理される。図10において、部分領域を識別する2つの数字は、データ領域内の開始位置Pおよび長さLを表す。また、形式1~8については後で説明する。この変数管理テーブルは、例えば、途中経過格納部17に保存される。なお、変数管理テーブルは、図10に示す変数に加えて、図10に示していない他の変数を管理してもよい。
Each variable is managed by the variable management table shown in FIG. In FIG. 10, the two numbers identifying the partial area represent the starting position P and length L within the data area.
S2において、推定装置10は、前処理を実行する。前処理は、各受信メッセージに対して、且つ、各受信メッセージ内の各部分領域に対して実行される。すなわち、推定装置10は、通信ログから1レコード分のデータを取り出す毎に、2080個の部分領域それぞれに対して前処理を実行する。
In S2, the
S3において、推定装置10は、推定処理を実行する。推定処理は、各部分領域に格納されているデータの形式を推定する処理、および各部分領域のデータ形式に基づいてメッセージの送信タイプを推定する処理を含む。
In S3, the
S4において、推定装置10は、重複解消処理を実行する。重複解消処理は、部分領域に格納されているデータの形式を確定させる処理を含む。
In S4, the estimating
図11は、前処理の一例を示すフローチャートである。この前処理は、図9に示すS2に相当する。よって、この前処理は、各部分領域に対して実行される。以下の記載では、前処理が実行される部分領域を「対象部分領域」と呼ぶことがある。 FIG. 11 is a flowchart illustrating an example of preprocessing. This preprocessing corresponds to S2 shown in FIG. Therefore, this preprocessing is performed for each partial area. In the description below, the partial area on which preprocessing is performed may be referred to as a "target partial area".
S11において、形式判定部16は、対象部分領域に格納されているデータの形式を推定する。この実施例では、データは、以下の10個の形式のうちのいずれか1つの該当するものとする。
形式1:固定値
形式2:チェックサム(計算式)
形式3:カウンタ
形式4:単調増加
形式5:符号なし連続値
形式6:符号付き連続値
形式7:チェックサム(一様)
形式8:マルチ値
形式9:イベント(特定値:イベント発生時に特定の値が設定される)
形式10:イベント(変化:イベント発生時に値が変化する)
なお、形式10は、後述する第2の実施形態において検出される。そして、S11においては、形式判定部16は、対象部分領域に格納されているデータの形式が上述の形式1~4のいずれかに該当する可能性があるか否かを判定する。そして、形式判定部16は、対象部分領域に格納されているデータの形式がある形式に該当し得るときは、その形式に対応するフラグに「1」が設定され、そうでないときは、その形式に対応するフラグに「0」が設定される。
In S11, the
Format 1: Fixed value Format 2: Checksum (calculation formula)
Format 3: Counter format 4: Monotonically increasing format 5: Unsigned continuous value format 6: Signed continuous value format 7: Checksum (uniform)
Format 8: Multi-value Format 9: Event (Specific value: A specific value is set when an event occurs)
Format 10: Event (change: value changes when event occurs)
このとき、データ形式の推定において下記の情報が参照される。
(1)データの出現パターン数
(2)データを符号なしデータとみなしたときのデータの変化量の分散値
(3)データを符号付きデータとみなしたときのデータの変化量の分散値
(4)チェックサムの計算式(どの部分の値に基づいて、どのように計算するのかを表す情報)
(5)データの一様分布性
(6)直前のメッセージの値との差分値
S11においては、下記の処理が実行される。
(1)データの出現パターン数が2以上になったときは、形式1に対応する固定値可能性フラグに「0」を設定する。
(2)チェックサム計算の結果が対象部分領域に格納されている値と一致しないときは、形式2に対応するチェックサム(計算式)可能性フラグに「0」を設定する。なお、チェックサムは、通常、nバイト(nは、整数)のデータに対して実行されるので、データ長がこの条件に該当しないときは、即座に、チェックサム(計算式)可能性フラグに「0」を設定してもよい。
(3)直前のメッセージの値との差分値がプラス方向およびマイナス方向の双方に変化することあるときは、形式3に対応するカウンタ可能性フラグに「0」を設定すると共に、形式4に対応する単調増加可能性フラグにも「0」を設定する。
(4)直前のメッセージの値との差分値が全てのメッセージについてプラス方向またはマイナス方向のいずれか一方向であるが、差分値の大きさが一定以上であるときは、形式4に対応する単調増加可能性フラグに「0」を設定する。
(5)直前のメッセージの値との差分値がゼロ以外の一定値ではないときは、形式3に対応するカウンタ可能性フラグに「0」を設定する
(6)直前のメッセージの値との差分値差分値がゼロ以外の一定値であるときは、形式4に対応する単調増加可能性フラグに「0」を設定する。
At this time, the following information is referred to in estimating the data format.
(1) Number of appearance patterns of data (2) Variance value of data variation when data is regarded as unsigned data (3) Variance value of data variation when data is regarded as signed data (4 ) Checksum calculation formula (information indicating how to calculate based on which part value)
(5) Uniform distribution of data (6) Differential value from previous message value In S11, the following processing is executed.
(1) When the number of appearance patterns of data is 2 or more, the fixed value possibility flag corresponding to format 1 is set to "0".
(2) When the result of the checksum calculation does not match the value stored in the target partial area, the checksum (calculation formula) possibility flag corresponding to format 2 is set to "0". Since the checksum is normally executed for n-byte data (n is an integer), if the data length does not meet this condition, the checksum (calculation formula) possibility flag is immediately displayed. "0" may be set.
(3) When the difference value from the previous message value changes in both positive and negative directions, set the counter possibility flag corresponding to format 3 to "0" and
(4) The difference value from the value of the immediately preceding message is either positive or negative for all messages, but if the magnitude of the difference is greater than a certain value, monotone corresponding to format 4 The increase possibility flag is set to "0".
(5) When the difference value from the previous message value is not a constant value other than zero, set "0" to the counter possibility flag corresponding to
なお、可能性フラグが「0」である状態は、対象部分領域に格納されているデータが対応する形式に該当しないことを表す。換言すれば、可能性フラグが「1」である状態は、対象部分領域に格納されているデータが対応する形式に該当し得ることを表す。このように、S11においては、対象部分領域に格納されているデータが形式1~4に該当し得るか否かが判定される。 The state in which the possibility flag is "0" indicates that the data stored in the target partial area does not correspond to the corresponding format. In other words, the state in which the possibility flag is "1" indicates that the data stored in the target partial area can correspond to the corresponding format. Thus, in S11, it is determined whether or not the data stored in the target partial area can correspond to formats 1-4.
S12~S13において、パターン数カウンタ13は、必要に応じて、対象部分領域のパターン数DPを更新する。具体的には、新たな受信メッセージの対象部分領域の値が、過去の受信メッセージの対処部分領域に格納されていたいずれの値にも一致しないときには、パターン数DPが1だけインクリメントされ、また、その新たな値が保存される。なお、パターン数DPが3以上であるときは、メモリ領域を節約するために、その新たな値を保存しなくてもよい。
In S12 and S13, the
S14において、受信間隔判定部14は、メッセージの受信間隔dtを計算する。すなわち、処理対象のメッセージの受信時刻と直前に受信したメッセージの受信時刻との差分が計算される。なお、受信間隔は、すべての部分領域に対して同じなので、受信間隔判定部14は、各部分領域に対して受信間隔を計算する必要はない。
In S14, the reception
S15において、受信間隔判定部14は、受信間隔dtが送信周期Tより小さいか否かを判定する。なお、S15の判定において、送信周期Tは、送信周期Tよりも所定量th1だけ小さい値(T-th1)を意味する。そして、受信間隔dtが送信周期Tより小さいときは、S16において、変数更新部15は、変数p_fを「0」に更新する。
In S<b>15 , the reception
S17において、変数更新部15は、対象部分領域に格納されている値(Data(P,L))が最初の受信メッセージの対象部分領域に格納されていた値(d(1))と一致するか否かを判定する。ここで、S17の処理は、S15の判定が「Yes」であったときに実行される。すなわち、受信間隔dtが送信周期Tより小さく、且つ、対象部分領域に格納されている値(Data(P,L))が最初の受信メッセージの対象部分領域に格納されていた値(d(1))と一致するときに、S17の判定が「Yes」となる。そして、この状況は、「通常は、一定の周期で送信されるが、あるイベントが発生したときには、そのイベントの発生に起因して特定の値が設定される」を満足しないことになる。よって、S17の判定が「Yes」となるときは、S18において、変数更新部15は、変数f_fを「0」に更新する。
In S17, the
例えば、図2に示すケース1において、メッセージM5のデータがメッセージM1のデータと一致する場合には、S17の判定が「Yes」となり、S18において変数f_fが「0」に更新される。一方、メッセージM5のデータがメッセージM1のデータと異なるときは、S17の判定が「No」となり、変数f_fは更新されない。
For example, in
S19において、受信間隔判定部14は、受信間隔dtが送信周期Tより大きいか否かを判定する。なお、S19の判定において、送信周期Tは、送信周期Tよりも所定量th2だけ大きい値(T-th2)を意味する。そして、受信間隔dtが送信周期Tより大きいときには、S20において、変数更新部15は、変数s_f、p_f、f_fをそれぞれ「0」に更新する。
In S<b>19 , the reception
受信間隔dtが送信間隔Tと一致または略一致するとき(T-th1<dt<T+th2)には、S21において、変数更新部15は、対象部分領域に格納されている値が最初の受信メッセージの対象部分領域に格納されていた値と一致するか否かを判定する。ここで、S21の処理は、実質的に、S17と同じである。そして、受信間隔dtが送信間隔Tと一致または略一致し、且つ、対象部分領域に格納されている値が最初の受信メッセージの対象部分領域に格納されていた値と異なるときは、変数更新部15は、S22において、変数f_fを「0」に更新する。一方、S21において対象部分領域に格納されている値が最初の受信メッセージの対象部分領域に格納されていた値と一致するときは、変数s_f、p_f、f_fは保持される。
When the reception interval dt matches or substantially matches the transmission interval T (T−th1<dt<T+th2), in S21, the
このように、受信間隔dtが送信周期Tより小さく、且つ、対象部分領域に格納されている値が最初の受信メッセージの対象部分領域に格納されている値と一致するときに、変数f_fが「0」に更新される。また、受信間隔dtが送信間隔Tと一致または略一致し、且つ、対象部分領域に格納されている値が最初の受信メッセージの対象部分領域に格納されていた値と異なるときも、変数f_fを「0」に更新してもよい。 Thus, when the reception interval dt is smaller than the transmission period T and the value stored in the target partial area matches the value stored in the target partial area of the first received message, the variable f_f becomes " 0”. Also, when the reception interval dt matches or substantially matches the transmission interval T and the value stored in the target partial area differs from the value stored in the target partial area of the first received message, the variable f_f It may be updated to "0".
なお、ある部分領域に対応する変数が「0」である状態は、その部分領域を含むメッセージの送信タイプが、その変数に対応する送信タイプに該当しないことを表す。換言すれば、モニタ期間の全ての受信メッセージに対して前処理が終了したときに、ある部分領域に対応する変数が「1」である状態は、その部分領域を含むメッセージが、その変数に対応する送信タイプで送信されている可能性があると推定される。 A state in which the variable corresponding to a certain partial area is "0" indicates that the transmission type of the message including that partial area does not correspond to the transmission type corresponding to that variable. In other words, when the preprocessing is completed for all received messages during the monitoring period, the state in which the variable corresponding to a certain partial area is "1" indicates that the message including that partial area corresponds to that variable. It is presumed that it may have been sent with a transmission type that
図12は、推定処理の一例を示すフローチャートである。この推定処理は、図9に示すS3に相当する。なお、推定処理は、図11に示す前処理が終了した後に実行される。したがって、推定処理が実行されるときには、各部分領域について、パターン数DPおよび変数s_f、p_f、f_fの更新は終了している。 FIG. 12 is a flowchart illustrating an example of estimation processing. This estimation process corresponds to S3 shown in FIG. Note that the estimation process is executed after the pre-processing shown in FIG. 11 is completed. Therefore, when the estimation process is executed, the update of the number of patterns DP and variables s_f, p_f, f_f is finished for each partial area.
形式推定部16は、各部分領域についてS31~S36の処理を実行する。よって、推定処理が実行される部分領域「対象部分領域」と呼ぶことがある。
The
S31において、形式推定部16は、対象部分領域に対して設けられているパターン数DPおよび変数s_f、p_f、f_fが下記の3つの条件を満たしているか否かを判定する。
(1)パターン数DPは「2」である
(2)変数s_fは「1」である
(3)変数f_fは「1」である
なお、条件(1)は、モニタ期間内に受信するメッセージの対象部分領域に、2種類の値が現れたことを表す。条件(2)は、モニタ期間内に、少なくとも1回、送信周期より短い受信間隔でメッセージが到着したことを表す。条件(3)は、受信メッセージがイベント送信付き周期メッセージである可能性があることを表す。
In S31, the
(1) The number of patterns DP is "2" (2) The variable s_f is "1" (3) The variable f_f is "1" Indicates that two types of values appear in the target partial area. Condition (2) indicates that a message has arrived at least once within the monitoring period at a reception interval shorter than the transmission period. Condition (3) indicates that the received message may be a periodic message with event transmission.
上記3つの条件を満足するときは、形式推定部16は、S32において、対象部分領域を含むメッセージの送信タイプが「イベント送信付き周期メッセージ(特定値)」であると推定する。一方、上記3つの条件を満足しないときは、形式推定部16の処理はS33に進む。
When the above three conditions are satisfied, the
S33において、形式推定部16は、対象部分領域に対して設けられている変数p_fが「1」であるか否かを判定する。なお、変数p_fが「1」である状態は、すべての受信メッセージの受信間隔が送信周期Tと一致または略一致したときに得られる。そして、変数p_fが「1」であるときは、形式推定部16は、S34において、対象部分領域を含むメッセージの送信タイプが「周期メッセージ」であると推定する。一方、変数p_fが「1」でないときは、形式推定部16は、S35において、対象部分領域を含むメッセージの送信タイプが「非周期メッセージ」であると推定する。
In S33, the
S36において、形式推定部16は、対象部分領域に格納されているデータの形式が上述した形式5~8のいずれかに該当し得るか否かを判定する。具体的には、下記の処理が実行される。
(1)対象部分領域に格納されているデータを「符号なしデータ」とみなしたときのデータの変化量の分散値が一定値を超えているときは、形式5に対応する符号なし連続値可能性フラグに「0」を設定する。
(2)対象部分領域に格納されているデータを「符号付きデータ」とみなしたときのデータの変化量の分散値が一定値を超えているときは、形式6に対応する符号付き連続値可能性フラグに「0」を設定する。
(3)対象部分領域に格納されているデータが一様に分布していないときは、形式7に対応するチェックサム(一様)可能性フラグに「0」を設定する。
(4)形式8に対応するマルチ値可能性フラグを「1」に設定する。或いは、形式推定部16は、マルチ値可能性フラを使用しなくてもよい。
In S36, the
(1) When the data stored in the target partial area is regarded as "unsigned data" and the variance value of the amount of change in the data exceeds a certain value, unsigned continuous values corresponding to Format 5 are possible. "0" is set to the nature flag.
(2) When the data stored in the target partial area is regarded as "signed data" and the variance value of the amount of change in the data exceeds a certain value, signed continuous values corresponding to format 6 are possible. "0" is set to the nature flag.
(3) When the data stored in the target partial area are not uniformly distributed, set the checksum (uniform) possibility flag corresponding to format 7 to “0”.
(4) Set the multi-value possibility flag corresponding to format 8 to "1". Alternatively,
なお、可能性フラグが「0」である状態は、対象部分領域に格納されているデータが対応する形式に該当しないことを表す。換言すれば、可能性フラグが「1」である状態は、対象部分領域に格納されているデータが対応する形式に該当し得ることを表す。このように、S36においては、対象部分領域に格納されているデータが形式5~8に該当し得るか否かが判定される。 The state in which the possibility flag is "0" indicates that the data stored in the target partial area does not correspond to the corresponding format. In other words, the state in which the possibility flag is "1" indicates that the data stored in the target partial area can correspond to the corresponding format. Thus, in S36, it is determined whether or not the data stored in the target partial area can correspond to formats 5-8.
このように、S31~S36において、各部分領域について、データ形式および送信タイプが推定される。この後、形式推定部16は、S37において、メッセージの送信タイプを推定する。一例としては、1以上の部分領域に対してS31の判定が「Yes」であったときは、形式推定部16は、メッセージの送信タイプが「イベント送信付き周期メッセージ」であると推定する。また、S31において「Yes」と判定された部分領域が存在せず、且つ、1以上の部分領域に対してS33の判定が「Yes」であったときには、形式推定部16は、メッセージの送信タイプが「周期メッセージ」であると推定する。上記2つのケースに該当しないときは、形式推定部16は、メッセージの送信タイプが「非周期メッセージ」であると推定する。
Thus, in S31-S36, the data format and transmission type are estimated for each partial area. After that, the
上述の前処理および推定処理により、各部分領域について、データ形式の候補としてありえないものが除去された結果を表す可能性フラグが得られる。ただし、1つの部分領域に対して複数の候補が残っていることがある。また、ある部分領域が他の部分領域に包含されていることがある。したがって、図9に示す重複解消処理が実行される。なお、「連続値」は、所定長より短いデータに対しては意味をなさないので、例えば、部分領域の長さが4ビットより短いときは、連続値可能性フラグに「0」を設定してもよい。「チェックサム」も同様である。 Through the preprocessing and estimation processing described above, for each partial area, a possibility flag is obtained that indicates the result of eliminating impossible data format candidates. However, a plurality of candidates may remain for one partial area. Also, a certain partial area may be included in another partial area. Therefore, the duplication elimination process shown in FIG. 9 is executed. Note that "continuous value" does not make sense for data shorter than a predetermined length. For example, when the length of the partial area is shorter than 4 bits, the continuous value possibility flag is set to "0". may The same applies to "checksum".
図9に示す重複解消処理は、例えば、下記の処理を含む。なお、重複解消処理は、例えば、最終結果推定部18により実行される。
The duplication elimination process shown in FIG. 9 includes, for example, the following processes. Note that the duplicate elimination process is executed by the final
(1)部分領域のデータ長を1ビットから64ビットまでインクリメントしながら、或いは、部分領域のデータ長を64ビットから1ビットまで1ずつデクリメントしながら、固定値可能性フラグが「1」に設定されている部分領域のデータ形式を「固定値」に決定する。 (1) While incrementing the data length of the partial area from 1 bit to 64 bits, or decrementing the data length of the partial area from 64 bits to 1 bit by 1, the fixed value possibility flag is set to "1". Determines the data format of the partial area that is specified as "fixed value".
(2)部分領域の開始位置を表す変数iおよび部分領域のデータ長を表す変数jを用意する。変数iは、第1ビットからデータ長ビット目までを順番に指定する。変数jは、第iビットからデータ形式が決定されていないビットまでの長さを初期値として、1までデクリメントしていく。ただし、i+jの値が8の倍数になるときは、その値に対応する部分領域を優先して処理する。そして、変数iおよび変数jを変えながら、下記の重複解消処理が実行される。なお、下記の記載において(i,j)は、開始位置が第iビットであり、長さがjビットである部分領域を表す。
(2a)(i,j)のチェックサム(計算式)可能性フラグが「1」であるときは、第iビットからjビット分の領域に格納されているデータを「チェックサム(計算式)」に決定する。
(2b)(i,j)のイベント(特定値)可能性フラグが「1」であるときは、第iビットからjビット分の領域に格納されているデータを「イベント(特定値)」に決定する。
(2c)(i,j)のイベント(変化)可能性フラグが「1」であるときは、第iビットからjビット分の領域に格納されているデータを「イベント(変化)」に決定する。尚、「イベント(変化)」については、後述する第2の実施形態で説明する。
(2d)(i,j)のカウンタ可能性フラグが「1」であるときは、第iビットからjビット分の領域に格納されているデータを「カウンタ」に決定する。
(2e)(i,j)の単調増加可能性フラグが「1」であるときは、第iビットからjビット分の領域に格納されているデータを「単調増加」に決定する。
(2f)(i,j)の符号なし連続値可能性フラグが「1」であり、且つ、符号付き連続値可能性フラグも「1」であるときは、第iビットからjビット分の領域に格納されているデータを、分散の小さい方の形式に決定する。
(2g)(i,j)の符号なし連続値可能性フラグが「1」であり、且つ、符号付き連続値可能性フラグが「0」であるときは、第iビットからjビット分の領域に格納されているデータを「符号なし連続値」に決定する。
(2h)(i,j)の符号なし連続値可能性フラグが「0」であり、且つ、符号付き連続値可能性フラグが「1」であるときは、第iビットからjビット分の領域に格納されているデータを「符号付き連続値」に決定する。
(2i)(i,j)のチェックサム(一様)可能性フラグが「1」であるときは、第iビットからjビット分の領域に格納されているデータを「チェックサム(一様)」に決定する。
(2j)第iビットから1ビット分を「マルチ値」に決定する。
(2k)「マルチ値」以外の形式に決定されているときは、iにjを加えてループを継続する。「マルチ値」と決定されているときは、iに「1」を加えてループを継続する。
(2) Prepare a variable i representing the starting position of the partial area and a variable j representing the data length of the partial area. The variable i sequentially designates from the first bit to the data length bit. The variable j is decremented to 1 with the length from the i-th bit to the bit whose data format is not determined as an initial value. However, when the value of i+j is a multiple of 8, priority is given to the partial area corresponding to that value. Then, while changing the variable i and the variable j, the following duplication elimination process is executed. In the description below, (i, j) represents a partial area whose start position is the i-th bit and whose length is j bits.
(2a) When the checksum (calculation formula) possibility flag of (i, j) is "1", the data stored in the j-bit area from the i-th bit is "checksum (calculation formula) ” is decided.
(2b) When the event (specific value) possibility flag of (i, j) is "1", the data stored in the j-bit area from the i-th bit is set to "event (specific value)". decide.
(2c) When the event (change) possibility flag of (i, j) is "1", the data stored in the j-bit area from the i-th bit is determined as "event (change)". . The "event (change)" will be described later in the second embodiment.
(2d) When the counter possibility flag of (i, j) is "1", the data stored in the j-bit area from the i-th bit is determined as the "counter".
(2e) When the monotonically increasing possibility flag of (i, j) is "1", the data stored in the j-bit area from the i-th bit is determined to be "monotonically increasing".
(2f) When the unsigned continuous value possibility flag of (i, j) is "1" and the signed continuous value possibility flag is also "1", an area of j bits from the i-th bit , into the form with the smaller variance.
(2g) When the unsigned continuous value possibility flag of (i, j) is "1" and the signed continuous value possibility flag is "0", an area of j bits from the i-th bit determines the data stored in to be "unsigned continuous values".
(2h) When the unsigned continuous value possibility flag of (i, j) is "0" and the signed continuous value possibility flag is "1", an area of j bits from the i-th bit determines the data stored in to be "signed continuous values".
(2i) When the checksum (uniform) possibility flag of (i, j) is "1", the data stored in the j-bit area from the i-th bit is "checksum (uniform) ” is decided.
(2j) One bit from the i-th bit is determined as a "multi-value".
(2k) If a format other than "multi-value" is determined, add j to i and continue the loop. If it is determined to be "multi-value", add "1" to i and continue the loop.
i+jの値が8の倍数になるときに、その値に対応する部分領域を優先して処理する理由は、データ領域の先頭からカウントして8の倍数のビット位置にデータの境界が設定されることが多いためである。また、上述の手順では、データ領域の先頭から処理が行われるが、データ領域の最後尾から処理が行われてもよい。さらに、上記2b、2cは、互いに入れ替えてもよい。上記2f、2g、2hは、互いに入れ替えてもよい。上記2aと上記2b、2cとを互いに入れ替えてもよい。 When the value of i+j is a multiple of 8, the partial area corresponding to that value is preferentially processed. Because there are many things. Also, in the above procedure, the processing is performed from the beginning of the data area, but the processing may be performed from the end of the data area. Furthermore, the above 2b and 2c may be exchanged with each other. The above 2f, 2g and 2h may be interchanged with each other. The above 2a and the above 2b and 2c may be exchanged with each other.
なお、第1の実施形態において、推定装置10は、S13の後でS11の処理を実行してもよし、S14の後でS11の処理を実行してもよい。また、推定装置10は、前処理の直後にS36の処理を実行してもよいし、重複処理の直前にS36の処理を実行してもよい。さらに、推定装置10は、前処理が終了した後であれば、任意のタイミングで重複処理を実行してもよい。
Note that in the first embodiment, the
図9~図12に示す例では、3つの変数s_f、p_f、f_fを使用するが、推定装置10は、2つの変数を使用して推定処理を行ってもよい。例えば、推定装置10は、イベント送信付きメッセージ可能性フラグおよび周期メッセージ可能性フラグを使用する。この場合、図11~図12に示す処理は、下記のように実行される。すなわち、S15において受信間隔dtが送信周期より短いときは、周期メッセージ可能性フラグが「0」に更新される。S17において対象部分領域の値が最初の受信メッセージの対象部分領域に格納されていた値と一致するときは、イベント送信付きメッセージ可能性フラグが「0」に更新される。S19において受信間隔dtが送信周期より長いときは、イベント送信付きメッセージ可能性フラグおよび周期メッセージ可能性フラグが「0」に更新される。そして、S31において、パターン数DPが「2」であり、且つ、イベント送信付きメッセージ可能性フラグが「1」であれば、送信タイプが「イベント(特定値)」であると推定される。なお、イベント送信付きメッセージ可能性フラグおよび周期メッセージ可能性フラグは、それぞれ変数f_fおよび変数p_fに相当する。
Although three variables s_f, p_f, and f_f are used in the examples shown in FIGS. 9 to 12, the
また、図12に示す例では、S31において3つの条件に基づいて対象部分領域を含むメッセージの送信タイプが推定されるが、第1の実施形態はこの方法に限定されるものではない。例えば、パターン数DPが「2」であり、且つ、変数s_fが「1」であり、且つ、変数f_fが「1」であり、且つ、変数p_fが「0」であるときに、対象部分領域を含むメッセージの送信タイプを「イベント(特定値)」と推定してもよい。 Also, in the example shown in FIG. 12, the transmission type of the message including the target partial area is estimated in S31 based on three conditions, but the first embodiment is not limited to this method. For example, when the pattern number DP is "2", the variable s_f is "1", the variable f_f is "1", and the variable p_f is "0", the target partial region may be presumed to be an "event (specific value)".
さらに、図12に示す例では、S31において対象部分領域のパターン数DPが「2」であるか否かが判定される。ここで、パターン数DPが「2」である状態は、通常時に所定の固定値が設定され、イベント発生時にその固定値と異なる特定値が設定されるメッセージ送信に相当する。例えば、図2に示すケース1では、通常時に「1(固定値)」が設定され、イベント発生に起因して送信されるメッセージM5において「3(特定値)」が設定されている。ただし、第1の実施形態の「イベント(特定値)」は、このケースに限定されるものではない。すなわち、「イベント(特定値)」は、通常時に任意の値が設定され、イベント発生時に特定値が設定されるメッセージであってもよい。この場合、S31において、対象部分領域のパターン数DPが「2以上」であるか否かが判定される。
Furthermore, in the example shown in FIG. 12, it is determined in S31 whether or not the pattern number DP of the target partial area is "2". Here, the state in which the number of patterns DP is "2" corresponds to message transmission in which a predetermined fixed value is normally set and a specific value different from the fixed value is set when an event occurs. For example, in
<第2の実施形態>
第1の実施形態では、イベント送信付き周期メッセージは、イベント発生時に特定値が設定される部分領域を含む。これに対して、第2の実施形態では、イベント送信付き周期メッセージは、イベント発生時に値が変化する部分領域を含む。例えば、図2に示すケース2では、メッセージM1~M4のデータは「1」であるが、イベントの発生に起因して生成されるメッセージM5以降のデータは「7」に変化している。
<Second embodiment>
In the first embodiment, a periodic message with event transmission includes a partial area in which a specific value is set when an event occurs. In contrast, in the second embodiment, a periodic message with event transmission includes a partial area whose value changes when an event occurs. For example, in
推定装置10の構成は、第1の実施形態および第2の実施形態において実質的に同じであり、図6に示す通りである。また、推定方法の手順は、第1の実施形態および第2の実施形態においてほぼ同じであり、図9に示すフローチャートの通りである。ただし、第2の実施形態に係わる前処理および推定処理は、それぞれ第1の実施形態と異なる処理を含む。
The configuration of the estimating
図13は、第2の実施形態において実行される前処理の一例を示すフローチャートである。なお、S11、S14~16、S19~S20は、第1の実施形態および第2の実施形態において実質的に同じである。また、第2の実施形態では、図11に示すS12~S13を実行する必要はない。よって、図13では、S12~S13は省略されているが、第2の実施形態においてS12~S13を実行してもよい。 FIG. 13 is a flowchart illustrating an example of preprocessing performed in the second embodiment. Note that S11, S14-16, and S19-S20 are substantially the same in the first embodiment and the second embodiment. Also, in the second embodiment, it is not necessary to execute S12 to S13 shown in FIG. Therefore, although S12 to S13 are omitted in FIG. 13, S12 to S13 may be executed in the second embodiment.
第2の実施形態では、図11に示すS17の代わりにS41の処理が実行される。S41においては、変数更新部15は、対象部分領域に格納されている値(Data(i))が、直前の受信メッセージの対象部分領域に格納されていた値(Data(i-1))と一致するか否かを判定する。ここで、S41の処理は、S15の判定が「Yes」であったときに実行される。即ち、受信間隔dtが送信周期Tより小さく、且つ、対象部分領域に格納されている値が、直前の受信メッセージの対象部分領域に格納されている値と一致するときに、S41の判定が「Yes」となる。そして、この状況は、「所定のイベントが発生したときに、対象部分領域の値が変化する」を満足しないことになる。よって、S41の判定が「Yes」となるときは、S18において、変数更新部15は、変数f_fを「0」に更新する。
In the second embodiment, the process of S41 is executed instead of S17 shown in FIG. In S41, the
例えば、図2に示すケース2において、メッセージM5のデータがメッセージM4のデータと一致する場合には、S41の判定が「Yes」となり、S18において変数f_fが「0」に更新される。一方、メッセージM5のデータがメッセージM4のデータと異なるときは、S41の判定が「No」となり、変数f_fは更新されない。
For example, in
受信間隔dtが送信間隔Tと一致または略一致するとき(T-th1<dt<T+th2)には、S42において、変数更新部15は、対象部分領域に格納されている値が直前の受信メッセージの対象部分領域に格納されていた値と一致するか否かを判定する。ここで、S42の処理は、実質的に、S41と同じである。そして、受信間隔dtが送信間隔Tと一致または略一致し、且つ、対象部分領域に格納されている値が直前の受信メッセージの対象部分領域に格納されていた値と異なるときは、変数更新部15は、S43において、変数f_fを「0」に更新する。一方、S42において対象部分領域に格納されている値が最初の受信メッセージの対象部分領域に格納されていた値と一致するときは、変数s_f、p_f、f_fは保持される。
When the reception interval dt matches or substantially matches the transmission interval T (T−th1<dt<T+th2), in S42, the
このように、第2の実施形態の前処理では、受信間隔dtが送信周期Tより小さく、且つ、対象部分領域に格納されている値が直前の受信メッセージの対象部分領域に格納されている値と一致するときに、変数f_fが「0」に更新される。また、受信間隔dtが送信間隔Tと一致または略一致し、且つ、対象部分領域に格納されている値が直前の受信メッセージの対象部分領域に格納されていた値と異なるときも、変数f_fを「0」に更新してもよい。 Thus, in the preprocessing of the second embodiment, the reception interval dt is smaller than the transmission period T, and the value stored in the target partial area is the value stored in the target partial area of the immediately preceding received message. , the variable f_f is updated to '0'. Also, when the reception interval dt matches or substantially matches the transmission interval T, and the value stored in the target partial area differs from the value stored in the target partial area of the previous received message, the variable f_f is It may be updated to "0".
図14は、第2の実施形態において実行される推定処理の一例を示すフローチャートである。なお、S33~S37は、第1の実施形態および第2の実施形態において実質的に同じである。 FIG. 14 is a flowchart illustrating an example of estimation processing performed in the second embodiment. Note that S33 to S37 are substantially the same in the first embodiment and the second embodiment.
第2の実施形態では、図12に示すS31~S32の代わりにS44~S45の処理が実行される。S44においては、形式推定部16は、変数s_f、p_f、f_fが下記の2つの条件を満たしているか否かを判定する。
(1)変数s_fは「1」である
(2)変数f_fは「1」である
条件(1)は、モニタ期間内に、少なくとも1回、送信周期より短い受信間隔でメッセージが到着したことを表す。条件(2)は、受信メッセージがイベント送信付き周期メッセージである可能性があることを表す。
In the second embodiment, the processing of S44-S45 is executed instead of S31-S32 shown in FIG. In S44, the
(1) The variable s_f is "1" (2) The variable f_f is "1" Condition (1) indicates that a message has arrived at least once within the monitoring period at a reception interval shorter than the transmission period. show. Condition (2) indicates that the received message may be a periodic message with event transmission.
上記2つの条件を満足するときは、形式推定部16は、S45において、対象部分領域を含むメッセージの送信タイプが「イベント送信付き周期メッセージ(変化)」であると推定する。一方、上記2つの条件を満足しないときは、形式推定部16の処理はS33に進む。
When the above two conditions are satisfied, the
なお、第2の実施形態において、推定装置10は、S14の後でS11の処理を実行してもよい。また、推定装置10は、前処理の直後にS36の処理を実行してもよいし、重複処理の直前にS36の処理を実行してもよい。さらに、推定装置10は、前処理が終了した後であれば、任意のタイミングで重複処理を実行してもよい。
Note that in the second embodiment, the
図13~図14に示す例では、3つの変数s_f、p_f、f_fを使用するが、2つの変数を使用して推定処理を行ってもよい。例えば、推定装置10は、イベント送信付きメッセージ可能性フラグおよび周期メッセージ可能性フラグを使用する。この場合、図13~図14に示す処理は、下記のように実行される。すなわち、S15において受信間隔dtが送信周期より短いときは、周期メッセージ可能性フラグが「0」に更新される。S41において対象部分領域の値が直前の受信メッセージの対象部分領域の値と一致するときは、イベント送信付きメッセージ可能性フラグが「0」に更新される。S19において受信間隔dtが送信周期より長いときは、イベント送信付きメッセージ可能性フラグおよび周期メッセージ可能性フラグがそれぞれ「0」に更新される。S44においてイベント送信付きメッセージ可能性フラグが「1」であれば、送信タイプが「イベント(変化)」であると推定される。なお、イベント送信付きメッセージ可能性フラグおよび周期メッセージ可能性フラグは、それぞれ、変数f_fおよび変数p_fに相当する。
Although three variables s_f, p_f, and f_f are used in the examples shown in FIGS. 13 and 14, the estimation process may be performed using two variables. For example, the estimating
また、推定装置10は、第1の実施形態の推定および第2の実施形態の推定の双方を実行してもよい。この場合、メッセージの受信間隔が所定のイベントの発生時以外の期間において送信周期と一致するか否かを表す変数(f_f)として、イベント発生時に特定の値が設定されるメッセージを検出するための変数f_f1、及び、イベント発生時に値が変化するメッセージを検出するための変数f_f2、を個々に管理することが好ましい。
Also, the
<実施例1>
この実施例では、図15に示す通信ログが得られている。また、説明を簡単にするために、受信時刻(タイムスタンプ)は小数点以下2桁で表され、各メッセージのデータ領域の長さは4ビットである。実際のCANにおいては、データはバイト単位で形成されるが、簡単のためにデータ長が4ビットである例を示す。チェックサム計算は、データ領域内の第1~第3ビットの加算結果を第4ビットに書き込む。ID=100を含むメッセージの送信周期およびID=200を含むメッセージの基本送信周期は、いずれも1秒である。
<Example 1>
In this example, the communication log shown in FIG. 15 is obtained. To simplify the explanation, the reception time (timestamp) is represented by two digits below the decimal point, and the length of the data area of each message is 4 bits. In an actual CAN, data is formed in units of bytes, but for the sake of simplicity, an example in which the data length is 4 bits is shown. In the checksum calculation, the addition result of the 1st to 3rd bits in the data area is written to the 4th bit. The transmission cycle of the message containing ID=100 and the basic transmission cycle of the message containing ID=200 are both 1 second.
推定装置10は、ID=100を含むメッセージの特徴を推定する。ここで、この実施例では、各メッセージのデータ領域の長さが4ビットなので、部分領域の種類(即ち、開始位置および長さの組合せ)は、下記の10通りである。
(1)開始位置=1、長さ=1
(2)開始位置=1、長さ=2
(3)開始位置=1、長さ=3
(4)開始位置=1、長さ=4
(5)開始位置=2、長さ=1
(6)開始位置=2、長さ=2
(7)開始位置=2、長さ=3
(8)開始位置=3、長さ=1
(9)開始位置=3、長さ=2
(10)開始位置=4、長さ=1
The estimating
(1) start position = 1, length = 1
(2) start position = 1, length = 2
(3) start position = 1, length = 3
(4) start position = 1, length = 4
(5) start position = 2, length = 1
(6) start position = 2, length = 2
(7) start position = 2, length = 3
(8) start position = 3, length = 1
(9) start position = 3, length = 2
(10) start position = 4, length = 1
そして、推定装置10は、図15に示す通信ログの1番目のレコードから順番にデータを取得して図9(図11~図12または図13~図14)に示すフローチャートの処理を実行する。なお、各部分領域のパターン数DPの初期値はゼロである。変数s_f、p_f、f_fの初期値は1である。S15およびS19において、マージン(即ち、th1及びth2)は、それぞれ0.2秒である。
Then, the estimating
(1)1番目のレコードのデータを取得
通信ログの1番目のレコードに記録されているデータは「受信時刻=1.00、ID=100、値=0001」である。ここで、このメッセージは「ID=100」を含む。よって、推定装置10は推定処理を実行する。そして、推定装置10による実行結果は下記の通りである。
(1) Acquiring the data of the first record The data recorded in the first record of the communication log is "reception time = 1.00, ID = 100, value = 0001". Here, this message contains "ID=100". Therefore, the
(1a)開始位置=1、長さ=1の部分領域
この部分領域に格納されている値は「0」である。即ち、d(1,1)(1)は「0」である。また、パターン数DP(1,1)は「1」に更新さる。さらに、部分領域の長さが4ではないので、チェックサム(計算式)データとはなり得ない。よって、チェックサム(計算式)可能性フラグ(1,1)が「0」に更新される。
(1a) Partial Area with Start Position=1, Length=1 The value stored in this partial area is "0". That is, d(1,1)(1) is "0". Also, the number of patterns DP(1,1) is updated to "1". Furthermore, since the length of the partial area is not 4, it cannot be checksum (calculation formula) data. Therefore, the checksum (calculation formula) possibility flag (1, 1) is updated to "0".
(1b)開始位置=1、長さ=2の部分領域
この部分領域に格納されている値は「00」である。すなわち、d(1,2)(1)は「00」である。また、パターン数DP(1,2)は「1」に更新される。更に、部分領域の長さが4ではないので、チェックサム(計算式)可能性フラグ(1,2)が「0」に更新される。
(1b) Partial area with start position=1, length=2 The value stored in this partial area is "00". That is, d(1,2)(1) is "00". Also, the number of patterns DP(1,2) is updated to "1". Furthermore, since the length of the partial area is not 4, the checksum (calculation formula) possibility flags (1, 2) are updated to "0".
(1c)開始位置=1、長さ=3の部分領域
この部分領域に格納されている値は「000」である。すなわち、d(1,3)(1)は「000」である。また、パターン数DP(1,3)は「1」に更新される。更に、部分領域の長さが4ではないので、チェックサム(計算式)可能性フラグ(1,3)が「0」に更新される。
(1c) Partial Area with Start Position=1, Length=3 The value stored in this partial area is "000". That is, d(1,3)(1) is "000". Also, the number of patterns DP(1,3) is updated to "1". Furthermore, since the length of the partial area is not 4, the checksum (calculation formula) possibility flags (1, 3) are updated to "0".
(1d)開始位置=1、長さ=4の部分領域
この部分領域に格納されている値は「0001」である。即ち、d(1,4)(1)は「0001」である。また、パターン数DP(1,4)は「1」に更新される。ここで、部分領域の長さが4である。ただし、第1~第3ビットの和が第4ビットの値に一致していない。したがって、チェックサム(計算式)可能性フラグ(1,4)が「0」に更新される。
(1d) Partial Area with Start Position=1, Length=4 The value stored in this partial area is "0001". That is, d(1,4)(1) is "0001". Also, the number of patterns DP(1,4) is updated to "1". Here, the length of the partial area is four. However, the sum of the 1st to 3rd bits does not match the value of the 4th bit. Therefore, the checksum (calculation formula) possibility flag (1, 4) is updated to "0".
(1e)開始位置=2、長さ=1の部分領域
この部分領域に格納されている値は「0」である。即ち、d(2,1)(1)は「0」である。また、パターン数DP(2,1)は「1」に更新される。さらに、部分領域の長さが4ではないので、チェックサム(計算式)可能性フラグ(2,1)が「0」に更新される。
(1e) Partial area with start position=2, length=1 The value stored in this partial area is "0". That is, d(2,1)(1) is "0". Also, the number of patterns DP(2, 1) is updated to "1". Furthermore, since the length of the partial area is not 4, the checksum (calculation formula) possibility flag (2, 1) is updated to "0".
(1f)開始位置=2、長さ=2の部分領域
この部分領域に格納されている値は「00」である。すなわち、d(2,2)(1)は「00」である。また、パターン数DP(2,2)は「1」に更新される。さらに、部分領域の長さが4ではないので、チェックサム(計算式)可能性フラグ(2,2)が「0」に更新される。
(1f) Partial area with start position=2, length=2 The value stored in this partial area is "00". That is, d(2,2)(1) is "00". Also, the number of patterns DP(2,2) is updated to "1". Furthermore, since the length of the partial area is not 4, the checksum (calculation formula) possibility flag (2, 2) is updated to "0".
(1g)開始位置=2、長さ=3の部分領域
この部分領域に格納されている値は「001」である。すなわち、d(2,3)(1)は「001」である。また、パターン数DP(2,3)は「1」に更新される。さらに、部分領域の長さが4ではないので、チェックサム(計算式)可能性フラグ(2,3)が「0」に更新される。
(1g) Partial area with start position=2, length=3 The value stored in this partial area is "001". That is, d(2,3)(1) is "001". Also, the number of patterns DP(2, 3) is updated to "1". Furthermore, since the length of the partial area is not 4, the checksum (calculation formula) possibility flags (2, 3) are updated to "0".
(1h)開始位置=3、長さ=1の部分領域
この部分領域に格納されている値は「0」である。即ち、d(3,1)(1)は「0」である。また、パターン数DP(3,1)は「1」に更新される。さらに、部分領域の長さが4ではないので、チェックサム(計算式)可能性フラグ(3,1)が「0」に更新される。
(1h) Partial area with start position=3, length=1 The value stored in this partial area is "0". That is, d(3,1)(1) is "0". Also, the number of patterns DP(3, 1) is updated to "1". Furthermore, since the length of the partial area is not 4, the checksum (calculation formula) possibility flag (3, 1) is updated to "0".
(1i)開始位置=3、長さ=2の部分領域
この部分領域に格納されている値は「01」である。すなわち、d(3,2)(1)は「01」である。また、パターン数DP(3,2)は「1」に更新される。更に、部分領域の長さが4ではないので、チェックサム(計算式)可能性フラグ(3,2)が「0」に更新される。
(1i) Partial area with start position=3, length=2 The value stored in this partial area is "01". That is, d(3,2)(1) is "01". Also, the number of patterns DP(3,2) is updated to "1". Furthermore, since the length of the partial area is not 4, the checksum (calculation formula) possibility flag (3, 2) is updated to "0".
(1j)開始位置=1、長さ=1の部分領域
この部分領域に格納されている値は「1」である。即ち、d(4,1)(1)は「1」である。また、パターン数DP(4,1)は「1」に更新される。さらに、部分領域の長さが4ではないので、チェックサム(計算式)可能性フラグ(4,1)が「0」に更新される。
(1j) Partial area with start position=1, length=1 The value stored in this partial area is "1". That is, d(4,1)(1) is "1". Also, the number of patterns DP(4,1) is updated to "1". Furthermore, since the length of the partial area is not 4, the checksum (calculation formula) possibility flag (4, 1) is updated to "0".
図16は、上記1a~1jの処理結果を示す。なお、図16に示す形式2は、チェックサム(計算式)を表す。すなわち、各部分領域に格納されているデータは、いずれも、チェックサム(計算式)である可能性が否定されている。また、推定装置10は、当該メッセージの受信時刻を、後続のメッセージの処理のために「前回受信時刻=1.00」として記録する。
FIG. 16 shows the processing results of the above 1a to 1j.
(2)2番目のレコードのデータを取得
通信ログの2番目のレコードに記録されているデータは「受信時刻=1.50、ID=200、値=0000」である。ここで、このメッセージは「ID=100」を含まないので、取得したデータは破棄される。
(2) Acquiring the data of the second record The data recorded in the second record of the communication log is "reception time = 1.50, ID = 200, value = 0000". Here, since this message does not contain "ID=100", the acquired data is discarded.
(3)3番目のレコードのデータを取得
通信ログの3番目のレコードに記録されているデータは「受信時刻=2.00、ID=100、値=0110」である。ここで、このメッセージは「ID=100」を含むので、推定装置10は推定処理を実行する。
(3) Acquiring the data of the third record The data recorded in the third record of the communication log is "reception time = 2.00, ID = 100, value = 0110". Here, since this message includes "ID=100", the estimating
なお、推定装置10は、当該メッセージの受信時刻と同じ識別子を含む直前の受信メッセージの受信時刻との差分を計算して「受信間隔dt=1.00」を得る。ここで、受信間隔dtは、「送信周期-th1」以上、且つ、「送信周期+th2」以下である。したがって、推定装置10は、変数s_f、p_fを更新しない。ただし、部分領域に格納されている値がメッセージM1の同じ部分領域の値と異なるときは、推定装置10は、その部分領域の変数f_fを「0」に更新する。
The estimating
なお、変数s_f、p_f、f_f、およびデータ形式1~8に対応する各フラグは、いったん「0」に更新された後は、「1」に戻ることはない。したがって、既に「0」に更新されている変数またはフラグについては、「1」を「0」に更新する事象が発生しても、その記載を省略する。
Note that once the variables s_f, p_f, f_f and the flags corresponding to
(3a)開始位置=1、長さ=1の部分領域
この部分領域に格納されている値は「0」である。即ち、d(1,1)(2)は「0」であり、当該部分領域に格納されている値は、前回のメッセージの同じ部分領域に格納されていた値(d(1,1)(1))と同じである。よって、パターン数DP(1,1)は「1」のまま保持される。また、カウンタ可能性フラグ(1,1)および単調増加可能性フラグ(1,1)がそれぞれ「0」に更新される。
(3a) Partial area with start position=1, length=1 The value stored in this partial area is "0". That is, d(1,1)(2) is "0", and the value stored in the partial area is the value (d(1,1)( 1)) is the same. Therefore, the number of patterns DP(1,1) is kept as "1". Also, the counter possibility flag (1, 1) and the monotonically increasing possibility flag (1, 1) are updated to "0".
(3b)開始位置=1、長さ=2の部分領域
この部分領域に格納されている値は「01」である。すなわち、d(1,2)(2)は「01」であり、当該部分領域に格納されている値は、前回のメッセージの同じ部分領域に格納されていた値(d(1,2)(1))と異なる。この結果、パターン数DP(1,2)は「2」に更新され、固定値可能性フラグ(1,2)が「0」に更新され、変数f_f(1,2)が「0」に更新される。
(3b) Partial area with start position=1, length=2 The value stored in this partial area is "01". That is, d(1,2)(2) is "01", and the value stored in the partial area is the value (d(1,2)( 1)) is different. As a result, the pattern number DP (1, 2) is updated to "2", the fixed value possibility flag (1, 2) is updated to "0", and the variable f_f (1, 2) is updated to "0". be done.
(3c)開始位置=1、長さ=3の部分領域
この部分領域に格納されている値は「011」である。すなわち、d(1,3)(2)は「011」であり、当該部分領域に格納されている値は、前回のメッセージの同じ部分領域に格納されていた値(d(1,3)(1))と異なる。この結果、パターン数DP(1,3)は「2」に更新され、固定値可能性フラグ(1,3)が「0」に更新され、変数f_f(1,3)が「0」に更新される。
(3c) Partial area with start position=1, length=3 The value stored in this partial area is "011". That is, d(1,3)(2) is "011", and the value stored in the partial area is the value (d(1,3)( 1)) is different. As a result, the pattern number DP (1, 3) is updated to "2", the fixed value possibility flag (1, 3) is updated to "0", and the variable f_f (1, 3) is updated to "0". be done.
(3d)開始位置=1、長さ=4の部分領域
この部分領域に格納されている値は「0110」である。即ち、d(1,4)(2)は「0110」であり、当該部分領域に格納されている値は、前回のメッセージの同じ部分領域に格納されていた値(d(1,4)(1))と異なる。したがって、パターン数DP(1,4)は「2」に更新され、固定値可能性フラグ(1,4)が「0」に更新され、変数f_f(1,4)が「0」に更新される。さらに、当該部分領域に格納されている値と、前回のメッセージの同じ部分領域に格納されていた値(d(1,4)(1))との差分が5であり、閾値より大きいので、単調増加可能性フラグ(1,4)が「0」に更新される。なお、この実施例では、閾値は5であるものとする。
(3d) Partial area with start position=1, length=4 The value stored in this partial area is "0110". That is, d(1,4)(2) is "0110", and the value stored in the partial area is the value (d(1,4)( 1)) is different. Therefore, the pattern number DP(1,4) is updated to "2", the fixed value possibility flag (1,4) is updated to "0", and the variable f_f(1,4) is updated to "0". be. Furthermore, since the difference between the value stored in the partial area and the value (d(1,4)(1)) stored in the same partial area of the previous message is 5, which is greater than the threshold, The monotonically increasing possibility flag (1, 4) is updated to "0". Note that the threshold is assumed to be 5 in this embodiment.
(3e)開始位置=2、長さ=1の部分領域
この部分領域に格納されている値は「1」である。即ち、d(2,1)(2)は「1」であり、当該部分領域に格納されている値は、前回のメッセージの同じ部分領域に格納されていた値(d(2,1)(1))と異なる。この結果、パターン数DP(2,1)は「2」に更新され、固定値可能性フラグ(2,1)が「0」に更新され、変数f_f(2,1)が「0」に更新される。
(3e) Partial area with start position=2, length=1 The value stored in this partial area is "1". That is, d(2,1)(2) is "1", and the value stored in the partial area is the value (d(2,1)( 1)) is different. As a result, the pattern number DP (2, 1) is updated to "2", the fixed value possibility flag (2, 1) is updated to "0", and the variable f_f (2, 1) is updated to "0". be done.
(3f)開始位置=2、長さ=2の部分領域
この部分領域に格納されている値は「11」である。すなわち、d(2,2)(2)は「11」であり、当該部分領域に格納されている値は、前回のメッセージの同じ部分領域に格納されていた値(d(2,2)(1))と異なる。この結果、パターン数DP(2,2)は「2」に更新され、固定値可能性フラグ(2,2)が「0」に更新され、変数f_f(2,2)が「0」に更新される。
(3f) Partial area with start position=2, length=2 The value stored in this partial area is "11". That is, d(2,2)(2) is "11", and the value stored in the partial area is the value (d(2,2)( 1)) is different. As a result, the pattern number DP (2, 2) is updated to "2", the fixed value possibility flag (2, 2) is updated to "0", and the variable f_f (2, 2) is updated to "0". be done.
(3g)開始位置=2、長さ=3の部分領域
この部分領域に格納されている値は「110」である。すなわち、d(2,3)(2)は「110」であり、当該部分領域に格納されている値は、前回のメッセージの同じ部分領域に格納されていた値(d(2,3)(1))と異なる。この結果、パターン数DP(2,3)は「2」に更新され、固定値可能性フラグ(2,3)が「0」に更新され、変数f_f(2,3)が「0」に更新される。さらに、当該部分領域に格納されている値と、前回のメッセージの同じ部分領域に格納されていた値(d(2,3)(1))との差分が5であり、閾値より大きいので、単調増加可能性フラグ(2,3)が「0」に更新される。
(3g) Subregion with start position=2, length=3 The value stored in this subregion is "110". That is, d(2,3)(2) is "110", and the value stored in the partial area is the value (d(2,3)( 1)) is different. As a result, the pattern number DP (2, 3) is updated to "2", the fixed value possibility flag (2, 3) is updated to "0", and the variable f_f (2, 3) is updated to "0". be done. Furthermore, since the difference between the value stored in the partial area and the value (d(2,3)(1)) stored in the same partial area of the previous message is 5, which is greater than the threshold, The monotonically increasing possibility flag (2, 3) is updated to "0".
(3h)開始位置=3、長さ=1の部分領域
この部分領域に格納されている値は「1」である。即ち、d(3,1)(2)は「1」であり、当該部分領域に格納されている値は、前回のメッセージの同じ部分領域に格納されていた値(d(3,1)(1))と異なる。したがって、パターン数DP(3,1)は「2」に更新され、固定値可能性フラグ(3,1)が「0」に更新される、変数f_f(3,1)が「0」に更新され。
(3h) Partial area with start position=3, length=1 The value stored in this partial area is "1". That is, d(3,1)(2) is "1", and the value stored in the partial area is the value (d(3,1)( 1)) is different. Therefore, the pattern number DP(3,1) is updated to "2", the fixed value possibility flag (3,1) is updated to "0", and the variable f_f(3,1) is updated to "0". be.
(3i)開始位置=3、長さ=2の部分領域
この部分領域に格納されている値は「10」である。すなわち、d(3,2)(2)は「10」であり、当該部分領域に格納されている値は、前回のメッセージの同じ部分領域に格納されていた値(d(3,2)(1))と異なる。この結果、パターン数DP(3,2)は「2」に更新され、固定値可能性フラグ(3,2)が「0」に更新され、変数f_f(3,2)が「0」に更新される。
(3i) Subregion with start position=3, length=2 The value stored in this subregion is "10". That is, d(3,2)(2) is "10", and the value stored in the partial area is the value (d(3,2)( 1)) is different. As a result, the pattern number DP (3, 2) is updated to "2", the fixed value possibility flag (3, 2) is updated to "0", and the variable f_f (3, 2) is updated to "0". be done.
(3j)開始位置=4、長さ=1の部分領域
この部分領域に格納されている値は「0」である。即ち、d(4,1)(2)は「0」であり、当該部分領域に格納されている値は、前回のメッセージの同じ部分領域に格納されていた値(d(4,1)(1))と異なる。この結果、パターン数DP(4,1)は「2」に更新され、固定値可能性フラグ(4,1)が「0」に更新され、変数f_f(4,1)が「0」に更新される。
(3j) Partial area with start position=4, length=1 The value stored in this partial area is "0". That is, d(4,1)(2) is "0", and the value stored in the partial area is the value (d(4,1)( 1)) is different. As a result, the pattern number DP (4, 1) is updated to "2", the fixed value possibility flag (4, 1) is updated to "0", and the variable f_f (4, 1) is updated to "0". be done.
図17は、上記3a~3jの処理結果を示す。なお、形式1は、固定値を表す。形式3は、カウンタを表す。形式4は、単調増加を表す。また、推定装置10は、当該メッセージの受信時刻を、後続のメッセージの処理のために「前回受信時刻=2.00」として記録する。
FIG. 17 shows the results of the processes 3a to 3j. Note that
(4)4番目のレコードのデータを取得
通信ログの4番目のレコードに記録されているデータは「受信時刻=2.50、ID=200、値=0000」である。ここで、このメッセージは「ID=100」を含まないので、取得したデータは破棄される。
(4) Acquiring the data of the fourth record The data recorded in the fourth record of the communication log is "reception time = 2.50, ID = 200, value = 0000". Here, since this message does not contain "ID=100", the acquired data is discarded.
(5)5番目のレコードのデータを取得
通信ログの5番目のレコードに記録されているデータは「受信時刻=3.00、ID=100、値=1001」である。ここで、このメッセージは「ID=100」を含むので、推定装置10は推定処理を実行する。
(5) Acquiring the data of the 5th record The data recorded in the 5th record of the communication log is "reception time = 3.00, ID = 100, value = 1001". Here, since this message includes "ID=100", the estimating
なお、推定装置10は、当該メッセージの受信時刻と同じ識別子を含む直前の受信メッセージの受信時刻との差分を計算して「受信間隔dt=1.00」を得る。ここで、受信間隔dtは、「送信周期-th1」以上、且つ、「送信周期+th2」以下である。したがって、推定装置10は、変数s_f、p_fを更新しない。ただし、部分領域に格納されている値がメッセージM1の同じ部分領域の値と異なるとき、または、部分領域に格納されている値がメッセージM3の同じ部分領域の値と異なるときは、推定装置10は、その部分領域の変数f_fを「0」に更新する。
The estimating
(5a)開始位置=1、長さ=1の部分領域
この部分領域に格納されている値は「1」である。即ち、d(1,1)(3)は「1」である。そして、この値は、過去の受信メッセージの同じ部分領域に格納されていたいずれの値とも異なる。よって、パターン数DP(1,1)は「2」に更新される。また、固定値可能性フラグ(1,1)が「0」に更新される。さらに、変数f_f(1,1)が「0」に更新される。
(5a) Partial area with start position=1, length=1 The value stored in this partial area is "1". That is, d(1,1)(3) is "1". And this value is different from any value stored in the same partial area of the previous received message. Therefore, the number of patterns DP(1,1) is updated to "2". Also, the fixed value possibility flag (1, 1) is updated to "0". Furthermore, the variable f_f(1,1) is updated to "0".
(5b)開始位置=1、長さ=2の部分領域
この部分領域に格納されている値は「10」である。すなわち、d(1,2)(3)は「10」である。そして、この値は、過去に受信したメッセージの同じ部分領域に格納されていたいずれの値とも異なる。よって、パターン数DP(1,2)は「3」に更新される。
(5b) Partial area with start position=1, length=2 The value stored in this partial area is "10". That is, d(1,2)(3) is "10". And this value is different from any value stored in the same partial area of the previously received message. Therefore, the number of patterns DP(1,2) is updated to "3".
(5c)開始位置=1、長さ=3の部分領域
この部分領域に格納されている値は「100」である。すなわち、d(1,3)(3)は「100」である。そして、この値は、過去に受信したメッセージの同じ部分領域に格納されていたいずれの値とも異なる。したがって、パターン数DP(1,3)は「3」に更新される。また、当該部分領域に格納されている値の変化量は、ゼロ以外の一定値ではない。具体的には、d(1,2)(1)とd(1,2)(2)との差分が「3」であり、d(1,2)(2)とd(1,2)(3)との差分が「4」である。よって、カウンタ可能性フラグ(1,4)が「0」に更新される。
(5c) Partial area with start position=1, length=3 The value stored in this partial area is "100". That is, d(1,3)(3) is "100". And this value is different from any value stored in the same partial area of the previously received message. Therefore, the number of patterns DP(1,3) is updated to "3". Also, the amount of change in the value stored in the partial area is not a constant value other than zero. Specifically, the difference between d(1,2)(1) and d(1,2)(2) is "3", and d(1,2)(2) and d(1,2) The difference from (3) is "4". Therefore, the counter possibility flag (1,4) is updated to "0".
(5d)開始位置=1、長さ=4の部分領域
この部分領域に格納されている値は「1001」である。即ち、d(1,4)(3)は「1001」である。そして、この値は、過去に受信したメッセージの同じ部分領域に格納されていたいずれの値とも異なる。したがって、パターン数DP(1,4)は「3」に更新される。また、当該部分領域に格納されている値の変化量は、ゼロ以外の一定値ではない。よって、カウンタ可能性フラグ(1,4)が「0」に更新される。
(5d) Partial area with start position=1, length=4 The value stored in this partial area is "1001". That is, d(1,4)(3) is "1001". And this value is different from any value stored in the same partial area of the previously received message. Therefore, the number of patterns DP(1,4) is updated to "3". Also, the amount of change in the value stored in the partial area is not a constant value other than zero. Therefore, the counter possibility flag (1,4) is updated to "0".
(5e)開始位置=2、長さ=1の部分領域
この部分領域に格納されている値は「0」である。即ち、d(2,1)(3)は「0」である。そして、当該部分領域に格納されている値は、増加することもあるし、減少することもある。具体的には、d(2,1)(1)とd(2,1)(2)との差分が「+1」であり、d(2,1)(2)とd(2,1)(3)との差分が「-1」である。したがって、カウンタ可能性フラグ(2,1)が「0」に更新され、単調増加可能性フラグ(2,1)が「0」に更新される。
(5e) Partial area with start position=2, length=1 The value stored in this partial area is "0". That is, d(2,1)(3) is "0". Then, the value stored in the partial area may increase or decrease. Specifically, the difference between d(2,1)(1) and d(2,1)(2) is "+1", and d(2,1)(2) and d(2,1) The difference from (3) is "-1". Therefore, the counter possibility flag (2,1) is updated to "0" and the monotonically increasing possibility flag (2,1) is updated to "0".
(5f)開始位置=2、長さ=2の部分領域
この部分領域に格納されている値は「00」である。すなわち、d(2,2)(3)は「00」である。そして、当該部分領域に格納されている値は、増加することもあるし、減少することもある。よって、カウンタ可能性フラグ(2,2)が「0」に更新され、単調増加可能性フラグ(2,2)が「0」に更新される。
(5f) Partial area with start position=2, length=2 The value stored in this partial area is "00". That is, d(2,2)(3) is "00". Then, the value stored in the partial area may increase or decrease. Therefore, the counter possibility flag (2, 2) is updated to "0", and the monotonically increasing possibility flag (2, 2) is updated to "0".
(5g)開始位置=2、長さ=3の部分領域
この部分領域に格納されている値は「001」である。すなわち、d(2,3)(3)は「001」である。そして、当該部分領域に格納されている値の変化量は、ゼロ以外の一定値ではない。したがって、カウンタ可能性フラグ(2,3)が「0」に更新される。
(5g) Partial area with start position=2, length=3 The value stored in this partial area is "001". That is, d(2,3)(3) is "001". The amount of change in the value stored in the partial area is not a constant value other than zero. Therefore, the counterability flags (2,3) are updated to "0".
(5h)開始位置=3、長さ=1の部分領域
この部分領域に格納されている値は「0」である。即ち、d(3,1)(3)は「0」である。そして、当該部分領域に格納されている値は、増加することもあるし、減少することもある。したがって、カウンタ可能性フラグ(3,1)が「0」に更新され、単調増加可能性フラグ(3,1)が「0」に更新される。
(5h) Partial area with start position=3, length=1 The value stored in this partial area is "0". That is, d(3,1)(3) is "0". Then, the value stored in the partial area may increase or decrease. Therefore, the counter possibility flag (3,1) is updated to "0" and the monotonically increasing possibility flag (3,1) is updated to "0".
(5i)開始位置=3、長さ=2の部分領域
この部分領域に格納されている値は「01」である。すなわち、d(3,2)(3)は「01」である。そして、当該部分領域に格納されている値は、増加することもあるし、減少することもある。よって、カウンタ可能性フラグ(3,2)が「0」に更新され、単調増加可能性フラグ(3,2)が「0」に更新される。
(5i) Partial area with start position=3, length=2 The value stored in this partial area is "01". That is, d(3,2)(3) is "01". Then, the value stored in the partial area may increase or decrease. Therefore, the counter possibility flag (3, 2) is updated to "0", and the monotonically increasing possibility flag (3, 2) is updated to "0".
(5j)開始位置=4、長さ=1の部分領域
この部分領域に格納されている値は「1」である。即ち、d(4,1)(3)は「1」である。そして、当該部分領域に格納されている値は、増加することもあるし、減少することもある。したがって、カウンタ可能性フラグ(4,1)が「0」に更新され、単調増加可能性フラグ(4,1)が「0」に更新される。
(5j) Partial area with start position=4, length=1 The value stored in this partial area is "1". That is, d(4,1)(3) is "1". Then, the value stored in the partial area may increase or decrease. Therefore, the counter possibility flag (4,1) is updated to "0" and the monotonically increasing possibility flag (4,1) is updated to "0".
図18は、上記5a~5jの処理結果を示す。なお、推定装置10は、当該メッセージの受信時刻を、後続のメッセージの処理のために「前回受信時刻=3.00」として記録する。
FIG. 18 shows the results of the processes 5a to 5j. Note that the estimating
(6)6番目のレコードのデータを取得
通信ログの6番目のレコードに記録されているデータは「受信時刻=3.25、ID=200、値=0100」である。ここで、このメッセージは「ID=100」を含まないので、取得したデータは破棄される。
(6) Acquiring the data of the sixth record The data recorded in the sixth record of the communication log is "reception time = 3.25, ID = 200, value = 0100". Here, since this message does not contain "ID=100", the acquired data is discarded.
(7)7番目のレコードのデータを取得
通信ログの7番目のレコードに記録されているデータは「受信時刻=4.00、ID=100、値=0111」である。ここで、このメッセージは「ID=100」を含むので、推定装置10は推定処理を実行する。
(7) Acquiring the data of the 7th record The data recorded in the 7th record of the communication log is "reception time = 4.00, ID = 100, value = 0111". Here, since this message includes "ID=100", the estimating
なお、推定装置10は、当該メッセージの受信時刻と同じ識別子を含む直前の受信メッセージの受信時刻との差分を計算して「受信間隔dt=1.00」を得る。ここで、受信間隔dtは、「送信周期-th1」以上、且つ、「送信周期+th2」以下である。したがって、推定装置10は、変数s_f、p_f、f_fを更新しない。
The estimating
(7a)開始位置=1、長さ=1の部分領域
この部分領域に格納されている値は「1」である。即ち、d(1,1)(4)は「1」である。
(7a) Partial area with start position=1, length=1 The value stored in this partial area is "1". That is, d(1,1)(4) is "1".
(7b)開始位置=1、長さ=2の部分領域
この部分領域に格納されている値は「01」である。すなわち、d(1,2)(4)は「01」である。そして、当該部分領域に格納されている値は、増加することもあるし、減少することもある。よって、カウンタ可能性フラグ(1,2)が「0」に更新され、単調増加可能性フラグ(1,2)が「0」に更新される。
(7b) Partial area with start position=1, length=2 The value stored in this partial area is "01". That is, d(1,2)(4) is "01". Then, the value stored in the partial area may increase or decrease. Therefore, the counter possibility flag (1, 2) is updated to "0", and the monotonically increasing possibility flag (1, 2) is updated to "0".
(7c)開始位置=1、長さ=3の部分領域
この部分領域に格納されている値は「011」である。すなわち、d(1,3)(4)は「011」である。そして、当該部分領域に格納されている値は、増加することもあるし、減少することもある。したがって、単調増加可能性フラグ(1,3)が「0」に更新される。
(7c) Partial area with start position=1, length=3 The value stored in this partial area is "011". That is, d(1,3)(4) is "011". Then, the value stored in the partial area may increase or decrease. Therefore, the monotonically increasing possibility flag (1, 3) is updated to "0".
(7d)開始位置=1、長さ=4の部分領域
この部分領域に格納されている値は「0111」である。即ち、d(1,4)(4)は「0111」である。この値は、過去に受信したメッセージの同じ部分領域に格納されていたいずれの値とも異なる。よって、パターン数DP(1,4)は「4」に更新される。
(7d) Partial area with start position=1, length=4 The value stored in this partial area is "0111". That is, d(1,4)(4) is "0111". This value is different from any value stored in the same sub-area of previously received messages. Therefore, the number of patterns DP(1,4) is updated to "4".
(7e)開始位置=2、長さ=1の部分領域
この部分領域に格納されている値は「1」である。即ち、d(2,1)(4)は「1」である。
(7e) Partial area with start position=2, length=1 The value stored in this partial area is "1". That is, d(2,1)(4) is "1".
(7f)開始位置=2、長さ=2の部分領域
この部分領域に格納されている値は「11」である。すなわち、d(2,2)(4)は「11」である。
(7f) Partial area with start position=2, length=2 The value stored in this partial area is "11". That is, d(2,2)(4) is "11".
(7g)開始位置=2、長さ=3の部分領域
この部分領域に格納されている値は「111」である。すなわち、d(2,3)(4)は「111」である。この値は、過去に受信したメッセージの同じ部分領域に格納されていたいずれの値とも異なる。よって、パターン数DP(2,3)は「3」に更新される。
(7g) Subregion with start position=2, length=3 The value stored in this subregion is "111". That is, d(2,3)(4) is "111". This value is different from any value stored in the same sub-area of previously received messages. Therefore, the number of patterns DP(2,3) is updated to "3".
(7h)開始位置=3、長さ=1の部分領域
この部分領域に格納されている値は「1」である。即ち、d(3,1)(4)は「1」である。
(7h) Partial area with start position=3, length=1 The value stored in this partial area is "1". That is, d(3,1)(4) is "1".
(7i)開始位置=3、長さ=2の部分領域
この部分領域に格納されている値は「11」である。すなわち、d(3,2)(4)は「11」である。この値は、過去に受信したメッセージの同じ部分領域に格納されていたいずれの値とも異なる。よって、パターン数DP(3,2)は「3」に更新される。
(7i) Subregion with start position=3, length=2 The value stored in this subregion is "11". That is, d(3,2)(4) is "11". This value is different from any value stored in the same sub-area of previously received messages. Therefore, the number of patterns DP(3,2) is updated to "3".
(7j)開始位置=4、長さ=1の部分領域
この部分領域に格納されている値は「1」である。即ち、d(4,1)(4)は「1」である。
(7j) Partial area with start position=4, length=1 The value stored in this partial area is "1". That is, d(4,1)(4) is "1".
図19は、上記7a~7jの処理結果を示す。メッセージの送信タイプ(イベント、周期、非周期)については、後で説明する。また、推定装置10は、当該メッセージの受信時刻を、後続のメッセージの処理のために「前回受信時刻=4.00」として記録する。
FIG. 19 shows the results of the processes 7a-7j. The message transmission type (event, periodic, aperiodic) will be described later. Also, the estimating
(8)8番目のレコードのデータを取得
通信ログの8番目のレコードに記録されているデータは「受信時刻=4.25、ID=200、値=0000」である。ここで、このメッセージは「ID=100」を含まないので、取得したデータは破棄される。
(8) Acquiring the data of the 8th record The data recorded in the 8th record of the communication log is "reception time = 4.25, ID = 200, value = 0000". Here, since this message does not contain "ID=100", the acquired data is discarded.
(9)送信タイプの推定
推定装置10は、各部分領域について、図12のS31~S35(又は、図14のS33~S35、S44、S45)を実行する。ここで、この例では、変数s_f、p_f、f_fはいずれも「1」のまま更新されていない。この結果、図19に示すように、すべての部分領域において、変数p_fが「1」である。すなわち、すべての部分領域に対して、S33~S34により「送信タイプ=周期メッセージ」が得られる。よって、推定装置10は、ID=100を含むメッセージは「周期メッセージ」であると推定する。
(9) Transmission Type Estimation The
(10)形式5~8の推定
データ領域に格納されている値を「符号付きデータ」と仮定すると、その値は「1」→「6」→「-7」→「7」と推移し、その分散は大きい。よって、符号付き連続値可能性フラグ(1,4)は「0」に更新される。一方、データ領域に格納されている値を「符号なしデータ」と仮定すると、その値は「1」→「6」→「9」→「7」と推移し、その分散は小さい。したがって、符号なし連続値可能性フラグ(1,4)は「1」のまま保持される。
(10) Estimation of
各部分領域に格納されている値は、一様に分布しているとはいえない。よって、すべての部分領域について、チェックサム(一様)可能性フラグが「0」に更新される。 The values stored in each partial area are not evenly distributed. Therefore, the checksum (uniform) possibility flag is updated to "0" for all partial areas.
(11)重複解消処理
すべての部分領域に対して、固定値可能性フラグ(図19では、形式1)が「0」に更新されている。よって、ID=100を含むメッセージは、固定値データを格納していないと推定される。また、開始位置(i)とデータ長(j)との和が8の倍数となる部分領域は存在しない。したがって、推定装置10は、データ長の長い部分領域(すなわち、部分領域(1,4))から重複解消処理を開始する。
(11a)部分領域(1,4)のチェックサム(計算式)可能性フラグ(図19では、形式2)が「0」に更新されているので、データ形式は確定しない。
(11b)部分領域(1,4)のイベント可能性フラグが「0」に更新されているので、データ形式は確定しない。
(11c)部分領域(1,4)のカウンタ可能性フラグ(図19では、形式3)が「0」に更新されているので、データ形式は確定しない。
(11d)部分領域(1,4)の単調増加可能性フラグ(図19では、形式4)が「0」に更新されているので、データ形式は確定しない。
(11e)部分領域(1,4)の符号なし連続値可能性フラグは、上述したように「1」のまま保持されている。よって、推定装置10は、データ領域に格納されているデータの形式が「符号なし連続値」であると推定する。
(11) Duplication Elimination Processing Fixed value possibility flags (
(11a) Since the checksum (calculation formula) possibility flag (
(11b) Since the event possibility flag of partial area (1, 4) has been updated to "0", the data format is not determined.
(11c) Since the counterability flag (
(11d) Since the monotonically increasing possibility flag (
(11e) The unsigned continuous value possibility flag of partial area (1, 4) is kept at "1" as described above. Therefore,
<実施例2>
実施例1と同様に、実施例2においても、図15に示す通信ログに基づいてメッセージの特徴を推定する。ただし、実施例2では、推定装置10は、ID=200を含むメッセージの特徴を推定する。また、実施例2では、第1の実施形態に係わる推定(すなわち、イベント発生時に特定値が設定される部分領域を含むイベント送信付きメッセージの検出)が行われる。
<Example 2>
As in the first embodiment, also in the second embodiment, message features are estimated based on the communication log shown in FIG. However, in the second embodiment, the estimating
(1)1番目のレコードのデータを取得
通信ログの1番目のレコードに記録されているデータは「受信時刻=1.00、ID=100、値=0001」である。ここで、このメッセージは「ID=200」を含まないので、取得したデータは破棄される。
(1) Acquiring the data of the first record The data recorded in the first record of the communication log is "reception time = 1.00, ID = 100, value = 0001". Here, since this message does not contain "ID=200", the acquired data is discarded.
(2)2番目のレコードのデータを取得
通信ログの2番目のレコードに記録されているデータは「受信時刻=1.50、ID=200、値=0000」である。ここで、このメッセージは「ID=200」を含むので、推定装置10は推定処理を実行する。そして、推定装置10による実行結果は下記の通りである。
(2) Acquiring the data of the second record The data recorded in the second record of the communication log is "reception time = 1.50, ID = 200, value = 0000". Here, since this message includes "ID=200", the estimating
(2a)開始位置=1、長さ=1の部分領域
この部分領域に格納されている値は「0」である。即ち、d(1,1)(1)は「0」である。また、パターン数DP(1,1)は「1」に更新さる。さらに、部分領域の長さが4ではないので、チェックサム(計算式)データとはなり得ない。よって、チェックサム(計算式)可能性フラグ(1,1)が「0」に更新される。
(2a) Partial area with start position=1, length=1 The value stored in this partial area is "0". That is, d(1,1)(1) is "0". Also, the number of patterns DP(1,1) is updated to "1". Furthermore, since the length of the partial area is not 4, it cannot be checksum (calculation formula) data. Therefore, the checksum (calculation formula) possibility flag (1, 1) is updated to "0".
(2b)開始位置=1、長さ=2の部分領域
この部分領域に格納されている値は「00」である。すなわち、d(1,2)(1)は「00」である。また、パターン数DP(1,2)は「1」に更新される。さらに、部分領域の長さが4ではないので、チェックサム(計算式)可能性フラグ(1,2)が「0」に更新される。
(2b) Partial Area with Start Position=1, Length=2 The value stored in this partial area is "00". That is, d(1,2)(1) is "00". Also, the number of patterns DP(1,2) is updated to "1". Furthermore, since the length of the partial area is not 4, the checksum (calculation formula) possibility flag (1, 2) is updated to "0".
(2c)開始位置=1、長さ=3の部分領域
この部分領域に格納されている値は「000」である。すなわち、d(1,3)(1)は「000」である。また、パターン数DP(1,3)は「1」に更新される。さらに、部分領域の長さが4ではないので、チェックサム(計算式)可能性フラグ(1,3)が「0」に更新される。
(2c) Partial area with start position=1, length=3 The value stored in this partial area is "000". That is, d(1,3)(1) is "000". Also, the number of patterns DP(1,3) is updated to "1". Furthermore, since the length of the partial area is not 4, the checksum (calculation formula) possibility flags (1, 3) are updated to "0".
(2d)開始位置=1、長さ=4の部分領域
この部分領域に格納されている値は「0000」である。即ち、d(1,4)(1)は「0000」である。また、パターン数DP(1,4)は「1」に更新される。なお、当該部分領域の長さは4であり、第1~第3ビットの和が第4ビットの値と一致しているので、チェックサム(計算式)可能性フラグ(1,4)は「1」のまま保持される。
(2d) Partial area with start position=1, length=4 The value stored in this partial area is "0000". That is, d(1,4)(1) is "0000". Also, the number of patterns DP(1,4) is updated to "1". The length of the partial area is 4, and the sum of the first to third bits matches the value of the fourth bit, so the checksum (calculation formula) possibility flag (1, 4) is " 1” is retained.
(2e)開始位置=2、長さ=1の部分領域
この部分領域に格納されている値は「0」である。即ち、d(2,1)(1)は「0」である。また、パターン数DP(2,1)は「1」に更新される。さらに、部分領域の長さが4ではないので、チェックサム(計算式)可能性フラグ(2,1)が「0」に更新される。
(2e) Partial area with start position=2, length=1 The value stored in this partial area is "0". That is, d(2,1)(1) is "0". Also, the number of patterns DP(2, 1) is updated to "1". Furthermore, since the length of the partial area is not 4, the checksum (calculation formula) possibility flag (2, 1) is updated to "0".
(2f)開始位置=2、長さ=2の部分領域
この部分領域に格納されている値は「00」である。すなわち、d(2,2)(1)は「00」である。また、パターン数DP(2,2)は「1」に更新される。さらに、部分領域の長さが4ではないので、チェックサム(計算式)可能性フラグ(2,2)が「0」に更新される。
(2f) Partial area with start position=2, length=2 The value stored in this partial area is "00". That is, d(2,2)(1) is "00". Also, the number of patterns DP(2,2) is updated to "1". Furthermore, since the length of the partial area is not 4, the checksum (calculation formula) possibility flag (2, 2) is updated to "0".
(2g)開始位置=2、長さ=3の部分領域
この部分領域に格納されている値は「000」である。すなわち、d(2,3)(1)は「000」である。また、パターン数DP(2,3)は「1」に更新される。さらに、部分領域の長さが4ではないので、チェックサム(計算式)可能性フラグ(2,3)が「0」に更新される。
(2g) Partial area with start position=2, length=3 The value stored in this partial area is "000". That is, d(2,3)(1) is "000". Also, the number of patterns DP(2, 3) is updated to "1". Furthermore, since the length of the partial area is not 4, the checksum (calculation formula) possibility flags (2, 3) are updated to "0".
(2h)開始位置=3、長さ=1の部分領域
この部分領域に格納されている値は「0」である。即ち、d(3,1)(1)は「0」である。また、パターン数DP(3,1)は「1」に更新される。さらに、部分領域の長さが4ではないので、チェックサム(計算式)可能性フラグ(3,1)が「0」に更新される。
(2h) Partial area with start position=3, length=1 The value stored in this partial area is "0". That is, d(3,1)(1) is "0". Also, the number of patterns DP(3, 1) is updated to "1". Furthermore, since the length of the partial area is not 4, the checksum (calculation formula) possibility flag (3, 1) is updated to "0".
(2i)開始位置=3、長さ=2の部分領域
この部分領域に格納されている値は「00」である。すなわち、d(3,2)(1)は「00」である。また、パターン数DP(3,2)は「1」に更新される。さらに、部分領域の長さが4ではないので、チェックサム(計算式)可能性フラグ(3,2)が「0」に更新される。
(2i) Partial area with start position=3, length=2 The value stored in this partial area is "00". That is, d(3,2)(1) is "00". Also, the number of patterns DP(3,2) is updated to "1". Furthermore, since the length of the partial area is not 4, the checksum (calculation formula) possibility flag (3, 2) is updated to "0".
(2j)開始位置=4、長さ=1の部分領域
この部分領域に格納されている値は「0」である。即ち、d(4,1)(1)は「0」である。また、パターン数DP(4,1)は「1」に更新される。さらに、部分領域の長さが4ではないので、チェックサム(計算式)可能性フラグ(4,1)が「0」に更新される。
(2j) Partial area with start position=4, length=1 The value stored in this partial area is "0". That is, d(4,1)(1) is "0". Also, the number of patterns DP(4,1) is updated to "1". Furthermore, since the length of the partial area is not 4, the checksum (calculation formula) possibility flag (4, 1) is updated to "0".
図20は、上記2a~2jの処理結果を示す。なお、図20に示す形式2は、チェックサム(計算式)を表す。また、推定装置10は、当該メッセージの受信時刻を、後続のメッセージの処理のために「前回受信時刻=1.50」として記録する。
FIG. 20 shows the processing results of the above 2a to 2j.
(3)3番目のレコードのデータを取得
通信ログの3番目のレコードに記録されているデータは「受信時刻=2.00、ID=100、値=0110」である。ここで、このメッセージは「ID=200」を含まないので、取得したデータは破棄される。
(3) Acquiring the data of the third record The data recorded in the third record of the communication log is "reception time = 2.00, ID = 100, value = 0110". Here, since this message does not contain "ID=200", the acquired data is discarded.
(4)4番目のレコードのデータを取得
通信ログの4番目のレコードに記録されているデータは「受信時刻=2.50、ID=200、値=0000」である。ここで、このメッセージは「ID=200」を含むので、推定装置10は推定処理を実行する。
(4) Acquiring the data of the fourth record The data recorded in the fourth record of the communication log is "reception time = 2.50, ID = 200, value = 0000". Here, since this message includes "ID=200", the estimating
推定装置10は、当該メッセージの受信時刻と同じ識別子を含む直前の受信メッセージの受信時刻との差分を計算して「受信間隔dt=1.00」を得る。ここで、受信間隔dtは、「送信周期-th1」以上、且つ、「送信周期+th2」以下である。よって、推定装置10は、変数s_f、p_fを更新しない。ただし、部分領域に格納されている値が、「ID=200」を含む最初のメッセージ(即ち、メッセージM2)の同じ部分領域の値と異なるときは、推定装置10は、その部分領域の変数f_fを「0」に更新する。
The estimating
(4a)開始位置=1、長さ=1の部分領域
この部分領域に格納されている値は「0」である。即ち、d(1,1)(2)は「0」である。そして、当該部分領域に格納されている値は、前回のメッセージの同じ部分領域に格納されていた値(d(1,1)(1))と同じである。したがって、パターン数DP(1,1)は「1」のまま保持される。また、カウンタ可能性フラグ(1,1)および単調増加可能性フラグ(1,1)がそれぞれ「0」に更新される。なお、受信間隔dtが送信周期と一致しているが、当該部分領域の値(すなわち、「0」)は、「ID=200」を含む最初のメッセージ(すなわち、メッセージM2の)の同じ部分領域の値(すなわち、「0」)と同じなので、変数f_f(1,1)は更新されない。他の部分領域についても同様である。
(4a) Partial Area with Start Position=1, Length=1 The value stored in this partial area is "0". That is, d(1,1)(2) is "0". The value stored in the partial area is the same as the value (d(1,1)(1)) stored in the same partial area of the previous message. Therefore, the number of patterns DP(1,1) is kept as "1". Also, the counter possibility flag (1, 1) and the monotonically increasing possibility flag (1, 1) are updated to "0". Although the reception interval dt matches the transmission period, the value of the partial area (ie, "0") is the same partial area of the first message (ie, of message M2) containing "ID=200". (ie, '0'), the variable f_f(1,1) is not updated. The same applies to other partial areas.
(4b)開始位置=1、長さ=2の部分領域
この部分領域に格納されている値は「00」である。すなわち、d(1,2)(2)は「00」である。そして、当該部分領域に格納されている値は、前回のメッセージの同じ部分領域に格納されていた値(d(1,2)(1))と同じである。したがって、パターン数DP(1,2)は「1」のまま保持される。また、カウンタ可能性フラグ(1,2)および単調増加可能性フラグ(1,2)がそれぞれ「0」に更新される。
(4b) Partial area with start position=1, length=2 The value stored in this partial area is "00". That is, d(1,2)(2) is "00". The value stored in the partial area is the same as the value (d(1,2)(1)) stored in the same partial area of the previous message. Therefore, the number of patterns DP(1,2) is kept at "1". Also, the counter possibility flag (1, 2) and the monotonically increasing possibility flag (1, 2) are each updated to "0".
(4c)開始位置=1、長さ=3の部分領域
この部分領域に格納されている値は「000」である。すなわち、d(1,3)(2)は「000」である。そして、当該部分領域に格納されている値は、前回のメッセージの同じ部分領域に格納されていた値(d(1,3)(1))と同じである。したがって、パターン数DP(1,3)は「1」のまま保持される。また、カウンタ可能性フラグ(1,3)および単調増加可能性フラグ(1,3)がそれぞれ「0」に更新される。
(4c) Partial area with start position=1, length=3 The value stored in this partial area is "000". That is, d(1,3)(2) is "000". The value stored in the partial area is the same as the value (d(1,3)(1)) stored in the same partial area of the previous message. Therefore, the number of patterns DP(1,3) is kept as "1". Also, the counter possibility flag (1, 3) and the monotonically increasing possibility flag (1, 3) are updated to "0".
(4d)開始位置=1、長さ=4の部分領域
この部分領域に格納されている値は「0000」である。即ち、d(1,4)(2)は「0000」である。そして、当該部分領域に格納されている値は、前回のメッセージの同じ部分領域に格納されていた値(d(1,4)(1))と同じである。したがって、パターン数DP(1,4)は「1」のまま保持される。また、カウンタ可能性フラグ(1,4)および単調増加可能性フラグ(1,4)がそれぞれ「0」に更新される。
(4d) Partial area with start position=1, length=4 The value stored in this partial area is "0000". That is, d(1,4)(2) is "0000". The value stored in the partial area is the same as the value (d(1,4)(1)) stored in the same partial area of the previous message. Therefore, the number of patterns DP(1,4) is kept at "1". Also, the counter possibility flag (1, 4) and the monotonically increasing possibility flag (1, 4) are each updated to "0".
(4e)開始位置=2、長さ=1の部分領域
この部分領域に格納されている値は「0」である。即ち、d(2,1)(2)は「0」である。そして、当該部分領域に格納されている値は、前回のメッセージの同じ部分領域に格納されていた値(d(2,1)(1))と同じである。したがって、パターン数DP(2,1)は「1」のまま保持される。また、カウンタ可能性フラグ(2,1)および単調増加可能性フラグ(2,1)がそれぞれ「0」に更新される。
(4e) Partial area with start position=2, length=1 The value stored in this partial area is "0". That is, d(2,1)(2) is "0". The value stored in the partial area is the same as the value (d(2,1)(1)) stored in the same partial area of the previous message. Therefore, the number of patterns DP(2,1) is kept as "1". Also, the counter possibility flag (2, 1) and the monotonically increasing possibility flag (2, 1) are updated to "0".
(4f)開始位置=2、長さ=2の部分領域
この部分領域に格納されている値は「00」である。すなわち、d(2,2)(2)は「00」である。そして、当該部分領域に格納されている値は、前回のメッセージの同じ部分領域に格納されていた値(d(2,2)(1))と同じである。よって、パターン数DP(2,2)は「1」のまま保持される。また、カウンタ可能性フラグ(2,2)および単調増加可能性フラグ(2,2)がそれぞれ「0」に更新される。
(4f) Partial area with start position=2, length=2 The value stored in this partial area is "00". That is, d(2,2)(2) is "00". The value stored in the partial area is the same as the value (d(2,2)(1)) stored in the same partial area of the previous message. Therefore, the number of patterns DP(2,2) is kept as "1". Also, the counter possibility flag (2, 2) and the monotonically increasing possibility flag (2, 2) are updated to "0".
(4g)開始位置=2、長さ=3の部分領域
この部分領域に格納されている値は「000」である。すなわち、d(2,3)(2)は「000」である。そして、当該部分領域に格納されている値は、前回のメッセージの同じ部分領域に格納されていた値(d(2,3)(1))と同じである。よって、パターン数DP(2,3)は「1」のまま保持される。また、カウンタ可能性フラグ(2,3)および単調増加可能性フラグ(2,3)がそれぞれ「0」に更新される。
(4g) Partial area with start position=2, length=3 The value stored in this partial area is "000". That is, d(2,3)(2) is "000". The value stored in the partial area is the same as the value (d(2,3)(1)) stored in the same partial area of the previous message. Therefore, the number of patterns DP(2, 3) is kept as "1". Also, the counter possibility flag (2, 3) and the monotonically increasing possibility flag (2, 3) are updated to "0".
(4h)開始位置=3、長さ=1の部分領域
この部分領域に格納されている値は「0」である。即ち、d(3,1)(2)は「0」である。そして、当該部分領域に格納されている値は、前回のメッセージの同じ部分領域に格納されていた値(d(3,1)(1))と同じである。したがって、パターン数DP(3,1)は「1」のまま保持される。また、カウンタ可能性フラグ(3,1)および単調増加可能性フラグ(3,1)がそれぞれ「0」に更新される。
(4h) Partial area with start position=3, length=1 The value stored in this partial area is "0". That is, d(3,1)(2) is "0". The value stored in the partial area is the same as the value (d(3,1)(1)) stored in the same partial area of the previous message. Therefore, the number of patterns DP(3,1) is kept at "1". Also, the counter possibility flag (3, 1) and the monotonically increasing possibility flag (3, 1) are updated to "0".
(4i)開始位置=3、長さ=2の部分領域
この部分領域に格納されている値は「00」である。すなわち、d(3,2)(2)は「00」である。そして、当該部分領域に格納されている値は、前回のメッセージの同じ部分領域に格納されていた値(d(3,2)(1))と同じである。よって、パターン数DP(3,2)は「1」のまま保持される。また、カウンタ可能性フラグ(3,2)および単調増加可能性フラグ(3,2)がそれぞれ「0」に更新される。
(4i) Partial area with start position=3, length=2 The value stored in this partial area is "00". That is, d(3,2)(2) is "00". The value stored in the partial area is the same as the value (d(3,2)(1)) stored in the same partial area of the previous message. Therefore, the number of patterns DP(3,2) is kept as "1". Also, the counter possibility flag (3, 2) and the monotonically increasing possibility flag (3, 2) are updated to "0".
(4j)開始位置=4、長さ=1の部分領域
この部分領域に格納されている値は「0」である。即ち、d(4,1)(2)は「0」である。そして、当該部分領域に格納されている値は、前回のメッセージの同じ部分領域に格納されていた値(d(4,1)(1))と同じである。したがって、パターン数DP(4,1)は「1」のまま保持される。また、カウンタ可能性フラグ(4,1)および単調増加可能性フラグ(4,1)がそれぞれ「0」に更新される。
(4j) Partial area with start position=4, length=1 The value stored in this partial area is "0". That is, d(4,1)(2) is "0". The value stored in the partial area is the same as the value (d(4,1)(1)) stored in the same partial area of the previous message. Therefore, the number of patterns DP(4,1) is kept at "1". Also, the counter possibility flag (4, 1) and the monotonically increasing possibility flag (4, 1) are updated to "0".
図21は、上記4a~4jの処理結果を示す。なお、形式3は、カウンタを表す。形式4は、単調増加を表す。また、推定装置10は、当該メッセージの受信時刻を、後続のメッセージの処理のために「前回受信時刻=2.50」として記録する。
FIG. 21 shows the results of the processes 4a to 4j. Note that
(5)5番目のレコードのデータを取得
通信ログの5番目のレコードに記録されているデータは「受信時刻=3.00、ID=100、値=1001」である。ここで、このメッセージは「ID=200」を含まないので、取得したデータは破棄される。
(5) Acquiring the data of the 5th record The data recorded in the 5th record of the communication log is "reception time = 3.00, ID = 100, value = 1001". Here, since this message does not contain "ID=200", the acquired data is discarded.
(6)6番目のレコードのデータを取得
通信ログの6番目のレコードに記録されているデータは「受信時刻=3.25、ID=200、値=0100」である。ここで、このメッセージは「ID=200」を含むので、推定装置10は推定処理を実行する。
(6) Acquiring the data of the sixth record The data recorded in the sixth record of the communication log is "reception time = 3.25, ID = 200, value = 0100". Here, since this message includes "ID=200", the estimating
なお、推定装置10は、当該メッセージの受信時刻と同じ識別子を含む直前の受信メッセージの受信時刻との差分を計算して「受信間隔dt=0.75」を得る。ここで、受信間隔dtは、「送信周期-th1」以下である。したがって、推定装置10は、図22に示すように、各部分領域の変数p_fをそれぞれ「0」に更新する。なお、この処理は、図11または図13に示すS15~S16に相当する。
Note that the estimating
(6a)開始位置=1、長さ=1の部分領域
この部分領域に格納されている値は「0」である。即ち、d(1,1)(3)は「0」である。ここで、当該部分領域に格納されている値は、過去に受信したメッセージの同じ部分領域に格納されている値に対して新たな値ではない。よって、パターン数DP(1,1)は「1」のまま保持される。また、受信間隔dtが「送信周期-th1」以下である状況において、当該部分領域に格納されている値は、最初のメッセージの同じ部分領域に格納されている値(d(1,1)(1))と同じである。よって、変数f_f(1,1)が「0」に更新される。この処理は、図11に示すS17~S18に相当する。
(6a) Partial area with start position=1, length=1 The value stored in this partial area is "0". That is, d(1,1)(3) is "0". Here, the value stored in the partial area is not a new value with respect to the value stored in the same partial area of the previously received message. Therefore, the number of patterns DP(1,1) is kept as "1". In addition, in a situation where the reception interval dt is equal to or less than "transmission period - th1", the value stored in the partial area is the value (d(1,1)( 1)) is the same. Therefore, the variable f_f(1,1) is updated to "0". This process corresponds to S17-S18 shown in FIG.
(6b)開始位置=1、長さ=2の部分領域
この部分領域に格納されている値は「01」である。すなわち、d(1,2)(3)は「01」である。ここで、この値は、過去に受信したメッセージの同じ部分領域に格納されているいずれの値とも異なる。したがって、パターン数DP(1,2)は「2」に更新され、固定値可能性フラグ(1,2)は「0」に更新される。
(6b) Partial area with start position=1, length=2 The value stored in this partial area is "01". That is, d(1,2)(3) is "01". Here, this value is different from any value stored in the same partial area of the previously received message. Therefore, the pattern number DP(1,2) is updated to "2" and the fixed value possibility flag (1,2) is updated to "0".
(6c)開始位置=1、長さ=3の部分領域
この部分領域に格納されている値は「010」である。すなわち、d(1,3)(3)は「010」である。ここで、この値は、過去に受信したメッセージの同じ部分領域に格納されているいずれの値とも異なる。したがって、パターン数DP(1,3)は「2」に更新され、固定値可能性フラグ(1,3)が「0」に更新される。
(6c) Partial area with start position=1, length=3 The value stored in this partial area is "010". That is, d(1,3)(3) is "010". Here, this value is different from any value stored in the same partial area of the previously received message. Therefore, the pattern number DP(1,3) is updated to "2" and the fixed value possibility flag (1,3) is updated to "0".
(6d)開始位置=1、長さ=4の部分領域
この部分領域に格納されている値は「0100」である。即ち、d(1,4)(3)は「0100」である。ここで、この値は、過去に受信したメッセージの同じ部分領域に格納されているいずれの値とも異なる。したがって、パターン数DP(1,4)は「2」に更新され、固定値可能性フラグ(1,4)が「0」に更新される。また、当該部分領域の第1~第3ビットの和が第4ビットの値と一致していないので、チェックサム(計算式)可能性フラグ(1,4)は「0」に更新される。
(6d) Partial area with start position=1, length=4 The value stored in this partial area is "0100". That is, d(1,4)(3) is "0100". Here, this value is different from any value stored in the same partial area of the previously received message. Therefore, the pattern number DP(1,4) is updated to "2" and the fixed value possibility flag (1,4) is updated to "0". Also, since the sum of the 1st to 3rd bits of the partial area does not match the value of the 4th bit, the checksum (calculation formula) possibility flag (1, 4) is updated to "0".
(6e)開始位置=2、長さ=1の部分領域
この部分領域に格納されている値は「1」である。即ち、d(2,1)(3)は「1」である。ここで、この値は、過去に受信したメッセージの同じ部分領域に格納されているいずれの値とも異なる。したがって、パターン数DP(2,1)は「2」に更新され、固定値可能性フラグ(2,1)が「0」に更新される。
(6e) Partial area with start position=2, length=1 The value stored in this partial area is "1". That is, d(2,1)(3) is "1". Here, this value is different from any value stored in the same partial area of the previously received message. Therefore, the pattern number DP (2, 1) is updated to "2" and the fixed value possibility flag (2, 1) is updated to "0".
(6f)開始位置=2、長さ=2の部分領域
この部分領域に格納されている値は「10」である。すなわち、d(2,2)(3)は「10」である。ここで、この値は、過去に受信したメッセージの同じ部分領域に格納されているいずれの値とも異なる。したがって、パターン数DP(2,2)は「2」に更新され、固定値可能性フラグ(2,2)が「0」に更新される。
(6f) Subregion with start position=2, length=2 The value stored in this subregion is "10". That is, d(2,2)(3) is "10". Here, this value is different from any value stored in the same partial area of the previously received message. Therefore, the pattern number DP(2,2) is updated to "2" and the fixed value possibility flag (2,2) is updated to "0".
(6g)開始位置=2、長さ=3の部分領域
この部分領域に格納されている値は「100」である。すなわち、d(2,3)(3)は「100」である。ここで、この値は、過去に受信したメッセージの同じ部分領域に格納されているいずれの値とも異なる。したがって、パターン数DP(2,3)は「2」に更新され、固定値可能性フラグ(2,3)が「0」に更新される。
(6g) Subregion with start position=2, length=3 The value stored in this subregion is "100". That is, d(2,3)(3) is "100". Here, this value is different from any value stored in the same partial area of the previously received message. Therefore, the pattern number DP (2, 3) is updated to "2" and the fixed value possibility flag (2, 3) is updated to "0".
(6h)開始位置=3、長さ=1の部分領域
この部分領域に格納されている値は「0」である。即ち、d(3,1)(3)は「0」である。ここで、この値は、過去に受信したメッセージの同じ部分領域に格納されている値に対して新たな値ではない。したがって、パターン数DP(3,1)は「1」のまま保持される。また、受信間隔dtが「送信周期-th1」以下である状況において、当該部分領域に格納されている値は、最初のメッセージの同じ部分領域に格納されている値(d(3,1)(1))と同じである。したがって、変数f_f(3,2)が「0」に更新される。
(6h) Partial area with start position=3, length=1 The value stored in this partial area is "0". That is, d(3,1)(3) is "0". Here, this value is not a new value with respect to the value stored in the same partial area of the previously received message. Therefore, the number of patterns DP(3,1) is kept at "1". In addition, in a situation where the reception interval dt is equal to or less than "transmission period - th1", the value stored in the partial area is the value (d(3, 1) ( 1)) is the same. Therefore, the variable f_f(3,2) is updated to "0".
(6i)開始位置=3、長さ=2の部分領域
この部分領域に格納されている値は「00」である。すなわち、d(3,2)(3)は「00」である。ここで、この値は、過去に受信したメッセージの同じ部分領域に格納されている値に対して新たな値ではない。したがって、パターン数DP(3,2)は「1」のまま保持される。また、受信間隔dtが「送信周期-th1」以下である状況において、当該部分領域に格納されている値は、最初のメッセージの同じ部分領域に格納されている値(d(3,2)(1))と同じである。したがって、変数f_f(3,2)が「0」に更新される。
(6i) Partial area with start position=3, length=2 The value stored in this partial area is "00". That is, d(3,2)(3) is "00". Here, this value is not a new value with respect to the value stored in the same partial area of the previously received message. Therefore, the number of patterns DP(3,2) is kept at "1". In addition, in a situation where the reception interval dt is equal to or less than "transmission period - th1", the value stored in the partial area is the value (d(3,2)( 1)) is the same. Therefore, the variable f_f(3,2) is updated to "0".
(6j)開始位置=4、長さ=1の部分領域
この部分領域に格納されている値は「0」である。即ち、d(4,1)(3)は「0」である。ここで、この値は、過去に受信したメッセージの同じ部分領域に格納されている値に対して新たな値ではない。したがって、パターン数DP(4,1)は「1」のまま保持される。また、受信間隔dtが「送信周期-th1」以下である状況において、当該部分領域に格納されている値は、最初のメッセージの同じ部分領域に格納されている値(d(4,1)(1))と同じである。したがって、変数f_f(4,1)が「0」に更新される。
(6j) Partial area with start position=4, length=1 The value stored in this partial area is "0". That is, d(4,1)(3) is "0". Here, this value is not a new value with respect to the value stored in the same partial area of the previously received message. Therefore, the number of patterns DP(4,1) is kept at "1". In addition, in a situation where the reception interval dt is equal to or less than "transmission period - th1", the value stored in the partial area is the value (d(4, 1) ( 1)) is the same. Therefore, the variable f_f(4,1) is updated to "0".
図22は、上記6a~6jの処理結果を示す。なお、上述したように、各部分領域の変数p_fは、いずれも「0」に更新されている。また、推定装置10は、当該メッセージの受信時刻を、後続のメッセージの処理のために「前回受信時刻=3.25」として記録する。
FIG. 22 shows the results of the processes 6a to 6j. Note that, as described above, the variable p_f of each partial area has been updated to "0". In addition, the estimating
(7)7番目のレコードのデータを取得
通信ログの7番目のレコードに記録されているデータは「受信時刻=4.00、ID=100、値=0111」である。ここで、このメッセージは「ID=200」を含まないので、取得したデータは破棄される。
(7) Acquiring the data of the 7th record The data recorded in the 7th record of the communication log is "reception time = 4.00, ID = 100, value = 0111". Here, since this message does not contain "ID=200", the acquired data is discarded.
(8)8番目のレコードのデータを取得
通信ログの8番目のレコードに記録されているデータは「受信時刻=4.25、ID=200、値=0000」である。ここで、このメッセージは「ID=200」を含むので、推定装置10は推定処理を実行する。
(8) Acquiring the data of the 8th record The data recorded in the 8th record of the communication log is "reception time = 4.25, ID = 200, value = 0000". Here, since this message includes "ID=200", the estimating
推定装置10は、当該メッセージの受信時刻と同じ識別子を含む直前の受信メッセージの受信時刻との差分を計算して「受信間隔dt=1.00」を得る。ここで、受信間隔dtは、「送信周期-th1」以上、且つ、「送信周期+th2」以下である。よって、推定装置10は、変数s_f、p_fを更新しない。ただし、部分領域に格納されている値が、「ID=200」を含む最初のメッセージ(即ち、メッセージM2)の同じ部分領域の値と異なるときは、推定装置10は、その部分領域の変数f_fを「0」に更新する。
The estimating
(8a)開始位置=1、長さ=1の部分領域
この部分領域に格納されている値は「0」である。即ち、d(1,1)(4)は「0」である。ここで、当該部分領域に格納されている値は、過去に受信したメッセージの同じ部分領域に格納されている値に対して新たな値ではない。よって、パターン数DP(1,1)は更新されない。
(8a) Partial area with start position=1, length=1 The value stored in this partial area is "0". That is, d(1,1)(4) is "0". Here, the value stored in the partial area is not a new value with respect to the value stored in the same partial area of the previously received message. Therefore, the pattern number DP(1,1) is not updated.
(8b)開始位置=1、長さ=2の部分領域
この部分領域に格納されている値は「00」である。すなわち、d(1,2)(4)は「00」である。ここで、この値は、過去に受信したメッセージの同じ部分領域に格納されている値に対して新たな値ではない。よって、パターン数DP(1,2)は更新されない。
(8b) Partial area with start position=1, length=2 The value stored in this partial area is "00". That is, d(1,2)(4) is "00". Here, this value is not a new value with respect to the value stored in the same partial area of the previously received message. Therefore, the pattern number DP(1,2) is not updated.
(8c)開始位置=1、長さ=3の部分領域
この部分領域に格納されている値は「000」である。すなわち、d(1,3)(4)は「000」である。ここで、この値は、過去に受信したメッセージの同じ部分領域に格納されている値に対して新たな値ではない。よって、パターン数DP(1,3)は更新されない。
(8c) Partial area with start position=1, length=3 The value stored in this partial area is "000". That is, d(1,3)(4) is "000". Here, this value is not a new value with respect to the value stored in the same partial area of the previously received message. Therefore, the pattern number DP(1,3) is not updated.
(8d)開始位置=1、長さ=4の部分領域
この部分領域に格納されている値は「0000」である。即ち、d(1,4)(4)は「0000」である。ここで、この値は、過去に受信したメッセージの同じ部分領域に格納されている値に対して新たな値ではない。よって、パターン数DP(1,4)は更新されない。
(8d) Partial area with start position=1, length=4 The value stored in this partial area is "0000". That is, d(1,4)(4) is "0000". Here, this value is not a new value with respect to the value stored in the same partial area of the previously received message. Therefore, the pattern number DP(1,4) is not updated.
(8e)開始位置=2、長さ=1の部分領域
この部分領域に格納されている値は「0」である。即ち、d(2,1)(4)は「0」である。ここで、この値は、過去に受信したメッセージの同じ部分領域に格納されている値に対して新たな値ではない。よって、パターン数DP(2,1)は更新されない。
(8e) Partial area with start position=2, length=1 The value stored in this partial area is "0". That is, d(2,1)(4) is "0". Here, this value is not a new value with respect to the value stored in the same partial area of the previously received message. Therefore, the pattern number DP(2,1) is not updated.
(8f)開始位置=2、長さ=2の部分領域
この部分領域に格納されている値は「00」である。すなわち、d(2,2)(4)は「00」である。ここで、この値は、過去に受信したメッセージの同じ部分領域に格納されている値に対して新たな値ではない。よって、パターン数DP(2,2)は更新されない。
(8f) Partial area with start position=2, length=2 The value stored in this partial area is "00". That is, d(2,2)(4) is "00". Here, this value is not a new value with respect to the value stored in the same partial area of the previously received message. Therefore, the pattern number DP(2,2) is not updated.
(8g)開始位置=2、長さ=3の部分領域
この部分領域に格納されている値は「000」である。すなわち、d(2,3)(4)は「000」である。ここで、この値は、過去に受信したメッセージの同じ部分領域に格納されている値に対して新たな値ではない。よって、パターン数DP(2,3)は更新されない。
(8g) Partial area with start position=2, length=3 The value stored in this partial area is "000". That is, d(2,3)(4) is "000". Here, this value is not a new value with respect to the value stored in the same partial area of the previously received message. Therefore, the pattern number DP(2,3) is not updated.
(8h)開始位置=3、長さ=1の部分領域
この部分領域に格納されている値は「0」である。即ち、d(3,1)(4)は「0」である。ここで、この値は、過去に受信したメッセージの同じ部分領域に格納されている値に対して新たな値ではない。よって、パターン数DP(3,1)は更新されない。
(8h) Partial area with start position=3, length=1 The value stored in this partial area is "0". That is, d(3,1)(4) is "0". Here, this value is not a new value with respect to the value stored in the same partial area of the previously received message. Therefore, the pattern number DP(3,1) is not updated.
(8i)開始位置=3、長さ=2の部分領域
この部分領域に格納されている値は「00」である。すなわち、d(3,2)(4)は「00」である。ここで、この値は、過去に受信したメッセージの同じ部分領域に格納されている値に対して新たな値ではない。よって、パターン数DP(3,2)は更新されない。
(8i) Partial area with start position=3, length=2 The value stored in this partial area is "00". That is, d(3,2)(4) is "00". Here, this value is not a new value with respect to the value stored in the same partial area of the previously received message. Therefore, the pattern number DP(3,2) is not updated.
(8j)開始位置=4、長さ=1の部分領域
この部分領域に格納されている値は「0」である。即ち、d(4,1)(4)は「0」である。ここで、この値は、過去に受信したメッセージの同じ部分領域に格納されている値に対して新たな値ではない。よって、パターン数DP(4,1)は更新されない。
(8j) Partial area with start position=4, length=1 The value stored in this partial area is "0". That is, d(4,1)(4) is "0". Here, this value is not a new value with respect to the value stored in the same partial area of the previously received message. Therefore, the pattern number DP(4,1) is not updated.
(9)送信タイプの推定
推定装置10は、各部分領域について、図12のS31~S35を実行する。ここで、上記処理が終了した時点で、部分領域(1,1)、(3,1)、(3,2)、(4,1)に対して設けられる変数p_fおよび変数f_fがそれぞれ「0」に更新されている。したがって、これらの部分領域に対応する送信タイプは、図22に示すように、「非周期」と判定される。他の部分領域は、図12のS31の条件を満たすので、その送信タイプは「イベント(特定値)」と判定される。
(9) Transmission Type Estimation The
さらに、1以上の部分領域に対応する送信タイプが「イベント(特定値)」と判定されたときは、推定装置10は、メッセージの送信タイプが「イベント(特定値)」であると推定する。したがって、推定装置10は、ID=200を含むメッセージは、「イベント送信付き周期メッセージ」であると推定する。
Furthermore, when the transmission type corresponding to one or more partial areas is determined to be "event (specific value)", estimating
(10)形式5~8の推定
データ領域に格納されている値を「符号付きデータ」と仮定すると、その値は「0」→「4」→「0」→「0」と推移し、その分散は小さい。よって、符号付き連続値可能性フラグ(1,4)は「1」のまま保持される。また、データ領域に格納されている値を「符号なしデータ」と仮定したケースでも、その値の推移は同じなので、符号なし連続値可能性フラグ(1,4)も「1」のまま保持される。
(10) Estimation of
各部分領域に格納されている値は、一様に分布しているとはいえない。よって、すべての部分領域について、チェックサム(一様)可能性フラグが「0」に更新される。 The values stored in each partial area are not evenly distributed. Therefore, the checksum (uniform) possibility flag is updated to "0" for all partial areas.
(11)重複解消処理
図22に示すように、部分領域(1,1)(3,1)(4,1)に対して設けられている固定値可能性フラグがそれぞれ「1」である。すなわち、データ領域内の第1ビット、第3ビット、および第4ビットの固定値可能性フラグがそれぞれ「1」である。よって、これらのビットは、それぞれ「固定値」に確定する。したがって、第2ビットについてデータ形式の推定が行われる。ここで、開始位置(i)とデータ長(j)との和が8の倍数となる部分領域は存在しない。よって、推定装置10は、データ長の長い部分領域(すなわち、部分領域(2,1))から重複解消処理を開始する。
(11a)部分領域(2,1)のチェックサム(計算式)可能性フラグ(図22では、形式2)は「0」に更新されているので、データ形式は確定しない。
(11b)部分領域(2,1)のイベント可能性フラグは「1」のまま保持されているので、データ形式が「イベント(特定値)」に確定される。したがって、推定装置10は、第1ビット、第3ビット、および第4ビットのデータを「固定値」と推定し、第2ビットのデータを「イベント(特定値)」と推定する。
(11) Duplication Elimination Processing As shown in FIG. 22, the fixed value possibility flags provided for the partial areas (1,1), (3,1), and (4,1) are "1". That is, the fixed value possibility flags of the 1st, 3rd and 4th bits in the data area are each "1". Therefore, these bits are determined to be "fixed values" respectively. Therefore, an estimation of the data type is made for the second bit. Here, there is no partial area in which the sum of the starting position (i) and the data length (j) is a multiple of eight. Therefore, the estimating
(11a) Since the checksum (calculation formula) possibility flag (
(11b) Since the event possibility flag of the partial area (2, 1) remains "1", the data format is determined as "event (specific value)". Therefore, the estimating
このように、本発明の実施形態に係わる推定方法は、データ領域内のデータの振る舞いに基づいてデータの形式を推定しながら、メッセージの送信タイプを推定できる。したがって、攻撃検知のための事前準備処理において、通信ログを解析する時間が削減される。これ加えて、通常時には周期的に送信され、且つ、イベント発生時には送信周期に対して非同期で送信されるメッセージ(上述の例では、イベント送信付き周期メッセージ)を識別できる。よって、本発明の実施形態に係わる推定方法により得られる推定結果を利用すれば、攻撃検知の精度が向上する。 Thus, the estimation method according to the embodiment of the present invention can estimate the transmission type of the message while estimating the format of the data based on the behavior of the data within the data area. Therefore, the time for analyzing the communication log is reduced in the preparatory process for attack detection. In addition, it is possible to identify messages that are normally transmitted periodically and that are transmitted asynchronously with respect to the transmission cycle when an event occurs (periodic messages with event transmission in the above example). Therefore, using the estimation result obtained by the estimation method according to the embodiment of the present invention improves the accuracy of attack detection.
上述の実施例を含む実施形態に関し、さらに下記の付記を開示する。
(付記1)
ネットワーク内で送信されるメッセージの特徴を推定する推定方法であって、
各メッセージの受信時刻および各メッセージに格納されているデータが記録された通信ログを参照し、
各メッセージについて、当該メッセージの受信時刻と当該メッセージの受信前に受信したメッセージの受信時刻との差分を表す受信間隔を計算し、
各メッセージのデータ領域内の位置および長さの組合せで指定される複数の異なる部分領域それぞれに格納されている値を検出することで、各部分領域について、検出される異なる値の数を表すパターン数をそれぞれカウントし、
各部分領域に対して設けられている、メッセージの受信間隔が所定の送信周期と対応するか否かを表す第1の変数、および、メッセージの受信間隔が所定のイベントの発生時以外の期間において前記送信周期と対応するか否かを表す第2の変数を、前記受信間隔および当該部分領域に格納されている値に基づいてそれぞれ更新し、
前記第1の変数、前記第2の変数、および前記パターン数に基づいて、メッセージの送信タイプおよびメッセージのデータ領域内に格納されているデータの形式を推定する
ことを特徴とする推定方法。
(付記2)
前記第2の変数は、メッセージの受信間隔が所定のイベントの発生時以外の期間において前記送信周期と対応するか否か、及び、イベントの発生時以外の期間において当該部分領域に格納される値がイベント発生時以外に格納されるべき値であるか否かを表す
ことを特徴とする付記1に記載の推定方法。
(付記3)
前記第1の変数および前記第2の変数の初期状態はそれぞれ第1の状態であり、
処理対象の受信メッセージとその直前に受信した同じ識別子を有する受信メッセージとの間の受信間隔が前記送信周期より短いときに、各部分領域に対して設けられている第1の変数をそれぞれ第2の状態に更新し、
前記受信間隔が前記送信周期より短く、且つ、前記処理対象の受信メッセージ中の第1の部分領域の値が最初の受信メッセージ中の第1の部分領域の値と一致するときに、前記第1の部分領域に対して設けられている第2の変数を第2の状態に更新し、
前記受信間隔が前記送信周期より長いときに、各部分領域に対して設けられている第1の変数および第2の変数をそれぞれ第2の状態に更新し、
前記複数の部分領域のうちの少なくとも1つの部分領域に対して設けられている第2の変数が第1の状態を表し、且つ、前記少なくとも1つの部分領域のパターン数が2以上であるときに、
受信メッセージは、前記所定のイベントが発生しない期間には前記送信周期で送信され、且つ、
前記受信メッセージは、前記所定のイベントの発生時に特定の値が設定される部分領域を含む、と推定する
ことを特徴とする付記1に記載の推定方法。
(付記4)
前記複数の部分領域のうちの少なくとも1つの部分領域に対して設けられている第2の変数が第1の状態を表し、且つ、前記少なくとも1つの部分領域のパターン数が2以上であり、且つ、前記少なくとも1つの部分領域に対して設けられている第1の変数が第2の状態を表すときに、
受信メッセージは、前記所定のイベントが発生しない期間には前記送信周期で送信され、且つ、
前記受信メッセージは、前記所定のイベントの発生時に特定の値が設定される部分領域を含む、と推定する
ことを特徴とする付記3に記載の推定方法。
(付記5)
各部分領域に対して設けられている、メッセージの受信間隔が所定の送信周期より短いか否かを表す第3の変数を管理し、
前記第3の変数の初期状態は第1の状態であり、
前記受信間隔が前記送信周期以上であるときに、各部分領域に対して設けられている前記第3の変数をそれぞれ第2の状態に更新し、
前記複数の部分領域のうちの少なくとも1つの部分領域に対して設けられている第2の変数が第1の状態を表し、且つ、前記少なくとも1つの部分領域のパターン数が2以上であり、且つ、前記少なくとも1つの部分領域に対して設けられている第3の変数が第1の状態を表すときに、
受信メッセージは、前記所定のイベントが発生しない期間には前記送信周期で送信され、且つ、
前記受信メッセージは、前記所定のイベントの発生時に特定の値が設定される部分領域を含む、と推定する
ことを特徴とする付記3に記載の推定方法。
(付記6)
前記第1の変数および前記第2の変数の初期状態はそれぞれ第1の状態であり、
処理対象の受信メッセージとその直前に受信した同じ識別子を有する受信メッセージとの間の受信間隔が前記送信周期より短いときに、各部分領域に対して設けられている第1の変数をそれぞれ第2の状態に更新し、
前記受信間隔が前記送信周期より短く、且つ、前記処理対象の受信メッセージ中の第1の部分領域の値がその直前の受信メッセージ中の第1の部分領域の値と一致するときに、前記第1の部分領域に対して設けられている第2の変数を第2の状態に更新し、
前記受信間隔が前記送信周期より長いときに、各部分領域に対して設けられている第1の変数および第2の変数をそれぞれ第2の状態に更新し、
前記複数の部分領域のうちの少なくとも1つの部分領域に対して設けられている第2の変数が第1の状態を表すときに、
受信メッセージは、前記所定のイベントが発生しない期間には前記送信周期で送信され、且つ、
前記受信メッセージは、前記所定のイベントの発生時に値が変化する部分領域を含む、と推定する
ことを特徴とする付記1に記載の推定方法。
(付記7)
各部分領域に対して設けられている、メッセージの受信間隔が所定の送信周期より短いか否かを表す第3の変数を管理し、
前記第3の変数の初期状態は第1の状態であり、
前記受信間隔が前記送信周期以上であるときに、各部分領域に対して設けられている前記第3の変数をそれぞれ第2の状態に更新し、
前記複数の部分領域のうちの少なくとも1つの部分領域に対して設けられている第2の変数が第1の状態を表し、且つ、前記少なくとも1つの部分領域に対して設けられている第3の変数が第1の状態を表すときに、
受信メッセージは、前記所定のイベントが発生しない期間には前記送信周期で送信され、且つ、
前記受信メッセージは、前記所定のイベントの発生時に値が変化する部分領域を含む、と推定する
ことを特徴とする付記6に記載の推定方法。
(付記8)
前記第2の変数は、メッセージの受信間隔が所定のイベントの発生時以外の期間において前記送信周期と対応するか否か、及び、イベントの発生時以外の期間において当該部分領域に格納される値がイベント発生時以外に格納されるべき値であるか否かを表し、
前記受信間隔が前記送信周期と対応し、且つ、前記処理対象の受信メッセージ中の第2の部分領域の値がイベント発生時以外に格納されるべき値と異なるときに、前記第2の部分領域に対して設けられている第2の変数を第2の状態に更新する
ことを特徴とする付記3または6に記載の推定方法。
(付記9)
メッセージのデータ領域に格納されているデータの形式が、イベントが発生したときに特定の値に設定されるデータ、イベントが発生したときに値が変化するデータ、固定値、符号なし連続値、符号付き連続値、計算式によるチェックサム、一様性を示すチェックサム、カウンタ、単調増加、マルチ値のいずれに該当するかを判定する
ことを特徴とする付記1~8のいずれか1つに記載の推定方法。
(付記10)
各メッセージの受信時刻および各メッセージに格納されているデータが記録された通信ログを参照し、
各メッセージについて、当該メッセージの受信時刻と当該メッセージの受信前に受信したメッセージの受信時刻との差分を表す受信間隔を計算し、
各メッセージのデータ領域内の位置および長さの組合せで指定される複数の異なる部分領域それぞれに格納されている値を検出することで、各部分領域について、検出される異なる値の数を表すパターン数をそれぞれカウントし、
各部分領域に対して設けられている、メッセージの受信間隔が所定の送信周期と対応するか否かを表す第1の変数、および、メッセージの受信間隔が所定のイベントの発生時以外の期間において前記送信周期と対応するか否かを表す第2の変数を、前記受信間隔および当該部分領域に格納されている値に基づいてそれぞれ更新し、
前記第1の変数、前記第2の変数、および前記パターン数に基づいて、メッセージの送信タイプおよびメッセージのデータ領域内に格納されているデータの形式を推定する
処理をコンピュータに実行させるプログラム。
(付記11)
ネットワーク内で送信されるメッセージの特徴を推定する情報処理装置であって、
各メッセージの受信時刻および各メッセージに格納されているデータが記録された通信ログを保存する保存部と、
前記通信ログを参照して、各メッセージについて、当該メッセージの受信時刻と当該メッセージの受信前に受信したメッセージの受信時刻との差分を表す受信間隔を計算する受信間隔計算部と、
前記通信ログを参照して、各メッセージのデータ領域内の位置および長さの組合せで指定される複数の異なる部分領域それぞれに格納されている値を検出することで、各部分領域について、検出される異なる値の数を表すパターン数をそれぞれカウントするカウンタと、
各部分領域に対して設けられている、メッセージの受信間隔が所定の送信周期と対応するか否かを表す第1の変数、および、メッセージの受信間隔が所定のイベントの発生時以外の期間において前記送信周期と対応するか否かを表す第2の変数を、前記受信間隔および当該部分領域に格納されている値に基づいてそれぞれ更新する更新部と、
前記第1の変数、前記第2の変数、および前記パターン数に基づいて、メッセージの送信タイプおよびメッセージのデータ領域内に格納されているデータの形式を推定する推定部と、
を備える情報処理装置。
The following notes are further disclosed with respect to embodiments, including the above examples.
(Appendix 1)
An estimation method for estimating characteristics of a message sent in a network, comprising:
Refer to communication logs that record the time each message was received and the data stored in each message,
calculating, for each message, a reception interval representing the difference between the reception time of the message and the reception time of the message received prior to the reception of the message;
A pattern representing the number of different values found for each sub-area by finding the values stored in each of a number of different sub-areas specified by a combination of position and length within the data area of each message count each number,
A first variable provided for each partial area that indicates whether the message reception interval corresponds to a predetermined transmission cycle, and a message reception interval during a period other than when a predetermined event occurs updating a second variable representing whether or not it corresponds to the transmission period based on the reception interval and the value stored in the partial area;
An estimation method, comprising: estimating a transmission type of a message and a format of data stored in a data area of the message based on the first variable, the second variable, and the number of patterns.
(Appendix 2)
The second variable is whether or not the message reception interval corresponds to the transmission cycle during a period other than the occurrence of a predetermined event, and the value stored in the partial area during the period other than the occurrence of the event. The estimation method according to
(Appendix 3)
initial states of the first variable and the second variable are each a first state;
When the reception interval between the received message to be processed and the immediately preceding received message having the same identifier is shorter than the transmission period, the first variable provided for each partial area is changed to the second variable. update to the state of
When the reception interval is shorter than the transmission period and the value of the first partial area in the received message to be processed matches the value of the first partial area in the first received message, the first updating a second variable provided for a partial area of to a second state;
updating a first variable and a second variable provided for each partial area to a second state when the reception interval is longer than the transmission period;
when a second variable provided for at least one partial area among the plurality of partial areas represents a first state, and the number of patterns in the at least one partial area is two or more; ,
The received message is transmitted at the transmission cycle during a period in which the predetermined event does not occur, and
The estimation method according to
(Appendix 4)
A second variable provided for at least one partial area of the plurality of partial areas represents a first state, and the number of patterns in the at least one partial area is two or more, and , when a first variable provided for said at least one subregion represents a second state,
The received message is transmitted at the transmission cycle during a period in which the predetermined event does not occur, and
The estimation method according to
(Appendix 5)
managing a third variable indicating whether or not the message reception interval is shorter than a predetermined transmission period, provided for each partial area;
the initial state of the third variable is the first state;
updating the third variable provided for each partial area to a second state when the reception interval is equal to or greater than the transmission period;
A second variable provided for at least one partial area of the plurality of partial areas represents a first state, and the number of patterns in the at least one partial area is two or more, and , when a third variable provided for said at least one subregion represents a first state,
The received message is transmitted at the transmission cycle during a period in which the predetermined event does not occur, and
The estimation method according to
(Appendix 6)
initial states of the first variable and the second variable are each a first state;
When the reception interval between the received message to be processed and the immediately preceding received message having the same identifier is shorter than the transmission period, the first variable provided for each partial area is changed to the second variable. update to the state of
When the reception interval is shorter than the transmission period and the value of the first partial area in the received message to be processed matches the value of the first partial area in the immediately preceding received message, the first updating a second variable provided for one partial area to a second state;
updating a first variable and a second variable provided for each partial area to a second state when the reception interval is longer than the transmission period;
when a second variable provided for at least one partial area of the plurality of partial areas represents a first state,
The received message is transmitted at the transmission cycle during a period in which the predetermined event does not occur, and
The estimation method according to
(Appendix 7)
managing a third variable indicating whether or not the message reception interval is shorter than a predetermined transmission period, provided for each partial area;
the initial state of the third variable is the first state;
updating the third variable provided for each partial area to a second state when the reception interval is equal to or greater than the transmission period;
A second variable provided for at least one partial area of the plurality of partial areas represents a first state, and a third variable provided for the at least one partial area When the variable represents the first state,
The received message is transmitted at the transmission cycle during a period in which the predetermined event does not occur, and
The estimation method according to
(Appendix 8)
The second variable is whether or not the message reception interval corresponds to the transmission cycle during a period other than the occurrence of a predetermined event, and the value stored in the partial area during the period other than the occurrence of the event. indicates whether or not is a value that should be stored except when an event occurs,
When the reception interval corresponds to the transmission period and the value of the second partial area in the received message to be processed is different from the value to be stored except when an event occurs, the second partial area The estimation method according to
(Appendix 9)
The format of the data stored in the data area of the message is data set to a specific value when an event occurs, data whose value changes when an event occurs, fixed value, unsigned continuous value, sign Any one of
(Appendix 10)
Refer to communication logs that record the time each message was received and the data stored in each message,
calculating, for each message, a reception interval representing the difference between the reception time of the message and the reception time of the message received prior to the reception of the message;
A pattern representing the number of different values found for each sub-area by finding the values stored in each of a number of different sub-areas specified by a combination of position and length within the data area of each message count each number,
A first variable provided for each partial area that indicates whether the message reception interval corresponds to a predetermined transmission cycle, and a message reception interval during a period other than when a predetermined event occurs updating a second variable representing whether or not it corresponds to the transmission period based on the reception interval and the value stored in the partial area;
A program that causes a computer to execute a process of estimating a transmission type of a message and a format of data stored in a data area of the message based on the first variable, the second variable, and the number of patterns.
(Appendix 11)
An information processing device for estimating characteristics of a message transmitted within a network,
a storage unit that stores a communication log in which the reception time of each message and the data stored in each message are recorded;
a reception interval calculation unit that refers to the communication log and calculates, for each message, a reception interval representing the difference between the reception time of the message and the reception time of the message received before the reception of the message;
By referring to the communication log and detecting the values stored in each of a plurality of different partial areas specified by the combination of the position and length in the data area of each message, each partial area detected a counter each counting the number of patterns representing the number of different values in
A first variable provided for each partial area that indicates whether the message reception interval corresponds to a predetermined transmission cycle, and a message reception interval during a period other than when a predetermined event occurs an updating unit that updates a second variable representing whether or not it corresponds to the transmission cycle based on the reception interval and the value stored in the partial area;
an estimation unit that estimates a transmission type of a message and a format of data stored in a data area of the message based on the first variable, the second variable, and the number of patterns;
Information processing device.
10 推定装置
11 通信ログデータベース
12 制御部
13 パターン数カウンタ
14 受信間隔判定部
15 変数更新部
16 形式推定部
18 最終結果推定部
200 ECU
204 プロセッサ
10
204 processor
Claims (7)
各メッセージの受信時刻および各メッセージに格納されているデータが記録された通信ログを参照し、
各メッセージについて、当該メッセージの受信時刻と当該メッセージの受信前に受信したメッセージの受信時刻との差分を表す受信間隔を計算し、
各メッセージのデータ領域内の位置および長さの組合せで指定される複数の異なる部分領域それぞれに格納されている値を検出することで、各部分領域について、検出される異なる値の数を表すパターン数をそれぞれカウントし、
各部分領域に対して設けられている、メッセージの受信間隔が所定の送信周期と対応するか否かを表す第1の変数、および、メッセージの受信間隔が所定のイベントの発生時以外の期間において前記送信周期と対応するか否かを表す第2の変数を、前記受信間隔および当該部分領域に格納されている値に基づいてそれぞれ更新し、
前記第1の変数、前記第2の変数、および前記パターン数に基づいて、メッセージの送信タイプおよびメッセージのデータ領域内に格納されているデータの形式を推定する
ことを特徴とする推定方法。 An estimation method for estimating characteristics of a message sent in a network, comprising:
Refer to communication logs that record the time each message was received and the data stored in each message,
calculating, for each message, a reception interval representing the difference between the reception time of the message and the reception time of the message received prior to the reception of the message;
A pattern representing the number of different values found for each sub-area by finding the values stored in each of a number of different sub-areas specified by a combination of position and length within the data area of each message count each number,
A first variable provided for each partial area that indicates whether the message reception interval corresponds to a predetermined transmission cycle, and a message reception interval during a period other than when a predetermined event occurs updating a second variable representing whether or not it corresponds to the transmission period based on the reception interval and the value stored in the partial area;
An estimation method, comprising: estimating a transmission type of a message and a format of data stored in a data area of the message based on the first variable, the second variable, and the number of patterns.
ことを特徴とする請求項1に記載の推定方法。 The second variable is whether or not the message reception interval corresponds to the transmission cycle during a period other than the occurrence of a predetermined event, and the value stored in the partial area during the period other than the occurrence of the event. The estimating method according to claim 1, characterized by representing whether or not is a value that should be stored except when an event occurs.
処理対象の受信メッセージとその直前に受信した同じ識別子を有する受信メッセージとの間の受信間隔が前記送信周期より短いときに、各部分領域に対して設けられている第1の変数をそれぞれ第2の状態に更新し、
前記受信間隔が前記送信周期より短く、且つ、前記処理対象の受信メッセージ中の第1の部分領域の値が最初の受信メッセージ中の第1の部分領域の値と一致するときに、前記第1の部分領域に対して設けられている第2の変数を第2の状態に更新し、
前記受信間隔が前記送信周期より長いときに、各部分領域に対して設けられている第1の変数および第2の変数をそれぞれ第2の状態に更新し、
前記複数の部分領域のうちの少なくとも1つの部分領域に対して設けられている第2の変数が第1の状態を表し、且つ、前記少なくとも1つの部分領域のパターン数が2以上であるときに、
受信メッセージは、前記所定のイベントが発生しない期間には前記送信周期で送信され、且つ、
前記受信メッセージは、前記所定のイベントの発生時に特定の値が設定される部分領域を含む、と推定する
ことを特徴とする請求項1に記載の推定方法。 initial states of the first variable and the second variable are each a first state;
When the reception interval between the received message to be processed and the immediately preceding received message having the same identifier is shorter than the transmission period, the first variable provided for each partial area is changed to the second variable. update to the state of
When the reception interval is shorter than the transmission period and the value of the first partial area in the received message to be processed matches the value of the first partial area in the first received message, the first updating a second variable provided for a partial area of to a second state;
updating a first variable and a second variable provided for each partial area to a second state when the reception interval is longer than the transmission period;
when a second variable provided for at least one partial area among the plurality of partial areas represents a first state, and the number of patterns in the at least one partial area is two or more; ,
The received message is transmitted at the transmission cycle during a period in which the predetermined event does not occur, and
2. The estimation method according to claim 1, wherein said received message is estimated to include a partial area to which a specific value is set when said predetermined event occurs.
処理対象の受信メッセージとその直前に受信した同じ識別子を有する受信メッセージとの間の受信間隔が前記送信周期より短いときに、各部分領域に対して設けられている第1の変数をそれぞれ第2の状態に更新し、
前記受信間隔が前記送信周期より短く、且つ、前記処理対象の受信メッセージ中の第1の部分領域の値がその直前の受信メッセージ中の第1の部分領域の値と一致するときに、前記第1の部分領域に対して設けられている第2の変数を第2の状態に更新し、
前記受信間隔が前記送信周期より長いときに、各部分領域に対して設けられている第1の変数および第2の変数をそれぞれ第2の状態に更新し、
前記複数の部分領域のうちの少なくとも1つの部分領域に対して設けられている第2の変数が第1の状態を表すときに、
受信メッセージは、前記所定のイベントが発生しない期間には前記送信周期で送信され、且つ、
前記受信メッセージは、前記所定のイベントの発生時に値が変化する部分領域を含む、と推定する
ことを特徴とする請求項1に記載の推定方法。 initial states of the first variable and the second variable are each a first state;
When the reception interval between the received message to be processed and the immediately preceding received message having the same identifier is shorter than the transmission period, the first variable provided for each partial area is changed to the second variable. update to the state of
When the reception interval is shorter than the transmission period and the value of the first partial area in the received message to be processed matches the value of the first partial area in the immediately preceding received message, the first updating a second variable provided for one partial area to a second state;
updating a first variable and a second variable provided for each partial area to a second state when the reception interval is longer than the transmission period;
when a second variable provided for at least one partial area of the plurality of partial areas represents a first state,
The received message is transmitted at the transmission cycle during a period in which the predetermined event does not occur, and
2. The estimation method according to claim 1, wherein the received message includes a partial area whose value changes when the predetermined event occurs.
前記受信間隔が前記送信周期と対応し、且つ、前記処理対象の受信メッセージ中の第2の部分領域の値がイベント発生時以外に格納されるべき値と異なるときに、前記第2の部分領域に対して設けられている第2の変数を第2の状態に更新する
ことを特徴とする請求項3または4に記載の推定方法。 The second variable is whether or not the message reception interval corresponds to the transmission cycle during a period other than the occurrence of a predetermined event, and the value stored in the partial area during the period other than the occurrence of the event. indicates whether or not is a value that should be stored except when an event occurs,
When the reception interval corresponds to the transmission period and the value of the second partial area in the received message to be processed is different from the value to be stored except when an event occurs, the second partial area 5. An estimation method according to claim 3 or 4, characterized in that a second variable provided for is updated to a second state.
各メッセージについて、当該メッセージの受信時刻と当該メッセージの受信前に受信したメッセージの受信時刻との差分を表す受信間隔を計算し、
各メッセージのデータ領域内の位置および長さの組合せで指定される複数の異なる部分領域それぞれに格納されている値を検出することで、各部分領域について、検出される異なる値の数を表すパターン数をそれぞれカウントし、
各部分領域に対して設けられている、メッセージの受信間隔が所定の送信周期と対応するか否かを表す第1の変数、および、メッセージの受信間隔が所定のイベントの発生時以外の期間において前記送信周期と対応するか否かを表す第2の変数を、前記受信間隔および当該部分領域に格納されている値に基づいてそれぞれ更新し、
前記第1の変数、前記第2の変数、および前記パターン数に基づいて、メッセージの送信タイプおよびメッセージのデータ領域内に格納されているデータの形式を推定する
処理をコンピュータに実行させるプログラム。 Refer to communication logs that record the time each message was received and the data stored in each message,
calculating, for each message, a reception interval representing the difference between the reception time of the message and the reception time of the message received prior to the reception of the message;
A pattern representing the number of different values found for each sub-area by finding the values stored in each of a number of different sub-areas specified by a combination of position and length within the data area of each message count each number,
A first variable provided for each partial area that indicates whether the message reception interval corresponds to a predetermined transmission cycle, and a message reception interval during a period other than when a predetermined event occurs updating a second variable representing whether or not it corresponds to the transmission period based on the reception interval and the value stored in the partial area;
A program that causes a computer to execute a process of estimating a transmission type of a message and a format of data stored in a data area of the message based on the first variable, the second variable, and the number of patterns.
各メッセージの受信時刻および各メッセージに格納されているデータが記録された通信ログを保存する保存部と、
前記通信ログを参照して、各メッセージについて、当該メッセージの受信時刻と当該メッセージの受信前に受信したメッセージの受信時刻との差分を表す受信間隔を計算する受信間隔計算部と、
前記通信ログを参照して、各メッセージのデータ領域内の位置および長さの組合せで指定される複数の異なる部分領域それぞれに格納されている値を検出することで、各部分領域について、検出される異なる値の数を表すパターン数をそれぞれカウントするカウンタと、
各部分領域に対して設けられている、メッセージの受信間隔が所定の送信周期と対応するか否かを表す第1の変数、および、メッセージの受信間隔が所定のイベントの発生時以外の期間において前記送信周期と対応するか否かを表す第2の変数を、前記受信間隔および当該部分領域に格納されている値に基づいてそれぞれ更新する更新部と、
前記第1の変数、前記第2の変数、および前記パターン数に基づいて、メッセージの送信タイプおよびメッセージのデータ領域内に格納されているデータの形式を推定する推定部と、
を備える情報処理装置。 An information processing device for estimating characteristics of a message transmitted within a network,
a storage unit that stores a communication log in which the reception time of each message and the data stored in each message are recorded;
a reception interval calculation unit that refers to the communication log and calculates, for each message, a reception interval representing the difference between the reception time of the message and the reception time of the message received before the reception of the message;
By referring to the communication log and detecting the values stored in each of a plurality of different partial areas specified by the combination of the position and length in the data area of each message, each partial area detected a counter each counting the number of patterns representing the number of different values in
A first variable provided for each partial area that indicates whether the message reception interval corresponds to a predetermined transmission cycle, and a message reception interval during a period other than when a predetermined event occurs an updating unit that updates a second variable representing whether or not it corresponds to the transmission cycle based on the reception interval and the value stored in the partial area;
an estimation unit that estimates a transmission type of a message and a format of data stored in a data area of the message based on the first variable, the second variable, and the number of patterns;
Information processing device.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2019178794A JP7268562B2 (en) | 2019-09-30 | 2019-09-30 | METHOD AND INFORMATION PROCESSING APPARATUS FOR ESTIMATING MESSAGE FEATURES |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2019178794A JP7268562B2 (en) | 2019-09-30 | 2019-09-30 | METHOD AND INFORMATION PROCESSING APPARATUS FOR ESTIMATING MESSAGE FEATURES |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2021057741A JP2021057741A (en) | 2021-04-08 |
| JP7268562B2 true JP7268562B2 (en) | 2023-05-08 |
Family
ID=75272803
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2019178794A Active JP7268562B2 (en) | 2019-09-30 | 2019-09-30 | METHOD AND INFORMATION PROCESSING APPARATUS FOR ESTIMATING MESSAGE FEATURES |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7268562B2 (en) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2018105330A1 (en) | 2016-12-06 | 2018-06-14 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | Information processing method, information processng system, and program |
| JP2018152745A (en) | 2017-03-14 | 2018-09-27 | パナソニックIpマネジメント株式会社 | Recording apparatus, vehicle, and recording method |
| JP2018182725A (en) | 2017-04-07 | 2018-11-15 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | Illegal communication detection criteria determination method, unauthorized communication detection criteria determination system and program |
| JP2019126004A (en) | 2018-01-19 | 2019-07-25 | 富士通株式会社 | Attack detection device and attack detection method |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07321783A (en) * | 1994-05-25 | 1995-12-08 | Fuji Xerox Co Ltd | Network monitor equipment |
-
2019
- 2019-09-30 JP JP2019178794A patent/JP7268562B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2018105330A1 (en) | 2016-12-06 | 2018-06-14 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | Information processing method, information processng system, and program |
| JP2018152745A (en) | 2017-03-14 | 2018-09-27 | パナソニックIpマネジメント株式会社 | Recording apparatus, vehicle, and recording method |
| JP2018182725A (en) | 2017-04-07 | 2018-11-15 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | Illegal communication detection criteria determination method, unauthorized communication detection criteria determination system and program |
| JP2019126004A (en) | 2018-01-19 | 2019-07-25 | 富士通株式会社 | Attack detection device and attack detection method |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2021057741A (en) | 2021-04-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11411681B2 (en) | In-vehicle information processing for unauthorized data | |
| US11570184B2 (en) | In-vehicle network system, fraud-detection electronic control unit, and fraud-detection method | |
| US11595422B2 (en) | Method for preventing electronic control unit from executing process based on malicious frame transmitted to bus | |
| CN110995482B (en) | Alarm analysis method and device, computer equipment and computer readable storage medium | |
| EP4145765A1 (en) | Method for protection from cyber attacks to a vehicle based upon time analysis, and corresponding device | |
| JP6891671B2 (en) | Attack detection device and attack detection method | |
| CN111585837A (en) | Internet of things data link monitoring method and device, computer equipment and storage medium | |
| JP7172043B2 (en) | Attack detection device and attack detection method | |
| JP7006295B2 (en) | Attack detection device and attack detection method | |
| US20210105292A1 (en) | Detector, detection method, and detection program | |
| JP7268562B2 (en) | METHOD AND INFORMATION PROCESSING APPARATUS FOR ESTIMATING MESSAGE FEATURES | |
| CN120896997B (en) | An Adaptive Protocol Conversion and Collaborative Control Method for Smart Park Equipment | |
| WO2021229694A1 (en) | Attack detection device, attack detection method, and program | |
| US7443876B2 (en) | Information processing terminal, transmission privilege rounding system, transmission privilege rounding method and transmission privilege acquiring program | |
| CN115296904B (en) | Domain name reflection attack detection method and device, electronic equipment, storage media | |
| CN115001774B (en) | A method, apparatus, and device for correlation analysis of alarm events. | |
| CN116957062A (en) | Federal learning method and device based on calculation network | |
| JP7223590B2 (en) | Attack detection device and attack detection method | |
| US20010026536A1 (en) | Method for managing an open computer system | |
| CN119561823B (en) | Alarm method, device, equipment and storage medium for business message transmission | |
| CN114339949B (en) | Method, equipment and storage medium for realizing intelligent gateway | |
| JP2021114656A (en) | Determination method and information processing device | |
| JP7182470B2 (en) | Message processing device and message processing method | |
| CN116566708B (en) | Method and system for automatically distinguishing network security verification results based on dynamic templates | |
| KR20250116367A (en) | Method for learning of gradient boost model for cyber attack detection, method and device for determining of cyber attack occurrence using learned gradient boost model |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220609 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230313 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230322 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230404 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7268562 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |