JP3979303B2 - History holding method and apparatus - Google Patents

History holding method and apparatus Download PDF

Info

Publication number
JP3979303B2
JP3979303B2 JP2003045836A JP2003045836A JP3979303B2 JP 3979303 B2 JP3979303 B2 JP 3979303B2 JP 2003045836 A JP2003045836 A JP 2003045836A JP 2003045836 A JP2003045836 A JP 2003045836A JP 3979303 B2 JP3979303 B2 JP 3979303B2
Authority
JP
Japan
Prior art keywords
history
verification value
data
verification
signature
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
Application number
JP2003045836A
Other languages
Japanese (ja)
Other versions
JP2004007431A (en
Inventor
和雄 齊藤
吉浩 申
幸史 竹田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2003045836A priority Critical patent/JP3979303B2/en
Publication of JP2004007431A publication Critical patent/JP2004007431A/en
Application granted granted Critical
Publication of JP3979303B2 publication Critical patent/JP3979303B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

【0001】
【発明の属する技術分野】
この発明はデータを検証する技術に関し、とくに連続する大量のデータ群、例えば利用履歴のようなデータを安全に伝送あるいは保持しなければならないような情報処理装置一般に用いるのに適したデータ検証技術に関する。
【0002】
【従来の技術】
昨今のデジタル情報処理技術の発達や、情報ハイウェイ構想などにより、あらゆる情報がデジタル化され、ネットワークを通じて配付・流通される時代が到来しようとしている。すでにインターネットやパソコン通信、あるいはCD−ROMという形態で、文字情報はもとより、画像、動画、音声、プログラムなどの様々な情報が配付・流通しはじめている。
【0003】
しかしながら、そのような文字、画像、動画、音声、プログラムなどの様々なデジタル情報は物理的な物とは異なって実体を持たないため、利用しなければ価値がない、複写が容易で、かつ低コストで可能である、などの特徴を持つ。しかし、現在はその所有に対して対価を支払っているため、一旦、ある人に所有された情報が複写されるということを制限している。本来、デジタル情報の最も優れた特徴であるはずの複写容易性やそのコストの低さを無理やりに封じ込めていることになる。
【0004】
これを解決するために、最近ではプログラムを代表とするデジタル情報を暗号化して自由に流通させ、利用する際には代金を支払って、デジタル情報を利用するための復号鍵を受取り、情報を復号化して利用するようなシステムも登場してきている。あるいは、情報は利用しなければ価値がないという観点から、特公平6−95302号公報におけるソフトウェアサービスシステムや、特開平7−21276号公報の情報利用量測定装置のような、情報の利用に対して課金するような技術が提案されている。
【0005】
これらの技術によって、パーソナルコンピュータやワークステーションなどの情報処理装置上では、ユーザはプログラムを代表とするソフトウェアを利用する際にはソフトウェアを購入して利用するのではなく、無料または非常に安価に入手し、利用した時に利用に応じて利用料金という形で、例えば一回利用したから幾ら、というように課金がなされるようになった。
【0006】
情報の利用に対して課金を行うためには、その利用の頻度に応じて個々の利用者から利用料金を回収しなければならない。あるいは場合によっては、一括回収した利用料金を情報を提供した側にその利用頻度に応じて分配しなければならない。そのためには、利用者の環境における利用の履歴を安全に記録し、そして安全に回収する必要がある。
【0007】
しかし、特開平7−21276号公報では利用履歴を記録する機能として、利用量メーターは存在するが、実際にそこに記録された利用量をどのように回収するかについては触れられていない。
【0008】
そのための方法としては、利用履歴を利用者が利用する情報処理装置の管理する記憶装置、例えばハードディスク装置などではなく、それとは独立した安全な装置に記録する方法がある。例えば、特公平6−95302号公報ではICカード内に利用の履歴を書き込むようにしている。
【0009】
また、特開平3−25605号公報の課金情報送出方式や特開平6−180762号公報の課金情報収集システムではネットワークを通じて課金情報を回収するようにしている。
【0010】
【発明が解決しようとする課題】
ICカードのような安全な装置に書き込まれた履歴を回収するためには、ネットワークで回収するか、もしくは、その装置から直接に正当な権限を持った回収者が直接的に回収する方法がある。
【0011】
しかしながら、ネットワークを通じて履歴を回収する方式では、課金情報の安全性すなわち、課金情報が途中で改竄されたり、あるいは利用者が不正な課金情報を作成してそれを送ったりという安全性の面についてはまったく考慮されていなかった。従って、企業内のような一定の信頼のおけるネットワーク内においては適用可能であったが、不特定多数の個人が参加するようなインターネットには、安全性の面から適用できないという問題があった。
【0012】
従って、安全にICカードのような装置内の履歴を回収するためには、その装置から直接に正当な権限を持った回収者が直接的に回収するしか方法がなかったのである。
【0013】
しかし、最近になり研究の進んでいる暗号技術、特に電子署名技術を用いると、上記の問題を解決することが可能である。すなわち、安全装置に固有の秘密鍵を封入し、安全装置からデータを取り出す際には必ず署名を施す様にすればよい。これによって、データが正しいことが、データに付随している電子署名を確認することで、後から確認できるようになる。
【0014】
電子署名はRSA(Rivest−Shamir−Adleman)暗号を用いる手法が広く知られている。しかし、RSA暗号による署名、あるいは、他の電子署名には、一般に非常に多くの計算量を必要とし、一回の処理に多大な時間がかかるのが普通である。従って、連続する多量のデータに対して署名を施さなければならない場合や、あるいは署名の処理を計算能力が低い計算機上で処理する場合には、非常に大きな問題となる。
【0015】
利用履歴を記録するような安全装置としてICカードのような装置を用いる場合に、一般にそのようなICカードに搭載可能なCPUの計算能力は低いことが多く、多量の計算をさせると非常に時間がかかるという問題があった。あるいは、計算時間を速くするために、計算能力を高くしようとすると非常に高いコストを要するという課題があった。
【0016】
また、利用の履歴データは一般に長大になるため、ICカードのような小さな装置にすべての履歴データを記録しようとすると記録容量が問題になるという課題もあった。
【0017】
なお、元々RSA暗号を始めとする現代の暗号技術の安全性は計算量に基礎を置いており、計算機の能力が伸びるとそれに伴って署名や暗号に用いられる鍵長が大きくされるようになっている。従って、将来的に計算機の能力が上がれば解決するという問題ではなく、その時代における最大の処理能力を持つ計算機に比べて低い処理能力の計算機しか使えないような機器(例えば、個人が用いるトークンなど)を用いる場合には将来に渡っても常にこの問題は本質的な課題となる。
【0018】
この発明はこのような事情に鑑みてなされたものであり、その目的とするところは、計算能力の低い装置に置いても、高速にデータを検証可能なデータを生成できる方法を提供することにある。
【0019】
すなわち、利用履歴全体をICカード内に保持するのではなく、利用履歴から得られる検証値のみをICカード内に保持し、利用履歴の本体はユーザの管理する情報処理装置(パソコンなど)側に保持させようとするものである。
【0020】
検証値の観点から従来の技術を参照すると、データ通信に使用される技術であるDES−MACと呼ばれる技術がある。MACとはMessage Authentication Codeの略であり、メッセージが完全である(改竄されていない)ことを示す一定の長さを持ったコードである。オリジナルのメッセージに添付されて用いられたりする。データ通信は途中でエラーが発生することは致命的であるので、途中でデータが変わってしまったことを検知できるような構成になっている。
【0021】
ここで、DESとはData Encryption Standardの略で64ビットを一つのブロックとするブロック暗号のアルゴリズムである(Applied Cryptography pp265)。CBC(CypherBlock Chain)モード(Applied Cryptography pp193, JIS−X5051)とはDESを代表とするブロック暗号の使い方の一種であり、個々のブロックを独立させて暗号化していくのではなく、直前の暗号化されたブロックとこれから暗号化しようとするブロックの排他的論理和を取り、それをDESの入力とする方式である。この方法だと同じ内容のブロックを暗号化した時にでも、それまでに暗号化したブロックが異なれば暗号化した結果も異なることになる。
【0022】
DES−MAC(CBC−MACについてApplied Cryptography pp455を参照)は、DESにおけるCBCモードを応用したものであり、最後に得られたブロックをデータストリーム全体の検証値に用いようとするものである。
【0023】
DES−MACの構成を図21に示す。図の上部が伝送しようとするデータストリームであり、データストリームはそれぞれ64ビットづつのブロックに分割される。IVとはInitial Vectorの略で乱数で生成された初期値である。分割されたブロックはDES−CBCモードと同様に連鎖的にDES暗号器を通していき、先頭にIVを、そして最後に得られたブロックを伝送しようとするデータストリームの検証値を付加して伝送される。受信した側ではこの処理と逆の処理を行って得られた検証値が、等しくなるかどうかを検証する。
【0024】
しかし、このような処理方法は基本的に通信によってデータを伝送することを目的としているものであり、送信者は完全なデータを短時間、確実に保持することが前提となっていることから、完全な履歴の回収に適用しようとすると、問題を生じる。すなわち、履歴データは長期に渡って蓄積され、その間ユーザの恣意的な管理や、システムの事故などの危険に曝される可能性があるからである。
【0025】
第一に上記の方法(DES−MAC)ではデータブロックが連続して伝送されることを前提としている。すなわち、通常データの伝送にはさらに下位の層が存在し(TCP/IP:トランスミッション・コントロール・プロトコル/インターネット・プロトコルではTCP層が相当する)、その層によってデータブロックの順番が保証されることになる。
【0026】
しかしながら、利用履歴の場合には、ユーザの管理下に置いてしまうと、その時点で履歴の順序は保証されなくなってしまう。すなわち、ユーザはICカードを自分の使用可能な複数台のコンピュータ(例えばデスクトップPCと、ラップトップPCなど)に接続して使用することが可能である。利用履歴がコンピュータ側に記録されることを考えると、利用履歴は複数のコンピュータに分散されてしまう。従って、複数台に分散された履歴はその時間的順序は失われてしまうことになる。
【0027】
利用履歴の場合には時間的な順序が非常に重要な要素となる。すなわち、複数の連続した利用履歴から、後で利用量を計算する可能性があるからである。例えば、簡単な例では利用開始時刻と利用終了時刻との差から利用時間を計算したり、利用開始時の操作対象データ長と利用終了時の操作対象データ長からデータ長の差を計算し、それを利用量としたりするなどの場合である。
【0028】
DES−MACはこういった課題には本質的な解決法を与えていない。
【0029】
さらに、利用履歴をユーザの管理下に置いた場合のもう一つの課題は、故意もしくは事故によって、それらの一部が失われてしまう可能性があるということである。DES−MACの場合、その一部が失われてしまうと、検証が不可能になってしまう。DES−MACでは送信者が通信の間だけ完全なデータを保持していることが前提なので、そのような場合は再送信を行えば済む。しかし、利用履歴の場合には、履歴が失われるということは本質的にデータが失われることであるので、復元は不可能である。DES−MACの方式をそのまま使用すると、残ったデータの検証さえ行うことができなくなってしまう。
【0030】
さらにまた、利用量課金を行うようなシステムにおいては、ユーザの手もとに残された履歴を回収することは必須である。履歴を回収しないと、ユーザの利用料金を計算できなかったり、あるいは、回収した利用料金を情報の提供者に分配できなかったりするという問題があるからである。
【0031】
従って、ユーザの手もとに残された利用履歴を安全に回収しなければならない。そのためには、偽の回収命令などによって、回収が行われてしまうようなことが無いようにしなければならない。
【0032】
従って、この発明の目的とするところは、計算能力の低く、記憶容量が小さくても、高速にかつ長大なデータを検証可能な装置を提供することにある。
【0033】
さらに、この発明の第二の目的は、データの順序が保存されないような環境においても、順序を復元可能な方法を提供することになる。
【0034】
さらに、この発明の第三の目的はデータの一部が失われた場合でも、残ったデータの検証が可能な方法を提供することである。
【0035】
さらに、この発明の第四の目的は、データを保持する装置を外部から安全に制御する方法を提供することにある。
【0036】
【課題を解決するための手段】
この発明は、上記の課題を解決するために、具体的には、保持するデータ量を減らすために、データを防御装置内に記録せず、防御装置の外に出力し、その代わりとしてデータ量の小さな検証値を防御装置内に保持するようにした。そして、具体的な構成では、高速にデータの検証を行うことができるように、電子署名の代わりに一方向性関数によって検証を行うようにした。一般にMD5を代表とするハッシュ関数はRSAの暗号化処理に比べるとソフトウエアで実現した場合には3桁程度ハッシュ値の方が速いという結果が出ている。また、特に、履歴データの順序を復元可能とするために、履歴データに順序を復元可能な情報を付加した。さらに、具体的には、防御装置を安全に制御するために、防御装置が保持する検証値に対して正当者の署名を付与した値が必要な構成とした。これにより防御装置内の検証値が正当者に強制的に送られ、検証の実行を確保している。
【0037】
さらに、この発明の構成について説明する。この発明によれば、上述の目的を達成するために、履歴保持方法において、複数の連続した履歴データからなる履歴データ群に対して、順次計算される唯一の検証値のみを防御された装置内に保持し、上記検証値を上記防御された装置の外部に出力する際には、上記検証値のみにデジタル署名を施すようにしている。
【0038】
この構成においては、計算量や記憶容量を抑えることができる。
【0039】
また、この発明によれば、上述の目的を達成するために、履歴保持装置に、複数の連続したデータを入力するためのデータ入力手段と、上記データを処理するためのデータ処理手段と、上記データの処理に関連する履歴データと、その時点で保持する検証値を入力として、検証値を生成するための検証値生成手段と、生成された上記検証値を保持するための検証値保持手段と、該検証値に対して署名を施すための署名手段とを設けるようにし、少なくとも上記検証値生成手段、上記検証値保持手段および上記署名手段を防御された装置内に保持するようにしている。
【0040】
この構成においても、計算量や記憶容量を抑えることができる。
【0041】
また、この構成において、上記検証値生成手段に用いる計算を一方向性関数とすることができる。また、上記履歴データの形式を、履歴データ本体とその履歴データを処理した時の検証値との組とすることができる。また、データを処理する毎にカウントするカウンタ手段をさらに設け、上記履歴データ群における履歴データの形式が、データを処理した時のカウンタの値と履歴本体からなるようにすることができる。また、利用者の出力要求に応じて、署名された検証値を出力するようにすることができる。さらに、上記履歴保持装置が単一のCPUとソフトウェアで構成され、データ処理手段によるCPUの負荷が低い時に上記署名手段が、適宜検証値に署名した検証値を作成して出力するようにすることができる。
【0042】
また、この構成において、データ処理手段と、上記検証値を出力した時点で上記データ処理手段の機能を停止し、外部から正当な命令が与えられまではそデータ処理手段の機能を停止する機能停止手段とをさらに設けるようにしてもよい。また、機能を停止させるための停止条件保持手段を設け、停止条件保持手段に記述されている条件を満たした時には、上記機能停止手段が上記検証値に署名した署名付き検証値を出力して、機能を停止するようにしてもよい。さらに、外部の正当者の公開鍵を保持するための正当公開鍵保持手段を有し、上記機能停止手段が、機能を復帰させるために受け付ける命令が、最後に出力した検証値に外部の正当者が電子署名を施したものであって、上記機能停止手段が命令を受け取った時に該正当公開鍵保持手段に保持されている公開鍵で署名を検証し、さらに署名されている検証値が、上記検証値保持手段に保持されている検証値と等しいかどうかを確認するようにしてもよい。
【0043】
また、この発明によれば、上述の目的を達成するために、履歴検証装置に、複数の連続する履歴データ群とそれらのデータ群から計算された検証値に署名が施された署名付き検証値を入力するためのデータ入力手段と、入力した上記署名付き検証値の署名を検証するための署名検証手段と、入力した上記データ群と署名の検証された検証値とから、入力した上記データ群が正しいことを検証するための検証手段とを設けるようにしている。
【0044】
この構成においては、署名付き検証値に対して署名の検証を行えば済むので計算量を抑えることができる。
【0045】
また、この構成において、前回に入力した検証値を記憶するための前検証値記憶手段を設け、検証手段が検証する際に、該前検証値も用いるようにしてもよい。また、上記検証手段に用いる計算を一方向性関数としてもよい。また、上記履歴データの形式を、履歴データ本体とその履歴データを処理した時の検証値との組とすることができる。さらに、上記履歴データ群における履歴データの形式を、データを処理した時のカウンタの値と履歴本体とから構成するようにしてもよい。
【0046】
また、この発明によれば、上述の目的を達成するために、履歴保持装置に、データを保持するためのデータ記憶手段と、機能を停止する際のある一定の条件を保持するための停止条件保持手段と、該停止条件保持手段に保持された条件を満たした時に機能を停止し、外部から正当な命令が与えられるまでは機能を停止しつづけるための機能停止手段と、秘密鍵を保持するための秘密鍵保持手段と、データ保持手段に保持されたデータ群に該秘密鍵保持手段に保持された秘密鍵を用いて電子署名を施すための電子署名手段と、署名した電子署名を保持するための電子署名保持手段と、外部の正当者の公開鍵を保持するための正当公開鍵保持手段とを設け、上記機能停止手段が機能を復帰させるために受け付ける命令が、上記電子署名保持手段に保持された電子署名に対して外部の正当者が電子署名を施したものであって、機能停止手段が命令を受け取った時に該正当公開鍵保持手段に保持されている公開鍵で署名を検証し、さらに署名されている値が、電子署名保持手段に保持されている値と等しいかどうかを確認するようにしている。
【0047】
この構成においては、履歴の正当性が検証されて初めて正当者の署名した命令が送付され、この正当な命令が検証されて初めて装置の停止状態が解除される。従って、正当な履歴が回収されないままでサービスが提供され続けるという不都合がない。換言すると、正当な履歴の回収が確保される。
【0048】
また、この発明は、その一部をコンピュータプログラム製品として実現することができる。
【0049】
この発明の上述の側面およびこの発明の他の側面は特許請求の範囲に記載され、以下、実施例を用いて詳細に説明される。
【0050】
【発明の実施の態様】
[第1の実施例]
以下、この発明の実施例について説明する。まず第1の実施例について説明する。この実施例も後述する他の実施例も、暗号化されて流通しているプログラムや画像情報などのデジタル情報一般を、パソコンやワークステーションなどの情報処理装置上で利用し、その際の利用履歴をその情報処理装置に接続したICカード(以下、トークンと呼ぶ)において、情報を復号するタイミングをとらえて記録し、その利用履歴をセンターが回収するというシステムである。もちろん履歴データのセキュリティ確保以外にもこの発明を適用することができる。
【0051】
図1は、この実施例の全体的な構成を示す。図1において、利用者の環境にはパソコンやワークステーションなど、デジタル情報を利用するための情報処理装置11があり、それには暗号化された情報を復号する(あるいは復号するための鍵を復号する)ため、およびそのタイミングを捕らえて利用履歴を記録するためのトークン12が接続されている。トークン12と情報処理装置11の間の接続は、PCカード(PCMCIA:パーソナル・コンピュータ・メモリ・カード・インターフェース・アソシエーション)インターフェース、シリアル、パラレル、赤外線など、情報を伝達できる手段であれば何でも用いることができる。情報処理装置11の内部に実装するようにしてもよい。
【0052】
ユーザの情報処理装置11はセンター側の、ワークステーションあるいは大型計算機などの情報処理装置で構成される回収装置13と必要に応じて接続される。接続の形態は、モデムと電話回線、あるいはイーサネットなどのネットワークインターフェースでよい。この接続は常時行われる訳ではなく、利用者の情報処理装置11から利用履歴の回収が必要な時のみ行われれば十分である。
【0053】
図2にユーザ側の情報処理装置11の構成を示す。ユーザの情報処理装置11は一般のパソコンやワークステーションで良い。トークン12が接続されているところのみが異なる。情報処理装置11は、制御部14、情報保持部15、履歴保持部16および履歴送信部17を実現する。このような構成は、例えばプログラムが記録された記録媒体11aを用いて当該プログラムをインストールすることにより実現できる。
【0054】
制御部14はトークン12と通信しながら、以下のような処理を行う。
▲1▼情報保持部15に格納されている暗号化された情報を読み出し、トークン12へ渡して復号してもらい、復号された情報を実行あるいは処理する。
▲2▼復号データを受け取った際に同時にトークン12から渡される利用履歴を受け取り、それを履歴保持部16に格納する。
▲3▼ユーザからの指示を受けて、トークン12に「検証値出力」の命令を出し、その結果である電子署名の施された検証値を履歴送信部17に渡す。
【0055】
情報保持部15は利用者が利用するデータや情報、あるいは暗号化されたデータが格納されている。実際にはメモリあるいはハードディスク装置などの外部記憶装置で構成される。
【0056】
履歴保持部16は制御部14を通じてトークン12側から渡された履歴が格納される。実際にはメモリあるいはハードディスク装置などの外部記憶装置で構成される。履歴の具体的な構成については後述する。
【0057】
履歴送信部17は制御部14からの命令を受けて、制御部14から渡された検証値と共に履歴保持部16に保持されている履歴を読み出して、センターの回収装置13に送信する。実際にはモデムと電話回線、あるいはイーサネットなどのネットワークインターフェースなどで構成される。あるいは、ネットワークでなくともフロッピーディスクなどの装置へ一旦格納し、それをユーザが人手でセンターの回収装置13に入力するようにしてもよい。
【0058】
図3にユーザ側のトークン12の構成を示す。トークン12は物理的には一般のMPU、メモリ等から構成される。トークン12はそれ自体が、メモリの内容を読み出したり破壊したりするなど、外部からの物理的な攻撃に耐えるように攻撃対抗容器内に収められる。攻撃対抗容器は周知の技術であるので(特許第186353号、特許第1860463号、特開平3−100753号公報等)、ここでは説明を省略する。なお、どの程度の攻撃に耐えうるものを選ぶかはデータのセキュリティの程度に応じて変化する。攻撃態勢が弱いものでもよい場合もある。
【0059】
トークン12はユーザの情報処理装置11に接続され、情報処理装置11からの指示に従って一定の処理を行い、その結果を返す。トークン12はユーザ秘密鍵保持部18、復号部19、検証値生成部20、検証値保持部21、検証値出力部22、トークン秘密鍵保持部23、電子署名部24等を有している。トークン12の各構成部については後に詳述する。トークン12は以下の機能を持つ。
【0060】
▲1▼情報の復号機能と利用履歴の保持
(1)情報処理装置11から暗号化データを受け取り、それをユーザ秘密鍵保持部18に格納されている秘密鍵で復号し、復号データを情報処理装置11に返す。
(2)復号処理を行うと同時に復号されたデータのヘッダを参照し、そこに記されている情報識別子を参照し、その識別子を利用履歴として情報処理装置11に返す。
(3)さらに、利用履歴は検証値生成部20にも渡され、検証値生成部20は利用履歴とその時点で検証値保持部21に保持している検証値とに対して計算を行い、その計算結果を検証値保持部21に格納する。
【0061】
▲2▼検証値の出力機能
情報処理装置11からの出力要求を受けて、その時点で検証値保持部21に保持している検証値に電子署名を施して返す。その後、検証値保持部21内のデータを消去する。
【0062】
以下、トークン12の各構成部について説明する。
【0063】
復号部19は情報処理装置11からの復号要求に答えて、渡された暗号化データを、ユーザ秘密鍵保持部18に保持されているユーザ固有の秘密鍵を用いて復号処理を行い、その結果を復号データとして情報処理装置11側へ返す。このとき、それと同時に復号したデータのヘッダを読み取り、そこに記されている情報識別子を利用履歴として情報処理装置11側へ返すと共に、検証値生成部20にも渡す(この例では利用履歴は、利用した情報の情報識別子を用いている)。
【0064】
このように構成することで、ユーザは情報を利用する際には必ずトークン12へのアクセスが必要となり、利用履歴を確実に記録することができるようになる。
【0065】
ここで、情報処理装置11側から渡される暗号データは、情報そのものが暗号化されたものでもよいし、あるいは暗号化された情報を復号するための鍵を暗号化したものでもよい。後者の場合には情報処理装置11側で情報本体の復号処理がなされることになる。
【0066】
ユーザ秘密鍵保持部18は、ユーザ固有の秘密鍵を保持する。一般的には、トークン12は予めトークン発行センターなどによって、ユーザごとの固有の鍵を封入した形でユーザに配布される。従って、このユーザ秘密鍵はユーザ自身も知ることができない。
【0067】
検証値保持部21は順次更新される一つの検証値のみを保持する。検証値は一般に16バイトなど、固定の長さを持つ値である。従って、検証値が16バイトであるならば、16バイトのメモリだけで構成される。図4に検証値の構成例を示す。
【0068】
検証値出力部22は、情報処理装置11側からの検証値の出力要求を受けて、その時点で検証値保持部21に格納されている検証値を読み出し、それを情報処理装置11側に返すという機能を持つ。その際、検証値出力部22は電子署名部24を呼び出して、検証値に対して電子署名を施す。
【0069】
電子署名部24はそのトークン専用の秘密鍵を保持するトークン秘密鍵保持部23に保持された秘密鍵を用いて、与えられた値に対して電子署名を施す処理を行う。トークン秘密鍵保持部23は電子署名を行う際に用いられる署名用の秘密鍵を保持する構成部である。これらの構成部にはRSA署名などの電子署名技術を用いることが可能であり、従来の技術であるのでここでは詳細な説明は省略する。
【0070】
検証値生成部20は復号部19から利用履歴(ここでは情報識別子)を受け取ったら、検証値保持部21に保持されている検証値を読み取り、利用履歴と検証値とから、以下のような計算を行って新しい検証値を計算する。
【0071】
【数1】
H=Hash(Usage+Hold)
ここで、Hは新しい検証値、Holdは現在の検証値、Usageは利用履歴、Hash()は一方向性関数を意味し、実際にはMD5やSHA(SecureHash Algorithm)などが用いられる。この演算における”+”という演算は実際に数値として足し算を行ってもよいし、長さが同じであれば排他的論理和を取っても、あるいは、単に二つのデータを順に並べただけでもよい。いずれにしろ二つの値を合成したものであればよい。検証値生成部20はこのように計算した新しい検証値を、検証値保持部21に格納する(つまり、古い値を上書きする)。
【0072】
検証値出力部22は情報処理装置11からの出力要求を受け、その時点で検証値保持部21に保持している検証値を返してから、検証値保持部21を予め決められた値に初期化するようにする。あるいは単純にクリアするようにしてもよい。
【0073】
次にセンターの回収装置13について説明する。回収装置13の構成を図5に示す。図5において、回収装置13は、履歴受信部25、履歴保持部26、履歴検証部27、トークン公開鍵保持部28、署名検証部29等を有している。回収装置13はユーザの情報処理装置11から送られた履歴を履歴受信部25によって受信し、その内容を履歴保持部26に格納する。格納された利用履歴は履歴検証部27によって読み取られ、履歴が正しいかどうかが検証され、その結果はセンター側の管理者に出力される。
【0074】
一般的にはセンターはこの後、その履歴の内容に従って、情報の利用料金を計算し、その料金を利用者から徴収し、徴収した利用料金を情報の利用履歴の明細に従って、情報提供者に分配するという処理を行う。しかし、本発明の本質とは直接は関係無いのでここでは説明を省略する。
【0075】
以下、回収装置13の各構成部について説明する。
【0076】
履歴受信部25は情報処理装置11から送られてくる履歴情報を受信する。実際には情報処理装置11の履歴送信部17(図2)と同様にモデムと電話回線あるいはイーサネットなどのネットワークインターフェース、あるはフロッピーディスク装置などの外部からの情報入力装置で構成される。履歴受信部25によって受信された利用履歴は履歴保持部26に格納される。
【0077】
さらに、情報処理装置11から送られてきた検証値が正当なものであるかどうかを検証するために、トークン公開鍵保持部28と署名検証部29を有している。
【0078】
情報処理装置11から履歴が送信されると、履歴受信部25が受け取る。受け取った履歴は履歴保持部26に格納されると共に、署名検証部29に渡される。署名検証部29はトークン公開鍵保持部28に格納されている複数のトークン公開鍵の中から履歴を送信してきた情報処理装置11に接続されているトークン12の公開鍵を選択し、その公開鍵を用いて履歴の署名を検証する。その検証結果は履歴保持部26に格納されている履歴とともに保持される。もし、検証結果が偽であるという結果が出た場合にはその検証値は改竄あるいは偽造された可能性があるので、以下の処理は続行せず、管理者にその旨のメッセージを出力して処理を停止する。
【0079】
署名が検証された場合は以下の処理が続けられる。
【0080】
履歴保持部26は履歴受信部25から渡された利用履歴および検証結果を保持する。履歴保持部26は実際にはメモリなどの記憶装置で構成される。
【0081】
履歴検証部27は履歴保持部26に保持された履歴を以下のようにして検証する。
(1)送信された履歴の系列を、ud1,ud2,ud3...udnとする。
(2)履歴の最後に添付されている検証値を、hudとする。
(3)検証値の初期値をihudとすると、以下の計算式に従って、計算した結果であるhud’が、送られてきたhudと等しくなるかどうかを調べる。
【0082】
【数2】
hud’=Hash(udn+Hash(udn-1+...Hash(ud2+Hash(ud1+ihud))...))
hud=?hud’
(4)もし等しければ、改竄されていない、等しくなければ改竄されていると判断し、その結果を回収装置の管理者に通知する。
【0083】
次に各部で処理される情報の形式について説明する。
【0084】
図6にトークン12で復号の対象となる暗号化された情報の形式を示す。(a)は情報そのものをユーザの秘密鍵で暗号化している場合である。(b)は、最初に情報本体を暗号化するのに用いている秘密鍵をユーザ固有の秘密鍵で暗号化したものを復号し、その結果得られた情報固有の秘密鍵を用いて、情報本体の復号を行うという場合である。(b)の場合には情報本体の復号はトークン12ではなく、情報処理装置側で行ってもよい。また、ここでは慣用暗号を用いている例を説明しているが、これらは公開暗号を用いてもよいことは言うまでもない。
【0085】
ここで、情報識別子とは、センターが情報を暗号化させて流通させる時に付与される情報固有の識別子である。情報識別子はセンターによって管理され(データベースを持つなどによって)、情報識別子を特定すると、その情報が誰によって作成されたものであるのか、などを特定できる。
【0086】
図7には利用履歴の形式を示す。(a)は本実施例における情報処理装置11内に記録される利用履歴であり、利用した(トークンで復号した情報の)情報識別子の列である。(b)は情報処理装置11からセンターに送付される利用履歴であり、(a)の最後にトークンが保持する検証値、および検証値に対するトークンの署名が添付されているところのみが異なる。
【0087】
個々の利用履歴は本実施例では利用した情報識別子のみで構成されているが、これは任意のデータ、例えば、利用した時刻、利用者の識別子、利用量、利用金額などが含まれていてもよい。すなわち種々の情報を履歴として残す場合(一般に履歴は種々の情報を残すのが一般的である)には個々の履歴が長くなるため、本発明が有効となる。
【0088】
次に情報処理装置11およびトークン12における処理を図8から図12を参照して説明する。図8は情報処理装置11の制御部14において、利用者から情報の利用要求が有った時の処理の流れである。図9は同じく制御部14において利用者から利用履歴回収命令が有った時の処理である。図10はトークン12の復号部19が情報処理装置11から暗号化された情報の復号要求を受け取った時の処理である。図11はトークン12の復号部19から呼び出されるトークン12の検証値生成部20の処理である。図12はトークン12の検証値出力部22が情報処理装置11から検証値出力要求を受け取った時の処理である。
【0089】
図8に示すように、利用者から情報利用の要求があったときには情報処理装置11の制御部14においてつぎのように処理が進む。まず、対象の情報が暗号化されているかどうかを判別し(S11)、暗号化されていなければ情報をそのまま処理する(S15)。暗号化されているときにはトークン12に対して復号要求を出して、対象情報を引き渡す(S12)。このとき、トークン12からエラーが返されたら「トークンの履歴が一杯です」というエラーメッセージを出して処理を終了する(S13、S16)。エラーが返されなければ、トークン12から過閲された利用履歴をディスク等の記録装置に記録する(S14)。そして対象情報を処理する(S15)。
【0090】
図9に示すように、利用者から利用履歴回収命令があったときには情報処理装置11の制御部14においてつぎのように処理が進む。まず、対象の情報が暗号化されているかどうかを判別し(S21)、暗号化されていなければ情報をそのまま処理する(S24)。暗号化されているときにはトークン12に対して復号要求を出して、対象情報を引き渡す(S22)。そしてトークン12から返された利用履歴をディスク等の記録装置に記録する(S23)。こののち対象情報を処理する(S24)。
【0091】
図10に示すように、トークン12の復号部19が情報処理装置11から暗号化された情報の復号要求を受け取った時にはつぎのように処理が進む。まず、ユーザ秘密鍵保持部18からユーザ秘密鍵Kuが取り出される(S31)。暗号化データをユーザ秘密鍵Kuで復号して復号データを記憶する(S32)。復号データのヘッダを参照して情報識別子を読み取り、この識別子を引数として検証値生成部20を呼び出し検証値生成処理を実行させる(S33、S34、図11参照)。この後復号データと識別子とを情報処理装置11に返す(S35)。
【0092】
図11に示すように、トークン12の検証値生成部20がトークン12の復号部19から呼び出されたときにはつぎのように処理が進む。まず、検証値保持部21から検証値を取り出す(S41)。情報識別子と検証値とについてハッシュ計算を行って、計算結果を新たな検証値として検証値保持部21に記憶する(S42、S43)。
【0093】
図12に示すように、トークン12の検証値出力部22が情報処理装置11から検証値出力要求を受け取った時にはつぎのように処理が進む。まず、検証値保持部21に記憶されている検証値を読み出す(S51)。こののち、検証値保持部21の記憶内容を初期化する(S52)。読み出した検証値を引数として電子署名部24を呼び出し、検証値に署名を施す(S53)。検証値の後に署名を付して出力する(S54)。
【0094】
以上で第1の実施例の説明を終了する。
【0095】
なお、特願平8−62076号のユーザ認証装置および方法を、本発明と組み合せて使用した場合には、発行するアクセスチケットごとにべき乗剰余の計算における法nを変えるようにすることで、法nを情報識別子として用いることができる。すなわち、特願平8−62076号のユーザ認証手法ではアクセスチケット(認証用補助情報)を外部から受け取り、このアクセスチケットとユーザ識別情報とを用いて証明、例えば暗号データの復号を行うようになっている。そして、このときに用いる法nを情報識別子として利用する。その場合には、法nはトークンの内部の復号装置で復号されてから取り出されるのではなく、復号対象の情報と共に外部から与えられることになる。
【0096】
このように構成することで、トークン12内部に用意しなければならない検証値保持部21の容量を最小に押さえることができ、トークン12の生産コストを低くすることが可能となる。
【0097】
[第2の実施例]
次に本発明の第2の実施例について説明する。ここで述べる実施例は第1の実施例に対して、幾つかの機能を追加したものである。以下にその機能と効果について列挙する。
【0098】
▲1▼トークン12が検証値を出力して機能を停止し、センターからメッセージを受け取ると機能を回復する。
【0099】
検証値を外部に出力する時やあるいは時計機能を用いて一定時間を経過した時などに、利用者に履歴の回収を促すためにトークン12がその時点での検証値を出力して停止するようにする(あるいは自律的に停止して検証値を要求するようにしてもよい)。利用者がトークン12の機能を回復させるためにはセンターに履歴と検証値を送信して、確認してもらい、センターから機能を回復させるためのメッセージを受け取るしかない。センターが発行する機能回復用のメッセージは、ユーザから送られた検証値にセンターが電子署名を施したものとする。
【0100】
▲2▼履歴としてその利用履歴を処理した時点での検証値も出力する。
【0101】
利用履歴の内容を情報識別子だけではなく、その履歴を生成した時点での検証値も含ませる。これによって、個々の履歴の連続性を後から調べることが可能になり、情報処理装置側での履歴の(順序の)管理を厳密に行わなくても良いようにする。
【0102】
▲3▼センター側で古い検証値を保持する。
【0103】
これまでの実施例では、利用者からの出力要求によって、トークン内部の検証値は初期化されていた。しかしながら、センターの回収装置側で利用者の前回の検証値を保持することによって、その機能を不要にすることができる。
【0104】
図13に本実施例におけるトークン12の構成を示す。なお、図13において図3に対応する箇所には対応する符号を付して詳細な説明を省略する。この図において、トークン12は、ユーザ秘密鍵保持部18、復号部19、検証値生成部20、検証値保持部21、トークン秘密鍵保持部23、電子署名部24、制御部30、履歴生成部31、計数部32、センター公開鍵保持部33、署名検証部34等を有している。なお、必要に応じて時計部35を設けてもよい。
【0105】
本実施例では情報処理装置11との通信はすべて制御部30を介して行われるように構成され、制御部30は情報処理装置11からの要求に対し適切に他の処理部を呼出して処理を行う。
【0106】
制御部30はその内部にトークン12の動作状態を保持しており、動作状態には通常モードと停止モードの二つのモードがある。通常モードにおいてはトークン12は情報処理装置11からの復号要求に対して、第1の実施例で述べたように復号処理を行い、その結果を返すという処理を行う。一方、停止モードにおいては復号要求の処理は受け付けない。停止モードにおいては基本的には機能再開要求(センター署名付き検証値)のみを受け付け、その要求が正当である場合には停止モードを解除し、通常モードへ移行するという処理を行う(実際にはそれ以外にもその時点で検証値保持部21に保持している検証値に署名した検証値を出力するという処理も受け付けるようにしてもよい)。
【0107】
通常モードから停止モードへの移行は、例えば復号処理を行った回数などによる。図13の計数部32は復号処理を行った回数を保持している。例えば、その回数が予め定められた回数(例えば100回など)を超えたら、「期限が過ぎた」旨のメッセージを情報処理装置11側に返して、停止モードへ移行する。
【0108】
構成として時計を有する場合には、制御部30内部に保持された前回の停止時刻の情報に基づいて行うようにしてもよい。すなわち、制御部は情報処理装置からの要求があったとき、制御部内に保持された前回停止時刻と現在の時刻を比較し、予め決められた時間(例えば一か月、など)が経過していた場合には「期限が過ぎた」旨のメッセージを情報処理装置11側に返して、停止モードへ移行する。
【0109】
つぎにトークン12の制御部30の処理を図14〜図16を参照して詳細に説明する。なお、図14〜図16において点線で示してある箇所は制御部30の処理ではなく、関連する構成部の処理であることを意味する。
【0110】
図14において、情報処理装置11からトークン12の制御部30に復号要求、検証値出力要求および機能再開要求のいずれかが入力される。まず、制御部30のモードが停止モードかどうかが判別される(S61)。停止モードでないときには計数部32の計数値が読み取られ、この計数値が基準値、例えば100を越えたかどうかが判別される(S62、S63)。100を越えていない場合には図16のノードBに進み、復号処理等を行う。100を越えている場合には署名付き検証値を出力する。すなわち、検証値保持部21の値を読み出し、電子署名部24により署名付き検証値を生成させ、受け取る(S64、S65)。こののち、署名付き検証値と「停止モードへ移行」というメッセージを情報処理装置11に返す(S66)。そして計数部32の計数値をクリアして停止モードに移行する(S67、S68)。
【0111】
ステップS61において、制御部30が停止モードの場合には、受け取った要求が復号要求か、検証値出力要求か、機能再開要求かが判別される(S69、S70、S71)。要求が復号要求の場合には情報処理装置11に「現在は停止モードである」というメッセージを返し、処理を終了する(S72)。要求が検証値出力要求の場合には検証値保持部21の検証値を読み取り、電子署名部24により署名付き検証値を生成させ、受け取る(S73、S74)。こののち、署名付き検証値を情報処理装置11に返し処理を終了する(S75)。機能再開要求のときには図15のノードAの機能再開処理に進む。受け取った要求が復号要求、検証値出力要求、機能再開要求のいずれでもない場合には情報処理装置11にエラーを返して処理を終了する(S76)。
【0112】
図15は機能再開処理を示す。図15において、まず、受け取ったセンター署名付き検証値を署名検証部24に渡して署名の正当性を検証する(S77)。署名が正しければ、渡された検証値と、検証値保持部21の検証値とを比較し、双方が一致するかどうかを検査する(S78〜S80)。一致すれば制御部のモードを停止モードから通常モードに移行させ、「機能再開」のメッセージを情報処理装置11に返す(S81、S82)。ステップS78において署名が正しくない場合には、「署名が正しくない」というメッセージを情報処理装置11に返して処理を終了する(S83)。ステップS80において検証値が一致しない場合には「検証値が正しくない」というメッセージを情報処理装置11に返して処理を終了する(S84)。
【0113】
図16は計数値が閾値例えば100を上回っていない場合の処理を示す。図16において、まず要求が復号要求かどうかが検査される(S85)。復号要求の場合には渡されたデータを復号部19に送る(S88)。復号部19は復号を行う(S89〜S93)。また要求が復号要求でない場合には検証値要求かどうかが判別される(S86)。検証値要求である場合には図14のノードCに進み、検証値出力処理を行う。ステップS86において検証値出力要求でもない場合にはエラーを情報処理装置11に返して処理を終了する(S87)。
【0114】
以上でトークン12の制御部30の処理の説明を終える。
【0115】
なお、この例では、情報処理装置11側から検証値要求が有った時にも停止モードへ移行するようにしているけれども(図16のステップS86から図14のノードCへ移行)、そうしなくても構わない。例えば通常モードにおける検証値要求に対しては、検証値を更新して単にその時点で保持している検証値に署名した値を返すようにしてもよい(このメリットについては本実施例の説明の最後で述べる)。
【0116】
復号部19、ユーザ秘密鍵保持部18は第1の実施例と同様の機能を有する。
【0117】
履歴生成部31は図16でも示したように復号部19から渡された情報識別子と現在の検証値の三つの組を生成し、それを利用履歴として制御部30に渡すという処理を行う。
【0118】
検証値生成部20は履歴生成部31から渡された履歴udに対し、
【0119】
【数3】
Hu=Hash(ud)
なるハッシュ値を計算し、それを検証値保持部21に格納するという処理を行い、検証値保持部21はその時点での検証値を保持する。
【0120】
電子署名部24は第1の実施例と同様に、そのトークン専用の秘密鍵を保持する秘密鍵保持部23に保持された秘密鍵を用いて、与えられた値に対して電子署名を施す処理を行う。本実施例ではさらに、署名検証部34が設けられ、センター公開鍵保持部33に保持されたセンターの公開鍵を用いて渡された署名がセンターの署名であるかどうかを検証するという処理を行う。これらの構成部には基本的にはRSA署名などの電子署名技術を用いることが可能であり、周知の技術であるのでここでは詳細な説明は省略する。
【0121】
本実施例における情報処理装置11の構成を図17に示す。図17において図2と対応する箇所には対応する符号を付す。この図において、基本的には第1の実施例のものとほぼ同じ構成であるが、本実施例の情報処理装置11ではある時点でトークンが停止モードに入ってしまうので、それを再開させるためにはセンターに履歴を送信し、それに対する再開メッセージを送ってもらわねばならない。そこで、センターからの署名付きの検証値を受け取る署名付き検証値受信部36があるところが異なる。また、履歴保持部16に保持される履歴の構成が異なっている。
【0122】
図18に本実施例におけるセンターの回収装置13の構成を示す。図18において図5と対応する箇所には対応する符号を付す。この図において、構成としては第1の実施例のものに比べると、履歴の正当性が検証された場合には情報処理装置11にセンターの署名付き検証値を送らねばならないので、それを行うための構成部、すなわちセンター秘密鍵保持部37、電子署名部38、署名付き検証値送信部39が増設されている。また、情報処理装置11側から送られる利用履歴の構成が異なっているので、当然回収センターで処理される履歴も異なる。
【0123】
図19に各部で保持される利用履歴の構成を示す。
(a)は情報処理装置11の履歴保持部16に記録される利用履歴である。個々の履歴の内容は(c)に示されたような情報識別子とその時点でトークンに保持されていた検証値のペアの構成となっている。
【0124】
情報処理装置11からセンターに履歴を送付する際には、その履歴の列の最後にトークン12の署名の付いた検証値が付与される(b)。署名付き検証値はトークン12が機能を停止した際に出力されるものであり、その時点での検証値にトークン12が電子署名を施したものである(d)。
【0125】
センターは履歴の検証のために(d)の署名付き検証値を用いる。そして検証の結果、正当なものであると判断されると、トークン12の機能を再開させるためのメッセージとして最後に添付された検証値にセンターが電子署名を施した値を情報処理装置11に送る。それが(e)である。
【0126】
次に回収装置13の処理について説明する。情報処理装置11から履歴が送信されると、履歴受信部25が受け取る。受け取った履歴は履歴保持部26に格納されると共に、署名検証部29に渡される。署名検証部29はトークン公開鍵保持部28に格納されている複数のトークン公開鍵の中から履歴を送信してきた情報処理装置11に接続されているトークン12の公開鍵を選択し、その公開鍵を用いて履歴の署名を検証する。その検証結果は履歴保持部26に格納されている履歴とともに保持される。
【0127】
履歴の受信が終わると履歴検証部27が動作しはじめる。履歴検証部27は今受信した履歴を参照し、それに付随している署名の検証結果を参照する。署名の検証結果が正当でない場合には、これ以降の処理は行われない。履歴に付随している検証結果が正当であれば、さらに履歴の内容が正当であるかどうかを検証する。
【0128】
履歴の内容の検証処理は以下のように行われる。
(1)送られてきた履歴の列が以下のようなものであるとする。
(id1,hu0),(id2,hu1),(id3,hu2),...,(idn,hun-1),sign(hun
ただし、ここでidは情報識別子、huはその履歴が生成された時点での検証値、sign()はトークンのサインであるとする。
(2)トークンが前回送ってきた際の検証値を履歴保持部の中から捜し出し、それをHuoldとする。
(3)送られてきた利用履歴の最初の履歴(ID1,hu0)の中から検証値hu0を取り出し、それがHuoldと等しいかどうかを確かめる。
(4)次にHash(id1,hu0)を計算し、それがhu1になるかどうかを確かめる。
(5)以下同様にして最後の検証値hunまで確かめる。
(6)すべての検査にパスしたら利用履歴は正当なものであると判断する。
【0129】
検証処理の結果、履歴が正しいものと判断された場合のみ、最後の検証値hunが電子署名部に送られ、センターの秘密鍵で電子署名が施される。そして、センターの署名付きの検証値が履歴を送付してきた情報処理装置に送り返される。
【0130】
以上のように構成することで、ある時点でトークンが機能を停止するため、その情報処理装置の利用者はトークンの機能を再開させるためには正当な履歴をセンターに送付しなければならなくなる。従って、履歴の回収を利用者に促すことが可能になる。
【0131】
また、センター側に最後の検証値が記録されているため、トークンから送付された正しい履歴が何らかの理由で一部が破壊されていた場合でも、単に検証が成功しなかっただけであるので、センター側の保持データは何も変化しない。従って、その場合にはトークンが履歴を再送付すれば検証は正常に行われることになる。
【0132】
また本実施例において、トークンが自律的に検証値を出力するように構成することで、回収装置側で履歴を検証する際に、一部の履歴が壊れていた(失われていた)場合でも、他の部分のほとんどについては検証可能なようにすることができる。
【0133】
すなわち、前述したように利用者が検証値を要求した時だけでなく、トークンの負荷が低いときにトークンが自律的にその時点で保持している検証値に署名したものを出力することによって、回収装置側で履歴を検証する際に、一部の履歴が壊れていた(失われていた)場合でも、他の部分のほとんどについては検証が可能になる。
【0134】
この場合には、センターへ送付される利用履歴は例えば図20のような構成になる。この時、何らかの事故によって情報処理装置側で履歴25が失われてしまったとする。
【0135】
先に示したような検証値を最後にしか持たないような利用履歴の場合には履歴26以降は検証可能となるが、履歴1から履歴24については内容が失われていないにもかかわらずそれが正当であることは検証できない。
【0136】
それが途中に署名付の検証値を挿入することによって、この例の場合には履歴25が失われた場合には履歴24のみが検証不可能となるだけで、残りの履歴については検証可能となるのである。つまり、履歴1から履歴10までは署名付き検証値1によって、履歴11から履歴23までは署名付き検証値2によって、履歴25から履歴36までは署名付き検証値3によって、履歴37から履歴57までは署名付き検証値4によって、それぞれが検証可能となるからである。
【0137】
このように適当な間隔で署名付きの検証値を履歴中に挿入することで履歴の一部が失われた場合にでも残りの履歴の大部分について検証を可能とすることができるようになるのである。
【0138】
これを実現するためにはトークン内部の制御部において負荷が低いかどうかを判定する装置を設け、トークンの負荷が低い場合には自律的に署名付き検証値を生成しておくようにすればよい。
【0139】
また、トークンが自律的に行わなくても情報処理装置すなわち利用者からの要求によって署名付き検証値を出力するように構成すればよい。そのためには図16のノードCを図14のノードC(ステップS64)に分岐させるのではなく、検証値を更新して署名付き検証値を生成しそれを情報処理装置11に返すように処理を変更すればよい。
【0140】
また、トークンに時計機能を持たせることによって、利用履歴として時刻の情報を取ることができるようになる。それによって、回収センター側は単にどの情報を利用したのかという履歴だけではなく、利用した時刻も知ることができるようになる。時計部は通常の時計機能であり、年月日および時刻を保持し、要求に従って現在の時刻を出力する機能を有するだけでよい。履歴に時刻を含ませるには、前述してきた情報識別子に時刻の情報も結合するだけでよい。また、時計機能を有すると、前述した停止モードへの移行の条件として、「前回に停止した時から経過した時間」にすることが可能になる。
【0141】
さらにまた、本実施例では外部に出力する履歴にその時点で保持していた検証値を付与するように構成しているが、これはトークン内部にカウンタ部を設け、履歴を出力するごとにカウンタの値をカウントしていくようにし、履歴を外部に出力する際に検証値ではなく、カウンタの値を出力するようにしてもよい。その場合は、これまでの説明中のハッシュ関数の入力となる部分が、利用履歴およびその時点で保持しているカウンタの値となる。
【0142】
以上説明したように、上述の実施例によれば、保持するデータ量を減らすために、データを防御装置内に保管せず、防御装置の外に出力し、その代わりとしてデータ量の小さな検証値を防御装置内に保管するようにしている。したがって防御装置の記憶容量や必要処理能力を抑えることができる。検証値は署名を付して外部に送られるので改竄を防止でき、データの検証を確実に行える。また、データの順序を復元可能とするために、データに順序復元用の情報を付加することにより、分散して保管されているデータであってもその順序を復元して、検証を容易にすることができる。さらに、防御装置が保持するデータに対して正当者の署名を付与した値を、防御装置が受け取ったときに、関連する処理を継続実行できるようにしているので、継続実行するには、防御装置内に保持したデータを正当者に送り署名を受けた後返送してもらわなければならない。したがって、正当者には必然的に検証対象のデータが送られてきて、検証対象のデータを確実に回収することができる。また、署名付き検証値を頻繁に出力するようにすればデータの一部が破損等しても他の多くのデータについては確実に検証を行うことができる。
【0143】
【発明の効果】
以上説明したように、この発明によれば、履歴を後に検証するために必要な検証値のデータ量や検証値の生成等に要する計算量を著しく削減できる。
【図面の簡単な説明】
【図1】 この発明の第1の実施例を全体として示すブロック図である。
【図2】 図1の情報処理装置11の構成を示すブロック図である。
【図3】 図1のトークン12の構成を示すブロック図である。
【図4】 図3の検証値保持部21を説明する図である。
【図5】 図1の回収装置13の構成を示すブロック図である。
【図6】 トークン12において復号される情報を説明する図である。
【図7】 利用履歴の構成を説明する図である。
【図8】 利用者から情報の利用要求が有った時の情報処理装置11の制御部14の処理を説明するフローチャートである。
【図9】 利用者から利用履歴回収命令が有った時の情報処理装置11の制御部14の処理を説明するフローチャートである。
【図10】 トークン12の復号部19が情報処理装置11から暗号化された情報の復号要求を受け取った時の処理を説明するフローチャートである。
【図11】 トークン12の復号部19から呼び出されるトークン12の検証値生成部20の処理を説明するフローチャートである。
【図12】 トークン12の検証値出力部22が情報処理装置11から検証値出力要求を受け取った時の処理を説明するフローチャートである。
【図13】 第2の実施例のトークン12の構成を示すブロック図である。
【図14】 図13のトークン12の処理を説明するフローチャートである。
【図15】 図13のトークン12の処理を説明するフローチャートである。
【図16】 図13のトークン12の処理を説明するフローチャートである。
【図17】 第2の実施例の情報処理装置11において実現されている機能ブロックを示すブロック図である。
【図18】 第2の実施例の回収装置13の構成を示すブロック図である。
【図19】 第2の実施例の利用履歴の構成を説明する図である。
【図20】 第2の実施例の利用履歴の他の構成を説明する図である。
【図21】 関連技術を説明する図である。
【符号の説明】
11 情報処理装置
12 トークン
13 回収装置
14 情報処理装置11の制御部
15 情報処理装置11の情報保持部
16 情報処理装置11の履歴保持部
17 情報処理装置11の履歴送信部
18 トークン12のユーザ秘密鍵保持部
19 トークン12の復号部
20 トークン12の検証値生成部
21 トークン12の検証値保持部
22 トークン12の検証値出力部
23 トークン12のトークン秘密鍵保持部
24 トークン12の電子署名部
25 回収装置13の履歴受信部
26 回収装置13の履歴保持部
27 回収装置13の履歴検証部
28 回収装置13のトークン公開鍵保持部
29 回収装置13の署名検証部
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a technique for verifying data, and more particularly to a data verification technique suitable for general use in an information processing apparatus in which a large amount of continuous data, for example, data such as a usage history must be transmitted or retained safely. .
[0002]
[Prior art]
With the recent development of digital information processing technology and the information highway concept, the time is coming when all information is digitized and distributed and distributed through the network. Already, in the form of the Internet, personal computer communication, or CD-ROM, various information such as images, moving images, sounds, programs, etc. as well as character information have started to be distributed and distributed.
[0003]
However, since various kinds of digital information such as characters, images, moving images, sounds, programs, etc. do not have an entity unlike physical objects, they are worthless unless they are used. It has features such as being possible at cost. However, at present, since the consideration is paid for the possession, the information once owned by a certain person is restricted from being copied. This means that the ease of copying and the low cost, which should be the best features of digital information, are forcibly contained.
[0004]
In order to solve this, recently, digital information represented by a program is encrypted and distributed freely, and when used, a fee is paid, a decryption key for using the digital information is received, and the information is decrypted. Systems that can be used in the form of new products have also appeared. Alternatively, from the viewpoint that information has no value unless it is used, the use of information such as the software service system in Japanese Patent Publication No. 6-95302 and the information usage measuring device in Japanese Patent Application Laid-Open No. 7-21276 A technique for charging the fee is proposed.
[0005]
With these technologies, on information processing devices such as personal computers and workstations, users do not purchase and use software, such as programs, for free or at very low prices. However, when it is used, it is charged in the form of a usage fee according to the usage, for example, how many times it is used once.
[0006]
In order to charge for the use of information, the usage fee must be collected from each user according to the frequency of use. Alternatively, in some cases, the collected collected usage fees must be distributed to the side providing the information according to the usage frequency. For this purpose, it is necessary to record the usage history in the user's environment safely and to collect it safely.
[0007]
However, Japanese Patent Laid-Open No. 7-21276 discloses a usage meter as a function for recording a usage history, but does not mention how to actually collect the usage amount recorded there.
[0008]
As a method therefor, there is a method of recording the use history not in a storage device managed by the information processing device used by the user, for example, a hard disk device, but in a safe device independent of the storage device. For example, in Japanese Patent Publication No. 6-95302, a usage history is written in an IC card.
[0009]
Further, in the charging information transmission method disclosed in Japanese Patent Laid-Open No. 3-25605 and the charging information collection system disclosed in Japanese Patent Laid-Open No. 6-180762, charging information is collected through a network.
[0010]
[Problems to be solved by the invention]
In order to collect the history written in a secure device such as an IC card, there is a method of collecting it on a network, or collecting it directly by a collector who has a legitimate authority directly from the device. .
[0011]
However, in the method of collecting the history through the network, the safety of the billing information, that is, the billing information is tampered in the middle or the user creates illegal billing information and sends it to the security aspect. It was not considered at all. Therefore, although it can be applied in a certain reliable network such as in a company, there is a problem that it cannot be applied to the Internet in which an unspecified number of individuals participate.
[0012]
Therefore, in order to safely collect the history in the device such as the IC card, there is only a method in which the collecting person having the right authority directly collects the history directly from the device.
[0013]
However, it is possible to solve the above problems by using a cryptographic technique that has recently been researched, particularly a digital signature technique. That is, it is only necessary to enclose a secret key unique to the safety device and to sign it whenever data is extracted from the safety device. As a result, it is possible to confirm later that the data is correct by confirming an electronic signature attached to the data.
[0014]
As a digital signature, a technique using RSA (Rivest-Shamir-Adleman) encryption is widely known. However, a signature based on RSA encryption or another electronic signature generally requires a very large amount of calculation, and it usually takes a long time for one process. Therefore, when a large amount of continuous data has to be signed, or when the signature processing is performed on a computer with low calculation capability, this becomes a very big problem.
[0015]
When a device such as an IC card is used as a safety device for recording a usage history, generally, the calculation capability of a CPU that can be mounted on such an IC card is often low, and it takes a very long time to perform a large amount of calculations. There was a problem that it took. Alternatively, in order to increase the calculation time, there is a problem that an extremely high cost is required to increase the calculation capability.
[0016]
In addition, since the usage history data is generally long, there is a problem that recording capacity becomes a problem when all history data is recorded in a small device such as an IC card.
[0017]
The security of modern cryptographic technologies such as RSA encryption is originally based on the amount of calculations, and as the capacity of computers increases, the key length used for signatures and encryption increases accordingly. ing. Therefore, it is not a problem that will be solved if the computer capacity increases in the future, but a device that can only use a computer with a lower processing capacity than the computer with the maximum processing capacity in that era (for example, tokens used by individuals) ) Will always be an essential issue in the future.
[0018]
The present invention has been made in view of such circumstances, and an object of the present invention is to provide a method capable of generating data capable of verifying data at high speed even when placed in a device having low calculation capability. is there.
[0019]
That is, the entire usage history is not held in the IC card, but only the verification value obtained from the usage history is held in the IC card, and the main body of the usage history is stored on the information processing apparatus (such as a personal computer) managed by the user. I want to hold it.
[0020]
Referring to the conventional technique from the viewpoint of the verification value, there is a technique called DES-MAC, which is a technique used for data communication. MAC is an abbreviation for Message Authentication Code, and is a code having a certain length indicating that a message is complete (not tampered). It is used as an attachment to the original message. Since it is fatal that an error occurs in the middle of data communication, it is configured to detect that data has changed in the middle.
[0021]
Here, DES is an abbreviation for Data Encryption Standard, which is a block cipher algorithm having 64 bits as one block (Applied Cryptography pp265). CBC (CypherBlock Chain) mode (Applied Cryptography pp193, JIS-X5051) is a type of block cipher typified by DES, and does not encrypt individual blocks independently, but encrypts immediately before In this method, the exclusive OR of the block to be encrypted and the block to be encrypted is calculated and used as the input of DES. In this method, even when blocks having the same contents are encrypted, if the blocks encrypted so far are different, the encrypted results will be different.
[0022]
DES-MAC (see Applied Cryptography pp455 for CBC-MAC) is an application of the CBC mode in DES, and is intended to use the last obtained block as a verification value for the entire data stream.
[0023]
The configuration of the DES-MAC is shown in FIG. The upper part of the figure is a data stream to be transmitted, and each data stream is divided into blocks each having 64 bits. IV is an abbreviation for Initial Vector, and is an initial value generated by a random number. Like the DES-CBC mode, the divided blocks are chained through the DES encryptor and transmitted with IV at the head and the verification value of the data stream to be transmitted at the end. . The receiving side verifies whether or not the verification values obtained by performing the reverse process to this process are equal.
[0024]
However, such a processing method is basically intended to transmit data by communication, and it is assumed that the sender holds the complete data for a short period of time, Attempting to apply it to a complete history collection creates problems. In other words, the history data is accumulated over a long period of time, and during that time, there is a possibility of being exposed to danger such as arbitrary management of the user or a system accident.
[0025]
First, the above method (DES-MAC) assumes that data blocks are continuously transmitted. That is, there is a lower layer for normal data transmission (TCP / IP: TCP layer in the transmission control protocol / Internet protocol), and the order of data blocks is guaranteed by that layer. Become.
[0026]
However, in the case of the usage history, if the usage history is placed under the management of the user, the order of the history cannot be guaranteed at that time. That is, the user can use the IC card by connecting it to a plurality of computers (for example, a desktop PC and a laptop PC) that can be used by the user. Considering that the usage history is recorded on the computer side, the usage history is distributed to a plurality of computers. Accordingly, the time order of the history distributed to a plurality of vehicles is lost.
[0027]
In the case of usage history, the temporal order is a very important factor. That is, the usage amount may be calculated later from a plurality of continuous usage histories. For example, in a simple example, the use time is calculated from the difference between the use start time and the use end time, or the difference in data length is calculated from the operation target data length at the start of use and the operation target data length at the end of use, This is the case of making it a usage amount.
[0028]
DES-MAC does not provide an essential solution to these problems.
[0029]
Furthermore, another problem when the usage history is placed under the user's management is that some of them may be lost intentionally or accidentally. In the case of DES-MAC, if a part of it is lost, verification becomes impossible. In DES-MAC, since it is assumed that the sender holds complete data only during communication, in such a case, retransmission may be performed. However, in the case of the usage history, since the loss of the history is essentially the loss of data, it cannot be restored. If the DES-MAC method is used as it is, even the remaining data cannot be verified.
[0030]
Furthermore, in a system that charges usage, it is essential to collect the history that is left at the user's hand. This is because if the history is not collected, there is a problem that the usage fee of the user cannot be calculated or the collected usage fee cannot be distributed to the information provider.
[0031]
Therefore, it is necessary to safely collect the usage history left at the user's hand. For that purpose, it is necessary to prevent the collection from being performed by a fake collection command or the like.
[0032]
Accordingly, an object of the present invention is to provide an apparatus capable of verifying a large amount of data at a high speed even when the calculation capacity is low and the storage capacity is small.
[0033]
Furthermore, a second object of the present invention is to provide a method capable of restoring the order even in an environment where the order of data is not preserved.
[0034]
Furthermore, a third object of the present invention is to provide a method capable of verifying remaining data even when a part of the data is lost.
[0035]
Furthermore, a fourth object of the present invention is to provide a method for safely controlling a data holding device from the outside.
[0036]
[Means for Solving the Problems]
In order to solve the above-described problem, the present invention specifically outputs data to the outside of the defense device without recording the data in the defense device in order to reduce the amount of data to be held. The small verification value of was kept in the defense device. In a specific configuration, verification is performed using a one-way function instead of an electronic signature so that data can be verified at high speed. In general, a hash function typified by MD5 has a result that a hash value of about three digits is faster when realized by software than an RSA encryption process. In particular, in order to make it possible to restore the order of history data, information capable of restoring the order is added to the history data. Furthermore, specifically, in order to control the defense device safely, a configuration in which a value obtained by adding the signature of the right person to the verification value held by the defense device is required. As a result, the verification value in the defense device is forcibly sent to the right person, and the execution of the verification is ensured.
[0037]
Further, the configuration of the present invention will be described. According to the present invention, in order to achieve the above-described object, in the history holding method, the history data group consisting of a plurality of continuous history data is protected from only one verification value that is sequentially calculated. When the verification value is output to the outside of the protected device, only the verification value is digitally signed.
[0038]
In this configuration, the calculation amount and the storage capacity can be suppressed.
[0039]
According to the present invention, in order to achieve the above-mentioned object, a data input means for inputting a plurality of continuous data to the history holding device, a data processing means for processing the data, The history value related to the data processing and the verification value held at that time are input, the verification value generation means for generating the verification value, and the verification value holding means for holding the generated verification value And a signature means for signing the verification value, and at least the verification value generation means, the verification value holding means, and the signature means are held in the protected apparatus.
[0040]
Even in this configuration, the calculation amount and the storage capacity can be suppressed.
[0041]
In this configuration, the calculation used for the verification value generating means can be a one-way function. Further, the format of the history data can be a set of a history data body and a verification value when the history data is processed. Further, counter means for counting each time data is processed can be further provided, and the history data format in the history data group can be composed of a counter value when the data is processed and a history body. Also, a signed verification value can be output in response to a user output request. Further, when the history holding device is composed of a single CPU and software, and the CPU load by the data processing means is low, the signature means appropriately creates and outputs a verification value signed to the verification value. Can do.
[0042]
In this configuration, the function of the data processing unit and the function of the data processing unit are stopped when the verification value is output, and the function of the data processing unit is stopped until a valid command is given from the outside. Means may be further provided. In addition, a stop condition holding means for stopping the function is provided, and when the condition described in the stop condition holding means is satisfied, the function stop means outputs a verification value with a signature that signs the verification value, The function may be stopped. In addition, there is a valid public key holding means for holding the public key of the external legitimate person, and the instruction that the function stopping means accepts to restore the function is an external legitimate person in the verification value output last. Is a digital signature, and when the function stopping unit receives an instruction, the signature is verified with the public key held in the valid public key holding unit, and the signed verification value is You may make it confirm whether it is equal to the verification value currently hold | maintained at the verification value holding means.
[0043]
Further, according to the present invention, in order to achieve the above-described object, the history verification apparatus includes a plurality of consecutive history data groups and a verification value with a signature in which a verification value calculated from these data groups is signed. The data group input from the data input means for inputting the signature, the signature verification means for verifying the signature of the input verification value with the signature, and the verification value of the input data group and the signature verified And verifying means for verifying that is correct.
[0044]
In this configuration, it is only necessary to perform signature verification on the signed verification value, so that the amount of calculation can be reduced.
[0045]
In this configuration, a pre-verification value storage unit for storing the verification value input last time may be provided, and the pre-verification value may be used when the verification unit performs verification. The calculation used for the verification means may be a one-way function. Further, the format of the history data can be a set of a history data body and a verification value when the history data is processed. Further, the history data format in the history data group may be constituted by a counter value when the data is processed and a history body.
[0046]
Further, according to the present invention, in order to achieve the above-mentioned object, the history storage device includes a data storage means for storing data, and a stop condition for holding a certain condition when the function is stopped. Holds the function, the function stop means for stopping the function when the condition held in the stop condition holding means is satisfied, and continues to stop the function until a valid command is given from the outside, and holds the secret key A private key holding means for applying the electronic signature to the data group held in the data holding means using the private key held in the private key holding means, and holding the signed electronic signature An electronic signature holding means for holding the public key of an external rightful person, and an instruction received by the function stopping means to restore the function is sent to the electronic signature holding means. An external legitimate person has given an electronic signature to the held electronic signature, and the signature is verified with the public key held in the legitimate public key holding means when the function stop means receives the command. In addition, it is checked whether the signed value is equal to the value held in the electronic signature holding means.
[0047]
In this configuration, a command signed by a legitimate person is sent only after the validity of the history is verified, and the stop state of the apparatus is released only after the legitimate command is verified. Therefore, there is no inconvenience that the service continues to be provided without collecting a valid history. In other words, collection of a valid history is ensured.
[0048]
In addition, a part of the present invention can be realized as a computer program product.
[0049]
The above described aspects of the invention and other aspects of the invention are set out in the claims, and will be described in detail below with reference to examples.
[0050]
BEST MODE FOR CARRYING OUT THE INVENTION
[First embodiment]
Examples of the present invention will be described below. First, the first embodiment will be described. In this embodiment and other embodiments described later, digital information such as encrypted programs and image information are generally used on an information processing apparatus such as a personal computer or a workstation, and the usage history at that time is used. Is recorded on an IC card (to be referred to as a token hereinafter) connected to the information processing apparatus at the timing of decoding the information, and the usage history is collected by the center. Of course, the present invention can be applied in addition to ensuring security of history data.
[0051]
FIG. 1 shows the overall configuration of this embodiment. In FIG. 1, there is an information processing apparatus 11 for using digital information, such as a personal computer or a workstation, in the user's environment, which decrypts encrypted information (or decrypts a key for decryption). ) And a token 12 for capturing the timing and recording the usage history is connected. For the connection between the token 12 and the information processing apparatus 11, any means capable of transmitting information, such as a PC card (PCMCIA: Personal Computer Memory Card Interface Association) interface, serial, parallel, infrared, etc., should be used. Can do. You may make it mount in the inside of the information processing apparatus 11. FIG.
[0052]
The information processing apparatus 11 of the user is connected to the collection apparatus 13 formed of an information processing apparatus such as a workstation or a large computer as necessary. The connection form may be a modem and a telephone line, or a network interface such as Ethernet. This connection is not always performed, and it is sufficient to perform the connection only when it is necessary to collect the use history from the information processing apparatus 11 of the user.
[0053]
FIG. 2 shows the configuration of the information processing apparatus 11 on the user side. The user information processing apparatus 11 may be a general personal computer or a workstation. The only difference is where the token 12 is connected. The information processing apparatus 11 implements a control unit 14, an information holding unit 15, a history holding unit 16, and a history transmission unit 17. Such a configuration can be realized, for example, by installing the program using the recording medium 11a on which the program is recorded.
[0054]
The control unit 14 performs the following processing while communicating with the token 12.
(1) The encrypted information stored in the information holding unit 15 is read out, passed to the token 12 for decryption, and the decrypted information is executed or processed.
(2) When the decrypted data is received, the usage history passed from the token 12 is received at the same time and stored in the history holding unit 16.
(3) In response to an instruction from the user, a “verification value output” command is issued to the token 12, and the verification value with the electronic signature as a result is passed to the history transmission unit 17.
[0055]
The information holding unit 15 stores data and information used by the user or encrypted data. Actually, it is composed of an external storage device such as a memory or a hard disk device.
[0056]
The history holding unit 16 stores the history passed from the token 12 through the control unit 14. Actually, it is composed of an external storage device such as a memory or a hard disk device. A specific configuration of the history will be described later.
[0057]
The history transmission unit 17 receives a command from the control unit 14, reads the history held in the history holding unit 16 together with the verification value passed from the control unit 14, and transmits it to the collection device 13 in the center. Actually, it is composed of a modem and a telephone line, or a network interface such as Ethernet. Alternatively, it may be stored temporarily in a device such as a floppy disk even if it is not a network, and the user may input it manually into the collection device 13 in the center.
[0058]
FIG. 3 shows the configuration of the token 12 on the user side. The token 12 is physically composed of a general MPU, a memory, and the like. The token 12 itself is contained in an attack counter container so as to withstand physical attacks from the outside, such as reading or destroying the contents of the memory. Since the attack container is a well-known technique (Japanese Patent No. 186353, Japanese Patent No. 1860463, Japanese Patent Laid-Open No. 3-100573, etc.), description thereof is omitted here. Note that the level of attack that can be chosen depends on the level of data security. In some cases, the attack posture may be weak.
[0059]
The token 12 is connected to the information processing apparatus 11 of the user, performs certain processing according to an instruction from the information processing apparatus 11, and returns the result. The token 12 includes a user secret key holding unit 18, a decrypting unit 19, a verification value generating unit 20, a verification value holding unit 21, a verification value output unit 22, a token secret key holding unit 23, an electronic signature unit 24, and the like. Each component of the token 12 will be described in detail later. The token 12 has the following functions.
[0060]
(1) Information decryption function and retention of usage history (1) Receive encrypted data from the information processing apparatus 11, decrypt it with the private key stored in the user private key storage unit 18, and process the decrypted data Return to device 11.
(2) At the same time as performing the decryption process, the header of the decrypted data is referred to, the information identifier described therein is referred to, and the identifier is returned to the information processing apparatus 11 as a usage history.
(3) Further, the usage history is also passed to the verification value generation unit 20, and the verification value generation unit 20 calculates the usage history and the verification value held in the verification value holding unit 21 at that time, The calculation result is stored in the verification value holding unit 21.
[0061]
{Circle around (2)} Verification Value Output Function Upon receiving an output request from the information processing apparatus 11, the verification value held in the verification value holding unit 21 is digitally signed and returned at that time. Thereafter, the data in the verification value holding unit 21 is erased.
[0062]
Hereinafter, each component of the token 12 will be described.
[0063]
In response to the decryption request from the information processing apparatus 11, the decryption unit 19 decrypts the received encrypted data using the user-specific secret key stored in the user secret key storage unit 18, and the result Is returned to the information processing apparatus 11 side as decoded data. At this time, the header of the decrypted data is read at the same time, and the information identifier described therein is returned to the information processing apparatus 11 side as a usage history, and also passed to the verification value generation unit 20 (in this example, the usage history is The information identifier of the information used is used).
[0064]
With this configuration, the user always needs access to the token 12 when using the information, and the usage history can be reliably recorded.
[0065]
Here, the encrypted data delivered from the information processing apparatus 11 side may be information obtained by encrypting the information itself, or may be obtained by encrypting a key for decrypting the encrypted information. In the latter case, the information body 11 is decrypted on the information processing apparatus 11 side.
[0066]
The user secret key holding unit 18 holds a user-specific secret key. Generally, the token 12 is distributed to the user in a form in which a unique key for each user is enclosed in advance by a token issuing center or the like. Therefore, the user secret key cannot be known by the user himself / herself.
[0067]
The verification value holding unit 21 holds only one verification value that is sequentially updated. The verification value is generally a value having a fixed length such as 16 bytes. Therefore, if the verification value is 16 bytes, it is composed of only a 16-byte memory. FIG. 4 shows a configuration example of the verification value.
[0068]
The verification value output unit 22 receives a verification value output request from the information processing apparatus 11 side, reads the verification value stored in the verification value holding unit 21 at that time, and returns it to the information processing apparatus 11 side. It has a function. At that time, the verification value output unit 22 calls the electronic signature unit 24 to apply the electronic signature to the verification value.
[0069]
The electronic signature unit 24 performs processing for applying an electronic signature to a given value using the private key held in the token private key holding unit 23 that holds the private key dedicated to the token. The token secret key holding unit 23 is a configuration unit that holds a signature secret key used when performing an electronic signature. An electronic signature technique such as an RSA signature can be used for these components, and since it is a conventional technique, a detailed description is omitted here.
[0070]
When the verification value generation unit 20 receives the usage history (in this case, the information identifier) from the decryption unit 19, the verification value generation unit 20 reads the verification value held in the verification value holding unit 21, and calculates the following from the usage history and the verification value: To calculate a new verification value.
[0071]
[Expression 1]
H = Hash (Usage + Hold)
Here, H is a new verification value, Hold is a current verification value, Usage is a usage history, Hash () is a one-way function, and MD5 or SHA (Secure Hash Algorithm) is actually used. The operation “+” in this operation may actually be added as a numerical value, and if the lengths are the same, an exclusive OR operation may be performed, or two data may be simply arranged in order. . Anyway, what is necessary is just to synthesize two values. The verification value generation unit 20 stores the new verification value calculated in this way in the verification value holding unit 21 (that is, overwrites the old value).
[0072]
The verification value output unit 22 receives an output request from the information processing apparatus 11, returns the verification value held in the verification value holding unit 21 at that time, and then initializes the verification value holding unit 21 to a predetermined value. So that Or you may make it clear simply.
[0073]
Next, the center collection device 13 will be described. The configuration of the collection device 13 is shown in FIG. In FIG. 5, the collection device 13 includes a history receiving unit 25, a history holding unit 26, a history verification unit 27, a token public key holding unit 28, a signature verification unit 29, and the like. The collection device 13 receives the history sent from the information processing device 11 of the user by the history receiving unit 25 and stores the contents in the history holding unit 26. The stored usage history is read by the history verification unit 27 to verify whether the history is correct, and the result is output to a manager on the center side.
[0074]
In general, the center then calculates the information usage fee according to the contents of the history, collects the fee from the user, and distributes the collected usage fee to the information provider according to the details of the information usage history. The process of doing. However, the description is omitted here because it is not directly related to the essence of the present invention.
[0075]
Hereinafter, each component of the collection device 13 will be described.
[0076]
The history receiving unit 25 receives history information sent from the information processing apparatus 11. Actually, it is constituted by a modem and a network interface such as a telephone line or Ethernet, or an external information input device such as a floppy disk device, like the history transmission unit 17 (FIG. 2) of the information processing apparatus 11. The usage history received by the history receiving unit 25 is stored in the history holding unit 26.
[0077]
Further, in order to verify whether the verification value sent from the information processing apparatus 11 is valid, the token public key holding unit 28 and the signature verification unit 29 are provided.
[0078]
When the history is transmitted from the information processing apparatus 11, the history receiving unit 25 receives the history. The received history is stored in the history holding unit 26 and passed to the signature verification unit 29. The signature verification unit 29 selects the public key of the token 12 connected to the information processing apparatus 11 that has transmitted the history from the plurality of token public keys stored in the token public key holding unit 28, and the public key To verify the history signature. The verification result is held together with the history stored in the history holding unit 26. If the verification result is false, the verification value may have been falsified or forged, so the following processing is not continued and a message to that effect is output to the administrator. Stop processing.
[0079]
If the signature is verified, the following processing is continued.
[0080]
The history holding unit 26 holds the usage history and the verification result passed from the history receiving unit 25. The history holding unit 26 is actually composed of a storage device such as a memory.
[0081]
The history verification unit 27 verifies the history held in the history holding unit 26 as follows.
(1) The transmitted history sequence is represented by ud 1 , ud 2 , ud 3 . . . Let ud n be.
(2) Let the verification value attached at the end of the history be hud.
(3) If the initial value of the verification value is ihud, whether or not hu ′ as a result of calculation is equal to the received hud is examined according to the following calculation formula.
[0082]
[Expression 2]
hud ′ = Hash (ud n + Hash (ud n−1 +... Hash (ud 2 + Hash (ud 1 + ihud)).
hud =? hud '
(4) If they are equal, it is determined that they have not been tampered with, and if they are not equal, it has been determined that they have been tampered with, and the result is notified to the administrator of the collection device.
[0083]
Next, the format of information processed by each unit will be described.
[0084]
FIG. 6 shows a format of encrypted information to be decrypted by the token 12. (A) is a case where the information itself is encrypted with the user's private key. (B) decrypts the secret key used to encrypt the information body with the user-specific secret key first, and uses the information-specific secret key obtained as a result, This is a case where the main body is decrypted. In the case of (b), the information body may be decrypted not by the token 12 but by the information processing apparatus side. In addition, although an example using conventional encryption is described here, it goes without saying that public encryption may be used for these.
[0085]
Here, the information identifier is an information-specific identifier given when the center encrypts and distributes the information. The information identifier is managed by the center (for example, by having a database). When the information identifier is specified, it is possible to specify who created the information.
[0086]
FIG. 7 shows a usage history format. (A) is a use history recorded in the information processing apparatus 11 in this embodiment, and is a column of information identifiers (of information decrypted with tokens) used. (B) is a usage history sent from the information processing apparatus 11 to the center, and is different only in that the verification value held by the token and the token signature for the verification value are attached at the end of (a).
[0087]
Each usage history is composed only of information identifiers used in this embodiment, but this may include arbitrary data such as time of use, user identifier, usage amount, usage amount, etc. Good. That is, when various information is left as a history (generally, it is common to leave various information in the history), the individual history becomes long, and the present invention is effective.
[0088]
Next, processing in the information processing apparatus 11 and the token 12 will be described with reference to FIGS. FIG. 8 shows the flow of processing when there is an information use request from the user in the control unit 14 of the information processing apparatus 11. FIG. 9 is a process when the control history is issued from the user in the control unit 14. FIG. 10 shows processing when the decryption unit 19 of the token 12 receives a decryption request for encrypted information from the information processing apparatus 11. FIG. 11 shows the processing of the verification value generation unit 20 of the token 12 called from the decryption unit 19 of the token 12. FIG. 12 shows processing when the verification value output unit 22 of the token 12 receives a verification value output request from the information processing apparatus 11.
[0089]
As shown in FIG. 8, when there is a request for information use from the user, the control unit 14 of the information processing apparatus 11 proceeds as follows. First, it is determined whether the target information is encrypted (S11). If it is not encrypted, the information is processed as it is (S15). When it is encrypted, a decryption request is issued to the token 12 and the target information is delivered (S12). At this time, if an error is returned from the token 12, an error message “the token history is full” is issued and the processing is terminated (S13, S16). If no error is returned, the usage history that has been overlooked from the token 12 is recorded in a recording device such as a disk (S14). Then, the target information is processed (S15).
[0090]
As shown in FIG. 9, when there is a usage history collection command from the user, the control unit 14 of the information processing apparatus 11 proceeds as follows. First, it is determined whether the target information is encrypted (S21). If it is not encrypted, the information is processed as it is (S24). When it is encrypted, a decryption request is issued to the token 12 and the target information is delivered (S22). The usage history returned from the token 12 is recorded in a recording device such as a disk (S23). Thereafter, the target information is processed (S24).
[0091]
As shown in FIG. 10, when the decryption unit 19 of the token 12 receives a decryption request for encrypted information from the information processing apparatus 11, the process proceeds as follows. First, the user secret key Ku is extracted from the user secret key holding unit 18 (S31). The encrypted data is decrypted with the user secret key Ku and the decrypted data is stored (S32). The information identifier is read with reference to the header of the decoded data, and the verification value generation unit 20 is called using this identifier as an argument to execute the verification value generation processing (see S33, S34, FIG. 11). Thereafter, the decrypted data and the identifier are returned to the information processing apparatus 11 (S35).
[0092]
As shown in FIG. 11, when the verification value generation unit 20 of the token 12 is called from the decryption unit 19 of the token 12, the process proceeds as follows. First, a verification value is extracted from the verification value holding unit 21 (S41). A hash calculation is performed on the information identifier and the verification value, and the calculation result is stored in the verification value holding unit 21 as a new verification value (S42, S43).
[0093]
As shown in FIG. 12, when the verification value output unit 22 of the token 12 receives a verification value output request from the information processing apparatus 11, the processing proceeds as follows. First, the verification value stored in the verification value holding unit 21 is read (S51). Thereafter, the stored contents of the verification value holding unit 21 are initialized (S52). The electronic signature unit 24 is called by using the read verification value as an argument, and the verification value is signed (S53). A signature is added after the verification value and output (S54).
[0094]
This is the end of the description of the first embodiment.
[0095]
When the user authentication apparatus and method disclosed in Japanese Patent Application No. 8-62076 is used in combination with the present invention, the modulus n in the calculation of the modular exponent is changed for each access ticket to be issued. n can be used as an information identifier. That is, in the user authentication method disclosed in Japanese Patent Application No. 8-62076, an access ticket (auxiliary information for authentication) is received from the outside, and the access ticket and user identification information are used for certification, for example, decryption of encrypted data. ing. The modulus n used at this time is used as an information identifier. In this case, the modulus n is not extracted after being decrypted by the decryption device inside the token, but is given from the outside together with the information to be decrypted.
[0096]
With this configuration, the capacity of the verification value holding unit 21 that must be prepared inside the token 12 can be minimized, and the production cost of the token 12 can be reduced.
[0097]
[Second Embodiment]
Next, a second embodiment of the present invention will be described. The embodiment described here is obtained by adding some functions to the first embodiment. The functions and effects are listed below.
[0098]
(1) The token 12 outputs a verification value to stop the function, and when the message is received from the center, the function is restored.
[0099]
When the verification value is output to the outside or when a certain time has elapsed using the clock function, the token 12 outputs the verification value at that time and stops to prompt the user to collect the history. (Or autonomously stop and request a verification value). In order to restore the function of the token 12, the user has to send a history and a verification value to the center for confirmation and receive a message for restoring the function from the center. It is assumed that the function recovery message issued by the center has an electronic signature attached to the verification value sent from the user.
[0100]
(2) The verification value at the time when the usage history is processed is also output as the history.
[0101]
In addition to the information identifier, the contents of the usage history include the verification value when the history is generated. As a result, the continuity of individual histories can be checked later, and it is not necessary to strictly manage the history (order) on the information processing apparatus side.
[0102]
(3) The old verification value is held on the center side.
[0103]
In the embodiments so far, the verification value inside the token is initialized by the output request from the user. However, the function can be made unnecessary by holding the previous verification value of the user on the collection device side of the center.
[0104]
FIG. 13 shows the configuration of the token 12 in this embodiment. In FIG. 13, portions corresponding to those in FIG. 3 are denoted by corresponding reference numerals, and detailed description thereof is omitted. In this figure, a token 12 includes a user secret key holding unit 18, a decrypting unit 19, a verification value generating unit 20, a verification value holding unit 21, a token secret key holding unit 23, an electronic signature unit 24, a control unit 30, and a history generating unit. 31, a counting unit 32, a center public key holding unit 33, a signature verification unit 34, and the like. In addition, you may provide the clock part 35 as needed.
[0105]
In the present embodiment, all communication with the information processing apparatus 11 is configured to be performed via the control unit 30, and the control unit 30 appropriately calls another processing unit in response to a request from the information processing apparatus 11 and performs processing. Do.
[0106]
The control unit 30 holds the operation state of the token 12 therein, and there are two operation states, a normal mode and a stop mode. In the normal mode, the token 12 performs a decryption process as described in the first embodiment in response to a decryption request from the information processing apparatus 11 and returns the result. On the other hand, the decryption request processing is not accepted in the stop mode. In the stop mode, basically, only the function restart request (verification value with center signature) is accepted, and if the request is valid, the stop mode is canceled and the normal mode is entered. In addition, a process of outputting a verification value signed to the verification value held in the verification value holding unit 21 at that time may be accepted.
[0107]
The transition from the normal mode to the stop mode depends on, for example, the number of times the decoding process is performed. The counting unit 32 in FIG. 13 holds the number of times the decoding process has been performed. For example, when the number of times exceeds a predetermined number of times (for example, 100 times), a message that “the time limit has passed” is returned to the information processing apparatus 11 side, and the mode is shifted to the stop mode.
[0108]
In the case of having a clock as a configuration, it may be performed based on the previous stop time information held in the control unit 30. That is, when there is a request from the information processing device, the control unit compares the previous stop time held in the control unit with the current time, and a predetermined time (for example, one month) has elapsed. If it is, the message “Expiration date has passed” is returned to the information processing apparatus 11 side, and the mode is shifted to the stop mode.
[0109]
Next, the processing of the control unit 30 of the token 12 will be described in detail with reference to FIGS. In addition, the part shown with the dotted line in FIGS. 14-16 means not the process of the control part 30, but the process of a related component.
[0110]
In FIG. 14, any one of a decryption request, a verification value output request, and a function resumption request is input from the information processing apparatus 11 to the control unit 30 of the token 12. First, it is determined whether or not the mode of the control unit 30 is the stop mode (S61). When not in the stop mode, the count value of the counting unit 32 is read, and it is determined whether or not the count value exceeds a reference value, for example, 100 (S62, S63). If it does not exceed 100, the process proceeds to node B in FIG. If it exceeds 100, a signed verification value is output. That is, the value stored in the verification value holding unit 21 is read, and a verification value with a signature is generated and received by the electronic signature unit 24 (S64, S65). Thereafter, a verification value with a signature and a message “shift to stop mode” are returned to the information processing apparatus 11 (S66). Then, the count value of the counting unit 32 is cleared and the mode is shifted to the stop mode (S67, S68).
[0111]
In step S61, when the control unit 30 is in the stop mode, it is determined whether the received request is a decryption request, a verification value output request, or a function resumption request (S69, S70, S71). If the request is a decryption request, a message “currently in stop mode” is returned to the information processing apparatus 11, and the process ends (S72). When the request is a verification value output request, the verification value stored in the verification value holding unit 21 is read, and a verification value with a signature is generated and received by the electronic signature unit 24 (S73, S74). Thereafter, the signed verification value is returned to the information processing apparatus 11 and the process is terminated (S75). When the function restart request is made, the process proceeds to the function restart process of the node A in FIG. If the received request is neither a decryption request, a verification value output request, or a function restart request, an error is returned to the information processing apparatus 11 and the process is terminated (S76).
[0112]
FIG. 15 shows the function restart process. In FIG. 15, first, the received verification value with the center signature is passed to the signature verification unit 24 to verify the validity of the signature (S77). If the signature is correct, the passed verification value is compared with the verification value stored in the verification value holding unit 21 to check whether or not they match (S78 to S80). If they match, the mode of the control unit is shifted from the stop mode to the normal mode, and a “function restart” message is returned to the information processing apparatus 11 (S81, S82). If the signature is not correct in step S78, a message “signature is not correct” is returned to the information processing apparatus 11 and the process is terminated (S83). If the verification values do not match in step S80, a message “verification value is incorrect” is returned to the information processing apparatus 11 and the process is terminated (S84).
[0113]
FIG. 16 shows processing when the count value does not exceed a threshold value, for example, 100. In FIG. 16, it is first checked whether the request is a decryption request (S85). In the case of a decryption request, the passed data is sent to the decryption unit 19 (S88). The decoding unit 19 performs decoding (S89 to S93). If the request is not a decryption request, it is determined whether the request is a verification value request (S86). If the request is a verification value request, the process proceeds to node C in FIG. 14 and a verification value output process is performed. If it is not a verification value output request in step S86, an error is returned to the information processing apparatus 11 and the process is terminated (S87).
[0114]
This is the end of the description of the processing of the control unit 30 of the token 12.
[0115]
In this example, even when there is a verification value request from the information processing apparatus 11 side, the mode is shifted to the stop mode (from step S86 in FIG. 16 to node C in FIG. 14). It doesn't matter. For example, in response to a verification value request in the normal mode, the verification value may be updated and a value signed with the verification value held at that time may be returned (this advantage will be described in the description of this embodiment). I will mention it at the end).
[0116]
The decryption unit 19 and the user secret key storage unit 18 have the same functions as in the first embodiment.
[0117]
As shown in FIG. 16, the history generation unit 31 generates three sets of the information identifier passed from the decoding unit 19 and the current verification value, and performs processing to pass it to the control unit 30 as a usage history.
[0118]
The verification value generation unit 20 applies the history ud passed from the history generation unit 31 to the history ud.
[0119]
[Equation 3]
Hu = Hash (ud)
The hash value is calculated and stored in the verification value holding unit 21. The verification value holding unit 21 holds the verification value at that time.
[0120]
Similar to the first embodiment, the electronic signature unit 24 performs processing for applying an electronic signature to a given value using the private key held in the private key holding unit 23 that holds the private key dedicated to the token. I do. In the present embodiment, a signature verification unit 34 is further provided to perform a process of verifying whether the signature passed using the center public key held in the center public key holding unit 33 is the center signature. . Basically, an electronic signature technique such as an RSA signature can be used for these components, and since it is a well-known technique, a detailed description is omitted here.
[0121]
The configuration of the information processing apparatus 11 in this embodiment is shown in FIG. In FIG. 17, parts corresponding to those in FIG. In this figure, the configuration is basically the same as that of the first embodiment, but since the token enters the stop mode at a certain point in the information processing apparatus 11 of the present embodiment, in order to restart it. Must send a history to the center and send a resume message for it. Therefore, there is a difference in that there is a signed verification value receiving unit 36 that receives a verification value with a signature from the center. Moreover, the structure of the history held in the history holding unit 16 is different.
[0122]
FIG. 18 shows the configuration of the center collection device 13 in this embodiment. 18, parts corresponding to those in FIG. In this figure, as compared with the configuration of the first embodiment, when the validity of the history is verified, the verification value with the signature of the center has to be sent to the information processing apparatus 11, so that this is done. , That is, a center secret key holding unit 37, an electronic signature unit 38, and a signed verification value transmission unit 39 are added. Moreover, since the structure of the utilization log | history sent from the information processing apparatus 11 side differs, the log | history processed in a collection center naturally also differs.
[0123]
FIG. 19 shows a configuration of usage history held in each unit.
(A) is a usage history recorded in the history holding unit 16 of the information processing apparatus 11. The contents of each history have a configuration of a pair of an information identifier as shown in (c) and a verification value held in the token at that time.
[0124]
When the history is sent from the information processing apparatus 11 to the center, a verification value with the signature of the token 12 is given at the end of the history column (b). The signed verification value is output when the token 12 stops functioning, and the token 12 has an electronic signature on the verification value at that time (d).
[0125]
The center uses the signed verification value (d) for history verification. As a result of the verification, if it is determined to be valid, a value obtained by applying the electronic signature to the verification value attached last as a message for resuming the function of the token 12 is sent to the information processing apparatus 11. . That is (e).
[0126]
Next, processing of the collection device 13 will be described. When the history is transmitted from the information processing apparatus 11, the history receiving unit 25 receives the history. The received history is stored in the history holding unit 26 and passed to the signature verification unit 29. The signature verification unit 29 selects the public key of the token 12 connected to the information processing apparatus 11 that has transmitted the history from the plurality of token public keys stored in the token public key holding unit 28, and the public key To verify the history signature. The verification result is held together with the history stored in the history holding unit 26.
[0127]
When the history reception is completed, the history verification unit 27 starts to operate. The history verification unit 27 refers to the history just received and refers to the verification result of the signature attached thereto. If the signature verification result is not valid, no further processing is performed. If the verification result attached to the history is valid, it is further verified whether the content of the history is valid.
[0128]
The verification process of the contents of the history is performed as follows.
(1) Assume that the sent history column is as follows.
(Id 1 , hu 0 ), (id 2 , hu 1 ), (id 3 , hu 2 ),. . . , (Id n , hu n-1 ), sign (hu n )
Here, it is assumed that id is an information identifier, hu is a verification value when the history is generated, and sign () is a token signature.
(2) The verification value when the token was sent last time is searched from the history holding unit, and it is set as Hold.
(3) The verification value hu 0 is taken out from the first history (ID 1 , hu 0 ) of the sent usage history, and it is confirmed whether or not it is equal to Hold.
(4) Next, Hash (id 1 , hu 0 ) is calculated, and it is confirmed whether or not it becomes hu 1 .
(5) below in the same manner ascertain the end of the verification value hu n.
(6) If all inspections are passed, it is determined that the usage history is valid.
[0129]
Only when it is determined that the history is correct as a result of the verification process, the last verification value hun is sent to the electronic signature unit, and the electronic signature is applied with the secret key of the center. Then, the verification value with the signature of the center is sent back to the information processing apparatus that has sent the history.
[0130]
With the configuration described above, the token stops functioning at a certain point in time, and thus the user of the information processing apparatus must send a valid history to the center in order to resume the token function. Accordingly, it is possible to prompt the user to collect the history.
[0131]
In addition, since the last verification value is recorded on the center side, even if a part of the correct history sent from the token has been destroyed for some reason, the verification is simply unsuccessful. The data held on the side does not change. Therefore, in this case, if the token re-sends the history, the verification is normally performed.
[0132]
Also, in this embodiment, by configuring the token to output the verification value autonomously, even when some history is broken (lost) when verifying the history on the collection device side Most of the other parts can be made verifiable.
[0133]
That is, not only when the user requests a verification value as described above, but also when the token load is low, the token autonomously signs the verification value held at that time, When the history is verified on the collection device side, even if a part of the history is broken (lost), it is possible to verify most of the other parts.
[0134]
In this case, the usage history sent to the center is configured as shown in FIG. 20, for example. At this time, it is assumed that the history 25 is lost on the information processing apparatus side due to some accident.
[0135]
In the case of a usage history having only the last verification value as shown above, the history 26 and later can be verified, but the contents of the history 1 to the history 24 are not lost. Cannot be verified as valid.
[0136]
By inserting a verification value with a signature in the middle, in the case of this example, if the history 25 is lost, only the history 24 becomes unverifiable, and the remaining history can be verified. It becomes. That is, the history 1 to the history 10 are signed with the verification value 1, the history 11 to the history 23 are signed with the verification value 2, the history 25 to the history 36 are signed with the verification value 3, and the history 37 to the history 57. This is because each can be verified by the signed verification value 4.
[0137]
In this way, by inserting verification values with signatures at appropriate intervals into the history, even if a part of the history is lost, it becomes possible to verify the majority of the remaining history. is there.
[0138]
In order to realize this, a device for determining whether or not the load is low is provided in the control unit inside the token, and when the token load is low, a verification value with a signature may be generated autonomously. .
[0139]
Further, the verification value with the signature may be output in response to a request from the information processing apparatus, that is, the user even if the token is not autonomously performed. For this purpose, the processing is performed not to branch the node C in FIG. 16 to the node C (step S64) in FIG. 14 but to update the verification value to generate a signed verification value and return it to the information processing apparatus 11. Change it.
[0140]
Further, by providing the token with a clock function, time information can be obtained as a usage history. As a result, the collection center can know not only the history of which information was used, but also the time of use. The clock unit is a normal clock function, and only has a function of holding the date and time and outputting the current time according to the request. In order to include the time in the history, it is only necessary to combine the time information with the information identifier described above. In addition, if the clock function is provided, it is possible to set “the time elapsed since the previous stop” as the condition for shifting to the stop mode described above.
[0141]
Furthermore, in this embodiment, the verification value held at that time is added to the history output to the outside, but this is provided with a counter unit inside the token, and each time the history is output, a counter is provided. The counter value may be output instead of the verification value when the history is output to the outside. In that case, the part that becomes the input of the hash function in the description so far is the usage history and the value of the counter held at that time.
[0142]
As described above, according to the above-described embodiment, in order to reduce the amount of data to be retained, the data is not stored in the defense device, but output to the outside of the defense device. Instead, a verification value with a small amount of data is used. Are stored in the defense device. Therefore, the storage capacity and required processing capacity of the defense device can be suppressed. Since the verification value is sent to the outside with a signature, falsification can be prevented and data verification can be performed reliably. In addition, in order to make it possible to restore the order of the data, by adding information for order restoration to the data, even if the data is stored in a distributed manner, the order is restored to facilitate verification. be able to. Further, when the defense device receives the value obtained by attaching the legitimate signature to the data held by the defense device, the related processing can be continuously executed. The data held inside must be sent to a legitimate person, received a signature, and returned. Therefore, the data to be verified is inevitably sent to the legitimate person, and the data to be verified can be reliably collected. Further, if the verification value with signature is frequently output, even if a part of the data is damaged, it is possible to surely verify many other data.
[0143]
【The invention's effect】
As described above, according to the present invention, it is possible to remarkably reduce the amount of verification value data necessary for verifying the history later and the amount of calculation required for generating the verification value.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a first embodiment of the present invention as a whole.
2 is a block diagram showing a configuration of the information processing apparatus 11 of FIG.
FIG. 3 is a block diagram showing a configuration of a token 12 in FIG.
4 is a diagram for explaining a verification value holding unit 21 in FIG. 3; FIG.
FIG. 5 is a block diagram showing a configuration of the collection device 13 of FIG.
FIG. 6 is a diagram for explaining information decrypted in a token 12;
FIG. 7 is a diagram illustrating a configuration of a usage history.
FIG. 8 is a flowchart illustrating processing of the control unit 14 of the information processing apparatus 11 when there is a request for use of information from a user.
FIG. 9 is a flowchart for explaining processing of the control unit 14 of the information processing apparatus 11 when there is a usage history collection command from a user.
10 is a flowchart for explaining processing when the decryption unit 19 of the token 12 receives a decryption request for encrypted information from the information processing apparatus 11. FIG.
FIG. 11 is a flowchart for explaining processing of the verification value generation unit 20 of the token 12 called from the decryption unit 19 of the token 12;
12 is a flowchart for explaining processing when the verification value output unit 22 of the token 12 receives a verification value output request from the information processing apparatus 11. FIG.
FIG. 13 is a block diagram illustrating a configuration of a token 12 according to the second embodiment.
14 is a flowchart for explaining processing of the token 12 in FIG. 13;
15 is a flowchart for explaining processing of the token 12 in FIG. 13;
16 is a flowchart for explaining processing of the token 12 of FIG.
FIG. 17 is a block diagram illustrating functional blocks implemented in the information processing apparatus 11 according to the second embodiment;
FIG. 18 is a block diagram illustrating a configuration of a collection device 13 according to a second embodiment.
FIG. 19 is a diagram illustrating the configuration of a usage history according to the second embodiment.
FIG. 20 is a diagram illustrating another configuration of the usage history according to the second embodiment.
FIG. 21 is a diagram for explaining a related technique.
[Explanation of symbols]
11 Information processing device 12 Token 13 Collection device 14 Control unit 15 of information processing device 11 Information holding unit 16 of information processing device 11 History holding unit 17 of information processing device 11 History transmission unit 18 of information processing device 11 User secret of token 12 Key holding unit 19 Token 12 decrypting unit 20 Token 12 verification value generating unit 21 Token 12 verification value holding unit 22 Token 12 verification value output unit 23 Token 12 token private key holding unit 24 Token 12 electronic signature unit 25 History receiving unit 26 of the collection device 13 History holding unit 27 of the collection device 13 History verification unit 28 of the collection device 13 Token public key holding unit 29 of the collection device 13 Signature verification unit of the collection device 13

Claims (14)

防御された装置の内部の動作に関連して当該装置内で生成された複数の連続した履歴データからなる履歴データ群に対して、順次計算される唯一の検証値のみを上記防御された装置内に保持し、上記履歴データ群は上記防御された装置の外部に保持し、上記検証値を上記防御された装置の外部に出力する際には、上記検証値のみにデジタル署名を施し、さらに、新たな唯一の検証値を、その時点で保持する前回の唯一の検証値と、その時点で当該装置内で生成される履歴データとから、前回の唯一の検証値を生成するのに用いた履歴データおよびそれ以前の履歴データを参照することなしに生成することを特徴とする履歴保持方法。Respect in connection with the internal operation of the defended device history data group including a plurality of successive historical data generated in the apparatus, the only only verification values are the protection device to be sequentially calculated held in, the history data group is stored in the external of the defended device, the verification value when outputting to the outside of the protection device, are then facilities a digital signature only to the verification value, further The new unique verification value was used to generate the previous unique verification value from the previous unique verification value held at that time and the historical data generated in the device at that time. A history holding method characterized by generating history data and previous history data without referring to the history data . 複数の連続したデータを入力するためのデータ入力手段と、
上記データを処理するためのデータ処理手段と、
上記データの処理に関連する履歴データと、その時点で保持する検証値を入力として、上記その時点で保持する前回の検証値を生成するのに用いた履歴データおよびそれ以前の履歴データを参照することなしに、新たな検証値を生成するための検証値生成手段と、
生成された上記検証値を保持するための検証値保持手段と、
該検証値に対して署名を施すための署名手段とを防御された装置内に保持し、上記検証値の生成に用いた履歴データは上記防御された装置の外部に保持して上記防御された装置の内部に保持しないことを特徴とした履歴保持装置。
Data input means for inputting a plurality of continuous data;
Data processing means for processing the data;
Using the history data related to the processing of the data and the verification value held at that time as input , refer to the history data used to generate the previous verification value held at that time and previous history data. A verification value generation means for generating a new verification value without
Verification value holding means for holding the generated verification value;
Holds a signature means for applying a signature to the verification value in the defense by the apparatus, the history data used for generating the verification value is the defense to hold the outside of the defended device The history holding device is characterized in that it is not held inside the device.
上記検証値生成手段に用いる計算が一方向性関数である請求項2記載の履歴保持装置。  The history holding apparatus according to claim 2, wherein the calculation used for the verification value generating means is a one-way function. 上記履歴データの形式が、履歴データ本体とその履歴データを処理した時の検証値との組である請求項2または3記載の履歴保持装置。  4. The history holding device according to claim 2, wherein the format of the history data is a set of a history data body and a verification value when the history data is processed. データを処理する毎にカウントするカウンタ手段を有し、上記履歴データ群における履歴データの形式が、データを処理した時のカウンタの値と履歴本体からなる請求項2、3または4記載の履歴保持装置。  5. The history holding according to claim 2, further comprising a counter means for counting each time data is processed, wherein the history data format in the history data group includes a counter value when the data is processed and a history body. apparatus. 利用者の出力要求に応じて、署名された検証値を出力する請求項2、3、4または5記載の履歴保持装置。  6. The history holding device according to claim 2, wherein the signed verification value is output in response to a user output request. 上記履歴保持装置が単一のCPUとソフトウェアで構成され、データ処理手段によるCPUの負荷が低い時に上記署名手段が、適宜検証値に署名した検証値を作成して出力する請求項2、3、4、5または6記載の履歴保持装置。  The history holding device is constituted by a single CPU and software, and when the load on the CPU by the data processing means is low, the signature unit creates and outputs a verification value appropriately signing the verification value. 4. The history holding device according to 4, 5 or 6. データ処理手段と、
上記検証値を出力した時点で上記データ処理手段の機能を停止し、外部から正当な命令が与えられまでは上記データ処理手段の機能を停止する機能停止手段とをさらに有する請求項2、3、4、5、6または7記載の履歴保持装置。
Data processing means;
The function to stop time by the data processing means which outputs the verification value, claim 2 and 3 until a legitimate instruction is given from the outside, further comprising a function stopping means for stopping the function of the data processing means, The history holding device according to 4, 5, 6 or 7.
機能を停止させるための停止条件保持手段を有し、停止条件保持手段に記述されている条件を満たした時には、上記機能停止手段が上記検証値に署名した署名付き検証値を出力して、機能を停止する請求項8記載の履歴保持装置。Having a stop condition holding means for stopping the function, and when the condition described in the stop condition holding means is satisfied, the function stop means outputs a verification value with a signature signed to the verification value, history holding apparatus as claimed in claim 8, wherein the stop. 外部の正当者の公開鍵を保持するための正当公開鍵保持手段を有し、上記機能停止手段が、機能を復帰させるために受け付ける命令が、最後に出力した検証値に外部の正当者が電子署名を施したものであって、上記機能停止手段が命令を受け取った時に該正当公開鍵保持手段に保持されている公開鍵で署名を検証し、さらに署名されている検証値が、上記検証値保持手段に保持されている検証値と等しいかどうかを確認する請求項8または9記載の履歴保持装置。  It has a valid public key holding means for holding the public key of the external legitimate person. The signature is verified, and the signature is verified with the public key held in the valid public key holding means when the function stopping means receives the command, and the signed verification value is the verification value 10. The history holding device according to claim 8, wherein the history holding device checks whether or not the verification value held in the holding means is equal. 防御された装置の内部の動作に関連して当該装置内で生成された複数の連続する履歴データ群に関して、任意の区切り時点ごとに、前回の区切り点から当該区切り点の間の履歴データ群、前回の検証値および当該前回の区切り点から当該区切り点の間の履歴データ群から、上記前回の検証値を生成するのに用いた履歴データおよびそれ以前の履歴データを参照することなしに計算された検証値に署名が施された署名付き検証値を入力するデータ入力手段と、
前回入力した検証値を記憶するための検証値記憶手段と、
入力した上記署名付き検証値の署名を検証する署名検証手段と、
入力した上記直前の区切り点から当該区切り点の間の対象となる履歴データ群と上記前回の検証値とから、当該対象となる履歴データ群の前のデータ群を参照することなく、新たな検証値を生成し、当該生成した検証値と、署名の検証された検証値とを照合して双方の検証値が一致したときに入力した上記データ群が正しいことを検証する検証手段とを有することを特徴とする履歴検証装置。
With respect to a plurality of continuous history data groups generated in the device in relation to the internal operation of the protected device, a history data group between the previous breakpoint and the breakpoint at each arbitrary breakpoint Without referring to the history data used to generate the previous verification value and previous history data from the previous verification value and the history data group between the previous breakpoint and the breakpoint. and Lud over data input means to enter sign the calculated verification value is a signed validation value that has been subjected,
Verification value storage means for storing the verification value input last time;
And the signature verification means you verify the signature of the input the signed validation value,
A new verification is performed without referring to the previous data group of the target history data group from the input history data group between the previous break point and the previous verification value and the previous verification value. generate a value, the verification value thus generated, and compares the validated verification value of the signature, and verification means you verify that the data group you entered is correct when both verification value matches A history verification device characterized by comprising:
上記検証手段に用いる計算が一方向性関数である請求項11記載の履歴検証装置。The calculation using the verification means is a one-way function 11. Symbol mounting history verification device. 上記履歴データの形式が、履歴データ本体とその履歴データを処理した時の検証値との組である請求項11または12記載の履歴検証装置。Format of the historical data, historical data body and history verifying apparatus as claimed in claim 11 or 12, wherein the set in which the verification value when processing the historical data. 上記履歴データ群における履歴データの形式が、データを処理した時のカウンタの値と履歴本体とからなる請求項11、12または13記載の履歴検証装置。Form of historical data in the historical data group, claim 11, 12 or the history verification apparatus according 13 consisting of a counter value and history body when processing the data.
JP2003045836A 2003-02-24 2003-02-24 History holding method and apparatus Expired - Fee Related JP3979303B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003045836A JP3979303B2 (en) 2003-02-24 2003-02-24 History holding method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003045836A JP3979303B2 (en) 2003-02-24 2003-02-24 History holding method and apparatus

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP27842396A Division JP3570114B2 (en) 1996-10-21 1996-10-21 Data verification method and data verification system

Publications (2)

Publication Number Publication Date
JP2004007431A JP2004007431A (en) 2004-01-08
JP3979303B2 true JP3979303B2 (en) 2007-09-19

Family

ID=30437884

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003045836A Expired - Fee Related JP3979303B2 (en) 2003-02-24 2003-02-24 History holding method and apparatus

Country Status (1)

Country Link
JP (1) JP3979303B2 (en)

Also Published As

Publication number Publication date
JP2004007431A (en) 2004-01-08

Similar Documents

Publication Publication Date Title
JP3570114B2 (en) Data verification method and data verification system
Schneier et al. Secure audit logs to support computer forensics
US7270193B2 (en) Method and system for distributing programs using tamper resistant processor
EP0895148B1 (en) Software rental system and method for renting software
US6301660B1 (en) Computer system for protecting a file and a method for protecting a file
EP1253741B1 (en) Method and system for generation and management of secret key of public key cryptosystem
US5625690A (en) Software pay per use system
US7051211B1 (en) Secure software distribution and installation
EP0881559B1 (en) Computer system for protecting software and a method for protecting software
JP4216475B2 (en) Cryptographic indexed key update method and device having leakage resistance
US7249102B1 (en) Original data circulation method, system, apparatus, and computer readable medium
EP1349034A2 (en) Service providing system in which services are provided from service provider apparatus to service user apparatus via network
JPH11231775A (en) Device and method for conditional authentication
JPH10303880A (en) Service providing system
JPH1131130A (en) Service providing device
CN112907375A (en) Data processing method, data processing device, computer equipment and storage medium
CN115242553A (en) Data exchange method and system supporting secure multi-party computation
JP3815022B2 (en) Usage qualification verification apparatus and method, and usage qualification verification system
JP3941711B2 (en) Electronic device and control method of electronic device
JP3979303B2 (en) History holding method and apparatus
JP3570781B2 (en) Software protection system
JP2004309737A (en) Decoding key protection program and decoding key protection method
JPH1093550A (en) Authentication device and its method
JP2001350652A (en) Operation log accumulating device and operation log accumulation control method
JP2005149011A (en) Data processor and history verifying method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070319

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: 20070605

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070618

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100706

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110706

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110706

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120706

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130706

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees