(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-28
(45)【発行日】2022-12-06
(54)【発明の名称】試験システム、試験方法および試験プログラム
(51)【国際特許分類】
G06F 21/57 20130101AFI20221129BHJP
G06F 11/36 20060101ALI20221129BHJP
【FI】
G06F21/57
G06F11/36 196
(21)【出願番号】P 2021534870
(86)(22)【出願日】2019-07-19
(86)【国際出願番号】 JP2019028534
(87)【国際公開番号】W WO2021014511
(87)【国際公開日】2021-01-28
【審査請求日】2021-11-02
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】山本 剛
(72)【発明者】
【氏名】楠本 哲也
【審査官】平井 誠
(56)【参考文献】
【文献】特開2001-154879(JP,A)
【文献】米国特許第9584325(US,B1)
【文献】特開2002-223209(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/57
G06F 11/36
(57)【特許請求の範囲】
【請求項1】
IDベース暗号を用いた開発対象のソフトウェアの入力を受け付ける情報処理装置と、前記ソフトウェアを試験するシミュレーション装置とを含む試験システムであって、
前記シミュレーション装置が、
秘密情報を記憶する記憶部と、
前記記憶部に記憶された秘密情報を用いてIDごとの秘密鍵を生成する鍵生成部と、
平文およびIDを含む暗号化要求を受け付けた場合には、当該IDに対応する秘密鍵を用いて前記平文を暗号化する暗号化部と、
暗号文および秘密鍵を含む復号化要求を受け付けた場合に、当該秘密鍵を用いて前記暗号文を復号化する復号化部と、
前記暗号化部によって行われた暗号化処理および前記復号化部によって行われた復号化処理に関する処理結果を試験結果として出力する出力部と
を有することを特徴とする試験システム。
【請求項2】
前記IDベース暗号が適用される被試験システムをさらに有し、
前記情報処理装置は、前記ソフトウェアのコードに予め設定された属性情報に応じて、前記シミュレーション装置によって前記ソフトウェアが実行されるのか、前記被試験システムによって前記ソフトウェアが実行されるのかを判定し、判定結果に基づいて前記ソフトウェアを前記シミュレーション装置または前記被試験システムに実行させる実行部を有することを特徴とする請求項1に記載の試験システム。
【請求項3】
前記IDベース暗号が適用される被試験システムをさらに有し、
前記情報処理装置は、前記ソフトウェアが前記被試験システムによって実行され、前記ソフトウェアについて異常が発生した場合には、前記シミュレーション装置に前記ソフトウェアを実行させ、前記シミュレーション装置による試験結果を取得する取得部を有することを特徴とする請求項1に記載の試験システム。
【請求項4】
IDベース暗号を用いた開発対象のソフトウェアを試験するシミュレーション装置によって実行される試験方法であって、
記憶部に記憶された所定の秘密情報を用いてIDごとの秘密鍵を生成する鍵生成工程と、
平文およびIDを含む暗号化要求を受け付けた場合には、当該IDに対応する秘密鍵を用いて前記平文を暗号化する暗号化工程と、
暗号文および秘密鍵を含む復号化要求を受け付けた場合に、当該秘密鍵を用いて前記暗号文を復号化する復号化工程と、
前記暗号化工程によって行われた暗号化処理および前記復号化工程によって行われた復号化処理に関する処理結果を試験結果として出力する出力工程と
を含むこと特徴とする試験方法。
【請求項5】
記憶部に記憶された所定の秘密情報を用いてIDごとの秘密鍵を生成する鍵生成ステップと、
平文およびIDを含む暗号化要求を受け付けた場合には、当該IDに対応する秘密鍵を用いて前記平文を暗号化する暗号化ステップと、
暗号文および秘密鍵を含む復号化要求を受け付けた場合に、当該秘密鍵を用いて前記暗号文を復号化する復号化ステップと、
前記暗号化ステップによって行われた暗号化処理および前記復号化ステップによって行われた復号化処理に関する処理結果を試験結果として出力する出力ステップと
をコンピュータに実行させることを特徴とする試験プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、試験システム、試験方法および試験プログラムに関する。
【背景技術】
【0002】
従来、Webシステム開発などのシステム開発においては、ソフトウェアの品質管理と品質向上のために、試験工程を多量に繰り返す手法がある。そのために、試験工程の一部または全部を自動化することが知られている(例えば、非特許文献1参照)。
【0003】
また、暗号技術を用いたソフトウェアの開発について、暗号化のための秘密鍵を配布し管理する工程が含まれる。この鍵の配布と管理の工程においては、ユーザが確認する必要がある工程が含まれる。
【先行技術文献】
【非特許文献】
【0004】
【文献】“Selenium Documentation”、Introduction Test Automation for Web Applications、[online]、[2019年7月9日検索]、インターネット<https://www.seleniumhq.org/docs/01_introducing_selenium.jsp#test-automation-for-web-applications>
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来の暗号化技術を用いたソフトウェアの開発において、試験工程を自動化することができず、開発を効率よく行うことが出来ない場合があるという課題があった。つまり、従来の暗号化技術を用いたソフトウェアの開発では、鍵の配布と管理の工程において確認工程が含まれるため、試験の自動化が難しい。
【0006】
例えば、IDベース暗号を用いたシステムにおいて、鍵発行センタが存在し、エンティティごとにIDに応じた秘密鍵を配布する。その際に、エンティティがそのIDを正当に保持しているかどうかを、鍵発行センタが確認する。
【0007】
ここで、IDの正当性の確認のためのプロセスは、エンティティの物理的な性質や、製品の種類、機能によって大きく異なる。したがって、IDの正当性確認のためのプロセスを一律に自動化することは難しい。また、IDベース暗号を用いたシステムにおいて、エンティティは鍵発行センタから秘密鍵の配布を受ける必要があるため、試験工程の自動化が難しくなる。したがって、暗号技術を用いたシステム開発では試験を一定以上に効率化することが難しくなるという問題があった。
【課題を解決するための手段】
【0008】
上述した課題を解決し、目的を達成するために、本発明の試験システムは、IDベース暗号を用いた開発対象のソフトウェアの入力を受け付ける情報処理装置と、前記ソフトウェアを試験するシミュレーション装置とを含む試験システムであって、前記シミュレーション装置が、秘密情報を記憶する記憶部と、前記記憶部に記憶された秘密情報を用いてIDごとの秘密鍵を生成する鍵生成部と、平文およびIDを含む暗号化要求を受け付けた場合には、当該IDに対応する秘密鍵を用いて前記平文を暗号化する暗号化部と、暗号文および秘密鍵を含む復号化要求を受け付けた場合に、当該秘密鍵を用いて前記暗号文を復号化する復号化部と、前記暗号化部によって行われた暗号化処理および前記復号化部によって行われた復号化処理に関する処理結果を試験結果として出力する出力部とを有することを特徴とする。
【発明の効果】
【0009】
本発明によれば、暗号化技術を用いたソフトウェアの開発において、開発を効率よく行うことができるという効果を奏する。
【図面の簡単な説明】
【0010】
【
図1】
図1は、第1の実施形態に係る試験システムの構成の一例を示す図である。
【
図2】
図2は、鍵生成部による鍵生成処理を説明する図である。
【
図3】
図3は、暗号化部による暗号化処理を説明する図である。
【
図4】
図4は、復号化部による復号化処理を説明する図である。
【
図5】
図5は、第1の実施形態に係るシミュレーション装置における処理の流れの一例を示すフローチャートである。
【
図6】
図6は、第2の実施形態に係る試験システムの構成の一例を示す図である。
【
図7】
図7は、第2の実施形態に係る試験システムの試験処理の概要を説明するための図である。
【
図8】
図8は、第3の実施形態に係る試験システムの構成の一例を示す図である。
【
図9】
図9は、第3の実施形態に係る試験システムの試験処理の概要を説明するための図である。
【
図10】
図10は、試験プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【0011】
以下に、本願に係る試験システム、試験方法および試験プログラムの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態により本願に係る試験システム、試験方法および試験プログラムが限定されるものではない。
【0012】
[第1の実施形態]
以下の実施の形態では、第1の実施形態に係る試験システム100の構成、シミュレーション装置10の処理の流れを順に説明し、最後に第1の実施形態による効果を説明する。
【0013】
[試験システムの構成]
まず、
図1を用いて、試験システム100の構成について説明する。
図1は、第1の実施形態に係る試験システムの構成の一例を示す図である。
図1に例示するように、試験システム100は、シミュレーション装置10と情報処理装置20とを有する。また、シミュレーション装置10と情報処理装置20とは、ネットワーク30を介して互いに接続されている。
【0014】
シミュレーション装置10は、情報処理装置20によって受け付けられたIDベース暗号の暗号技術を用いた開発対象のソフトウェアを、ターゲットシステムを模擬したシミュレーション環境において、シミュレートする。ここで、シミュレーション装置10は、開発対象のソフトウェアをシミュレートする際に、情報処理装置20に記憶されている関数を取得する。ここで、関数とは、独立して機能するひとまとまりのプログラムコードのブロックのことを示す。なお、IDベース暗号の具体的な方式については、どのような方式であってもよく、例えば、Boneh Franklin方式を適用してもよい。
【0015】
そして、シミュレーション装置10は、IDベース暗号に関する暗号化処理および復号化処理のシミュレーションを実行し、暗号化処理および復号化処理に関する処理結果を試験結果として情報処理装置20に出力する。例えば、シミュレーション装置10は、暗号化処理および復号化処理において、正しい入力に対して、正しい出力を行うことができるかを試験する。また、例えば、シミュレーション装置10は、暗号化処理および復号化処理において、正しくない入力に対して、適正にエラーを出力することができるかを試験する。
【0016】
情報処理装置20は、IDベース暗号を用いた開発対象のソフトウェアの入力を受け付ける。例えば、情報処理装置20は、IDベース暗号に関するソフトウェアの開発者により作成されたプログラムのソースコードを受け付け、試験対象のデータとしてシミュレーション装置10に送信する。また、情報処理装置20は、シミュレーション装置10から試験結果を受信し、試験結果を表示する。例えば、情報処理装置20は、試験結果として、開発対象のソフトウェアのIDベース暗号の暗号化処理および復号化処理について不具合の有無や、不具合の内容等を表示する。
【0017】
シミュレーション装置10は、通信部11、記憶部12および制御部13を有する。以下にシミュレーション装置10が有する各部の処理を説明する。
【0018】
通信部11は、ネットワーク等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースである。通信部11は、NIC(Network Interface Card)等で実現され、LAN(Local Area Network)やインターネットなどの電気通信回線を介した他の装置との間の通信を行う。例えば、通信部11は、情報処理装置20から試験対象のソースコードを受信する。また、例えば、通信部11は、IDベース暗号の暗号化処理および復号化処理についての試験結果を情報処理装置20に送信する。
【0019】
また、記憶部12は、制御部13による各種処理に必要なデータおよびプログラムを格納する。例えば、記憶部12は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置などである。記憶部12は、IDベース暗号の処理に必要な各種データを記憶する。例えば、記憶部12は、所定の秘密情報Xを記憶する。この秘密情報Xは、後述する鍵生成部12aによって秘密鍵を生成する際に、読み出される。
【0020】
制御部13は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。例えば、制御部13は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路やASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路である。また、制御部13は、鍵生成部13a、暗号化部13b、復号化部13cおよび出力部13dを有する。
【0021】
鍵生成部13aは、記憶部12に記憶された秘密情報を用いてIDごとの秘密鍵を生成する。ここで
図2を用いて、鍵生成部13aによる鍵生成処理を説明する。
図2は、鍵生成部による鍵生成処理を説明する図である。
図2に例示するように、例えば、鍵生成部13aは、IDの入力を受け付けると、記憶部12から秘密情報Xを読み出し、秘密鍵を用いて、秘密鍵H(X||ID)を生成する。ここで、Hとはハッシュ関数である。
【0022】
暗号化部13bは、平文およびIDを含む暗号化要求を受け付けた場合には、当該IDに対応する秘密鍵を用いて平文を暗号化する。例えば、暗号化部13bは、IDベース暗号の暗号化について、AES(Advanced Encryption Standard)のような共通鍵ブロック暗号方式を用いて、(X||ID)を秘密鍵として暗号化を行う。
【0023】
ここで
図3を用いて、暗号化部13bによる暗号化処理を説明する。
図3は、暗号化部による暗号化処理を説明する図である。
図3に例示するように、例えば、暗号化部13bは、平文およびIDの入力を受け付けると、IDに対応する秘密鍵を用いて平文を暗号化し、暗号文を出力する。
【0024】
復号化部13cは、暗号文および秘密鍵を含む復号化要求を受け付けた場合に、当該秘密鍵を用いて暗号文を復号化する。例えば、復号化部13cは、復号化について、(X||ID)を秘密鍵として復号化を実現する。
【0025】
ここで
図4を用いて、復号化部13cによる復号化処理を説明する。
図4は、復号化部による復号化処理を説明する図である。
図4に例示するように、例えば、復号化部13cは、暗号文と秘密鍵とを受け付けると、秘密鍵を用いて暗号文を復号化し、復号化に成功した場合には、復号化されたメッセージを出力する。また、復号化部13cは、秘密鍵が間違っていたり、暗号文が改竄されていたりしたことにより、復号化に失敗した場合には、エラーを出力する。
【0026】
ここで、復号化部13cが、例えば、間違った秘密鍵や、改竄された暗号文が入力されているにもかかわらず、エラーを出力しない場合には、開発対象のIDベース暗号のソフトウェアに不具合があることとなる。また、復号化部13cが、例えば、正当な秘密鍵と暗号文が入力したにもかかわらず、エラーを出力した場合にも、開発対象のIDベース暗号のソフトウェアに不具合があることとなる。
【0027】
出力部13dは、暗号化部13bによって行われた暗号化処理および復号化部13cによって行われた復号化処理に関する処理結果を試験結果として出力する。例えば、出力部13dは、開発対象のソフトウェアのIDベース暗号の暗号化処理および復号化処理について不具合の有無や、不具合の内容を試験結果として出力する。
【0028】
このようにして、シミュレーション装置10は、IDベース暗号のシミュレータを実現することができる(なお、このような構成で問題ない根拠は下記の参考文献1、2のランダムオラクルモデルを参照)。
参考文献1:Mihir Bellare, Phillip Rogaway, “Random Oracles are Practical: A Paradigm for Designing Efficient Protocols”, First ACM Conference on Computer and Communications Security, 62-73, 1993, ACM Press
参考文献2:Wikipedia(2019/6/13) Random oracle<https://en.wikipedia.org/wiki/Random_oracle>
【0029】
[シミュレーション装置の処理手順]
次に、
図5を用いて、第1の実施形態に係るシミュレーション装置10による処理手順の例を説明する。
図5は、第1の実施形態に係るシミュレーション装置における処理の流れの一例を示すフローチャートである。なお、
図5の例では、秘密鍵の生成処理、暗号化処理、復号化処理および試験結果の出力処理を一連の試験工程として自動的に行うものとする。
【0030】
図5に例示するように、シミュレーション装置10の鍵生成部13aが秘密鍵の生成を行う(ステップS101)。具体的には、鍵生成部13aは、記憶部12に記憶された秘密情報を用いてIDごとの秘密鍵を生成する。例えば、鍵生成部13aは、IDの入力を受け付けると、記憶部12から秘密情報Xを読み出し、秘密鍵を用いて、秘密鍵H(X||ID)を生成する。
【0031】
そして、暗号化部13bは、平文およびIDを含む暗号化要求を受け付け、当該IDに対応する秘密鍵を用いて平文を暗号化する(ステップS102)。続いて、復号化部13cは、暗号文および秘密鍵を含む復号化要求を受け付け、当該秘密鍵を用いて暗号文を復号化する(ステップS103)。
【0032】
そして、出力部13dは、暗号化部13bによって行われた暗号化処理および復号化部13cによって行われた復号化処理について試験結果を出力する(ステップS104)。例えば、出力部13dは、開発対象のソフトウェアのIDベース暗号の暗号化処理および復号化処理について不具合の有無や、不具合の内容を試験結果として出力する。
【0033】
[第1の実施形態の効果]
このように、第1の実施形態に係る試験システム100のシミュレーション装置10は、記憶部12に記憶された秘密情報を用いてIDごとの秘密鍵を生成する。そして、シミュレーション装置10は、平文およびIDを含む暗号化要求を受け付けた場合には、当該IDに対応する秘密鍵を用いて平文を暗号化する。また、シミュレーション装置10は、暗号文および秘密鍵を含む復号化要求を受け付けた場合に、当該秘密鍵を用いて暗号文を復号化する。そして、シミュレーション装置10は、暗号化処理および復号化処理に関する処理結果を試験結果として出力する。このため、試験システム100では、暗号化技術を用いたソフトウェアの開発において、開発を効率よく行うことが可能である。
【0034】
つまり、試験システム100では、外部の鍵発行センタが秘密鍵を発行する代わりに、シミュレーション装置10が秘密鍵を生成し、該秘密鍵を用いてIDベース暗号のシミュレータを実現するので、暗号化技術を用いたソフトウェアの開発においても試験工程の自動化を行うことができ、外部の鍵発行センタと通信を行うことなく、開発を効率よく行うことが可能である。
【0035】
これにより、例えば、試験システム100は、IDベース暗号を用いたシステムを開発する際に、まずIDベース暗号の部分をシミュレートすることで自動的に試験を行い、システムが完成した場合には、シミュレータを本来望んでいたIDベース暗号の実装と置き換えることで、本来望んでいたシステムを完成させることができる。
【0036】
[第2の実施形態]
上述した第1の実施形態では、シミュレーション装置10においてIDベース暗号を用いたソフトウェアを実行する場合を説明したが、これに限定されるものではなく、例えば、シミュレーション装置10またはターゲットシステムである被試験システム40のいずれかでIDベース暗号を用いたソフトウェアを実行するか選択できるようにしてもよい。
【0037】
以下では、第2の実施形態として、情報処理装置20Aが、開発対象のソフトウェアのコードに予め設定された属性情報に応じて、シミュレーション装置10によってソフトウェアが実行されるのか、被試験システム40によってソフトウェアが実行されるのかを判定し、判定結果に基づいてソフトウェアをシミュレーション装置または被試験システムに実行させる場合について説明する。なお、第一の実施形態と同様の構成や処理については説明を適宜省略する。
【0038】
図6は、第2の実施形態に係る試験システムの構成の一例を示す図である。
図6に例示するように、試験システム100Aは、シミュレーション装置10と情報処理装置20Aと被試験システム40とTA(Trusted Authority)50と鍵発行センタ60とを有する。また、各装置は、ネットワーク30を介して互いに接続されている。
【0039】
被試験システム40は、開発中のIDベース暗号のソフトウェアが適用される実システムである。TA50は、被試験システムからIDとともに秘密鍵の発行要求を受け付けてIDが正当であるか確認し、IDが正当である場合には、該IDとともに秘密鍵の発行要求を鍵発行センタ60に通知する。鍵発行センタ60は、秘密鍵の発行要求を受け付けると、IDを用いて秘密鍵を発行し、秘密鍵をTAを介して被試験システム40に配布する。
【0040】
情報処理装置20Aは、実行部21を有する。実行部21は、開発対象のソフトウェアのコードに予め設定された属性情報に応じて、シミュレーション装置10によってソフトウェアが実行されるのか、被試験システム40によってソフトウェアが実行されるのかを判定し、判定結果に基づいてソフトウェアをシミュレーション装置10または被試験システム40に実行させる。
【0041】
例えば、情報処理装置20Aは、開発者によってコード中にコンパイラオプションの属性値が付与されたIDベース暗号のソフトウェアを受け付ける。このコンパイラオプションが付与されることによって、シミュレーション装置10によってソフトウェアが実行されるのか、被試験システム40によってソフトウェアが実行されるのかをコンパイル時にコンパイラに指示することができる。
【0042】
つまり、実行部21は、例えば、コンパイル時にコンパイラオプションの属性値を参照し、シミュレーション装置10によってソフトウェアが実行されるのか、被試験システム40によってソフトウェアが実行されるのかを判定し、判定結果に基づいてソフトウェアをシミュレーション装置10または被試験システム40に実行させる。
【0043】
ここで、
図7を用いて、第2の実施形態に係る試験システム100Aの試験処理の概要を説明する。
図7は、第2の実施形態に係る試験システムの試験処理の概要を説明するための図である。
図7に例示するように、情報処理装置20Aは、コンパイラオプションにおいて、シミュレーション装置10によってソフトウェアを実行する旨の属性値がコードに付与されている場合には、ソフトウェアをシミュレーション装置10に実行させる。そして、シミュレーション装置10は、第1の実施形態で説明したように、シミュレーション装置10上でIDベース暗号のソフトウェアをシミュレートして試験を行う。
【0044】
一方、情報処理装置20Aは、コンパイラオプションにおいて、被試験システム40によってソフトウェアを実行する旨の属性値がコードに付与されている場合には、ソフトウェアを被試験システム40に実行させる。被試験システム40では、IDベース暗号のソフトウェアを実行し、秘密鍵の発行要求をTA50に送信する。
【0045】
TA50は、被試験システムからIDとともに秘密鍵の発行要求を受け付けてIDが正当であるか確認し、IDが正当である場合には、該IDとともに秘密鍵の発行要求を鍵発行センタ60に通知する。鍵発行センタ60は、秘密鍵の発行要求を受け付けると、IDを用いて秘密鍵を発行し、秘密鍵をTAを介して被試験システム40に配布する。
【0046】
このように、第2の実施形態に係る試験システム100Aでは、開発対処のソフトウェアについて、ソースコードの属性情報を変えるだけで、シミュレーション装置10でIDベース暗号のみに特化して簡易的試験を行うのか、被試験システム40で実装可能かどうかの本格的な試験を行うのかを開発者が選択することができる。
【0047】
[第3の実施形態]
上述した第2の実施形態では、開発者が開発対象のソフトウェアの実行先を選択する場合を説明したが、これに限定されるものではなく、動的にソフトウェアの実行先を切り替えるようにしてもよい。
【0048】
以下では、第3の実施形態として、開発対象のソフトウェアが被試験システム40によって実行され、ソフトウェアについて異常が発生した場合には、情報処理装置20Bが、シミュレーション装置10にソフトウェアを実行させ、シミュレーション装置による試験結果を取得する場合について説明する。なお、第1、2の実施形態と同様の構成や処理については説明を適宜省略する。
【0049】
図8は、第3の実施形態に係る試験システムの構成の一例を示す図である。
図8に例示するように、第3の実施形態に係る試験システム100Bの情報処理装置20Bは、取得部22を有する。情報処理装置20Bの取得部22は、開発対象のソフトウェアが被試験システム40によって実行され、ソフトウェアについて異常が発生した場合には、シミュレーション装置10にソフトウェアを実行させ、シミュレーション装置10による試験結果を取得する。
【0050】
ここで、
図9を用いて、第3の実施形態に係る試験システム100Bの試験処理の概要を説明する。
図9は、第3の実施形態に係る試験システムの試験処理の概要を説明するための図である。
図9に例示するように、被試験システム40が、開発対象のソフトウェアを実行していてエラーが発生した場合には、情報処理装置20Bにエラーを報告する(
図9の(1)参照)。そして、情報処理装置20Bは、被試験システム40からエラーの報告を受けると、シミュレーション装置10に開発対象のソフトウェアの試験を実行させる(
図9の(2)参照)。その後、シミュレーション装置10は、試験結果のレポートを情報処理装置20Bに通知する(
図9の(3)参照)。
【0051】
これにより、第3の実施形態に係る試験システム100Bの情報処理装置20Bでは、被試験システム40からのエラー報告と、シミュレーション装置10からの試験結果のレポートとを取得することができ、試験対象のソフトウェアのエラー原因を特定することを容易にすることが可能である。例えば、試験システム100Bでは、被試験システム40からのエラー報告だけではソフトウェアの異常原因が特定できない場合であっても、シミュレーション装置10で試験を行うことで、IDベース暗号の処理に不具合があることを特定したり、IDベース暗号の処理については不具合がないことを特定したりすることができる。
【0052】
[システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0053】
また、本実施の形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0054】
[プログラム]
図10は、試験プログラムを実行するコンピュータを示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0055】
メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1051、キーボード1052に接続される。ビデオアダプタ1060は、例えばディスプレイ1061に接続される。
【0056】
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、シミュレーション装置10の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、装置における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
【0057】
また、上述した実施の形態の処理で用いられるデータは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
【0058】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク、WANを介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【符号の説明】
【0059】
10 シミュレーション装置
11 通信部
12 記憶部
13 制御部
13a 鍵生成部
13b 暗号化部
13c 復号化部
13d 出力部
20 情報処理装置
21 実行部
22 取得部
30 ネットワーク
40 被試験システム
50 TA
60 鍵発行センタ