JP5908088B2 - シミュレータ間の通信方法およびシミュレーションシステム - Google Patents
シミュレータ間の通信方法およびシミュレーションシステム Download PDFInfo
- Publication number
- JP5908088B2 JP5908088B2 JP2014529189A JP2014529189A JP5908088B2 JP 5908088 B2 JP5908088 B2 JP 5908088B2 JP 2014529189 A JP2014529189 A JP 2014529189A JP 2014529189 A JP2014529189 A JP 2014529189A JP 5908088 B2 JP5908088 B2 JP 5908088B2
- Authority
- JP
- Japan
- Prior art keywords
- simulator
- key
- simulators
- module
- management server
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/065—Network architectures or network communication protocols for network security for supporting key management in a packet data network for group communications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Description
本発明は、ソフトウェア上でハードウェアの動作を模擬的に試験するシミュレーションに係り、特にシミュレータ同士の通信に関する。
近年のハードウェアライフサイクルの短ピッチ化に伴って、ハードウェアを構成するコンポーネントあるいはハードウェアそのもののテスト工程の短期間化が求められている。その一方で、ハードウェアに対する機能要求が高まっており、よしんば故障したとしても安全に停止、あるいは安定状態になるまで継続駆動するためのフェイルオーバ性やフォールストレラント性が重視される傾向にあり、テスト項目数は増加している。かといって、ハードウェアの中には車両や工具機器といった大型な機器も含まれるため、テスト品質の低下によるテスト工程の短期間化は許容されない。
こうした背景において、手戻りの発生が多い初期テスト段階において、シミュレータを用いたテストが一般化してきている。しかしながら、従来のハードウェアを用いたテストと異なり、シミュレータを用いたテストにおいては、コンポーネント同士の通信が容易に観測可能であるという点において、秘匿されるべき情報の保護が困難になっている。コンポーネントが有するノウハウは、企業にとっての生命線であるため、これらの情報が危険にさらされるシミュレーション環境は極めて利用可能性の低いものとなる。
コンピュータ間の通信を隠蔽する技術として、特許文献1に記載されている技術がある。
特許文献1記載の技術は、プロジェクト管理サーバをネットワークに接続し、そのプロジェクト管理サーバが、ユーザが属するプロジェクトに基づいてネットワークに接続しているコンピュータに通信用の鍵を配布し、それぞれのコンピュータあるいはそのコンピュータ上で動作している仮想マシンが配布された鍵を用いて通信することで、プロジェクトグループごとに秘匿された通信を実現するものである。しかしながら、テストの対象となるコンポーネントやハードウェアのそれぞれに対応するシミュレータに対してプロジェクトグループによる管理を適用すると、プロジェクトに対する鍵によるプロテクトが突破されると、すべてのシミュレータ間の通信が漏えいする。これを防ぐためにはプロジェクト管理サーバのプロテクトをより強固にする必要があり、運用コストが増加してしまう。
本発明は上記課題を鑑みて為されたものであって、シミュレータ間の通信の秘匿性の向上を目的としている。
本発明は、ネットワークで接続されている複数の情報処理装置上で動作するシミュレータ間の通信において、各シミュレータに、各シミュレータが接続される他のシミュレータへの仮想配線に対応する鍵のセットを与え、複数のシミュレータの内の第1シミュレータが、データを第1シミュレータに接続されている仮想配線の内の一に送信する際に、第1シミュレータに与えられている鍵のセットの内、該一に対応する鍵で該データを暗号化し、ネットワークに送信することで、前述の課題を解決する。
仮想配線に対応する鍵セットによるプロテクトにより、仮想配線毎に鍵で通信が秘匿化され、シミュレータ間の通信の秘匿性が向上する。
本明細書においては同一番号が割り当てられた構成要素は同一の構成要素を表す。また、バリエーションがある構成要素に関しては、1−a、1−bのように、”−”とアルファベット一文字で同種だが異なる役割を果たす構成要素であることを表す。
図1は、本発明の実施例であるシミュレーションシステム1000の機能ブロック図である。シミュレーションシステム1000は、1台以上のシミュレータ1と1台の鍵管理サーバ2がネットワーク3を接続した回路上で実現される。図1では、説明の簡単化のために、シミュレーションシステム1000は、シミュレータA、シミュレータB、およびシミュレータCの3台のシミュレータ1を有するとして説明する。
シミュレーションシステム1000の環境を構築するための装置については、図2、3を用いて説明する。図2は、シミュレータ1を実現するシミュレータ装置1’の構成例を示す図である。シミュレータ装置1’は、プロセッサ装置10と、メモリ装置12と、通信インタフェース14と、これらの構成要素を接続する通信バス16と、を有する装置である。シミュレータ装置1’は、情報処理装置であり、例えばサーバ装置である。
通信インタフェース14は、ネットワーク3を介して接続された他の装置に対して命令及びデータ44を送信、或いは当該他の装置からの命令及びデータ44を受信するための装置である。このネットワーク3は、物理的なケーブルで実現してもよいし、無線技術を用いて実現してもよい。また、ネットワーク3をローカルエリアネットワーク(Local Area Network)やワイドエリアネットワーク(Wide Area Network)などを利用して実現してもよい。通信インタフェース14は必ずしも各シミュレータ装置1’に1台である必要はなく、ネットワーク3の種類が多岐に渡る場合、それらに対応した通信インタフェース14を複数搭載しても構わないし、専用のネットワーク3の確保などを目的として、同一ネットワーク3に複数の通信インタフェース14を接続しても構わない。以降、シミュレータ1と他の装置の間におけるデータ44の送受信において特に断りが無い場合は、暗黙的に通信インタフェース14とネットワーク3を介して送受信を実現することとする。
プロセッサ装置10は、メモリ装置12に格納されているプログラムを実行、あるいはメモリ装置12に対するデータ44を読み書きする装置である。プロセッサ装置10は、各シミュレータ装置1’に複数台搭載されていても構わない。
メモリ装置12は、装置が使用する処理手段を格納および情報を記憶するための装置であり、モジュール本体など、モジュール実行中には内容の書換が強く制限されるモジュール領域60と、モジュールが扱う一時データなど、モジュール実行中において適切に内容が書き換えられるデータ領域61とを内包している。但し、これらの領域を必ずしも全ての様態で実現する必要はなく、便宜上図示しているにすぎないことに注意するべきである。
メモリ装置12には、ダイナミックラム(DRAM)などの揮発メモリによって構成される高速な読み書きが可能な記憶装置が適用されるが、アプリケーションが許すならば、ハードディスクドライブやSSD(Solid State Disk)などの不揮発性の大容量記憶装置を適用してもよいし、またはCD−R(Compact Disk Recordable)などのライトワンスメディアを適用しても構わない。また、メモリ装置12は、単一の装置から構成されている必要は無く、複数台、複数種の記憶装置をRAID(Redundant Arrays of Inexpensive Disks)のような並列構成あるいはJBOD(Just a Bunch Of Disks)のような直列構成に接続して実現しても構わない。
メモリ装置12のモジュール領域60には、コンポーネントの挙動をシミュレートするシミュレータモジュール100とコンポーネント間の通信をシミュレートするための仮想配線シミュレータモジュール101とが格納されている。仮想配線シミュレータモジュール101は、仮想的な通信路(仮想配線42’(図1には図示せず))のうち、使用する仮想配線42’を決定する仮想配線決定モジュール102と、仮想配線42’に送信する情報を暗号化する暗号モジュール104と、前記暗号モジュール104によって暗号化された情報を復号し、情報の参照を実現するための復号モジュール106と、を含む。
一方、データ領域61には、シミュレータ間の通信で用いられる暗号鍵42を含む鍵リスト40が格納されている。また、データ領域61には、シミュレータ間で通信されるデータ44が格納される。
鍵リスト40の構成例を図3に示す。鍵リスト40は、各シミュレータが用いる暗号鍵42の一次元の配列として実装され、図3の例では先頭からKa、Kb、Kcの順序で格納されている。ただし、これはあくまで実装の一例であり、暗号鍵42のそれぞれに対して一意に識別するためのキーと、キーをアドレスに指定する関数による連想配列などを用いてもよいし、順序性を持たない集合として扱ってもよいし、必要があればキューやスタックといった、参照・格納順に制約を設けたデータ構造で実装しても構わない。いずれにせよ、鍵リスト40に対して、キーを用いた暗号鍵参照は有限の時間で完了されればよい。
これらのモジュールあるいはデータ44はメモリ装置12に常に格納されている必要はなく、実行する際にネットワーク3を介して接続されたストレージ装置などの別の装置からロードされても構わないし、コンパイルモジュールを有する様態であれば、実行する際にプロセッサ装置10が解釈できるネイティブコードにソースファイルから変換して、メモリ装置12に配置しても構わない。メモリ装置12に格納されている各モジュールに関しては、各構成要素の説明後別途説明する。
通信バス16は、シミュレータ1’装置内の構成要素間でのデータ44の送受信を実現するための装置であり、CPUバスやアドレスバスなどの内部バスとSerial ATAやPCI Expressなどの拡張バスを接続して構成される装置である。有線の通信バスの例を挙げたが、配線の簡素化などを目的として無線で通信バス16を構成しても構わない。以降、メモリ装置12、プロセッサ装置10、及び通信インタフェース14間の通信において特に断りが無い場合は、暗黙的に通信バス16を介して送受信を実現する。
<各モジュールの説明>
以下、メモリ装置12に格納される各モジュールについて説明する。
<各モジュールの説明>
以下、メモリ装置12に格納される各モジュールについて説明する。
シミュレータモジュール100は、コンポーネントの状態や信号の送受信を、モジュール内部の状態変化やAPI(Application Program Interface)の呼び出しなどで代替し、ソフトウェア上でコンポーネントの動作を模擬的に実行するモジュールである。このシミュレータモジュール100が有する内部的情報や通信状況は企業ノウハウを多分に含んでいる。本実施例のシミュレーションシステム1000では、シミュレータモジュール100同士の通信を、仮想配線42’を介して行うことで、仮想配線42’に接続されていない他のシミュレータモジュール100やシミュレーションシステム1000に含まれないアプリケーションに対してデータ44が隠蔽される。仮想配線42’を実現するためのモジュールが、次に説明する仮想配線シミュレータモジュール101である。
仮想配線シミュレータモジュール101は、複数のAPI103を有するモジュールである。API103−a,b,c・・・のそれぞれは、コンポーネントに接続されている配線のそれぞれに対応する。シミュレータモジュール100は、その通信の用途に応じて自身が生成した信号をいずれかのAPI103に選択して入力する。
仮想配線決定モジュール102は、復号モジュール106によって復号された信号が正しく復号されているかどうか、確認するためのモジュールである。こうした復号の確認は、例えばチェックサムを用いる方法などが挙げられる。
暗号モジュール104は、入力された信号を一定の規則に従って変換し、復号手段を持たない装置から情報を抽出できなくするモジュールである。暗号には暗号表を用いた文字列置換方法や、素因数分解などの一方向性関数が有する、逆関数の計算が困難であることを利用した変換方法を用いてもよい。
復号モジュール106は、入力された信号を一定の規則に従って変換し、別の信号に変換するモジュールである。ここで注意するべきは、復号モジュール106自身は復号が成功したかどうか判定せず、入力された信号をただ規則に従って変換し出力するモジュールであることである。
鍵リスト40は、暗号モジュール104と復号モジュール106によってそれぞれ参照される、暗号化に用いる暗号鍵42を番号づけて管理したデータである。以降、本明細書においては、鍵リスト40中のi番目の暗号鍵42はKiと表現する。暗号モジュール104がKiを用いて暗号化した情報は復号モジュール106がKiを用いて暗号化前の情報として復号可能であるとし、また、異なる暗号鍵Kj(i≠j)では復号し得ないものとする。
<鍵管理サーバ装置2’の説明>
図4に、鍵管理サーバ2を実現する鍵管理サーバ装置2’の構成例を示す。鍵管理サーバ装置2’はシミュレータ装置1’と同じくプロセッサ装置10と、メモリ装置12と、通信インタフェース14と、これらの構成要素を接続する通信バス16と、を有する装置である。鍵管理サーバ装置2’は、情報処理装置であり、例えばサーバ装置である。
<鍵管理サーバ装置2’の説明>
図4に、鍵管理サーバ2を実現する鍵管理サーバ装置2’の構成例を示す。鍵管理サーバ装置2’はシミュレータ装置1’と同じくプロセッサ装置10と、メモリ装置12と、通信インタフェース14と、これらの構成要素を接続する通信バス16と、を有する装置である。鍵管理サーバ装置2’は、情報処理装置であり、例えばサーバ装置である。
それぞれの装置の動作はシミュレータ装置1’を構成する装置と同等であるため、説明を省略する。
<各モジュールの説明>
鍵管理サーバ装置2’のメモリ装置12に格納されるモジュールについて説明する。鍵生成モジュール110は、シミュレータ1が情報を暗号化あるいは復号する際に使用する暗号鍵42を生成するモジュールである。鍵生成モジュール110によって発行される暗号鍵42は、少なくともシミュレーション環境に実現される仮想配線42’にそれぞれユニークな値が割り振られるように構築されるようにする。
<各モジュールの説明>
鍵管理サーバ装置2’のメモリ装置12に格納されるモジュールについて説明する。鍵生成モジュール110は、シミュレータ1が情報を暗号化あるいは復号する際に使用する暗号鍵42を生成するモジュールである。鍵生成モジュール110によって発行される暗号鍵42は、少なくともシミュレーション環境に実現される仮想配線42’にそれぞれユニークな値が割り振られるように構築されるようにする。
ネットワーク管理モジュール112は、ネットワークマップ41を参照し、仮想配線42’を定義するモジュールである。仮想配線42’とは、コンポーネント同士の配線による接続を仮想的に記録した情報である。具体的には、仮想配線42’は、あるコンポーネントと接続している全てのコンポーネントの識別情報(ID)の集合として定義される。特にこの集合のサイズが2の場合、2つのコンポーネントはそれぞれが相互に接続され、また他のコンポーネントが接続されていない1:1の関係として接続されていることが示される。
ネットワークマップ41は、こうした仮想配線42’を人間が可視しやすい情報として記録された情報である。回路図のように幾何的に表されていてもよいし、何らかの言語で記述されていてもよい。
シミュレータ装置1’および鍵管理サーバ装置2’をそれぞれネットワーク接続し、起動することで、各装置のモジュールが相互に連携し、図1に示したようなシミュレーション環境が実現される。
<シミュレータの接続>
図1に示したシミュレーション環境において、鍵管理サーバ2が仮想配線42’を定義し、シミュレータの接続を確立する手順を説明する。
<シミュレータの接続>
図1に示したシミュレーション環境において、鍵管理サーバ2が仮想配線42’を定義し、シミュレータの接続を確立する手順を説明する。
図5は、ネットワークマップ41の一例であり、図1に示したシミュレーション環境に対応したものである。図5のネットワークマップ41においては、3つのシミュレータ1が有するシミュレータモジュール100のそれぞれによってシミュレートされる3つのコンポーネント100’が、仮想バスA、仮想バスB、及び仮想専用線の3本の仮想配線42’で接続されている。このように、仮想配線42’には、コンポーネントを接続する仮想バス及び仮想専用線が含まれる。また、有線配線ではなく、ワイヤレスLANのように無線配線を含んでいてもよい。また、コンポーネントAはシミュレータAで、コンポーネントBはシミュレータBで、コンポーネントCはシミュレータCで、それぞれ模擬される。すなわち、各シミュレータは、シミュレーション対象の各コンポーネントに対応している。
図6は、シミュレーション環境において初期状態を構成するための初期鍵発行処理S1の一例をフローチャートで示したものである。ステップS11では、鍵管理サーバ2のネットワーク管理モジュール112は、ネットワークマップ41を走査し、仮想配線42’のそれぞれに識別情報(ID)を割当てる。ステップS12では、鍵管理サーバ2のネットワーク管理モジュール112は、ネットワーク3に接続している全てのシミュレータ1とそれぞれセキュアなセッションを構築する。
ステップL10〜L11では、全ての仮想配線42’に対して以下のステップS13、S14を実行する。ステップS13では、仮想配線42’に対して鍵管理サーバ2の鍵生成モジュール110がユニークな暗号鍵42を生成する。ステップS14では、鍵管理サーバ2の鍵生成モジュール110は、対象の仮想配線42’に接続している全てのシミュレータ1に、ステップS13で生成した鍵を送信する。以上のステップで、鍵管理サーバ2は、シミュレータ間の仮想配線42’による接続に対応付けられた暗号鍵42のセットを各シミュレータ1に送信する。
図5に示した例では、シミュレーション環境は3本の仮想配線42’を有している。以降、便宜上、図5の仮想専用線を仮想配線42’−aと、仮想バスAを仮想配線42’−bと、仮想バスBを仮想配線42’−cと、それぞれ呼ぶ。図1および図5に示したシミュレーション環境においては、仮想配線42’−aに対して独自の暗号鍵42であるKaが発行され、また、仮想配線42’−aに対して、仮想配線シミュレータモジュール101が、API103−aを割当てる。仮想配線42’−b、cに対しても同様に、独自の暗号鍵42であるKb、Kcがそれぞれ発行され、また、仮想配線42’−b、cに対して、仮想配線シミュレータモジュール101が、API103−b、cをそれぞれ割当てる。図1および図5に示したシミュレーション環境においては、シミュレータAは仮想配線42’−a、bに、シミュレータBは仮想配線42’−bに、シミュレータCは仮想配線42’−a、cにそれぞれ接続されている。これを実現するため各シミュレータ1のシミュレータモジュール100は、自身が有する各配線への入出力信号を、各シミュレータ1の仮想配線シミュレータモジュール101のAPI103にそれぞれ接続する。
図1に示した例では、シミュレータAの鍵リスト40には、KaとKbが含まれ、シミュレータAのシミュレータモジュール100は、仮想配線シミュレータモジュール101のAPI103−a、bに接続されている。シミュレータBの鍵リスト40には、Kbが含まれ、シミュレータBのシミュレータモジュール100は、仮想配線シミュレータモジュール101のAPI103−bに接続されている。また、シミュレータCの鍵リスト40には、Ka、Kcが含まれ、シミュレータCのシミュレータモジュール100は、仮想配線シミュレータモジュール101のAPI103−a、cに接続されている。このように、各シミュレータ100の鍵リスト40に、暗号鍵42のセットが配置される。
鍵管理サーバ2は、上述のようにネットワークマップ41はメモリ装置12に保持しているが、生成した暗号鍵42はメモリ装置12に保持しない。これにより、鍵管理サーバ2のプロテクトが突破された場合でも、シミュレーションシステム1000に配置されている鍵42が読み取られることを防ぐことができる。
シミュレーションシステム1000のデータ44の送受信方法を、図7、8を用いて説明する。図7は、データ送信処理S5の実装例である。ステップS51では、仮想配線決定モジュール102は、自身が有するAPI103を監視し、シミュレータモジュール100から送信されてくる信号を検知する。ステップC51では、仮想配線決定モジュール102は、信号を受信したAPI103に対応した暗号鍵42が鍵リスト40に格納されているか確認する。
ステップC51でAPI103に対応する暗号鍵42であるKiが鍵リスト40に格納されている場合、ステップS52で、仮想配線決定モジュール102はAPI103から取得したデータ44を暗号モジュール104に渡し、暗号モジュール104はKiを用いてデータ44を暗号化する。さらに、ステップS53で、暗号モジュール104は、暗号化したデータ44を通信インタフェース14を介し、接続しているネットワーク3にブロードキャストする。そして、ステップS510で、データ送信処理S5を終了する。
ステップC51でAPI103に対応する暗号鍵42であるKiが鍵リスト40に格納されていない場合、ステップS54で、仮想配線決定モジュール102は受信したデータ44を破棄し、続いて、ステップS51でAPI103の監視を再開する。
次に、データ44の受信処理について説明する。
図8は、データ受信処理S6の実装例である。ステップS61で、復号モジュール106は、通信インタフェース14を介して、暗号化されたデータ44を受信する。ステップS62で、復号モジュール106は、受信した暗号化されたデータ44を、自身が属するシミュレータ1に与えられて鍵リスト40に含まれている暗号鍵42を用いて、復号することを試みる。本実施例においては、この復号処理を鍵リスト40に含まれている全ての暗号鍵42について並列実行することで、同クロックに復号されたデータ44を取得することを期待しているが、それぞれの復号処理が十分短時間で終了し、鍵リスト40の最初と最後に格納された暗号鍵42を用いた復号結果が同時に終了したとみなせるのであれば、逐次的処理で実装しても構わない。ステップS63で、仮想配線決定モジュール102は、それぞれの復号処理を施されたデータ44の復号成功可否を判定する。
ステップC61で復号に成功したデータ44がある場合、ステップS64で、復号に成功した暗号鍵42に対応するAPI103の出力信号を変更し、データ受信処理S6を終了する(ステップS610)。これにより、シミュレータ1は復号されたデータ44を受信することができる。一方、ステップC61で復号に成功したデータ44がない場合、ステップS610でデータ受信処理S6を終了する。
データ送信処理S5とデータ受信処理S6の2つの処理を用いて、各シミュレータモジュール100は、仮想配線42’上での通信を実現する。各シミュレータ1から他のシミュレータ1に送信されるデータ44はブロードキャストで発行され、受信するシミュレータ1が受信可否を決定するため、仮想配線42’に送信されたデータ44は、その仮想配線42’に接続されている機器を模したシミュレータ全てにほぼ同時に到着する。このほぼ同時にデータ44が到着する特長は、それぞれが独自のクロックで動作する複雑なコンポーネントの組合せのシミュレーションにとって有用である。
なお、各シミュレータモジュール100は、元来接続する必要のない仮想配線42’に接続してもよい。例えば図1および図5の例では、シミュレータCが、仮想配線シミュレータモジュール101が提供するAPI103−bに接続してもよい。なぜなら、仮想配線42’−bを流れるデータ44を暗号化しているKbが鍵管理サーバ2によってシミュレータCには発行されていないため、シミュレータCは観測している情報を復号できないため、結果的に、仮想配線42’−bからは断絶される。
一方、他のシミュレータモジュール100の妨害などを目的として、接続する必要のない仮想配線42’に対して、無作為に情報を流すような場合においては、送信元のシミュレータ1の鍵リスト40に、対応する暗号鍵42が無い限り、ネットワーク3への情報送信が許可されない。よしんば、暗号鍵42が無い状態でのデータ44送信が許容される様態であったとしても、その場合は、受信側が正しく復号できないため、データ44は受理されず破棄される。これらの処理によって、本発明によるシミュレーション方法においては、データ44の隠ぺいと、安全性を確保する。
本実施例のシミュレーションシステムでは、各仮想配線に対してユニークな鍵が与えられる。したがって、仮にそのうちの一つの鍵によるプロテクトが突破されたとしても、すべてのシミュレータ間の通信が漏えいすることにはならない。このように、本実施例のシミュレーションシステムは、高い安全性を提供することができる。
実施例1で説明したシミュレーションシステムで各仮想配線に対して与えられている鍵毎に、鍵交換をして鍵を更新し、さらに高い安全性を実現する実施例を説明する。
<鍵交換処理>
実施例1では、データ44の送受信の安全性について説明したが、その中で説明したように任意のシミュレータ1は、自身が接続していない仮想配線42’上のデータ44を受信することが可能である。それぞれのシミュレータ1は仮想配線シミュレータモジュール101によって、復号確認の手段を有しているため、ブルートフォースアタックなどの暗号突破手段を用いれば、一定の計算量で任意の仮想配線42’上のデータ44を復号可能である。そこで、本実施例においては鍵交換プロセスによるセキュリティレベルの担保について説明する。
<鍵交換処理>
実施例1では、データ44の送受信の安全性について説明したが、その中で説明したように任意のシミュレータ1は、自身が接続していない仮想配線42’上のデータ44を受信することが可能である。それぞれのシミュレータ1は仮想配線シミュレータモジュール101によって、復号確認の手段を有しているため、ブルートフォースアタックなどの暗号突破手段を用いれば、一定の計算量で任意の仮想配線42’上のデータ44を復号可能である。そこで、本実施例においては鍵交換プロセスによるセキュリティレベルの担保について説明する。
図9に、図1に示したシミュレーション環境に適用可能な鍵交換処理の一例として、鍵交換処理S7を示す。各シミュレータ1がある時刻において、鍵リスト40に格納している暗号鍵42をカッコ内に示す。また、ブロードキャストについては実線の矢印で示すのに対して、対象を指定するユニキャストあるいはマルチキャストに関しては、一点鎖線の矢印を用いて表現する。
初期状態においては、図1で説明した状態と同様である。以下、仮想配線42’−bに接続するための暗号鍵42であるKbを異なる鍵Kb’に変更するプロセスを示す。
既に述べたように、鍵管理サーバ2は自身のプロテクトが突破された際に全ての暗号鍵42が読みとられることを防止するために、仮想配線42’に接続されているシミュレータ1についてはネットワークマップ41に記録しているが、その仮想配線42’に接続するための暗号鍵42は記録していない。
そこで、鍵管理サーバ2は、暗号鍵42の取得を実施するために、ネットワークマップ41を参照し、対象とする仮想配線42’に接続している任意のシミュレータ1(本実施例においてはシミュレータA)に対して、暗号鍵42であるKbの変更要求を発行する(P71)。Kbの変更要求を受信したシミュレータAは、鍵管理サーバ2にKbを送信する(P72)。このプロセスは例えば公開鍵交換プロセスなどの十分セキュアなアルゴリズムで実現すればよい。鍵管理サーバ2は、鍵生成機能を用いてKbに換わるKb’を生成する(S721)。
鍵管理サーバ2は、生成したKb’を暗号鍵42であるKbを用いて暗号化しブロードキャストする(P73)。このプロセスによって、Kb’を取得できるのはKbをあらかじめ有している、シミュレータA、Bのみである。それぞれのシミュレータ1は、Kb’を受信したことを鍵管理サーバ2にユニキャストする(P74)。鍵管理サーバ2は、ネットワークマップ41を参照し、仮想配線42’−bに接続しているすべてのシミュレータ1がKb’を受信したかどうかを確認できるまで、すなわちP74での各シミュレータ1からのユニキャストの送信を受信できるまで、次の処理を待機する(S722)。この処理によって、鍵交換処理S7によって仮想配線42’からシミュレータ1が除外されることを防止することができる。
鍵管理サーバ2は、暗号鍵42であるKbを用いて鍵変更指示をブロードキャストする(P79)。鍵変更の指示を復号できたシミュレータ1は、鍵リスト40に格納されている、該当する暗号鍵42であるKbをKb’に変更する(S711)。以降、シミュレーション環境において、Kbは無効となる。最後に、鍵管理サーバ2は、鍵管理サーバ2内にあるKbを破棄し、鍵交換処理S7を終了する(S723)。
昨今のハードウェアテストにおいては、故障時のフェイルオーバ性やフォールストレラント性の確認も要求されている。故障の一つとして、配線の故障による送受信信号の変化あるいは断絶がある。本実施例においては、実施例2で説明した鍵交換処理を用いて、配線故障をシミュレーションする方法について説明する。
図10に、実施例2で説明した鍵交換処理S7を用いて配線故障シミュレーションを実現する処理のシーケンスの一例として、鍵交換処理S7’を示す。実施例2の鍵交換処理S7と同様に、鍵管理サーバ2は鍵変更(Kbに対して)を要求し(P71)、任意のシミュレータ1(図10ではシミュレータ1A)が対象となる暗号鍵42(Kb)を鍵管理サーバ2に送信し(P72)、その後鍵管理サーバ2が新たな暗号鍵42(Kb’)を生成する(S721)。
P73’からが実施例2の鍵交換処理S7と異なる処理である。実施例2では新しい暗号鍵42(Kb’)を古い暗号鍵42(Kb)を用いて暗号化し、ブロードキャストしていたが、本実施例では任意のシミュレータ1にユニキャストあるいはマルチキャストする(P73’)。新しい暗号鍵42を受信し、復号できたシミュレータ1(図10ではシミュレータA)は、実施例2の鍵交換処理S7と同様に、Kb’の受信確認を鍵管理サーバ2に送信する(P74)。その一方で、鍵管理サーバ2は、生成した新しい暗号鍵42(Kb’)にノイズNを加えて、Kb”を生成する(S721)。
このKb”の特徴は次の(1)、(2)の2つである。(1)Kb’とノイズNを用いて一意に生成可能である。(2)Kb’で暗号化されたデータ44をKb”で復号した際、復号成功と判定されるが、元データ44が正しく取得できることは保証されない。
このようなKb”の特性を実現するには、例えば排他的論理和(XOR)を使ってデータ44を変換する方法などを用いればよい。例えば、8ビットのデータ44に対して8ビットの復号成功信号を末尾に付与し、16ビットの暗号鍵42のK’とXORした結果を暗号化されたデータ44とする方法においては、8ビットのノイズNを生成し、K’の上位8ビットとXOR演算などの論理演算を施すことで、上述の(1)と(2)の特徴を実現するK”を提供できる。
鍵管理サーバ2は、P73’で暗号鍵42であるKb’を送付しなかったシミュレータ1(図10ではシミュレータB)に、ノイズNを付与した暗号鍵42であるKb”をKbで暗号化し、ユニキャストもしくはマルチキャストする(P75)。Kb”を受信したシミュレータBは、受信確認を鍵管理サーバ2へ送信する(P76)。P74とP76により、実施例2と同様に、鍵管理サーバ2が、仮想配線42’−bに接続しているシミュレータ1の全てが暗号鍵42を受信できたかを確認できる(S722)。その後、鍵管理サーバ2は、実施例2と同様に、各シミュレータ1に鍵の変更を指示し(P79)、元の暗号鍵42であるKbを破棄する(S723)。
鍵管理サーバ2は、ノイズNを、ノイズNを与えた仮想配線42’とシミュレータ1を一意に特定できる情報とともに、鍵管理サーバ装置2’のメモリ装置12に格納しておく。格納方法の一例としてノイズデータベース30を図11に示す。ノイズデータベース30は、仮想配線42’とシミュレータ1がそれぞれID管理されている場合に、どのシミュレータ1の暗号鍵42にどのようなノイズNが付与されているか関連付けて記録するためのデータベースである。図11のノイズデータベースでは、仮想配線ID31、シミュレータID32、およびノイズ33の組をエントリとしており、仮想配線ID31には仮想配線42’−bを示す「b」が、シミュレータIDにはシミュレータBを示す「B」が、ノイズ33には8ビットのノイズNの「00010000」が格納されている。このノイズデータベース30を用いれば、再び仮想配線42’−bの暗号鍵42を変更する際に、受信したKb”とノイズNを参照し、Kb’を再度生成することで、シミュレータBに与えた配線故障を回復したり、他のシミュレータ1にノイズを付与したりするなどを実現できる。
以上の処理により、一部にはノイズが付与された信号が到着あるいは発信されるシミュレータ1が仮想配線42’に接続され、配線故障を模擬することができる。すなわち、シミュレータ1に与えられた鍵のセットに含まれる鍵の内の一部の鍵を変更することで、通信故障を模擬することができる。この配線故障の導入は、実施例2の鍵交換と同様に行われるので、セキュリティのレベルを高く保ちつつ、実行することができる。
実施例1では、シミュレーション環境において、各シミュレータ1に信号が到着する時刻の同時性について、述べてきた。しかしながら、実際のハードウェア回路においては、配線長に応じた到着時刻のズレや信号の立ち上がりなどで個々のコンポーネントへの信号到着時刻に厳密には遅れが生じる。こうした信号到着の遅れを模擬する方法を述べる。
図12は、本実施例の鍵リスト40の実現例である。図12の各暗号鍵42は、任意の数に分割され、分割されて記録される。ここで、Knの部分暗号鍵であるKn.1〜Kn.mのそれぞれを暗号化されたデータ44に対して適用して逐次復号すれば、Knで復号されたものと同じデータ44が再現できるものとする。たとえば、8bitのXOR暗号鍵42を用いる実装においては、暗号鍵42を最大8個にまで分割し、各ビット情報をKn.1、Kn.2…、Kn.8として記録すればよい。これらのKn.1〜Kn.8を暗号化されたデータ44にそれぞれXOR演算することで、元の暗号鍵42であるKnで復号したのと同様の復号結果を得られる。
なお、鍵リスト40に対してキーを用いて暗号鍵42を参照する際、任意の数に分割された暗号鍵42を集合として取得することができるのであれば、本実施例のように必ずしも2次元の配列として記録する必要はなく、それぞれが連想配列として記録されていてもよいし、順序を持たない集合として記録されていてもよい。
図13に本実施例のデータ受信処理S6’を示す。本実施例においても、図8に示したデータ受信処理S6と同様に、受信されたデータ44は各暗号鍵42で並列復号されるが、この際に暗号鍵42が分割されている場合、逐次的に復号処理が実施される(S62’)。各復号処理に係るクロックが同等であれば、2つに分割された暗号鍵42であるKbでの復号は任意の分割されていないKiでの復号処理に比べて処理完了に2倍の時間を要する。この処理時間の違いが、ネットワーク遅延として再現される。
図14に、鍵分割プロセスを含む鍵交換処理S7”を示す。実施例2および実施例3と同様に、鍵管理サーバ2が特定の仮想配線42’(図14では仮想配線42’−b)に属する任意のシミュレータ1(図14ではシミュレータA)に対して、鍵変更を要求し、暗号鍵42であるKbを取得し(P72)、新しい暗号鍵42であるKb’を生成する(S721)。こうして生成された新しい暗号鍵42であるKb’は第3実施例と同様に、一部のシミュレータ1に対して、ユニキャストあるいはマルチキャストされる(P73’)。新しい暗号鍵42を受信し、復号できたシミュレータ1(図14ではシミュレータA)は、実施例2の鍵交換処理S7と同様に、Kb’の受信確認を鍵管理サーバ2に送信する(P74)。
次に、鍵生成モジュール110は、暗号鍵42(図14ではKb’)を任意の数に分割する。分割数の決定は、ネットワークマップ41に記載された配線長などから決定してもよいし、各シミュレータ1のハードウェア的処理速度の違いなどから決定してもよい。そして、ネットワーク遅延を再現したいシミュレータ1(図14ではシミュレータB)に対して、分割された鍵を送信する。分割された鍵を受信したシミュレータBは、受信確認を鍵管理サーバ2へ送信する(P78)。
以降、実施例2および実施例3と同様に、仮想配線42’−bに属するシミュレータ1全てに対して受信を確認し(S722)、鍵変更を指示し(P79)、古い暗号鍵42であるKbを破棄して(S723)、鍵交換処理S7を終了する。
以上の処理により、一部には遅延のある信号が到着あるいは発信されるシミュレータ1が仮想配線42’に接続され、信号遅延を模擬することができる。すなわち、シミュレータ1に与えられた鍵のセットに含まれる鍵の内の一部の鍵を分割することで、信号遅延を模擬することができる。この信号遅延の導入は、実施例2の鍵交換と同様に行われるので、セキュリティのレベルを高く保ちつつ、実行することができる。
1:シミュレータ、2:鍵管理サーバ、3:ネットワーク、100:シミュレータモジュール、101:仮想配線シミュレータモジュール、40:鍵リスト、42:暗号鍵、44:データ、S5:データ送信処理、S6:データ受信処理、S7:鍵交換処理
Claims (4)
- ネットワークで接続されている複数の情報処理装置上で動作するシミュレータ間の通信方法であって、
各シミュレータに、各シミュレータが接続される他のシミュレータへの仮想配線に対応する鍵のセットを与え、
前記複数のシミュレータの内の第1シミュレータが、データを前記第1シミュレータに接続されている仮想配線の内の一に送信する際に、前記第1シミュレータに与えられている前記鍵のセットの内、該一に対応する鍵で該データを暗号化し、前記ネットワークに送信し、
前記複数のシミュレータの内の第2シミュレータに与えられた鍵のセットに含まれる鍵の内の一部の鍵を変更することで、通信故障を模擬することを特徴とするシミュレータ間の通信方法。 - ネットワークで接続されている複数の情報処理装置上で動作するシミュレータ間の通信方法であって、
各シミュレータに、各シミュレータが接続される他のシミュレータへの仮想配線に対応する鍵のセットを与え、
前記複数のシミュレータの内の第1シミュレータが、データを前記第1シミュレータに接続されている仮想配線の内の一に送信する際に、前記第1シミュレータに与えられている前記鍵のセットの内、該一に対応する鍵で該データを暗号化し、前記ネットワークに送信し、
前記複数のシミュレータの内の第2シミュレータに与えられた鍵のセットに含まれる鍵の内の一部の鍵を分割することで、信号到着遅れを模擬することを特徴とするシミュレータ間の通信方法。 - 複数の情報処理装置上で動作するシミュレーションシステムであって、
前記複数の情報処理装置の内の一で実行される鍵管理サーバを有し、
前記鍵管理サーバは、
前記複数の情報処理装置で実行される複数のシミュレータ間の接続に対応付けられた暗号鍵のセットを各シミュレータに送信し、
前記鍵管理サーバは、前記複数のシミュレータの内の第1シミュレータに与えられた鍵のセットに含まれる鍵の内の一部の鍵を変更することで、通信故障を模擬することを特徴とするシミュレーションシステム。 - 複数の情報処理装置上で動作するシミュレーションシステムであって、
前記複数の情報処理装置の内の一で実行される鍵管理サーバを有し、
前記鍵管理サーバは、
前記複数の情報処理装置で実行される複数のシミュレータ間の接続に対応付けられた暗号鍵のセットを各シミュレータに送信し、
前記複数のシミュレータの内の第1シミュレータに与えられた鍵のセットに含まれる鍵の内の一部の鍵を分割することで、信号到着遅れを模擬することを特徴とするシミュレーションシステム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/070143 WO2014024265A1 (ja) | 2012-08-08 | 2012-08-08 | シミュレータ間の通信方法およびシミュレーションシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5908088B2 true JP5908088B2 (ja) | 2016-04-26 |
JPWO2014024265A1 JPWO2014024265A1 (ja) | 2016-07-21 |
Family
ID=50067549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014529189A Expired - Fee Related JP5908088B2 (ja) | 2012-08-08 | 2012-08-08 | シミュレータ間の通信方法およびシミュレーションシステム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5908088B2 (ja) |
WO (1) | WO2014024265A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11570058B1 (en) * | 2021-10-05 | 2023-01-31 | Bank Of America Corporation | Auto simulation of connectivity checks from the client side |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009545785A (ja) * | 2006-06-27 | 2009-12-24 | インテル・コーポレーション | システムオンチップデバイスにおけるデータパスセキュリティのためのシステムおよび技術 |
JP2011022702A (ja) * | 2009-07-14 | 2011-02-03 | Internatl Business Mach Corp <Ibm> | シミュレーション方法、システム及びプログラム |
-
2012
- 2012-08-08 WO PCT/JP2012/070143 patent/WO2014024265A1/ja active Application Filing
- 2012-08-08 JP JP2014529189A patent/JP5908088B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009545785A (ja) * | 2006-06-27 | 2009-12-24 | インテル・コーポレーション | システムオンチップデバイスにおけるデータパスセキュリティのためのシステムおよび技術 |
JP2011022702A (ja) * | 2009-07-14 | 2011-02-03 | Internatl Business Mach Corp <Ibm> | シミュレーション方法、システム及びプログラム |
Non-Patent Citations (1)
Title |
---|
JPN6015049338; Stytz, M. R. and Banks, S. B.: 'ENABLING DISTRIBUTED SIMULATION MULTI-LEVEL SECURITY USING VIRTUAL MACHINE AND VIRTUAL PRIVATE NETWO' PROSEEDINGS OF SPIE Vol. 6570, 2007, p.65700B-1-12 * |
Also Published As
Publication number | Publication date |
---|---|
JPWO2014024265A1 (ja) | 2016-07-21 |
WO2014024265A1 (ja) | 2014-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230351062A1 (en) | Recovering data from encoded data slices interspersed with auxiliary data | |
US11036392B2 (en) | Determining when to use convergent encryption | |
US10325110B2 (en) | Distributing registry information in a dispersed storage network | |
US10171243B2 (en) | Self-validating request message structure and operation | |
US9740730B2 (en) | Authorizing distributed task processing in a distributed storage network | |
US10095441B2 (en) | End-to-end secure data retrieval in a dispersed storage network | |
US11301592B2 (en) | Distributed storage with data obfuscation and method for use therewith | |
US8401186B2 (en) | Cloud storage data access method, apparatus and system based on OTP | |
US10409771B2 (en) | Hardware authentication in a dispersed storage network | |
US8914669B2 (en) | Secure rebuilding of an encoded data slice in a dispersed storage network | |
US8861727B2 (en) | Storage of sensitive data in a dispersed storage network | |
US20170250809A1 (en) | Cryptographic key storage in a dispersed storage network | |
US20120137091A1 (en) | Selecting a memory for storage of an encoded data slice in a dispersed storage network | |
US20170019253A1 (en) | Decrypting segmented data in a distributed computing system | |
Anglano et al. | Exploiting rateless codes in cloud storage systems | |
US20240202354A1 (en) | Dynamic Data Storage Based on Estimated Update Frequency | |
US20180034639A1 (en) | Multiple credentials for mitigating impact of data access under duress | |
JP5908088B2 (ja) | シミュレータ間の通信方法およびシミュレーションシステム | |
US10644874B2 (en) | Limiting brute force attacks against dispersed credentials in a distributed storage system | |
US20190205211A1 (en) | Encoding data in a dispersed storage network | |
US11360851B2 (en) | Duplicating authentication information between connections | |
CN111130788A (zh) | 数据处理方法和系统、数据读取方法和iSCSI服务器 | |
JP2011035618A (ja) | 秘密分散装置、秘密分散方法、および秘密分散プログラム | |
CN117220859A (zh) | 密钥迁移方法、装置、设备及存储介质 | |
JP2023534480A (ja) | セキュアなメッセージを再生する方法および再生ユニット |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160202 |
|
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: 20160223 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160322 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5908088 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |