(57)【要約】      （修正有）【課題】パケット解析装置、方法、およびその非一時的コンピュータ可読媒体を提供する。【解決手段】パケット解析装置１は、記憶部１１と処理部１３とを備える。記憶部は、各々のフォーマットが未知である複数のパケット１０ａ〜１０ｂを格納する。処理部は、記憶部に接続されて、複数のパケットの複数の相互相関値を算出し、当該複数の相互相関値および少なくとも１つの第１の閾値にしたがって、各々が複数のパケットのサブセットを含む少なくとも１つのグループを決定する。処理部は、さらに、少なくとも１つのグループのうちの特定のグループに含まれる複数のパケットが画成する複数のビット位置の各々に対応する、当該複数のパケットの各々に含まれる複数のビットの変動の程度を算出して、対応する変動の程度が第２の閾値より小さい少なくとも１つのビット位置を、特定のグループの少なくとも１つのフィールド境界として選択する。【選択図】図１Ａ
2018133774.tif 000002
【特許請求の範囲】
【請求項１】
パケット解析装置であって、
各々のフォーマットが未知である複数のパケットを格納する記憶部と、
前記記憶部に電気的に接続されて、前記複数のパケットの複数の相互相関値を算出し、当該複数の相互相関値および少なくとも１つの第１の閾値にしたがって、各々が前記複数のパケットのサブセットを含む少なくとも１つのグループを決定する処理部と、
を備え、
前記処理部は、前記少なくとも１つのグループのうちの特定のグループに含まれる複数のパケットが画成する複数のビット位置の各々に対応する、当該複数のパケットの各々に含まれる複数のビットの変動の程度を算出して、
対応する変動の程度が第２の閾値より小さい少なくとも１つのビット位置を、前記特定のグループの少なくとも１つのフィールド境界として選択する
ことを特徴とするパケット解析装置。
【請求項２】
前記処理部は、さらに、
前記複数のパケットのうちの特定のパケットにつき、複数のビットを有する第１のベクトルを生成し、
前記第１のベクトルを、異なる複数のシフトビット数で循環シフトして、複数の第２のベクトルを生成し、
前記第１のベクトルおよび前記複数の第２のベクトルの各々にモジュロ２加算を施して、各々が複数のビットを有する複数の第３のベクトルを生成し
前記複数の第３のベクトルの各々につき、値が１に等しい前記複数のビットの累積数を算出し、
対応する累積数が前記複数のビットの累積数の中で最小且つ計数閾値より小さいシフトビット数を、前記特定のパケットの周期的特性として、前記異なる複数のシフトビット数の中から選択する
ことを特徴とする請求項１に記載のパケット解析装置。
【請求項３】
前記特定のグループに含まれる前記複数のパケットは複数のバイト位置を画成し、
前記特定のグループに含まれる前記複数のパケットの各々はパケット長を有し、
前記処理部は、さらに、
バイト数および前記複数のバイト位置のうちの特定のバイト位置にしたがって、前記特定グループ長表示フィールドたる特定のフィールドを決定し、
前記特定のグループに含まれる前記複数のパケットの各々に対し、（ａ）前記特定のフィールドの前記パケットの前記ビットにしたがって評価長を算出し、（ｂ）前記評価長と前記特定のバイト位置を表す値と前記バイト数とを前記パケットの長さから引いて差分値を得る演算を施し、
前記差分値が予め設定した範囲より小さいパケット数を算出し、
前記パケット数が第３の閾値より大きいことを判定する
ことを特徴とする請求項１に記載のパケット解析装置。
【請求項４】
前記処理部は、さらに、
前記複数のパケットの各々の数列を、相互相関値計算長にしたがって決定し、
前記複数の相互相関値を、その各々が前記複数のパケットのうちの２つのパケットに対応する数列どうしの内積値として、当該複数のパケットの複数の数列にしたがって算出する
ことを特徴とする請求項１に記載のパケット解析装置。
【請求項５】
前記相互相関値計算長は予め設定した長さであることを特徴とする請求項４に記載のパケット解析装置。
【請求項６】
前記少なくとも１つの第１の閾値の各々は、前記複数の相互相関値の各々のサブセットに関連することを特徴とする請求項１に記載のパケット解析装置。
【請求項７】
前記処理部は、
前記複数のビット位置の各々につき、ビット値確率を前記ビット位置に対応する前記複数のビットにしたがって算出することを特徴とする請求項１に記載のパケット解析装置。
【請求項８】
前記処理部は、さらに、前記ビット値確率を０．５から引いた結果をビット値バイアス度とすることを特徴とする請求項７に記載のパケット解析装置。
【請求項９】
電子計算装置に適用されるパケット解析方法であって、
各々のフォーマットが未知である複数のパケットの複数の相互相関値を算出するステップと、
各々が前記複数のパケットのサブセットを含む少なくとも１つのグループを前記相互相関値および少なくとも１つの第１の閾値にしたがって決定するステップと、
前記少なくとも１つのグループのうちの特定のグループに含まれる複数のパケットが画成する複数のビット位置の各々に対応する、当該複数のパケットの各々に含まれる複数のビットの変動の程度を算出するステップと、
対応する変動の程度が第２の閾値より小さい少なくとも１つのビット位置を、前記特定のグループの少なくとも１つのフィールド境界として選択するステップと、
を備えたことを特徴とするパケット解析方法。
【請求項１０】
前記複数のパケットのうちの特定のパケットにつき、複数のビットを有する第１のベクトルを生成するステップと、
前記第１のベクトルを、異なる複数のシフトビット数で循環シフトして、複数の第２のベクトルを生成するステップと、
前記第１のベクトルおよび前記複数の第２のベクトルの各々にモジュロ２加算を施して、各々が複数のビットを有する複数の第３のベクトルを生成するステップと、
前記複数の第３のベクトルの各々につき、値が１に等しい前記複数のビットの累積数を算出するステップと、
対応する累積数が前記複数のビットの累積数の中でも最小且つ計数閾値より小さいシフトビット数を、前記特定のパケットの周期的特性として、前記異なる複数のシフトビット数の中から選択するステップと、
をさらに備えたことを特徴とする請求項９に記載のパケット解析方法。
【請求項１１】
前記特定のグループに含まれる前記複数のパケットは複数のバイト位置を画成し、
前記特定のグループに含まれる前記複数のパケットの各々はパケット長を有し、
バイト数および前記複数のバイト位置のうちの特定のバイト位置にしたがって、前記特定グループ長表示フィールドたる特定のフィールドを決定するステップと、
前記特定のグループに含まれる前記複数のパケットの各々に対し、前記特定のフィールドの前記パケットの前記ビットにしたがって評価長を算出し、前記評価長と前記特定のバイト位置を表す値と前記バイト数とを前記パケットの長さから引いて差分値を得る演算を施すステップと、
前記差分値が予め設定した範囲より小さいパケット数を算出するステップと、
前記パケット数が第３の閾値より大きいことを判定するステップと、
を備えたことを特徴とする請求項９に記載のパケット解析方法。
【請求項１２】
前記複数のパケットの各々の数列を、相互相関値計算長にしたがって決定するステップと、
前記複数の相互相関値を、その各々が前記複数のパケットのうちの２つのパケットに対応する数列どうしの内積値として、当該複数のパケットの複数の数列にしたがって算出するステップと、
を備えたことを特徴とする請求項９に記載のパケット解析方法。
【請求項１３】
前記相互相関値計算長は予め設定した長さであることを特徴とする請求項１２に記載のパケット解析方法。
【請求項１４】
前記少なくとも１つの第１の閾値の各々は前記複数の相互相関値の各々のサブセットに関連することを特徴とする請求項９に記載のパケット解析方法。
【請求項１５】
前記複数のビット位置の各々につき、ビット値確率を前記ビット位置に対応する前記複数のビットにしたがって算出するステップをさらに備えたことを特徴とする請求項９に記載のパケット解析方法。
【請求項１６】
前記ビット値確率を０．５から引いた結果をビット値バイアス度とするステップをさらに備えたことを特徴とする請求項１５に記載のパケット解析方法。
【請求項１７】
コンピュータプログラムを記憶した非一時的コンピュータ可読媒体であって、当該コンピュータプログラムは電子計算装置にロードされてパケット解析方法を実行し、
当該パケット解析方法は、
各々のフォーマットが未知である複数のパケットの複数の相互相関値を算出するステップと、
各々が前記複数のパケットのサブセットを含む少なくとも１つのグループを前記相互相関値および少なくとも１つの第１の閾値にしたがって決定するステップと、
前記少なくとも１つのグループのうちの特定のグループに含まれる複数のパケットが画成する複数のビット位置の各々に対応する、当該複数のパケットの各々に含まれる複数のビットの変動の程度を算出するステップと、
対応する変動の程度が第２の閾値より小さい少なくとも１つのビット位置を、前記特定のグループの少なくとも１つのフィールド境界として選択するステップと、を備えた
ことを特徴とする非一時的コンピュータ可読媒体。
【請求項１８】
前記パケット解析方法は、
前記複数のパケットのうちの特定のパケットにつき、複数のビットを有する第１のベクトルを生成するステップと、
前記第１のベクトルを、異なる複数のシフトビット数で循環シフトして、複数の第２のベクトルを生成するステップと、
前記第１のベクトルおよび前記複数の第２のベクトルの各々にモジュロ２加算を施して、各々が複数のビットを有する複数の第３のベクトルを生成するステップと、
前記複数の第３のベクトルの各々につき、値が１に等しい前記複数のビットの累積数を算出するステップと、
対応する累積数が前記複数のビットの累積数の中でも最小且つ計数閾値より小さいシフトビット数を、前記特定のパケットの周期的特性として、前記異なる複数のシフトビット数の中から選択するステップと、をさらに備えた
ことを特徴とする請求項１７に記載の非一時的コンピュータ可読媒体。
【請求項１９】
前記パケット解析方法は、
前記特定のグループに含まれる前記複数のパケットは複数のバイト位置を画成し、
前記特定のグループに含まれる前記複数のパケットの各々はパケット長を有し、
バイト数および前記複数のバイト位置のうちの特定のバイト位置にしたがって、前記特定グループ長表示フィールドたる特定のフィールドを決定するステップと、
前記特定のグループに含まれる前記複数のパケットの各々に対し、前記特定のフィールドの前記パケットの前記ビットにしたがって評価長を算出し、前記評価長と前記特定のバイト位置を表す値と前記バイト数とを前記パケットの長さから引いて差分値を得る演算を施すステップと、
前記差分値が予め設定した範囲より小さいパケット数を算出するステップと、
前記パケット数が第３の閾値より大きいことを判定するステップと、をさらに備えた
ことを特徴とする請求項１７に記載の非一時的コンピュータ可読媒体。
【請求項２０】
前記パケット解析方法は、
前記複数のパケットの各々の数列を、相互相関値計算長にしたがって決定するステップと、
前記複数の相互相関値を、その各々が前記複数のパケットのうちの２つのパケットに対応する数列どうしの内積値として、当該複数のパケットの複数の数列にしたがって算出するステップと、を備えた
ことを特徴とする請求項１７に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はパケット解析装置、方法、およびその非一時的コンピュータ可読媒体に関する。より具体的には、本発明は、フォーマットが未知のパケットを解析するための装置、方法、およびその非一時的コンピュータ可読媒体に関する。
【背景技術】
【０００２】
情報技術の急激な発展によって、様々な種類のパケットフォーマット（たとえば、様々な通信プロトコル、様々なデータ記憶フォーマット、および様々な画像フォーマットのパケットフォーマット）が、多くの情報産業技術者および研究機関によって、様々な必要性および様々な考慮に基づいて策定されてきた。それにもかかわらず、すべてのパケットフォーマットが国際規格を満たしているわけではない。
【０００３】
多くのアプリケーション（たとえば、ファズテスト）を効率的に、および／または正しく実行するためには、パケットフォーマット（たとえば、フィールドの数および各フィールドの長さ）を予め知っていなければならない。現在、未知のフォーマットのパケットを解析できる技術がいくつかある。これらの技術では、フォーマットが未知のパケットの特徴を、フォーマットが既知のパケットの特徴と比較する。これらの技術の欠点は、類似する特徴が見つからない場合は、フォーマットが未知のパケットの同フォーマットを決定できないことである。したがって、フォーマットが未知であるパケットのフォーマットを解析できる技術に対する必要性が未だにある。
【発明の概要】
【０００４】
本発明の目的はパケット解析装置を提供することである。パケット解析装置は、各々のフォーマットが未知である複数のパケットを格納する記憶部と、前記記憶部に電気的に接続されて、前記複数のパケットの複数の相互相関値を算出し、当該複数の相互相関値および少なくとも１つの第１の閾値にしたがって、各々が前記複数のパケットのサブセットを含む少なくとも１つのグループを決定する処理部と、を備える。前記処理部は、前記少なくとも１つのグループのうちの特定のグループに含まれる複数のパケットが画成する複数のビット位置の各々に対応する、当該複数のパケットの各々に含まれる複数のビットの変動の程度を算出して、対応する変動の程度が第２の閾値より小さい少なくとも１つのビット位置を、前記特定のグループの少なくとも１つのフィールド境界として選択する。
【０００５】
本発明の別の目的は、電子計算装置に適応されるパケット解析方法を提供することである。パケット解析方法は、以下のステップを含む。（ａ）各々のフォーマットが未知である複数のパケットの複数の相互相関値を算出するステップと、（ｂ）各々が前記複数のパケットのサブセットを含む少なくとも１つのグループを前記相互相関値および少なくとも１つの第１の閾値にしたがって決定するステップと、（ｃ）前記少なくとも１つのグループのうちの特定のグループに含まれる複数のパケットが画成する複数のビット位置の各々に対応する、当該複数のパケットの各々に含まれる複数のビットの変動の程度を算出するステップと、（ｄ）対応する変動の程度が第２の閾値より小さい少なくとも１つのビット位置を、前記特定のグループの少なくとも１つのフィールド境界として選択するステップと、である。
【０００６】
本発明の別の目的は、コンピュータプログラムを格納した非一時的コンピュータ可読媒体を提供することである。コンピュータプログラムは、電子計算装置にロードされてから、前述のパケット解析方法を実行する。
【０００７】
一般に、本発明で提供するパケット解析技術（装置、方法、および非一時的コンピュータ可読媒体を含む）は、複数のパケットの中から相関関係にしたがって少なくとも１つのグループを決定し、次に、少なくとも１つのグループに含まれるパケットのフィールド境界を決定する。これらのフィールドはユーザ参照用に（たとえば、ファズテストの方針を策定する際の参照用に）提供されてもよい。
本発明で提供するパケット解析技術（装置、方法、および非一時的コンピュータ可読媒体を含む）はさらに、少なくとも１つのグループの各ビット位置の特性（たとえば、ビット値確率およびビット値バイアス度）を解析し、および／または少なくとも１つのグループに含まれるパケットが長さ表示フィールドを有するかを判定してもよい。
本発明で提供するパケット解析技術（装置、方法、および非一時的コンピュータ可読媒体を含む）はさらに、パケットが周期的特性を有するかを解析してもよい。これらの様々な情報をすべてユーザのさらなる解析用に提供してもよい。
【０００８】
主題となる発明に実装される詳細な技術および好ましい実施形態を当業者が理解できるように、添付図を伴って請求される発明の特徴を以下の段落で説明する。
【図面の簡単な説明】
【０００９】
【図１Ａ】第１の実施形態のパケット解析装置１の構造を例示する概略図である。
【図１Ｂ】２０個のパケットの一例を示す図である。
【図１Ｃ】ビット位置およびビット値バイアス度の一例を示す図である。
【図１Ｄ】特定のフィールドの一例を示す図である。
【図２Ａ】第２の実施形態のパケット解析方法を例示するフローチャートである。
【図２Ｂ】少なくとも１つのグループに含まれるパケットがパケット長表示フィールドを有するか否かを判定するプロセスを例示するフローチャートである。
【図２Ｃ】いずれかのパケットが周期的特性を有するか否かを解析するためのプロセスを例示するフローチャートである。
【発明を実施するための形態】
【００１０】
以下の説明では、本発明によるパケット解析装置、方法、およびその非一時的コンピュータ可読媒体を、実施形態を参照して説明する。ただし、これらの実施形態は、同実施形態に記載されるいずれか特定の環境、アプリケーション、または具体的な実装に本発明を限定することを意図するものではない。したがって、これらの実施形態の説明は、本発明を限定するのではなく、例示することを目的とする。
以下の実施形態および添付図において、本発明に関連しない要素は説明から省略されることを理解されたい。さらに、個々の要素の寸法および添付図の個々の要素間の寸法的な関係は例示目的でのみ提示され、本発明の範囲を限定するものではない。
【００１１】
本発明の第１の実施形態はパケット解析装置１であり、その構造概略図を図１Ａに示す。パケット解析装置１は、記憶部１１と、処理部１３とを備える。記憶部１１および処理部１３は互いに電気的に接続する。記憶部１１はメモリ、ユニバーサルシリアルバス（ＵＳＢ）ディスク、ハードディスク、コンパクトディスク（ＣＤ）、モバイルディスク、または同様の機能を有し、当業者に既知である任意の他の記憶媒体または回路であってもよい。処理部１３は、様々なプロセッサのいずれか、中央演算処理部（ＣＰＵ）、マイクロプロセッサ、または当業者に既知の他の計算装置、方法であってもよい。
【００１２】
記憶部１１は複数のパケット１０ａ、…、１０ｂを格納する。パケット１０ａ、…、１０ｂの各々は複数のビットを含む。パケット１０ａ、…、１０ｂのフォーマット（たとえば、通信プロトコル）は未知である。つまり、複数のパケット１０ａ、…、１０ｂの各々における複数のフィールドの数および当該複数のフィールドの各々の長さは未知である。本実施形態では、パケット解析装置１は少なくとも１つのグループをパケット１０ａ、…、１０ｂ間の相関関係にしたがって決定し、次に、決定した少なくとも１つのグループのうちの少なくとも１つに含まれるパケットのフィールドの境界を決定する。
【００１３】
まず、パケット解析装置１がパケット１０ａ、…、１０ｂ間の相関関係を算出する方法を説明する。本実施形態では、処理部１３は複数のパケット１０ａ、…、１０ｂの相互相関値を算出する。各相互相関値はパケット１０ａ、…、１０ｂのうち２つに関連する。具体的には、処理部１３は、パケット１０ａ、…、１０ｂのうちいずれか２つによって形成される複数の組み合わせの各々の相互相関値を算出してもよい。
【００１４】
処理部１３がまず、パケット１０ａ、…、１０ｂの各々の数列を相互相関値計算長にしたがって決定する実施形態であってもよい。相互相関値計算長は予め設定した長さでもよい。具体的には、パケット１０ａ、…、１０ｂの各々に対して、処理部１３は、パケットに含まれるビットのサブセット（たとえば、第１のＬビットであって、Ｌは相互相関値計算長であり正の整数）を相互相関値計算長にしたがって、パケットの数列とする。さらに、処理部１３は、パケットのいずれか２つから形成される複数の組み合わせの各々に対応する数列の内積値（つまり、２つの数列の内積から得られる値）を算出し、内積値を相互相関値とする。各数列は長さ（つまり、数列内の数値／ビット数）を有し、数列の長さは同一である（つまり、すべての長さは相互相関値計算長と等しい）ことを理解されたい。
理解しやすいように、パケット１０ａ、…、１０ｂの数列および処理部１３によって決定される相互相関値を以下の数学記号で表す。
2018133774.tif 000003
ｉ番目のパケットに対応する数列であり、ｉ∈｛０，１，…，Ｍ−１｝、
2018133774.tif 000004
ｊ番目のパケットに対応する数列であり、ｊ∈｛０，１，…，Ｍ−１｝、
2018133774.tif 000005
ｉ番目のパケットに対応する数列の長さ、
2018133774.tif 000006
ｉ番目のパケットのｋ番目のビット値であり、
2018133774.tif 000007
2018133774.tif 000008
ｉ番目のパケットの数列のｋ番目の値であり、
2018133774.tif 000009
Ｐｉ，ｊはｉ番目のパケットとｊ番目のパケット間の相互相関値であり、
2018133774.tif 000010
である。
【００１５】
パケット１０ａ、…、１０ｂの数列を表す前述の数学記号に関し、パラメータＭはパケット１０ａ、…、１０ｂの数を表す。内積値を相互相関値とするのは一例であり、本発明の範囲を限定するものではないことに留意されたい。各相互相関値は、相互相関値に対応する２つのパケット間の類似度（または相関度）を表すために用いるが、２つのパケット（または２つの数列）間の類似度（または相関度）を表すことが可能な他の数値も用いてもよい。
【００１６】
理解しやすいように、前述の演算を特定の例を参照して詳細に説明するが、本発明の範囲を限定するものではない。
図１Ｂは、本例で用いる２０パケットが例示される。図１Ｂでは、各行が１つのパケットを表す。各パケットに含まれるビット値は１６進表記で表す。処理部１３は、各パケットの数列を相互相関値計算長にしたがって決定する。数列は同じ長さである。次に、処理部１３は内積値を、パケットのいずれか２つから形成される複数の組み合わせの各々に対応する２つの数列から算出する。内積値は相互相関値である。したがって、２０パケットは０から１９までであると想定される。
０番目のパケットを例にとると、処理部１３が算出する相互相関値（つまり、０番目のパケットと任意の他のパケットとの間の相互相関値）は以下の値を含むと推定される。ｐ０，１＝０．５９５、ｐ０，２＝０．５７２５、ｐ０，３＝０．６２、ｐ０，４＝０．７９、ｐ０，５＝０．５７２５、ｐ０，６＝０．６６、ｐ０，７＝０．５８５、ｐ０，８＝０．５５５、ｐ０，９＝０．５６、ｐ０，１０＝０．５４２５、ｐ０，１１＝０．５９２５、ｐ０，１２＝０．５６５、ｐ０，１３＝０．６０２５、ｐ０，１４＝０．４７７５、ｐ０，１５＝０．４８７５、ｐ０，１６＝０．５３、ｐ０，１７＝０．４９７５、ｐ０，１８＝０．５１２５、およびｐ０，１９＝０．５０２５。
【００１７】
次に、処理部１３は、相互相関値および少なくとも１つの第１の閾値にしたがって少なくとも１つのグループを決定する。少なくとも１つのグループの各々は、パケット１０ａ、…、１０ｂのサブセットを備える。処理部１３が、パケット１０ａ、…、１０ｂの各々の第１の閾値を決定し、パケットの第１の閾値にしたがってパケット１０ａ、…、１０ｂの各々のグループを決定する実施形態であってもよい。処理部１３が１つの第１の閾値のみを決定し、次に、同じ第１の閾値にしたがってパケット１０ａ、…、１０ｂの各々のグループを決定する実施形態であってもよい。処理部１３がパケット１０ａ、…、１０ｂの特定の１または複数の（全部ではない）グループを個別に生成し、処理部がグループを生成するために用いる第１の閾値は互いに同一または異なる実施形態であってもよい。
【００１８】
理解しやすいように、前述の特定の例（つまり、図１Ｂに例示するパケットおよび関連データ）を参照して説明を続けるが、本発明の範囲を限定することを意図するものではない。この特定の例では、処理部１３は少なくとも１つの第１の閾値を相互相関値のサブセットにしたがって決定する。
具体的には、０番目のパケットでは、処理部１３は第１の閾値を０番目のパケットに関連する相互相関値にしたがって算出する。相互相関値は、つまり、ｐ０，１、ｐ０，２、ｐ０，３、ｐ０，４、ｐ０，５、ｐ０，６、ｐ０，７、ｐ０，８、ｐ０，９、ｐ０，１０、ｐ０，１１、ｐ０，１２、ｐ０，１３、ｐ０，１４、ｐ０，１５、ｐ０，１６、ｐ０，１７、ｐ０，１８およびｐ０，１９である。一例として、処理部１３は、０番目のパケットに関する相互相関値の平均値（約０．５６９４７４）を算出してもよく、平均値を０番目のパケットの第１の閾値としてもよい。別の例として、処理部１３は平均値と分散を０番目のパケットの第１の閾値としてもよい。したがって、０番目のパケットに関する相互相関値の平均値を、処理部１３による０番目のパケットの第１の閾値とすることが想定される。この想定に基づいて、処理部１３は０番目のパケットと、対応する相互相関値が第１の閾値よりも大きいパケットとを同じグループにグループ分けする。具体的には、相互相関値ｐ０，１、ｐ０，３、ｐ０，４、ｐ０，６、ｐ０，７、ｐ０，１１、ｐ０，１３は第１の閾値より大きいため、処理部１３は０番目、１番目、３番目、４番目、６番目、７番目、１１番目、および１３番目のパケットが１つのグループを形成すると決定する。この特定の例では、処理部１３は、同じ手法を採用して、残りのパケットの各々の第１の閾値を個々に決定し、個々にグループ分けする。したがって、これ以上の詳細は本明細書では記載しない。
【００１９】
前述のように、処理部１３が、第１の閾値を１つのみ決定し、次に、単一の第１の閾値にしたがって、０番目から１９番目のパケットの各々のグループを個々に決定する実施形態であってもよい。処理部１３が、パケット１０ａ、…、１０ｂの特定の１または複数の（全部ではない）グループを個別に（たとえば１０番目のパケットのみに）生成する実施形態であってもよい。処理部がグループを生成するために用いる第１の閾値は互いに同一であっても、異なっていてもよい。処理部１３がこれらの実施形態を実行する方法は、当業者には前述の説明を再考することによって理解されるであろう。そのため、これ以上本明細書では記載しない。
【００２０】
パケット１０ａ、…、１０ｂの少なくとも１つのグループを決定後、処理部１３は、少なくとも１つのグループに含まれるパケットのフィールドの境界を決定する。つまり、処理部１３は少なくとも１つのグループのうちの１つ、複数、またはすべてにおいて、パケットのフィールドの境界を決定してもよい。理解しやすいように、処理部１３が処理するグループを特定のグループ（不図示）と呼ぶ。
特定のグループに含まれるパケットは複数のビット位置を画成する。具体的には、処理部１３はパケットを、最も有意なビットに関して位置合わせをする（つまり、各パケットで最も有意なビットからビットに採番する）。ビット位置は整列済みのパケットによって画成される。たとえば、パケットの最も有意なビットはすべて、０番目のビット位置に対応するなどである。次に、処理部１３は各ビット位置に対応するビットの変動の程度を算出し、変動の程度が第２の閾値よりも小さい少なくとも１つのビット位置を、特定のグループの少なくとも１つのフィールド境界として選択する。小さい変動の程度に対応するビット位置をフィールド境界とすることに関する主な懸念は、フィールド内でより有意なビットが通常はより小さい変動の程度を有するということである。
処理部１３が変動の程度の平均値を算出し、平均値を第２の閾値とする実施形態であってもよい。処理部１３が変動の程度の平均値を算出し、平均値に０から１までの値をかけて、第２の閾値とする実施形態であってもよい。
【００２１】
たとえば、処理部１３は、各ビット位置に対応するビットの変動の程度を、以下の方程式（１）および方程式（２）にしたがって算出してもよい。方程式（１）および方程式（２）は本発明の範囲を限定することを意図するものではないことを理解されたい。
【００２２】
【数１】
2018133774.tif 000011
（１）
【００２３】
【数２】
2018133774.tif 000012
（２）
【００２４】
前述の方程式（１）および方程式（２）では、パラメータＭは特定のグループのパケットの数を表し、パラメータｃｉｊはビット位置ｊにおけるｉ番目のパケットのビット値を表し、ｃｉｊ∈｛０，１｝、Ｅ［Ｃｊ］はビット位置ｊでのビットの平均値を表し、Ｖａｒ［Ｃｊ］はビット位置ｊでのビットの分散を表す。この特定の例では、処理部１３は分散Ｖａｒ［Ｃｊ］をビット位置ｊのビットの変動の程度とし適応する。この特定の例では、処理部１３は、すべてのビット位置の分散Ｖａｒ［Ｃｊ］を得た後に、分散Ｖａｒ［Ｃｊ］が第２の閾値より小さいビット位置を、少なくとも１つのフィールド境界として選択してもよい。
【００２５】
パケット解析装置１がさらに、少なくとも１つのグループの各ビット位置の特性をユーザの参照用に（たとえば、ファズテストの方針を策定する際の参照用に）解析する実施形態であってもよい。つまり、処理部１３は、少なくとも１つのグループのうちの１つ、複数、またはすべての各ビット位置の特性を解析してもよい。ここで、前述の特定のグループを例にとって、さらに説明する。特定のグループの各ビット位置では、処理部１３は、少なくとも１つのビット値確率をビット位置に対応するビットにしたがって算出してもよい。たとえば、処理部１３はビット値が１であるビット値確率を以下の方程式（３）にしたがって算出してもよく、ビット値が０であるビット値確率を以下の方程式（４）にしたがって算出してもよい。
【００２６】
【数３】
2018133774.tif 000013
（３）
【００２７】
【数４】
2018133774.tif 000014
【００２８】
方程式（３）および方程式（４）では、パラメータＭは特定のグループのパケットの数を表し、パラメータｃｉｊはビット位置ｊにおけるｉ番目のパケットのビット値を表し、ｃｉｊ∈｛０，１｝、Ｐ（Ｃｊ＝１）はビット値が１のビット値確率を表し、Ｐ（Ｃｊ＝０）はビット値が０のビット値確率を表す。
【００２９】
特定のグループの各ビット位置に対して、処理部１３が、少なくとも１つのビット値確率の各々を０．５から引いた結果をビット値バイアス度とする実施形態であってもよい。たとえば、処理部１３はビット値が０であるビット値バイアス度を以下の方程式（５）にしたがって算出してもよく、ビット値が１であるビット値バイアス度を以下の方程式（６）にしたがって算出してもよい。
【００３０】
【数５】
2018133774.tif 000015
【００３１】
【数６】
2018133774.tif 000016
【００３２】
方程式（５）および方程式（６）では、Ｐ（Ｃｊ＝０）はビット値が０のビット値確率を表し、Ｐ（Ｃｊ＝１）はビット値が１のビット値確率を表し、β（Ｃｊ［０］）はビット値が０のビット値バイアス度を表し、β（Ｃｊ［１］）はビット値が１のビット値バイアス度を表す。
【００３３】
処理部１３がさらに、グループをより正確に得るために、すべてのビット位置のビット値バイアス度を解析し、パケット１０ａ、…、１０ｂの相互相関値を解析結果にしたがって再算出し、グループを再生成する実施形態であってもよい。具体的には、処理部１３はビット位置の特定の領域が、ビット値が１であるビット値バイアス度の絶対値がすべて閾値より小さいという特性を有することを判定する。これは、ヘッダおよびペイロードの境界が特定の領域内に入る可能性が高いことを意味する。したがって、処理部１３はこの特定の領域にしたがって相互相関値計算長を更新する。相互相関値計算長を更新後、処理部１３は、更新された相互相関値計算長に再度したがって各パケット１０ａ、…、１０ｂの数列を決定し、パケット１０ａ、…、１０ｂの相互相関値を再度算出し、グループを再度生成する。処理部１３がパケット１０ａ、…、１０ｂの相互相関を更新された相互相関値計算長にしたがって算出し、グループを再度生成する方法は、当業者には前述の説明から理解されるであろう。そのため、これ以上本明細書では記載しない。
【００３４】
相互相関値計算長の更新を理解しやすいように、図１Ｃに例示する特定の例を参照されたい。図１Ｃでは、横軸はビット位置を表し、縦軸はビット値が１であるビット値バイアス度の絶対値を表す。この特定の例では、処理部１３は、ビット値が１であるビット値バイアス度の絶対値が閾値より小さい特定の領域（つまり、２７５番目のビット位置から３２５番目のビット位置まで）があると判定する。したがって、処理部１３は、相互相関値計算およびグループ分けの次の段階で、［２７５／８］×８＝２７２を相互相関値計算長とする。
【００３５】
パケット解析装置１がさらに、少なくとも１つのグループに対して、グループに含まれるパケットが、長さ表示フィールド（つまり、パケットのペイロードの長さを示すフィールド）を有するかをユーザ参照用に（たとえば、ファズテストの方針を策定する際の参照用に）判定する実施形態であってもよい。つまり、少なくとも１つのグループのうちの１つ、複数、またはすべてに対して、処理部１３は、グループに含まれるパケットが長さ表示フィールドを有するかどうかを判定してもよい。理解しやすいように、処理部１３が処理するグループを特定のグループ（不図示）と呼ぶ。特定のグループに含まれるパケットは複数のバイト位置を画成し、特定のグループに含まれる各パケットはパケット長を有する。
【００３６】
具体的には、処理部１３は、バイト数およびバイト位置内の特定のバイト位置にしたがって特定のフィールドを決定し、次に、特定のフィールドが長さ表示フィールドであるかを判定する。バイト数は（存在する場合は）長さ表示フィールドが占めるバイトの数を表す。バイト数は予め設定した値でもよく、またはユーザが入力インターフェース（不図示）から入力してもよい。
処理部１３は、以下の演算を特定のグループに含まれる各パケットに実施する。（ａ）特定のフィールドのパケットのビットにしたがって評価長を算出し、（ｂ）評価長と、特定のバイト位置を表す値と、バイト数とをパケットのパケット長から引いて差分値を得る。パケットでは、差分値が予め設定した範囲より小さい場合、特定のフィールドはパケットにおけるパケット長表示フィールドである可能性が高いことを意味する。前述の演算（ａ）および（ｂ）を特定のグループのすべてのパケットに実施後に、処理部１３は、予め設定した範囲より小さい差分値の数を算出し、数が第３の閾値より大きいかどうかを判定する。数が第３の閾値より大きい場合、処理部１３は特定のフィールドを特定のグループのパケットにおけるパケット長表示フィールドと考える。処理部１３がさらに、長さ表示フィールドの判定結果の精度を算出する実施形態であってもよい。具体的には、処理部１３は、予め設定した範囲より小さい差分値の数を特定のグループのパケット数で割ることによって精度を得てもよい。
【００３７】
理解しやすいように、図１Ｄを例にとって説明する。特定のグループが複数のパケットを含み、パケット１０ａ、１０ｂは特定のグループのパケットのうち２つであると想定する。
図１Ｄに示すように、パケット１０ａ、１０ｂに含まれるビットは１６進表記で表され、およびパケット１０ａ、１０ｂのパケット長はそれぞれ４６バイトおよび３８バイトである。図１Ｄに示す特定の例では、バイト数（つまり、長さ表示フィールド（存在する場合は）が占めるバイト数）は２バイトであり、特定のバイト位置は（０番目のバイトから算出した）１６番目のバイトである。処理部１３は、パケット１０ａ、１０ｂそれぞれの特定のフィールド１２ａ、１２ｂを、バイト数および特定のバイト位置にしたがって決定する。パケット１０ａでは、処理部１３は評価長（つまり、１６１×１＋１６０×１５＝３１）を特定のフィールド１２ａのパケット１０ａのビットにしたがって算出し、次に、評価長と、特定のバイト位置を表す数値と、バイト数とをパケット長から引いて、差分値（つまり、４６−３１−１７−２＝−４）を得る。
パケット１０ｂでは、処理部１３は評価長（つまり、１６１×１＋１６０×７＝２３）を特定のフィールド１２ｂのパケット１０ｂのビットにしたがって算出し、次に、特定のバイト位置を表す数値と、バイト数とをパケット長から引いて、差分値（つまり、３８−２３−１７−２＝−４）を得る。同様に、処理部１３は他のパケットの評価長を算出し、次に、差分値を算出する。特定のグループに含まれるすべてのパケットを処理後、処理部１３は、予め設定した範囲より小さい（たとえば、−５〜＋５）差分値の数（または割合）を算出し、次に、数（または割合）が第３の閾値より大きいかどうかを判定する。数（または割合）が第３の閾値より大きい場合、処理部１３は特定のフィールドをこのパケットグループにおけるパケットのパケット長表示フィールドと見なす。
【００３８】
前述のバイト数、特定のバイト位置、および特定のフィールドをさらに説明する。一定の特定のグループの特定のフィールドを探すために、処理部１３が０番目のバイト位置をテストする実施形態であってもよい（つまり、０番目のバイト位置を特定のバイト位置とし、特定のフィールドを特定のバイト位置およびバイト数にしたがって決定し、次に、前述の算出および判定を実施する）。次に、１番目のバイト位置などをテストする。
これらの実施形態では、処理部１３は複数の様々なバイト位置をテストを受ける特定のバイト位置とするため、差分値が第３の閾値より大きいパケットの数（または割合）の複数のバイト位置がありえる。この状況が生じる場合は、処理部１３はこのパケットグループにおけるパケットのパケット長表示フィールドとして、差分値が第３の閾値より大きいパケットの数（または割合）が最大となる特定のフィールドを選択してもよい。さらに、処理部１３がバイト数を複数の様々な値に設定し、様々な値を個々に同じ手法で前述の計算および判定を実施する実施形態であってもよいが、本明細書ではこれ以上の詳細は記載しない。
【００３９】
前述のように、処理部１３が特定グループ長表示フィールドを判定後、処理部１３はさらに、長さ表示フィールドの判定結果の精度を算出してもよい。精度が高いということは、処理部１３によるパケット１０ａ、…、１０ｂのグループ分けが、より正確であることを意味する。したがって、処理部１３が前述の演算を繰り返して、より正確な解析のグループ分けの結果を生成する実施形態であってもよい。
【００４０】
具体的には、処理部１３が、特定のグループに含まれるパケットが長さ表示フィールドを有することを判定し、判定した長さ表示フィールドの精度を算出した後に、処理部１３は相互相関値計算長を更新してもよく（たとえば、相互相関値計算長を増減してもよく）、パケット１０ａ、…、１０ｂの相互相関値を再度算出してもよく（たとえば、各パケット１０ａ、…、１０ｂの数列を相互相関値計算長にしたがって再度決定し、パケット１０ａ、…、１０ｂの相互相関値を数列にしたがって算出してもよく）、グループを再度生成してもよく、少なくとも１つのグループに含まれるパケットが長さ表示フィールドを有するかを再度判定してもよく、長さ表示フィールドの判定結果の精度を再度算出してもよい（長さ表示フィールドがある場合）。
処理部１３が更新された相互相関値計算長にしたがって前述の演算を繰り返す方法は、当業者には前述の説明によって理解されるであろう。そのため、詳細はここではさらに説明しない。処理部１３は、精度が予め設定した条件（たとえば、閾値より高い）に到達するまで、または前述の演算が予め設定した回数だけ繰り返されるまで、前述の演算を繰り返してもよい。
【００４１】
パケット解析装置１がさらに、いずれかのパケットが周期的特性を有するかを、ユーザ参照用に（たとえば、ファズテストの方針を策定する際の参照用に）解析する実施形態であってもよい。理解しやすいように、処理部１３が処理するパケットを特定のパケット（不図示）と呼び、ベクトル形で記載する。各ベクトルの大きさは最長の特定のパケットのビット長である。処理部１３はこの特定のパケットの第１のベクトルを生成する。第１のベクトルは複数のビットを含む。処理部１３は次に、第１のベクトルを複数の様々なシフトビット数で循環シフトすることによって、複数の第２のベクトルを生成する。処理部１３はさらに、モジュロ２加算を第１のベクトルおよび第２の各ベクトルに行うことによって、複数の第３のベクトルを生成する。第３の各ベクトルは複数のビットを含む。
処理部１３は、第３の各ベクトルに対して、値が１に等しいビットの累積数を算出する。その後、処理部１３は、最小累積数に対応するシフトビット数を特定のパケットの周期的特性として選択する（つまり、この間隔で離間するビットは同じビット値を有する）。理解しやすいように、処理部１３が実施するモジュロ２加算は以下の方程式（７）で表される。
【００４２】
【数７】
2018133774.tif 000017
（７）
【００４３】
前述の方程式（７）では、
2018133774.tif 000018
第１のベクトルを表し、
2018133774.tif 000019
第２のベクトルを表し、
2018133774.tif 000020
第３のベクトルを表す。処理部１３は変数ｋを様々な値に設定することによって、様々な第２のベクトルを生成する。処理部１３は、第３の各ベクトル（つまり、
2018133774.tif 000021
のハミング重みを算出する（つまり、第３のベクトルの値が１に等しいビットの累積数を算出する）。第３のベクトルのハミング重みが低いということは、第３のベクトルを算出するために用いる第１のベクトルおよび第２のベクトルの互いの類似度が大きいということを意味する。したがって、処理部１３は最小累積数に対応するシフトビット数を特定のパケットの周期的特性として選択してもよい。より正確な周期的特性を得るために、対応する累積数が累積数のうち最小であると同時に、計数閾値よりも小さい場合にのみ、シフトビット数が特定のパケットの周期的特性として機能可能である実施形態であってもよい。
【００４４】
前述の説明によれば、パケット解析装置１は、パケット１０ａ、…、１０ｂ間の相関関係にしたがって少なくとも１つのグループを決定し、次に、少なくとも１つのグループに含まれるパケットのフィールド境界を決定する。これらのフィールドはユーザの参照用に（たとえば、ファズテストの方針を策定する際の参照用に）提供されてもよい。
パケット解析装置１はさらに、少なくとも１つのグループの各ビット位置の特性（たとえば、ビット値確率およびビット値バイアス度）を解析し、および／または少なくとも１つのグループに含まれるパケットが長さ表示フィールドを有するかどうかを判定する。さらに、パケット解析装置１はまた、パケットが周期的特性を有するかどうかを解析してもよい。これらの様々な情報はすべて、さらに解析するためにユーザに提供されてもよい。
【００４５】
本発明の第２の実施形態は、図２Ａに示すパケット解析方法およびフローチャートである。このパケット解析方法は電子計算装置、たとえば、第１の実施形態によるパケット解析装置１に適応される。
【００４６】
ステップＳ２０１では、電子計算装置は、フォーマットが未知である複数のパケットの複数の相互相関値を算出する。ステップＳ２０１で算出された各相互相関値は、パケットのうち２つに関連する。具体的には、ステップＳ２０１では、パケットのいずれか２つから形成される組み合わせの各々に、相互相関値を算出してもよい。ステップＳ２０１の前に、パケット解析方法が、相互相関値計算長にしたがって、ステップを実行して各パケットの数列を決定する実施形態であってもよい。相互相関値計算長は予め設定した長さであってもよい。具体的には、各パケットの電子計算装置はパケットに含まれるビットのサブセット（たとえば、第１のＬビットであって、Ｌは相互相関値計算長であり、正の整数）を、相互相関値計算長にしたがってパケットの数列としてもよい。このような実施形態では、各相互相関値は、パケットのうち２つに対応する２つの数列の内積値である。
【００４７】
ステップＳ２０３では、電子計算装置は少なくとも１つのグループを相互相関値および少なくとも１つの第１の閾値にしたがって決定する。少なくとも１つのグループの各々は、パケットのサブセットを含む。少なくとも１つのグループ内の特定のグループに含まれるパケットは複数のビット位置を画成し、特定のグループに含まれる各パケットは複数のビットを含む。少なくとも１つの第１の閾値の各々が相互相関値のサブセットに関連する実施形態であってもよい。
次にステップＳ２０５において、電子計算装置は、各ビット位置に対応するビットの変動の程度を算出する。ステップＳ２０７では、電子計算装置は、対応する変動の程度が第２の閾値より小さい少なくとも１つのビット位置を、特定のグループの少なくとも１つのフィールド境界として選択する。
【００４８】
パケット解析方法がさらに、ステップＳ２０９およびステップＳ２１１を含み、少なくとも１つのグループの各ビット位置の特性をユーザ参照用に（たとえば、ファズテストの方針を策定する際の参照用に）解析する実施形態であってもよい。ステップＳ２０９では、電子計算装置は、各ビット位置のビット値確率をビット位置に対応するビットにしたがって算出する。ステップＳ２１１では、電子計算装置は、ビット値確率を０．５から引いた結果を各ビット位置のビット値バイアス度とする。
【００４９】
パケット解析方法がさらに、図２Ｂに示すステップを含み、少なくとも１つのグループに対して、そのグループに含まれるパケットが長さ表示フィールド（つまり、パケットのペイロードの長さを示すフィールド）を有するかをユーザ参照用に（たとえば、ファズテストの方針を策定する際の参照用に）判定する実施形態であってもよい。これらの実施形態では、特定のグループに含まれるパケットは複数のバイト位置を画成し、特定のグループに含まれる各パケットはパケット長を有する。
【００５０】
ステップＳ２２１では、電子計算装置は、バイト数およびバイト位置内の特定のバイト位置にしたがって特定のフィールドを決定する。ステップＳ２２３では、電子計算装置は、解析されていないパケットを特定のグループから選択する。ステップＳ２２５では、電子計算装置は特定のフィールドのパケットのビットにしたがって評価長を算出する。ステップＳ２２７では、電子計算装置は評価長、特定のバイト位置を表す値、およびバイト数をパケット長から引いて、差分値を得る。次にステップＳ２２９では、電子計算装置は、特定のパケットにまだ未解析のパケットがあるかを判定する。ステップＳ２２９の判定結果が「はい」の場合は、ステップＳ２２３からＳ２２９までを繰り返す。ステップＳ２２９の判定結果が「いいえ」の場合は、電子計算装置は、予め設定した範囲より小さい差分値の数を算出する。次に、ステップＳ２３３では、数が第３の閾値より大きい場合、電子計算装置は特定のフィールドを特定のグループに含まれるパケットのパケット長表示フィールドとする。
【００５１】
パケット解析方法がさらに、図２Ｃに示すステップを含み、いずれかのパケットが周期的特性を有するかを、ユーザ参照用に（たとえば、ファズテストの方針を策定する際の参照用に）解析する実施形態であってもよい。
具体的には、ステップＳ２４１では、電子計算装置は、パケットの中から特定のパケットのために、第１のベクトルを生成する。第１のベクトルは複数のビットを含む。ステップＳ２４３では、電子計算装置は、第１のベクトルを複数の様々なシフトビット数で循環シフトすることによって、複数の第２のベクトルを生成する。ステップＳ２４５では、電子計算装置は、モジュロ２加算を第１のベクトルおよび第２の各ベクトルに行うことによって、複数の第３のベクトルを生成する。第３の各ベクトルは複数のビットを含む。ステップＳ２４７では、電子計算装置は、第３の各ベクトルに対して、値が１に等しいビットの累積数を算出する。ステップＳ２４９では、電子計算装置は、対応する累積数が累積数の中でも最小であり、計数閾値よりも小さいシフトビット数を特定のパケットの周期的特性として選択する。
【００５２】
前述のステップに追加して、第２の実施形態はまた、第１の実施形態と同じく、すべての演算およびステップを実行でき、同じ機能を有し、同じ技術的効果を提供する。第２の実施形態がこれらの演算およびステップを実行する方法、同じ機能を有する方法、同じ技術的効果を提供する方法は、当業者には第１の実施形態から理解されるであろう。そのため、これ以上本明細書では記載しない。
【００５３】
第２の実施形態で記載するパケット解析方法は、複数のコードを備えるコンピュータプログラムによって実装されてもよい。コンピュータプログラムは非一時的コンピュータ可読記憶媒体に格納される。コンピュータプログラムに含まれるコードを電子計算装置（たとえば、第１の実施形態のパケット解析装置１）にロードすると、第２の実施形態に記載されたパケット解析方法が実行される。非一時的コンピュータ可読記憶媒体は電子製品であってもよく、たとえば、リードオンリーメモリ（ＲＯＭ）、フラッシュメモリ、フロッピーディスク、ハードディスク、コンパクトディスク（ＣＤ）、モバイルディスク、磁気テープ、ネットワークにアクセス可能なデータベースまたは当業者に既知であり、同じ機能を有するいずれかの他の記憶媒体であってもよい。
【００５４】
本願明細書において、第１の閾値、第２の閾値、および第３の閾値で用いられる「第１の」「第２の」および「第３の」という用語は、閾値が異なる閾値であることを表すことのみを意図するものであることを理解されたい。第１のベクトル、第２のベクトル、および第３のベクトルで用いられる「第１の」「第２の」および「第３の」という用語は、ベクトルが異なるベクトルであることを表すことのみを意図するものである。
【００５５】
前述の説明から分かるように、本発明で提供するパケット解析技術（装置、方法、および非一時的コンピュータ可読媒体を含む）は、複数のパケットの中から相関関係にしたがって少なくとも１つのグループを決定し、次に、少なくとも１つのグループに含まれるパケットのフィールド境界を決定する。これらのフィールドはユーザ参照用に（たとえば、ファズテストの方針を策定する際の参照用に）提供されてもよい。
本発明で提供するパケット解析技術（装置、方法、および非一時的コンピュータ可読媒体を含む）はさらに、少なくとも１つのグループの各ビット位置の特性（たとえば、ビット値確率およびビット値バイアス度）を解析し、および／または少なくとも１つのグループに含まれるパケットが長さ表示フィールドを有するかを判定してもよい。本発明で提供するパケット解析技術（装置、方法、および非一時的コンピュータ可読媒体を含む）はさらに、パケットが周期的特性を有するかを解析してもよい。これらの様々な情報をすべてユーザの参照およびさらなる解析用に提供してもよい。
【００５６】
前述の開示は、詳細な技術的内容およびその発明的特徴に関する。当業者は本発明の特性から逸脱せずに本発明の開示および提示に基づいて、各種の修正および代替を行い得るであろう。そのような修正および代替が前述の説明に完全に開示されていない場合であっても、それらは以下の特許請求の範囲に実質的に網羅されている。
【図１Ａ】
2018133774.tif 000022
【図１Ｂ】
2018133774.tif 000023
【図１Ｃ】
2018133774.tif 000024
【図１Ｄ】
2018133774.tif 000025
【図２Ａ】
2018133774.tif 000026
【図２Ｂ】
2018133774.tif 000027
【図２Ｃ】
2018133774.tif 000028
【手続補正書】
【提出日】平成30年6月22日(2018.6.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
パケット解析装置であって、
各々のフォーマットが未知である複数のパケットを格納する記憶部と、
前記記憶部に電気的に接続されて、前記複数のパケットの複数の相互相関値を算出し、当該複数の相互相関値および少なくとも１つの第１の閾値にしたがって、各々が前記複数のパケットのサブセットを含む少なくとも１つのグループを決定する処理部と、
を備え、
前記処理部は、前記少なくとも１つのグループのうちの特定のグループに含まれる複数のパケットが画成する複数のビット位置の各々に対応する、当該複数のパケットの各々に含まれる複数のビットの変動の程度を算出して、
対応する変動の程度が第２の閾値より小さい少なくとも１つのビット位置を、前記特定のグループの少なくとも１つのフィールド境界として選択する
ことを特徴とするパケット解析装置。
【請求項２】
前記処理部は、さらに、
前記複数のパケットのうちの特定のパケットにつき、複数のビットを有する第１のベクトルを生成し、
前記第１のベクトルを、異なる複数のシフトビット数で循環シフトして、複数の第２のベクトルを生成し、
前記第１のベクトルおよび前記複数の第２のベクトルの各々にモジュロ２加算を施して、各々が複数のビットを有する複数の第３のベクトルを生成し
前記複数の第３のベクトルの各々につき、値が１に等しい前記複数のビットの累積数を算出し、
対応する累積数が前記複数のビットの累積数の中で最小且つ計数閾値より小さいシフトビット数を、前記特定のパケットの周期的特性として、前記異なる複数のシフトビット数の中から選択する
ことを特徴とする請求項１に記載のパケット解析装置。
【請求項３】
前記特定のグループに含まれる前記複数のパケットは複数のバイト位置を画成し、
前記特定のグループに含まれる前記複数のパケットの各々はパケット長を有し、
前記処理部は、さらに、
バイト数および前記複数のバイト位置のうちの特定のバイト位置にしたがって、前記特定のグループの長さ表示フィールドたる特定のフィールドを決定し、
前記特定のグループに含まれる前記複数のパケットの各々に対し、（ａ）前記特定のフィールドの前記パケットの前記ビットにしたがって評価長を算出し、（ｂ）前記評価長と前記特定のバイト位置を表す値と前記バイト数とを前記パケットの長さから引いて差分値を得る演算を施し、
前記差分値が予め設定した範囲より小さいパケット数を算出し、
前記パケット数が第３の閾値より大きいことを判定する
ことを特徴とする請求項１に記載のパケット解析装置。
【請求項４】
前記処理部は、さらに、
前記複数のパケットの各々の数列を、相互相関値計算長にしたがって決定し、
前記複数の相互相関値を、その各々が前記複数のパケットのうちの２つのパケットに対応する数列どうしの内積値として、当該複数のパケットの複数の数列にしたがって算出する
ことを特徴とする請求項１に記載のパケット解析装置。
【請求項５】
前記相互相関値計算長は予め設定した長さであることを特徴とする請求項４に記載のパケット解析装置。
【請求項６】
前記少なくとも１つの第１の閾値の各々は、前記複数の相互相関値の各々のサブセットに関連することを特徴とする請求項１に記載のパケット解析装置。
【請求項７】
前記処理部は、
前記複数のビット位置の各々につき、ビット値確率を前記ビット位置に対応する前記複数のビットにしたがって算出することを特徴とする請求項１に記載のパケット解析装置。
【請求項８】
前記処理部は、さらに、前記ビット値確率を０．５から引いた結果をビット値バイアス度とすることを特徴とする請求項７に記載のパケット解析装置。
【請求項９】
電子計算装置に適用されるパケット解析方法であって、
各々のフォーマットが未知である複数のパケットの複数の相互相関値を算出するステップと、
各々が前記複数のパケットのサブセットを含む少なくとも１つのグループを前記相互相関値および少なくとも１つの第１の閾値にしたがって決定するステップと、
前記少なくとも１つのグループのうちの特定のグループに含まれる複数のパケットが画成する複数のビット位置の各々に対応する、当該複数のパケットの各々に含まれる複数のビットの変動の程度を算出するステップと、
対応する変動の程度が第２の閾値より小さい少なくとも１つのビット位置を、前記特定のグループの少なくとも１つのフィールド境界として選択するステップと、
を備えたことを特徴とするパケット解析方法。
【請求項１０】
前記複数のパケットのうちの特定のパケットにつき、複数のビットを有する第１のベクトルを生成するステップと、
前記第１のベクトルを、異なる複数のシフトビット数で循環シフトして、複数の第２のベクトルを生成するステップと、
前記第１のベクトルおよび前記複数の第２のベクトルの各々にモジュロ２加算を施して、各々が複数のビットを有する複数の第３のベクトルを生成するステップと、
前記複数の第３のベクトルの各々につき、値が１に等しい前記複数のビットの累積数を算出するステップと、
対応する累積数が前記複数のビットの累積数の中でも最小且つ計数閾値より小さいシフトビット数を、前記特定のパケットの周期的特性として、前記異なる複数のシフトビット数の中から選択するステップと、
をさらに備えたことを特徴とする請求項９に記載のパケット解析方法。
【請求項１１】
前記特定のグループに含まれる前記複数のパケットは複数のバイト位置を画成し、
前記特定のグループに含まれる前記複数のパケットの各々はパケット長を有し、
バイト数および前記複数のバイト位置のうちの特定のバイト位置にしたがって、前記特定のグループの長さ表示フィールドたる特定のフィールドを決定するステップと、
前記特定のグループに含まれる前記複数のパケットの各々に対し、前記特定のフィールドの前記パケットの前記ビットにしたがって評価長を算出し、前記評価長と前記特定のバイト位置を表す値と前記バイト数とを前記パケットの長さから引いて差分値を得る演算を施すステップと、
前記差分値が予め設定した範囲より小さいパケット数を算出するステップと、
前記パケット数が第３の閾値より大きいことを判定するステップと、
を備えたことを特徴とする請求項９に記載のパケット解析方法。
【請求項１２】
前記複数のパケットの各々の数列を、相互相関値計算長にしたがって決定するステップと、
前記複数の相互相関値を、その各々が前記複数のパケットのうちの２つのパケットに対応する数列どうしの内積値として、当該複数のパケットの複数の数列にしたがって算出するステップと、
を備えたことを特徴とする請求項９に記載のパケット解析方法。
【請求項１３】
前記相互相関値計算長は予め設定した長さであることを特徴とする請求項１２に記載のパケット解析方法。
【請求項１４】
前記少なくとも１つの第１の閾値の各々は前記複数の相互相関値の各々のサブセットに関連することを特徴とする請求項９に記載のパケット解析方法。
【請求項１５】
前記複数のビット位置の各々につき、ビット値確率を前記ビット位置に対応する前記複数のビットにしたがって算出するステップをさらに備えたことを特徴とする請求項９に記載のパケット解析方法。
【請求項１６】
前記ビット値確率を０．５から引いた結果をビット値バイアス度とするステップをさらに備えたことを特徴とする請求項１５に記載のパケット解析方法。
【請求項１７】
コンピュータプログラムを記憶した非一時的コンピュータ可読媒体であって、当該コンピュータプログラムは電子計算装置にロードされてパケット解析方法を実行し、
当該パケット解析方法は、
各々のフォーマットが未知である複数のパケットの複数の相互相関値を算出するステップと、
各々が前記複数のパケットのサブセットを含む少なくとも１つのグループを前記相互相関値および少なくとも１つの第１の閾値にしたがって決定するステップと、
前記少なくとも１つのグループのうちの特定のグループに含まれる複数のパケットが画成する複数のビット位置の各々に対応する、当該複数のパケットの各々に含まれる複数のビットの変動の程度を算出するステップと、
対応する変動の程度が第２の閾値より小さい少なくとも１つのビット位置を、前記特定のグループの少なくとも１つのフィールド境界として選択するステップと、を備えた
ことを特徴とする非一時的コンピュータ可読媒体。
【請求項１８】
前記パケット解析方法は、
前記複数のパケットのうちの特定のパケットにつき、複数のビットを有する第１のベクトルを生成するステップと、
前記第１のベクトルを、異なる複数のシフトビット数で循環シフトして、複数の第２のベクトルを生成するステップと、
前記第１のベクトルおよび前記複数の第２のベクトルの各々にモジュロ２加算を施して、各々が複数のビットを有する複数の第３のベクトルを生成するステップと、
前記複数の第３のベクトルの各々につき、値が１に等しい前記複数のビットの累積数を算出するステップと、
対応する累積数が前記複数のビットの累積数の中でも最小且つ計数閾値より小さいシフトビット数を、前記特定のパケットの周期的特性として、前記異なる複数のシフトビット数の中から選択するステップと、をさらに備えた
ことを特徴とする請求項１７に記載の非一時的コンピュータ可読媒体。
【請求項１９】
前記パケット解析方法は、
前記特定のグループに含まれる前記複数のパケットは複数のバイト位置を画成し、
前記特定のグループに含まれる前記複数のパケットの各々はパケット長を有し、
バイト数および前記複数のバイト位置のうちの特定のバイト位置にしたがって、前記特定のグループの長さ表示フィールドたる特定のフィールドを決定するステップと、
前記特定のグループに含まれる前記複数のパケットの各々に対し、前記特定のフィールドの前記パケットの前記ビットにしたがって評価長を算出し、前記評価長と前記特定のバイト位置を表す値と前記バイト数とを前記パケットの長さから引いて差分値を得る演算を施すステップと、
前記差分値が予め設定した範囲より小さいパケット数を算出するステップと、
前記パケット数が第３の閾値より大きいことを判定するステップと、をさらに備えた
ことを特徴とする請求項１７に記載の非一時的コンピュータ可読媒体。
【請求項２０】
前記パケット解析方法は、
前記複数のパケットの各々の数列を、相互相関値計算長にしたがって決定するステップと、
前記複数の相互相関値を、その各々が前記複数のパケットのうちの２つのパケットに対応する数列どうしの内積値として、当該複数のパケットの複数の数列にしたがって算出するステップと、を備えた
ことを特徴とする請求項１７に記載の非一時的コンピュータ可読媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３９
【補正方法】変更
【補正の内容】
【００３９】
前述のように、処理部１３が特定のグループの長さ表示フィールドを判定後、処理部１３はさらに、長さ表示フィールドの判定結果の精度を算出してもよい。精度が高いということは、処理部１３によるパケット１０ａ、…、１０ｂのグループ分けが、より正確であることを意味する。したがって、処理部１３が前述の演算を繰り返して、より正確な解析のグループ分けの結果を生成する実施形態であってもよい。