(57)【要約】【課題】ユニーク性を損なうことなく再発行が可能なハードウェアプロテクトキー及びその再発行方法を提供する。【解決手段】パーソナルコンピュータＰＣ２に装着され、ＰＣ２による特定ソフトウェアの使用の可否を制御するハードウェアプロテクトキー（ＵＳＢキー１）であって、特定ソフトウェアと同一種類の他のソフトウェアの使用の可否を規定する第１シリアルＮｏ．が初期状態において記憶され、特定ソフトウェアの使用の可否を規定する第２シリアルＮｏ．が必要に応じて追加的に記憶される記憶部を有し、ＰＣ２からの要求に応答して、記憶部に第２シリアルＮｏ．が記憶されている場合は該第２シリアルＮｏ．を、記憶されていない場合は第１シリアルＮｏ．を記憶部から読み出してＰＣ２に送る。【選択図】      図１
2005050162.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置に装着されて使用され、該情報処理装置による特定ソフトウェアの使用の可否を制御するハードウェアプロテクトキーであって、
前記特定ソフトウェアと同一種類の他のソフトウェアの使用の可否を規定する第１データが初期状態において記憶され、前記特定ソフトウェアの使用の可否を規定する第２データが必要に応じて追加的に記憶された記憶部と、
前記情報処理装置からの要求に応答して、前記記憶部に第２データが記憶されている場合は該第２データを、記憶されていない場合は前記第１データを前記記憶部から読み出して前記情報処理装置に送る制御部と、
を備えることを特徴とするハードウェアプロテクトキー。
【請求項２】
前記記憶部に記憶された第１データは、前記特定ソフトウェアと同一種類の他のソフトウェアにユニークに付与された第１シリアルナンバーからなり、前記記憶部に記憶された第２データは、前記特定ソフトウェアにユニークに付与された第２シリアルナンバーからなることを特徴とする請求項１記載のハードウェアプロテクトキー。
【請求項３】
前記記憶部に記憶された第１データは、前記特定ソフトウェアの同一種類の他のソフトウェアに付与された、暗号化アルゴリズムの初期値を規定する第１キーＩＤからなり、前記記憶部に記憶された第２データは、前記特定ソフトウェアに付された、暗号化アルゴリズムの初期値を規定する第２キーＩＤからなることを特徴とする請求項１又は請求項２記載のハードウェアプロテクトキー。
【請求項４】
前記暗号化アルゴリズムとしてカオスストリーム暗号アルゴリズムを用いて疑似乱数を発生する疑似乱数発生器を備え、
前記制御部は、
前記記憶部から読み出した第１キーＩＤ又は第２キーＩＤを前記疑似乱数発生器に送り、該疑似乱数発生器において前記第１キーＩＤ又は第２キーＩＤを初期値として発生された疑似乱数を暗号鍵として前記情報処理装置に送ることを特徴とする請求項３記載のハードウェアプロテクトキー。
【請求項５】
情報処理装置に装着されて使用され、該情報処理装置による特定ソフトウェアの使用の可否を制御するハードウェアプロテクトキーを再発行するハードウェアプロテクトキーの再発行方法であって、
前記特定ソフトウェアと同一種類の他のソフトウェアの使用の可否を規定する第１データが初期状態において記憶されているハードウェアプロテクトキーに、前記特定ソフトウェアの使用の可否を規定する第２データを追加的に記憶して再発行し、
前記情報処理装置からの要求に応答して、前記第２データが記憶されている場合は該第２データを、記憶されていない場合は前記第１データを読み出して前記情報処理装置に送り、
前記情報処理装置は、前記ハードウェアプロテクトキーから送られてきた前記第１データ又は第２データに基づいて前記特定ソフトウェアの使用の可否を制御することを特徴とするハードウェアプロテクトキーの再発行方法。
【請求項６】
前記第１データは、前記特定ソフトウェアと同一種類の他のソフトウェアにユニークに付与された第１シリアルナンバーからなり、前記第２データは、前記特定ソフトウェアにユニークに付与された第２シリアルナンバーからなることを特徴とする請求項５記載のハードウェアプロテクトキーの再発行方法。
【請求項７】
前記第１データは、前記特定ソフトウェアの同一種類の他のソフトウェアに付与された、暗号化アルゴリズムの初期値を規定する第１キーＩＤからなり、前記第２データは、前記特定ソフトウェアに付された、暗号化アルゴリズムの初期値を規定する第２キーＩＤからなることを特徴とする請求項５又は請求項６記載のハードウェアプロテクトキーの再発行方法。
【請求項８】
前記ハードウェアプロテクトキーは
前記暗号化アルゴリズムとしてカオスストリーム暗号アルゴリズムを用い、前記第１キーＩＤ又は第２キーＩＤを初期値として疑似乱数を発生させ、暗号鍵として前記情報処理装置に送ることを特徴とする請求項７記載のハードウェアプロテクトキーの再発行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェアプロテクトキー及びその再発行方法に関し、特にハードウェアプロテクトキーを紛失した時に再発行を行うための技術に関する。
【背景技術】
【０００２】
従来、ソフトウェアの不正コピーを防止するために、ハードウェアプロテクトキー（「ドングル（dongle）」とも呼ばれる）が使用されている。このハードウェアプロテクトキーは、例えば、パーソナルコンピュータの入出力ポートにコネクタを介して装着される。ハードウェアプロテクトキーが同梱されたソフトウェア（以下、本明細書では「特定ソフトウェア」という）は、このハードウェアプロテクトキーをパーソナルコンピュータに装着しない限り使用することができず、この特定ソフトウェアを他のコンピュータにコピーしてもハードウェアプロテクトキーを装着しない限りその特定ソフトウェアは起動しない。
【０００３】
一方、近年、キーボード、マウス、スピーカ、モデム、プリンタ等の比較的低速な周辺機器とパーソナルコンピュータとの相互間を全て同一のコネクタとケーブルで統一して接続できるＵＳＢ（Universal Serial Bus）インタフェースが開発されている。そこで、このＵＳＢインタフェースをハードウェアプロテクトキーに適用して小型化し、個人や法人の構成員といったユーザが携帯できるようにしたハードウェアプロテクトキー（以下、「ＵＳＢキー」という）が開発され、実用に供されている。ユーザは、携帯したＵＳＢキーを適宜パーソナルコンピュータのＵＳＢコネクタに装着することにより特定ソフトウェアを使用できる。
【０００４】
このＵＳＢキーは、ソフトウェアの使用規制の一態様である暗号化にも使用される。即ち、ＵＳＢキーは、パーソナルコンピュータと周辺機器との間のデータ転送を暗号化して行う暗号化装置の一部としても使用される。この暗号化装置は、キー情報が登録されたＵＳＢキーと、このＵＳＢキーが装着され、且つ暗号化処理を実行するパーソナルコンピュータとから構成されている。
【０００５】
ＵＳＢキーへのキー情報の登録は、購入時に個人により、又は工場出荷時にメーカーによりなされる。パーソナルコンピュータは、ＵＳＢキーが装着されると、そのＵＳＢキーからキー情報を読み出し、この読み出したキー情報に基づいて所定の暗号アルゴリズムを用いて暗号鍵を生成する。そして、この暗号鍵を用いて平成文データを暗号化して暗号データを生成し、周辺機器に送信する。
【０００６】
なお、暗号化の技術としては、上記カオスストリーム暗号アルゴリズムを用いるものの他に、カオスブロック暗号アルゴリズムを用いたディジタルブロック暗号が知られている（例えば、特許文献１参照）。ディジタルブロック暗号では、カオスのタイムシリーズから取り出した整数列又は乱数により生成した整数列を暗号鍵、暗号表、復元表としてディジタルブロックの検索により暗号化復元が行われる。また、暗号鍵の照合を行う機能も付加し、これらを工業用汎用ＣＰＵワンチップにインストールする。このディジタルブロック暗号を用いれば、情報通信において、ユーザは暗号や暗号鍵の管理を意識せずに通信システムの頑健性を向上させることができる。
【０００７】
また、前述した従来技術の関連技術として例えば特許文献２、特許文献３が知られている。
【特許文献１】特開２０００-１５１５８０号公報
【特許文献２】特開２００１-１７５４６８号公報
【特許文献３】特開２００２-１１６８３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述したＵＳＢキーは、個人又は法人の構成員といったユーザが携行して使用するので、紛失するという事態が発生する。このような場合はＵＳＢキーを再発行する必要がある。しかしながら、ＵＳＢキー自体は物理的にユニーク（世界中で１つしか存在しない）であり、ＵＳＢキーの内部に記憶されているキー情報もユニークであるという前提で作製されて運用されているので、紛失したＵＳＢキーと全く同一のものを作製して再発行すると、上記前提が崩れてしまい、ＵＳＢキーの運用に支障をきたすという問題がある。
【０００９】
本発明の課題は、ユニーク性を損なうことなく再発行が可能なハードウェアプロテクトキー及びその再発行方法を提供することにある。
【課題を解決するための手段】
【００１０】
第１の発明に係るハードウェアプロテクトキーは、情報処理装置に装着されて使用され、該情報処理装置による特定ソフトウェアの使用の可否を制御するハードウェアプロテクトキーであって、特定ソフトウェアと同一種類の他のソフトウェアの使用の可否を規定する第１データが初期状態において記憶され、特定ソフトウェアの使用の可否を規定する第２データが必要に応じて追加的に記憶された記憶部と、情報処理装置からの要求に応答して、記憶部に第２データが記憶されている場合は該第２データを、記憶されていない場合は第１データを記憶部から読み出して情報処理装置に送る制御部とを備えることを特徴とする。
【００１１】
また、第２の発明に係るハードウェアプロテクトキーは、第１の発明に係るハードウェアプロテクトキーにおいて、記憶部に記憶された第１データは、特定ソフトウェアと同一種類の他のソフトウェアにユニークに付与された第１シリアルナンバーからなり、記憶部に記憶された第２データは、特定ソフトウェアにユニークに付与された第２シリアルナンバーからなることを特徴とする。
【００１２】
また、第３の発明に係るハードウェアプロテクトキーは、第１又は第２の発明に係るハードウェアプロテクトキーにおいて、記憶部に記憶された第１データは、特定ソフトウェアの同一種類の他のソフトウェアに付与された、暗号化アルゴリズムの初期値を規定する第１キーＩＤからなり、記憶部に記憶された第２データは、特定ソフトウェアに付された、暗号化アルゴリズムの初期値を規定する第２キーＩＤからなることを特徴とする。
【００１３】
また、第４の発明に係るハードウェアプロテクトキーは、第３の発明に係るハードウェアプロテクトキーにおいて、暗号化アルゴリズムとしてカオスストリーム暗号アルゴリズムを用いて疑似乱数を発生する疑似乱数発生器を備え、制御部は、記憶部から読み出した第１キーＩＤ又は第２キーＩＤを疑似乱数発生器に送り、該疑似乱数発生器において第１キーＩＤ又は第２キーＩＤを初期値として発生された疑似乱数を暗号鍵として情報処理装置に送ることを特徴とする。
【００１４】
また、第５の発明に係るハードウェアプロテクトキーの再発行方法は、情報処理装置に装着されて使用され、該情報処理装置による特定ソフトウェアの使用の可否を制御するハードウェアプロテクトキーを再発行するハードウェアプロテクトキーの再発行方法であって、特定ソフトウェアと同一種類の他のソフトウェアの使用の可否を規定する第１データが初期状態において記憶されているハードウェアプロテクトキーに、特定ソフトウェアの使用の可否を規定する第２データを追加的に記憶して再発行し、情報処理装置からの要求に応答して、第２データが記憶されている場合は該第２データを、記憶されていない場合は第１データを読み出して情報処理装置に送り、情報処理装置は、ハードウェアプロテクトキーから送られてきた第１データ又は第２データに基づいて特定ソフトウェアの使用の可否を制御することを特徴とする。
【００１５】
また、第６の発明に係るハードウェアプロテクトキーの再発行方法は、第５の発明に係るハードウェアプロテクトキーの再発行方法において、第１データは、特定ソフトウェアと同一種類の他のソフトウェアにユニークに付与された第１シリアルナンバーからなり、第２データは、特定ソフトウェアにユニークに付与された第２シリアルナンバーからなることを特徴とする。
【００１６】
また、第７の発明に係るハードウェアプロテクトキーの再発行方法は、第５又は第６の発明に係るハードウェアプロテクトキーの再発行方法において、第１データは、特定ソフトウェアの同一種類の他のソフトウェアに付与された、暗号化アルゴリズムの初期値を規定する第１キーＩＤからなり、第２データは、特定ソフトウェアに付された、暗号化アルゴリズムの初期値を規定する第２キーＩＤからなることを特徴とする。
【００１７】
更に、第８の発明に係るハードウェアプロテクトキーの再発行方法は、第７の発明に係るハードウェアプロテクトキーの再発行方法において、ハードウェアプロテクトキーは、暗号化アルゴリズムとしてカオスストリーム暗号アルゴリズムを用い、第１キーＩＤ又は第２キーＩＤを初期値として疑似乱数を発生させ、暗号鍵として情報処理装置に送ることを特徴とする。
【発明の効果】
【００１８】
第１の発明に係るハードウェアプロテクトキーによれば、例えば紛失に起因してハードウェアプロテクトキーを再発行する必要が生じた場合は、特定ソフトウェアと同一種類の他のソフトウェアの使用の可否を規定する第１データが初期状態において記憶されている例えばスペアのハードウェアプロテクトキーに、紛失されたハードウェアプロテクトキーの第１データが第２データとして追加的に記憶されて再発行される。そして、情報処理装置からの要求がある場合は、第２データが記憶されている場合はその第２データを、記憶されていない場合は第１データを情報処理装置に送る。従って、スペアのハードウェアプロテクトキーは、第１データによってユニーク性が維持され、第２データによって紛失されたハードウェアプロテクトキーと同等の機能を発揮することができる。
【００１９】
また、第２の発明に係るハードウェアプロテクトキーによれば、第１データとして特定ソフトウェアと同一種類の他のソフトウェアにユニークに付与された第１シリアルナンバーを、第２データとして特定ソフトウェアにユニークに付与された第２シリアルナンバーをそれぞれ用いたので、第１シリアルナンバーが記憶されたハードウェアプロテクトキーを紛失しても、スペアのハードウェアプロテクトキーに記憶された第２シリアルナンバーを用いて特定ソフトウェアの使用の可否をチェックすることができる。
【００２０】
また、第３の発明に係るハードウェアプロテクトキーによれば、第１データとして特定ソフトウェアの同一種類の他のソフトウェアに付与された、暗号化アルゴリズムの初期値を規定する第１キーＩＤを、第２データとして特定ソフトウェアに付された、暗号化アルゴリズムの初期値を規定する第２キーＩＤをそれぞれ用いたので、第１キーＩＤが記憶されたハードウェアプロテクトキーを紛失しても、スペアのハードウェアプロテクトキーに記憶された第２キーＩＤを用いて紛失されたハードウェアプロテクトキーを用いた場合と同等の暗号化が可能になる。
【００２１】
また、第４の発明に係るハードウェアプロテクトキーによれば、第１キーＩＤ又は第２キーＩＤを初期値としてカオスストリーム暗号アルゴリズムにより発生された疑似乱数を暗号鍵として情報処理装置に送るように構成したので、第１キーＩＤが記憶されたハードウェアプロテクトキーを紛失しても、スペアのハードウェアプロテクトキーに記憶された第２キーＩＤを用いて紛失されたハードウェアプロテクトキーを用いた場合と同等の疑似乱数を発生させることが可能になる。その結果、紛失されたハードウェアプロテクトキーにより暗号化されたデータを復号することも可能になる。
【００２２】
さらに、第５〜第８の発明に係るハードウェアプロテクトキーの再発行方法によれば、上述した第１〜第４の発明に係るハードウェアプロテクトキーと同様の効果が得られる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施例を図面を参照しながら詳細に説明する。なお、以下では、ハードウェアプロテクトキーとしてＵＳＢキーが使用される場合を例に挙げて説明するが、本発明のハードウェアプロテクトキーはＵＳＢインタフェースに限らず、他のインタフェースを有するものから構成してもよい。
【実施例１】
【００２４】
図１は本発明の実施例１に係るハードウェアプロテクトキー（ＵＳＢキー）と情報処理装置とからなめ情報処理システムの構成を示すブロック図である。情報処理システムは、パーソナルコンピュータ２と、このパーソナルコンピュータ２に着脱自在に構成されたＵＳＢキー１とを備えている。
【００２５】
パーソナルコンピュータ２は、本発明の情報処理装置に対応する。なお、本発明の情報処理装置としては、パーソナルコンピュータ２に限らず、携帯電話、ＰＤＡ等の携帯端末、サーバコンピュータ、ワークステーション、その他の情報処理装置を用いてもよい。
【００２６】
ＵＳＢキー１は、特定ソフトウェアに同梱されるものであり、個人や法人の構成員といったユーザが携帯できるように構成されている。ＵＳＢキー１には、ＵＳＢコネクタ１０が設けられている。ＵＳＢコネクタ１０がパーソナルコンピュータ２に設けられたＵＳＢコネクタ２０に嵌合されることにより、ＵＳＢキー１とパーソナルコンピュータ２とが電気的に接続され、両者間で相互にデータ通信を行うことができるようになっている。
【００２７】
ＵＳＢキー１は、電気的には、入出力部１１、ＵＳＢコントローラ１２及びメモリ１３から構成されている。
【００２８】
入出力部１１は、ＵＳＢ規格を満足するＵＳＢインタフェース回路から構成されており、パーソナルコンピュータ２との間で行われるデータ転送を制御する。具体的には、入出力部１１は、パーソナルコンピュータ２からＵＳＢコネクタ１０を介して送られてきたデータを受信してＵＳＢコントローラ１２に送ると共に、ＵＳＢコントローラ１２から送られてきたデータをＵＳＢコネクタ１０を介してパーソナルコンピュータ２に送信するための制御を行う。
【００２９】
ＵＳＢコントローラ１２は、例えばＣＰＵから構成されており、ＵＳＢキー１内の各部を制御する。例えば、ＵＳＢキー１がパーソナルコンピュータ２に装着されたときに、パーソナルコンピュータ２からデータ取得要求を受信し、この要求に対応するデータをメモリ１３から読み出し、入出力部１１を介してパーソナルコンピュータ２に送信する。
【００３０】
メモリ１３は、例えばＥＥＰＲＯＭから構成されている。メモリ１３は、図２に示すように、パスワード、第１シリアルＮｏ．（第１シリアルナンバー）及びカンパニーＩＤを記憶すると共に、第２シリアルＮｏ．（第２シリアルナンバー）を記憶するための予備領域を有する。パスワード、第１シリアルＮｏ．及びカンパニーＩＤは、初期状態、つまりＵＳＢキー１の購入時に、個人によって、又は工場出荷時に、メーカーによって書き込まれる。
【００３１】
パスワードは、ＵＳＢキー１が同梱された特定ソフトウェアを購入したユーザに付与される番号及び／又は記号である。第１シリアルＮｏ．は、ＵＳＢキー１の製造番号であり、特定ソフトウェアに対応付けてＵＳＢキー１にユニークに付与された番号及び／又は記号から構成されている。カンパニーＩＤは、法人向けの特定ソフトウェアに付与される法人の識別子である。
【００３２】
メモリ１３の予備領域は、ＵＳＢキー１が紛失や破壊によって使用できなくなった時に、使用できなくなったＵＳＢキー１の第１シリアルＮｏ．が追加的に記憶される領域である。予備領域には、使用できなくなったＵＳＢキー１の第１シリアルＮｏ．が第２シリアルＮｏ．として記憶される。
【００３３】
このメモリ１３に記憶されている内容は、ＵＳＢコントローラ１２から読み出されると共に、ＵＳＢコントローラ１２によって書き換えられる。なお、この実施例１では、メモリ１３はＵＳＢコントローラ１２と別体に構成しているが、ＵＳＢコントローラ１２に内蔵されているメモリを、メモリ１３として用いるように構成してもよい。
【００３４】
パーソナルコンピュータ２は、入出力部２１、コントローラ２２及びメモリ２３から構成されている。このパーソナルコンピュータ２には、データを入力するための入力部３及びデータを画面上に表示する表示部４が接続されている。
【００３５】
入出力部２１は、ＵＳＢ規格を満足するＵＳＢインタフェース回路から構成されており、ＵＳＢキー１との間で行われるデータ転送を制御する。具体的には、入出力部２１は、ＵＳＢキー１からＵＳＢコネクタ２０を介して送られてきたデータを受信してコントローラ２２に送ると共に、コントローラ２２から送られてきたデータをＵＳＢコネクタ２０を介してＵＳＢキー１に送信する制御を行う。
【００３６】
コントローラ２２は、例えばＣＰＵから構成されており、パーソナルコンピュータ２内の各部を制御する。例えば、ＵＳＢキー１が装着されたときに、データ取得要求をＵＳＢキー１に送信し、ＵＳＢキー１から読み出したパスワード、第１又は第２シリアルＮｏ．及びカンパニーＩＤの正当性をチェックし、正当性が認められたときに特定ソフトウェアの使用を可能にする。
【００３７】
メモリ２３は、入力部３から入力された個人のパスワードやその他のデータを記憶する。メモリ２３は、コントローラ２２からアクセスされる。
【００３８】
次に、このように構成されたＵＳＢキー１とパーソナルコンピュータ２とからなる情報処理システムの動作を、図３に示すシーケンス図を参照しながら説明する。
【００３９】
まず、ＵＳＢキー１がパーソナルコンピュータ２に装着される（ステップＳ１）。その後、パーソナルコンピュータ２が起動され（ステップＳ２）、入力部３からユーザのパスワードが入力される（ステップＳ３）。
【００４０】
次に、パーソナルコンピュータ２は、ＵＳＢキー１に対してパスワードの取得要求を行う（ｄ１）。ＵＳＢキー１のＵＳＢコントローラ１２は、パーソナルコンピュータ２からのパスワードの取得要求を受け取ると、メモリ１３からパスワードを読み出し、その読み出したパスワードをパーソナルコンピュータ２に送信する（ｄ２）。
【００４１】
次に、パーソナルコンピュータ２内のコントローラ２２は、入力部３から入力されたパスワードがＵＳＢキー１から受信したパスワードと一致するかどうかを調べる（ステップＳ４）。ここで、両方のパスワードが一致しないことを判断すると、以降の処理を行わずに処理を終了する。一方、両方のパスワードが一致することを判断したときは、シリアルＮｏ．の取得要求をＵＳＢキー１に送信する（ｄ３）。
【００４２】
ＵＳＢキー１は、シリアルＮｏ．の取得要求を受信すると、メモリ１３の予備領域から第２シリアルＮｏ．を読み出す（ステップＳ５）。次に、ステップＳ５で読み出されたデータが有効であるかどうかが調べられる（ステップＳ６）。具体的には、メモリ１３の予備領域から読み出したデータが無意味なデータ（例えば全て「１」のデータ）であるかどうかが調べられる。ここで、有効でないことが判断されると、メモリ１３から第１シリアルＮｏ．が読み出される（ステップＳ７）。
【００４３】
次に、ステップＳ５〜Ｓ７の処理で読み出された第２シリアルＮｏ．又は第１シリアルＮｏ．がパーソナルコンピュータ２に送信される（ｄ４）。ステップＳ５〜Ｓ７の処理により、第２シリアルＮｏ．（紛失されたＵＳＢキーの第１シリアルＮｏ．）がメモリ１３の予備領域に格納されている場合、つまり当該ＵＳＢキー１がスペアのＵＳＢキーである場合は、その第２シリアルＮｏ．がパーソナルコンピュータ２に送信される。また、メモリ１３の予備領域に第２シリアルＮｏ．が格納されていない場合、つまりＵＳＢキー１がオリジナルのＵＳＢキーである場合は、第１シリアルＮｏ．がパーソナルコンピュータ２に送信される。
【００４４】
パーソナルコンピュータ２は、ＵＳＢキー１から第１シリアルＮｏ．又は第２シリアルＮｏ．を受信すると、その正当性を調べる（ステップＳ８）。即ち、パーソナルコンピュータ２のコントローラ２２は、予め特定ソフトウェアに格納されている第１シリアルＮｏ．と、ＵＳＢキー１から受信した第１シリアルＮｏ．又は第２シリアルＮｏ．とを比較し、一致するかどうかを調べる。
【００４５】
ステップＳ８において、正当でないことが判断されると、以降の処理を行われずに処理は終了する。一方、正当であることが判断されると、パーソナルコンピュータ２は、カンパニーＩＤの取得要求をＵＳＢキー１に送信する（ｄ５）。ＵＳＢキー１のＵＳＢコントローラ１２は、このカンパニーＩＤの取得要求に応答してメモリ１３からカンパニーＩＤを読み出し、パーソナルコンピュータ２に送信する（ｄ６）。
【００４６】
パーソナルコンピュータ２は、ＵＳＢキー１からカンパニーＩＤを受信すると、その正当性を調べる（ステップＳ９）。即ち、パーソナルコンピュータ２のコントローラ２２は、予め特定ソフトウェアに格納されているカンパニーＩＤと、ＵＳＢキー１から受信したカンパニーＩＤとを比較し、一致するかどうかを調べる。
【００４７】
ステップＳ９において、正当でないことが判断されると、以降の処理は行われずにパーソナルコンピュータ２による処理は終了する。一方、正当であることが判断されると、パーソナルコンピュータ２は、特定ソフトウェアを使用可能にする（ステップＳ１０）。これにより、特定ソフトウェアの起動やインストール（複写）が可能になる。
【００４８】
以上説明したように、本発明の実施例１によれば、ＵＳＢキー１が紛失や破壊によって使用できなくなって再発行する必要が生じた場合は、特定ソフトウェアと同一種類の他のソフトウェア用のＵＳＢキー（スペアのＵＳＢキー）の予備領域に、使用できなくなったＵＳＢキーの第１シリアルＮｏ．を第２シリアルＮｏ．として追加的に記憶して再発行する。
【００４９】
なお、ＵＳＢキー１の第１シリアルＮｏ．は、ＵＳＢキーの管理者によって予め控えられているものとする。そして、パーソナルコンピュータ２からシリアルＮｏ．の取得要求があった場合は、ＵＳＢキー１は、第２シリアルＮｏ．が記憶されている場合はその第２シリアルＮｏ．を、記憶されていない場合は第１シリアルＮｏ．をパーソナルコンピュータ２に送る。従って、スペアのＵＳＢキーは、第１シリアルＮｏ．によってユニーク性が維持され、第２シリアルＮｏ．によって紛失されたＵＳＢキーと同等の機能を発揮することができる。
【実施例２】
【００５０】
本発明の実施例２は、ＵＳＢキーを暗号化装置の一部として使用するように構成したものである。なお、以下では、実施例１と同一又は相当する構成部分には実施例１と同一の符号を付して説明する。
【００５１】
図４は本発明の実施例２に係るハードウェアプロテクトキー（ＵＳＢキー）と情報処理装置とからなる暗号化装置の構成を示すブロック図である。暗号化装置は、パーソナルコンピュータ２ａと、このパーソナルコンピュータ２ａに着脱自在に構成されたＵＳＢキー１ａとを備えている。
【００５２】
パーソナルコンピュータ２ａは、本発明の情報処理装置に対応する。なお、本発明の情報処理装置としては、パーソナルコンピュータ２ａに限らず、携帯電話、ＰＤＡ等の携帯端末、サーバコンピュータ、ワークステーション、その他の情報処理装置を用いてもよい。
【００５３】
ＵＳＢキー１ａは、特定ソフトウェアに同梱されるものであり、個人や法人の構成員といったユーザが携帯できるように構成されている。このＵＳＢキー１ａには、ＵＳＢコネクタ１０が設けられている。このＵＳＢコネクタ１０がパーソナルコンピュータ２ａに設けられたＵＳＢコネクタ２０に嵌合されることにより、ＵＳＢキー１ａとパーソナルコンピュータ２ａとが電気的に接続され、両者間で相互にデータ通信を行うことができるようになっている。
【００５４】
ＵＳＢキー１ａは、電気的には、入出力部１１、ＵＳＢコントローラ１２、メモリ１３及び疑似乱数発生器１４から構成されている。
【００５５】
入出力部１１は、実施例１のそれと同様に、ＵＳＢ規格を満足するＵＳＢインタフェース回路から構成されており、パーソナルコンピュータ２ａとの間で行われるデータ転送を制御する。
【００５６】
ＵＳＢコントローラ１２は、例えばＣＰＵから構成されている。このＵＳＢコントローラ１２は、ＵＳＢキー１ａ内の各部を制御する。例えば、ＵＳＢキー１ａがパーソナルコンピュータ２ａに装着されたときに、パーソナルコンピュータ２ａから平文データのデータサイズ（バイト数）を受信し、擬似乱数発生器１４にカオス系列の擬似乱数を発生させる。そして、疑似乱数発生器１４で発生された疑似乱数を暗号鍵として入出力部１１を介してパーソナルコンピュータ２ａに送信する。
【００５７】
メモリ１３は、例えばＥＥＰＲＯＭから構成されている。このメモリ１３は、図５に示すように、パスワード、第１シリアルＮｏ．、カンパニーＩＤ及び第１キーＩＤを記憶すると共に、第２シリアルＮｏ．及び第２キーＩＤを記憶するための第１予備領域及び第２予備領域を有する。パスワード、第１シリアルＮｏ．、カンパニーＩＤ及び第１キーＩＤは、初期状態、つまりＵＳＢキー１ａの購入時に、個人によって、又は工場出荷時に、メーカーによって書き込まれる。
【００５８】
パスワード、第１シリアルＮｏ．及びカンパニーＩＤは、実施例１におけるそれらと同じである。第１キーＩＤは、疑似乱数発生器１４で発生される疑似乱数の初期値である。
【００５９】
メモリ１３の第１予備領域は、ＵＳＢキー１が紛失や破壊によって使用できなくなった時に、使用できなくなったＵＳＢキー１ａの第１シリアルＮｏ．が追加的に記憶される領域である。第１予備領域には、使用できなくなったＵＳＢキー１ａの第１シリアルＮｏ．が第２シリアルＮｏ．として記憶される。メモリ１３の第２予備領域は、ＵＳＢキー１ａが使用できなくなった時に、使用できなくなったＵＳＢキー１ａの第２キーＩＤが追加的に記憶される領域である。第２予備領域には、使用できなくなったＵＳＢキー１ａの第１キーＩＤが第２キーＩＤとして記憶される。
【００６０】
このメモリ１３に記憶されている内容は、ＵＳＢコントローラ１２から読み出されると共に、ＵＳＢコントローラ１２によって書き換えられる。なお、この実施例２では、メモリ１３はＵＳＢコントローラ１２と別体に構成されているが、ＵＳＢコントローラ１２に内蔵されているメモリを、メモリ１３として用いるように構成してもよい。
【００６１】
擬似乱数発生器１４は、平文データのデータサイズ（バイト数）、カオス関数及びこのカオス関数の初期値とに基づいてカオス系列の擬似乱数を発生する。このカオス系列の擬似乱数について説明する。乱数は不規則に発生し、カオスの時系列波形も不規則な振る舞いをする。擬似乱数発生器１４は、この性質を利用し、カオスの時系列波形を用いて、カオス系列の擬似乱数を発生させる。
【００６２】
カオスの時系列波形を生成し且つカオスの性質をもつ基本モデルである式の一つに、ロジスティック写像の式がある。このロジスティック写像の式は、式（１）に示すような漸化式で表される。
ｘ（ｔ＋１）＝４ｘ（ｔ）｛１−ｘ（ｔ）｝
ｘ（ｔ）＝ｘ（ｔ＋１）  ・・・（１）
【００６３】
ここで、ｘ（ｔ）をｘ（ｔ＋１）に移していくので、写像と呼ぶ。ｔは離散時間であり、ｘ（ｔ）は前述したカオス関数に相当している。式（１）に初期値ｘ（０）を与え、離散時間ｔを０から一定時間Δｔ毎に（離散的に）例えば１００まで変化させると、図６に示すようなロジスティック写像カオスの時系列波形、すなわち、タイムシリーズ｛ｘ（ｔ）−ｔ｝が得られる。図６においては、一定時間Δｔ毎のｘ（ｔ）の値がプロットされている。
【００６４】
このロジスティック写像の式は、値が増加／減少を繰り返す時系列波形であり、初期値ｘ（０）のわずかな変化で時系列波形の様子が大きく変化する。即ち、ロジスティック写像の式は、初期値ｘ（０）に敏感に依存する。このため、初期値ｘ（０）を変えることにより、複数種類のカオス系列の擬似乱数を発生させることができ、これによって、ユニークな複数種類のＵＳＢキー１ａを作製することができる。
【００６５】
また、ロジスティック写像の式は、入出力特性が非線形であり、非線形な振る舞いをする。更に、ｘ（ｔ）は、同じ値を２度と取らず、不可逆性がある。このため、ｘ（ｔ）の値を単純に予測できないため、秘匿性を高くすることができる。なお、擬似乱数発生器１４の具体的な回路構成は説明を省略する。
【００６６】
パーソナルコンピュータ２ａは、入出力部２１、コントローラ２２、メモリ２３、排他的論理和回路（以下、「ＸＯＲ回路」という）２４及び送信部２５から構成されている。このパーソナルコンピュータ２ａには、平文データやその他のデータを入力するための入力部３及びデータを画面上に表示する表示部４が接続されている。入出力部２１は、実施例１のそれと同じである。
【００６７】
コントローラ２２は、例えばＣＰＵから構成されており、パーソナルコンピュータ２内の各部を制御する。例えば、ＵＳＢキー１ａが装着されたときに、平文データのデータサイズ（バイト数）をＵＳＢキー１ａに送信し、ＵＳＢキー１ａから送られてくるカオス系列の擬似乱数を受信してＸＯＲ回路２４に送る。また、コントローラ２２は、ＵＳＢキー１ａから読み出したパスワード、第１又は第２シリアルＮｏ．及びカンパニーＩＤの正当性をチェックし、正当性が認められたときに暗号化処理を許可する。
【００６８】
メモリ２３は、入力部３から入力された個人のパスワードやその他のデータを記憶する。このメモリ２３は、コントローラ２２からアクセスされる。ＸＯＲ回路２４は、コントローラ２２からの擬似乱数と平文データとの排他的論理和演算を実行することにより暗号化を行い、この暗号化により得られたデータを暗号データとして送信部２５に送る。送信部２５は、コントローラ２２からの指示に応答して、ＸＯＲ回路２４から送られてくる暗号データを外部に送信する。
【００６９】
次に、このように構成されたＵＳＢキー１ａとパーソナルコンピュータ２ａとからなる暗号化装置の動作を、図７に示したシーケンスチャートを参照しながら説明する。
【００７０】
まず、ＵＳＢキー１ａがパーソナルコンピュータ２ａに装着される（ステップＳ１）。その後、パーソナルコンピュータ２ａが起動される（ステップＳ２）。以下、カンパニーＩＤの正当性を調べる処理（ステップＳ９）までは、第１シリアルＮｏ．が第１予備領域に格納される点を除けば、上述した実施例１における処理と同じである。
【００７１】
ステップＳ９において、カンパニーＩＤが正当であることが判断されると、次に、パーソナルコンピュータ２ａ内のコントローラ２２は、キーＩＤの取得要求をＵＳＢキー１ａに送信する（ｄ７）。
【００７２】
ＵＳＢキー１ａは、キーＩＤの取得要求を受信すると、メモリ１３の第２予備領域から第２キーＩＤを読み出す（ステップＳ１１）。次に、ステップＳ１１で読み出されたデータが有効であるかどうかが調べられる（ステップＳ１２）。具体的には、メモリ１３の第２予備領域から読み出したデータが無意味なデータ（例えば全て「１」のデータ）であるかどうかが調べられる。ここで、有効でないことが判断されると、メモリ１３から第１キーＩＤが読み出される（ステップＳ１３）。
【００７３】
次に、ステップＳ１１〜Ｓ１３の処理で読み出された第２キーＩＤ又は第１キーＩＤがパーソナルコンピュータ２ａに送信される（ｄ８）。ステップＳ１１〜Ｓ１３の処理により、第２キーＩＤ（紛失されたＵＳＢキーの第１キーＩＤ）がメモリ１３の第２予備領域に格納されている場合、つまりそのＵＳＢキー１ａがスペアのＵＳＢキー１ａである場合は、その第２キーＩＤがパーソナルコンピュータ２ａに送信され、メモリ１３の第２予備領域に第２キーＩＤが格納されていない場合、つまりＵＳＢキー１ａがオリジナルのＵＳＢキーである場合は、第１キーＩＤがパーソナルコンピュータ２ａに送信される。
【００７４】
パーソナルコンピュータ２ａは、ＵＳＢキー１ａから第１キーＩＤ又は第２キーＩＤを受信すると、その正当性を調べる（ステップＳ１４）。即ち、パーソナルコンピュータ２ａのコントローラ２２は、予め特定ソフトウェアに格納されている第１キーＩＤと、ＵＳＢキー１ａから受信した第１キーＩＤ又は第２キーＩＤとを比較し、一致するかどうかを調べる。
【００７５】
ステップＳ１４において、正当でないことが判断されると、以降の暗号化処理は行われずにパーソナルコンピュータ２ａによる処理は終了する。一方、正当であることが判断されると、パーソナルコンピュータ２ａは、暗号化処理を許可し、ＵＳＢキー１ａへ平文データのデータサイズ（バイト数）を送信する（ｄ９）。
【００７６】
ＵＳＢキー１ａでは、擬似乱数発生器１４が、受信した平文データのバイト数、カオス関数及びこのカオス関数の初期値（第１キーＩＤ又は第２キーＩＤ）とに基づいてカオス系列の擬似乱数を発生する（ステップＳ１５）。そして、ＵＳＢコントローラ１２は、疑似乱数発生器１４で発生されたカオス系列の擬似乱数を暗号鍵としてパーソナルコンピュータ２ａに送信する（ｄ１０）。
【００７７】
パーソナルコンピュータ２ａのコントローラ２２は、ＵＳＢキー１から受信した疑似乱数をＸＯＲ回路２４に送る。ＸＯＲ回路２４は、コントローラ２２からの擬似乱数と平文データとの排他的論理和演算を実行することにより暗号化を行い、この暗号化により得られたデータを暗号データとして送信部２５に送る（ステップＳ１６）。例えば、図８に示すように、平文データを「０１１００１」とし、暗号鍵としての擬似乱数を「１００１００」とし、両方の排他的論理和をとれば、暗号データとして「１１１１０１」が得られる。送信部２５は、ＸＯＲ回路２４からの暗号データを外部に送信する。また、暗号データはメモリ２３に保存される。
【００７８】
以上説明したように、本発明の実施例２に係る暗号化装置によれば、ＵＳＢキー１ａが紛失や破壊によって使用できなくなって再発行する必要が生じた場合は、特定ソフトウェアと同一種類の他のソフトウェア用のＵＳＢキー（スペアのＵＳＢキー）の第２予備領域に、使用できなくなったＵＳＢキーの第１キーＩＤを第２キーＩＤとして追加的に記憶して再発行する。なお、ＵＳＢキー１の第１キーＩＤは、ＵＳＢキーの管理者によって予め控えられているものとする。そして、パーソナルコンピュータ２ａからキーＩＤの取得要求があった場合は、ＵＳＢキー１ａは、第２キーＩＤが記憶されている場合はその第２キーＩＤを、記憶されていない場合は第１キーＩＤをパーソナルコンピュータ２ａに送る。従って、スペアのＵＳＢキーは、第１キーＩＤによってユニーク性が維持され、第２キーＩＤによって紛失されたＵＳＢキーと同等の機能を発揮することができる。
【００７９】
また、パーソナルコンピュータ２ａとは別体であるＵＳＢキー１ａ内に擬似乱数発生器１４を設け、暗号化を行う場合のみ、ＵＳＢキー１ａをパーソナルコンピュータ２ａに装着して、ＵＳＢキー１ａからカオス系列の擬似乱数をパーソナルコンピュータ２ａに送信するように構成したので、即ち、パーソナルコンピュータ２ａ内に擬似乱数発生器１４（暗号アルゴリズム）を常駐させずにＵＳＢキー１ａ本体に内蔵させたので、暗号鍵としてのカオス系列の擬似乱数を第三者に解読されにくくなる。これにより、個人のパーソナルコンピュータ上のデータを、第三者によって閲覧されることを防止することができる。
【００８０】
また、ＵＳＢキー１ａをパーソナルコンピュータ２ａに挿入するだけで、文書や画像などの様々な形式のファイルを暗号化することができる。さらに、相手先もＵＳＢキー１ａを所持していれば、暗号データによる秘密の暗号メールを相手先に送信することができる。
【００８１】
また、パーソナルコンピュータ２ａに擬似乱数発生器１４を設けていないので、パーソナルコンピュータ２ａの処理負担を軽減できる。
【００８２】
更に、ＵＳＢキー１ａ側のパスワード、シリアルＮｏ．、カンパニーＩＤ、キーＩＤとパーソナルコンピュータ２ａ側のそれらとが一致しなければ、暗号化処理を行うことができないため、秘匿性を更に向上させることができる。
【００８３】
また、初期値ｘ（０）を変えることにより、複数種類のカオス系列の擬似乱数を発生させることができるため、複数種類のＵＳＢキー１ａを作製でき、これによって、複数グループでの利用が可能になる。
【００８４】
また、カオス系列の擬似乱数を高速に発生させることができるので、本方式は、従来の一般的な暗号方式であるＤＥＳ（Data Encryption Standard）方式に比べて、暗号処理速度を向上させることができる。
【図面の簡単な説明】
【００８５】
【図１】本発明の実施例１に係るハードウェアプロテクトキー（ＵＳＢキー）と情報処理装置とからなる情報処理システムの構成を示すブロック図である。
【図２】図１に示した情報処理システムを構成するＵＳＢキー内のメモリに格納されるデータを示す図である。
【図３】本発明の実施例１に係るハードウェアプロテクトキー（ＵＳＢキー）と情報処理装置とからなる情報処理システムの動作を説明するためのシーケンス図である。
【図４】本発明の実施例２に係るハードウェアプロテクトキー（ＵＳＢキー）と情報処理装置とからなる暗号化装置の構成を示すブロック図である。
【図５】図４に示した暗号化装置を構成するＵＳＢキー内のメモリに格納されるデータを示す図である。
【図６】図４に示した暗号化装置で暗号化に使用されるロジスティック写像カオスの時系列波形を示す図である。
【図７】本発明の実施例２に係るハードウェアプロテクトキー（ＵＳＢキー）と情報処理装置とからなる暗号化装置の動作を説明するためのシーケンス図である。
【図８】本発明の実施例２に係る暗号化装置における暗号化を説明するための図である。
【符号の説明】
【００８６】
１，１ａ  ＵＳＢキー
２，２ａ  パーソナルコンピュータ
３  入力部
４  表示部
１０，２０  ＵＳＢコネクタ
１１，２１  入出力部
１２  ＵＳＢコントローラ
１３，２３  メモリ
１４  疑似乱数発生器
２２  コントローラ
２４  ＸＯＲ回路
２５  通信部
【図１】
2005050162.tif 000003
【図２】
2005050162.tif 000004
【図３】
2005050162.tif 000005
【図４】
2005050162.tif 000006
【図５】
2005050162.tif 000007
【図６】
2005050162.tif 000008
【図７】
2005050162.tif 000009
【図８】
2005050162.tif 000010