(57)【特許請求の範囲】
【請求項１】
ユーザのアクセス資格を証明するために生成された証明データの正当性を検証することにより上記ユーザのアクセス資格を認証するアクセス資格認証装置において、
認証用のデータを記憶する第１の記憶手段と、
ユーザの固有情報を記憶する第２の記憶手段と、
上記ユーザの固有情報と、アクセス資格認証の特徴情報とに対し、第１の演算を実行した実行結果である証明用補助情報を記憶する第３の記憶手段と、
アクセス資格認証の必須情報を記憶する第４の記憶手段と、
上記第１の記憶手段に保持されている認証用データと、上記第２の記憶手段に記憶されているユーザの固有情報と、上記第３の記憶手段に記憶されている証明用補助情報と、上記第４の記憶手段に記憶されているアクセス資格認証の必須情報とに第２の演算を施して証明データを生成する証明データ生成手段と、
上記証明データが、上記アクセス資格認証の特徴情報と、上記アクセス資格認証の必須情報とに基づいて生成されていることを検証する証明データ検証手段とを有し、
上記アクセス資格認証の特徴情報が、第１の復号鍵であり、アクセス資格認証の必須情報または当該必須情報に一方向性ハッシュ演算を施したものが、第２の復号鍵であり、上記認証用データが、適当なデータを、上記２つの復号鍵に対応する暗号化鍵を用いて暗号化したものであり、上記証明データ検証手段は、上記証明データ生成手段が生成する上記証明データが、認証用データを正しく復号して生成された上記適当なデータであることを検証し、
上記暗号鍵、上記第１の復号鍵および上記第２の復号鍵で用いる暗復号関数が、整数ｎを法とした巾乗剰余演算であり、かつ、上記第１の復号鍵と、上記第２の復号鍵と、上記暗号鍵との積が、ｎのオイラー数を法として１と合同であり、
上記第１の演算と上記第２の演算とを、正当なユーザの固有情報、正当なアクセス資格認証の特徴情報、正当なアクセス資格認証の必須情報、および正当な証明用補助情報のいずれかが与えられないときには、正当な証明データが生成されないように、選定したことを特徴とするアクセス資格認証装置。
【請求項２】
上記第３の記憶手段に記憶される証明用補助情報ｔが、上記第１の復号鍵から、上記第２の記憶手段に記憶されるユーザの固有情報に所定の一方向性ハッシュ演算を施した値を減じた値であり、上記証明データ生成手段は、上記証明用補助情報と、上記ユーザの固有情報と、上記アクセス資格認証の必須情報と、上記認証用データとから、上記認証用データを、法ｎのもとで、上記第１の復号鍵と上記第２の復号鍵の積で巾乗したものを計算することによって、上記証明データを生成する請求項１記載のアクセス資格認証装置。
【請求項３】
上記証明用データ生成手段が、
上記ｎを法として、上記認証用データを、上記ユーザの固有情報に上記所定の一方向性ハッシュ演算を施したものと上記第２の復号鍵との積で巾乗剰余する第１の演算手段と、
上記ｎを法として、上記認証用データを、上記証明用補助情報と上記第２の復号鍵との積で巾乗剰余する第２の演算手段と、
上記ｎを法として、第１の演算手段の結果と第２の演算手段の結果との積をとる第３の演算手段を有し、
上記証明データ検証手段は、上記証明データ生成手段が生成する上記証明データが、認証用データを正しく復号したものであることを検証する請求項２記載のアクセス資格認証装置。
【請求項４】
上記第３の記憶手段に記憶される証明用補助情報ｔが、上記ｎのオイラー数を法として、上記第１の復号鍵を、上記第２の記憶手段に記憶されるユーザの固有情報に所定の一方向性ハッシュ演算を施した値で除算した値であり、上記証明データ生成手段は、上記証明用補助情報と、上記ユーザの固有情報と、上記必須情報と、上記認証用データとから、上記認証用データを、法ｎのもとで、上記第１の復号鍵と上記第２の復号鍵の積で巾乗したものを計算することによって、上記証明データを生成する請求項１記載のアクセス資格認証装置。
【請求項５】
上記証明用データ生成手段が、
上記ｎを法として、上記認証用データを、上記ユーザの固有情報に上記所定の一方向性ハッシュ演算を施したものと上記第２の復号鍵との積で巾乗剰余する第１の演算手段と、
上記ｎを法として、上記第１の演算手段の演算結果を、上記証明用補助情報で巾乗剰余する第２の演算手段とを有し、
上記証明データ検証手段は、上記証明データ生成手段が生成する上記証明データが、認証用データを正しく復号したものであることを検証する請求項４記載のアクセス資格認証装置。
【請求項６】
ユーザのアクセス資格を証明するために生成された証明データの正当性を検証することにより上記ユーザのアクセス資格を認証するアクセス資格認証装置において、
認証用のデータを記憶する第１の記憶手段と、
ユーザの固有情報を記憶する第２の記憶手段と、
上記ユーザの固有情報と、アクセス資格認証の特徴情報とに対し、第１の演算を実行した実行結果である証明用補助情報を記憶する第３の記憶手段と、
アクセス資格認証の必須情報を記憶する第４の記憶手段と、
上記第１の記憶手段に保持されている認証用データと、上記第２の記憶手段に記憶されているユーザの固有情報と、上記第３の記憶手段に記憶されている証明用補助情報と、上記第４の記憶手段に記憶されているアクセス資格認証の必須情報とに第２の演算を施して証明データを生成する証明データ生成手段と、
上記証明データが、上記アクセス資格認証の特徴情報と、上記アクセス資格認証の必須情報とに基づいて生成されていることを検証する証明データ検証手段とを有し、
暗復号関数が、整数ｎを法とする巾乗剰余演算であり、
上記アクセス資格認証の特徴情報が、上記整数ｎのオイラー数であり、
上記アクセス資格認証の必須情報または当該必須情報に所定の一方向性ハッシュ関数を施したものが、暗号鍵であり、
上記認証用データが、適当なデータを、上記暗号鍵を用いて暗号化したものであり、
上記証明データ検証手段は、上記証明用補助情報と、上記ユーザの固有情報と、上記必須情報とから、上記暗号鍵に対応する復号鍵を計算し、上記認証用データを、法ｎのもとで、上記復号鍵によって巾乗したものを計算することによって、上記証明データを生成し、当該証明データが、認証用データを正しく復号したものであることを検証し、
上記第１の演算と上記第２の演算とを、正当なユーザの固有情報、正当なアクセス資格認証の特徴情報、正当なアクセス資格認証の必須情報、および正当な証明用補助情報のいずれかが与えられないときには、正当な証明データが生成されないように、選定したことを特徴とするアクセス資格認証装置。
【請求項７】
上記第３の記憶手段に記憶される証明用補助情報ｔが、上記オイラー数と、上記第２の記憶手段に記憶されるユーザの固有情報とに上記所定の一方向性ハッシュ演算を施した値を減じたものである請求項６記載のアクセス資格認証装置。
【請求項８】
ユーザのアクセス資格を証明するために生成された証明データの正当性を検証することにより上記のユーザのアクセス資格を認証するアクセス資格認証装置において、
認証用のデータを記憶する第１の記憶手段と、
ユーザの固有情報を記憶する第２の記憶手段と、
上記ユーザの固有情報と、アクセス資格認証の特徴情報とに対し、第１の演算を実行した実行結果である証明用補助情報を記憶する第３の記憶手段と、
アクセス資格認証の必須情報を記憶する第４の記憶手段と、
アクセス資格認証の検査情報を記憶する第５の記憶手段と、
上記第１の記憶手段に保持されている認証用データと、上記第４の記憶手段に記憶されているアクセス資格認証の必須情報とに所定の検査演算を施した結果が、上記第５の記憶手段に記憶されているアクセス資格認証の検査情報と所定の関係にあることを検査する検査手段と、
上記検査手段による検査の結果が良好であったとき、上記第１の記憶手段に保持されている認証用データと、上記第２の記憶手段に記憶されているユーザの固有情報と、上記第３の記憶手段に記憶されている証明用補助情報とに第２の演算を施して証明データを生成する証明データ生成手段と、
上記証明データが、上記アクセス資格認証の特徴情報と、上記アクセス資格認証の必須情報とに基づいて生成されていることを検証する証明データ検証手段とを有し、
上記アクセス資格認証の特徴情報が、復号鍵であり、上記認証用データが、適当なデータを、上記復号鍵に対応する暗号化鍵を用いて暗号化したものであり、上記証明データ検証手段は、上記証明データ生成手段が生成する上記証明データが、認証用データを正しく復号して生成された上記適当なデータであることを検証し、
上記暗号鍵および上記復号鍵で用いる暗復号関数が、整数ｎを法とした巾乗剰余演算であり、かつ、上記復号鍵と上記暗号鍵との積が、ｎのオイラー数を法として１と合同であり、
上記第１の演算と上記第２の演算とを、正当なユーザの固有情報、正当なアクセス資格認証の特徴情報、および正当な証明用補助情報のいずれかが与えられないときには、正当な証明データが生成されないように、選定したことを特徴とするアクセス資格認証装置。
【請求項９】
証明データ検証手段が、乱数生成手段を備え、
上記乱数生成手段は、生成した乱数を第６の記憶手段に記憶し、
上記認証データは、所定のデータに上記乱数を掛けた値を上記適当なデータとして上記暗号鍵で暗号化されたデータであり、上記証明データを上記乱数で割り、その結果が上記所定のデータであることを検証する請求項１〜８のいずれかに記載のアクセス資格認証装置。
【請求項１０】
ユーザのアクセス資格を証明するために生成された証明データの正当性を検証することにより上記のユーザのアクセス資格を認証するアクセス資格認証方法において、
認証用のデータを記憶するステップと、
ユーザの固有情報を記憶するステップと、
上記ユーザの固有情報と、アクセス資格認証の特徴情報とに対し、第１の演算を実行した実行結果である証明用補助情報を記憶するステップと、
アクセス資格認証の必須情報を記憶するステップと、
上記認証用データと、上記ユーザの固有情報と、上記証明用補助情報と、上記アクセス資格認証の必須情報とに第２の演算を施して証明データを生成するステップと、
上記証明データが、上記アクセス資格認証の特徴情報と、上記アクセス資格認証の必須情報とに基づいて生成されていることを検証するステップとを有し、
上記アクセス資格認証の特徴情報が、第１の復号鍵であり、アクセス資格認証の必須情報または当該必須情報に一方向性ハッシュ演算を施したものが、第２の復号鍵であり、上記認証用データが、適当なデータを、上記２つの復号鍵に対応する暗号化鍵を用いて暗号化したものであり、上記検証するステップは、上記証明データを生成するステップが生成する上記証明データが、認証用データを正しく復号して生成された上記適当なデータであることを検証し、
上記暗号鍵、上記第１の復号鍵および上記第２の復号鍵出用いる暗復号関数が、整数ｎを法とした巾乗剰余演算であり、かつ、上記第１の復号鍵と、上記第２の復号鍵と、上記暗号鍵との積が、ｎのオイラー数を法として１と合同であり、
上記第１の演算と上記第２の演算とを、正当なユーザの固有情報、正当なアクセス資格認証の特徴情報、正当なアクセス資格認証の必須情報、および正当な証明用補助情報のいずれかが与えられないときには、正当な証明データが生成されないように、選定したことを特徴とするアクセス資格認証方法。
【請求項１１】
ユーザのアクセス資格を証明するために生成された証明データの正当性を検証することにより上記のユーザのアクセス資格を認証するアクセス資格認証方法において、
認証用のデータを記憶するステップと、
ユーザの固有情報を記憶するステップと、
上記ユーザの固有情報と、アクセス資格認証の特徴情報とに対し、第１の演算を実行した実行結果である証明用補助情報を記憶するステップと、
アクセス資格認証の必須情報を記憶するステップと、
アクセス資格認証の検査情報を記憶するステップと、
上記認証用データと、上記アクセス資格認証の必須情報とに所定の検査演算を施した結果が、上記アクセス資格認証の検査情報と所定の関係にあることを検査するステップと、
上記検査の結果が良好であったとき、上記認証用データと、上記ユーザの固有情報と、上記証明用補助情報とに第２の演算を施して証明データを生成するステップと、
上記証明データが、上記アクセス資格認証の特徴情報と、上記アクセス資格認証の必須情報とに基づいて生成されていることを検証するステップとを有し、
上記アクセス資格認証の特徴情報が、復号鍵であり、上記認証用データが、適当なデータを、上記復号鍵に対応する暗号化鍵を用いて暗号化したものであり、上記検証するステップは、上記証明データを生成するステップが生成する上記証明データが、認証用データを正しく復号して生成された上記適当なデータであることを検証し、
上記暗号鍵および上記復号鍵で用いる暗復号関数が、整数ｎを法とした巾乗剰余演算であり、かつ、上記復号鍵と上記暗号鍵との積が、ｎのオイラー数を法として１と合同であり、
上記第１の演算と上記第２の演算とを、正当なユーザの固有情報、正当なアクセス資格認証の特徴情報、および正当な証明用補助情報のいずれかが与えられないときには、正当な証明データが生成されないように、選定したことを特徴とするアクセス資格認証方法。
【請求項１２】
ユーザのアクセス資格を証明するために生成された証明データの正当性を検証することにより上記のユーザのアクセス資格を認証するアクセス資格認証方法において、
認証用のデータを記憶するステップと、
ユーザの固有情報を記憶するステップと、
上記ユーザの固有情報と、アクセス資格認証の特徴情報とに対し、第１の演算を実行した実行結果である証明用補助情報を記憶するステップと、
アクセス資格認証の必須情報を記憶するステップと、
上記認証用データと、上記ユーザの固有情報と、上記証明用補助情報と、上記アクセス資格認証の必須情報とに第２の演算を施して証明データを生成するステップと、
上記証明データが、上記アクセス資格認証の特徴情報と、上記アクセス資格認証の必須情報とに基づいて生成されていることを検証するステップとを有し、
暗復号関数が、整数ｎを法とする巾乗剰余演算であり、
上記アクセス資格認証の特徴情報が、上記整数ｎのオイラー数であり、
上記アクセス資格認証の必須情報または当該必須情報に所定の一方向性ハッシュ関数を施したものが、暗号鍵であり、
上記認証用データが、適当なデータを、上記暗号鍵を用いて暗号化したものであり、
上記検証するステップは、上記証明用補助情報と、上記ユーザの固有情報と、上記必須情報とから、上記暗号鍵に対応する復号鍵を計算し、上記認証用データを、法ｎのもとで、上記復号鍵によって巾乗したものを計算することによって、上記証明データを生成し、当該証明データが、認証用データを正しく復号したものであることを検証し、
上記第１の演算と上記第２の演算とを、正当なユーザの固有情報、正当なアクセス資格認証の特徴情報、正当なアクセス資格認証の必須情報、および正当な証明用補助情報のいずれかが与えられないときには、正当な証明データが生成されないように、選定したことを特徴とするアクセス資格認証方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、デジタルデータの暗復号と、暗復号を応用した、デジタルデータやサービスに対するアクセス資格認証に関する。
【０００２】
【従来の技術】
データのセキュリティを暗復号によって守ろうとするとき、暗号化されたデータの利用者と、データを復号する復号鍵の所持者の関係には、次の２種がある。
【０００３】
▲１▼データの利用者と復号鍵の所持者が同一な場合
▲２▼データの利用者と復号鍵の所持者が同一でない場合
前者▲１▼の例としては、個人間の秘密通信が典型的である。個人間の通信の場合、受信者は、データの復号鍵を秘密に所持している。送信者は受信者が持つ復号鍵に対応した暗号鍵でデータを暗号化する。受信者が復号鍵を第３者にリークすることは、受信者のプライバシーを損なうことに繋がるので、受信者にとって大きな不利益になる。したがって、受信者が復号鍵を所持しても問題は起こらない。
【０００４】
後者▲２▼の例には、衛星放送等で行なっているデジタルデータの一斉同報がある。一斉同報される有料のデジタルデータには暗号化が施されており、このデジタルデータを復号しなければ、利用することができない。しかし、暗号化されたデジタルデータを復号するための復号鍵を受信者が所持すると、受信者は、復号鍵を第３者に知られても自らには何の不利益も生じないので、復号鍵を第３者にリークすることで第３者から対価などの利益を得ることができる。すなわち、データの利用者には、復号鍵をリークする積極的な理由が存在するので、データの利用者と復号鍵の所持者を分離せざるを得ないのである。
【０００５】
現在、衛星放送では、この問題は、ハードウエア中の外部からアクセス不能な領域に復号鍵を内蔵し、データの復号をこのハードウエアに委託（委託復号）することで解決している。デジタルデータの利用者は復号鍵自体を手に入れる術がないので、デジタルデータの利用者による復号鍵のリークという問題が起こらない。
【０００６】
衛星放送を使ったものだけでなく、インターネットのＷＷＷ（ワールドワイドウェブ）やＣＡＴＶ（ケーブルテレビジョン放送）を通じたデータの一斉同報など不特定多数を対象として一斉同報されるデータの復号を行なう際にも同様の手段を使っている。委託先が、衛星放送チューナに内蔵された復号器、あるいは復号機能を持ったＩＣカード、ネットワークを介した先のコンピュータなど種々あるが、どれも委託復号であることには違いがない。
【０００７】
暗号化されたデータそのまま復号器に送信し、復号結果を復号器から受信するという安易な方法で委託復号を行なった場合、以下の２点の問題が起こる。
【０００８】
▲１▼何を復号したのか、復号結果がなんであったのかが、復号器に露見する。
【０００９】
復号器の作成者は、委託された復号の履歴が残るように復号器を作成することができる。このように復号器が作られていた場合、どのようなデータを復号しようとしたかというデータの受信者のプライバシーが、復号器に記憶され、後に悪用される可能性がある。また、復号器の同様の構成は、データの送信者にも不利益をもたらす。データの送信者からみれば、復号器に知られたくないデータを委託復号にかけることができなくなる。衛星放送の例でいえば、映画を暗号化して送った場合、復号器には復号された平文の映画が記憶されてしまい、そのデータが復号器の作成者によって悪用される危険性がある。
【００１０】
▲２▼復号器との通信を傍受している者がいた場合、何を復号したのか、復号結果がなんであったのかが、その傍受者に露見する。
【００１１】
復号の委託先がネットワークを介した先に接続されたコンピュータである場合を想像すれば、この問題の深刻さが理解できる。この場合、何の手段も講じなければ、ネットを傍受している第３者は容易に、委託復号によって何を復号したのか、復号結果がなんであったのかを知ることができる。
【００１２】
上記の２つの問題を同時にクリアする委託復号の技術としてブラインド復号がある。Ｓｉｌｖｉｏ  Ｍｉｃａｌｉ、  Ｆａｉｒ  ｐｕｂｌｉｃ  ｋｅｙ  ｃｒｙｐｔｏｓｙｓｔｅｍ  、Ｐｒｏｃ．Ｃｒｙｐｔｏ  ９２、ｐｐ．１１３−１３８（１９９３）にＲＳＡ（Ｒｉｖｅｓｔ−Ｓｈａｍｉｒ−Ａｄｌｅｍａｎ）をベースにしたブラインド復号方式が開示されている。以下に、その開示内容を概説する。
【００１３】
復号の委託者をＡｌｉｃｅ、委託を受けて復号を行なう復号器をＢｏｂとする。Ｂｏｂが持つ復号鍵をＤ、ＲＳＡ法数をｎ、暗号鍵をＥとする。ＲＳＡであるので、ＥＤ≡１  ｍｏｄ  φ（ｎ）が成り立っている。ただし、φ（ｎ）はｎのオイラー数である。
【００１４】
平文ＭをｎとＥで暗号化したものＣ＝ＭE  ｍｏｄ  ｎとする。
１．  Ａｌｉｃｅは、乱数ｒを生成し、Ｃ’＝ｒEＣ  ｍｏｄ  ｎを計算してＣ’をＢｏｂに送る。
２．  Ｂｏｂは、Ｒ＝Ｃ’D  ｍｏｄ  ｎを計算し、Ａｌｉｃｅに送る。
３．  Ａｌｉｃｅは、ｒ-1ｒ≡１  ｍｏｄ  ｎとなるｒ-1を計算し、Ｍ’＝ｒ-1Ｒ  ｍｏｄ  ｎを計算する。
【００１５】
上記の手順によって、Ａｌｉｃｅが正しい復号結果を得ることは以下の式でわかる。
【００１６】
【数１】
0003870927.tif 000002
この方式によれば、復号器ＢｏｂおよびＡｌｉｃｅとＢｏｂの間の通信を傍受している第３者には、Ｃ’＝ｒEＣ  ｍｏｄ  ｎ、Ｒ＝Ｃ’D≡ｒＭ  ｍｏｄ  ｎが見えるのみであり、Ａｌｉｃｅが復号したかった暗号文Ｃや、Ｃの復号結果Ｍが復号器Ｂｏｂや通信の傍受者には露呈しない。この方式は、上記委託復号の２つの問題を解決しているのである。
【００１７】
ブラインド復号を応用して、デジタルデータのアクセス制御を行なう装置は、特願平９−４１８号に提案されている。
【００１８】
特願平９−４１８号に記載のアクセス制御装置は、データに対するアクセス権の所持を証明する証明装置と、証明装置による証明を検証する検証装置からなる。検証装置は、暗号化されたデジタルデータと、そのデジタルデータを復号する鍵をＲＳＡ公開鍵で暗号化したデータ（暗号化鍵）とを記憶している。証明装置は、ＲＳＡ復号器である。検証装置は、暗号化鍵の復号を、ブラインド復号を使って証明装置に委託し、その結果を使ってデジタルデータを復号する。正しく復号されれば、証明装置がアクセス権の所持の証明に成功したことになる。
【００１９】
ブラインド復号を使っているので、証明装置、あるいは、検証装置と証明装置の間の通信を傍受している者に、委託した暗号化鍵の内容や、デジタルデータの復号鍵を知られることがない。
【００２０】
特願平９−４１８号の技術は、特にＲＳＡ復号器である証明装置の構成に特徴がある。特願平９−４１８号の提案では、単一の証明器で複数のＲＳＡ公開鍵に対する復号を可能にするために、ＲＳＡの復号鍵をアクセスチケットとよぶ変更可能なデータの中に埋め込んでいる。アクセスチケットからＲＳＡの復号鍵を取出されないよう、アクセスチケットは、ＲＳＡ復号鍵にマスクをかけたものになっており、これによってアクセスチケットは公開可能な情報となっている。特願平９−４１８号の証明装置は、ＩＣカード等の耐タンパー性のあるハードウエアを持っており、アクセスチケットのマスクの効果はそのハードウエアによってのみ取り除くことができる。
【００２１】
以下に特願平９−４１８号で提案されたアクセス制御について詳しく述べる。
【００２２】
検証装置は、暗号化されたデータと、その復号鍵ＫをＲＳＡ法数ｎ、暗号鍵Ｅで暗号化した暗号化鍵Ｋを持っている。証明装置は、巾乗剰余の演算機能と一方向性ハッシュｆ（ｘ，ｙ）の計算機能を持ったＩＣカードを持っている。ＩＣカードの中には、さらに秘密のデータｄが蓄積されている。ＲＳＡ法数ｎ、暗号鍵Ｅに対する復号鍵がＤである場合、アクセスチケットｔは、ｔ＝Ｄ−ｆ（ｄ，ｎ）という値のデータである。
【００２３】
アクセス権の所持の証明と検証は以下の手順で行なわれる。
１．  検証装置は、乱数ｒを生成する。
２．  検証装置は、Ｃ＝ｒEＫ*  ｍｏｄ  ｎを計算し、ｎとＣを証明装置に送る。ただし、Ｋ*はＫEとする。
３．  証明装置は、ＩＣカード内でＲ1＝Ｃf(d,n)  ｍｏｄ  ｎを計算する。
４．  証明装置は、Ｒ2＝Ｃt  ｍｏｄ  ｎを計算する。
５．  証明装置は、Ｒ＝Ｒ1Ｒ2  ｍｏｄ  ｎを計算し、検証装置に送る。
６．  検証装置は、ｒ-1ｒ≡１  ｍｏｄ  ｎとなるｒ-1を計算し、Ｋ’＝ｒ-1Ｒ
ｍｏｄ  ｎを計算する。
【００２４】
上記の手順が正しく行われれば、Ｋ≡Ｋ’  ｍｏｄ  ｎとなり、アクセス権の所持が証明されることは、  以下の式からわかる。
【００２５】
【数２】
0003870927.tif 000003
この方式では、ユーザがユーザ毎にｄの違うＩＣカードを持てば、あるデジタルデータの暗号化鍵を復号するためのアクセスチケットは、ユーザ毎に違うものになる。他人のアクセスチケットをコピーしてもそれを使ってアクセス権の所持を証明することはできない。したがって、ユーザ毎にアクセスチケットを発行したりしなかったりすることによって、ユーザ毎のアクセス権を制御することができる。また、デジタルデータ毎にＲＳＡ法数ｎと暗号鍵Ｅを変えれば、あるデータのアクセスチケットを他のデータに利用することができなくなる。したがって、デジタルデータ毎のアクセス制御も可能である。
【００２６】
【発明が解決しようとする課題】
ブラインド復号の問題点は、その強いブラインドネスにある。ブラインド復号によれば、復号の委託によって復号器が収集可能な情報は、何らかの復号委託があったという情報のみである。復号を委託されたデータに関する一切の情報は、復号器に伝達することができない。しかし、委託復号を行なう時に、データに関するある種の情報を復号器に伝達したいという要求は多い。具体的には、以下のものがある。
▲１▼委託復号サービスで料金を得る場合、データ毎に復号の料金が違うのであれば、暗号化されたデータとともにそのデータの復号料金を復号器に伝達しなければならない。
▲２▼データ毎に利用期限が決まっている場合、暗号化されたデータとともにそのデータの利用期限を復号器に送り、復号器で利用期限のチェックを行わなければならない。
▲３▼データ毎に利用可能者が限定される場合、暗号化されたデータとともにそのデータの利用可能者のリストを復号器に送り、復号器で委託者が利用可能者であるかどうかのチェックを行わなければならない。
▲４▼機密の文書の委託復号を行なう場合、後の監査のために、暗号化されたデータとともにそのデータの識別子を復号器に送り、復号器はこれを記憶しておかなければならない。
【００２７】
これらの情報を、暗号化されたデータとともになんの工夫もなく復号器に伝達すると、委託者が悪意を持っていた場合に、添付する情報を委託者に都合のよいものに置き換えることが可能である。たとえば、委託するデータより安い料金の情報を送る、実際より後の使用期限を送る、実際とは違うアクセス可能者のリストを送る、実際とは違う識別子を送る等の不正が可能になる。
【００２８】
この問題は、従来のブラインド復号を応用してデジタルデータのアクセス制御を行なう特願平９−４１８号の技術でも同じである。特願平９−４１８号の提案では、耐タンパー性を持つＩＣカードを持っている。ＩＣカード内で行われる処理に手を加えたり、ＩＣカード内に蓄積された情報を改竄するのは、非常に困難であるので、ＩＣカードに正しく情報を伝達できれば、ＩＣカード内での安全性は保証される。したがって、データに対するアクセス料金の記憶や、アクセスの有効期限のチェックは、ＩＣカード内で行なうことになるが、従来のブラインド復号をそのまま利用している特願平９−４１８号には、それらの情報を安全にＩＣカードまで伝達する手段が存在しない。
【００２９】
上記の問題点に鑑み、本発明の第１の目的は、復号を委託されるデータのブラインドネスは崩さないまま、特定の情報を安全に復号器に送ることのできるブラインド復号を実現することにある。また、本発明の第２の目的は、上記の問題を解決したブラインド復号方式を応用して、デジタルデータのアクセス制御を実現することにある。
【００３０】
【課題を解決するための手段】
第１の目的を達成するために、本発明では、復号器が、暗号化されたデータの復号を行なう際に、第１の復号情報と、第２の復号情報が必要となるように構成している。より具体的には、復号器は、法ｎのもとで、暗号化されたデータを、第１の復号情報と第２の復号情報の積で巾乗し、それを復号結果として出力する。
【００３１】
暗号化が、法ｎのもとで、データを暗号鍵で巾乗する処理であり、ｎのオイラー数を法として、暗号鍵と第１の復号情報と第２の復号情報の積が１と合同であれば、正しく復号できる。
【００３２】
さらに、第２の復号情報は、復号器に対して外部から入力するものとし、暗号化されたデータと、第２の復号情報を正しく入力しなければ、正しい復号結果が得られないように工夫している。
【００３３】
データの復号料金等の、差し替えられてはならない情報は、第２の復号情報として復号器に入力するようシステムを構成すれば、情報の差し替えという不正行為に対して、復号の失敗というペナルテイを課すことができる。
【００３４】
また、復号器が、暗号化されたデータの復号を行なう際に、第１の復号情報と、第２の復号情報が必要となる別の構成として、復号器が、法ｎのもとで、暗号化されたデータを、第１の復号情報を法とした場合の第２の復号情報の逆数によってべき乗し、それを復号結果として出力するものをあげている。
【００３５】
第１の復号情報が法ｎのオイラー数であり、第２の復号情報が暗号鍵であれば、正しく復号することができる。
【００３６】
さらに、第２の復号情報は、復号器に対して外部から入力するものとし、暗号化されたデータと、第２の復号情報を正しく入力しなければ、正しい復号結果が得られないように工夫している。
【００３７】
データの復号料金等の、差し替えられてはならない情報は、第２の復号情報として復号器に入力するようシステムを構成すれば、情報の差し替えという不正行為に対して、復号の失敗というペナルテイを課すことができる。
【００３８】
第２の目的を達成するために、本発明では、ユーザのアクセス資格を証明するために生成された証明データの正当性を検証することにより上記のユーザのアクセス資格を認証するアクセス資格認証装置に、認証用のデータを記憶する第１の記憶手段と、ユーザの固有情報を記憶する第２の記憶手段と、上記ユーザの固有情報と、アクセス資格認証の特徴情報とに対し、所定の計算を実行した実行結果である証明用補助情報を記憶する第３の記憶手段と、アクセス資格認証の必須情報を記憶する第４の記憶手段と、上記第１の記憶手段に保持されている認証用データと、上記第２の記憶手段に記憶されているユーザの固有情報と、上記第３の記憶手段に記憶されている証明用補助情報と、上記第４の記憶手段に記憶されているアクセス資格認証の必須情報とに所定の演算を施して証明データを生成する証明データ生成手段と、上記証明データが、上記アクセス資格認証の特徴情報と、上記アクセス資格認証の必須情報とに基づいて生成されていることを検証する証明データ検証手段とを設けている。
【００３９】
本発明において、正しくアクセス資格を認めてもらうためには、証明データ、ユーザの固有情報、証明用補助情報、アクセス資格認証の必須情報の組み合わせが正しくなければならない。
【００４０】
アクセス料金等の、差し替えられてはならない情報は、アクセス資格認証の必須情報に含めれば、情報の差し替えという不正行為に対して、アクセスの拒否というペナルテイを課すことができる。
【００４１】
第２の目的を達成するための本発明の別の構成では、ユーザのアクセス資格を証明するために生成された証明データの正当性を検証することにより上記のユーザのアクセス資格を認証するアクセス資格認証装置に、認証用のデータを記憶する第１の記憶手段と、ユーザの固有情報を記憶する第２の記憶手段と、上記ユーザの固有情報と、アクセス資格認証の特徴情報とに対し、所定の計算を実行した実行結果である証明用補助情報を記憶する第３の記憶手段と、アクセス資格認証の必須情報を記憶する第４の記憶手段と、アクセス資格認証の検査情報を記憶する第５の記憶手段と、上記第１の記憶手段に保持されている認証用データと、上記第４の記憶手段に記憶されているアクセス資格認証の必須情報とに所定の演算を施した結果が、上記第５の記憶手段に記憶されているアクセス資格認証の検査情報と所定の関係にあることを検査する検査手段と、上記検査手段による検査の結果が良好であったとき、上記第１の記憶手段に保持されている認証用データと、上記第２の記憶手段に記憶されているユーザの固有情報と、上記第３の記憶手段に記憶されている証明用補助情報とに所定の演算を施して証明データを生成する証明データ生成手段と、上記証明データが、上記アクセス資格認証の特徴情報と、上記アクセス資格認証の必須情報とに基づいて生成されていることを検証する証明データ検証手段とを設けている。
【００４２】
本発明において、正しくアクセス資格を認めてもらうためには、証明データ、ユーザの固有情報、証明用補助情報、アクセス資格認証の必須情報の組み合わせが正しくなければならない。
【００４３】
アクセス料金等の、差し替えられてはならない情報は、アクセス資格認証の必須情報に含めれば、情報の差し替えという不正行為に対して、アクセスの拒否というペナルテイを課すことができる。
【００４４】
【発明の実施の態様】
以下、本発明を実施例に沿って説明する。
［部分ブラインド復号器の実施例］
［第１の実施例］
第１の実施例は、本発明を応用したブラインド復号器である。この実施例のブラインド復号装置の構成を図１に示す。本実施例では、暗復号方式として、合成数ｎを法とした巾乗剰余を使用する。本復号器は、復号に法数ｎ以外に２つの復号情報ｄ1、ｄ2を使用する。暗号鍵Ｅとｄ1、ｄ2は、式１の関係を満たすように作る。
【００４５】
【数３】
Ｅｄ1ｄ2≡１ｍｏｄ  φ（ｎ）      （１）
ここでφ（ｎ）はｎのオイラー数である。
【００４６】
データＭに対する暗号文Ｃは、式２によって生成される。
【００４７】
【数４】
Ｃ＝ＭE  ｍｏｄ  ｎ      （２）
本実施例のブラインド復号器のユーザは、暗号文Ｃと法数ｎ、暗号鍵Ｅと第２の復号情報ｄ2を所持している。ユーザは、Ｃの復号を本実施例に委託する際に、Ｃにブラインド効果をかけてＣ’を生成し、Ｃ’とｄ2を本実施例の復号器に入力する。そして、本実施例の復号器からの出力Ｒを受け取り、Ｒのブラインド効果を取り除いて復号結果を得る。
【００４８】
ユーザが本実施例の復号器を使用する具体的な手順は以下のとおりである。
１．  ユーザは１＜ｒ＜ｎの範囲で乱数ｒを生成する。
２．  ユーザは式３を計算して、暗号文Ｃにブラインド効果を付与する。
【００４９】
【数５】
Ｃ’＝ｒEＣ  ｍｏｄ  ｎ      （３）
３．  ユーザは、Ｃ’とｄ2を本実施例のブラインド復号器に送り、ブラインド復号器からの出力Ｒを受ける。
４．  ユーザは、式４を計算し、復号結果Ｍ’を得る。
【００５０】
【数６】
Ｍ’＝ｒ-1Ｒ  ｍｏｄ  ｎ      （４）
本実施例のブラインド復号器は、以下のサブユニットからなる。
入力部１１：ブラインド効果のかかった暗号文Ｃ’と、第２の復号情報ｄ2を入力する。
出力部１２：復号結果Ｒを出力する。
法数記憶部１３：法数ｎを記憶する。
第１復号情報記憶部１４：第１の復号情報ｄ1を記憶する。
復号部１５：ｎ、Ｃ’、ｄ1、ｄ2から復号結果Ｒを計算する。
【００５１】
本実施例のブラインド復号器の処理手順は次のようである。
１．  入力部１１を介して、ユーザから、ブラインド効果のかかった暗号文Ｃ’と、第２の復号鍵ｄ2を受け取り、復号部１５に送る。
２．  復号部１５は、法数記憶部１３から法数ｎを、第１復号情報記憶部１４から第１の復号情報ｄ1を取り出し、式５を計算する。
【００５２】
【数７】
Ｒ＝Ｃ’d1d2  ｍｏｄ  ｎ      （５）
３．  出力部１２を介して、Ｒを出力する。
【００５３】
もし、暗号文Ｃと第２の復号情報ｄ2の組合せが正しければ、式６により、正しく復号されることがわかる。
【００５４】
【数８】
0003870927.tif 000004
また、第２の復号情報ｄ2とは異なる情報を本実施例のブラインド復号器に送ると、ユーザは正しい復号結果を得ることができない。したがって、第２の復号情報ｄ2に復号料金等を含ませれば、偽りの復号料金を復号器に送られることを防ぐことができる。
【００５５】
ただし、第２の復号情報ｄ2が素数でない場合には、問題がおこる。ｄ2が、ｄ2＝ａ＊ｂと因数分解できる場合には、復号器にＣ、ｄ2を送る代わりに、Ｃa  ｍｏｄ  ｎ，ｂを送っても復号器の出力は変わらない。したがって、ｄ2の代わりに、ｂという復号情報を送り、正しい復号結果をえることが可能なのである。
【００５６】
これを防ぐには、ｄ2が素数になるように、Ｅ、ｄ1、ｄ2の組合せを決めればよい。
【００５７】
また、ｄ2が素数であっても、復号器にＣ、ｄ2を送る代わりに、Ｃd2  ｍｏｄｎ，１を送り、同じ出力を得ることができる。これを防ぐには、復号器は、送られてきた第２の復号情報が１でないことを確認する手段をもち、第２の復号情報が１でないときのみ復号を行うよう構成すればよい。
【００５８】
また、ｄ2が素数でなくても、特定の値の繰り返してある等の、冗長性を持たせた値になるよう、Ｅ、ｄ1、ｄ2の組合せを決めるようにし、復号器に、送られてきた第２の情報の冗長性を確認する手段を設けてもよい。ｄ2の自明でない約数が復号器が知っている冗長性を持つ可能性が十分低ければ、この方法でも、第２の情報の代わりにその約数を復号器に送る攻撃を回避できる。
【００５９】
本実施例のブラインド復号器に一方向性ハッシュ関数Ｖ（ｘ）の演算を行うハッシュ関数演算部を付加し、式５の代わりに、式７を計算するようにしてもよい。
【００６０】
【数９】
Ｒ＝Ｃ’d1V(d2)  ｍｏｄ  ｎ      （７）
一方向ハッシュ関数とは、ｈ（ｘ）＝ｈ（ｙ）を満たす相異なるｘ、ｙを算出することが著しく困難であるという性質をもつ関数である。一方向ハッシュ関数の例として、ＲＳＡ  Ｄａｔａ  Ｓｅｃｕｒｉｔｙ  Ｉｎｃ．によるＭＤ２、ＭＤ４、ＭＤ５、米国連邦政府による規格ＳＨＳ（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ｓｔａｎｄａｒｄ）が知られている。
【００６１】
この場合、暗号鍵Ｅとｄ1、ｄ2は、式８の関係を満たすように作ることになる。
【００６２】
【数１０】
Ｅｄ1Ｖ（ｄ2）≡１  ｍｏｄ  φ（ｎ）      （８）
このように構成した場合、Ｖ（ｘ）をユーザに対して秘密にすることが可能になり、安全性が向上する。また、法数によりも大きなｄ2も利用可能になる。
【００６３】
本実施例における第２の復号情報に復号の料金の情報を埋め込み、送られた復号料金の情報を蓄積するよう復号器を構成し、後に蓄積された料金情報をもとに委託者に復号料を請求するようにすれば、偽りのない復号料を課金することが可能な委託復号システムを作ることができる。これは後述する第２の実施例でも同様である。
【００６４】
本実施例における第２の復号情報に、暗号化されたデータの利用期限情報を埋め込み、復号器を、時計を内蔵し、送られた利用期限と内蔵している時計の時刻とを比較して、復号の可否を決定するよう、構成すれば、データの利用期限を限定可能な委託復号システムを作ることができる。これも第２の実施例でも同様である。
【００６５】
本実施例における第２の復号情報に、暗号化されたデータの属性情報を埋め込み、送られた属性情報を蓄積するよう復号器を構成すれば、後の統計処理や、監査の際に利用可能なデータを蓄積することができる委託復号システムを作ることができる。これも第２の実施例でも同様である。
【００６６】
［第２の実施例］
第２の実施例も、本発明を応用したブラインド復号器である。本実施例のブラインド復号器の構成を図２に示す。
【００６７】
本実施例では、暗復号方式として、合成数ｎを法とした巾乗剰余を使用する。本復号器は、復号に法数ｎ以外に２つの復号情報ｄ1、ｄ2を使用する。復号情報ｄ1は、法数ｎのオイラー数、復号情報ｄ2は、暗号鍵Ｅである。また、暗号鍵Ｅはｄと互いに素になるように作成する。
【００６８】
データＭに対する暗号文Ｃは、上述の式２によって生成される。
【００６９】
本実施例のブラインド復号器のユーザは、暗号文Ｃと法数ｎ、暗号鍵Ｅ（第２の復号情報ｄ2でもある）を所持している。ユーザは、Ｃの復号を本実施例に委託する際に、Ｃにブラインド効果をかけてＣ’を生成し、Ｃ’とＥを本実施例に入力する。そして、本実施例からの出力Ｒを受け取り、Ｒのブラインド効果を取り除いて復号結果を得る。
【００７０】
ユーザが本実施例を使用する具体的な手順は、第１の実施例と同じである。
【００７１】
本実施例のブラインド復号器は、以下のサブユニットからなる。
入力部１１：ブラインド効果のかかった暗号文Ｃ’と、暗号鍵Ｅを入力する。
出力部１２：復号結果Ｒを出力する。
法数記憶部１３：法数ｎを記憶する。
オイラー数記憶部１６：オイラー数φ（ｎ）を記憶する。
逆数生成部１７：法数と整数を入力し、上記法数における上記整数の逆数を計算する。
復号部１５：ｎ、Ｃ’、逆数生成部１７の計算結果から復号結果Ｒを計算する。
【００７２】
本実施例のブラインド復号器の処理手順は次のようである。
１．  入力部１１を介して、ユーザから、ブラインド効果のかかった暗号文Ｃ’と、第２の復号情報ｄ2を受け取り、Ｃ’は復号部１５へ、ｄ2は逆数生成部１７へ送る。
２．  逆数生成部１７は、オイラー数記憶部１６からオイラー数φ（ｎ）を取り出し、オイラー数φ（ｎ）を法としてｄ2の逆数ｄ2 -1を計算し、その結果を復号部１５に送る。
３．  復号部１５は、法数記憶部１３から法数ｎを取り出し、式９を計算する。
【００７３】
【数１１】
0003870927.tif 000005
４．  出力部１２を介して、Ｒを出力する。
【００７４】
もし、暗号文Ｃと第２の復号情報ｄ2の組合せが正しければ、式１０により、正しく復号されることがわかる。
【００７５】
【数１２】
0003870927.tif 000006
また、第２の復号情報とは異なる情報を本実施例のブラインド復号器に送ると、ユーザは正しい復号結果を得ることができない。したがって、第２の復号情報に復号料金等を含ませれば、偽りの復号料金を復号器に送られることを防ぐことができる。
【００７６】
本実施例のブラインド復号器に一方向性ハッシュ関数Ｖ（ｘ）の演算を行うハッシュ関数演算部を付加し、逆数生成部１６で、ｄ2の逆数を計算する変わりに、Ｖ（ｄ2）の逆数Ｖ（ｄ2）-1を計算し、復号部１５で、式１１を計算するようにしてもよい。
【００７７】
【数１３】
0003870927.tif 000007
この場合、暗号鍵ＥはＶ（ｄ2）になる。このように構成した場合、法数によりも大きなｄ2も利用可能になる。
【００７８】
また、法数ｎのオイラー数を記憶するのではなく、法数ｎの素因数を記憶しておき、復号時にオイラー数を計算するように構成してもよい。
【００７９】
また、法数ｎのオイラー数を記憶するのではなく、法数ｎの素因数を記憶しておき、個々の素因数毎に素因数を法として巾乗剰余演算をおこない、それらから中国人の剰余定理を使って、ｎを法数とした場合の結果を得てもよい。
【００８０】
具体的には、ｎが二つの素数ｐ、ｑの積であった場合、
【００８１】
【数１４】
0003870927.tif 000008
を計算し、Ｒ1、Ｒ2から中国人の剰余定理を使ってＲを計算しても、同じ効果が得られる。
【００８２】
［アクセス資格認証の実施例］
第３、４、５、６の実施例は、本発明を応用した、アクセス資格認証装置である。第３、４、５、６の実施例の実施例の大まかな構成を図３に示す。
【００８３】
図３において、これらの実施例のアクセス資格認証装置は、証明装置１００と検証装置２００とを有する。証明装置２００は、アクセスチケット生成装置３００が生成したアクセスチケットを利用して証明データを生成する。検証装置１００は、アクセス資格が認証されるサービスやデジタルデータに付随した装置であり、サービスやデジタルデータの利用者が、正当なアクセス権を持つことを検証する。証明装置２００は、サービスやデジタルデータの利用者が保持する装置であり、検証装置１００に対して、利用者が正当なアクセス権を持つことを証明する。
【００８４】
アクセス資格の認証は、検証装置１００が認証用データを証明装置２００に送り、証明装置２００で、認証データに対応する証明データを生成し、それを検証データに送ることで行われる。第３、４、５、６の実施例では、検証装置１００が送る認証データは、なんらかのデータを暗号化したものであり、証明装置２００は、認証データを復号して証明データを生成する。検証装置１００は、証明装置２００から送られた証明データが、認証データを正しく復号したものかどうかを検査することで、証明データの検証を行う。
【００８５】
証明データの生成には、認証データ、ユーザ固有情報、アクセスチケット、アクセス資格認証の必須情報の４つが必要である。
【００８６】
ユーザ固有情報は、サービスやデジタルデータの利用者毎に違うデジタルデータであり、証明装置２００内に、利用者からアクセスできない形で格納されている。
【００８７】
アクセスチケットは、アクセス資格認証の特徴情報とユーザ固有情報から生成されるデジタルデータである。
【００８８】
アクセス資格認証の必須情報は、検証装置１００が保持するデータであり、認証用データとともに、証明装置２００に送られる。
【００８９】
第３、４、５、６の実施例では、認証用データは、アクセス資格認証の特徴情報と、アクセス資格認証の必須情報との２つがそろってはじめて復号できる。したがって、検証装置１００と証明装置２００の間の通信の傍受者が、認証用データとともに証明装置２００に送られるアクセス資格認証の必須情報を差し替える等の不正を働けば、正しい証明データをえることができない。これにより、アクセス資格認証の必須情報を差し替えられることを防ぐことができる。
【００９０】
第３、４、５、６の実施例におけるアクセス資格認証の必須情報にサービスやデジタルデータの利用料金の情報を埋め込み、送られた利用料金の情報を、利用者が変更できない形でに蓄積するよう証明装置２００を構成し、後に蓄積された料金情報をもとに利用者に利用料金を請求するようにすれば、偽りのない利用料金を課金することが可能なアクセス資格認証システムを作ることができる。
【００９１】
第３、４、５、６の実施例におけるアクセス資格認証の必須情報に、サービスやデジタルデータの利用期限情報を埋め込み、証明装置２００を、時計を内蔵し、送られた利用期限と内蔵している時計の時刻とを比較して、証明装置２００の生成の可否を決定するよう、構成すれば、サービスやデジタルデータの利用期限を限定可能なアクセス資格認証システムを作ることができる。
【００９２】
第３、４、５、６の実施例におけるアクセス資格認証の必須情報にサービスやデジタルデータの属性情報を埋め込み、送られた属性情報を、利用者が変更できない形でに蓄積するよう証明装置２００を構成すれば、後の統計処理や、監査の際に利用可能なデータを蓄積することができるアクセス資格認証システムを作ることができる。
【００９３】
［第３の実施例］
第３の実施例の証明装置の構成方法を図４に、検証装置の構成方法を図８に示す。また、本実施例の証明装置の動作を図１０に、検証装置の動作を図１１に示す。
【００９４】
本実施例の証明装置２００は、図４に示すように、受信データ記憶部２０２、アクセスチケット記憶部２０３、ユーザ固有情報記憶部２０４、指数生成部２０５、第１演算部２０６、第２演算部２０７および証明データ生成部２０８を含んで構成されている。
【００９５】
また、本実施例の検証装置１００は、図８に示すように、検証手段１０１、アクセスチケット公開鍵記憶部１０３、乱数生成部１０４、乱数記憶部１０５、乱数効果除去部１０６、乱数効果付与部１０７、認証用素データ記憶部１０８、必須情報記憶部１０９、受信データ記憶部１１０および検証用演算部１１１を含んで構成されている。
【００９６】
本発明における第１の実施例では、アクセス資格認証の特徴情報Ｄと、Ｄに対応する公開情報Ｅおよびｎ、アクセス資格認証の必須情報Ｉは、以下のように定義される。
【００９７】
ｎはＲＳＡ法数、すなわち、十分大きな二つの素数ｐ、ｑの積であり、式１２を満たす。
【００９８】
【数１５】
ｎ＝ｐｑ      （１２）
φ（ｎ）はｎのオイラー数であり、式１３によって計算される。
【００９９】
【数１６】
φ（ｎ）＝（ｐ−１）（ｑ−１）      （１３）
アクセス資格認証の特徴情報Ｄは、法数ｎのもとでのＲＳＡ秘密鍵であり、式１４を満たす。
【０１００】
【数１７】
ｇｃｄ（Ｄ，φ（ｎ））＝１      （１４）
ここで、ｇｃｄ（ｘ，ｙ）は、二数ｘ、ｙの最大公約数を表す。
また、Ｉは、式１５を満たす素数である。
【０１０１】
【数１８】
ｇｃｄ（Ｉ，φ（ｎ））＝１      （１５）
公開情報Ｅは、式１６を満たすように生成される。
【０１０２】
【数１９】
ＥＩＤ  ｍｏｄ  φ（ｎ）＝１      （１６）
Ｄをアクセスチケット秘密鍵、Ｅをアクセスチケット公開鍵と呼ぶ。アクセスチケットｔは、アクセスチケット秘密鍵Ｄ、ユーザの固有情報ｅ、法数ｎを用い、以下の式１７に基づいて生成される。
【０１０３】
【数２０】
ｔ＝Ｄ−Ｆ（ｅ，ｎ）      （１７）
ユーザの固有情報ｅは、ユーザ毎に異なる数であり、ユーザを識別するために用いられる。関数Ｆは関数値が衝突しにくい関数であり、例えば、一方向ハッシュ関数ｈを利用して、式１８あるいは式１９のように定めることができる。
【０１０４】
【数２１】
Ｆ（ｘ，ｙ）＝ｈ（ｘ｜ｙ）      （１８）
Ｆ（ｘ，ｙ，ｚ，ｕ，ｗ）＝ｈ（ｘ｜ｙ｜ｚ｜ｕ｜ｗ）      （１９）
ここで、ｘ｜ｙはｘとｙとのビットの連結であることを表す。
【０１０５】
上記の説明中に現れた数において、ｔ、Ｅ、ｎ、Ｉは公開可能であり、残りのＤ、ｅ、ｐ、ｑ、φ（ｎ）および関数Ｆはチケットを作成する権利を有するもの以外には秘密である必要がある。
【０１０６】
また、以下では、暗号化されるデータＫを検証用データ、証明装置２００が証明のために生成するデータＲを証明用データとよぶ。また、証明装置２００が証明データを生成するために、検証装置１００から受け取るデータを認証用データと呼ぶ。
【０１０７】
以下に本実施例の動作を示す。
１．  ユーザが、アクセス資格認証装置による認証を必要とするデジタルコンテンツにアクセスすることによって、検証装置１００が起動される。検証装置１００がユーザのＰＣあるいはワークステーション上で動作するアプリケーションプログラムの一部として構成されている場合、ユーザがキーボードあるいはマウスなどの指示装置を用いた通常の方法で、アプリケーションプログラムを起動する。アプリケーションプログラムの実行が検証装置１００を構成しているプログラムに到達することにより、検証装置１００が起動される。
【０１０８】
検証装置１００がネットワークで結ばれた他のＰＣあるいはワークステーション（サーバと呼ぶ）上に構成されている場合、ユーザは自分のＰＣあるいはワークステーション上の通信プログラムを起動し、該通信プログラムが所定の手続きに従って上記サーバに通信の開設要求を行うことにより、上記サーバ上の検証装置１００が起動される。例えば、ユーザの通信プログラムがサーバと通信する際にＴＣＰ／ＩＰ（トランスミッションコントロールプロトコル／インターネットプロトコル）と呼ばれる手続きに従うとすると、検証装置をサーバの特定のポートに予め対応づけておき、更に、ユーザの通信プログラムが該ポートを指定してＴＣＰ接続要求をサーバに要求するように設定しておくことにより、サーバ上のデーモン（ｉｎｅｔｄ）がＴＣＰ接続要求に応じて検証装置を起動することが可能となる。このような実現方法は、インターネットなどのネットワークにおいて広く利用されているものである。
【０１０９】
検証装置１００を専用目的の装置とすることも可能である。例えば、検証装置１００をＩＣカード・リーダ・ライター内のＲＯＭに焼きつけられたプログラムとして構成し、証明装置２００をＩＣカードのマイクロコントローラーに実装されたプログラムとすることができる。この場合、ユーザがＩＣカードをリーダ・ライターに挿入することにより、検証装置１００が起動される。
【０１１０】
２．  検証装置１００は、認証用データＣと、アクセスチケット公開鍵記憶部１０３に記憶されている法数ｎ、及び、必須情報記憶部１０９に記憶されているアクセス資格認証の必須情報Ｉを、証明装置２００中の受信データ記憶部２０２に書き込む。認証用素データ記憶部１０８には、認証用素データとしてＣ’が記憶されている。ここで、検証用データを適当なデータＫとする時、認証用素データＣ’は、データＫに対して式２０を満たす。
【０１１１】
【数２２】
Ｃ’＝ＫE  ｍｏｄ  ｎ      （２０）
認証用データＣは、検証装置１００により、乱数生成部１０４で乱数ｒを生成し、ｒと、アクセスチケット公開鍵記憶部１０３から取得したＥ、ｎと、認証用素データ記憶部１０８から取得したＣ’とを用い、乱数効果付与部１０７で式２１の計算を行うことで生成される。生成された認証用データＣは、証明装置２００中の受信データ記憶部２０２に書き込まれる。また、生成した乱数ｒは、乱数記憶部１０５に記憶される。
【０１１２】
【数２３】
Ｃ＝ｒEＣ’  ｍｏｄ  ｎ      （２１）
このように、認証用データに乱数効果を加え、証明装置２００が返す証明データを検証する際に乱数効果を除去するように構成することにより、認証データにブラインドネスを付与することができる。すなわち、検証装置１００と証明装置２００間の通信の傍受者、あるいは証明装置自体から、認証用素データ自体、あるいは、その復号結果を隠すことができる。また、乱数効果に使用する乱数を毎回変えることにより、リプレイアタックを不可能にする役割も持っている。これは、以下の実施例においても、同様である。また、データＫを検証装置に保持せず、代わりに、その暗号化の結果であるＣ’のみを保持するように検証装置を構成し、証明装置２００から送られる証明データから乱数効果を取り除いたものとＫとが一致すること検証する手段を検証装置１００にもたせれば、検証装置１００からデータＫが漏洩する危険を回避することができる。
【０１１３】
３．  証明装置２００中の指数生成部２０５は、ユーザ固有情報記憶部２０４に記憶されているユーザの固有情報ｅと、受信データ記憶部２０２に記憶されている法数ｎとを取得し、式２２の計算を実行する。
【０１１４】
【数２４】
Ｆ（ｅ，ｎ）      （２２）
【０１１５】
４．  証明装置２００中の第１演算部２０６は、受信データ記憶部２０２に記憶されている必須情報Ｉと法数ｎを取得し、これと、指数生成部２０５で生成されたデータとを用いて、式２３の計算を実行しＲ’を得る。
【０１１６】
【数２５】
Ｒ’＝ＣIF(e,n)  ｍｏｄ  ｎ      （２３）
【０１１７】
５．  証明装置２００中の第２演算部２０７は、アクセスチケット記憶部２０３に記憶されているアクセスチケットｔを取得し、式２４を計算して、Ｒ’’を得る。
【０１１８】
【数２６】
Ｒ’’＝ＣIt  ｍｏｄ  ｎ      （２４）
【０１１９】
６．  証明装置２００中の証明データ生成部２０８は、第１および第２演算部２０６、２０７からＲ’およびＲ’’を得て、式２５の計算を行いＲを得る。
【０１２０】
【数２７】
Ｒ＝Ｒ’Ｒ’’  ｍｏｄ  ｎ      （２５）
【０１２１】
７．  証明装置２００はＲを検証装置１００の受信データ記憶部１１０に書き込む。
８．  検証装置１００中の乱数効果除去部１０６は、乱数記憶部１０５中から先に生成した乱数ｒを取り出し、式２６の計算を行う。
【０１２２】
【数２８】
Ｋ’＝ｒ-1Ｒ  ｍｏｄ  ｎ      （２６）
９．  証明装置２００において用いられるアクセスチケットｔとユーザの固有情報ｅ、および必須情報Ｉの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
１０．  計算されたＫ’は、検証装置１００中の検証手段１０１に引き渡されるが、実行手段１０２はＫ’＝Ｋが成立する場合に限り正規の処理を実行する。
【０１２３】
もし、上記の手順が正しく行われれば、式２７により、ＫとＫ’が一致することがわかる。
【０１２４】
【数２９】
0003870927.tif 000009
また、検証装置１００と証明装置２００の間の通信の傍受者が、アクセス資格認証の必須情報ＩをＩ’と差し替えた場合、ＫとＫ’は一致しないので、サービスやデジタルデータのアクセスができない。
【０１２５】
ただし、アクセス資格認証の必須情報Ｉが素数でない場合には、問題がおこる。Ｉが、Ｉ＝ａ＊ｂと因数分解できる場合には、復号器にＣ、Ｉを送る代わりに、Ｃa  ｍｏｄ  ｎ，ｂを送っても復号器の出力は変わらない。したがって、Ｉという必須情報の代わりに、ｂという必須情報を送って、正常にアクセスすることが可能なのである。これを防ぐには、Ｉが素数になるように、Ｅ、Ｄ、Ｉの組合せを決めればよい。
【０１２６】
また、Ｉが素数であっても、復号器にＣ、Ｉを送る代わりに、ＣI  ｍｏｄ  ｎ，１を送り、同じ出力を得ることができる。これを防ぐには、証明装置２００は、送られてきた必須情報が１でないことを確認する手段をもち、必須情報が１でないときのみＣの巾乗剰余の演算を行うよう構成すればよい。
【０１２７】
また、Ｉが素数でなくても、特定の値の繰り返してある等の、冗長性を持たせた値になるよう、Ｅ、Ｄ、Ｉの組合せを決めるようにし、証明装置２００に、送られてきた必須情報の冗長性を確認する手段を設けてもよい。Ｉの自明でない約数が証明装置２００が知っている冗長性を持つ可能性が十分低ければ、この方法でも、必須情報の代わりにその約数を復号器に送る攻撃を回避できる。
【０１２８】
本実施例において、ユーザ固有情報記憶部２０４、指数生成部２０５、第１演算部２０６を、利用者によるアクセスや改変が不能なＩＣカード等の内部に構成すれば、ユーザ固有情報の漏洩や、指数生成部２０５、第１演算部２０６の改変による不正から、本実施例を守ることが可能になる。
【０１２９】
本実施例の証明装置２００に一方向性ハッシュ関数Ｖ（ｘ、ｙ）の演算を行う演算手段を付加し、式２３の代わりに式２８を、式２４の代わりに式２９を計算するようにしてもよい。
【０１３０】
【数３０】
Ｒ’＝ＣV(I,n)F(e,n)  ｍｏｄ  ｎ      （２８）
Ｒ’＝ＣV(I,n)t  ｍｏｄ  ｎ      （２９）
この場合、暗号鍵Ｅとアクセス資格の必須情報Ｉおよびアクセス資格の特徴情報Ｄは、式３０の関係を満たすように作ることになる。
【０１３１】
【数３１】
ＥＶ（Ｉ，ｎ）Ｄ≡１  ｍｏｄ  φ（ｎ）      （３０）
このように構成すれば、法数よりも大きな必須情報を利用可能になる。
【０１３２】
本実施例の証明装置２００を、アクセスチケットと、指数生成部２０５の出力から、アクセス資格の特徴情報を算出し、その結果を使って、認証用データを巾乗剰余するように構成しても、本実施例と同様の効果が得られる。
【０１３３】
以下、検証装置１００において、ＫとＫ’が同一であることを検証する方法について、いくつかの例を記す。これらの例は、第４、５、６の実施例のも同様に適用可能である。
【０１３４】
［１］検証用データと復号結果を直接比較する構成例
検証手段１０１は予め検証用データＫを記憶しておく。検証手段１０１中の比較部は、この検証用データＫと、認証用データを復号したデータＫ’とを直接比較し、Ｋ’＝Ｋが成立する場合に限り正規の処理を実行し、成立しない場合には処理を中止するなどのエラー処理を実行する。この構成例では、検証すべき検証用データＫそのものが装置中に現れるという安全上の弱点がある。例えば、検証装置１００がユーザのＰＣあるいはワークステーション上で動作するプログラムとして構成されている場合、プログラムを解析してＫを窃取することは、困難であっても、必ずしも不可能ではない。Ｋの値がユーザの知るところとなると、証明装置２００の動作を模倣する装置を構成することが可能となり、なりすましによる不正アクセスが可能となる。
【０１３５】
［２］一方向性関数を用いた構成例
上記の欠点を改善するため、検証手段１０１が記憶している検証のためのデータを、検証用データＫそのものではなく、Ｋに前述の一方向ハッシュ関数ｈを施して得られるデータｈ（Ｋ）とする。一方向ハッシュ関数の性質から、証明データ記憶手段に記憶されるデータｙから、ｙ＝ｈ（ｘ）を満たすｘを算出することは著しく困難である。検証手段１０１は、入力データに対し一方向ハッシュ関数を施した結果を返す変換部を有する。比較部は、認証用データを復号したデータＫ’をハッシュ関数の入力として得られる出力ｈ（Ｋ’）と、記憶されているデータ（＝ｈ（Ｋ））とを比較する。この方法例では、検証用データＫがプログラム中に現れることがなく、また、証明データ記憶手段に記憶されたｈ（Ｋ）からＫを計算することも著しく困難であることから、上記［１］の例よりは安全であるといえる。しかしながら、比較部はプログラム中では条件文として構成されており、検証装置がプログラムで、分析・改竄が容易であるような構成の場合には、該条件文をスキップするようにプログラムを改竄することが可能である点で、なお弱点を有している。
【０１３６】
［３］復号された値が、特定のデータを復号するための復号鍵である構成例
検証のために記憶されているデータが、暗号化されたデータであり、認証用データを復号したデータＫ’は、この暗号化されたデータを復号するための鍵である。検証手段１０１は、データＫ’の値を、検証のために記憶されているデータを暗号化するのに用いた暗号の復号鍵として用いて復号し、その結果、暗号化されたデータが復号できた場合のみ、プログラムの実行を可能とする。この構成でも、検証装置１００中に復号鍵そのものは現れないため、安全度は高くなっている。
【０１３７】
［４］復号された値が特定の冗長性を満たすことを確認する構成例
検証装置１００が冗長性検証手段をもち、検証手段１０１は、認証用データを復号したデータＫ’の値を、冗長性検証手段に送る。冗長性検証手段が、そのデータが特定の冗長性を満たすことを確認した場合のみ、プログラムの実行を可能とする。冗長性の例としては、復号されたデータがある特定のパターンを繰り返していることや、特定の位置のデータが特定の条件を満たすこと、あるいは、データが特定の言語として意味があること、等があげられる。
【０１３８】
［５］プログラムコード自体を暗号化する構成例
検証装置１００が保持するプログラムのコードの一部或は全部を暗号化したデータを認証用データとして、認証用データ記憶手段に保持する。即ち、認証用データを復号したデータＫ’はプログラムのコードの一部或は全部となる。実行手段はデータＫ’を、プログラム中の予め定められた位置に埋め込み、その後、埋め込んだプログラムを実行する。証明装置が正しいデータを返信した場合、即ち、Ｋ’がコードを正しく復号したものである場合に限ってプログラムは実行可能となる。復号されたコードを本来のプログラムに埋め込んだファイルを生成した後、そのファイルを起動してもよいが、プログラムがメモリ上に展開されている状態で、復号したコードをメモリ上のプログラムに埋め込んだのち起動する方法が、安全上は望ましい。この構成例では、プログラムの実行に不可欠なコードの一部或は全部が暗号化されているため、実行されるプログラムがユーザのＰＣあるいはワークステーション上で動作するアプリケーションプログラムとして構成されているような比較的安全性の低い場合でも、不正実行を防止することができる。
【０１３９】
［６］復号された値がプログラムの復号鍵である構成例
検証装置１００がプログラムのコードの一部或は全部を暗号化したデータを保持しており、認証用データを復号したデータＫ’が、暗号化したプログラムコードを復号するために必要な復号鍵となっているものである。この構成によると、暗号化するコードのサイズに関わらず、データＫ’のサイズを一定の小さい値に抑えることが可能となり、通信のオーバヘッドを減少させることができる。検証手段１０１はデータＫ’を用いて、記憶している暗号化されたプログラムコードを復号する。さらに復号されたコードを、プログラム中の予め定められた位置に埋め込み、その後、埋め込んだプログラムを実行する。証明装置が正しいデータを返信していた場合、即ち、Ｋ’によってコードが正しく復号されていた場合に限ってプログラムは実行可能となる。
【０１４０】
［第４の実施例］
第４の実施例は、アクセスチケットｔの計算が第３の実施例とは異なる。本実施例の検証装置の構成方法を図８に、証明装置の構成方法を図５に示す。また、本実施例の検証装置の動作を図１３に、証明装置の動作を図１２に示す。本実施例の、アクセス資格認証の特徴情報Ｄ、公開情報Ｅ、ｎ、アクセス資格認証の必須情報Ｉの満たすべき性質および認証用素データＣ’、認証用データＣの生成方法は、実施例１と同様である。なお、図５において、図４に対応する箇所には対応する符号を付した。
【０１４１】
本実施例のアクセスチケットｔは、式２８に基づいて生成される。
【０１４２】
【数３２】
ｔ＝Ｄ／Ｆ（ｅ，ｎ）  ｍｏｄ  φ（ｎ）      （３１）
以下、本実施例の動作について説明する。
【０１４３】
１．  ユーザがアクセスすることによって、検証装置１００が起動される。
【０１４４】
検証装置１００の実現方法として、ユーザのＰＣやワークステーション上で動作するアプリケーションプログラム、ユーザのＰＣやワークステーションとネットワークを介して接続されたサーバ上のサーバプログラム、あるいは、ＩＣカード・リーダ・ライターのような専用の装置のいずれも可能であることは、第３の実施例の場合と変わらない。これは、以降の実施例においても同様である。
【０１４５】
２．  検証装置１００は、認証用データＣと、アクセスチケット公開鍵記憶部１０３に記憶されている法数ｎ、および、必須情報記憶部１０９に記憶されているアクセス資格認証の必須情報Ｉを、証明装置２００中の受信データ記憶部２０２に書き込む。
【０１４６】
３．  証明装置２００中の指数生成部２０５は、ユーザ固有情報記憶部２０４に記憶されているユーザの固有情報ｅと、アクセスチケット公開鍵記憶部２０３に記憶されている法数ｎとを取得し、式３２の計算を実行する。
【０１４７】
【数３３】
Ｆ（ｅ，ｎ）      （３２）
【０１４８】
４．  証明装置２００中の証明用演算部２０９は、受信データ記憶部２０２に記憶されている必須情報Ｉと法数ｎを取得し、これと、指数生成部２０５で生成されたデータとを用いて、式３３の計算を実行しＲ’を得る。
【０１４９】
【数３４】
Ｒ’＝ＣIF(e,n)  ｍｏｄ  ｎ      （３３）
【０１５０】
５．  証明装置２００中の証明データ生成部２０８は、アクセスチケット記憶部２０３に記憶されているアクセスチケットｔと受信データ記憶部２０２に記憶されている法数ｎを取得し、証明用演算部２０９からＲ’を得、式３４を計算して、Ｒを得る。
【０１５１】
【数３５】
Ｒ＝Ｒ’t  ｍｏｄ  ｎ      （３４）
【０１５２】
６．  証明装置２００は、Ｒを検証装置１００の受信データ記憶部１１０に書き込む。
７．  検証装置１００中の乱数効果除去部１０６は、乱数記憶部１０５中から先に生成した乱数ｒを取り出し、式３５の計算を行う。
【０１５３】
【数３６】
Ｋ’＝ｒ-1Ｒ  ｍｏｄ  ｎ      （３５）
【０１５４】
８．  証明装置２００において用いられるアクセスチケットｔとユーザの固有情報ｅ、および必須情報Ｉの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。もし、上記の手順が正しく行われれば、式３６により、ＫとＫ’が一致することがわかる。
【０１５５】
【数３７】
0003870927.tif 000010
また、検証装置１００と認証装置２００の間の通信の傍受者が、アクセス資格認証の必須情報ＩをＩ’と差し替えた場合、ＫとＫ’は一致しないので、サービスやデジタルデータのアクセスができない。
【０１５６】
ただし、アクセス資格認証の必須情報Ｉが素数でない場合には、問題がおこる。Ｉが、Ｉ＝ａ＊ｂと因数分解できる場合には、復号器にＣ、Ｉを送る代わりに、Ｃa  ｍｏｄ  ｎ，ｂを送っても復号器の出力は変わらない。したがって、Ｉという必須情報の代わりに、ｂという必須情報を送って、正常にアクセスすることが可能なのである。これを防ぐには、Ｉが素数になるように、Ｅ、Ｄ、Ｉの組合せを決めればよい。
【０１５７】
また、Ｉが素数であっても、復号器にＣ、Ｉを送る代わりに、ＣI  ｍｏｄ  ｎ，１を送り、同じ出力を得ることができる。これを防ぐには、証明装置２００は、送られてきた必須情報が１でないことを確認する手段をもち、必須情報が１でないときのみＣの巾乗剰余の演算を行うよう構成すればよい。
【０１５８】
また、Ｉが素数でなくても、特定の値の繰り返してある等の、冗長性を持たせた値になるよう、Ｅ、Ｄ、Ｉの組合せを決めるようにし、証明装置２００に、送られてきた必須情報の冗長性を確認する手段を設けてもよい。Ｉの自明でない約数が、証明装置２００が知っている冗長性を持つ可能性が十分低ければ、この方法でも、必須情報の代わりにその約数を復号器に送る攻撃を回避できる。
【０１５９】
Ｋ’と検証用データＫとの比較方法に関しては、実施例３と同様の方法を用いることができる。
【０１６０】
本実施例において、ユーザ固有情報記憶部２０４、指数生成部２０５、証明演算部２０９を、利用者によるアクセスや改変が不能なＩＣカード等の内部に構成すれば、ユーザ固有情報２０４の漏洩や、指数生成部２０５、証明演算部２０９の改変による不正から、本実施例を守ることが可能になる。
【０１６１】
本実施例の証明装置２００に一方向性ハッシュ関数Ｖ（ｘ、ｙ）の演算を行う演算手段を付加し、式３３の代わりに式３７を計算するようにしてもよい。
【０１６２】
【数３８】
Ｒ’＝ＣV(I,n)F(e,n)  ｍｏｄ  ｎ      （３７）
この場合、暗号鍵Ｅとアクセス資格の必須情報Ｉおよびアクセス資格の特徴情報Ｄは、式３８の関係を満たすように作ることになる。
【０１６３】
【数３９】
ＥＶ（Ｉ，ｎ）Ｄ≡１  ｍｏｄ  φ（ｎ）      （３８）
このように構成した場合、Ｖ（ｘ，ｙ）をユーザに対して秘密にすることが可能になり、安全性が向上する。また、法数によりも大きな必須情報を利用可能になる。
【０１６４】
本実施例の証明装置２００を、アクセスチケットと、指数生成部２０５の出力から、アクセス資格の特徴情報を算出し、その結果を使って、認証用データを巾乗剰余するように構成しても、本実施例と同様の効果が得られる。
【０１６５】
［第５の実施例］
第３、４の実施例が、アクセス資格の必須情報の正当性が、証明装置２００にはわからなかったのに対し、第５の実施例は、アクセス資格の必須情報の正当性を証明装置２００で検証し、正当なものでなければ、証明データの生成を行わないものである。本実施例の検証装置１００の構成方法を図９に、証明装置２００の構成方法を図６に示す。また、本実施例の検証装置１００の動作を図１５に、証明装置２００の動作を図１４に示す。
【０１６６】
本実施例の、アクセス資格認証の特徴情報Ｄと、ＲＳＡ法数ｎ、およびｎのオイラー数φ（ｎ）が満たすべき性質および認証用素データＣ’、認証用データＣの生成方法は、実施例３と同様である。本実施例における公開情報Ｅは、式３５を満たすように生成される。
【０１６７】
【数４０】
ＥＤ  ｍｏｄ  φ（ｎ）＝１      （３９）
アクセスチケットｔは、実施例１と同様、アクセスチケット秘密鍵Ｄ、ユーザの固有情報ｅ、法数ｎ、関数Ｆを用い、以下の式４０に基づいて生成される。
【０１６８】
【数４１】
ｔ＝Ｄ−Ｆ（ｅ，ｎ）      （４０）
【０１６９】
以下、本実施例の動作について説明する。
１．  ユーザがアクセスすることによって、検証装置１００が起動される。
【０１７０】
２．  検証装置１００中の検査情報生成部１１２は、認証用データＣと、必須情報記憶部１０９に記憶されているアクセス資格認証の必須情報Ｉを取得し、式４１の計算を実行して、検査情報Ｍを生成する。
【０１７１】
【数４２】
Ｍ＝Ｖ（Ｃ，Ｉ）      （４１）
関数Ｖは、関数Ｆと同様の性質を持つ関数であり、検証装置１００と証明装置２００以外には秘密である必要がある。
【０１７２】
３．  検証装置１００は、証用データＣと、アクセスチケット公開鍵記憶部１０３に記憶されている法数ｎ、必須情報記憶部１０９に記憶されているアクセス資格認証の必須情報Ｉ、および検査情報Ｍを、証明装置２００中の受信データ記憶部２０２に書き込む。
【０１７３】
４．  証明装置２００中の必須情報検証部２１０は、受信データ記憶部２０２に書き込まれた認証データＣ、必須情報Ｉ、検査情報Ｍを取得し、式４２を満たしているかどうかを検証する。
【０１７４】
【数４３】
Ｍ＝Ｖ（Ｃ，Ｉ）      （４２）
式４２を満たしていれば、引続き以下の計算を行う。
【０１７５】
５．  証明装置２００中の指数生成部２０５は、ユーザ固有情報記憶部２０４に記憶されているユーザの固有情報ｅと、受信データ記憶部２０２に記憶されている法数ｎとを取得し、式４３の計算を実行する。
【０１７６】
【数４４】
Ｆ（ｅ，ｎ）      （４３）
【０１７７】
６．証明装置２００中の第１演算部２０６は、受信データ記憶部２０２に書き込まれた認証用データＣ、法数ｎと、指数生成部２０５で生成されたデータとを用いて、式４４の計算を実行しＲ’を得る。
【０１７８】
【数４５】
Ｒ’＝ＣF(e,n)  ｍｏｄ  ｎ      （４４）
【０１７９】
７．  証明装置２００中の第２演算部２０７は、アクセスチケット記憶部２０７に記憶されているアクセスチケットｔ、受信データ記憶部２０２に記憶されている認証用データＣ、法数ｎを取得し、式４５を計算して、Ｒ’’を得る。
【０１８０】
【数４６】
Ｒ’’＝Ｃt  ｍｏｄ  ｎ      （４５）
【０１８１】
８．  証明装置２００中の証明データ生成部２０８は、第１および第２演算部２０６、２０７からＲ’およびＲ’’を得て、式４６の計算を行いＲを得る。
【０１８２】
【数４７】
Ｒ＝Ｒ’Ｒ’’  ｍｏｄ  ｎ      （４６）
【０１８３】
９．  証明装置２００はＲを検証装置１００の受信データ記憶部１１０に書き込む。
１０．  検証装置１００中の乱数効果除去部１０６は、乱数記憶部１０５中から先に生成した乱数ｒを取り出し、式４７の計算を行う。
【０１８４】
【数４８】
Ｋ’＝ｒ-1Ｒ  ｍｏｄ  ｎ      （４７）
【０１８５】
１１．  証明装置２００において用いられるアクセスチケットｔとユーザの固有情報ｅ、および必須情報Ｉの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０１８６】
もし、上記の手順が正しく行われれば、式４８により、ＫとＫ’が一致することがわかる。
【０１８７】
【数４９】
0003870927.tif 000011
検証装置１００と認証装置２００の間の通信の傍受者が、アクセス資格認証の必須情報ＩをＩ’と差し替えた場合、４でのチェックを通らず、証明装置２００は証明データの生成を中止し、検証装置１００に中止を通知する。通知の手段は、たとえば、中止用コードを受信データ記憶部１１０に書き込む方法や、予め証明データ生成までの所要時間を定めておいて、所要時間を超過しても受信データ記憶部１１０への書き込みが行われなかった場合は中止とする方法などがある。
【０１８８】
Ｋ’と検証用データＫとの比較方法に関しては、実施例３と同様の方法を用いることができる。
【０１８９】
本実施例において、ユーザ固有情報記憶部２０４、必須情報検証部２１０、指数生成部２０５、第１演算部２０６を、利用者によるアクセスや改変が不能なＩＣカード等の内部に構成すれば、ユーザ固有情報の漏洩や、必須情報検証部２１０、指数生成部２０５、第１演算部２０６の改変による不正から、本実施例を守ることが可能になる。
【０１９０】
［第６の実施例］
第６の実施例の検証装置１００の構成方法を図８に、証明装置２００の構成方法を図７に示す。また、本実施例の検証装置１００の動作を図１７に、証明装置２００の動作を図１６に示す。本発明における第４の実施例では、公開情報ｎ、およびｎのオイラー数φ（ｎ）が満たすべき性質は、実施例１と同様である。アクセス資格認証の必須情報Ｉは、式４９を満たす整数である。
【０１９１】
【数５０】
ｇｃｄ（Ｉ，φ（ｎ））＝１      （４９）
また、アクセスチケットｔは、オイラー数φ（ｎ）、ユーザの固有情報ｅ、法数ｎ、関数Ｆを用い、以下の式５０に基づいて生成される。
【０１９２】
【数５１】
ｔ＝φ（ｎ）−Ｆ（ｅ，ｎ）      （５０）
【０１９３】
以下、本実施例の動作について説明する。
１．  ユーザがアクセスすることによって、検証装置１００が起動される。
【０１９４】
２．  検証装置１００は、認証用データＣと、アクセスチケット公開鍵記憶部１０３に記憶されている法数ｎ、および、必須情報記憶部１０９に記憶されているアクセス資格認証の必須情報Ｉを、証明装置２００中の受信データ記憶部２０２に書き込む。認証用素データ記憶部１０８には、認証用素データとしてＣ’が記憶されている。ここで、検証用データを適当なデータＫとする時、認証用素データＣ’は、データＫに対して式５１を満たす。
【０１９５】
【数５２】
Ｃ’＝ＫI  ｍｏｄ  ｎ      （５１）
認証用データＣは、検証装置１００により、乱数生成部１０４で乱数ｒを生成し、ｒと、アクセスチケット公開鍵記憶部１０３から取得したｎと、必須情報記憶部１０９から取得したＩと、認証用素データ記憶部１０８から取得したＣ’とを用い、乱数効果付与部１０７で式５２の計算を行うことで生成される。生成された認証用データＣは、証明装置２００中の受信データ記憶部２０２に書き込まれる。また、生成した乱数ｒは、乱数記憶部１０５に記憶される。
【０１９６】
【数５３】
Ｃ＝ｒIＣ’  ｍｏｄ  ｎ      （５２）
【０１９７】
３．  証明装置２００中の指数生成部２０５は、ユーザ固有情報記憶部２０４に記憶されているユーザの固有情報ｅと、受信データ記憶部２０２に記憶されている法数ｎとを取得し、式５３の計算を実行する。
【０１９８】
【数５４】
Ｆ（ｅ，ｎ）      （５３）
【０１９９】
４．  証明装置２００中の証明用演算部２０９は、受信データ記憶部２０２に記憶されている必須情報Ｉと、アクセスチケット記憶部２０３に記憶されているアクセスチケットｔを取得し、これと、指数生成部２０５で生成されたデータとを用いて、式５４の計算を実行してを得、式５５を満たすＤを計算する。
【０２００】
【数５５】
ψ＝ｔ＋Ｆ（ｅ，ｎ）      （５４）
ＤＩ≡１  ｍｏｄ  ψ      （５５）
【０２０１】
５．  証明装置２００中の証明データ生成部２０８は、証明用演算部２０９からＤを得、受信データ記憶部２０２からＣ、ｎを取得して式５６の計算を行いＲを得る。
【０２０２】
【数５６】
Ｒ＝ＣD  ｍｏｄ  ｎ      （５６）
【０２０３】
６．  検証装置１００中の乱数効果除去部１０６は、乱数記憶部１０５中から先に生成した乱数ｒを取り出し、式５７の計算を行う。
【０２０４】
【数５７】
Ｋ’＝ｒ-1Ｒ  ｍｏｄ  ｎ      （５７）
【０２０５】
７．  証明装置２００において用いられるアクセスチケットｔとユーザの固有情報ｅ、および必須情報Ｉの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０２０６】
もし、上記の手順が正しく行われれば、式５８により、ＫとＫ’が一致することがわかる。
【０２０７】
【数５８】
0003870927.tif 000012
また、検証装置１００と認証装置２００の間の通信の傍受者が、アクセス資格認証の必須情報ＩをＩ’と差し替えた場合、
【０２０８】
【数５９】
0003870927.tif 000013
であり、ＫとＫ’は一致しないので、サービスやデジタルデータのアクセスができない。Ｋ’と検証用データＫとの比較方法に関しては、実施例３と同様の方法を用いることができる。
【０２０９】
本実施例において、ユーザ固有情報記憶部２０４、指数生成部２０５、証明用演算部２０９、証明データ生成部２０８を、利用者によるアクセスや改変が不能なＩＣカード等の内部に構成すれば、ユーザ固有情報の漏洩や、指数生成部２０５、証明用演算部２０９の改変による不正から、本実施例を守ることが可能になる。
【０２１０】
本実施例の証明装置２００に一方向性ハッシュ関数Ｖ（ｘ、ｙ）の演算を行う演算手段を付加し、式５５の代わりに式５９を計算するようにしてもよい。
【０２１１】
【数６０】
ＤＶ（Ｉ，ｎ）≡１  ｍｏｄ      （５９）
この場合、検証用データを適当なデータＫとする時、認証用素データＣ’は、データＫに対して式５４を満たすように作られる。
【０２１２】
【数６１】
Ｃ’＝ＫV(I,n)  ｍｏｄ  ｎ      （６０）
このように構成した場合、法数よりも大きな必須情報を利用可能になる。
【０２１３】
【発明の効果】
以上説明したように、本発明では、暗号化されたデータの復号に、第１の復号情報と、第２の復号情報が必要となるように構成し、第２の復号情報は、復号器に対して外部から入力するものとし（第１の復号情報は外部から入力するようにしても内部で生成するようにしてもよい）、暗号化されたデータと、第２の復号情報を正しく入力しなければ、正しい復号結果が得られないようにしている。したがって、データの復号料金等の、差し替えられてはならない情報は、第２の復号情報として復号器に入力するようシステムを構成すれば、情報の差し替えという不正行為に対して、復号の失敗というペナルテイを課すことができる。
【０２１４】
また、上述の復号手法をアクセス資格認証に適用することにより、アクセス料金等の、差し替えられてはならない情報を上述の第２の復号情報として入力させることにより、それら情報の差し替えという不正行為に対して、アクセスの拒否というペナルテイを課すことができる。
【図面の簡単な説明】
【図１】  本発明の第１の実施例の復号装置を示すブロック図である。
【図２】  本発明の第２の実施例の復号装置を示すブロック図である。
【図３】  本発明の第３〜第６の実施例のアクセス資格認証装置を全体として示すブロック図である。
【図４】  本発明の第３の実施例のアクセス資格認証装置の証明装置の構成を示すブロック図である。
【図５】  本発明の第４の実施例のアクセス資格認証装置の証明装置の構成を示すブロック図である。
【図６】  本発明の第５の実施例のアクセス資格認証装置の証明装置の構成を示すブロック図である。
【図７】  本発明の第６の実施例のアクセス資格認証装置の証明装置の構成を示すブロック図である。
【図８】  本発明の第３、４、６の実施例のアクセス資格認証装置の検証装置の構成を示すブロック図である。
【図９】  本発明の第５の実施例のアクセス資格認証装置の検証装置の構成を示すブロック図である。
【図１０】  本発明の第３の実施例のアクセス資格認証装置の証明装置の動作を説明する図である。
【図１１】  本発明の第３の実施例のアクセス資格認証装置の検証装置の動作を説明する図である。
【図１２】  本発明の第４の実施例のアクセス資格認証装置の証明装置の動作を説明する図である。
【図１３】  本発明の第４の実施例のアクセス資格認証装置の検証装置の動作を説明する図である。
【図１４】  本発明の第５の実施例のアクセス資格認証装置の証明装置の動作を説明する図である。
【図１５】  本発明の第５の実施例のアクセス資格認証装置の検証装置の動作を説明する図である。
【図１６】  本発明の第６の実施例のアクセス資格認証装置の証明装置の動作を説明する図である。
【図１７】  本発明の第６の実施例のアクセス資格認証装置の検証装置の動作を説明する図である。
【符号の説明】
１１    入力部
１２    出力部
１３    法数記憶部
１４    第１復号情報記憶部
１５    復号部
１６    オイラー数記憶部
１７    逆数生成部
１００    検証装置
１０１    検証手段
１０２    実行手段
１０３    アクセスチケット公開鍵記憶部
１０４    乱数生成部
１０５    乱数記憶部
１０６    乱数効果除去部
１０７    乱数効果付与部
１０８    認証用素データ記憶部
１０９    必須情報記憶部
１１０    受信データ記憶部
１１１    検証用演算部
１１２    検査情報生成部
２００    証明装置
２０１    証明データ生成手段
２０２    受信データ記憶部
２０３    アクセスチケット記憶部
２０４    ユーザ固有情報記憶部
２０５    指数生成部
２０６    第１演算部
２０７    第２演算部
２０８    証明データ生成部
２０９    証明用演算部
３００    アクセスチケット生成装置
【図１】
0003870927.tif 000014
【図２】
0003870927.tif 000015
【図３】
0003870927.tif 000016
【図４】
0003870927.tif 000017
【図５】
0003870927.tif 000018
【図６】
0003870927.tif 000019
【図７】
0003870927.tif 000020
【図８】
0003870927.tif 000021
【図９】
0003870927.tif 000022
【図１０】
0003870927.tif 000023
【図１１】
0003870927.tif 000024
【図１２】
0003870927.tif 000025
【図１３】
0003870927.tif 000026
【図１４】
0003870927.tif 000027
【図１５】
0003870927.tif 000028
【図１６】
0003870927.tif 000029
【図１７】
0003870927.tif 000030