Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7268562B2 - METHOD AND INFORMATION PROCESSING APPARATUS FOR ESTIMATING MESSAGE FEATURES - Google Patents
[go: Go Back, main page]

JP7268562B2 - METHOD AND INFORMATION PROCESSING APPARATUS FOR ESTIMATING MESSAGE FEATURES - Google Patents

METHOD AND INFORMATION PROCESSING APPARATUS FOR ESTIMATING MESSAGE FEATURES Download PDF

Info

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
Application number
JP2019178794A
Other languages
Japanese (ja)
Other versions
JP2021057741A (en
Inventor
純 矢嶋
郁也 森川
高行 長谷部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019178794A priority Critical patent/JP7268562B2/en
Publication of JP2021057741A publication Critical patent/JP2021057741A/en
Application granted granted Critical
Publication of JP7268562B2 publication Critical patent/JP7268562B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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).

特開2017-085663号公報JP 2017-085663 A 特開2019-008618号公報JP 2019-008618 A WO2018/105330WO2018/105330

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 illustrates an example of a network in which an estimator is used; FIG. イベント送信付き周期メッセージについて説明する図である。FIG. 10 is a diagram illustrating a periodic message with event transmission; メッセージを伝送するフレームのフォーマットの例を示す図である。FIG. 3 is a diagram showing an example of a format of a frame that transmits a message; 推定装置が実装されるECUのハードウェア構成の一例を示す図である。It is a figure which shows an example of the hardware constitutions of ECU by which an estimation apparatus is mounted. メッセージ内に格納される各データの形式の例を示す図である。FIG. 4 is a diagram showing an example of the format of each data stored in a message; 本発明の実施形態に係わる推定装置の一例を示す図である。It is a figure which shows an example of the estimation apparatus concerning embodiment of this invention. 通信ログの一例を示す図である。It is a figure which shows an example of a communication log. 部分領域の例を示す図である。FIG. 10 is a diagram showing an example of a partial area; 本発明の実施形態に係わる推定処理の一例を示すフローチャートである。6 is a flowchart showing an example of estimation processing according to the embodiment of the present invention; 変数管理テーブルの一例を示す図である。It is a figure which shows an example of a variable management table. 前処理の一例を示すフローチャートである。6 is a flowchart showing an example of preprocessing; 推定処理の一例を示すフローチャートである。6 is a flowchart showing an example of estimation processing; 第2の実施形態の前処理を示すフローチャートである。9 is a flow chart showing pre-processing of the second embodiment; 第2の実施形態の推定処理を示すフローチャートである。It is a flow chart which shows estimation processing of a 2nd embodiment. 実施例1および実施例2で参照される通信ログの例を示す図である。FIG. 4 is a diagram showing an example of a communication log referred to in Examples 1 and 2; FIG. 実施例1における更新結果を示す図(その1)である。FIG. 11 is a diagram (part 1) showing an update result in the first embodiment; 実施例1における更新結果を示す図(その2)である。FIG. 12 is a diagram (part 2) showing an update result in the first embodiment; 実施例1における更新結果を示す図(その3)である。FIG. 13 is a diagram (part 3) showing an update result in the first embodiment; 実施例1における更新結果を示す図(その4)である。FIG. 10 is a diagram (part 4) showing an update result in the first embodiment; 実施例2における更新結果を示す図(その1)である。FIG. 11 is a diagram (part 1) showing an update result in the second embodiment; 実施例2における更新結果を示す図(その2)である。FIG. 12 is a diagram (part 2) showing an update result in the second embodiment; 実施例2における更新結果を示す図(その3)である。FIG. 13 is a diagram (part 3) showing an update result in the second embodiment;

図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 network 100 shown in FIG. 1 includes a plurality of ECUs (ECU0 to ECUk). A plurality of ECUs are connected to each other via a bus. In this embodiment, a plurality of ECUs constitute a CAN (Controller Area Network) system.

各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 network 100 . At this time, the message also arrives at the source node. Each message is assigned an identifier (ID). 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. Each ECU is an example of a "communication device".

上記ネットワーク100において、複数のECUの中の1つに推定装置が実装される。図1に示す実施例では、ECU0に推定装置が実装されている。この場合、推定装置が実装されるECUは、「情報処理装置」の一例である。また、推定装置は、いずれかのECUに実装されるのではなく、コンピュータ等の情報処理装置に実装されてもよい。さらに、車外のコンピュータにおいて当該技術を利用して特徴を推定し、推定した特徴を用いて、車内のECUまたはコンピュータ、あるいは車外のコンピュータにて攻撃検知を行っても良い。 In the network 100 described above, an estimating device is implemented in one of a plurality of ECUs. In the embodiment shown in FIG. 1, the estimation device is mounted in the ECU0. In this case, the ECU in which the estimation device is mounted is an example of an "information processing device." Also, the estimation device may be implemented in an information processing device such as a computer instead of being implemented in any ECU. Furthermore, a computer outside the vehicle may use the technology to estimate features, and using the estimated features, an ECU or computer inside the vehicle, or a computer outside the vehicle may perform attack detection.

推定装置は、ネットワーク100内を伝送されるメッセージの送信タイプおよびメッセージ中に含まれるデータの形式(または、属性)を推定する。なお、推定装置は、攻撃検知装置と共に使用されることがある。この場合、攻撃検知装置は、推定装置の推定結果を利用して、受信メッセージが攻撃メッセージであるか否かを判定する。また、推定装置および攻撃検知装置は、同じECU内に実装されてもよい。 The estimator estimates the transmission type of messages transmitted within network 100 and the format (or attributes) of the data contained in the messages. Note that the estimation device may be used together with the attack detection device. In this case, the attack detection device uses the estimation result of the estimation device to determine whether the received message is an attack message. Also, the estimation device and the attack detection device may be implemented within the same ECU.

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 network 100 . Therefore, the ECU in which the estimating device is installed (here, ECU0) can receive all messages. The timing chart of FIG. 1 shows how messages transmitted from ECU1 to ECU3 arrive at ECU0.

ネットワーク100において送信されるメッセージは、識別子ごとに、下記のいずれかに分類される。
(1)周期メッセージ
(2)非周期メッセージ
(3)イベント送信付き周期メッセージ
Messages transmitted in the network 100 are classified into one of the following for each identifier.
(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 case 1 shown in FIG. 2, "1" is set in predetermined areas of messages M1-M4 and M6-M7, but "3" is set in the same area of message M5. Alternatively, the value of a predetermined area of the message changes due to the occurrence of an event. For example, in case 2, "1" is set in a predetermined area of messages M1 to M4, and "7" is set in the same area after message M5.

なお、車載ネットワークにおいては、複数の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. ECU 200 includes a CAN transceiver 201, a CAN controller 202, and a processing circuit 203 in this example. Processing circuitry 203 includes processor 204 and memory 205 .

CANトランシーバ201は、図3に示すフレームを送信および受信する機能を備える。CANコントローラ202は、CANトランシーバ201が受信したフレームからデータを抽出すると共に、そのフレームの受信時刻を測定する。なお、CANコントローラ202は、受信フレームに対してCRCチェックを実行してもよい。また、CANコントローラ202は、送信フレームにデータを格納することができる。プロセッサ204は、メモリ205に格納されているプログラムを実行することにより、メッセージの送信タイプの推定およびメッセージ中に含まれるデータの形式の推定を実現する。この場合、このプログラムは、後述するフローチャートの手順を記述している。 CAN transceiver 201 has the capability to transmit and receive the frames shown in FIG. The CAN controller 202 extracts data from the frame received by the CAN transceiver 201 and measures the reception time of the frame. It should be noted that CAN controller 202 may perform a CRC check on the received frame. CAN controller 202 can also store data in the transmission frame. The processor 204 executes programs stored in the memory 205 to achieve the estimation of the transmission type of the message and the format of the data contained in the message. In this case, this program describes the procedure of the flow chart described later.

本発明の実施形態に係わる推定装置は、ネットワークへの攻撃を検知する攻撃検知装置が利用する情報を生成する。すなわち、推定装置は、識別子ごとにメッセージの送信タイプを推定し、また、識別子ごとにメッセージ中に含まれるデータの形式を推定する。 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 preparatory procedure 1 is prepared.

検知方法としては、メッセージの送信周期を利用して、送信周期から外れて到着したメッセージを攻撃メッセージと判定する方法が提案されている。また、メッセージ内のデータの振舞いに基づいて攻撃メッセージを検知する方法も提案されている。非周期メッセージまたはイベント送信付き周期メッセージに対しては、メッセージ内のデータの振舞いに基づく方法が有効である。 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 estimation device 10 according to the embodiment of the present invention includes a communication log database 11, a control unit 12, a pattern number counter 13, a reception interval determination unit 14, a variable update unit 15, a format estimation unit 16, an intermediate result storage unit 17, and a final A result estimation unit 18 is provided. Note that the estimating device 10 may include other circuits or functions not shown in FIG.

推定装置10は、複数のECUを含む通信ネットワークに接続される。そして、推定装置10は、各ECUから送信されるフレームを受信する。各フレームには、メッセージが格納されている。すなわち、推定装置10は、各ECUから送信されるメッセージを受信する。図1に示す例では、ECU0が推定装置10として動作してもよい。この場合、推定装置10は、ECU1~ECUkから送信されるメッセージを受信する。あるいは、推定装置10は、複数のECUを含む通信ネットワークから取得した通信ログを分析する、外部の計算装置に実装されたコンピュータプログラムである。この場合、各ECUから送信された通信ログから1個ずつフレームのログを取得して処理を行う。 The estimating device 10 is connected to a communication network including multiple ECUs. Then, the estimating device 10 receives frames transmitted from each ECU. Each frame stores a message. That is, the estimating device 10 receives messages transmitted from each ECU. In the example shown in FIG. 1 , the ECU 0 may operate as the estimation device 10 . In this case, the estimation device 10 receives messages transmitted from ECU1 to ECUk. Alternatively, the estimating device 10 is a computer program implemented in an external computing device that analyzes communication logs obtained from a communication network including multiple ECUs. In this case, a frame log is acquired one by one from the communication log transmitted from each ECU and processed.

推定装置10は、メッセージの送信タイプを識別する機能を備える。すなわち、推定装置10は、周期メッセージ、非周期メッセージ、又はイベント送信付き周期メッセージを識別する機能を備える。イベント送信付き周期メッセージは、図2を参照して説明したように、通常時は一定の周期で送信されるが、所定のイベントが発生したときは、そのイベントの発生に起因して送信される。したがって、イベント送信付き周期メッセージは、通常時は一定の周期で送信されるが、イベントの発生時には、その周期より短い時間間隔で送信される。また、第1の実施形態において検出されるイベント送信付き周期メッセージは、イベントの発生時には、図2に示すケース1のように、メッセージ中の所定の領域に特定の値が設定されるものとする。 The estimating device 10 has the capability to identify the transmission type of the message. That is, the estimating device 10 has a function of identifying a periodic message, an aperiodic message, or a periodic message with event transmission. As described with reference to FIG. 2, the periodic message with event transmission is normally transmitted at regular intervals, but when a predetermined event occurs, it is transmitted due to the occurrence of that event. . Therefore, the periodic message with event transmission is normally transmitted at a constant period, but when an event occurs, it is transmitted at shorter time intervals than the period. In the periodic message with event transmission detected in the first embodiment, when an event occurs, a specific value is set in a predetermined area in the message, as in case 1 shown in FIG. .

通信ログデータベース11には、推定装置10が受信するメッセージに係わる通信ログが保存される。通信ログには、図7に示すように、メッセージの受信時刻、メッセージに含まれる識別子、およびメッセージのデータ領域に格納されているデータが記録される。なお、この実施例では、図3に示すように、データ領域は64ビットである。よって、各メッセージに格納されるデータの長さは、最大で64ビットである。 The communication log database 11 stores communication logs related to messages received by the estimation device 10 . As shown in FIG. 7, the communication log records the message reception time, the identifier included in the message, and the data stored in the data area of the message. In this embodiment, the data area is 64 bits, as shown in FIG. Therefore, the maximum length of data stored in each message is 64 bits.

推定装置10は、通信ログデータベース11に保存されている通信ログを利用して、識別子ごとに、メッセージの送信タイプおよびメッセージに格納されているデータの特徴を推定する。なお、以下の説明では、特に断らない限り、推定対象の識別子に対する処理について記載する。 The estimation device 10 uses communication logs stored in the communication log database 11 to estimate the transmission type of the message and the characteristics of the data stored in the message for each identifier. In addition, in the following description, unless otherwise specified, processing for an identifier to be estimated will be described.

制御部12は、所定のモニタ期間を指定する。そして、制御部12は、モニタ期間に対応する通信ログから、各メッセージの受信時刻を表す情報およびデータ領域に格納されているデータを取得する。以下の記載では、i番目に推定装置10に到着したメッセージの受信時刻を「t(i)」と表記し、そのメッセージに格納されているデータを「Data(i)」と表記することがある。 The control unit 12 designates a predetermined monitor period. Then, the control unit 12 acquires information representing the reception time of each message and the data stored in the data area from the communication log corresponding to the monitoring period. In the following description, the reception time of the i-th message arriving at the estimating device 10 may be denoted as "t(i)", and the data stored in the message may be denoted as "Data(i)". .

ここで、推定装置10は、各メッセージに格納されているデータの振舞いに基づく攻撃検知を実現するための情報を生成する。このため、推定装置10は、各メッセージのデータ領域を解析する。ただし、推定装置10にとって、データ領域内のどの位置にどのような長さのデータが格納されているのかは未知である。よって、推定装置10は、すべての格納パターンについてデータの値を解析する。 Here, the estimating device 10 generates information for implementing attack detection based on the behavior of data stored in each message. Therefore, the estimating device 10 analyzes the data area of each message. However, it is unknown to the estimating device 10 what length of data is stored at what position in the data area. Therefore, the estimation device 10 analyzes data values for all stored patterns.

なお、以下の記載では、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パターンの部分領域が存在することになる。 Estimation device 10 analyzes the data stored in each partial area. Here, the start position and length of the partial area storing individual data are unknown. Therefore, the estimation device 10 analyzes data values for all stored patterns. For example, if the length of a partial area is 1 bit, there may be a partial area starting from the 1st bit, a partial area starting from the 2nd bit, ... a partial area starting from the 64th bit. . That is, if the length of the partial area is 1 bit, there can be 64 types of partial areas. Also, if the length of the partial area is 2 bits, there may be partial areas starting from the 1st bit, partial areas starting from the 1st bit, . . . partial areas starting from the 63rd bit. . That is, if the length of the partial area is 2 bits, there can be 63 types of partial areas. Likewise, if the length of a partial area is k bits, there can be "64+1−k" kinds of partial areas. Therefore, there are a total of 2080 patterns of partial areas.

このように、各部分領域は、データ領域内での開始位置および長さの組合せで識別される。よって、以下の記載では、開始位置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 estimator 10 within the monitoring period. For example, when the same value is stored in all received messages, the pattern number is "1". Further, when the value X is stored in 5 of the 10 received messages and the value Y is stored in the remaining 5 messages, the number of patterns is "2". Furthermore, out of the 10 received messages, if 5 messages store the value X, 3 messages store the value Y, and the remaining 2 messages store the value Z, the pattern The number is "3". In the following description, the number of patterns in partial area Data (P, L) may be expressed as "DP (P, L)".

受信間隔判定部14は、各受信メッセージについて、当該メッセージの受信時刻と当該メッセージの直前のメッセージの受信時刻の差分を表す受信間隔を計算する。すなわち、i番目のメッセージに対して、受信時刻t(i)と受信時刻t(i-1)との差分を計算することにより受信間隔dt(i)が計算される。また、受信間隔判定部14は、各受信メッセージに対して送信周期と受信間隔dt(i)とを比較して、その比較結果を制御部12に通知する。 The reception interval determining unit 14 calculates, for each received message, a reception interval representing the difference between the reception time of the message and the reception time of the message immediately preceding the message. That is, for the i-th message, the reception interval dt(i) is calculated by calculating the difference between the reception time t(i) and the reception time t(i-1). Further, the reception interval determination unit 14 compares the transmission period and the reception interval dt(i) for each received message, and notifies the control unit 12 of the comparison result.

変数更新部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 variable updating unit 15 manages the following three variables for each partial area. That is, each variable is managed for each of 2080 partial regions. It should be noted that the transmission interval described below represents the transmission interval of the message including the identifier to be estimated.
(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 variable update unit 15 updates these messages based on the message reception interval. At this time, a variable associated with a certain sub-area may be updated based on the message reception interval and the value of that sub-area. The initial values of these variables are each "1". Also, once these variables are updated to "0", they never return to "1". In the following description, the variables related to the partial area identified by the starting position P and length L will be referred to as "s_f(P,L)", "p_f(P,L)", and "f_f(P,L)", respectively. may be indicated.

形式推定部16は、各部分領域に格納されているデータの形式(または、属性)を推定する。このとき、形式推定部16は、格納されているデータの値、パターン数カウンタ13により得られるパターン数DP、および変数更新部15により更新された変数に基づいて、各部分領域に格納されているデータの形式を推定する。 The format estimation unit 16 estimates the format (or attribute) of data stored in each partial area. At this time, the format estimating unit 16 determines the values of the stored data, the number of patterns DP obtained by the pattern number counter 13, and the variables updated by the variable updating unit 15. Infer the format of the data.

途中結果格納部17は、パターン数カウンタ13、受信間隔判定部14、変数更新部15および形式推定部16の処理結果を一時的に保存する。 The intermediate result storage unit 17 temporarily stores the processing results of the pattern number counter 13 , the reception interval determination unit 14 , the variable update unit 15 and the format estimation unit 16 .

制御部12は、モニタ期間内のすべての通信ログについて処理が終了すると、終了通知を生成して最終結果推定部18に与える。そうすると、最終結果推定部18は、途中結果格納部17に保存されている処理結果を利用して、識別子ごとに、メッセージの送信タイプおよびメッセージに格納されているデータの形式を推定する。このとき、最終結果推定部18は、各部分領域についての推定結果に基づいて、メッセージの送信タイプおよびメッセージに格納されているデータの形式を推定する。 When the processing for all communication logs within the monitoring period is completed, the control unit 12 generates an end notification and gives it to the final result estimation unit 18 . Then, the final result estimation unit 18 uses the processing results stored in the intermediate result storage unit 17 to estimate the transmission type of the message and the format of the data stored in the message for each identifier. At this time, the final result estimation unit 18 estimates the transmission type of the message and the format of the data stored in the message based on the estimation result for each partial area.

図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 estimation device 10 initializes variables used in estimation processing. Specifically, the number of patterns DP(P, L) is initialized to "zero" for all partial regions. Also, variables s_f, p_f, and f_f are initialized to "1" for all the partial areas.

各変数は、図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. Formats 1 to 8 will be explained later. This variable management table is stored in, for example, the interim progress storage unit 17 . Note that the variable management table may manage other variables not shown in FIG. 10 in addition to the variables shown in FIG.

S2において、推定装置10は、前処理を実行する。前処理は、各受信メッセージに対して、且つ、各受信メッセージ内の各部分領域に対して実行される。すなわち、推定装置10は、通信ログから1レコード分のデータを取り出す毎に、2080個の部分領域それぞれに対して前処理を実行する。 In S2, the estimation device 10 performs preprocessing. Pre-processing is performed for each received message and for each subregion within each received message. That is, the estimating apparatus 10 performs preprocessing on each of the 2080 partial areas each time one record of data is extracted from the communication log.

S3において、推定装置10は、推定処理を実行する。推定処理は、各部分領域に格納されているデータの形式を推定する処理、および各部分領域のデータ形式に基づいてメッセージの送信タイプを推定する処理を含む。 In S3, the estimation device 10 executes estimation processing. The estimation processing includes processing for estimating the format of data stored in each partial area, and processing for estimating the transmission type of the message based on the data format of each partial area.

S4において、推定装置10は、重複解消処理を実行する。重複解消処理は、部分領域に格納されているデータの形式を確定させる処理を含む。 In S4, the estimating device 10 executes a duplication elimination process. Duplication elimination processing includes processing for determining the format of data stored in the partial area.

図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 determination unit 16 estimates the format of the data stored in the target partial area. In this example, data may be in any one of the following ten formats.
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)
Format 10 is detected in a second embodiment, which will be described later. Then, in S11, the format determination unit 16 determines whether or not there is a possibility that the format of the data stored in the target partial area corresponds to one of the formats 1 to 4 described above. Then, when the format of the data stored in the target partial area can correspond to a certain format, the format determining unit 16 sets the flag corresponding to the format to "1";"0" is set to the flag corresponding to .

このとき、データ形式の推定において下記の情報が参照される。
(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 support format 4. The monotonically increasing possibility flag is also set to "0".
(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 format 3. (6) Difference from the previous message value. When the value difference value is a constant value other than zero, the monotonically increasing possibility flag corresponding to Format 4 is set to "0".

なお、可能性フラグが「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 pattern number counter 13 updates the pattern number DP of the target partial area as necessary. Specifically, when the value of the target partial area of the new received message does not match any of the values stored in the corresponding partial area of the previous received message, the number of patterns DP is incremented by 1, and The new value is saved. Note that when the number of patterns DP is 3 or more, the new value may not be saved in order to save the memory area.

S14において、受信間隔判定部14は、メッセージの受信間隔dtを計算する。すなわち、処理対象のメッセージの受信時刻と直前に受信したメッセージの受信時刻との差分が計算される。なお、受信間隔は、すべての部分領域に対して同じなので、受信間隔判定部14は、各部分領域に対して受信間隔を計算する必要はない。 In S14, the reception interval determination unit 14 calculates the message reception interval dt. That is, the difference between the reception time of the message to be processed and the reception time of the immediately preceding message is calculated. Since the reception interval is the same for all partial areas, the reception interval determining unit 14 does not need to calculate the reception interval for each partial area.

S15において、受信間隔判定部14は、受信間隔dtが送信周期Tより小さいか否かを判定する。なお、S15の判定において、送信周期Tは、送信周期Tよりも所定量th1だけ小さい値(T-th1)を意味する。そして、受信間隔dtが送信周期Tより小さいときは、S16において、変数更新部15は、変数p_fを「0」に更新する。 In S<b>15 , the reception interval determination unit 14 determines whether or not the reception interval dt is smaller than the transmission cycle T. In the determination of S15, the transmission cycle T means a value (T-th1) that is smaller than the transmission cycle T by a predetermined amount th1. Then, when the reception interval dt is smaller than the transmission cycle T, in S16, the variable update unit 15 updates the variable p_f to "0".

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 variable updating unit 15 matches the value (Data (P, L)) stored in the target partial area with the value (d(1)) stored in the target partial area of the first received message. Determine whether or not Here, the process of S17 is executed when the determination of S15 is "Yes". That is, the reception interval dt is smaller than the transmission period T, and the value (Data (P, L)) stored in the target partial area is the value (d(1 )), the determination in S17 is “Yes”. This situation does not satisfy the condition that "although it is normally transmitted at regular intervals, when a certain event occurs, a specific value is set due to the occurrence of that event". Therefore, when the determination in S17 is "Yes", the variable update unit 15 updates the variable f_f to "0" in S18.

例えば、図2に示すケース1において、メッセージM5のデータがメッセージM1のデータと一致する場合には、S17の判定が「Yes」となり、S18において変数f_fが「0」に更新される。一方、メッセージM5のデータがメッセージM1のデータと異なるときは、S17の判定が「No」となり、変数f_fは更新されない。 For example, in case 1 shown in FIG. 2, if the data of message M5 matches the data of message M1, the determination in S17 is "Yes" and the variable f_f is updated to "0" in S18. On the other hand, when the data of the message M5 is different from the data of the message M1, the determination in S17 is "No" and the variable f_f is not updated.

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 interval determination unit 14 determines whether or not the reception interval dt is greater than the transmission cycle T. In the determination of S19, the transmission cycle T means a value (T-th2) that is larger than the transmission cycle T by a predetermined amount th2. Then, when the reception interval dt is greater than the transmission period T, in S20, the variable update unit 15 updates the variables s_f, p_f, and f_f to "0".

受信間隔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 variable update unit 15 updates the value stored in the target partial area to the value of the first received message. It is determined whether or not it matches the value stored in the target partial area. Here, the processing of S21 is substantially the same as that of S17. Then, when the reception interval dt matches or substantially matches the transmission interval T and the value stored in the target partial area is different from the value stored in the target partial area of the first received message, the variable updating unit 15 updates the variable f_f to "0" in S22. On the other hand, when the value stored in the target partial area in S21 matches the value stored in the target partial area of the first received message, the variables s_f, p_f and f_f are held.

このように、受信間隔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 format estimation unit 16 executes the processes of S31 to S36 for each partial area. Therefore, the partial area on which the estimation process is executed is sometimes called a “target partial area”.

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 format estimation unit 16 determines whether or not the pattern number DP and the variables s_f, p_f, and f_f provided for the target partial region satisfy the following three conditions.
(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 format estimation unit 16 estimates in S32 that the transmission type of the message including the target partial area is "periodic message with event transmission (specific value)". On the other hand, when the above three conditions are not satisfied, the processing of the format estimation unit 16 proceeds to S33.

S33において、形式推定部16は、対象部分領域に対して設けられている変数p_fが「1」であるか否かを判定する。なお、変数p_fが「1」である状態は、すべての受信メッセージの受信間隔が送信周期Tと一致または略一致したときに得られる。そして、変数p_fが「1」であるときは、形式推定部16は、S34において、対象部分領域を含むメッセージの送信タイプが「周期メッセージ」であると推定する。一方、変数p_fが「1」でないときは、形式推定部16は、S35において、対象部分領域を含むメッセージの送信タイプが「非周期メッセージ」であると推定する。 In S33, the format estimation unit 16 determines whether or not the variable p_f provided for the target partial area is "1". The state in which the variable p_f is "1" is obtained when the reception intervals of all received messages match or substantially match the transmission cycle T. FIG. Then, when the variable p_f is "1", the format estimation unit 16 estimates in S34 that the transmission type of the message including the target partial area is "periodic message". On the other hand, when the variable p_f is not "1", the format estimation unit 16 estimates in S35 that the transmission type of the message including the target partial area is "aperiodic message".

S36において、形式推定部16は、対象部分領域に格納されているデータの形式が上述した形式5~8のいずれかに該当し得るか否かを判定する。具体的には、下記の処理が実行される。
(1)対象部分領域に格納されているデータを「符号なしデータ」とみなしたときのデータの変化量の分散値が一定値を超えているときは、形式5に対応する符号なし連続値可能性フラグに「0」を設定する。
(2)対象部分領域に格納されているデータを「符号付きデータ」とみなしたときのデータの変化量の分散値が一定値を超えているときは、形式6に対応する符号付き連続値可能性フラグに「0」を設定する。
(3)対象部分領域に格納されているデータが一様に分布していないときは、形式7に対応するチェックサム(一様)可能性フラグに「0」を設定する。
(4)形式8に対応するマルチ値可能性フラグを「1」に設定する。或いは、形式推定部16は、マルチ値可能性フラを使用しなくてもよい。
In S36, the format estimating unit 16 determines whether the format of the data stored in the target partial area can correspond to any one of formats 5 to 8 described above. Specifically, the following processing is executed.
(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, form estimator 16 may not use the multi-value probability flag.

なお、可能性フラグが「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 format estimation unit 16 estimates the transmission type of the message in S37. As an example, when the determination in S31 is "Yes" for one or more partial areas, the format estimation unit 16 estimates that the transmission type of the message is "periodic message with event transmission". Further, when there is no partial area determined as "Yes" in S31 and the determination in S33 is "Yes" for one or more partial areas, the format estimation unit 16 determines the transmission type of the message. is a "periodic message". When the above two cases do not apply, the format estimation unit 16 estimates that the transmission type of the message is "aperiodic message".

上述の前処理および推定処理により、各部分領域について、データ形式の候補としてありえないものが除去された結果を表す可能性フラグが得られる。ただし、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 result estimation unit 18, for example.

(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 estimation device 10 may execute the process of S11 after S13, or may execute the process of S11 after S14. Also, the estimating apparatus 10 may execute the process of S36 immediately after the preprocessing, or may execute the process of S36 immediately before the overlapping process. Furthermore, the estimating apparatus 10 may perform overlapping processing at any timing after the preprocessing is completed.

図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 estimation device 10 may use two variables to perform the estimation process. For example, the estimating device 10 uses the message possibility flag with event transmission and the periodic message possibility flag. In this case, the processes shown in FIGS. 11 and 12 are executed as follows. That is, when the reception interval dt is shorter than the transmission cycle in S15, the periodic message possibility flag is updated to "0". In S17, when the value of the target partial area matches the value stored in the target partial area of the first received message, the message possibility flag with event transmission is updated to "0". When the reception interval dt is longer than the transmission cycle in S19, the message possibility flag with event transmission and the periodic message possibility flag are updated to "0". Then, in S31, if the number of patterns DP is "2" and the message possibility flag with event transmission is "1", the transmission type is estimated to be "event (specific value)". Note that the message possibility flag with event transmission and the periodic message possibility flag correspond to variable f_f and variable p_f, respectively.

また、図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 case 1 shown in FIG. 2, "1 (fixed value)" is normally set, and "3 (specific value)" is set in the message M5 that is sent due to the occurrence of an event. However, the "event (specific value)" of the first embodiment is not limited to this case. That is, the "event (specific value)" may be a message in which an arbitrary value is normally set and a specific value is set when an event occurs. In this case, in S31, it is determined whether or not the number of patterns DP of the target partial area is "2 or more".

<第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 case 2 shown in FIG. 2, the data of messages M1 to M4 is "1", but the data after message M5 generated due to the occurrence of the event is changed to "7".

推定装置10の構成は、第1の実施形態および第2の実施形態において実質的に同じであり、図6に示す通りである。また、推定方法の手順は、第1の実施形態および第2の実施形態においてほぼ同じであり、図9に示すフローチャートの通りである。ただし、第2の実施形態に係わる前処理および推定処理は、それぞれ第1の実施形態と異なる処理を含む。 The configuration of the estimating device 10 is substantially the same in the first embodiment and the second embodiment, as shown in FIG. Also, the procedure of the estimation method is substantially the same in the first embodiment and the second embodiment, as shown in the flow chart of FIG. However, preprocessing and estimation processing according to the second embodiment include processing different from that of the first embodiment.

図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 variable update unit 15 converts the value (Data(i)) stored in the target partial area to the value (Data(i-1)) stored in the target partial area of the previous received message. Determine whether or not they match. Here, the processing of S41 is executed when the determination of S15 is "Yes". That is, when the reception interval dt is smaller than the transmission cycle T and the value stored in the target partial area matches the value stored in the target partial area of the immediately preceding received message, the determination in S41 is " Yes”. This situation does not satisfy the condition that "the value of the target partial area changes when a predetermined event occurs". Therefore, when the determination in S41 is "Yes", the variable update unit 15 updates the variable f_f to "0" in S18.

例えば、図2に示すケース2において、メッセージM5のデータがメッセージM4のデータと一致する場合には、S41の判定が「Yes」となり、S18において変数f_fが「0」に更新される。一方、メッセージM5のデータがメッセージM4のデータと異なるときは、S41の判定が「No」となり、変数f_fは更新されない。 For example, in case 2 shown in FIG. 2, if the data of message M5 matches the data of message M4, the determination in S41 is "Yes" and the variable f_f is updated to "0" in S18. On the other hand, when the data of the message M5 is different from the data of the message M4, the determination in S41 is "No" and the variable f_f is not updated.

受信間隔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 variable update unit 15 updates the value stored in the target partial area to the value of the previous received message. It is determined whether or not it matches the value stored in the target partial area. Here, the processing of S42 is substantially the same as that of S41. When the reception interval dt matches or substantially matches the transmission interval T and the value stored in the target partial area is different from the value stored in the target partial area of the previous received message, the variable updating unit 15 updates the variable f_f to "0" in S43. On the other hand, when the value stored in the target partial area in S42 matches the value stored in the target partial area of the first received message, the variables s_f, p_f and f_f are held.

このように、第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 format estimation unit 16 determines whether the variables s_f, p_f, and f_f satisfy the following two conditions.
(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 format estimation unit 16 estimates in S45 that the transmission type of the message including the target partial area is "periodic message with event transmission (change)". On the other hand, when the above two conditions are not satisfied, the processing of the format estimation unit 16 proceeds to S33.

なお、第2の実施形態において、推定装置10は、S14の後でS11の処理を実行してもよい。また、推定装置10は、前処理の直後にS36の処理を実行してもよいし、重複処理の直前にS36の処理を実行してもよい。さらに、推定装置10は、前処理が終了した後であれば、任意のタイミングで重複処理を実行してもよい。 Note that in the second embodiment, the estimation device 10 may perform the process of S11 after S14. Also, the estimating apparatus 10 may execute the process of S36 immediately after the preprocessing, or may execute the process of S36 immediately before the overlapping process. Furthermore, the estimating apparatus 10 may perform overlapping processing at any timing after the preprocessing is completed.

図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 device 10 uses the message possibility flag with event transmission and the periodic message possibility flag. In this case, the processes shown in FIGS. 13 and 14 are executed as follows. That is, when the reception interval dt is shorter than the transmission cycle in S15, the periodic message possibility flag is updated to "0". In S41, when the value of the target partial area matches the value of the target partial area of the previous received message, the message possibility flag with event transmission is updated to "0". In S19, when the reception interval dt is longer than the transmission cycle, the message possibility flag with event transmission and the periodic message possibility flag are updated to "0". If the message possibility flag with event transmission is "1" in S44, it is estimated that the transmission type is "event (change)". Note that the message possibility flag with event transmission and the periodic message possibility flag correspond to variable f_f and variable p_f, respectively.

また、推定装置10は、第1の実施形態の推定および第2の実施形態の推定の双方を実行してもよい。この場合、メッセージの受信間隔が所定のイベントの発生時以外の期間において送信周期と一致するか否かを表す変数(f_f)として、イベント発生時に特定の値が設定されるメッセージを検出するための変数f_f1、及び、イベント発生時に値が変化するメッセージを検出するための変数f_f2、を個々に管理することが好ましい。 Also, the estimation device 10 may perform both the estimation of the first embodiment and the estimation of the second embodiment. In this case, a variable (f_f) representing whether or not the message reception interval matches the transmission cycle during a period other than when a predetermined event occurs is set to a specific value when an event occurs. It is preferable to individually manage the variable f_f1 and the variable f_f2 for detecting a message whose value changes when an event occurs.

<実施例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 device 10 estimates the features of the message containing ID=100. Here, in this embodiment, since the length of the data area of each message is 4 bits, there are 10 types of partial areas (that is, combinations of starting positions and lengths) below.
(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 apparatus 10 acquires data in order from the first record of the communication log shown in FIG. 15 and executes the processing of the flowchart shown in FIG. 9 (FIGS. 11 and 12 or FIGS. 13 and 14). Note that the initial value of the number of patterns DP in each partial area is zero. The initial values of variables s_f, p_f, and f_f are one. At S15 and S19, the margins (ie th1 and th2) are 0.2 seconds each.

(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 estimation device 10 executes estimation processing. The results of execution by the estimating device 10 are as follows.

(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. Format 2 shown in FIG. 16 represents a checksum (calculation formula). In other words, the possibility that any data stored in each partial area is a checksum (calculation formula) is denied. In addition, the estimating apparatus 10 records the reception time of the message as "previous reception time=1.00" for processing subsequent messages.

(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 device 10 executes the estimating process.

なお、推定装置10は、当該メッセージの受信時刻と同じ識別子を含む直前の受信メッセージの受信時刻との差分を計算して「受信間隔dt=1.00」を得る。ここで、受信間隔dtは、「送信周期-th1」以上、且つ、「送信周期+th2」以下である。したがって、推定装置10は、変数s_f、p_fを更新しない。ただし、部分領域に格納されている値がメッセージM1の同じ部分領域の値と異なるときは、推定装置10は、その部分領域の変数f_fを「0」に更新する。 The estimating apparatus 10 calculates the difference between the reception time of the message and the reception time of the previous received message containing the same identifier, and obtains "reception interval dt=1.00". Here, the reception interval dt is equal to or greater than "transmission cycle -th1" and equal to or less than "transmission cycle +th2". Therefore, the estimating device 10 does not update the variables s_f and p_f. However, when the value stored in the partial area is different from the value of the same partial area in message M1, estimating device 10 updates the variable f_f of that partial area to "0".

なお、変数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 data formats 1 to 8 are updated to "0", they never return to "1". Therefore, for variables or flags that have already been updated to "0", description thereof will be omitted even if an event occurs to update "1" to "0".

(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 format 1 represents a fixed value. Format 3 represents a counter. Form 4 represents monotonically increasing. In addition, the estimating apparatus 10 records the reception time of the message as "previous reception time=2.00" for processing subsequent messages.

(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 device 10 executes the estimating process.

なお、推定装置10は、当該メッセージの受信時刻と同じ識別子を含む直前の受信メッセージの受信時刻との差分を計算して「受信間隔dt=1.00」を得る。ここで、受信間隔dtは、「送信周期-th1」以上、且つ、「送信周期+th2」以下である。したがって、推定装置10は、変数s_f、p_fを更新しない。ただし、部分領域に格納されている値がメッセージM1の同じ部分領域の値と異なるとき、または、部分領域に格納されている値がメッセージM3の同じ部分領域の値と異なるときは、推定装置10は、その部分領域の変数f_fを「0」に更新する。 The estimating apparatus 10 calculates the difference between the reception time of the message and the reception time of the previous received message containing the same identifier, and obtains "reception interval dt=1.00". Here, the reception interval dt is equal to or greater than "transmission cycle -th1" and equal to or less than "transmission cycle +th2". Therefore, the estimating device 10 does not update the variables s_f and p_f. However, if the value stored in a partial area is different from the value in the same partial area of message M1, or if the value stored in the partial area is different from the value in the same partial area of message M3, the estimation device 10 updates the variable f_f of that partial area to "0".

(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 device 10 records the reception time of the message as "previous reception time=3.00" for subsequent message processing.

(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 device 10 executes the estimating process.

なお、推定装置10は、当該メッセージの受信時刻と同じ識別子を含む直前の受信メッセージの受信時刻との差分を計算して「受信間隔dt=1.00」を得る。ここで、受信間隔dtは、「送信周期-th1」以上、且つ、「送信周期+th2」以下である。したがって、推定装置10は、変数s_f、p_f、f_fを更新しない。 The estimating apparatus 10 calculates the difference between the reception time of the message and the reception time of the previous received message containing the same identifier, and obtains "reception interval dt=1.00". Here, the reception interval dt is equal to or greater than "transmission cycle -th1" and equal to or less than "transmission cycle +th2". Therefore, the estimating device 10 does not update the variables s_f, p_f, f_f.

(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 apparatus 10 records the reception time of the message as "previous reception time=4.00" for the processing of subsequent messages.

(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 estimation device 10 executes S31 to S35 in FIG. 12 (or S33 to S35, S44 and S45 in FIG. 14) for each partial area. Here, in this example, the variables s_f, p_f, and f_f are all "1" and have not been updated. As a result, as shown in FIG. 19, the variable p_f is "1" in all partial areas. That is, "transmission type=periodic message" is obtained for all partial areas through S33 and S34. Therefore, estimation apparatus 10 estimates that the message including ID=100 is a "periodic message".

(10)形式5~8の推定
データ領域に格納されている値を「符号付きデータ」と仮定すると、その値は「1」→「6」→「-7」→「7」と推移し、その分散は大きい。よって、符号付き連続値可能性フラグ(1,4)は「0」に更新される。一方、データ領域に格納されている値を「符号なしデータ」と仮定すると、その値は「1」→「6」→「9」→「7」と推移し、その分散は小さい。したがって、符号なし連続値可能性フラグ(1,4)は「1」のまま保持される。
(10) Estimation of formats 5 to 8 Assuming that the value stored in the data area is "signed data", the value changes from "1" → "6" → "-7" → "7", The variance is large. Therefore, the signed continuous value possibility flag (1, 4) is updated to "0". On the other hand, if the values stored in the data area are assumed to be "unsigned data", the values change from "1"→"6"→"9"→"7", and the variance is small. Therefore, the unsigned consecutive value possibility flag (1, 4) is kept at "1".

各部分領域に格納されている値は、一様に分布しているとはいえない。よって、すべての部分領域について、チェックサム(一様)可能性フラグが「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 (format 1 in FIG. 19) are updated to “0” for all partial areas. Therefore, it is presumed that a message containing ID=100 does not store fixed value data. Also, there is no partial area where the sum of the start position (i) and the data length (j) is a multiple of eight. Therefore, the estimating apparatus 10 starts the duplicate elimination process from the partial area with the longer data length (that is, the partial area (1, 4)).
(11a) Since the checksum (calculation formula) possibility flag (format 2 in FIG. 19) of partial area (1, 4) is updated to "0", the data format is not determined.
(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 (format 3 in FIG. 19) of partial area (1, 4) is updated to "0", the data format is not determined.
(11d) Since the monotonically increasing possibility flag (format 4 in FIG. 19) of partial area (1, 4) is updated to "0", the data format is not fixed.
(11e) The unsigned continuous value possibility flag of partial area (1, 4) is kept at "1" as described above. Therefore, estimation apparatus 10 estimates that the format of the data stored in the data area is "unsigned continuous value".

<実施例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 device 10 estimates the characteristics of messages including ID=200. In addition, in the second embodiment, estimation (that is, detection of a message with event transmission including a partial area in which a specific value is set when an event occurs) according to the first embodiment is performed.

(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 device 10 executes estimation processing. The results of execution by the estimating device 10 are as follows.

(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. Format 2 shown in FIG. 20 represents a checksum (calculation formula). In addition, the estimating apparatus 10 records the reception time of the message as "previous reception time=1.50" for processing subsequent messages.

(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 device 10 executes estimation processing.

推定装置10は、当該メッセージの受信時刻と同じ識別子を含む直前の受信メッセージの受信時刻との差分を計算して「受信間隔dt=1.00」を得る。ここで、受信間隔dtは、「送信周期-th1」以上、且つ、「送信周期+th2」以下である。よって、推定装置10は、変数s_f、p_fを更新しない。ただし、部分領域に格納されている値が、「ID=200」を含む最初のメッセージ(即ち、メッセージM2)の同じ部分領域の値と異なるときは、推定装置10は、その部分領域の変数f_fを「0」に更新する。 The estimating device 10 calculates the difference between the reception time of the message and the reception time of the immediately preceding received message containing the same identifier, and obtains "reception interval dt=1.00". Here, the reception interval dt is equal to or greater than "transmission cycle -th1" and equal to or less than "transmission cycle +th2". Therefore, the estimation device 10 does not update the variables s_f and p_f. However, if the value stored in a sub-region is different from the value of the same sub-region in the first message containing "ID=200" (i.e., message M2), then the estimator 10 stores variable f_f to "0".

(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 format 3 represents a counter. Form 4 represents monotonically increasing. In addition, the estimating apparatus 10 records the reception time of the message as "previous reception time=2.50" for processing subsequent messages.

(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 device 10 executes estimation processing.

なお、推定装置10は、当該メッセージの受信時刻と同じ識別子を含む直前の受信メッセージの受信時刻との差分を計算して「受信間隔dt=0.75」を得る。ここで、受信間隔dtは、「送信周期-th1」以下である。したがって、推定装置10は、図22に示すように、各部分領域の変数p_fをそれぞれ「0」に更新する。なお、この処理は、図11または図13に示すS15~S16に相当する。 Note that the estimating apparatus 10 calculates the difference between the reception time of the message and the reception time of the immediately preceding received message containing the same identifier, and obtains "reception interval dt=0.75". Here, the reception interval dt is equal to or less than "transmission cycle-th1". Therefore, the estimation device 10 updates the variable p_f of each partial region to "0", as shown in FIG. Note that this process corresponds to S15 to S16 shown in FIG. 11 or FIG.

(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 apparatus 10 records the reception time of the message as "previous reception time=3.25" for processing subsequent messages.

(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 device 10 executes estimation processing.

推定装置10は、当該メッセージの受信時刻と同じ識別子を含む直前の受信メッセージの受信時刻との差分を計算して「受信間隔dt=1.00」を得る。ここで、受信間隔dtは、「送信周期-th1」以上、且つ、「送信周期+th2」以下である。よって、推定装置10は、変数s_f、p_fを更新しない。ただし、部分領域に格納されている値が、「ID=200」を含む最初のメッセージ(即ち、メッセージM2)の同じ部分領域の値と異なるときは、推定装置10は、その部分領域の変数f_fを「0」に更新する。 The estimating device 10 calculates the difference between the reception time of the message and the reception time of the immediately preceding received message containing the same identifier, and obtains "reception interval dt=1.00". Here, the reception interval dt is equal to or greater than "transmission cycle -th1" and equal to or less than "transmission cycle +th2". Therefore, the estimation device 10 does not update the variables s_f and p_f. However, if the value stored in a sub-region is different from the value of the same sub-region in the first message containing "ID=200" (i.e., message M2), then the estimator 10 stores variable f_f to "0".

(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 estimation device 10 executes S31 to S35 in FIG. 12 for each partial area. Here, when the above processing is completed, the variable p_f and the variable f_f provided for the partial areas (1,1), (3,1), (3,2), and (4,1) are set to "0". ” has been updated. Therefore, the transmission types corresponding to these partial areas are determined as "aperiodic" as shown in FIG. Since the other partial areas satisfy the condition of S31 in FIG. 12, their transmission types are determined to be "event (specific value)".

さらに、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 apparatus 10 estimates that the message transmission type is "event (specific value)". Therefore, estimating apparatus 10 estimates that the message including ID=200 is the "periodic message with event transmission".

(10)形式5~8の推定
データ領域に格納されている値を「符号付きデータ」と仮定すると、その値は「0」→「4」→「0」→「0」と推移し、その分散は小さい。よって、符号付き連続値可能性フラグ(1,4)は「1」のまま保持される。また、データ領域に格納されている値を「符号なしデータ」と仮定したケースでも、その値の推移は同じなので、符号なし連続値可能性フラグ(1,4)も「1」のまま保持される。
(10) Estimation of Formats 5 to 8 Assuming that the value stored in the data area is "signed data", the value changes from "0" → "4" → "0" → "0". Variance is small. Therefore, the signed continuous value possibility flag (1, 4) is kept at "1". Even if the values stored in the data area are assumed to be "unsigned data", the transition of the values is the same. be.

各部分領域に格納されている値は、一様に分布しているとはいえない。よって、すべての部分領域について、チェックサム(一様)可能性フラグが「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 apparatus 10 starts the overlap elimination process from the partial area with the longer data length (that is, the partial area (2, 1)).
(11a) Since the checksum (calculation formula) possibility flag (format 2 in FIG. 22) of the partial area (2, 1) is updated to "0", the data format is not determined.
(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 apparatus 10 estimates the data of the 1st bit, the 3rd bit, and the 4th bit as "fixed values" and the data of the 2nd bit as an "event (specific value)".

このように、本発明の実施形態に係わる推定方法は、データ領域内のデータの振る舞いに基づいてデータの形式を推定しながら、メッセージの送信タイプを推定できる。したがって、攻撃検知のための事前準備処理において、通信ログを解析する時間が削減される。これ加えて、通常時には周期的に送信され、且つ、イベント発生時には送信周期に対して非同期で送信されるメッセージ(上述の例では、イベント送信付き周期メッセージ)を識別できる。よって、本発明の実施形態に係わる推定方法により得られる推定結果を利用すれば、攻撃検知の精度が向上する。 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 1, characterized by representing whether or not is a value that should be stored at times other than when an event occurs.
(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 1, wherein the received message is estimated to include a partial area to which a specific value is set when the predetermined event occurs.
(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 Supplementary Note 3, wherein the received message is estimated to include a partial area to which a specific value is set when the predetermined event occurs.
(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 Supplementary Note 3, wherein the received message is estimated to include a partial area to which a specific value is set when the predetermined event occurs.
(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 1, wherein the received message is estimated to include a partial area whose value changes when the predetermined event occurs.
(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 6, wherein the received message is estimated to include a partial area whose value changes when the predetermined event occurs.
(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 3 or 6, characterized in that a second variable provided for is updated to a second state.
(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 Appendices 1 to 8, characterized in that it determines whether it corresponds to a continuous value with a formula, a checksum by a calculation formula, a checksum that shows uniformity, a counter, a monotonically increasing value, or a multi-value estimation method.
(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 estimation device 11 communication log database 12 control unit 13 pattern number counter 14 reception interval determination unit 15 variable update unit 16 format estimation unit 18 final result estimation unit 200 ECU
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.
前記第2の変数は、メッセージの受信間隔が所定のイベントの発生時以外の期間において前記送信周期と対応するか否か、及び、イベントの発生時以外の期間において当該部分領域に格納される値がイベント発生時以外に格納されるべき値であるか否かを表す
ことを特徴とする請求項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の変数をそれぞれ第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の変数をそれぞれ第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の変数を第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.
JP2019178794A 2019-09-30 2019-09-30 METHOD AND INFORMATION PROCESSING APPARATUS FOR ESTIMATING MESSAGE FEATURES Active JP7268562B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07321783A (en) * 1994-05-25 1995-12-08 Fuji Xerox Co Ltd Network monitor equipment

Patent Citations (4)

* Cited by examiner, † Cited by third party
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