(57)【特許請求の範囲】
【請求項１】
対象装置を正常に動作させるためのデータに含まれる複数の因子のうちの一部を、正常な値とは異なる値に書き換える書き換え処理を実行する書き換え部と、
前記書き換え処理によって書き換えられた因子を含む１以上の因子に依存する因子を演算依存関係に基づいて計算した結果に補正する処理であって、前記書き換え処理とは異なる補正処理を実行する補正部と、
前記書き換え処理の対象となる因子を示す書き換え部分と、前記補正処理の対象となる因子を示す補正部分とに基づいて、テストデータの生成方法を決定する決定部と、を備え、
前記決定部は、前記書き換え部分であり、かつ、前記補正部分でもある因子については前記補正処理を実行しないことを決定する、
情報処理装置。
【請求項２】
前記補正部は、前記書き換え処理により得られる書き換え済みデータに対して前記補正処理を実行して前記テストデータを生成する、
請求項１に記載の情報処理装置。
【請求項３】
前記補正処理は、前記対象装置との通信に用いる通信情報を修正する処理である、
請求項１に記載の情報処理装置。
【請求項４】
前記補正処理は、ハッシュ、チェックサム、メッセージ認証コード、および、因子の長さの少なくとも１つを計算する処理である、
請求項３に記載の情報処理装置。
【請求項５】
前記補正処理は、暗号化および圧縮の少なくとも１つを含む可逆変換である、
請求項１に記載の情報処理装置。
【請求項６】
対象装置を正常に動作させるためのデータに含まれる複数の因子のうちの一部を、正常な値とは異なる値に書き換える書き換え処理を実行する書き換え部と、
前記書き換え処理によって書き換えられた因子を含む１以上の因子に依存する因子を演算依存関係に基づいて計算した結果に補正する処理であって、前記書き換え処理とは異なる補正処理を実行する補正部と、
前記書き換え処理の対象となる因子を示す書き換え部分と、前記補正処理の対象となる因子を示す補正部分とに基づいて、テストデータの生成方法を決定する決定部と、を備え、
前記決定部は、前記書き換え部分であり、かつ、前記補正部分でもある因子が存在する場合、２種類の前記テストデータを生成することを決定する、
情報処理装置。
【請求項７】
前記決定部は、前記データに対して前記書き換え処理を行った後に前記補正処理を行って得られる第１のテストデータと、前記データに対して前記補正処理を行った後に前記書き換え処理を行って得られる第２のテストデータと、を生成することを決定する、
請求項６に記載の情報処理装置。
【請求項８】
前記補正処理は、
暗号化および圧縮の少なくとも１つを含む可逆変換、並びに、
ハッシュ、チェックサム、メッセージ認証コード、および、因子の長さの少なくとも１つを計算する処理、
のうち少なくとも１つである、
請求項６に記載の情報処理装置。
【請求項９】
対象装置を正常に動作させるためのデータに含まれる複数の因子のうちの一部を、正常な値とは異なる値に書き換える書き換え処理を実行する書き換え部と、
前記書き換え処理によって書き換えられた因子を含む１以上の因子に依存する因子を演算依存関係に基づいて計算した結果に補正する処理であって、前記書き換え処理とは異なる補正処理を実行する補正部と、
前記書き換え処理の対象となる因子を示す書き換え部分と、前記補正処理の対象となる因子を示す補正部分とに基づいて、テストデータの生成方法を決定する決定部と、を備え、
前記データは、所定のデータに含まれる複数の因子のうちの一部の因子に対して前記補正処理が行われた補正済みデータと、補正前の因子と、を含み、
前記決定部は、前記補正前の因子が前記書き換え部分である場合は、前記補正前の因子に対して前記書き換え処理を行った後に前記補正処理を行って得られる置換因子を、前記補正済みデータに含まれる因子のうち前記補正前の因子に対応する因子と置き換えて得られる置換済みデータに基づいて、前記テストデータを生成することを決定する、
情報処理装置。
【請求項１０】
前記補正処理は、
暗号化および圧縮の少なくとも１つを含む可逆変換、並びに、
ハッシュ、チェックサム、メッセージ認証コード、および、因子の長さの少なくとも１つを計算する処理、
のうち少なくとも１つである、
請求項９に記載の情報処理装置。
【請求項１１】
前記決定部は、互いに依存関係を有する複数の因子のうちの何れかが前記書き換え部分であり、かつ、前記補正部分でもある場合は、該因子については前記補正処理を実行しないことを決定する、
請求項１に記載の情報処理装置。
【請求項１２】
対象装置を正常に動作させるためのデータに含まれる複数の因子のうちの一部を、正常な値とは異なる値に書き換える書き換え処理を実行する書き換えステップと、
前記書き換え処理によって書き換えられた因子を含む１以上の因子に依存する因子を演算依存関係に基づいて計算した結果に補正する処理であって、前記書き換え処理とは異なる補正処理を実行する補正ステップと、
前記書き換え処理の対象となる因子を示す書き換え部分と、前記補正処理の対象となる因子を示す補正部分とに基づいて、テストデータの生成方法を決定する決定ステップと、を含み、
前記決定ステップは、前記書き換え部分であり、かつ、前記補正部分でもある因子については前記補正処理を実行しないことを決定する、
情報処理方法。
【請求項１３】
コンピュータに、
対象装置を正常に動作させるためのデータに含まれる複数の因子のうちの一部を、正常な値とは異なる値に書き換える書き換え処理を実行する書き換えステップと、
前記書き換え処理によって書き換えられた因子を含む１以上の因子に依存する因子を演算依存関係に基づいて計算した結果に補正する処理であって、前記書き換え処理とは異なる補正処理を実行する補正ステップと、
前記書き換え処理の対象となる因子を示す書き換え部分と、前記補正処理の対象となる因子を示す補正部分とに基づいて、テストデータの生成方法を決定する決定ステップと、を実行させ、
前記決定ステップは、前記書き換え部分であり、かつ、前記補正部分でもある因子については前記補正処理を実行しないことを決定する、
プログラム。
【請求項１４】
対象装置を正常に動作させるためのデータに含まれる複数の因子のうちの一部を、正常な値とは異なる値に書き換える書き換え処理を実行する書き換えステップと、
前記書き換え処理によって書き換えられた因子を含む１以上の因子に依存する因子を演算依存関係に基づいて計算した結果に補正する処理であって、前記書き換え処理とは異なる補正処理を実行する補正ステップと、
前記書き換え処理の対象となる因子を示す書き換え部分と、前記補正処理の対象となる因子を示す補正部分とに基づいて、テストデータの生成方法を決定する決定ステップと、を含み、
前記決定ステップは、前記書き換え部分であり、かつ、前記補正部分でもある因子が存在する場合、２種類の前記テストデータを生成することを決定する、
情報処理方法。
【請求項１５】
コンピュータに、
対象装置を正常に動作させるためのデータに含まれる複数の因子のうちの一部を、正常な値とは異なる値に書き換える書き換え処理を実行する書き換えステップと、
前記書き換え処理によって書き換えられた因子を含む１以上の因子に依存する因子を演算依存関係に基づいて計算した結果に補正する処理であって、前記書き換え処理とは異なる補正処理を実行する補正ステップと、
前記書き換え処理の対象となる因子を示す書き換え部分と、前記補正処理の対象となる因子を示す補正部分とに基づいて、テストデータの生成方法を決定する決定ステップと、を実行させ、
前記決定ステップは、前記書き換え部分であり、かつ、前記補正部分でもある因子が存在する場合、２種類の前記テストデータを生成することを決定する、
プログラム。
【請求項１６】
対象装置を正常に動作させるためのデータに含まれる複数の因子のうちの一部を、正常な値とは異なる値に書き換える書き換え処理を実行する書き換えステップと、
前記書き換え処理によって書き換えられた因子を含む１以上の因子に依存する因子を演算依存関係に基づいて計算した結果に補正する処理であって、前記書き換え処理とは異なる補正処理を実行する補正ステップと、
前記書き換え処理の対象となる因子を示す書き換え部分と、前記補正処理の対象となる因子を示す補正部分とに基づいて、テストデータの生成方法を決定する決定ステップと、を含み、
前記データは、所定のデータに含まれる複数の因子のうちの一部の因子に対して前記補正処理が行われた補正済みデータと、補正前の因子と、を含み、
前記決定ステップは、前記補正前の因子が前記書き換え部分である場合は、前記補正前の因子に対して前記書き換え処理を行った後に前記補正処理を行って得られる置換因子を、前記補正済みデータに含まれる因子のうち前記補正前の因子に対応する因子と置き換えて得られる置換済みデータに基づいて、前記テストデータを生成することを決定する、
情報処理方法。
【請求項１７】
コンピュータに、
対象装置を正常に動作させるためのデータに含まれる複数の因子のうちの一部を、正常な値とは異なる値に書き換える書き換え処理を実行する書き換えステップと、
前記書き換え処理によって書き換えられた因子を含む１以上の因子に依存する因子を演算依存関係に基づいて計算した結果に補正する処理であって、前記書き換え処理とは異なる補正処理を実行する補正ステップと、
前記書き換え処理の対象となる因子を示す書き換え部分と、前記補正処理の対象となる因子を示す補正部分とに基づいて、テストデータの生成方法を決定する決定ステップと、を実行させ、
前記データは、所定のデータに含まれる複数の因子のうちの一部の因子に対して前記補正処理が行われた補正済みデータと、補正前の因子と、を含み、
前記決定ステップは、前記補正前の因子が前記書き換え部分である場合は、前記補正前の因子に対して前記書き換え処理を行った後に前記補正処理を行って得られる置換因子を、前記補正済みデータに含まれる因子のうち前記補正前の因子に対応する因子と置き換えて得られる置換済みデータに基づいて、前記テストデータを生成することを決定する、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
近年、重要インフラに対する攻撃事例の増加に伴い、システム内の脆弱性をできる限り排除することが求められている。脆弱性の有無を確認する手法の１つとして、ファジング検査と呼ばれる検査手法が利用されている。ファジング検査は、検査対象の機器を正常に動作させるための正常データをベースに、正常データの各因子（パラメータ）を書き換えたテストデータを用いて検査を行う手法である。また、ファジング検査を行うためには、因子の書き換えに加え、テストデータ（最終的なパケット）として正しいデータとなるように補正する場合があることが知られている。たとえば、検査に用いるテストデータにＣＲＣ３２のデータが含まれる場合、書き換えられたデータに対してＣＲＣ３２の計算を行い、その計算結果を反映させる必要がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願公開第２００７／０２０３９７３号明細書
【特許文献２】特開２００９−１１６８４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ファジング検査を行うための書き換え処理と補正処理の組み合わせによっては、適切に検査できない場合がある。例えばＣＲＣ３２を含むテストデータを用いた検査において、書き換え処理によってＣＲＣ３２のデータを書き換えた後に、補正処理によって書き換え後のＣＲＣ３２のデータを補正すると、書き換え処理の効果が失われてしまい、適切に検査できないといった問題がある。
【課題を解決するための手段】
【０００５】
実施形態の情報処理装置は、書き換え部と補正部と決定部とを備える。書き換え部は、対象装置を正常に動作させるためのデータに含まれる複数の因子のうちの一部を、正常な値とは異なる値に書き換える書き換え処理を実行する。補正部は、対象装置の検査に用いるテストデータを生成する過程で行う補正処理を実行する。決定部は、書き換え処理の対象となる因子を示す書き換え部分と、補正処理の対象となる因子を示す補正部分とに基づいて、テストデータの生成方法を決定する。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態の情報処理システムの構成を示す図。
【図２】第１の実施形態のテストデータ生成装置のハードウェア構成を示す図。
【図３】第１の実施形態のテストデータ生成装置が有する機能を示す図。
【図４】第１の実施形態のテストデータ生成装置の動作例を示す図。
【図５】第１の実施形態で用いられるデータの具体例を示す図。
【図６】第２の実施形態の情報処理システムの構成を示す図。
【図７】第２の実施形態の検査対象装置が有する機能を示す図。
【図８】第２の実施形態の検査対象装置が処理するデータを示す図。
【図９】第２の実施形態のテストデータ生成装置が有する機能を示す図。
【図１０】第２の実施形態のテストデータ生成装置の動作例を示す図。
【図１１】第２の実施形態で用いられるデータの具体例を示す図。
【図１２】第３の実施形態の情報処理システムの構成を示す図。
【図１３】第３の実施形態の検査対象装置が有する機能を示す図。
【図１４】第３の実施形態の検査対象装置が処理するデータを示す図。
【図１５】第３の実施形態のテストデータ生成装置が有する機能を示す図。
【図１６】第３の実施形態のテストデータ生成装置の動作例を示す図。
【図１７】第３の実施形態で用いられるデータの具体例を示す図。
【図１８】第３の実施形態の検査対象装置が処理するデータを示す図。
【図１９】変形例のテストデータ生成装置が有する機能を示す図。
【図２０】変形例の雛形データの生成方法を説明するための図。
【図２１】第４の実施形態の情報処理システムの構成の一例を示す図。
【図２２】第４の実施形態のテストデータ生成装置が有する機能を示す図。
【図２３】第４の実施形態の演算依存関係を示す図。
【図２４】第４の実施形態の正規データを示す図。
【図２５】第４の実施形態のテストデータ生成装置の動作例を示す図。
【図２６】第４の実施形態のデータ補正処理を説明するための図。
【発明を実施するための形態】
【０００７】
以下、添付図面を参照しながら、実施形態に係る情報処理装置、情報処理方法およびプログラムの実施形態を詳細に説明する。
【０００８】
（第１の実施形態）
図１は、本実施形態の情報処理システム１０の概略構成の一例を示す図である。図１に示すように、情報処理システム１０は、テストデータ生成装置１００と、検査対象装置９００とを含む。テストデータ生成装置１００は、「情報処理装置」の一例であり、検査対象装置９００を検査するためのテストデータを生成し、生成したテストデータを検査対象装置９００へ送信する。検査対象装置９００は、「対象装置」の一例であり、製品としてリリースされる装置を想定している。検査対象装置９００は、テストデータ生成装置１００からテストデータを受信すると、その受信したテストデータに基づいて動作し、その動作結果を示す動作結果情報をテストデータ生成装置１００へ返信する。テストデータ生成装置１００は、検査対象装置９００から受け取った動作結果情報を解析することで、不具合を引き起こす原因等を推定することができる。
【０００９】
図２は、テストデータ生成装置１００のハードウェア構成の一例を示す図である。図２に示すように、テストデータ生成装置１００は、ＣＰＵ１１と、ＲＯＭ１２と、ＲＡＭ１３と、表示装置１４と、入力装置１５と、Ｉ／Ｆ部１６とを備え、これらはバス１７を介して相互に接続される。
【００１０】
ＣＰＵ１１は、テストデータ生成装置１００の動作を統括的に制御する。ＲＯＭ１２は、プログラムや各種のデータを記憶する不揮発性のメモリである。ＲＡＭ１３は、ＣＰＵ１１が実行する各種の演算の処理の作業領域（ワークエリア）として機能する揮発性のメモリである。表示装置１４は、各種の情報を表示するディスプレイ装置であり、例えば液晶型ディスプレイ装置で構成される。入力装置１５は、各種の操作に用いられる装置であり、例えばマウスやキーボード等で構成される。Ｉ／Ｆ部１６は、検査対象装置９００等の外部機器と接続するためのインタフェースである。例えばインターネットなどのネットワークを介して検査対象装置９００と接続される形態であってもよい。
【００１１】
図３は、テストデータ生成装置１００が有する機能の一例を示す図である。図３に示すように、テストデータ生成装置１００は、正規データ記憶部１０１０、書き換え部分決定部１０２０、書き換え部１０３０、決定部１０４０、補正部１０５０、テストデータ記憶部１０６０を有する。
【００１２】
正規データ記憶部１０１０は、検査対象装置９００を正常に動作させるための正規データ（「データ」の一例）を記憶する。テストデータ生成装置１００は、この正規データに基づいてテストデータを生成する。
【００１３】
書き換え部分決定部１０２０は、正規データのうち書き換える部分である書き換え部分を決定する。例えば書き換え部分決定部１０２０は、正規データに含まれる複数の因子（パラメータ）の中から、書き換え対象の因子をランダムに選択してもよい。このように選択された１以上の因子（書き換え対象の因子）が書き換え部分となる。
【００１４】
書き換え部１０３０は、正規データに含まれる複数の因子のうちの一部を、正常な値とは異なる値に書き換える書き換え処理を実行する。この例では、書き換え部１０３０は、正規データのうち、書き換え部分決定部１０２０により決定された書き換え部分に対して書き換え処理を実行する。以下では、書き換え部１０３０による書き換え処理が行われた正規データを「書き換え済みデータ」と称する場合がある。
【００１５】
決定部１０４０は、書き換え処理の対象となる因子を示す書き換え部分（書き換え部分決定部１０２０により決定された書き換え部分）と、後述の補正処理の対象となる因子を示す補正部分とに基づいて、テストデータの生成方法を決定する。ここでは、正規データに含まれる複数の因子のうち、後述の補正処理の対象となる因子は予め定められている。本実施形態では、決定部１０４０は、書き換え部分であり、かつ、補正部分でもある因子については後述の補正処理を実行しないことを決定する。そして、その決定結果を示す決定情報を、補正部１０５０へ送信する。
【００１６】
補正部１０５０は、検査対象装置９００の検査に用いるテストデータ（検査対象装置９０に与えて該検査対象装置９００を動作させるためのテストデータ）を生成する過程で行う補正処理を実行する。この例では、補正部１０５０は、決定部１０４０からの決定情報に基づいて、上述の書き換え済みデータに対して補正処理を実行する。補正部１０５０は、書き換え済みデータに含まれる複数の因子のうち、予め定められた補正部分であっても、決定情報により補正処理を実行しないことが示されている因子については補正処理を実行しない。すなわち、補正部１０５０は、書き換え済みデータに含まれる複数の因子のうち、決定情報により補正処理を実行しないことが示されている因子以外の因子であって、かつ、予め定められた補正部分の因子についてのみ補正処理を実行することになる。
【００１７】
補正処理は、典型的には、検査対象装置９０との通信に関する補正である。例えば補正処理としては、検査対象装置９００との通信に用いる通信情報（シーケンス番号やＩＰアドレス等の識別子を含む）を修正する処理などが挙げられるが、これに限らず、例えば暗号化や圧縮などを含む可逆変換処理であってもよい。
【００１８】
以上の補正処理が施された書き換え済みデータがテストデータとなり、テストデータ記憶部１０６０に記憶される。テストデータ生成装置１００は、テストデータ記憶部１０６０に保存されたテストデータを検査対象装置９００に送信し、検査を実行する。
【００１９】
以上に説明したテストデータ生成装置１００が有する機能（書き換え部分決定部１０２０、書き換え部１０３０、決定部１０４０、補正部１０５０）は、ＣＰＵ１１がＲＯＭ１２等に格納されたプログラムを実行することにより実現されるが、これに限らず、例えば上述した機能のうちの少なくとも一部が専用のハードウェア回路（半導体集積回路等）で実現される形態であってもよい。また、上述の正規データ記憶部１０１０やテストデータ記憶部１０６０は、例えばＲＯＭ１２で実現されてもよいし、例えばＨＤＤなどの補助記憶装置で実現されてもよい。
【００２０】
図４は、テストデータを生成する場合のテストデータ生成装置１００の動作例を示すフローチャートである。図４に示すように、書き換え部分決定部１０２０は、正規データのうち書き換える部分である書換え部分を決定する（ステップＳ１５００）。そして、書き換え部１０３０と決定部１０４０に対して、決定した書き換え部分を通知する。
【００２１】
次に、書き換え部１０３０は、正規データ記憶部１０１０から正規データを読み出し（ステップＳ１５１０）、書き換え部分決定部１０２０から通知された書き換え部分に基づいて、正規データを書き換える書き換え処理を実行する（ステップＳ１５２０）。これにより得られた書き換え済みデータを補正部１０５０へ渡す。
【００２２】
次に、決定部１０４０は、書き換え部分決定部１０２０から通知された書き換え部分と、予め定められた上述の補正部分とに基づいて、各因子に対する補正処理の実行の可否を決定する（ステップＳ１５３０）。上述したように、書き換え部分であり、かつ、補正部分でもある因子については補正処理を実行しないことを決定する。そして、その決定結果を示す決定情報を補正部１０５０へ送信する。
【００２３】
補正部１０５０は、決定部１０４０から受信した決定情報に基づいて、書き換え部１０３０から渡された書き換え済みデータに対して補正処理を実行する（ステップＳ１５４０）。上述したように、補正部１０５０は、書き換え済みデータに含まれる複数の因子のうち、決定部１０４０から受信した決定情報により補正処理を実行しないことが示されている因子以外の因子であって、かつ、予め定められた補正部分の因子についてのみ補正処理を実行することになる。
【００２４】
そして、補正部１０５０は、ステップＳ１５４０の結果で得られたテストデータをテストデータ記憶部１０６０に保存する（ステップＳ１５５０）。
【００２５】
図５は、正規データ１９００、書き換え済みデータ（１９１０，１９３０）、テストデータ（１９２０，１９４０）の一例を示す図である。図５の例では、各データは、４つの因子（パラメータ）を含み、正規データ１９００に含まれる４つの因子と、書き換え済みデータ（１９１０，１９３０）に含まれる４つの因子と、テストデータ（１９２０，１９４０）に含まれる４つの因子とは、互いに対応している。例えば図５の（Ａ）において、正規データ１９００に含まれる第１番目の因子１９０１は、書き換え済みデータ１９１０に含まれる第１番目の因子１９０１、および、テストデータ１９２０に含まれる第１番目の因子１９２１に対応（それぞれの値は異なるもののパラメータとしては共通）している。他の因子についても同様である。
【００２６】
ここでは、図５の（Ａ）および（Ｂ）の何れにおいても、第１番目の因子である第１因子が補正部分である場合を想定している。図５の（Ａ）では、書き換え部分決定部１０２０は、第２番目の因子である第２因子を書き換え部分として決定し、図５の（Ｂ）では、書き換え部分決定部１０２０は、第１因子を書き換え部分として決定している場合を想定している。
【００２７】
図５の（Ａ）の場合、４つの因子のうち、書き換え部分であり、かつ、補正部分でもある因子は存在しないので、書き換え部１０３０は、正規データ１９００に含まれる４つの因子のうち第２因子である因子１９０２を因子１９１２に書き換えて（パラメータの値を書き換えて）書き換え済みデータ１９１０を生成する。そして、補正部１０５０は、書き換え済みデータ１９１０に含まれる４つの因子のうち第１因子である因子１９０１を因子１９２１に補正して（パラメータの値を補正して）テストデータ１９２０を生成する。
【００２８】
また、図５の（Ｂ）の場合、４つの因子のうち、第１因子は、書き換え部分であり、かつ、補正部分でもあるので、まず書き換え部１０３０は、正規データ１９００に含まれる４つの因子のうち第１因子である因子１９０１を因子１９３１に書き換えて（パラメータの値を書き換えて）書き換え済みデータ１９３０を生成する。そして、補正部１０５０は、書き換え済みデータ１９３０に含まれる４つの因子のうち第１因子である因子１９３１に対する補正処理を行わずに、書き換え済みデータ１９３０をそのままテストデータ１９４０とする。
【００２９】
以上に説明したように、本実施形態のテストデータ生成装置１００は、書き換え処理の対象となる因子を示す書き換え部分と、補正処理の対象となる因子を示す補正部分とに基づいて、テストデータの生成方法を決定する。より具体的には、書き換え部分であり、かつ、補正部分でもある因子については補正処理を実行しない。これにより、補正処理によって書き換え処理の効果が失われてしまうことを回避できるので、検査対象装置９００の検査を適切に行うことができるという利点がある。
【００３０】
（第１の実施形態の変形例）
上述の第１の実施形態では、正規データの書き換え処理を実行した後に、書き換え済みデータに含まれる因子の中に、書き換え部分であり、かつ、補正部分である因子が存在するか否かを判定しているが、この順は逆であってもよい。つまり、書き換え部分を決定して、正規データに含まれる因子の中に、書き換え部分であり、かつ、補正部分である因子が存在するか否かを判定した後に、書き換え処理、及び、補正処理を実行する形態であってもよい。
【００３１】
（第２の実施形態）
本実施形態では、上述の補正処理として、暗号化などの可逆変換を行う場合を例に挙げて説明する。なお、上述の第１の実施形態と共通する部分については、同一の符号を付して適宜説明を省略する。
【００３２】
図６は、本実施形態の情報処理システム２０の概略構成の一例を示す図である。図６に示すように、情報処理システム２０は、テストデータ生成装置２００と、検査対象装置９２０とを含む。テストデータ生成装置２００は、「情報処理装置」の一例であり、検査対象装置９００を検査するためのテストデータを生成し、生成したテストデータを検査対象装置９００へ送信する。検査対象装置９２０は、「対象装置」の一例であり、製品としてリリースされる装置を想定している。検査対象装置９２０は、テストデータ生成装置２００からテストデータを受信すると、その受信したテストデータに基づいて動作し、その動作結果を示す動作結果情報をテストデータ生成装置２００へ返信する。テストデータ生成装置２００は、検査対象装置９２０から受け取った動作結果情報を解析することで、不具合を引き起こす原因等を推定することができる。
【００３３】
図７は、検査対象装置９２０が有する機能の一例を示す図である。説明の便宜上、ここでは、検査対象装置９２０のハードウェア構成は、図２と同様の構成であり、検査対象装置９２０が有する機能は、ＣＰＵ１１がＲＯＭ１２等に格納されたプログラムを実行することにより実現されてもよいし、専用のハードウェア回路（半導体集積回路等）で実現されてもよい。
【００３４】
図７に示すように、検査対象装置９２０は、逆変換処理部９２１０と因子読み出し部９２２０とを有する。逆変換処理部９２１０は、テストデータ生成装置２００から送られてきたテストデータに対して逆変換処理を行い、逆変換処理により得られたデータを示す逆変換済みデータを因子読み出し部９２２０へ渡す。因子読み出し部９２２０は、逆変換処理部９２１０から受け取った逆変換済みデータに含まれる各因子の値を読み出し、処理を行う。
【００３５】
図８は、テストデータ生成装置２００から送られてきたテストデータ、つまり、逆変換処理部９２１０に入力される入力データ２９１、および、逆変換処理部９２１０による逆変換で得られた逆変換済みデータ２９０の一例を示す図である。図８の例では、入力データ２９１は、因子２９０１、因子２９１２、因子２９１３、因子２９１４を含む。因子２９１２、因子２９１３、および、因子２９１４の各々の値は、逆変換に対応する何らかの変換（例えば暗号化等）が施された値である。
【００３６】
一方、逆変換済みデータ２９０は、因子２９０１、因子２９０２、因子２９０３、因子２９０４を含む。因子２９０２、因子２９０３、および、因子２９０４の各々の値は、逆変換処理部９２１０によって逆演算された値であり、たとえば、因子２９０２の値は、因子２９１２の値から逆変換された値である。ここで、検査対象装置９２０の検査という観点からすると、逆変換処理部９２１０に対する検査を行うためには、因子２９１２などに対して検査用のデータを与える必要がある一方、因子読み出し部９２２０に対する検査を行うためには、因子２９０２などに対して検査用のデータを与える必要がある。つまり、検査対象装置９２０の各部を検査するためにはそれにあわせた検査が必要となる。特に、検査対象装置９２０が可逆変換処理を含む場合には、逆変換処理と因子読み出し処理を検査するための因子（パラメータ）が同一の項目（値は異なる）であることから、それぞれを検査するためのテストデータが必要となる。
【００３７】
図９は、テストデータ生成装置２００が有する機能の一例を示す図である。図９に示すように、テストデータ生成装置２００は、正規データ記憶部１０１０、書き換え部分決定部１０２０、決定部２０４０、データ処理部２１００、テストデータ記憶部１０６０を有する。また、データ処理部２１００は、書き換え部１０３０、補正部２０５０を有する。
【００３８】
正規データ記憶部１０１０、書き換え部分決定部１０２０の機能は上述の第１の実施形態と同様であるので、詳細な説明は省略する。決定部２０４０は、上述の書き換え部分であり、かつ、上述の補正部分でもある因子が存在する場合、２種類のテストデータを生成することを決定する。より具体的には、決定部２０４０は、正規データに対して書き換え処理を行った後に補正処理を行って得られる第１のテストデータと、正規データに対して補正処理を行った後に書き換え処理を行って得られる第２のテストデータと、を生成することを決定する。本実施形態の補正処理は、可逆変換を行う処理であり、この例では可逆変換は暗号化であるが、これに限らず例えば圧縮であってもよい。決定部２０４０は、上述の決定の結果を示す決定情報をデータ処理部２１００へ渡す。
【００３９】
データ処理部２１００は、決定部２０４０から受け取った決定情報に基づいて、正規データからテストデータを生成する。データ処理部２１００は、書き換え部１０３０および補正部２０５０を利用してテストデータを生成する。書き換え部１０３０の機能は上述の第１の実施形態で説明した内容と同様である。また、ここでは、補正部２０５０が実行する補正処理は、補正部分（補正対象の因子）に対して可逆変換を行う処理である。
【００４０】
図１０は、テストデータを生成する場合のテストデータ生成装置２００の動作例を示すフローチャートである。図１０に示すように、書き換え部分決定部１０２０は、正規データのうち書き換える部分である書換え部分を決定する（ステップＳ２５００）。そして、書き換え部分決定部１０２０は、決定部２０４０に対して、決定した書き換え部分を通知する。
【００４１】
決定部２０４０は、書き換え部分決定部１０２０から通知された書換え部分であり、かつ、予め定められた補正部分でもある因子が存在するか否かを判断する（ステップＳ２５１０）。この例では、決定部２０４０は、正規データに含まれる複数の因子の中に、上述の書き換え部分であり、かつ、上述の補正部分でもある因子が存在するか否かを判断する。
【００４２】
ステップＳ２５１０の判断結果が肯定の場合（ステップＳ２５１０：Ｙｅｓ）、決定部２０４０は、上述の第１のテストデータおよび上述の第２のテストデータを生成することを決定し（ステップＳ２５２０）、その決定結果を示す決定情報をデータ処理部２１００へ渡す。この決定情報を受け取ったデータ処理部２１００は、決定情報に基づいて、第１のテストデータおよび第２のテストデータを生成する（ステップＳ２５３０）。
【００４３】
第１のテストデータを生成する場合の手順は以下のとおりである。データ処理部２１００は、正規データ記憶部１０１０から正規データを読み出し、その読み出した正規データのうち、上述の書き換え部分を書き換える書き換え処理を書き換え部１０３０に実行させて、書き換え済みデータを得る。なお、データ処理部２１００が書き換え部分を把握する方法は任意である。例えば決定部２０４０から通知される決定情報の中に、書き換え部分を示す情報が含まれていてもよいし、例えば書き換え部分決定部１０２０から、書き換え部分の通知を受ける形態であってもよい。そして、データ処理部２１００は、書き換え済みデータのうち、予め定められた補正部分を補正する補正処理を補正部２０５０に実行させて、第１のテストデータを得る。
【００４４】
また、第２のテストデータを生成する場合の手順は以下のとおりである。データ処理部２１００は、正規データ記憶部１０１０から正規データを読み出し、その読み出した正規データのうち、予め定められた補正部分を補正する補正処理を補正部２０５０に実行させて、補正済みデータを得る。そして、データ処理部２１００は、補正済みデータのうち、上述の書き換え部分を書き換える書き換え処理を書き換え部１０３０に実行させて、第２のテストデータを得る。
【００４５】
一方、上述のステップＳ２５１０の結果が否定の場合（ステップＳ２５１０：Ｎｏ）、決定部２０４０は、上述の第１のテストデータのみを生成することを決定し（ステップＳ２５４０）、その決定結果を示す決定情報をデータ処理部２１００へ渡す。この決定情報を受け取ったデータ処理部２１００は、決定情報に基づいて、第１のテストデータを生成する（ステップＳ２５５０）。第１のテストデータを生成する手順は、上述したとおりである。
【００４６】
そして、データ処理部２１００は、上述のステップＳ２５３０または上述のステップＳ２５５０で得たテストデータをテストデータ記憶部１０６０に保存する（ステップＳ２５６０）。
【００４７】
図１１は、正規データ（２９００）、書換え済みデータ（２９１０，２９５０）、補正済みデータ（２９３０）、テストデータ（２９２０，２９４０，２９６０）の一例を示す図である。この例では、各データは、４つの因子（パラメータ）を含み、正規データ２９００に含まれる４つの因子と、書き換え済みデータ（２９１０，２９５０）に含まれる４つの因子と、補正済みデータ２９３０に含まれる４つの因子と、テストデータ（２９２０，２９４０，２９６０）に含まれる４つの因子とは、互いに対応している。
【００４８】
ここでは、図１１の（Ａ）および（Ｂ）の何れにおいても、第２番目の因子である第２因子、第３番目の因子である第３因子、第４番目の因子である第４因子が補正部分である場合を想定している。図１１の（Ａ）では、書き換え部分決定部１０２０は、第１番目の因子である第１因子を書き換え部分として決定し、図１１の（Ｂ）では、書き換え部分決定部１０２０は、第２因子を書き換え部分として決定している場合を想定している。
【００４９】
図１１の（Ａ）の場合、４つの因子のうち、書き換え部分であり、かつ、補正部分でもある因子は存在しないので、データ処理部２１００は、書き換え部１０３０を利用して、正規データ２９００に含まれる４つの因子のうち、第１因子である因子２９０１を因子２９８１に書き換えて（パラメータの値を書き換えて）書き換え済みデータ２９１０を生成する。そして、データ処理部２１００は、補正部２０５０を利用して、書き換え済みデータ２９１０に含まれる４つの因子のうち、第２因子である因子２９０２を因子２９１２に補正（パラメータの値を暗号化）し、第３因子である因子２９０３を因子２９１３に補正し、第４因子である因子２９０４を因子２９１４に補正して、テストデータ２９２０を生成する。
【００５０】
また、図１１の（Ｂ）の場合、４つの因子のうち、第２因子は、書き換え部分であり、かつ、補正部分でもあるので、データ処理部２１００は、補正部２０５０を利用して、正規データ２９００に含まれる４つの因子のうち、第２因子である因子２９０２を因子２９１２に補正（パラメータの値を暗号化）し、第３因子である因子２９０３を因子２９１３に補正し、第４因子である因子２９０４を因子２９１４に補正して、補正済みデータ２９３０を生成する。また、データ処理部２１００は、書き換え部１０３０を利用して、正規データ２９００に含まれる４つの因子のうち、第２因子である因子２９０２を因子２９８２に書き換えて書き換え済みデータ２９５０を生成する。
【００５１】
そして、データ処理部２１００は、書き換え部１０３０を利用して、上述の補正済みデータ２９３０に含まれる４つの因子のうち、第２因子である因子２９１２を因子２９２２に書き換えて第２のテストデータ２９４０を生成する。また、データ処理部２１００は、補正部２０５０を利用して、上述の書き換え済みデータ２９５０に含まれる４つの因子のうち、第２因子である因子２９８２を因子２９９２に補正し、第３因子である因子２９０３を因子２９１３に補正し、第４因子である因子２９０４を因子２９１４に補正して、第１のテストデータ２９６０を生成する。
【００５２】
以上のように、本実施形態のテストデータ生成装置２００は、正規データに含まれる因子の中に、書き換え部分であり、かつ、補正部分でもある因子が存在する場合は、正規データに対して書き換え処理を行った後に補正処理（この例では暗号化）を行って得られる第１のテストデータと、正規データに対して補正処理を行った後に書き換え処理を行って得られる第２のテストデータと、を生成する。これにより、検査対象装置９２０の各部に合わせたテストデータを生成することができるので、検査対象装置９２０の各部を適切に検査することを可能にする。
【００５３】
（第２の実施形態の変形例）
上述の第２の実施形態では、補正処理は可逆変換を行う処理であり、可逆変換は暗号化であったが、これに限られるものではなく、補正処理は可逆変換であれば何でもよい。例えば、可逆変換（補正処理）が圧縮であり、逆変換処理部９２１０による逆変換が解凍であってもよい。
【００５４】
また、上述の第２の実施形態では、データ処理部２１００による書き換え処理や補正処理を実行する前に、書き換え部分であり、かつ、補正部分である因子が存在するか否かを判定しているが、この順は逆であってもよい。つまり、上述の第１の実施形態と同様にしてテストデータを生成した後に、書き換え部分であり、かつ、補正部分である因子が存在するか否かを判定してもよい。この判定結果が肯定の場合、追加のテストデータを生成することになる。
【００５５】
（第３の実施形態）
本実施形態では、所定のデータ（ここでは、上述の正規データに相当するデータ）に含まれる複数の因子のうちの一部の因子に対して補正処理（この例では暗号化）が行われた補正済みデータと、補正前の因子（補正のための計算過程の値を示す因子であってもよいし、補正前の元の値を示す因子であってもよい）と、を含む雛形データが書き換え対象である点で上述の第２の実施形態と相違する。なお、上述の第２の実施形態と共通する部分については、適宜に説明を省略する。
【００５６】
図１２は、本実施形態の情報処理システム３０の構成の一例を示す図である。図１２に示すように、情報処理システム３０は、テストデータ生成装置３００と、検査対象装置９３０とを含む。
【００５７】
図１３は、検査対象装置９３０が有する機能の一例を示す図である。検査対象装置９３０は、逆変換処理部９３１０と、因子読出し部９３２０と、因子処理部９３４０とを有する。
【００５８】
逆変換処理部９３１０は、テストデータ生成装置３００から送られてきたデータに対して逆変換を行い、因子読出し部９３２０に逆変換済みデータを送信する。因子読出し部９３２０は、逆変換処理部９３１０から受信した逆変換済みのデータに対し、各因子の値を読み出し、因子処理部９３４０に読み出した値を送信する。因子処理部９３４０は、因子読出し部９３２０から受信した因子に対して機器固有の処理を行う。
【００５９】
図１４は、テストデータ生成装置３００から送られてきたデータ、つまり、逆変換処理部９３１０に入力される入力データ３９１と、逆変換処理部９３１０によって逆変換されたデータである逆変換済みデータ３９０の一例を示している。図１４の例では、入力データ３９１は、因子３９０１、因子３９１２を含む。因子３９１２の値は、何らかの可逆な変換（例えば暗号化演算）が施された値である。一方、逆変換済みデータ３９０は、因子３９０１、因子３９０２を含む。因子３９０２の値は、逆変換処理部９３１０によって因子３９１２から逆演算された値を示す。
【００６０】
ここで検査対象装置９３０の検査という観点からすると、逆変換処理部９３１０に対する検査を行うためには、因子３９１２に対し検査用のデータを与える必要がある。一方、因子処理部９３４０に対する検査を行うためには、因子３９０２に対し検査用のデータを与える必要がある。因子３９０２に検査用のデータを与えるためには、因子３９１２の値を因子３９０２から変換した値に設定することにより、逆変換処理部９３１０に因子３９０２を生成させなければならない。
【００６１】
図１５は、本実施形態のテストデータ生成装置３００が有する機能の一例を示す図である。図１５に示すように、テストデータ生成装置３００は、雛形データ記憶部３０１０、書き換え部分決定部３０２０、書き換え部３０３０、決定部３０４０、データ処理部３０５０、抽出部３０７０、テストデータ記憶部１０６０を有する。また、データ処理部３０５０は、補正部３０５１、置換部３０５２を有する。
【００６２】
雛形データ記憶部３０１０は、補正済みデータと、内部データとを含む雛形データを記憶する。この例では、補正済みデータは、上述の各実施形態の正規データに相当する所定のデータに含まれる複数の因子のうちの一部の因子に対して暗号化処理（補正処理の一例）が行われたデータである。また、内部データは、暗号化前の因子（補正前の因子）を含むデータである。なお、暗号化前の因子（補正前の因子の一例）とは、暗号化前の元の値を示す因子であってもよいし、暗号化のための途中の計算過程の値を示す因子であってもよい。
【００６３】
書き換え部分決定部３０２０は、雛形データのうち書き換える部分である書き換え部分を決定する。書き換え部３０３０は、書き換え部分に基づいて雛形データを書き換え、書き換え済みデータを生成する。この例では、書き換え部３０３０は、雛形データのうち、書き換え部分決定部３０２０により決定された書き換え部分に対して書き換え処理を実行する。ここでは、書き換え部分になりうるのは、雛形データに含まれる補正済みデータまたは内部データ、もしくはその両方である。
【００６４】
決定部３０４０は、雛形データに含まれる内部データ（補正前の因子）が書き換え部分である場合は、内部データに対して書き換え処理を行った後に補正処理を行って得られる置換データ（置換因子）を、補正済みデータに含まれる因子のうち内部データに対応する因子と置き換えて得られる置換済みデータに基づいて、テストデータを生成することを決定する。
【００６５】
データ処理部３０５０は、決定部３０４０の決定に基づいて、書き換え部３０３０から入力される書き換え済みデータを処理する。例えば決定部３０４０が、上述の置換済みデータを生成することを決定した場合、データ処理部３０５０は、補正部３０５１を利用して、書き換え済みデータに含まれる内部データ（この例では書き換え済みの内部データ）を補正して置換データを生成した後に、置換部３０５２を利用して、書き換え済みデータに含まれる因子（補正済みデータに含まれる因子と考えてもよい）のうち内部データに対応する因子を置換データに置き換えて置換済みデータを生成する。そして、その生成した置換済みデータを抽出部３０７０へ渡す。また、例えば決定部３０４０が、上述の置換済みデータを生成しないことを決定した場合、データ処理部３０５０は、書き換え部３０３０から入力される書き換え済みデータに対しては何も処理を行わずに、そのまま抽出部３０７０へ渡す。
【００６６】
抽出部３０７０は、データ処理部３０５０から渡されたデータのうち、内部データ以外の部分をテストデータとして抽出し、テストデータ記憶部１０６０に保存する。
【００６７】
図１６は、テストデータを生成する場合のテストデータ生成装置３００の動作例を示すフローチャートである。図１６に示すように、書き換え部分決定部３０２０は、雛形データのうち書き換える部分である書換え部分を決定する（ステップＳ３５００）。そして、書き換え部分決定部３０２０は、書き換え部３０３０と決定部３０４０に対して、決定した書き換え部分を通知する。
【００６８】
次に、書き換え部３０３０は、雛形データ記憶部３０１０から雛形データを読み出し（ステップＳ３５１０）、書き換え部分決定部３０２０から通知された書き換え部分に基づいて、雛形データを書き換える書き換え処理を実行する（ステップＳ３５２０）。これにより得られた書き換え済みデータをデータ処理部３０５０へ渡す。
【００６９】
次に、決定部３０４０は、書き換え部分決定部３０２０から通知された書き換え部分と、予め定められた補正部分とに基づいて、内部データが書き換え部分であるか否かを判断する（ステップＳ３５３０）。ステップＳ３５３０の結果が肯定の場合（ステップＳ３５３０：Ｙｅｓ）、決定部３０４０は上述の置換済みデータを生成することを決定し、その決定結果を示す決定情報をデータ処理部３０５０へ通知する。この通知を受けたデータ処理部３０５０は、書き換え部３０３０から渡された書き換え済みデータから、上述の置換済みデータを生成する（ステップＳ３５４０）。そして、生成した置換済みデータを抽出部３０７０へ渡す。
【００７０】
一方、上述のステップＳ３５３０の結果が否定の場合（ステップＳ３５３０：Ｎｏ）、決定部３０４０は上述の置換済みデータを生成しないことを決定し、その決定結果を示す決定情報をデータ処理部３０５０へ通知する。この通知を受けたデータ処理部３０５０は、書き換え部３０３０から渡された書き換え済みデータを、そのまま抽出部３０７０へ渡す。
【００７１】
次に、抽出部３０７０は、データ処理部３０５０から渡されたデータから内部データを除外する（ステップＳ３５４５）。ここでは、抽出部３０７０は、データ処理部３０５０から渡されたデータのうち内部データ以外の部分をテストデータとして抽出し、その抽出したテストデータをテストデータ記憶部１０６０に保存する（ステップＳ１５５０）。
【００７２】
図１７は、雛形データ、書き換え済みデータ、置換済みデータ、テストデータの一例を示す図である。この例では、雛形データ３９００は、補正済みデータ３９００１と、内部データ３９００２とを含む。補正済みデータ３９００１は、因子３９０１、３９１２を含み、内部データ３９００２は、因子３９０２を含む。ここでは、内部データ３９００２に含まれる因子３９０２は、補正済みデータ３９００１の第２因子である因子３９１２を暗号化する前の因子（補正前の因子）である。
【００７３】
図１７の（Ａ）では、書き換え部分が、補正済みデータ３９００１の第１因子であり、補正済みデータ３９００１の第１因子である因子３９０１が因子３９８１に書き換えられて書き換え済みデータ３９１０が生成されている。図１７の（Ｂ）では、書き換え部分が、補正済みデータ３９００１の第２因子であり、補正済みデータ３９００１の第２因子である因子３９１２が因子３９８２に書き換えられて書き換え済みデータ３９２０が生成されている。図１７の（Ｃ）では、書き換え部分が、内部データ３９００２の因子であり、内部データ３９００２の因子３９０２が因子３９０９に書き換えられて書き換え済みデータ３９３０が生成されている。
【００７４】
図１７の（Ａ）の場合、書き換え部分は内部データ３９００２ではないので、データ処理部３０５０は、書き換え部３０３０から渡された書き換え済みデータ３９１０をそのまま抽出部３０７０へ渡し、抽出部３０７０は、書き換え済みデータ３９１０のうち、内部データに相当する因子３９０２を除外して、テストデータ３９１０２を生成する。
【００７５】
図１７の（Ｂ）の場合、書き換え部分は内部データ３９００２ではないので、データ処理部３０５０は、書き換え部３０３０から渡された書き換え済みデータ３９２０をそのまま抽出部３０７０へ渡し、抽出部３０７０は、書き換え済みデータ３９２０のうち、内部データに相当する因子３９０２を除外して、テストデータ３９２０２を生成する。
【００７６】
図１７の（Ｃ）の場合、書き換え部分は内部データ３９００２であるので、データ処理部３０５０は、書き換え済みデータ３９３０に含まれる書き換え済みの内部データ（因子３９０９）を因子３９１９に補正（この例では暗号化）し、置換データとする。そして、データ処理部３０５０は、書き換え済みデータ３９３０に含まれる因子３９０１、因子３９１２（これらは補正済みデータ３９００１に含まれる因子であると考えることもできる）のうち、内部データ３９００２に対応する因子３９１２を置換データ（因子３９１９）に置き換えて、置換済みデータ３９３０１を生成する。そして、その生成した置換済みデータ３９３０１を抽出部３０７０へ渡す。抽出部３０７０は、置換済みデータ３９３０１のうち、内部データに相当する因子３９０９（この例では書き換え済みの内部データ）を除外して、テストデータ３９３０２を生成する。
【００７７】
図１８は、テストデータ生成装置３００から検査対象装置９３０に送られてきたテストデータ、つまり、逆変換処理部９３１０に入力されるデータと、逆変換処理部９３１０によって逆変換されたデータの一例を示している。ここでは、テストデータは、図１７の（Ｃ）で生成されたテストデータ３９３０２を想定している。
【００７８】
逆変換処理部９３１０は、テストデータ３９３０２を入力とし、因子３９１９に逆変換を行って因子３９０９としたデータ３９３０３を出力する。因子読出し部９３２０は、因子３９０１および因子３９０９を読み出す。因子処理部９３４０は、因子３９０９の値ＹＹＹＹを処理する。この値ＹＹＹＹは、テストデータ生成装置３００の書き換え部３０３０が書き換えた値である。このようにして、因子処理部９３４０に対して、書き換えた値ＹＹＹＹを処理させるテストを行うことができる。この例に示すように、検査対象装置９３０が処理するデータが、テストデータの一部として直接現れない内部データである場合でも、書き換えた内部データを複数の方法で変換した結果をテストデータ３９３０２に含まれるようにすることにより、検査対象装置９３０に、書き換えた内部データを処理させることができる。
【００７９】
以上に説明したように、本実施形態のテストデータ生成装置３００は、補正済みデータと、補正前の因子（内部データ）と、を含む上述の雛形データを書き換えの対象とし、内部データが書き換え部分である場合は、内部データに対して書き換え処理を行った後に補正処理を行って得られる置換データ（置換因子）を、補正済みデータに含まれる因子のうち内部データに対応する因子と置き換えて得られる置換済みデータに基づいて、内部データの値を書き換えた場合の検査を行うためのテストデータを生成する。これにより、検査対象の因子が直接補正済みデータに含まれずに、検査対象の因子から算出された値が該補正済みデータに含まれる場合であっても、検査対象の因子を変化させた検査を行うことができる。
【００８０】
（第３の実施形態の変形例）
例えば図１９に示すように、テストデータ生成装置３００は、雛形データ生成部３０８０をさらに備えてもよい。雛形データ生成部３０８０は、補正済みデータを元に内部データを計算し、雛形データを生成する。例えば、図２０のように、補正済みデータ３９００１の因子３９１２の値Ｅ｛５６７８｝に対して逆変換（例えば復号）を行うことにより、「５６７８」という値を示す因子３９０２（暗号化前の値を示す因子）を生成し、雛形データ３９００を生成することができる。
【００８１】
上述の第３の実施形態では、補正処理は暗号化であったが、他の処理でもよい。たとえば、暗号化に代えて圧縮、ＢＡＳＥ６４符号化等のいずれかの処理であってもよい。また、補正処理は必ずしも可逆変換処理でなくてもよい。例えば、ハッシュ、チェックサム、ＣＭＡＣ（暗号に基づくメッセージ認証コード）等のいずれかの処理であってもよく、別の因子の長さを計算する処理等、因子の値にもとづき計算を行う任意の処理であってよい。なお、補正処理が可逆変換でない場合は、前述の変形例に示した雛形データ生成部３０８０が雛形データを生成できないため、テストデータ生成装置３００に直接雛形データを与える必要がある。また、上述の第３の実施形態では、補正済みデータおよび内部データを一体の雛形データとして扱い、最後に内部データを除いた部分を抽出しているが、補正済みデータおよび内部データを分けて扱い、補正済みデータを置換して得られる置換済みデータ部分のみをテストデータとして保存する処理を行ってもよい。
【００８２】
（第４の実施形態）
本実施形態では、互いに依存関係を有する複数の因子のうちの何れかが書き換え部分であり、かつ、補正部分でもある場合は、該因子については補正処理を実行しない点で上述の第１の実施形態と相違する。なお、上述の第１の実施形態と共通する部分については、適宜に説明を省略する。
【００８３】
図２１は、本実施の形態の情報処理システム４０の構成の一例を示す図である。図２１に示すように、情報処理システム４０は、テストデータ生成装置４００と、検査対象装置９４０とを含む。
【００８４】
図２２は、テストデータ生成装置４００が有する機能の一例を示す図である。図２２に示すように、テストデータ生成装置４００は、正規データ記憶部１０１０、書き換え部分決定部１０２０、書き換え部１０３０、決定部４０４０、補正部４０５０、テストデータ記憶部１０６０、演算依存関係記憶部４０７０を有する。
【００８５】
演算依存関係記憶部４０７０は、１または複数の演算依存関係を記憶する。演算依存関係とは、データ内のある因子の値が、別の因子の値から演算により求められることを示す情報である。
【００８６】
本実施形態の決定部４０４０は、互いに依存関係を有する複数の因子のうちの何れかが書き換え部分であり、かつ、補正部分でもある場合は、該因子については補正処理を実行しないことを決定する。この例では、決定部４０４０は、演算依存関係と、書換え部分と、補正部分とに基づいて、補正方法を決定し、補正する部分や補正に用いる演算方法などを示す補正情報を生成し、その生成した補正情報を補正部４０５０へ渡す。
【００８７】
補正部４０５０は、決定部４０４０から受信した補正情報に基づいて、書き換え部１０３０から受信した書き換え済みデータに対する補正を行う。たとえば、補正情報が、因子Ａの値から因子Ｂの値を、演算Ｃにより補正することを指示していれば、補正部４０５０は、書き換え済みデータの因子Ａの値を読み出し、読み出した値に対して演算Ｃを行い、その結果の値を因子Ｂに格納することにより、補正を行ったデータを生成する。この例では、上述の第１の実施形態と同様に、補正部４０５０は、補正を行ったデータをテストデータとしてテストデータ記憶部１０６０に保存する。テストデータ生成装置４００は、テストデータ記憶部１０６０に保存されたテストデータを検査対象装置９４０に送信し、テストを実行する。
【００８８】
図２３は演算依存関係の一例を示す図であり、図２４は正規データ４９００の一例を示す図である。正規データ４９００は、因子４９０１、因子４９０２、因子４９０３、因子４９０４を含むデータである。以下では、各因子を識別するため、因子４９０１に対しては「Ａ」、因子４９０２に対しては「Ｂ」、因子４９０３に対して「Ｃ」、因子４９０４に対して「Ｄ」という名前をそれぞれ付して説明する。
【００８９】
また、演算依存関係は、（依存元因子、依存先因子、演算方法）の３つの要素の組で表される情報である。依存元因子は、演算の元になる値を保持する因子であり、依存先因子は、演算した結果の値を保持する因子である。演算方法は、依存元の因子の値から依存先の因子の値を算出する方法を指定する情報である。図２３に示す演算依存関係４８００は、（Ｂ，Ｃ，Ｅ｛｝）および（Ｃ，Ｄ，Ｈ｛｝）から構成される。これらは、補正処理において、因子Ｂの値から演算方法Ｅ｛｝により演算した値を、因子Ｃに格納し、その値をさらに演算Ｈ｛｝により演算した値を、因子Ｄに格納することを指示している。ここで、演算方法Ｅ｛｝は暗号化、Ｈ｛｝はハッシュ関数である。
【００９０】
図２５は、テストデータを生成する場合のテストデータ生成装置４００の動作例を示すフローチャートである。上述の第１の実施形態と異なる部分は、ステップＳ１５３０およびステップＳ１５４０の処理（データ補正処理）を、各依存関係について繰り返し行う（ステップＳ４５６０）ことである。ここでは、データ補正処理は依存関係の順に行われる。例えば、Ｂ→Ｃ→Ｄの順に依存関係がある場合、先にＢ→Ｃの補正を行い、続いてＣ→Ｄの補正を行う。
【００９１】
次に、図２６を用いて、前述のステップＳ４５６０で行われるデータ補正処理の繰り返し処理を具体的に説明する。演算依存関係の集合４８００および正規データ４９００については、図２３および図２４で説明したとおりである。
【００９２】
図２６に示す書き換え済みデータ４９１０は、正規データ４９００をもとに、因子Ｂの値を５６７８からＸＸＸＸに書き換えたデータである。決定部４０４０は、演算依存関係４８００にもとづき、因子Ｃ，Ｄを補正することを指示する。補正部４０５０は、ＸＸＸＸからＥ｛ＸＸＸＸ｝を、さらにＥ｛ＸＸＸＸ｝からＨ｛Ｅ｛ＸＸＸＸ｝｝を計算し、それぞれ因子Ｃ，Ｄを補正し、テストデータ４９２０を得る。
【００９３】
また、図２６に示す書き換え済みデータ４９３０は、正規データ４９００をもとに、因子Ｂの値を５６７８からＸＸＸＸに、因子Ｄの値をＨ｛Ｅ｛５６７８｝｝からＹＹＹＹに書き換えたデータである。決定部４０４０は、因子Ｄが書き換えられていることを考慮して、演算依存関係４８００にもとづき、因子Ｃのみを補正することを指示する。データ補正処理部４０５０は、ＸＸＸＸからＥ｛ＸＸＸＸ｝を計算し、因子Ｃを補正し、テストデータ４９４０を得る。
【００９４】
以上に説明したように、本実施形態のテストデータ生成装置４００は、互いに依存関係を有する複数の因子のうちの何れかが書き換え部分であり、かつ、補正部分でもある場合は、該因子については補正処理を実行しない。これにより、上述の第１の実施形態と同様に、補正処理によって書き換え処理の効果が失われてしまうことを回避できるので、検査対象装置９４０の検査を適切に行うことができるという利点がある。
【００９５】
（第４の実施形態の変形例）
上述の第４の実施形態では、依存元因子および依存先因子の各々が何れも１つの場合について説明したが、これに限らず、例えば依存元因子が複数の因子の組であってもよい。また、上述の第４の実施形態では、演算依存関係情報の説明において、依存元因子および依存先因子の情報として、因子の名前を用いていたが、因子を識別する方法であればどのような情報であってもよい。例えば、因子の位置および長さを指定する情報、すなわちデータ先頭から数えた因子のオフセット位置と因子の長さの組であってもよい。
【００９６】
以上、本発明の実施形態を説明したが、上述の実施形態は例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら新規な実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００９７】
また、上述の各実施形態および各変形例の情報処理システムで実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上述の各実施形態および各変形例の情報処理システムで実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、上述の各実施形態および各変形例の情報処理システムで実行されるプログラムを、ＲＯＭ等の不揮発性の記録媒体に予め組み込んで提供するようにしてもよい。
【００９８】
さらに、上述の各実施形態および各変形例は、任意に組み合わせることも可能である。
【符号の説明】
【００９９】
１０      情報処理システム
１００    テストデータ生成装置
９００    検査対象装置
１０１０  正規データ記憶部
１０２０  書き換え部分決定部
１０３０  書き換え部
１０４０  決定部
１０５０  補正部
１０６０  テストデータ記憶部
【図１】
0006542148.tif 000002
【図２】
0006542148.tif 000003
【図３】
0006542148.tif 000004
【図４】
0006542148.tif 000005
【図５】
0006542148.tif 000006
【図６】
0006542148.tif 000007
【図７】
0006542148.tif 000008
【図８】
0006542148.tif 000009
【図９】
0006542148.tif 000010
【図１０】
0006542148.tif 000011
【図１１】
0006542148.tif 000012
【図１２】
0006542148.tif 000013
【図１３】
0006542148.tif 000014
【図１４】
0006542148.tif 000015
【図１５】
0006542148.tif 000016
【図１６】
0006542148.tif 000017
【図１７】
0006542148.tif 000018
【図１８】
0006542148.tif 000019
【図１９】
0006542148.tif 000020
【図２０】
0006542148.tif 000021
【図２１】
0006542148.tif 000022
【図２２】
0006542148.tif 000023
【図２３】
0006542148.tif 000024
【図２４】
0006542148.tif 000025
【図２５】
0006542148.tif 000026
【図２６】
0006542148.tif 000027