(57)【要約】  シミュレーション対象の各コンポーネントに対応するシミュレータを用いたテストにおいては、コンポーネント同士の通信が容易に観測可能であるという点において、秘匿されるべき情報の保護が困難になっている。  本発明は、ネットワークで接続されている複数の情報処理装置上で動作するシミュレータ間の通信において、各シミュレータに、各シミュレータが接続される他のシミュレータへの仮想配線に対応する鍵のセットを与え、複数のシミュレータの内の第１シミュレータが、データを第１シミュレータに接続されている仮想配線の内の一に送信する際に、第１シミュレータに与えられている鍵のセットの内、該一に対応する鍵で該データを暗号化し、ネットワークに送信することで、前述の課題を解決する。
2014024265.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークで接続されている複数の情報処理装置上で動作するシミュレータ間の通信方法であって、
各シミュレータに、各シミュレータが接続される他のシミュレータへの仮想配線に対応する鍵のセットを与え、
前記複数のシミュレータの内の第１シミュレータが、データを前記第１シミュレータに接続されている仮想配線の内の一に送信する際に、前記第１シミュレータに与えられている前記鍵のセットの内、該一に対応する鍵で該データを暗号化し、前記ネットワークに送信することを特徴とするシミュレータ間の通信方法。
【請求項２】
請求項１に記載のシミュレータ間の通信方法であって、
前記複数のシミュレータの内の第２シミュレータに与えられた鍵のセットに含まれる鍵の内の一部の鍵を変更することで、通信故障を模擬することを特徴とするシミュレータ間の通信方法。
【請求項３】
請求項１に記載のシミュレータ間の通信方法であって、
前記複数のシミュレータの内の第２シミュレータに与えられた鍵のセットに含まれる鍵の内の一部の鍵を分割することで、信号到着遅れを模擬することを特徴とするシミュレータ間の通信方法。
【請求項４】
請求項１に記載のシミュレータ間の通信方法であって、
各シミュレータは、シミュレーション対象の各コンポーネントに対応していることを特徴とするシミュレータ間の通信方法。
【請求項５】
複数の情報処理装置上で動作するシミュレーションシステムであって、
前記複数の情報処理装置の内の一で実行される鍵管理サーバを有し、
前記鍵管理サーバは、前記複数の情報処理装置で実行される複数のシミュレータ間の接続に対応付けられた暗号鍵のセットを各シミュレータに送信することを特徴とするシミュレーションシステム。
【請求項６】
請求項５に記載のシミュレーションシステムであって、
前記鍵管理サーバは、前記複数のシミュレータの内の第１シミュレータに与えられた鍵のセットに含まれる鍵の内の一部の鍵を変更することで、通信故障を模擬することを特徴とするシミュレーションシステム。
【請求項７】
請求項５に記載のシミュレーションシステムであって、
前記複数のシミュレータの内の第１シミュレータに与えられた鍵のセットに含まれる鍵の内の一部の鍵を分割することで、信号到着遅れを模擬することを特徴とするシミュレーションシステム。
【請求項８】
請求項５に記載のシミュレーションシステムであって、
前記鍵管理サーバは、前記複数のシミュレータの内の任意のシミュレータ間の接続に対応付けられている鍵を更新することを特徴とするシミュレーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア上でハードウェアの動作を模擬的に試験するシミュレーションに係り、特にシミュレータ同士の通信に関する。
【背景技術】
【０００２】
近年のハードウェアライフサイクルの短ピッチ化に伴って、ハードウェアを構成するコンポーネントあるいはハードウェアそのもののテスト工程の短期間化が求められている。その一方で、ハードウェアに対する機能要求が高まっており、よしんば故障したとしても安全に停止、あるいは安定状態になるまで継続駆動するためのフェイルオーバ性やフォールストレラント性が重視される傾向にあり、テスト項目数は増加している。かといって、ハードウェアの中には車両や工具機器といった大型な機器も含まれるため、テスト品質の低下によるテスト工程の短期間化は許容されない。【０００３】
こうした背景において、手戻りの発生が多い初期テスト段階において、シミュレータを用いたテストが一般化してきている。しかしながら、従来のハードウェアを用いたテストと異なり、シミュレータを用いたテストにおいては、コンポーネント同士の通信が容易に観測可能であるという点において、秘匿されるべき情報の保護が困難になっている。コンポーネントが有するノウハウは、企業にとっての生命線であるため、これらの情報が危険にさらされるシミュレーション環境は極めて利用可能性の低いものとなる。【０００４】
コンピュータ間の通信を隠蔽する技術として、特許文献１に記載されている技術がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２００８／１４６６３９号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１記載の技術は、プロジェクト管理サーバをネットワークに接続し、そのプロジェクト管理サーバが、ユーザが属するプロジェクトに基づいてネットワークに接続しているコンピュータに通信用の鍵を配布し、それぞれのコンピュータあるいはそのコンピュータ上で動作している仮想マシンが配布された鍵を用いて通信することで、プロジェクトグループごとに秘匿された通信を実現するものである。しかしながら、テストの対象となるコンポーネントやハードウェアのそれぞれに対応するシミュレータに対してプロジェクトグループによる管理を適用すると、プロジェクトに対する鍵によるプロテクトが突破されると、すべてのシミュレータ間の通信が漏えいする。これを防ぐためにはプロジェクト管理サーバのプロテクトをより強固にする必要があり、運用コストが増加してしまう。【０００７】
本発明は上記課題を鑑みて為されたものであって、シミュレータ間の通信の秘匿性の向上を目的としている。
【課題を解決するための手段】
【０００８】
本発明は、ネットワークで接続されている複数の情報処理装置上で動作するシミュレータ間の通信において、各シミュレータに、各シミュレータが接続される他のシミュレータへの仮想配線に対応する鍵のセットを与え、複数のシミュレータの内の第１シミュレータが、データを第１シミュレータに接続されている仮想配線の内の一に送信する際に、第１シミュレータに与えられている鍵のセットの内、該一に対応する鍵で該データを暗号化し、ネットワークに送信することで、前述の課題を解決する。
【発明の効果】
【０００９】
仮想配線に対応する鍵セットによるプロテクトにより、仮想配線毎に鍵で通信が秘匿化され、シミュレータ間の通信の秘匿性が向上する。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例であるシミュレーションシステムの機能ブロック図である。
【図２】本発明の実施例であるシミュレーションシステムに含まれるシミュレータ装置の一例を示す図である。
【図３】本発明の実施例であるシミュレーションシステムに用いられる鍵リストの一例を示す図である。
【図４】本発明の実施例であるシミュレーションシステムに含まれる鍵管理サーバ装置の一例を示す図である。
【図５】ネットワークマップの例を示す図である。
【図６】鍵管理サーバによる初期鍵発行処理の一例を示す図である。
【図７】データ送信処理の実装例を示す図である。
【図８】データ受信処理の実装例を示す図である。
【図９】本発明の実施例であるシミュレーションシステムに適用可能な鍵変更手順の一例を示す図である。
【図１０】本発明の実施例であるシミュレーションシステムに適用可能な外乱の付与手順の一例を示す図である。
【図１１】本発明の実施例であるシミュレーションシステムに適用可能な外乱管理に用いる表の一例を示す図である。
【図１２】本発明の実施例であるシミュレーションシステムに適用可能な鍵管理方法の一例を示す図である。
【図１３】データ受信処理の実装例を示す図である。
【図１４】本発明の実施例であるシミュレーションシステムに適用可能な鍵分割割当て手順の一例を示す図である。
【発明を実施するための形態】
【実施例１】
【００１１】
本明細書においては同一番号が割り当てられた構成要素は同一の構成要素を表す。また、バリエーションがある構成要素に関しては、１−ａ、１−ｂのように、”−”とアルファベット一文字で同種だが異なる役割を果たす構成要素であることを表す。【００１２】
図１は、本発明の実施例であるシミュレーションシステム１０００の機能ブロック図である。シミュレーションシステム１０００は、１台以上のシミュレータ１と１台の鍵管理サーバ２がネットワーク３を接続した回路上で実現される。図１では、説明の簡単化のために、シミュレーションシステム１０００は、シミュレータＡ、シミュレータＢ、およびシミュレータＣの３台のシミュレータ１を有するとして説明する。【００１３】
シミュレーションシステム１０００の環境を構築するための装置については、図２、３を用いて説明する。図２は、シミュレータ１を実現するシミュレータ装置１’の構成例を示す図である。シミュレータ装置１’は、プロセッサ装置１０と、メモリ装置１２と、通信インタフェース１４と、これらの構成要素を接続する通信バス１６と、を有する装置である。シミュレータ装置１’は、情報処理装置であり、例えばサーバ装置である。【００１４】
通信インタフェース１４は、ネットワーク３を介して接続された他の装置に対して命令及びデータ４４を送信、或いは当該他の装置からの命令及びデータ４４を受信するための装置である。このネットワーク３は、物理的なケーブルで実現してもよいし、無線技術を用いて実現してもよい。また、ネットワーク３をローカルエリアネットワーク（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やワイドエリアネットワーク（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などを利用して実現してもよい。通信インタフェース１４は必ずしも各シミュレータ装置１’に１台である必要はなく、ネットワーク３の種類が多岐に渡る場合、それらに対応した通信インタフェース１４を複数搭載しても構わないし、専用のネットワーク３の確保などを目的として、同一ネットワーク３に複数の通信インタフェース１４を接続しても構わない。以降、シミュレータ１と他の装置の間におけるデータ４４の送受信において特に断りが無い場合は、暗黙的に通信インタフェース１４とネットワーク３を介して送受信を実現することとする。【００１５】
プロセッサ装置１０は、メモリ装置１２に格納されているプログラムを実行、あるいはメモリ装置１２に対するデータ４４を読み書きする装置である。プロセッサ装置１０は、各シミュレータ装置１’に複数台搭載されていても構わない。【００１６】
メモリ装置１２は、装置が使用する処理手段を格納および情報を記憶するための装置であり、モジュール本体など、モジュール実行中には内容の書換が強く制限されるモジュール領域６０と、モジュールが扱う一時データなど、モジュール実行中において適切に内容が書き換えられるデータ領域６１とを内包している。但し、これらの領域を必ずしも全ての様態で実現する必要はなく、便宜上図示しているにすぎないことに注意するべきである。【００１７】
メモリ装置１２には、ダイナミックラム（ＤＲＡＭ）などの揮発メモリによって構成される高速な読み書きが可能な記憶装置が適用されるが、アプリケーションが許すならば、ハードディスクドライブやＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ）などの不揮発性の大容量記憶装置を適用してもよいし、またはＣＤ−Ｒ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅｃｏｒｄａｂｌｅ）などのライトワンスメディアを適用しても構わない。また、メモリ装置１２は、単一の装置から構成されている必要は無く、複数台、複数種の記憶装置をＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）のような並列構成あるいはＪＢＯＤ（Ｊｕｓｔ  ａ  Ｂｕｎｃｈ  Ｏｆ  Ｄｉｓｋｓ）のような直列構成に接続して実現しても構わない。【００１８】
メモリ装置１２のモジュール領域６０には、コンポーネントの挙動をシミュレートするシミュレータモジュール１００とコンポーネント間の通信をシミュレートするための仮想配線シミュレータモジュール１０１とが格納されている。仮想配線シミュレータモジュール１０１は、仮想的な通信路（仮想配線４２’（図１には図示せず））のうち、使用する仮想配線４２’を決定する仮想配線決定モジュール１０２と、仮想配線４２’に送信する情報を暗号化する暗号モジュール１０４と、前記暗号モジュール１０４によって暗号化された情報を復号し、情報の参照を実現するための復号モジュール１０６と、を含む。【００１９】
一方、データ領域６１には、シミュレータ間の通信で用いられる暗号鍵４２を含む鍵リスト４０が格納されている。また、データ領域６１には、シミュレータ間で通信されるデータ４４が格納される。【００２０】
鍵リスト４０の構成例を図３に示す。鍵リスト４０は、各シミュレータが用いる暗号鍵４２の一次元の配列として実装され、図３の例では先頭からＫａ、Ｋｂ、Ｋｃの順序で格納されている。ただし、これはあくまで実装の一例であり、暗号鍵４２のそれぞれに対して一意に識別するためのキーと、キーをアドレスに指定する関数による連想配列などを用いてもよいし、順序性を持たない集合として扱ってもよいし、必要があればキューやスタックといった、参照・格納順に制約を設けたデータ構造で実装しても構わない。いずれにせよ、鍵リスト４０に対して、キーを用いた暗号鍵参照は有限の時間で完了されればよい。【００２１】
これらのモジュールあるいはデータ４４はメモリ装置１２に常に格納されている必要はなく、実行する際にネットワーク３を介して接続されたストレージ装置などの別の装置からロードされても構わないし、コンパイルモジュールを有する様態であれば、実行する際にプロセッサ装置１０が解釈できるネイティブコードにソースファイルから変換して、メモリ装置１２に配置しても構わない。メモリ装置１２に格納されている各モジュールに関しては、各構成要素の説明後別途説明する。【００２２】
通信バス１６は、シミュレータ１’装置内の構成要素間でのデータ４４の送受信を実現するための装置であり、ＣＰＵバスやアドレスバスなどの内部バスとＳｅｒｉａｌ  ＡＴＡやＰＣＩ  Ｅｘｐｒｅｓｓなどの拡張バスを接続して構成される装置である。有線の通信バスの例を挙げたが、配線の簡素化などを目的として無線で通信バス１６を構成しても構わない。以降、メモリ装置１２、プロセッサ装置１０、及び通信インタフェース１４間の通信において特に断りが無い場合は、暗黙的に通信バス１６を介して送受信を実現する。
＜各モジュールの説明＞
以下、メモリ装置１２に格納される各モジュールについて説明する。【００２３】
シミュレータモジュール１００は、コンポーネントの状態や信号の送受信を、モジュール内部の状態変化やＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）の呼び出しなどで代替し、ソフトウェア上でコンポーネントの動作を模擬的に実行するモジュールである。このシミュレータモジュール１００が有する内部的情報や通信状況は企業ノウハウを多分に含んでいる。本実施例のシミュレーションシステム１０００では、シミュレータモジュール１００同士の通信を、仮想配線４２’を介して行うことで、仮想配線４２’に接続されていない他のシミュレータモジュール１００やシミュレーションシステム１０００に含まれないアプリケーションに対してデータ４４が隠蔽される。仮想配線４２’を実現するためのモジュールが、次に説明する仮想配線シミュレータモジュール１０１である。【００２４】
仮想配線シミュレータモジュール１０１は、複数のＡＰＩ１０３を有するモジュールである。ＡＰＩ１０３−ａ，ｂ，ｃ・・・のそれぞれは、コンポーネントに接続されている配線のそれぞれに対応する。シミュレータモジュール１００は、その通信の用途に応じて自身が生成した信号をいずれかのＡＰＩ１０３に選択して入力する。【００２５】
仮想配線決定モジュール１０２は、復号モジュール１０６によって復号された信号が正しく復号されているかどうか、確認するためのモジュールである。こうした復号の確認は、例えばチェックサムを用いる方法などが挙げられる。【００２６】
暗号モジュール１０４は、入力された信号を一定の規則に従って変換し、復号手段を持たない装置から情報を抽出できなくするモジュールである。暗号には暗号表を用いた文字列置換方法や、素因数分解などの一方向性関数が有する、逆関数の計算が困難であることを利用した変換方法を用いてもよい。【００２７】
復号モジュール１０６は、入力された信号を一定の規則に従って変換し、別の信号に変換するモジュールである。ここで注意するべきは、復号モジュール１０６自身は復号が成功したかどうか判定せず、入力された信号をただ規則に従って変換し出力するモジュールであることである。【００２８】
鍵リスト４０は、暗号モジュール１０４と復号モジュール１０６によってそれぞれ参照される、暗号化に用いる暗号鍵４２を番号づけて管理したデータである。以降、本明細書においては、鍵リスト４０中のｉ番目の暗号鍵４２はＫｉと表現する。暗号モジュール１０４がＫｉを用いて暗号化した情報は復号モジュール１０６がＫｉを用いて暗号化前の情報として復号可能であるとし、また、異なる暗号鍵Ｋｊ（ｉ≠ｊ）では復号し得ないものとする。
＜鍵管理サーバ装置２’の説明＞
図４に、鍵管理サーバ２を実現する鍵管理サーバ装置２’の構成例を示す。鍵管理サーバ装置２’はシミュレータ装置１’と同じくプロセッサ装置１０と、メモリ装置１２と、通信インタフェース１４と、これらの構成要素を接続する通信バス１６と、を有する装置である。鍵管理サーバ装置２’は、情報処理装置であり、例えばサーバ装置である。【００２９】
それぞれの装置の動作はシミュレータ装置１’を構成する装置と同等であるため、説明を省略する。
＜各モジュールの説明＞
鍵管理サーバ装置２’のメモリ装置１２に格納されるモジュールについて説明する。鍵生成モジュール１１０は、シミュレータ１が情報を暗号化あるいは復号する際に使用する暗号鍵４２を生成するモジュールである。鍵生成モジュール１１０によって発行される暗号鍵４２は、少なくともシミュレーション環境に実現される仮想配線４２’にそれぞれユニークな値が割り振られるように構築されるようにする。【００３０】
ネットワーク管理モジュール１１２は、ネットワークマップ４１を参照し、仮想配線４２’を定義するモジュールである。仮想配線４２’とは、コンポーネント同士の配線による接続を仮想的に記録した情報である。具体的には、仮想配線４２’は、あるコンポーネントと接続している全てのコンポーネントの識別情報（ＩＤ）の集合として定義される。特にこの集合のサイズが２の場合、２つのコンポーネントはそれぞれが相互に接続され、また他のコンポーネントが接続されていない１：１の関係として接続されていることが示される。【００３１】
ネットワークマップ４１は、こうした仮想配線４２’を人間が可視しやすい情報として記録された情報である。回路図のように幾何的に表されていてもよいし、何らかの言語で記述されていてもよい。【００３２】
シミュレータ装置１’および鍵管理サーバ装置２’をそれぞれネットワーク接続し、起動することで、各装置のモジュールが相互に連携し、図１に示したようなシミュレーション環境が実現される。
＜シミュレータの接続＞
図１に示したシミュレーション環境において、鍵管理サーバ２が仮想配線４２’を定義し、シミュレータの接続を確立する手順を説明する。【００３３】
図５は、ネットワークマップ４１の一例であり、図１に示したシミュレーション環境に対応したものである。図５のネットワークマップ４１においては、３つのシミュレータ１が有するシミュレータモジュール１００のそれぞれによってシミュレートされる３つのコンポーネント１００’が、仮想バスＡ、仮想バスＢ、及び仮想専用線の３本の仮想配線４２’で接続されている。このように、仮想配線４２’には、コンポーネントを接続する仮想バス及び仮想専用線が含まれる。また、有線配線ではなく、ワイヤレスＬＡＮのように無線配線を含んでいてもよい。また、コンポーネントＡはシミュレータＡで、コンポーネントＢはシミュレータＢで、コンポーネントＣはシミュレータＣで、それぞれ模擬される。すなわち、各シミュレータは、シミュレーション対象の各コンポーネントに対応している。【００３４】
図６は、シミュレーション環境において初期状態を構成するための初期鍵発行処理Ｓ１の一例をフローチャートで示したものである。ステップＳ１１では、鍵管理サーバ２のネットワーク管理モジュール１１２は、ネットワークマップ４１を走査し、仮想配線４２’のそれぞれに識別情報（ＩＤ）を割当てる。ステップＳ１２では、鍵管理サーバ２のネットワーク管理モジュール１１２は、ネットワーク３に接続している全てのシミュレータ１とそれぞれセキュアなセッションを構築する。【００３５】
ステップＬ１０〜Ｌ１１では、全ての仮想配線４２’に対して以下のステップＳ１３、Ｓ１４を実行する。ステップＳ１３では、仮想配線４２’に対して鍵管理サーバ２の鍵生成モジュール１１０がユニークな暗号鍵４２を生成する。ステップＳ１４では、鍵管理サーバ２の鍵生成モジュール１１０は、対象の仮想配線４２’に接続している全てのシミュレータ１に、ステップＳ１３で生成した鍵を送信する。以上のステップで、鍵管理サーバ２は、シミュレータ間の仮想配線４２’による接続に対応付けられた暗号鍵４２のセットを各シミュレータ１に送信する。【００３６】
図５に示した例では、シミュレーション環境は３本の仮想配線４２’を有している。以降、便宜上、図５の仮想専用線を仮想配線４２’−ａと、仮想バスＡを仮想配線４２’−ｂと、仮想バスＢを仮想配線４２’−ｃと、それぞれ呼ぶ。図１および図５に示したシミュレーション環境においては、仮想配線４２’−ａに対して独自の暗号鍵４２であるＫａが発行され、また、仮想配線４２’−ａに対して、仮想配線シミュレータモジュール１０１が、ＡＰＩ１０３−ａを割当てる。仮想配線４２’−ｂ、ｃに対しても同様に、独自の暗号鍵４２であるＫｂ、Ｋｃがそれぞれ発行され、また、仮想配線４２’−ｂ、ｃに対して、仮想配線シミュレータモジュール１０１が、ＡＰＩ１０３−ｂ、ｃをそれぞれ割当てる。図１および図５に示したシミュレーション環境においては、シミュレータＡは仮想配線４２’−ａ、ｂに、シミュレータＢは仮想配線４２’−ｂに、シミュレータＣは仮想配線４２’−ａ、ｃにそれぞれ接続されている。これを実現するため各シミュレータ１のシミュレータモジュール１００は、自身が有する各配線への入出力信号を、各シミュレータ１の仮想配線シミュレータモジュール１０１のＡＰＩ１０３にそれぞれ接続する。【００３７】
図１に示した例では、シミュレータＡの鍵リスト４０には、ＫａとＫｂが含まれ、シミュレータＡのシミュレータモジュール１００は、仮想配線シミュレータモジュール１０１のＡＰＩ１０３−ａ、ｂに接続されている。シミュレータＢの鍵リスト４０には、Ｋｂが含まれ、シミュレータＢのシミュレータモジュール１００は、仮想配線シミュレータモジュール１０１のＡＰＩ１０３−ｂに接続されている。また、シミュレータＣの鍵リスト４０には、Ｋａ、Ｋｃが含まれ、シミュレータＣのシミュレータモジュール１００は、仮想配線シミュレータモジュール１０１のＡＰＩ１０３−ａ、ｃに接続されている。このように、各シミュレータ１００の鍵リスト４０に、暗号鍵４２のセットが配置される。【００３８】
鍵管理サーバ２は、上述のようにネットワークマップ４１はメモリ装置１２に保持しているが、生成した暗号鍵４２はメモリ装置１２に保持しない。これにより、鍵管理サーバ２のプロテクトが突破された場合でも、シミュレーションシステム１０００に配置されている鍵４２が読み取られることを防ぐことができる。【００３９】
シミュレーションシステム１０００のデータ４４の送受信方法を、図７、８を用いて説明する。図７は、データ送信処理Ｓ５の実装例である。ステップＳ５１では、仮想配線決定モジュール１０２は、自身が有するＡＰＩ１０３を監視し、シミュレータモジュール１００から送信されてくる信号を検知する。ステップＣ５１では、仮想配線決定モジュール１０２は、信号を受信したＡＰＩ１０３に対応した暗号鍵４２が鍵リスト４０に格納されているか確認する。【００４０】
ステップＣ５１でＡＰＩ１０３に対応する暗号鍵４２であるＫｉが鍵リスト４０に格納されている場合、ステップＳ５２で、仮想配線決定モジュール１０２はＡＰＩ１０３から取得したデータ４４を暗号モジュール１０４に渡し、暗号モジュール１０４はＫｉを用いてデータ４４を暗号化する。さらに、ステップＳ５３で、暗号モジュール１０４は、暗号化したデータ４４を通信インタフェース１４を介し、接続しているネットワーク３にブロードキャストする。そして、ステップＳ５１０で、データ送信処理Ｓ５を終了する。【００４１】
ステップＣ５１でＡＰＩ１０３に対応する暗号鍵４２であるＫｉが鍵リスト４０に格納されていない場合、ステップＳ５４で、仮想配線決定モジュール１０２は受信したデータ４４を破棄し、続いて、ステップＳ５１でＡＰＩ１０３の監視を再開する。【００４２】
次に、データ４４の受信処理について説明する。【００４３】
図８は、データ受信処理Ｓ６の実装例である。ステップＳ６１で、復号モジュール１０６は、通信インタフェース１４を介して、暗号化されたデータ４４を受信する。ステップＳ６２で、復号モジュール１０６は、受信した暗号化されたデータ４４を、自身が属するシミュレータ１に与えられて鍵リスト４０に含まれている暗号鍵４２を用いて、復号することを試みる。本実施例においては、この復号処理を鍵リスト４０に含まれている全ての暗号鍵４２について並列実行することで、同クロックに復号されたデータ４４を取得することを期待しているが、それぞれの復号処理が十分短時間で終了し、鍵リスト４０の最初と最後に格納された暗号鍵４２を用いた復号結果が同時に終了したとみなせるのであれば、逐次的処理で実装しても構わない。ステップＳ６３で、仮想配線決定モジュール１０２は、それぞれの復号処理を施されたデータ４４の復号成功可否を判定する。【００４４】
ステップＣ６１で復号に成功したデータ４４がある場合、ステップＳ６４で、復号に成功した暗号鍵４２に対応するＡＰＩ１０３の出力信号を変更し、データ受信処理Ｓ６を終了する（ステップＳ６１０）。これにより、シミュレータ１は復号されたデータ４４を受信することができる。一方、ステップＣ６１で復号に成功したデータ４４がない場合、ステップＳ６１０でデータ受信処理Ｓ６を終了する。【００４５】
データ送信処理Ｓ５とデータ受信処理Ｓ６の２つの処理を用いて、各シミュレータモジュール１００は、仮想配線４２’上での通信を実現する。各シミュレータ１から他のシミュレータ１に送信されるデータ４４はブロードキャストで発行され、受信するシミュレータ１が受信可否を決定するため、仮想配線４２’に送信されたデータ４４は、その仮想配線４２’に接続されている機器を模したシミュレータ全てにほぼ同時に到着する。このほぼ同時にデータ４４が到着する特長は、それぞれが独自のクロックで動作する複雑なコンポーネントの組合せのシミュレーションにとって有用である。【００４６】
なお、各シミュレータモジュール１００は、元来接続する必要のない仮想配線４２’に接続してもよい。例えば図１および図５の例では、シミュレータＣが、仮想配線シミュレータモジュール１０１が提供するＡＰＩ１０３−ｂに接続してもよい。なぜなら、仮想配線４２’−ｂを流れるデータ４４を暗号化しているＫｂが鍵管理サーバ２によってシミュレータＣには発行されていないため、シミュレータＣは観測している情報を復号できないため、結果的に、仮想配線４２’−ｂからは断絶される。【００４７】
一方、他のシミュレータモジュール１００の妨害などを目的として、接続する必要のない仮想配線４２’に対して、無作為に情報を流すような場合においては、送信元のシミュレータ１の鍵リスト４０に、対応する暗号鍵４２が無い限り、ネットワーク３への情報送信が許可されない。よしんば、暗号鍵４２が無い状態でのデータ４４送信が許容される様態であったとしても、その場合は、受信側が正しく復号できないため、データ４４は受理されず破棄される。これらの処理によって、本発明によるシミュレーション方法においては、データ４４の隠ぺいと、安全性を確保する。【００４８】
本実施例のシミュレーションシステムでは、各仮想配線に対してユニークな鍵が与えられる。したがって、仮にそのうちの一つの鍵によるプロテクトが突破されたとしても、すべてのシミュレータ間の通信が漏えいすることにはならない。このように、本実施例のシミュレーションシステムは、高い安全性を提供することができる。
【実施例２】
【００４９】
実施例１で説明したシミュレーションシステムで各仮想配線に対して与えられている鍵毎に、鍵交換をして鍵を更新し、さらに高い安全性を実現する実施例を説明する。
＜鍵交換処理＞
実施例１では、データ４４の送受信の安全性について説明したが、その中で説明したように任意のシミュレータ１は、自身が接続していない仮想配線４２’上のデータ４４を受信することが可能である。それぞれのシミュレータ１は仮想配線シミュレータモジュール１０１によって、復号確認の手段を有しているため、ブルートフォースアタックなどの暗号突破手段を用いれば、一定の計算量で任意の仮想配線４２’上のデータ４４を復号可能である。そこで、本実施例においては鍵交換プロセスによるセキュリティレベルの担保について説明する。【００５０】
図９に、図１に示したシミュレーション環境に適用可能な鍵交換処理の一例として、鍵交換処理Ｓ７を示す。各シミュレータ１がある時刻において、鍵リスト４０に格納している暗号鍵４２をカッコ内に示す。また、ブロードキャストについては実線の矢印で示すのに対して、対象を指定するユニキャストあるいはマルチキャストに関しては、一点鎖線の矢印を用いて表現する。【００５１】
初期状態においては、図１で説明した状態と同様である。以下、仮想配線４２’−ｂに接続するための暗号鍵４２であるＫｂを異なる鍵Ｋｂ’に変更するプロセスを示す。【００５２】
既に述べたように、鍵管理サーバ２は自身のプロテクトが突破された際に全ての暗号鍵４２が読みとられることを防止するために、仮想配線４２’に接続されているシミュレータ１についてはネットワークマップ４１に記録しているが、その仮想配線４２’に接続するための暗号鍵４２は記録していない。【００５３】
そこで、鍵管理サーバ２は、暗号鍵４２の取得を実施するために、ネットワークマップ４１を参照し、対象とする仮想配線４２’に接続している任意のシミュレータ１（本実施例においてはシミュレータＡ）に対して、暗号鍵４２であるＫｂの変更要求を発行する（Ｐ７１）。Ｋｂの変更要求を受信したシミュレータＡは、鍵管理サーバ２にＫｂを送信する（Ｐ７２）。このプロセスは例えば公開鍵交換プロセスなどの十分セキュアなアルゴリズムで実現すればよい。鍵管理サーバ２は、鍵生成機能を用いてＫｂに換わるＫｂ’を生成する（Ｓ７２１）。【００５４】
鍵管理サーバ２は、生成したＫｂ’を暗号鍵４２であるＫｂを用いて暗号化しブロードキャストする（Ｐ７３）。このプロセスによって、Ｋｂ’を取得できるのはＫｂをあらかじめ有している、シミュレータＡ、Ｂのみである。それぞれのシミュレータ１は、Ｋｂ’を受信したことを鍵管理サーバ２にユニキャストする（Ｐ７４）。鍵管理サーバ２は、ネットワークマップ４１を参照し、仮想配線４２’−ｂに接続しているすべてのシミュレータ１がＫｂ’を受信したかどうかを確認できるまで、すなわちＰ７４での各シミュレータ１からのユニキャストの送信を受信できるまで、次の処理を待機する（Ｓ７２２）。この処理によって、鍵交換処理Ｓ７によって仮想配線４２’からシミュレータ１が除外されることを防止することができる。【００５５】
鍵管理サーバ２は、暗号鍵４２であるＫｂを用いて鍵変更指示をブロードキャストする（Ｐ７９）。鍵変更の指示を復号できたシミュレータ１は、鍵リスト４０に格納されている、該当する暗号鍵４２であるＫｂをＫｂ’に変更する（Ｓ７１１）。以降、シミュレーション環境において、Ｋｂは無効となる。最後に、鍵管理サーバ２は、鍵管理サーバ２内にあるＫｂを破棄し、鍵交換処理Ｓ７を終了する（Ｓ７２３）。
【実施例３】
【００５６】
昨今のハードウェアテストにおいては、故障時のフェイルオーバ性やフォールストレラント性の確認も要求されている。故障の一つとして、配線の故障による送受信信号の変化あるいは断絶がある。本実施例においては、実施例２で説明した鍵交換処理を用いて、配線故障をシミュレーションする方法について説明する。【００５７】
図１０に、実施例２で説明した鍵交換処理Ｓ７を用いて配線故障シミュレーションを実現する処理のシーケンスの一例として、鍵交換処理Ｓ７’を示す。実施例２の鍵交換処理Ｓ７と同様に、鍵管理サーバ２は鍵変更（Ｋｂに対して）を要求し（Ｐ７１）、任意のシミュレータ１（図１０ではシミュレータ１Ａ）が対象となる暗号鍵４２（Ｋｂ）を鍵管理サーバ２に送信し（Ｐ７２）、その後鍵管理サーバ２が新たな暗号鍵４２（Ｋｂ’）を生成する（Ｓ７２１）。【００５８】
Ｐ７３’からが実施例２の鍵交換処理Ｓ７と異なる処理である。実施例２では新しい暗号鍵４２（Ｋｂ’）を古い暗号鍵４２（Ｋｂ）を用いて暗号化し、ブロードキャストしていたが、本実施例では任意のシミュレータ１にユニキャストあるいはマルチキャストする（Ｐ７３’）。新しい暗号鍵４２を受信し、復号できたシミュレータ１（図１０ではシミュレータＡ）は、実施例２の鍵交換処理Ｓ７と同様に、Ｋｂ’の受信確認を鍵管理サーバ２に送信する（Ｐ７４）。その一方で、鍵管理サーバ２は、生成した新しい暗号鍵４２（Ｋｂ’）にノイズＮを加えて、Ｋｂ”を生成する（Ｓ７２１）。【００５９】
このＫｂ”の特徴は次の（１）、（２）の２つである。（１）Ｋｂ’とノイズＮを用いて一意に生成可能である。（２）Ｋｂ’で暗号化されたデータ４４をＫｂ”で復号した際、復号成功と判定されるが、元データ４４が正しく取得できることは保証されない。【００６０】
このようなＫｂ”の特性を実現するには、例えば排他的論理和（ＸＯＲ）を使ってデータ４４を変換する方法などを用いればよい。例えば、８ビットのデータ４４に対して８ビットの復号成功信号を末尾に付与し、１６ビットの暗号鍵４２のＫ’とＸＯＲした結果を暗号化されたデータ４４とする方法においては、８ビットのノイズＮを生成し、Ｋ’の上位８ビットとＸＯＲ演算などの論理演算を施すことで、上述の（１）と（２）の特徴を実現するＫ”を提供できる。【００６１】
鍵管理サーバ２は、Ｐ７３’で暗号鍵４２であるＫｂ’を送付しなかったシミュレータ１（図１０ではシミュレータＢ）に、ノイズＮを付与した暗号鍵４２であるＫｂ”をＫｂで暗号化し、ユニキャストもしくはマルチキャストする（Ｐ７５）。Ｋｂ”を受信したシミュレータＢは、受信確認を鍵管理サーバ２へ送信する（Ｐ７６）。Ｐ７４とＰ７６により、実施例２と同様に、鍵管理サーバ２が、仮想配線４２’−ｂに接続しているシミュレータ１の全てが暗号鍵４２を受信できたかを確認できる（Ｓ７２２）。その後、鍵管理サーバ２は、実施例２と同様に、各シミュレータ１に鍵の変更を指示し（Ｐ７９）、元の暗号鍵４２であるＫｂを破棄する（Ｓ７２３）。【００６２】
鍵管理サーバ２は、ノイズＮを、ノイズＮを与えた仮想配線４２’とシミュレータ１を一意に特定できる情報とともに、鍵管理サーバ装置２’のメモリ装置１２に格納しておく。格納方法の一例としてノイズデータベース３０を図１１に示す。ノイズデータベース３０は、仮想配線４２’とシミュレータ１がそれぞれＩＤ管理されている場合に、どのシミュレータ１の暗号鍵４２にどのようなノイズＮが付与されているか関連付けて記録するためのデータベースである。図１１のノイズデータベースでは、仮想配線ＩＤ３１、シミュレータＩＤ３２、およびノイズ３３の組をエントリとしており、仮想配線ＩＤ３１には仮想配線４２’−ｂを示す「ｂ」が、シミュレータＩＤにはシミュレータＢを示す「Ｂ」が、ノイズ３３には８ビットのノイズＮの「０００１００００」が格納されている。このノイズデータベース３０を用いれば、再び仮想配線４２’−ｂの暗号鍵４２を変更する際に、受信したＫｂ”とノイズＮを参照し、Ｋｂ’を再度生成することで、シミュレータＢに与えた配線故障を回復したり、他のシミュレータ１にノイズを付与したりするなどを実現できる。【００６３】
以上の処理により、一部にはノイズが付与された信号が到着あるいは発信されるシミュレータ１が仮想配線４２’に接続され、配線故障を模擬することができる。すなわち、シミュレータ１に与えられた鍵のセットに含まれる鍵の内の一部の鍵を変更することで、通信故障を模擬することができる。この配線故障の導入は、実施例２の鍵交換と同様に行われるので、セキュリティのレベルを高く保ちつつ、実行することができる。
【実施例４】
【００６４】
実施例１では、シミュレーション環境において、各シミュレータ１に信号が到着する時刻の同時性について、述べてきた。しかしながら、実際のハードウェア回路においては、配線長に応じた到着時刻のズレや信号の立ち上がりなどで個々のコンポーネントへの信号到着時刻に厳密には遅れが生じる。こうした信号到着の遅れを模擬する方法を述べる。【００６５】
図１２は、本実施例の鍵リスト４０の実現例である。図１２の各暗号鍵４２は、任意の数に分割され、分割されて記録される。ここで、Ｋｎの部分暗号鍵であるＫｎ．１〜Ｋｎ．ｍのそれぞれを暗号化されたデータ４４に対して適用して逐次復号すれば、Ｋｎで復号されたものと同じデータ４４が再現できるものとする。たとえば、８ｂｉｔのＸＯＲ暗号鍵４２を用いる実装においては、暗号鍵４２を最大８個にまで分割し、各ビット情報をＫｎ．１、Ｋｎ．２…、Ｋｎ．８として記録すればよい。これらのＫｎ．１〜Ｋｎ．８を暗号化されたデータ４４にそれぞれＸＯＲ演算することで、元の暗号鍵４２であるＫｎで復号したのと同様の復号結果を得られる。【００６６】
なお、鍵リスト４０に対してキーを用いて暗号鍵４２を参照する際、任意の数に分割された暗号鍵４２を集合として取得することができるのであれば、本実施例のように必ずしも２次元の配列として記録する必要はなく、それぞれが連想配列として記録されていてもよいし、順序を持たない集合として記録されていてもよい。【００６７】
図１３に本実施例のデータ受信処理Ｓ６’を示す。本実施例においても、図８に示したデータ受信処理Ｓ６と同様に、受信されたデータ４４は各暗号鍵４２で並列復号されるが、この際に暗号鍵４２が分割されている場合、逐次的に復号処理が実施される（Ｓ６２’）。各復号処理に係るクロックが同等であれば、２つに分割された暗号鍵４２であるＫｂでの復号は任意の分割されていないＫｉでの復号処理に比べて処理完了に２倍の時間を要する。この処理時間の違いが、ネットワーク遅延として再現される。【００６８】
図１４に、鍵分割プロセスを含む鍵交換処理Ｓ７”を示す。実施例２および実施例３と同様に、鍵管理サーバ２が特定の仮想配線４２’（図１４では仮想配線４２’−ｂ）に属する任意のシミュレータ１（図１４ではシミュレータＡ）に対して、鍵変更を要求し、暗号鍵４２であるＫｂを取得し（Ｐ７２）、新しい暗号鍵４２であるＫｂ’を生成する（Ｓ７２１）。こうして生成された新しい暗号鍵４２であるＫｂ’は第３実施例と同様に、一部のシミュレータ１に対して、ユニキャストあるいはマルチキャストされる（Ｐ７３’）。新しい暗号鍵４２を受信し、復号できたシミュレータ１（図１４ではシミュレータＡ）は、実施例２の鍵交換処理Ｓ７と同様に、Ｋｂ’の受信確認を鍵管理サーバ２に送信する（Ｐ７４）。【００６９】
次に、鍵生成モジュール１１０は、暗号鍵４２（図１４ではＫｂ’）を任意の数に分割する。分割数の決定は、ネットワークマップ４１に記載された配線長などから決定してもよいし、各シミュレータ１のハードウェア的処理速度の違いなどから決定してもよい。そして、ネットワーク遅延を再現したいシミュレータ１（図１４ではシミュレータＢ）に対して、分割された鍵を送信する。分割された鍵を受信したシミュレータＢは、受信確認を鍵管理サーバ２へ送信する（Ｐ７８）。【００７０】
以降、実施例２および実施例３と同様に、仮想配線４２’−ｂに属するシミュレータ１全てに対して受信を確認し（Ｓ７２２）、鍵変更を指示し（Ｐ７９）、古い暗号鍵４２であるＫｂを破棄して（Ｓ７２３）、鍵交換処理Ｓ７を終了する。【００７１】
以上の処理により、一部には遅延のある信号が到着あるいは発信されるシミュレータ１が仮想配線４２’に接続され、信号遅延を模擬することができる。すなわち、シミュレータ１に与えられた鍵のセットに含まれる鍵の内の一部の鍵を分割することで、信号遅延を模擬することができる。この信号遅延の導入は、実施例２の鍵交換と同様に行われるので、セキュリティのレベルを高く保ちつつ、実行することができる。
【符号の説明】
【００７２】
１：シミュレータ、２：鍵管理サーバ、３：ネットワーク、１００：シミュレータモジュール、１０１：仮想配線シミュレータモジュール、４０：鍵リスト、４２：暗号鍵、４４：データ、Ｓ５：データ送信処理、Ｓ６：データ受信処理、Ｓ７：鍵交換処理
【図１】
2014024265.tif 000003
【図２】
2014024265.tif 000004
【図３】
2014024265.tif 000005
【図４】
2014024265.tif 000006
【図５】
2014024265.tif 000007
【図６】
2014024265.tif 000008
【図７】
2014024265.tif 000009
【図８】
2014024265.tif 000010
【図９】
2014024265.tif 000011
【図１０】
2014024265.tif 000012
【図１１】
2014024265.tif 000013
【図１２】
2014024265.tif 000014
【図１３】
2014024265.tif 000015
【図１４】
2014024265.tif 000016
【手続補正書】
【提出日】平成28年2月2日(2016.2.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークで接続されている複数の情報処理装置上で動作するシミュレータ間の通信方法であって、
各シミュレータに、各シミュレータが接続される他のシミュレータへの仮想配線に対応する鍵のセットを与え、
前記複数のシミュレータの内の第１シミュレータが、データを前記第１シミュレータに接続されている仮想配線の内の一に送信する際に、前記第１シミュレータに与えられている前記鍵のセットの内、該一に対応する鍵で該データを暗号化し、前記ネットワークに送信し、
前記複数のシミュレータの内の第２シミュレータに与えられた鍵のセットに含まれる鍵の内の一部の鍵を変更することで、通信故障を模擬することを特徴とするシミュレータ間の通信方法。
【請求項２】
ネットワークで接続されている複数の情報処理装置上で動作するシミュレータ間の通信方法であって、
各シミュレータに、各シミュレータが接続される他のシミュレータへの仮想配線に対応する鍵のセットを与え、
前記複数のシミュレータの内の第１シミュレータが、データを前記第１シミュレータに接続されている仮想配線の内の一に送信する際に、前記第１シミュレータに与えられている前記鍵のセットの内、該一に対応する鍵で該データを暗号化し、前記ネットワークに送信し、
前記複数のシミュレータの内の第２シミュレータに与えられた鍵のセットに含まれる鍵の内の一部の鍵を分割することで、信号到着遅れを模擬することを特徴とするシミュレータ間の通信方法。
【請求項３】
複数の情報処理装置上で動作するシミュレーションシステムであって、
前記複数の情報処理装置の内の一で実行される鍵管理サーバを有し、
前記鍵管理サーバは、
前記複数の情報処理装置で実行される複数のシミュレータ間の接続に対応付けられた暗号鍵のセットを各シミュレータに送信し、
前記鍵管理サーバは、前記複数のシミュレータの内の第１シミュレータに与えられた鍵のセットに含まれる鍵の内の一部の鍵を変更することで、通信故障を模擬することを特徴とするシミュレーションシステム。
【請求項４】
複数の情報処理装置上で動作するシミュレーションシステムであって、
前記複数の情報処理装置の内の一で実行される鍵管理サーバを有し、
前記鍵管理サーバは、
前記複数の情報処理装置で実行される複数のシミュレータ間の接続に対応付けられた暗号鍵のセットを各シミュレータに送信し、
前記複数のシミュレータの内の第１シミュレータに与えられた鍵のセットに含まれる鍵の内の一部の鍵を分割することで、信号到着遅れを模擬することを特徴とするシミュレーションシステム。
【国際調査報告】
2014024265.tif 000017
2014024265.tif 000018
2014024265.tif 000019
2014024265.tif 000020