(57)【要約】【課題】  セキュリティ装置、情報処理装置、セキュリティ装置の制御方法、情報処理装置の制御方法、該制御方法を実行させるための装置実行可能なプログラムおよびチケット・システムを提供すること。【解決部】  本発明のセキュリティ装置１２は、署名機能手段３０を呼び出すごとに更新されるカウンタを含む正当性検査部を格納する不揮発性格納部２２と、署名鍵ごとに生成されるハッシュ値と当該署名鍵による署名が行われた回数をカウントするための署名回数カウンタとが対とされたカウンタ・アレイを格納する外部不揮発性格納部からカウンタ・アレイを読み込んで格納する揮発性格納部２４と、揮発性格納部２４からカウンタ・アレイを読み込んでハッシュ値を生成し正当性検査のため正当性検査部に渡すハッシュ機能部２８とを含む。【選択図】  図２
2005260676.tif 000002
【特許請求の範囲】
【請求項１】
署名されたデータの複数使用を制限するためのセキュリティ装置であって、該装置は、
署名機能手段を呼び出すごとに更新されるカウンタを含む正当性検査部を格納する不揮発性格納部と、
署名鍵ごとに生成されるハッシュ値と当該署名鍵による署名が行われた回数をカウントするための署名回数カウンタとが対とされたカウンタ・アレイを格納する外部不揮発性格納部からカウンタ・アレイを読み込んで格納する揮発性格納部と、
前記揮発性格納部からカウンタ・アレイを読み込んでハッシュ値を生成し正当性検査のため正当性検査部に渡すハッシュ機能部とを含む
セキュリティ装置。
【請求項２】
前記正当性検査部は、さらに、
セキュリティ装置の正当性を保証する鍵手段と、
前記カウンタ・アレイから過去に生成されたうち直前のハッシュ値とを含む
請求項１に記載のセキュリティ装置。
【請求項３】
前記ハッシュ機能部は、さらに前記カウンタの値を読み込んで前記カウンタ・アレイとの連結値のハッシュ値を算出する
請求項１に記載のセキュリティ装置。
【請求項４】
前記セキュリティ装置は、前記生成されたハッシュ値を前記直前のハッシュ値と比較する部を含む
請求項２に記載のセキュリティ装置。
【請求項５】
前記セキュリティ装置は、前記正当性検査部による正当性の判断に応答してディジタル署名を実行し、署名回数カウンタを更新させ、更新された署名回数カウンタの値の前記外部不揮発性格納部に書込みを実行させる
請求項１に記載のセキュリティ装置。
【請求項６】
署名されたデータの複数使用を制限する機能を含む情報処理装置であって、前記情報処理装置は、
請求項１〜５のいずれか１項に記載のセキュリティ装置と、
署名鍵ごとに生成されるハッシュ値と当該署名鍵による署名が行われた回数をカウントするための署名回数カウンタとが対とされたカウンタ・アレイを格納する不揮発性格納部を含むインタフェース部と
を含む情報処理装置。
【請求項７】
署名されたデータの複数使用を制限するためのセキュリティ装置を制御する制御方法であって、該制御方法は、
署名鍵ごとに生成されるハッシュ値と当該署名鍵による署名が行われた回数をカウントするための署名回数カウンタとが対とされたカウンタ・アレイを格納する外部不揮発性格納部からカウンタ・アレイを読み込んで揮発性格納部に格納させるステップと、
前記格納されたカウンタ・アレイを読み込んでハッシュ値を生成し正当性検査のため、セキュリティ装置の正当性を保証する鍵手段と前記カウンタ・アレイから過去に生成されたうち直前のハッシュ値とを含む正当性検査部に渡すステップと
前記正当性検査部における正当性の判断に応答して署名機能手段を呼び出すステップと、
署名機能手段を呼び出すごとにカウンタを更新するステップと
をセキュリティ装置に対して実行させるセキュリティ装置の制御方法。
【請求項８】
さらに、前記カウンタ・アレイから過去に生成されたうち直前のハッシュ値を格納するステップを実行させる
請求項７に記載の制御方法。
【請求項９】
前記ハッシュ機能部に対してさらに前記カウンタの値を読み込ませ前記カウンタ・アレイとの連結値のハッシュ値を算出させるステップを実行させる
請求項７に記載の制御方法。
【請求項１０】
さらに、前記生成されたハッシュ値を前記直前のハッシュ値と比較するステップを実行させる
請求項８に記載の制御方法。
【請求項１１】
前記正当性検査部による正当性の判断に応答してディジタル署名を実行するステップと、
前記ディジタル署名の実行に対応して署名回数カウンタを更新させ、更新された署名回数カウンタの値を前記外部不揮発性格納部に書込ませるステップとを実行させる
請求項７に記載の制御方法。
【請求項１２】
署名されたデータの複数使用を制限する機能を含む情報処理装置を制御するための制御方法であって、前記制御方法は、
請求項７〜１１のいずれか１項に記載の処理ステップを実行させるステップと、
署名鍵ごとに生成されるハッシュ値と当該署名鍵による署名が行われた回数をカウントするための署名回数カウンタとが対とされたカウンタ・アレイを格納する格納部を含むインタフェース部からカウンタ・アレイをセキュリティ装置に渡すステップと
を含む情報処理装置の制御方法。
【請求項１３】
請求項７〜１１のいずれか１項の制御方法を実行させるための装置実行可能なプログラム。
【請求項１４】
請求項１２に記載の制御方法を実行させるための装置実行可能なプログラム。
【請求項１５】
ディジタル・チケットを使用するチケット・システムであって、前記チケット・システムは、
チケットを発行するチケット発行者端末と、
発行された前記チケットを格納し、かつ請求項８に記載の情報処理装置と、
前記チケット発行者端末と前記情報処理装置とを相互接続するネットワークと、
前記情報処理装置に対してチケット使用要求を発行するサービス端末と
を含むチケット・システム。
【請求項１６】
前記情報処理装置は、他の情報処理装置から前記チケットを取得して格納し、前記サービス端末にアクセスする、請求項１５に記載のチケット・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディジタル・チケットの不正使用の防止に関し、より詳細には、回数制限のあるディジタル・チケットの不正使用を防止することにより、ディジタル・チケットのセキュリティ管理を行うためのセキュリティ装置、情報処理装置、セキュリティ装置の制御方法、情報処理装置の制御方法、該制御方法を実行させるための装置実行可能なプログラムおよびチケット・システムに関する。
【背景技術】
【０００２】
近年では、パーソナル・コンピュータ、ＰＤＡ、セルラ電話といった型情報処理装置の普及に伴い、いわゆるディジタル・チケット（以下、本発明においては単にチケットとして参照する。）によるサービス提供を行う技術が普及するものと考えられる。チケットは、電子的なデータであるため不正な複製が可能であり、不正に複製されたチケットを使用して複数のアクセスを行う行為（以下、複数使用として参照する。）を防止することがますます必要とされることが想定される。
【０００３】
このような不正行為は排除しなければならないものの、本発明におけるチケットは電子的データであり、複製されたチケットをソフトウエア部のみで複数使用を防止することは困難である。
【０００４】
したがって、上述した不正行為を排除するためにはハードウェアにある程度依存することが必要とされる。しかしながら、ハードウェアに実装されるセキュリティ装置では、そのために割り当てることができるハードウェア資源に限りがある。このため、従来使用されているセキュリティ装置では、不正行為を防止するためのデータを、セキュリティ装置以外の領域に格納することが必要となることも想定される。この際、外部領域との間において複雑な暗号化処理を実行することもできるが、トランザクションにおける応答遅延が生じてしまい、電子的なチケットを使用する効率性を損なうという不都合もある。一方、外部領域に不正行為を防止するデータを格納させるのでは、不正行為を防止するためのデータが不正にアクセスされることにより、セキュリティ装置自体の信頼性も失われることになるという不都合があった。
【０００５】
これまで、暗号化鍵をセキュリティ装置の外部に暗号化した形式で格納する方式が知られているものの、署名の回数を制限する、すなわち複数使用を制限する点では、充分案対応がとられているとはいえない。この場合、鍵Ｂｌｏｂにカウンタを追加することも考えられるが、カウンタの信頼性も同時に保証する必要も生じるので、単にカウンタを追加するデータ形式を採用することによっては、不正な複数使用を排除する点では充分ではない。
【０００６】
また、これまで、チケットを表現するトークンを使用後にハードウェアから消去するする技術も提案されている（非特許文献１）。この場合にもトークンが信頼すべきものであるかを検証することは必要とされる。このため、認証サイトによる鍵をハードウェア内に保持させておくことになるが、この鍵を安全に格納することを保証する点では、複雑性を追加することに加え、新たな信頼性への脅威を追加することにもなる。
【非特許文献１】寺田他、「電子権利流通基盤のための汎用的な原本保証方式」、情報処理学会論文誌、第４２巻、第８号、２００１年８月、ｐｐ.２０１７−２０２９．
【発明の開示】
【発明が解決しようとする課題】
【０００７】
すなわち、これまで不正使用を防止することが必要なディジタル・チケットなどのデータに対して、信頼性の高い回数識別性を付与することが必要とされていた。また、チケットなどのデータの不正使用を信頼性高く防止するために、最小限のハードウェア資源の追加のみで対応することが必要とされていた。
【課題を解決するための手段】
【０００８】
本発明では、不正使用を防止することが必要なデータに対し、ディジタル署名技術を適用することにより、署名された回数を信頼性高くカウントするセキュリティ装置を実現することができれば、最小のハードウェア資源の使用の下にデータの不正使用を効果的、かつ高い信頼性のもとに防止することができる、という着想に基づいてなされたものである。本発明においては、セキュリティ装置内に、署名処理が実行されるたびに更新されるカウンタ（マスタ・カウンタ：ＭＣ）と、外部に格納されたカウンタ・アレイと、上述したＭＣの値とから算出されるハッシュ値とを格納するカウンタ・アレイ・レジスタ（ＣＩＲ）とを含む正当性検査部を構成させる。
【０００９】
正当性検査部は、外部不揮発性格納手段から読み込まれたカウンタ・アレイ（ＣＡ）の値と、最新のＭＣの値とを連結して連結値のハッシュ値を生成させる。このハッシュ値は、ＣＩＲに格納された値と比較され、一致していなければ、ＣＡが署名処理とは無関係に変更されたことを示す。このため、ハッシュ値とＣＩＲの値とが一致していなければ、セキュリティ装置は、署名機能手段を呼び出すための指令を発行せず、ディジタル署名を介した処理がセキュリティ装置内部で停止され、不正使用を防止することができる。
【００１０】
加えて、ＣＡの値は、外部不揮発性格納手段から、読み込ませることができるので、セキュリティ装置のメモリ資源を気にすることなく、複数の署名鍵に対応することができる。
【００１１】
すなわち、本発明によれば、署名されたデータの複数使用を制限するためのセキュリティ装置であって、該装置は、
署名機能手段を呼び出すごとに更新されるカウンタを含む正当性検査部を格納する不揮発性格納部と、
署名鍵ごとに生成されるハッシュ値と当該署名鍵による署名が行われた回数をカウントするための署名回数カウンタとが対とされたカウンタ・アレイを格納する外部不揮発性格納部からカウンタ・アレイを読み込んで格納する揮発性格納部と、
前記揮発性格納部からカウンタ・アレイを読み込んでハッシュ値を生成し正当性検査のため正当性検査部に渡すハッシュ機能部とを含む
セキュリティ装置が提供される。
【００１２】
前記正当性検査部は、さらに、セキュリティ装置の正当性を保証する鍵手段と、前記カウンタ・アレイから過去に生成されたうち直前のハッシュ値とを含むことができる。また、前記ハッシュ機能部は、さらに前記カウンタの値を読み込んで前記カウンタ・アレイとの連結値のハッシュ値を算出する。本発明における前記セキュリティ装置は、前記生成されたハッシュ値を前記直前のハッシュ値と比較する部を含む。さらに、前記セキュリティ装置は、前記正当性検査部による正当性の判断に応答してディジタル署名を実行し、署名回数カウンタを更新し、更新された署名回数カウンタの値の前記外部不揮発性格納部に書込みを実行させる。
【００１３】
本発明によれば、署名されたデータの複数使用を制限する機能を含む情報処理装置であって、前記情報処理装置は、
上記に記載のセキュリティ装置と、
署名鍵ごとに生成されるハッシュ値と当該署名鍵による署名が行われた回数をカウントするための署名回数カウンタとが対とされたカウンタ・アレイを格納する不揮発性格納部を含むインタフェース部と
を含む情報処理装置が提供される。
【００１４】
また、本発明によれば、署名されたデータの複数使用を制限するためのセキュリティ装置を制御する制御方法であって、該制御方法は、
署名鍵ごとに生成されるハッシュ値と当該署名鍵による署名が行われた回数をカウントするための署名回数カウンタとが対とされたカウンタ・アレイを格納する外部不揮発性格納部からカウンタ・アレイを読み込んで揮発性格納部に格納させるステップと、
前記格納されたカウンタ・アレイを読み込んでハッシュ値を生成し正当性検査のため、セキュリティ装置の正当性を保証する鍵手段と前記カウンタ・アレイから過去に生成されたうち直前のハッシュ値とを含む正当性検査部に渡すステップと
前記正当性検査部における正当性の判断に応答して署名機能手段を呼び出すステップと、
署名機能手段を呼び出すごとにカウンタを更新するステップと
をセキュリティ装置に対して実行させるセキュリティ装置の制御方法が提供される。
【００１５】
本発明においては、さらに、前記カウンタ・アレイから過去に生成されたうち直前のハッシュ値を格納するステップを実行させることができる。また、本発明においては、前記ハッシュ機能部に対してさらに前記カウンタの値を読み込ませ前記カウンタ・アレイとの連結値のハッシュ値を算出させるステップを実行させることができる。本発明では、さらに、前記生成されたハッシュ値を前記直前のハッシュ値と比較するステップを実行させる。
【００１６】
さらに、本発明においては、前記正当性検査部による正当性の判断に応答してディジタル署名を実行するステップと、
前記ディジタル署名の実行に対応して署名回数カウンタを更新させ、更新された署名回数カウンタの値を前記外部不揮発性格納部に書込むステップとを実行させることができる。
【００１７】
また、本発明においては、署名されたデータの複数使用を制限する機能を含む情報処理装置を制御するための制御方法であって、前記制御方法は、
上記に記載の処理ステップを実行させるステップと、
署名鍵ごとに生成されるハッシュ値と当該署名鍵による署名が行われた回数をカウントするための署名回数カウンタとが対とされたカウンタ・アレイを格納する格納部を含むインタフェース部からカウンタ・アレイをセキュリティ装置に渡すステップと
を含む情報処理装置の制御方法が提供される。
【００１８】
本発明においては上記の制御方法を実行させるための装置実行可能なプログラムが提供される。
【００１９】
さらに、本発明によれば、ディジタル・チケットを使用するチケット・システムであって、前記チケット・システムは、
チケットを発行するチケット発行者端末と、
発行された前記チケットを格納し、かつ上記記載の情報処理装置と、
前記チケット発行者端末と前記情報処理装置とを相互接続するネットワークと、
前記情報処理装置に対してチケット使用要求を発行するサービス端末と
を含むチケット・システムが提供される。前記情報処理装置は、他の情報処理装置から前記チケットを取得して格納し、前記サービス端末にアクセスすることができる。
【発明を実施するための最良の形態】
【００２０】
１．ハードウェア・コンフィギュレーション
図１は、本発明のセキュリティ装置を含む情報処理システムの概略的な構成を示した図である。図１に示した情報処理システム１０は、セキュリティ装置１２と、外部装置１４と、セキュリティ装置１２における判断に基づき、種々の処理を提供するためのインタフェース部１６とを含んで構成されている。セキュリティ装置１２は、本発明により、ディジタル署名と、当該ディジタル署名の署名回数カウンタとを使用して、インタフェース部１６を介して記憶装置やコンピュータ装置などの外部装置１４へのアクセスを制御させている。また、インタフェース部１６は、セキュリティ装置１２の外部に設けられた不揮発性メモリから構成される外部不揮発性格納部２０を含んでいる。この外部不揮発性格納部２０は、より詳細には後述するカウンタ・アレイ（ＣＡ）を格納している。この他、本発明の情報処理システム１０では、要求されたタスクを提供するためのアプリケーション・ソフトウェアに対するアクセスを制御することもできる。
【００２１】
さらに、図１に示すように、セキュリティ装置１２は、概ね、不揮発性格納部２２と、揮発性格納部２４とを含んで構成されている。不揮発性格納部２２は、セキュリティ装置１２に固有のデータを格納する領域である。これらの格納部は、ＲＡＭ、やフラッシュメモリなどを使用して構成させることができる。また、揮発性格納部２４は、セキュリティ装置１２の過渡的なデータを格納する領域とされている。さらに、セキュリティ装置１２には、２種類の暗号アルゴリズムが実装されており、そのうちの１つは、例えばＳＨＡ−１といった一方向のハッシュ・アルゴリズムである。他の１つは、ＲＳＡといった署名アルゴリズムである。これらのうち、ＳＨＡ−１といったハッシュ・アルゴリズムは、ハッシュ機能を実現させ、ＲＳＡといった署名アルゴリズムは、署名機能部を実現させている。
【００２２】
図２は、本発明のセキュリティ装置１２のより詳細な機能構成を示した図である。図２に示すように、本発明のセキュリティ装置１２は、不揮発性格納部２２と、揮発性格納部２４と、制御部２６と、ハッシュ機能部２８と、署名機能手段３０とを含んで実装されている。この署名機能手段３０には、署名を行うために使用されるプライベート鍵、公開鍵といったデータを生成し、これらを使用して、署名を実行する。また署名機能手段３０には、後述するディジタル署名機能が正常に呼び出されたことに応答して、呼出回数をカウントするためのカウンタ部を含んで構成することができる。また、本発明の他の実施の形態では、署名機能手段３０ではなく、セキュリティ装置１２のいずれかの領域にカウンタ部を構成させることができる。また、図２に示した実施の形態では、命令インタフェース部（Ｉ／Ｏ）３２が、セキュリティ装置１２の１つのモジュールとして構成されていて、外部に接続されたインタフェース部１６と相互通信を行っている。また、これらの各機能部は、内部バスにより相互接続されていて、互いにデータまたは命令を送受信させている。制御部２６は、本発明にしたがい、不正使用を防止させるように各格納部および各機能部を制御している。
【００２３】
不揮発性格納部２２には、概ねマスタキー（ＭＫ）格納部３４と、マスタ・カウンタ値（ＭＣ）格納部３６と、カウンタ・インテグリティ・レジスタ（ＣＩＲ）領域３８とを含んでおり、外部からのアクセスに対して高く保護されている。マスタキー格納部３４は、署名鍵を外部保存するためのＭＫを格納している。マスタキー格納部３４に格納されたＭＫは、例えば１２８ビットのＡＥＳキーとすることができ、鍵Ｂｌｏｂを暗号化させるために使用される。典型的には、このＭＫは、製造時に登録され、本発明のセキュリティ装置の寿命に相当する間、変更されることは無い。また、ＭＣ格納部３６は、マスタ・カウンタ（ＭＣ）を格納している。ＭＣ値は、署名機能手段が適切に呼び出されたことに応答して出力されるカウンタ部の信号を受けてカウントアップされる。このため、所定の署名機能が呼び出され、実行されると、ＭＣ格納部３６のＭＣ値は、必ず異なる値とされている。
【００２４】
さらに、ＭＣ値は、セキュリティ装置１２の実行する署名機能手段のいかなる処理に対しても、その実行に応答して単調に増加するように構成されている。このため、ＭＣ値は、セキュリティ装置１２の署名機能手段の呼出しの良好なモニタを提供する。署名機能手段は、本発明においては、マイクロコードで記述されたプログラムである鍵生成命令(genkey)、鍵削除命令(delkey)、および署名命令(sign)などを挙げることができるが、これらに限定されるものではない。ＭＣ格納部３６のサイズは、セキュリティ装置１２の寿命中にカウンタがオーバーフローしない程度のサイズとすることができ、具体的には例えば、１秒あたりに１回の状態変更命令が実行された場合でも、３２ビットあれば１００年間は充分対応することができる。
【００２５】
また、ＭＣ値は、製造工程において初期に０に設定され、署名機能手段が呼び出されて、セキュリティ装置の状態が変更されるとインクリメントされる。カウンタ・インテグリティ・レジスタ（ＣＩＲ）領域３８は、カウンタの正当性を保証する機能を与える機能部とされており、ＣＩＲ領域３８には、その値として、ＣＩＲ＝Ｈａｓｈ（ＭＣ＋ＣＡ）の値（以下、単にＣＩＲ値として参照する。）が格納される。上記式中、「＋」は、文字列の「連結:concatenation」を意味する。
【００２６】
また、揮発性格納部２４には、セキュリティ装置１２がカウンタ・アレイ（ＣＡ）４０の処理を実行するため、ＣＡ４０のデータが一時的に格納されている。このＣＡ４０は、鍵Ｂｌｏｂのハッシュ値および署名回数カウンタの対のデータを署名鍵の数だけ含むものであり、ハードウェア的には、最もメモリ資源を消費するデータである。このため本発明では、セキュリティ装置１２の外部に設けられた外部不揮発性格納部（図示せず）に署名鍵リストを構成させる。このため、セキュリティ装置１２は、署名回数カウンタの数に対するメモリ資源上での制約を気にすることがなく、不正使用に対応することを可能としている。
【００２７】
図３は、本発明においてＣＡ４０に格納される署名鍵エントリの概略的な構成を示した図である。図３に示されるように、署名鍵エントリ４２は、０〜ｎ−１個のｎ個を含むことができるように構成されている。エントリされた対は、各署名鍵に対する鍵Ｂｌｏｂのハッシュ値４４と、対応する鍵に対する署名回数カウンタ４６とを含んでいる。署名回数カウンタ４６は、新規に署名鍵が登録された時点で、対応する署名回数カウンタがゼロに設定され、対応する署名鍵で署名が実行されるごとにインクリメントされる。
【００２８】
同時に、ＣＡ４０には、鍵識別値、例えばＫｅｙ０が使用中か使用されていないかを示すための使用情報を含ませておくこともできる。この使用情報は、本発明の特定の実施の形態では、追加のビット領域を設けておき、使用中でない場合には、この追加のビット領域に使用フラグを設定しないことにより、使用中ではないことを示すことができる。また、本発明の他の実施の形態では、署名鍵の不使用を示すために、値（−１）といった特定のカウンタ値を設定しておくこともできるし、０×０といった特定の鍵Ｂｌｏｂのハッシュ値を使用することもできる。このように、使用中ではない署名鍵を特定することにより、後述する鍵削除機能による未使用の署名鍵の削除を防止することができる。
【００２９】
鍵Ｂｌｏｂのハッシュ値は、署名鍵とその署名回数カウンタとの間の暗号的な参照を確立させ、同一の鍵識別値のすでに削除されてしまった鍵Ｂｌｏｂの使用を防止する。この鍵Ｂｌｏｂハッシュ値は、ポリシー・データに応答して、例えば１６０ビットのＳＨＡ−１といった通常の一方向ハッシュ関数の値よりも短くすることができる。より具体的に説明すると、所定のセキュリティ装置の全寿命について最大で２３２の鍵Ｂｌｏｂが想定でき（マスタ・カウンタが３２ビット長であるため）、２３２の鍵Ｂｌｏｂの任意の対がそれらのハッシュ値の正確に同一の下位６４ビットを有する確率は著しく小さい。このため、ハッシュ値は、本発明においては、鍵Ｂｌｏｂのハッシュ値からＭＣ値のビット数の倍（すなわち、３２×２＝６４）のビット数を取得すれば、攻撃を防ぐために概ね充分と考えられるが、ハードウェア資源が許す限り、これより長くとも短くとも良い。
【００３０】
２．ＣＡの更新およびセキュリティ機構
ＣＡ４０の更新およびセキュリティ機構は、本質的に、署名機能手段である、マイクロコードとして構成される鍵の生成(genkey)、署名(sign)、および鍵の削除(delkey)の正当な呼出が実行された事象により実現される。図４には、鍵を生成するgenkeyの実行する処理を示したフローチャートを示す。図４に示すgenkeyの処理は、ステップＳ１０から開始し、インタフェース部がセキュリティ装置に対して鍵生成を指令する。ステップＳ１２において、インタフェース部は、その不揮発性格納部からＣＡのエントリ全体を読み出し、セキュリティ装置の揮発性格納部に渡す。ステップＳ１４では、セキュリティ装置は、ＭＣ値とＣＡ値とからハッシュ値を計算し、同時にＣＩＲ値を読み出す。ステップＳ１６では、計算されたハッシュ値とＣＩＲ値との比較を行う。
【００３１】
比較の結果、ハッシュ値＝ＣＩＲの値であれば、セキュリティ装置が受け取ったＣＡが正当なものなのでステップＳ１８へと進み、署名機能手段が署名鍵＜Ｋｓ、Ｋｖ＞を生成し、ＭＫで暗号化してインタフェース部へと返す。ここで、Ｋｓは、私有鍵であり、Ｋｖは、公開鍵である。また、ステップＳ１８では、インタフェース部に対して生成された署名鍵を、まだ未使用のエントリ、図３に示した実施の形態では、エントリ＃４に書き込みさせる。この場合、対となる署名回数カウンタが０に設定される。一方、ステップＳ２０では、セキュリティ装置は、ＭＣ値を更新し、同時に新たなＣＡの値を使用して、新たなハッシュ値を生成し、新たなハッシュ値＝ＣＩＲ値としてＣＩＲ値を更新し、ステップＳ２２でgenkey処理を終了させる。また、ステップＳ１６の比較の結果、ハッシュ値が格納されたＣＩＲではない場合には、ＣＡが変更されたことを示すので、処理は、ステップＳ２４へと進んで処理を停止する。
【００３２】
図５は、本発明において署名を行うsignの実行する処理を示したフローチャートである。この処理は、ステップＳ３０において、まずセキュリティ装置がインタフェース部からメッセージｍへの署名指令を受け取り、ステップＳ３２において署名を行うｉ番目（具体的には例えば４番目）の鍵Ｂｌｏｂと保持しているＣＡとを、セキュリティ装置に渡す。ステップＳ３４では、ＭＣ値とＣＡ値とからハッシュ値を計算し、セキュリティ装置が格納するＣＩＲ値を読み出す。ステップＳ３６において、計算されたハッシュ値とＣＩＲ値とを比較し、ハッシュ値＝ＣＩＲ値である場合には、ステップＳ３８へと進み、渡された鍵Ｂｌｏｂのハッシュ値を算出し、ＣＡの鍵ＢｌｏｂのＨａｓｈ値と比較し、同一の場合には、ＣＡと鍵とが対応するものと判断し、ステップＳ４０においてセキュリティ装置は、対応する鍵Ｂｌｏｂ内の鍵を使用して、メッセージｍとＣＡ内の署名回数カウンタ値を連結したものに対して署名を行う。また、ステップＳ４２において、インタフェース部は、署名を受け取ると、署名回数カウンタのインクリメントを実行する。ステップＳ４２では、セキュリティ装置はＭＣ値、ＣＩＲ値を更新させ、同時にセキュリティ装置は、インタフェース部に対して、該当する鍵Ｂｌｏｂの署名回数カウンタをインクリメントさせるための指令を発行する。一方、ステップＳ３６およびステップＳ３８の比較においていずれかが一致していない場合には、ステップＳ４４へと進んで処理を停止させる。図５に示したsign処理により、鍵Ｂｌｏｂと使用カウンタとが対応関係を保持しつつ、署名回数カウンタの安全なインクリメントを可能となる。
【００３３】
図６は、エントリを削除するdelkeyの処理を示したフローチャートである。delkeyの処理は、ステップＳ５０において、セキュリティ装置がインタフェース部からの鍵の削除要求を受け取り、同時に不揮発性格納部に格納されたＣＡをインタフェース部から受け取る。ステップＳ５２では、セキュリティ装置は、上述した処理を使用してＣＡの正当性を判断する。ステップＳ５２において、ＣＡが正当であると判断した場合（ｙｅｓ）には、ステップＳ５４へと進んで対応するＣＡの部分を初期化し、揮発性格納部に格納する。ステップＳ５６では、セキュリティ装置は、ＭＣ、ＣＩＲを計算して不揮発性格納部に格納し、更新させる。さらに、セキュリティ装置は、インタフェース部に対して対応するＣＡのエントリを初期化させ、更新されたＣＡを、インタフェース部の外部不揮発性格納部に格納させる。ステップＳ５２において正当性がないと判断された場合（ｎｏ）には、delkey処理は、ステップＳ５８へと処理を分岐させ、処理を停止させる。
【００３４】
図７には、上述したgenkey、delkey、signの各処理を実行するためのマイクロコードの入力および出力ならびにその処理を示す。いずれの処理についても、まず、パラメータとして与えられるＣＡの値の正当性をＣＩＲを使用して判断し、各処理を実行させる。このため、不正にＣＡが変更されたような場合には、各処理が実行されることなく、不正使用に対する安全性を高めることができる。また、ＣＡは、インタフェース部にplain
textの形式で保存されているので、暗号化・復号化処理を実行することなく参照できるので、処理速度を向上させることができる。
【００３５】
さらには、外部登録されたＣＡに不正アクセスしてこれを取得し、署名を実行しようとしても、セキュリティモジュールのＭＣの値が異なるのでＣＩＲの値の一致が得られず、不正使用を防止することができる。さらに、鍵の削除を行い、使用カウンタを初期化するといった不正アクセスに対しても、削除前の鍵と鍵Ｂｌｏｂのハッシュ値がＣＡにおいて異なるので、その後の処理を実行することができず不正使用を防止することができる。また、インタフェース部自身が署名を行おうとしても、鍵Ｂｌｏｂは、ＭＫで暗号化されているのでインタフェース部自身では復号することができず、セキュリティ装置以外による署名が高度に防止できることになる。また、セキュリティ装置は、ＣＡを暗号化してインタフェース部に送ることがないので、命令インタフェースへの負荷を少なくすることができる。一方で、インタフェース部は、ＣＡをそのまま格納しているので、復号処理を行うことなく、署名回数カウンタの値を高速に参照させる。
【００３６】
３．セキュリティ装置のインプリメンテーション（実施の形態）
図８には、本発明のセキュリティ装置を実装したチケット・システムの実施の形態を示す。本発明のチケット・システム５０は、ネットワーク５２を介したチケット発行者端末５４と、本発明のセキュリティ装置を含むユーザ端末５６と、ユーザ端末５６とのデータ相互通信が可能なサービス端末５８とを含んでいる。チケット発行者としては、本発明の特定の実施の形態では、例えば各種イベントのチケット発行権を有するイベント・プロバイダ、有料情報サービスを提供するサービス・プロバイダ、車両・航空機・列車などのチケットを発行する権利を有する旅客サービス・プロバイダなど、特定のサービスを受けるために所定のチケットを発行することが想定されるいかなるものでも良い。また、図８では、サービス端末５８は、ネットワーク５２に接続されているものとして説明されている。しかしながら、本発明においては、認証局などからの製造者鍵などの情報を受け取ることが必要ではないので、サービス端末５８は、必ずしもネットワーク５２に接続されていなくとも良い。
【００３７】
また、各端末５４、５６は、これまで知られたいかなる情報処理装置であっても良く、具体的には例えば、パーソナル・コンピュータ、ワークステーション、セルラ電話、ＰＤＡなどを挙げることができる。また、ユーザ端末５６は、例えば、赤外線通信機能やバーコード表示機能を含んでいて、サービス端末に対してアクセスすることができるようにされていても良い。また、チケット発行者には、チケット発行者であることを証明するためのディジタル署名機能が与えられている。
【００３８】
図８に示したチケット・システムにおけるチケットの提供および使用について概説すると、まずチケット発行者端末５４は、ユーザ端末５６へと、所定のチケットｔを送信する。このチケットｔには、受けようとするサービスのチケットｔの内容データなどが含まれている。ユーザ端末５６は、このチケットｔを受信して、適切な記憶領域に格納する。また、ユーザ端末５６には、本発明のセキュリティ装置が含まれていて、サービス端末５８に対して、インタフェース部を介してアクセスを可能とする。一方、サービス端末５８は、ユーザ端末５６から、ユーザ端末５６が保持するＣＡに含まれる署名回数カウンタをメッセージと共に受信して、最大署名回数Ｃｍａｘを参照してアクセス許可を発行することにより、回数制限のあるチケットに対しても対応することができる構成とされている。
【００３９】
図９は、本発明のチケット・システム５０におけるユーザ端末５６の機能構成を示した概略図である。図９に示すように、ユーザ端末５６は、通信装置６０と、本発明のセキュリティ装置６２と、各種の処理を実行させるための中央処理装置（ＣＰＵ）６４と、各種データを格納するためのメモリ６６と、Ｉ／Ｏインタフェース部６８とを含んでいる。ユーザ端末５６は、チケット発行者端末５４からサービスの内容を特定するメッセージを通信装置６０を介して受信する。この内容は、メモリ６６に格納され、サービスを受けようとする場合に、Ｉ／Ｏインタフェース部６８へと送られて、サービス端末５８が処理可能とされる。このＩ／Ｏインタフェース部６８は、無線または赤外線通信装置であっても良く、また、バーコードなどを表示させるための部とされていても良い。
【００４０】
また、セキュリティ装置６２には、署名を行うために使用する私有鍵マスタ署名鍵ＭＫが格納されていて、サービスを受ける場合に、生成された鍵がセキュリティ装置６２内で生成されたことを証明する署名を行うために使用される。セキュリティ装置６２は、本発明の説明している実施の形態では、チップとして構成することができる。ＣＰＵ６４は、本発明において使用するインタフェース部を実現するためのプログラムを、適切な記憶領域から読み取って実行し、ユーザ端末５６内にＩ／Ｏインタフェース部６８を実現させている。さらに、Ｉ／Ｏインタフェース部６８は、その他、外部装置との相互通信を可能とするＩ／Ｏインタフェース機能や、要求メッセージをバーコード表示させる機能を含むＩ／インタフェース機能を含んでいても良い。
【００４１】
図１０は、本発明のチケット・システム５０において使用されるサービス端末５８の概略的な構成を示す。サービス端末５８は、ＣＰＵ７０と、Ｉ／Ｏインタフェース７２と、メモリ７４と、メッセージ解析部７６と、署名回数判断部７８と、アクセス指令部８０と、通信装置８２を含んでいる。最大使用回数Ｃｍａｘは、チケット発行者端末５４からサービス端末５８へと送信されてもよいが、ユーザ端末５６から、サービス端末５８が最大署名回数Ｃｍａｘを受け取り、メモリ７４に格納しておくこともできる。サービス端末５８は、要求メッセージがネットワークを介して通信装置８２が取得する場合には、メッセージ解析部７６において要求メッセージを解析し、要求されるサービスを特定し、同時にユーザ端末５６から要求メッセージと共に送信される使用カウンタの値Ｃを取得し、メモリ７４に格納する。その後、署名回数判断部７８は、メモリ７４から署名回数カウンタの値Ｃを読み出し、さらに、特定されたサービスに対する最大署名回数Ｃｍａｘを参照して署名回数カウンタの値Ｃが、Ｃ≦Ｃｍａｘであるか否かを判断する。
【００４２】
また、本発明の他の実施の形態において、要求メッセージがバーコードに変換されて表示される場合には、サービス端末５８のバーコードリーダなどがバーコードを読み出してＩ／Ｏインタフェース７２において要求メッセージに復号させ、要求メッセージの解析を実行させることもできる。
【００４３】
一方、サービス端末５８は、要求メッセージから、ユーザの正当性を判定すると、Ｃ≦Ｃｍａｘか否かを判断する。Ｃ≦Ｃｍａｘである場合には、最大署名回数を超えたアクセス要求ではないので、署名回数判断部７８は、アクセス指令部８０に対して通知を行い、Ｉ／Ｏインタフェース７２を介してサービス端末が管理するゲート装置８４またはアプリケーション８６へのアクセスを可能とさせている。
【００４４】
図１１には、本発明のチケット・システムにおいて使用されるユーザ端末５６に含まれるセキュリティ装置６２の使用する処理およびパラメータをまとめて示す。鍵生成(genkey)は、一組の私有鍵Ｋｓおよび公開鍵Ｋｖを生成し、その公開鍵Ｋｖに対してマスタ署名鍵ＭＫで署名する処理である。このとき、同時に使用カウンタＣ＝０として設定される。なお、このとき、ＣＡは、セキュリティ装置６２以外のユーザ端末５６のインタフェース部により、メモリ６６などに格納させておくことができる。また、署名は、処理signに対応するものであり、サービスを特定するメッセージ送信要求をユーザ端末５６が発行することにより、対応するメッセージおよび署名回数カウンタの値を結合させ、私有鍵Ｋｓにより署名を行って、署名回数カウンタＣを１だけインクリメントさせる。
【００４５】
鍵消去(delkey)は、入力パラメータを使用せず、指定された私有鍵Ｋｓを消去する機能を有している。また、ＭＫおよび私有鍵Ｋｓは、セキュリティ装置６２内に格納され、外部には送信されない。また、私有鍵Ｋｓと署名回数カウンタＣの数は、要求するべきサービスの数に応じて、必ずしも１：１に対応することはなく、要求メッセージごとに使用カウンタＣが設定されていてもよい。
【００４６】
図１２には、本発明のチケット・システム５０の実行するチケット・プロトコルを示す。ステップＳ７０において、ユーザ端末がチケット発行者端末からチケットを入手する処理を指令すると、ステップＳ７２において、genkey処理を実行させて私有鍵および公開鍵の対＜Ｋｓ，Ｋｖ＞を生成する。この際、署名回数カウンタが０に設定される。ユーザ端末は、生成された公開鍵Ｋｖをセキュリティ装置６２内のマスタ署名鍵ＭＫで署名したＭ[Ｋｖ]をチケット発行者端末に送信する。この署名を検査し、チケット発行者端末は、ユーザ端末が純正なチップにおけるマスタ署名鍵ＭＫを含むセキュリティ装置であることを確認する。その後チケットの購入が正当に完了した段階で、ステップＳ７４でディジタル・チケットＡ[Ｍ[Ｋｖ]＋ｔ]を、ユーザ端末へと送信する。説明している実施の形態では、チケットｔにＣｍａｘの値も含まれており、共にユーザ端末が受信する。また、Ｍは、マスタＭＫにより行われる署名を示す。
【００４７】
ステップＳ８０では、サービス端末がユーザ端末に対してチケットｔを使用するか否かを促す信号ｎを送信する。なおこの信号ｎは、角度範囲を有するワイヤレス通信または赤外線通信機能により相互通信することにより、有効範囲にユーザ端末が入った段階でユーザ端末に向けてマルチキャストすることができる。ステップＳ８２では、ユーザ端末は、信号ｎを受信し、ユーザ端末がチケットを使用する場合には、セキュリティ装置を起動して署名Ｋｓ[ｎ＋Ｃ]およびチケットＡ[Ｍ[Ｋｖ]＋ｔ]をサービス端末へと送信する。
【００４８】
ステップＳ８４では、サービス端末は、ユーザ端末に対してアクセスを判断するため、チケットの内容ｔ、署名チケットＡ[Ｍ[Ｋｖ]＋ｔ]の正当性、署名Ｍ[Ｋｓ]の正当性、ユーザ端末による署名Ｋｓ[ｎ＋Ｃ]の正当性、Ｃの値を取得する。ステップＳ８６においてチケットの正当性、各署名の正当性が確認された場合には、ステップＳ８８においてＣ≦Ｃｍａｘであるか否かを判断する。ステップＳ８８においてＣ≦Ｃｍａｘである（ｙｅｓ）と判断された場合には、ステップＳ９２でアクセス許可指令を発行し、ユーザ端末のアクセスを許可する。ステップＳ８８において、ＣがＣｍａｘを超える場合にはステップＳ９０において処理を中止し、ユーザ端末のアクセス許可を発行しない。
【００４９】
これらのチケット・プロトコルは、ユーザ端末が含む本発明のセキュリティ装置によりマスタ・カウンタの値、ＣＩＲ値、ＣＡ値を使用してセキュリティのチェックを実行しながら進められるので、想定される不正使用について高い安全性を有する。
【００５０】
図１３には、本発明のチケット・プロトコルの他の実施の形態を示す。ビジネスモデルによっては、チケットの転売を許すことが望ましいこともある。同一のセキュリティ装置（チップ）およびチケット・プロトコルを使用するものどうしであれば、図１３に示すように、チケットの転売を行うことができる。
【００５１】
この実施の形態では、図１３に示すように、ユーザ端末９０がチケット発行者端末５４からチケットを購入するところまでは図１１で説明したプロトコルと同一である。ユーザ端末９０が、チケットを、同一のＭＫを持つ第３者端末９２に譲渡する。第３者端末９２は、セキュリティ装置を起動させて、自分のチケット用の鍵Ｋ２ｓを生成する。ユーザ端末９０と第３者端末９２との間には、相互認証を含む安全な通信路があるとする。第３者端末９２は、Ｋ２ｓに対する公開鍵Ｋ２ｖを、その鍵が純正のチップから出てきていることを証明する署名を付けてユーザ端末９０へと送信する。
【００５２】
また、ユーザ端末９０と第３者端末９２との間において支払いを含むチケットの転売に関する条件に同意すると、ユーザ端末９０は、自分のチケット鍵Ｋ１ｓで第３者端末９２の署名Ｍ２[Ｋ２ｖ]を作成し、第３者端末９２に返す。また、同時にチケット署名チケットＡ[Ｍ１[Ｋ１ｖ]＋ｔ]も第３者端末９２に渡す。第３者端末９２は、この署名に含まれるカウンタＣ１の値が０であることを検証し、このチケットが既に使われていないことを確認する。
【００５３】
次に、第３者端末９２がこのチケットを使う場合の処理を説明する。サービス端末５８は、第３者端末９２に対してチケットの使用を促す信号ｎを送る。第３者端末９２は、この信号ｎを受信し、Ｋ２で署名して返す。同時に、ユーザ端末９０から受け取った「ボブがキャロルに対してチケットを譲渡したことを示す署名」Ｋ１ｓ[Ｍ２[Ｋ２ｖ]＋Ｃ１]と、チケット自身Ａ[Ｍ１[Ｋ１ｖ]＋ｔ]もサービス端末５８へと送信する。サービス端末５８は、Ｃ１とＣ２とがどちらもＣｍａｘではないこと、またそれぞれの署名が正しいことを確認する。ユーザ端末９０の譲渡署名Ｋ１ｓ[Ｍ２[Ｋ２ｖ]＋Ｃ１]と、第３者端末９２のチケット使用署名Ｋ２ｓ[ｎ＋Ｃ２]の双方が、それぞれ署名回数カウンタに基づいて判断できるので、チケットの複数使用を判断することができる。
【００５４】
上述した実施の形態において、複数のチケットを格納するには、チケットあたり１つの私有鍵と、１つの署名回数カウンタとを必要とする。例えば１０２４ビットのＲＳＡ鍵を使用するものとし、使用回数カウンタが１バイトであるとすれば、一つのチケットあたり合計１２９バイトの不揮発性メモリを使うことになる。多数のチケットを格納する場合には、この値は、ハードウェア資源的な観点から負担となることも想定できる。
【００５５】
これに対応するためには、ＲＳＡ鍵を暗号化して廉価な外部記憶（ハードディスクなど）に格納する方法を挙げることができる。セキュリティ装置には、このためのＲＳＡ鍵のハッシュとカウンタとを記憶させる。また、セキュリティ装置全体で一つのマスタ記憶鍵を用意し、これもセキュリティ装置内に格納させることができる。チケット鍵を生成した場合、セキュリティ装置は、このチケット鍵をマスタ記憶鍵で暗号化したものを出力する。チケット鍵を使用する際には、暗号化されたチケット鍵をセキュリティ装置に返すことにより、復号後、チケット鍵を使用することができる。
【００５６】
チケット鍵が使用できるのは、セキュリティ装置内だけなので、チケット鍵は事実上、セキュリティ装置中に存在するとみなすことができる。セキュリティ装置は、チケット鍵の使用を要求されると、暗号化されていたチケット鍵を復号化し、そのハッシュを生成させる。その結果、どの署名回数カウンタに対応する鍵であるかがわかるので、署名の後、該当する署名回数カウンタをインクリメントすることにより、複数使用を制限することができる。
【００５７】
この実施の形態においては、マスタ記憶鍵は、例えば１２８ビットのＡＥＳ鍵であり、これはセキュリティ装置全体で一つとすることが好ましい。また、チケット鍵に対しては、例えば２０バイトのハッシュと１バイトのカウンタであるので、チケットあたり２１バイトの不揮発性メモリを使用することになる。
【００５８】
本発明の制御方法は、装置実行可能なプログラムとして提供することができ、これらのプログラムとしては、機械語、Ｃ言語、Ｃ＋＋言語、Ｊａｖａ（登録商標）、Ａｐｐｌｅｔ（登録商標）など、これまで知られたいかなるプログラミング言語をもって記述することができる。
【図面の簡単な説明】
【００５９】
【図１】本発明のセキュリティ装置を含む情報処理システムの概略的な構成を示した図。
【図２】本発明のセキュリティ装置のより詳細な機能構成を示した図。
【図３】本発明においてＣＡに格納される署名鍵リストの概略的な構成を示した図。
【図４】鍵を生成するgenkeyの実行する処理を示したフローチャート。
【図５】本発明において署名を行うsignの実行する処理を示したフローチャート。
【図６】エントリを削除するdelkeyの処理を示したフローチャート。
【図７】genkey、delkey、signの各処理を実行するためのマイクロコードの入力および出力ならびにその処理を示した図。
【図８】本発明のセキュリティ装置を実装したチケット・システムの実施の形態を示した図。
【図９】本発明のチケット・システムにおけるユーザ端末の機能構成を示した概略図。
【図１０】本発明のチケット・システムにおいて使用されるサービス端末５８の概略的な構成を示した図。
【図１１】本発明のチケット・システムにおいて使用されるユーザ端末に含まれるセキュリティ装置の使用する処理およびパラメータを示した図。
【図１２】本発明のチケット・システムの実行するチケット・プロトコルを示した図。
【図１３】本発明のチケット・プロトコルの他の実施の形態を示した図。
【符号の説明】
【００６０】
１０…情報処理システム、１２…セキュリティ装置、１４…外部装置、１６…インタフェース部、２０…外部不揮発性格納部、２２…不揮発性格納部、２４…揮発性格納部、２６…制御部、２８…ハッシュ機能部、３０…署名機能手段、３２…命令インタフェース（Ｉ／Ｏ）部、３４…ＭＫ格納部、３６…ＭＣ格納部、３８…ＣＩＲ格納領域、４０…カウンタ・アレイ（ＣＡ）、４２…署名鍵エントリ、４４…鍵Ｂｌｏｂのハッシュ値、４６…署名回数カウンタ、５０…チケット・システム、５２…ネットワーク、５４…チケット発行者端末、５６…ユーザ端末、５８…サービス端末、６０…通信装置、６２…セキュリティ装置（チップ）、６４…ＣＰＵ、６６…メモリ、６８…Ｉ／Ｏインタフェース部、７０…ＣＰＵ、７２…Ｉ／Ｏインタフェース、７４…メモリ、７６…メッセージ解析部、７８…署名回数判断部、８０…アクセス指令部、８２…通信装置、８４…ゲート装置、８６…アプリケーション、９０…ユーザ端末、９２…第３者端末
【図１】
2005260676.tif 000003
【図２】
2005260676.tif 000004
【図３】
2005260676.tif 000005
【図４】
2005260676.tif 000006
【図５】
2005260676.tif 000007
【図６】
2005260676.tif 000008
【図７】
2005260676.tif 000009
【図８】
2005260676.tif 000010
【図９】
2005260676.tif 000011
【図１０】
2005260676.tif 000012
【図１１】
2005260676.tif 000013
【図１２】
2005260676.tif 000014
【図１３】
2005260676.tif 000015