(57)【要約】【課題】自動車用ドアの開錠・施錠などに適用する認証方法において、セキュリティーレベルを高める。【解決手段】鍵４０で、その固定値メモリー１１からＩＤコードＩＤＣＤおよび乱数ＣＤ０〜ＣＤ３を読み出し、重複禁止データＯＶＬＰ＿０と乱数ＲＮＤ１とを加算して重複禁止データＯＶＬＰを新たに生成する。次に、乱数発生器１５で認証用乱数データＲＮＤ２を生成し、認証用乱数データＲＮＤ２をＩＤコードＩＤＣＤおよび乱数ＣＤ０〜ＣＤ３に基づいて暗号化して暗号化データＣＲＮＤ２を生成する。そして、ＩＤコードＩＤＣＤ、重複禁止データＯＶＬＰ、認証用乱数データＲＮＤ２および暗号化データＣＲＮＤ２を錠５０に送信する。錠５０で、これらに基づいてＩＤコード、重複禁止データおよび乱数データに関する検証を行い、すべての検証において正常である場合にのみ認証を行う。【選択図】　　　図９
2004120031.tif 000002
【特許請求の範囲】
【請求項１】
被認証装置（１０、４０）と認証装置（２０、５０）との間でデータ通信による認証処理を実行する際に、
前記被認証装置に固定値メモリー（１１）および乱数発生器（１５）を組み込み、
前記固定値メモリーに前記被認証装置のＩＤコード（ＩＤＣＤ）および乱数（ＣＤ０〜ＣＤ３）を読み取り自在に格納しておき、
前記被認証装置が、その固定値メモリーからＩＤコードおよび乱数を読み出し、重複禁止データ（ＯＶＬＰ＿０）と乱数（ＲＮＤ１）とを加減算して重複禁止データ（ＯＶＬＰ）を新たに生成し、前記乱数発生器で認証用乱数データ（ＲＮＤ２）を生成し、この認証用乱数データを前記ＩＤコードおよび前記乱数に基づいて暗号化して暗号化データ（ＣＲＮＤ２）を生成し、これらＩＤコード、重複禁止データ、認証用乱数データおよび暗号化データを前記認証装置に送信し、
これを受けて前記認証装置が、これらＩＤコード、重複禁止データ、認証用乱数データおよび暗号化データに基づいてＩＤコード、重複禁止データおよび乱数データに関する検証を行い、すべての検証において正常である場合にのみ認証を行うことを特徴とする認証方法。
【請求項２】
複数の被認証装置（１０、４０）と認証装置（２０、５０）との間でデータ通信による認証処理を実行する際に、
前記各被認証装置にそれぞれ固定値メモリー（１１）および乱数発生器（１５）を組み込み、
前記各固定値メモリーにそれぞれ当該被認証装置のＩＤコード（ＩＤＣＤ）および乱数（ＣＤ０〜ＣＤ３）を読み取り自在に格納し、
前記各被認証装置に対応したＩＤコードが読み取り自在に格納されたＩＤコードテーブル（３１）を前記認証装置に組み込むとともに、前記各被認証装置に対応した重複禁止データ（ＯＶＬＰ）が読み取り自在に格納された重複禁止データテーブル（３２）を前記認証装置に組み込んでおき、
前記被認証装置のいずれかが、その固定値メモリーからＩＤコードおよび乱数を読み出し、重複禁止データ（ＯＶＬＰ＿０）と乱数（ＲＮＤ１）とを加減算して重複禁止データ（ＯＶＬＰ）を新たに生成し、前記乱数発生器で認証用乱数データ（ＲＮＤ２）を生成し、この認証用乱数データを前記ＩＤコードおよび乱数に基づいて暗号化して暗号化データ（ＣＲＮＤ２）を生成し、これらＩＤコード、重複禁止データ、認証用乱数データおよび暗号化データを前記認証装置に送信し、
これを受けて前記認証装置が、これらＩＤコード、重複禁止データ、認証用乱数データおよび暗号化データに基づいてＩＤコード、重複禁止データおよび乱数データに関する検証を行い、すべての検証において正常である場合にのみ認証を行うことを特徴とする認証方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、自動車用ドアや金庫の扉など各種の扉を開錠・施錠したり、ネットワークを介して売買契約を結んだりする際に適用するに好適な認証方法に関するものである。
【０００２】
【従来の技術】
この種の認証方法としては、第三者の「なりすまし」による不正行為を阻止できるワンタイムパスワード方式が注目されつつある（例えば、特許文献１、２参照）。
【０００３】
【特許文献１】特開２００１−３５２３２４号公報
【特許文献２】特開平１１−３１６７４０号公報
【０００４】
【発明が解決しようとする課題】
しかし、これでは次のような不都合があった。
【０００５】
まず、特許文献１に開示された方式では、パスワード生成時のパラメータとなるカウンタ値を許容範囲内の乱数値に基づいて進ませ、認証側は許容範囲の数だけパスワードを生成して比較するため、多数のパスワード生成・比較作業を要するという問題がある。
【０００６】
一方、特許文献２に開示された方式では、パスワードに時刻データを付加しなければならないので、時計機能を備えた装置内でしか使えないという欠点がある。
【０００７】
本発明は、このような事情に鑑み、上述した不都合を伴うことなくセキュリティーレベルを高めることが可能な認証方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
まず、本発明のうち請求項１に係る発明は、被認証装置（１０、４０）と認証装置（２０、５０）との間でデータ通信による認証処理を実行する際に、前記被認証装置に固定値メモリー（１１）および乱数発生器（１５）を組み込み、前記固定値メモリーに前記被認証装置のＩＤコード（ＩＤＣＤ）および乱数（ＣＤ０〜ＣＤ３）を読み取り自在に格納しておき、前記被認証装置が、その固定値メモリーからＩＤコードおよび乱数を読み出し、重複禁止データ（ＯＶＬＰ＿０）と乱数（ＲＮＤ１）とを加減算して重複禁止データ（ＯＶＬＰ）を新たに生成し、前記乱数発生器で認証用乱数データ（ＲＮＤ２）を生成し、この認証用乱数データを前記ＩＤコードおよび前記乱数に基づいて暗号化して暗号化データ（ＣＲＮＤ２）を生成し、これらＩＤコード、重複禁止データ、認証用乱数データおよび暗号化データを前記認証装置に送信し、これを受けて前記認証装置が、これらＩＤコード、重複禁止データ、認証用乱数データおよび暗号化データに基づいてＩＤコード、重複禁止データおよび乱数データに関する検証を行い、すべての検証において正常である場合にのみ認証を行うようにして構成される。ここで、被認証装置と認証装置の組み合わせ例としては、認証コード生成装置（１０）と認証サーバ（２０）、鍵（４０）と錠（５０）を挙げることができる。
【０００９】
また、本発明のうち請求項２に係る発明は、複数の被認証装置（１０、４０）と認証装置（２０、５０）との間でデータ通信による認証処理を実行する際に、前記各被認証装置にそれぞれ固定値メモリー（１１）および乱数発生器（１５）を組み込み、前記各固定値メモリーにそれぞれ当該被認証装置のＩＤコード（ＩＤＣＤ）および乱数（ＣＤ０〜ＣＤ３）を読み取り自在に格納し、前記各被認証装置に対応したＩＤコードが読み取り自在に格納されたＩＤコードテーブル（３１）を前記認証装置に組み込むとともに、前記各被認証装置に対応した重複禁止データ（ＯＶＬＰ）が読み取り自在に格納された重複禁止データテーブル（３２）を前記認証装置に組み込んでおき、前記被認証装置のいずれかが、その固定値メモリーからＩＤコードおよび乱数を読み出し、重複禁止データ（ＯＶＬＰ＿０）と乱数（ＲＮＤ１）とを加減算して重複禁止データ（ＯＶＬＰ）を新たに生成し、前記乱数発生器で認証用乱数データ（ＲＮＤ２）を生成し、この認証用乱数データを前記ＩＤコードおよび前記乱数に基づいて暗号化して暗号化データ（ＣＲＮＤ２）を生成し、これらＩＤコード、重複禁止データ、認証用乱数データおよび暗号化データを前記認証装置に送信し、これを受けて前記認証装置が、これらＩＤコード、重複禁止データ、認証用乱数データおよび暗号化データに基づいてＩＤコード、重複禁止データおよび乱数データに関する検証を行い、すべての検証において正常である場合にのみ認証を行うようにして構成される。
【００１０】
これらの構成を採用することにより、被認証装置で認証用乱数データを暗号化するときにＩＤコードが組み込まれ、その他の組込データが同じでも暗号化データが異なることに加えて、認証装置で検証するときに３重のセキュリティーチェックが実施され、３種類の検証のうち１種類でもパスしないものがあれば認証に失敗するように作用する。
【００１１】
なお、括弧内の符号は図面において対応する要素を表す便宜的なものであり、したがって、本発明は図面上の記載に限定拘束されるものではない。このことは「特許請求の範囲」の欄についても同様である。
【００１２】
【発明の実施の形態】
以下、本発明に係る認証方法のいくつかの実施形態について説明するが、データの暗号・復号化の方法は、図１に示すとおりである。
【００１３】
すなわち、データの暗号化については、暗号用乱数生成部３１が、固定または必要に応じて変更可能な所定ビット（例えば、６４ビット）の乱数ＣＤ０〜ＣＤ３と所定ビットで構成される第１共通鍵ＫＥＹおよび第２共通鍵ＣＮＴとに基づいて予測および計算不可能な暗号用乱数ＲＮＤを生成し、暗号化／復号化処理部３２が、この暗号用乱数ＲＮＤと第１共通鍵ＫＥＹ、第２共通鍵ＣＮＴとに基づいて源ブロックデータＢＳを暗号化し、予測および計算不可能な暗号化ブロックデータＢＣＳを生成し、制御データ生成部３３が、乱数ＣＤ０〜ＣＤ３と第１共通鍵ＫＥＹ、第２共通鍵ＣＮＴとに基づいて暗号用乱数生成部３１と暗号化処理部３２で使用する各種の制御データを生成する。
【００１４】
一方、データの復号化については、暗号用乱数生成部３１が、固定または必要に応じて変更可能な所定ビット（例えば、６４ビット）の乱数ＣＤ０〜ＣＤ３と所定ビットで構成される第１共通鍵ＫＥＹおよび第２共通鍵ＣＮＴとに基づいて予測および計算不可能な暗号用乱数ＲＮＤを生成し、暗号化／復号化処理部３２が、この暗号用乱数ＲＮＤと第１共通鍵ＫＥＹ、第２共通鍵ＣＮＴとに基づいて暗号生成装置からの暗号化ブロックデータＲＢＣＳを復号化してブロックデータＲＢＳを生成し、制御データ生成部３３が、乱数ＣＤ０〜ＣＤ３と第１共通鍵ＫＥＹ、第２共通鍵ＣＮＴとに基づいて暗号用乱数生成部３１と暗号化処理部３２で使用する各種の制御データを生成する。
【００１５】
＜第１の実施形態＞
図２は本発明に係る認証方法の第１の実施形態を示すブロック図、
図３は図２に示す認証システムにおける認証処理プログラムを示すフローチャートであって、（ａ）は被認証側となる認証コード生成装置で実行される部分、（ｂ）は認証側となる認証サーバで実行される部分、
図４は重複禁止処理におけるオーバーフロー対処法の二例を示す図である。
【００１６】
この認証システムは、図２に示すように、インターネット等の通信ネットワーク１に接続されたパーソナルコンピュータ等の端末装置２と、この端末装置２にデータを送信しうる認証コード生成装置１０と、通信ネットワーク１に接続された認証サーバ２０とから構成されている。
【００１７】
そして、認証コード生成装置１０は不揮発性の固定値メモリー１１、不揮発性のデータメモリー１２、加算器１３、乱数発生器１５、暗号器１６およびＯＴＰ出力部１７を具備しており、固定値メモリー１１には所定ビット（例えば、６４ビット）のＩＤコードＩＤＣＤと４個の乱数ＣＤ０〜ＣＤ３が読み取り自在に格納されているとともに、データメモリー１２には所定ビット（例えば、６４ビット）の重複禁止データＯＶＬＰが読み取り書き込み自在に格納されている。ここで、乱数ＣＤ０〜ＣＤ３は固定でもよく、必要に応じて変更しうる単数または複数のものでもよい。
【００１８】
また、認証サーバ２０は不揮発性の固定値メモリー２１、不揮発性のデータメモリー２２、第１比較器２３、第２比較器２４、第３比較器２５、暗号器２６、ＯＴＰ入力部２７、検証部２８および結果出力部２９を具備しており、固定値メモリー２１には所定ビット（例えば、６４ビット）のＩＤコードＩＤＣＤと４個の乱数ＣＤ０〜ＣＤ３が読み取り自在に格納されているとともに、データメモリー２２には所定ビット（例えば、６４ビット）の重複禁止データＯＶＬＰが読み取り書き込み自在に格納されている。なお、これらのＩＤコードＩＤＣＤ、乱数ＣＤ０〜ＣＤ３は、認証コード生成装置１０の固定値メモリー１１に格納されたＩＤコードＩＤＣＤ、乱数ＣＤ０〜ＣＤ３と同じものである。
【００１９】
認証システムは以上のような構成を有するので、認証コード生成装置１０と認証サーバ２０との間でデータ通信による認証処理を実行する際には、図３に示す認証コード生成プログラムＰＲＧ１および認証プログラムＰＲＧ２に基づいて次の手順で行われる。
【００２０】
すなわち、まず認証コード生成装置１０において、データメモリー１２から重複禁止データＯＶＬＰ＿０を読み出すとともに（認証コード生成プログラムＰＲＧ１のステップＳ１）、所定ビット（例えば、８ビット）の乱数ＲＮＤ１を乱数発生器１５で生成し（認証コード生成プログラムＰＲＧ１のステップＳ２）、これら重複禁止データＯＶＬＰ＿０、乱数ＲＮＤ１を加算器１３で足し合わせて重複禁止データＯＶＬＰを新たに生成する（認証コード生成プログラムＰＲＧ１のステップＳ３）。そして、この重複禁止データＯＶＬＰをＯＴＰ出力部に入力するとともに、第２暗号用鍵ＣＮＴとして暗号器に入力し、さらに次回の重複禁止データＯＶＬＰとして利用できるようにメモリー２に入力して重ね書きする。
【００２１】
なお、乱数ＲＮＤ１の加算によって重複禁止データＯＶＬＰを得るときに重複禁止データＯＶＬＰがプラス側へオーバフローすることがあるが、この場合は、図４（ａ）に示すように、重複禁止データＯＶＬＰのマイナス側への移動（例えば、重複禁止データＯＶＬＰが６４ビットのときはＯＶＬＰ−ＦＦＦ〜ＦＦＦｈ）を行うことにより、重複禁止データＯＶＬＰのオーバフローに対処することができる。
【００２２】
一方、固定値メモリー１１からＩＤコードＩＤＣＤを読み出し、このＩＤコードＩＤＣＤをＯＴＰ出力部１７に入力するとともに、第１暗号用鍵ＫＥＹとして暗号器１６に入力する。さらに、固定値メモリー１１から４個の乱数ＣＤ０〜ＣＤ３を読み出して暗号器１６に入力する（認証コード生成プログラムＰＲＧ１のステップＳ４）。また、所定ビット（例えば、８ビット）の認証用乱数データＲＮＤ２を乱数発生器１５で生成し、この認証用乱数データＲＮＤ２をＯＴＰ出力部１７に入力するとともに、暗号用ブロックデータＢＳとして暗号器１６に入力する（認証コード生成プログラムＰＲＧ１のステップＳ５）。そして、このブロックデータＢＳを第１暗号用鍵ＫＥＹ、第２暗号用鍵ＣＮＴおよび乱数ＣＤ０〜ＣＤ３を用いて暗号化し、その暗号化データＣＲＮＤ２をＯＴＰ出力部１７に入力する（認証コード生成プログラムＰＲＧ１のステップＳ６）。
【００２３】
その後、これらＩＤコードＩＤＣＤ、重複禁止データＯＶＬＰ、認証用乱数データＲＮＤ２および暗号化データＣＲＮＤ２をＯＴＰ出力部１７でパラレルデータからシリアルデータに変換した後、端末装置２を介してネットワーク１経由で認証サーバ２０に転送する（認証コード生成プログラムＰＲＧ１のステップＳ７）。
【００２４】
このようにして、ＩＤコードＩＤＣＤ、重複禁止データＯＶＬＰ、認証用乱数データＲＮＤ２および暗号化データＣＲＮＤ２が認証コード生成装置１０から認証サーバ２０にシリアルデータの形で転送されると、認証サーバ２０では、このシリアルデータをＯＴＰ入力部２７で受けて元のパラレルデータに変換した後（認証プログラムＰＲＧ２のステップＳ１）、以下に述べるとおり、３種類の検証を行う。
【００２５】
まず、ＩＤコードに関する検証を行うべく、ＯＴＰ入力部２７からＩＤコードＩＤＣＤを読み出して第２比較器２４に入力するとともに、固定値メモリー２１からＩＤコードＩＤＣＤを読み出して第２比較器２４に入力し（認証プログラムＰＲＧ２のステップＳ２）、両者を比較して一致するか否かを判定する（認証プログラムＰＲＧ２のステップＳ３）。その結果、両者が一致するときは、正常であると判断してその比較データＭＡＴＣＨを検証部２８に入力し、両者が一致しないときは、正常でないと判断して認証処理を中止する。
【００２６】
また、重複禁止データに関する検証を行うべく、ＯＴＰ入力部２７から重複禁止データＯＶＬＰを読み出して第１比較器２３に入力するとともに、データメモリー２２から前回の重複禁止データＯＶＬＰ＿１を読み出して第１比較器２３に入力し（認証プログラムＰＲＧ２のステップＳ４）、両者を比較して前者が後者より大きいか否かを判定する（認証プログラムＰＲＧ２のステップＳ５）。その結果、前者が後者より大きいときは、正常であると判断してその比較データＯＶＬＡＰを検証部２８に入力し、前者が後者より大きくないときは、正常でないと判断して認証処理を中止する。
【００２７】
さらに、乱数データに関する検証を行うべく、ＯＴＰ入力部２７から認証用乱数データＲＮＤ２、ＩＤコードＩＤＣＤおよび重複禁止データＯＶＬＰを読み出し、それぞれ暗号用ブロックデータＢＳ、第１暗号用鍵ＫＥＹおよび第２暗号用鍵ＣＮＴとして暗号器２６に入力するとともに、固定値メモリー２１から４個の乱数ＣＤ０〜ＣＤ３を読み出して暗号器２６に入力した後、この暗号用ブロックデータＢＳを第１暗号用鍵ＫＥＹ、第２暗号用鍵ＣＮＴおよび乱数ＣＤ０〜ＣＤ３を用いて暗号化し、その暗号化データＣＲＮＤ２Ｌを第３比較器２５に入力する（認証プログラムＰＲＧ２のステップＳ６）。他方、ＯＴＰ入力部２７から暗号化データＣＲＮＤ２を読み出して第３比較器２５に入力する。そして、両者を比較して一致するか否かを判定し（認証プログラムＰＲＧ２のステップＳ７）、両者が一致するときは、正常であると判断してその比較データＡＴＴＥＳを検証部２８に入力し、両者が一致しないときは、正常でないと判断して認証処理を中止する。
【００２８】
そして、検証部２８では、これら３種類の比較データＭＡＴＣＨ、ＯＶＬＡＰ、ＡＴＴＥＳを受信すると、すべての検証において正常であると判断し、今回の重複禁止データＯＶＬＰをデータメモリー２２に重ね書きするとともに、結果出力部２９に検証データを出力し（認証プログラムＰＲＧ２のステップＳ８）、この検証データを受けて結果出力部２９は所定の処理を実行する（認証プログラムＰＲＧ２のステップＳ９）。ここで、認証処理が終了する。
【００２９】
このように、認証コード生成装置１０でブロックデータＢＳを暗号化するときにはＩＤコードＩＤＣＤをも組み込むので、その他の組込データ、つまり第２暗号用鍵ＣＮＴおよび乱数ＣＤ０〜ＣＤ３が同じでも暗号化データＣＲＮＤ２は異なることになる。また、認証サーバ２０で検証するときには３重のセキュリティーチェックが実施され、３種類の検証のうち１種類でもパスしないものがあれば認証に失敗する。これらの結果、第三者による不正な解読が困難となり、セキュリティーレベルが向上する。
【００３０】
しかも、パスワード生成時のパラメータとなるカウンタ値を許容範囲内の乱数値に基づいて進ませる従来のワンタイムパスワード方式と違って、多数のパスワード生成・比較作業を要するという問題が発生せず、また、パスワードに時刻データを付加する従来のワンタイムパスワード方式と異なり、時計機能を具備していない装置内でも使用することができる。
【００３１】
＜第２の実施形態＞
上述した第１の実施形態においては、認証サーバ２０で乱数データに関する検証を行うときに、ＯＴＰ入力部２７からの認証用乱数データＲＮＤ２を暗号器２６で暗号化した暗号化データＣＲＮＤ２Ｌと、ＯＴＰ入力部２７からの暗号化データＣＲＮＤ２とを第３比較器２５で比較する場合について説明したが、図５に示すように、暗号器２６の代わりに復号器３０を認証サーバ２０に設けておき、ＯＴＰ入力部２７からの暗号化データＣＲＮＤ２をこの復号器３０で復号し、これをＯＴＰ入力部２７からの認証用乱数データＲＮＤ２と比較するようにしてもよい。
【００３２】
＜第３の実施形態＞
上述した第１の実施形態においては、認証コード生成装置１０で重複禁止データＯＶＬＰを新たに算出するのに加算器１３で重複禁止データＯＶＬＰ＿０に乱数ＲＮＤ１を足す演算方法を採用した場合について説明したが、図６に示すように、加算器１３の代わりに減算器１４を認証コード生成装置１０に設けておき、重複禁止データＯＶＬＰを新たに算出するとき減算器１４で重複禁止データＯＶＬＰ＿０から乱数ＲＮＤ１を引くようにしても構わない。この場合、認証サーバ２０で重複禁止データに関する検証を行う際に、ＯＴＰ入力部２７から読み出した重複禁止データＯＶＬＰとデータメモリー２２から読み出した前回の重複禁止データＯＶＬＰ＿１とを比較するとき、前者が後者より小さいか否かを判定し、前者が後者より小さいときは、正常であると判断してその比較データＯＶＬＡＰを検証部２８に入力し、前者が後者より小さくないときは、正常でないと判断して認証処理を中止することになる。
【００３３】
同様に、上述した第２の実施形態において、加算の代わりに減算によって重複禁止データＯＶＬＰを新たに算出することも可能である。
【００３４】
なお、乱数ＲＮＤ１の減算によって重複禁止データＯＶＬＰを得るときに重複禁止データＯＶＬＰがマイナス側へオーバフローすることがあるが、この場合は、図４（ｂ）に示すように、重複禁止データＯＶＬＰのプラス側への移動（例えば、重複禁止データＯＶＬＰが６４ビットのときはＯＶＬＰ＋ＦＦＦ〜ＦＦＦｈ）を行うことにより、重複禁止データＯＶＬＰのオーバフローに対処することができる。
【００３５】
＜第４の実施形態＞
上述した第１〜３の実施形態においては、１個の認証コード生成装置１０と１個の認証サーバ２０とが１対１で対応する場合について説明したが、複数個の認証コード生成装置１０と１個の認証サーバ２０とを多対１で対応させたり、１個の認証コード生成装置１０と複数個の認証サーバ２０とを１対多で対応させたり、複数個の認証コード生成装置１０と複数個の認証サーバ２０とを多対多で対応させたりすることも可能である。
【００３６】
以下、第４の実施形態として、複数個の認証コード生成装置１０と１個の認証サーバ２０とが多対１で対応する場合について説明するが、それ以外の場合（１対多、多対多）についても同様である。
図７は本発明に係る認証方法の第４の実施形態を示すブロック図、
図８は図７に示す認証システムにおける認証処理プログラムを示すフローチャートであって、（ａ）は被認証側となる認証コード生成装置で実行される部分、（ｂ）は認証側となる認証サーバで実行される部分である。
【００３７】
この認証システムは、図７に示すように、インターネット等の通信ネットワーク１に接続された複数個（図７では３個）のパーソナルコンピュータ等の端末装置２と、これらの端末装置２にデータを送信しうる同数個（図７では３個）の認証コード生成装置１０と、通信ネットワーク１に接続された認証サーバ２０とから構成されている。
【００３８】
そして、各認証コード生成装置１０は不揮発性の固定値メモリー１１、不揮発性のデータメモリー１２、加算器１３、乱数発生器１５、暗号器１６およびＯＴＰ出力部１７を具備しており、固定値メモリー１１には所定ビット（例えば、６４ビット）のＩＤコードＩＤＣＤと４個の乱数ＣＤ０〜ＣＤ３が読み取り自在に格納されているとともに、データメモリー１２には所定ビット（例えば、６４ビット）の重複禁止データＯＶＬＰが読み取り書き込み自在に格納されている。ここで、乱数ＣＤ０〜ＣＤ３は固定でもよく、必要に応じて変更しうる単数または複数のものでもよい。
【００３９】
また、認証サーバ２０は不揮発性の固定値メモリー２１、ＩＤコードテーブル３１、重複禁止データテーブル３２、第１比較器２３、第２比較器２４、第３比較器２５、暗号器２６、ＯＴＰ入力部２７、検証部２８、結果出力部２９およびサーチ制御部３４を具備しており、固定値メモリー２１には４個の乱数ＣＤ０〜ＣＤ３が読み取り自在に格納されている。また、ＩＤコードテーブル３１には所定ビット（例えば、６４ビット）のＩＤコードＩＤＣＤがすべての認証コード生成装置１０に対応した形で読み取り自在に格納されており、重複禁止データテーブル３２には所定ビット（例えば、６４ビット）の重複禁止データＯＶＬＰがすべての認証コード生成装置１０に対応した形で読み取り書き込み自在に格納されている。なお、これらのＩＤコードＩＤＣＤ、乱数ＣＤ０〜ＣＤ３は、それぞれの認証コード生成装置１０の固定値メモリー１１に格納されたＩＤコードＩＤＣＤ、乱数ＣＤ０〜ＣＤ３と同じものである。
【００４０】
認証システムは以上のような構成を有するので、任意の認証コード生成装置１０と認証サーバ２０との間でデータ通信による認証処理を実行する際には、図８に示す認証コード生成プログラムＰＲＧ３および認証プログラムＰＲＧ４に基づいて次の手順で行われる。
【００４１】
まず、その認証コード生成装置１０において、データメモリー１２から重複禁止データＯＶＬＰ＿０を読み出すとともに（認証コード生成プログラムＰＲＧ３のステップＳ１）、所定ビット（例えば、８ビット）の乱数ＲＮＤ１を乱数発生器１５で生成し（認証コード生成プログラムＰＲＧ３のステップＳ２）、これら重複禁止データＯＶＬＰ＿０、乱数ＲＮＤ１を加算器１３で足し合わせて重複禁止データＯＶＬＰを新たに生成する（認証コード生成プログラムＰＲＧ３のステップＳ３）。そして、この重複禁止データＯＶＬＰをＯＴＰ出力部に入力するとともに、第２暗号用鍵ＣＮＴとして暗号器に入力し、さらに次回の重複禁止データＯＶＬＰとして利用できるようにメモリー２に入力して重ね書きする。
【００４２】
なお、乱数ＲＮＤ１の加算によって重複禁止データＯＶＬＰを得るときに重複禁止データＯＶＬＰがプラス側へオーバフローすることがあるが、この場合は、図４（ａ）に示すように、重複禁止データＯＶＬＰのマイナス側への移動（例えば、重複禁止データＯＶＬＰが６４ビットのときはＯＶＬＰ−ＦＦＦ〜ＦＦＦｈ）を行うことにより、重複禁止データＯＶＬＰのオーバフローに対処することができる。
【００４３】
一方、固定値メモリー１１からＩＤコードＩＤＣＤを読み出し、このＩＤコードＩＤＣＤをＯＴＰ出力部１７に入力するとともに、第１暗号用鍵ＫＥＹとして暗号器１６に入力する。さらに、固定値メモリー１１から４個の乱数ＣＤ０〜ＣＤ３を読み出して暗号器１６に入力する（認証コード生成プログラムＰＲＧ３のステップＳ４）。また、所定ビット（例えば、８ビット）の認証用乱数データＲＮＤ２を乱数発生器１５で生成し、この認証用乱数データＲＮＤ２をＯＴＰ出力部１７に入力するとともに、暗号用ブロックデータＢＳとして暗号器１６に入力する（認証コード生成プログラムＰＲＧ３のステップＳ５）。そして、このブロックデータＢＳを第１暗号用鍵ＫＥＹ、第２暗号用鍵ＣＮＴおよび乱数ＣＤ０〜ＣＤ３を用いて暗号化し、その暗号化データＣＲＮＤ２をＯＴＰ出力部１７に入力する（認証コード生成プログラムＰＲＧ３のステップＳ６）。
【００４４】
その後、これらＩＤコードＩＤＣＤ、重複禁止データＯＶＬＰ、認証用乱数データＲＮＤ２および暗号化データＣＲＮＤ２をＯＴＰ出力部１７でパラレルデータからシリアルデータに変換した後、端末装置２を介してネットワーク１経由で認証サーバ２０に転送する（認証コード生成プログラムＰＲＧ３のステップＳ７）。
【００４５】
このようにして、ＩＤコードＩＤＣＤ、重複禁止データＯＶＬＰ、認証用乱数データＲＮＤ２および暗号化データＣＲＮＤ２が認証コード生成装置１０から認証サーバ２０にシリアルデータの形で転送されると、認証サーバ２０では、このシリアルデータをＯＴＰ入力部２７で受けて元のパラレルデータに変換した後（認証プログラムＰＲＧ４のステップＳ１）、以下に述べるとおり、３種類の検証を行う。
【００４６】
まず、ＩＤコードに関する検証を行うべく、ＯＴＰ入力部２７からＩＤコードＩＤＣＤを読み出して第２比較器２４に入力する。一方、サーチ制御部３４はサーチ回数が所定の最大値に達するまでＩＤコードＩＤＣＤの照会を実行する。すなわち、サーチアドレスを初期化した後（認証プログラムＰＲＧ４のステップＳ３）、サーチアドレスに「１」を加えたアドレスにあるＩＤコードＩＤＣＤをＩＤコードテーブル３１から読み出して第２比較器２４に入力する（認証プログラムＰＲＧ４のステップＳ４）。そして、両者を比較して一致するか否かを判定し（認証プログラムＰＲＧ４のステップＳ５）、両者が一致するときは、正常であると判断してその比較データＭＡＴＣＨを検証部２８に入力する。また、両者が一致しないときは、サーチ回数が最大値に達したか否かを判定し（認証プログラムＰＲＧ４のステップＳ６）、サーチ回数が最大値に達していなければ、サーチアドレスに「１」を加えた上でＩＤコードＩＤＣＤの比較を同様に行い、サーチ回数が最大値に達していれば、正常でないと判断して認証処理を中止する。
【００４７】
また、重複禁止データに関する検証を行うべく、ＯＴＰ入力部２７から重複禁止データＯＶＬＰを読み出して第１比較器２３に入力するとともに、ＩＤコードＩＤＣＤが一致したサーチアドレスに対応した前回の重複禁止データＯＶＬＰ＿１を重複禁止データテーブル３２から読み出して第１比較器２３に入力し（認証プログラムＰＲＧ４のステップＳ７）、両者を比較して前者が後者より大きいか否かを判定する（認証プログラムＰＲＧ４のステップＳ８）。その結果、前者が後者より大きいときは、正常であると判断してその比較データＯＶＬＡＰを検証部２８に入力し、前者が後者より大きくないときは、正常でないと判断して認証処理を中止する。
【００４８】
さらに、乱数データに関する検証を行うべく、ＯＴＰ入力部２７から認証用乱数データＲＮＤ２、ＩＤコードＩＤＣＤおよび重複禁止データＯＶＬＰを読み出し、それぞれ暗号用ブロックデータＢＳ、第１暗号用鍵ＫＥＹおよび第２暗号用鍵ＣＮＴとして暗号器２６に入力するとともに、固定値メモリー２１から４個の乱数ＣＤ０〜ＣＤ３を読み出して暗号器２６に入力した後（認証プログラムＰＲＧ４のステップＳ２）、この暗号用ブロックデータＢＳを第１暗号用鍵ＫＥＹ、第２暗号用鍵ＣＮＴおよび乱数ＣＤ０〜ＣＤ３を用いて暗号化し、その暗号化データＣＲＮＤ２Ｌを第３比較器２５に入力する（認証プログラムＰＲＧ４のステップＳ９）。他方、ＯＴＰ入力部２７から暗号化データＣＲＮＤ２を読み出して第３比較器２５に入力する。そして、両者を比較して一致するか否かを判定し（認証プログラムＰＲＧ４のステップＳ１０）、両者が一致するときは、正常であると判断してその比較データＡＴＴＥＳを検証部２８に入力し、両者が一致しないときは、正常でないと判断して認証処理を中止する。
【００４９】
そして、検証部２８では、これら３種類の比較データＭＡＴＣＨ、ＯＶＬＡＰ、ＡＴＴＥＳを受信すると、すべての検証において正常であると判断し、今回の重複禁止データＯＶＬＰを重複禁止データテーブル３２に重ね書きするとともに、結果出力部２９に検証データを出力し（認証プログラムＰＲＧ４のステップＳ１１）、この検証データを受けて結果出力部２９は所定の処理を実行する（認証プログラムＰＲＧ４のステップＳ１２）。ここで、認証処理が終了する。
【００５０】
このように、認証コード生成装置１０でブロックデータＢＳを暗号化するときにはＩＤコードＩＤＣＤをも組み込むので、その他の組込データ、つまり第２暗号用鍵ＣＮＴおよび乱数ＣＤ０〜ＣＤ３が同じでも暗号化データＣＲＮＤ２は異なることになる。また、認証サーバ２０で検証するときには３重のセキュリティーチェックが実施され、３種類の検証のうち１種類でもパスしないものがあれば認証に失敗する。これらの結果、第三者による不正な解読が困難となり、セキュリティーレベルが向上する。
【００５１】
しかも、パスワード生成時のパラメータとなるカウンタ値を許容範囲内の乱数値に基づいて進ませる従来のワンタイムパスワード方式と違って、多数のパスワード生成・比較作業を要するという問題が発生せず、また、パスワードに時刻データを付加する従来のワンタイムパスワード方式と異なり、時計機能を具備していない装置内でも使用することができる。
【００５２】
＜第５の実施形態＞
上述した各実施形態においては、被認証装置として認証コード生成装置１０を採用するとともに、認証装置として認証サーバ２０を採用した場合について説明したが、鍵および錠をそれぞれ被認証装置および認証装置とすることも可能である。以下、第５の実施形態として、被認証装置として鍵を採用すると同時に、認証装置として錠を採用した場合について説明する。
図９は本発明に係る認証方法の第５の実施形態を示すブロック図、
図１０は図９に示す認証システムにおける認証処理プログラムを示すフローチャートであって、（ａ）は被認証側となる鍵で実行される部分、（ｂ）は認証側となる錠で実行される部分である。
【００５３】
この認証システムは、図９に示すように、錠５０と、この錠５０に赤外線通信などでデータを送信しうる鍵４０とから構成されている。
【００５４】
そして、鍵４０は不揮発性の固定値メモリー１１、不揮発性のデータメモリー１２、加算器１３、乱数発生器１５、暗号器１６および送信部１９を具備しており、固定値メモリー１１には所定ビット（例えば、６４ビット）のＩＤコードＩＤＣＤと４個の乱数ＣＤ０〜ＣＤ３が読み取り自在に格納されているとともに、データメモリー１２には所定ビット（例えば、６４ビット）の重複禁止データＯＶＬＰが読み取り書き込み自在に格納されている。ここで、乱数ＣＤ０〜ＣＤ３は固定でもよく、必要に応じて変更しうる単数または複数のものでもよい。
【００５５】
また、錠５０は不揮発性の固定値メモリー２１、不揮発性のデータメモリー２２、第１比較器２３、第２比較器２４、第３比較器２５、暗号器２６、受信部３３、検証部２８および開閉制御部３５を具備しており、固定値メモリー２１には所定ビット（例えば、６４ビット）のＩＤコードＩＤＣＤと４個の乱数ＣＤ０〜ＣＤ３が読み取り自在に格納されているとともに、データメモリー２２には所定ビット（例えば、６４ビット）の重複禁止データＯＶＬＰが読み取り書き込み自在に格納されている。なお、これらのＩＤコードＩＤＣＤ、乱数ＣＤ０〜ＣＤ３は、鍵４０の固定値メモリー１１に格納されたＩＤコードＩＤＣＤ、乱数ＣＤ０〜ＣＤ３と同じものである。
【００５６】
認証システムは以上のような構成を有するので、鍵４０と錠５０との間でデータ通信による認証処理を実行する際には、図１０に示す認証コード生成プログラムＰＲＧ５および認証プログラムＰＲＧ６に基づいて次の手順で行われる。
【００５７】
すなわち、まず鍵４０において、データメモリー１２から重複禁止データＯＶＬＰ＿０を読み出すとともに（認証コード生成プログラムＰＲＧ５のステップＳ１）、所定ビット（例えば、８ビット）の乱数ＲＮＤ１を乱数発生器１５で生成し（認証コード生成プログラムＰＲＧ５のステップＳ２）、これら重複禁止データＯＶＬＰ＿０、乱数ＲＮＤ１を加算器１３で足し合わせて重複禁止データＯＶＬＰを新たに生成する（認証コード生成プログラムＰＲＧ５のステップＳ３）。そして、この重複禁止データＯＶＬＰを送信部１９に入力するとともに、第２暗号用鍵ＣＮＴとして暗号器１６に入力し、さらに次回の重複禁止データＯＶＬＰとして利用できるようにデータメモリー１２に入力して重ね書きする。
【００５８】
なお、乱数ＲＮＤ１の加算によって重複禁止データＯＶＬＰを得るときに重複禁止データＯＶＬＰがプラス側へオーバフローすることがあるが、この場合は、図４（ａ）に示すように、重複禁止データＯＶＬＰのマイナス側への移動（例えば、重複禁止データＯＶＬＰが６４ビットのときはＯＶＬＰ−ＦＦＦ〜ＦＦＦｈ）を行うことにより、重複禁止データＯＶＬＰのオーバフローに対処することができる。
【００５９】
一方、固定値メモリー１１からＩＤコードＩＤＣＤを読み出し、このＩＤコードＩＤＣＤを送信部１９に入力するとともに、第１暗号用鍵ＫＥＹとして暗号器１６に入力する。さらに、固定値メモリー１１から４個の乱数ＣＤ０〜ＣＤ３を読み出して暗号器１６に入力する（認証コード生成プログラムＰＲＧ５のステップＳ４）。また、所定ビット（例えば、８ビット）の認証用乱数データＲＮＤ２を乱数発生器１５で生成し、この認証用乱数データＲＮＤ２を送信部１９に入力するとともに、暗号用ブロックデータＢＳとして暗号器１６に入力する（認証コード生成プログラムＰＲＧ５のステップＳ５）。そして、このブロックデータＢＳを第１暗号用鍵ＫＥＹ、第２暗号用鍵ＣＮＴおよび乱数ＣＤ０〜ＣＤ３を用いて暗号化し、その暗号化データＣＲＮＤ２を送信部１９に入力する（認証コード生成プログラムＰＲＧ５のステップＳ６）。
【００６０】
その後、これらＩＤコードＩＤＣＤ、重複禁止データＯＶＬＰ、認証用乱数データＲＮＤ２および暗号化データＣＲＮＤ２を送信部１９でパラレルデータからシリアルデータに変換した後、錠５０に転送する（認証コード生成プログラムＰＲＧ５のステップＳ７）。
【００６１】
このようにして、ＩＤコードＩＤＣＤ、重複禁止データＯＶＬＰ、認証用乱数データＲＮＤ２および暗号化データＣＲＮＤ２が鍵４０から錠５０にシリアルデータの形で転送されると、錠５０では、このシリアルデータを受信部３３で受けて元のパラレルデータに変換した後（認証プログラムＰＲＧ６のステップＳ１）、以下に述べるとおり、３種類の検証を行う。
【００６２】
まず、ＩＤコードに関する検証を行うべく、受信部３３からＩＤコードＩＤＣＤを読み出して第２比較器２４に入力するとともに、固定値メモリー２１からＩＤコードＩＤＣＤを読み出して第２比較器２４に入力し（認証プログラムＰＲＧ６のステップＳ２）、両者を比較して一致するか否かを判定する（認証プログラムＰＲＧ６のステップＳ３）。その結果、両者が一致するときは、正常であると判断してその比較データＭＡＴＣＨを検証部２８に入力し、両者が一致しないときは、正常でないと判断して認証処理を中止する。
【００６３】
また、重複禁止データに関する検証を行うべく、受信部３３から重複禁止データＯＶＬＰを読み出して第１比較器２３に入力するとともに、データメモリー２２から前回の重複禁止データＯＶＬＰ＿１を読み出して第１比較器２３に入力し（認証プログラムＰＲＧ６のステップＳ４）、両者を比較して前者が後者より大きいか否かを判定する（認証プログラムＰＲＧ６のステップＳ５）。その結果、前者が後者より大きいときは、正常であると判断してその比較データＯＶＬＡＰを検証部２８に入力し、前者が後者より大きくないときは、正常でないと判断して認証処理を中止する。
【００６４】
さらに、乱数データに関する検証を行うべく、受信部３３から認証用乱数データＲＮＤ２、ＩＤコードＩＤＣＤおよび重複禁止データＯＶＬＰを読み出し、それぞれ暗号用ブロックデータＢＳ、第１暗号用鍵ＫＥＹおよび第２暗号用鍵ＣＮＴとして暗号器２６に入力するとともに、固定値メモリー２１から４個の乱数ＣＤ０〜ＣＤ３を読み出して暗号器２６に入力した後、この暗号用ブロックデータＢＳを第１暗号用鍵ＫＥＹ、第２暗号用鍵ＣＮＴおよび乱数ＣＤ０〜ＣＤ３を用いて暗号化し、その暗号化データＣＲＮＤ２Ｌを第３比較器２５に入力する（認証プログラムＰＲＧ６のステップＳ６）。他方、受信部３３から暗号化データＣＲＮＤ２を読み出して第３比較器２５に入力する。そして、両者を比較して一致するか否かを判定し（認証プログラムＰＲＧ６のステップＳ７）、両者が一致するときは、正常であると判断してその比較データＡＴＴＥＳを検証部２８に入力し、両者が一致しないときは、正常でないと判断して認証処理を中止する。
【００６５】
そして、検証部２８では、これら３種類の比較データＭＡＴＣＨ、ＯＶＬＡＰ、ＡＴＴＥＳを受信すると、すべての検証において正常であると判断し、今回の重複禁止データＯＶＬＰをデータメモリー２２に重ね書きするとともに、開閉制御部３５に検証データを出力し（認証プログラムＰＲＧ６のステップＳ８）、この検証データを受けて開閉制御部３５は所定の処理（例えば、自動車用ドアの開錠）を実行する（認証プログラムＰＲＧ６のステップＳ９）。ここで、認証処理が終了する。
【００６６】
このように、鍵４０でブロックデータＢＳを暗号化するときにはＩＤコードＩＤＣＤをも組み込むので、その他の組込データ、つまり第２暗号用鍵ＣＮＴおよび乱数ＣＤ０〜ＣＤ３が同じでも暗号化データＣＲＮＤ２は異なることになる。また、錠５０で検証するときには３重のセキュリティーチェックが実施され、３種類の検証のうち１種類でもパスしないものがあれば認証に失敗する。これらの結果、第三者による不正な解読が困難となり、セキュリティーレベルが向上する。
【００６７】
しかも、パスワード生成時のパラメータとなるカウンタ値を許容範囲内の乱数値に基づいて進ませる従来のワンタイムパスワード方式と違って、多数のパスワード生成・比較作業を要するという問題が発生せず、また、パスワードに時刻データを付加する従来のワンタイムパスワード方式と異なり、時計機能を具備していない装置内でも使用することができる。
【００６８】
＜第６の実施形態＞
上述した第５の実施形態においては、錠５０で乱数データに関する検証を行うときに、受信部３３からの認証用乱数データＲＮＤ２を暗号器２６で暗号化した暗号化データＣＲＮＤ２Ｌと、受信部３３からの暗号化データＣＲＮＤ２とを第３比較器２５で比較する場合について説明したが、図１１に示すように、暗号器２６の代わりに復号器３０を錠５０に設けておき、受信部３３からの暗号化データＣＲＮＤ２をこの復号器３０で復号し、これを受信部３３からの認証用乱数データＲＮＤ２と比較するようにしてもよい。
【００６９】
＜第７の実施形態＞
上述した第５の実施形態においては、鍵４０で重複禁止データＯＶＬＰを新たに算出するのに加算器１３で重複禁止データＯＶＬＰ＿０に乱数ＲＮＤ１を足す演算方法を採用した場合について説明したが、図１２に示すように、加算器１３の代わりに減算器１４を鍵４０に設けておき、重複禁止データＯＶＬＰを新たに算出するとき減算器１４で重複禁止データＯＶＬＰ＿０から乱数ＲＮＤ１を引くようにしても構わない。この場合、錠５０で重複禁止データに関する検証を行う際に、受信部３３から読み出した重複禁止データＯＶＬＰとデータメモリー２２から読み出した前回の重複禁止データＯＶＬＰ＿１とを比較するとき、前者が後者より小さいか否かを判定し、前者が後者より小さいときは、正常であると判断してその比較データＯＶＬＡＰを検証部２８に入力し、前者が後者より小さくないときは、正常でないと判断して認証処理を中止することになる。
【００７０】
同様に、上述した第６の実施形態において、加算の代わりに減算によって重複禁止データＯＶＬＰを新たに算出することも可能である。
【００７１】
なお、乱数ＲＮＤ１の減算によって重複禁止データＯＶＬＰを得るときに重複禁止データＯＶＬＰがマイナス側へオーバフローすることがあるが、この場合は、図４（ｂ）に示すように、重複禁止データＯＶＬＰのプラス側への移動（例えば、重複禁止データＯＶＬＰが６４ビットのときはＯＶＬＰ＋ＦＦＦ〜ＦＦＦｈ）を行うことにより、重複禁止データＯＶＬＰのオーバフローに対処することができる。
【００７２】
＜第８の実施形態＞
上述した第５〜７の実施形態においては、１個の鍵４０と１個の錠５０とが１対１で対応する場合について説明したが、複数個の鍵４０と１個の錠５０とを多対１で対応させたり、１個の鍵４０と複数個の錠５０とを１対多で対応させたり、複数個の鍵４０と複数個の錠５０とを多対多で対応させたりすることも可能である。
【００７３】
以下、第８の実施形態として、複数個の鍵４０と１個の錠５０とが多対１で対応する場合について説明するが、それ以外の場合（１対多、多対多）についても同様である。
図１３は本発明に係る認証方法の第８の実施形態を示すブロック図、
図１４は図１３に示す認証システムにおける認証処理プログラムを示すフローチャートであって、（ａ）は被認証側となる鍵で実行される部分、（ｂ）は認証側となる錠で実行される部分である。
【００７４】
この認証システムは、図１３に示すように、錠５０と、この錠５０に赤外線通信などでデータを送信しうる複数個（図１３では３個）の鍵４０とから構成されている。
【００７５】
そして、各鍵４０は不揮発性の固定値メモリー１１、不揮発性のデータメモリー１２、加算器１３、乱数発生器１５、暗号器１６および送信部１９を具備しており、固定値メモリー１１には所定ビット（例えば、６４ビット）のＩＤコードＩＤＣＤと４個の乱数ＣＤ０〜ＣＤ３が読み取り自在に格納されているとともに、データメモリー１２には所定ビット（例えば、６４ビット）の重複禁止データＯＶＬＰが読み取り書き込み自在に格納されている。ここで、乱数ＣＤ０〜ＣＤ３は固定でもよく、必要に応じて変更しうる単数または複数のものでもよい。
【００７６】
また、錠５０は不揮発性の固定値メモリー２１、ＩＤコードテーブル３１、重複禁止データテーブル３２、第１比較器２３、第２比較器２４、第３比較器２５、暗号器２６、受信部３３、検証部２８、開閉制御部３５およびサーチ制御部３４を具備しており、固定値メモリー２１には４個の乱数ＣＤ０〜ＣＤ３が読み取り自在に格納されている。また、ＩＤコードテーブル３１には所定ビット（例えば、６４ビット）のＩＤコードＩＤＣＤがすべての鍵４０に対応した形で読み取り自在に格納されており、重複禁止データテーブル３２には所定ビット（例えば、６４ビット）の重複禁止データＯＶＬＰがすべての鍵４０に対応した形で読み取り書き込み自在に格納されている。なお、これらのＩＤコードＩＤＣＤ、乱数ＣＤ０〜ＣＤ３は、それぞれの鍵４０の固定値メモリー１１に格納されたＩＤコードＩＤＣＤ、乱数ＣＤ０〜ＣＤ３と同じものである。
【００７７】
認証システムは以上のような構成を有するので、任意の鍵４０と錠５０との間でデータ通信による認証処理を実行する際には、図１４に示す認証コード生成プログラムＰＲＧ７および認証プログラムＰＲＧ８に基づいて次の手順で行われる。
【００７８】
まず、その鍵４０において、データメモリー１２から重複禁止データＯＶＬＰ＿０を読み出すとともに（認証コード生成プログラムＰＲＧ７のステップＳ１）、所定ビット（例えば、８ビット）の乱数ＲＮＤ１を乱数発生器１５で生成し（認証コード生成プログラムＰＲＧ７のステップＳ２）、これら重複禁止データＯＶＬＰ＿０、乱数ＲＮＤ１を加算器１３で足し合わせて重複禁止データＯＶＬＰを新たに生成する（認証コード生成プログラムＰＲＧ７のステップＳ３）。そして、この重複禁止データＯＶＬＰを送信部１９に入力するとともに、第２暗号用鍵ＣＮＴとして暗号器１６に入力し、さらに次回の重複禁止データＯＶＬＰとして利用できるようにデータメモリー１２に入力して重ね書きする。
【００７９】
なお、乱数ＲＮＤ１の加算によって重複禁止データＯＶＬＰを得るときに重複禁止データＯＶＬＰがプラス側へオーバフローすることがあるが、この場合は、図４（ａ）に示すように、重複禁止データＯＶＬＰのマイナス側への移動（例えば、重複禁止データＯＶＬＰが６４ビットのときはＯＶＬＰ−ＦＦＦ〜ＦＦＦｈ）を行うことにより、重複禁止データＯＶＬＰのオーバフローに対処することができる。
【００８０】
一方、固定値メモリー１１からＩＤコードＩＤＣＤを読み出し、このＩＤコードＩＤＣＤを送信部１９に入力するとともに、第１暗号用鍵ＫＥＹとして暗号器１６に入力する。さらに、固定値メモリー１１から４個の乱数ＣＤ０〜ＣＤ３を読み出して暗号器１６に入力する（認証コード生成プログラムＰＲＧ７のステップＳ４）。また、所定ビット（例えば、８ビット）の認証用乱数データＲＮＤ２を乱数発生器１５で生成し、この認証用乱数データＲＮＤ２を送信部１９に入力するとともに、暗号用ブロックデータＢＳとして暗号器１６に入力する（認証コード生成プログラムＰＲＧ７のステップＳ５）。そして、このブロックデータＢＳを第１暗号用鍵ＫＥＹ、第２暗号用鍵ＣＮＴおよび乱数ＣＤ０〜ＣＤ３を用いて暗号化し、その暗号化データＣＲＮＤ２を送信部１９に入力する（認証コード生成プログラムＰＲＧ７のステップＳ６）。
【００８１】
その後、これらＩＤコードＩＤＣＤ、重複禁止データＯＶＬＰ、認証用乱数データＲＮＤ２および暗号化データＣＲＮＤ２を送信部１９でパラレルデータからシリアルデータに変換した後、錠５０に転送する（認証コード生成プログラムＰＲＧ７のステップＳ７）。
【００８２】
このようにして、ＩＤコードＩＤＣＤ、重複禁止データＯＶＬＰ、認証用乱数データＲＮＤ２および暗号化データＣＲＮＤ２が鍵４０から錠５０にシリアルデータの形で転送されると、錠５０では、このシリアルデータを受信部３３で受けて元のパラレルデータに変換した後（認証プログラムＰＲＧ８のステップＳ１）、以下に述べるとおり、３種類の検証を行う。
【００８３】
まず、ＩＤコードに関する検証を行うべく、受信部３３からＩＤコードＩＤＣＤを読み出して第２比較器２４に入力する。一方、サーチ制御部３４はサーチ回数が所定の最大値に達するまでＩＤコードＩＤＣＤの照会を実行する。すなわち、サーチアドレスを初期化した後（認証プログラムＰＲＧ８のステップＳ３）、サーチアドレスに「１」を加えたアドレスにあるＩＤコードＩＤＣＤをＩＤコードテーブル３１から読み出して第２比較器２４に入力する（認証プログラムＰＲＧ８のステップＳ４）。そして、両者を比較して一致するか否かを判定し（認証プログラムＰＲＧ８のステップＳ５）、両者が一致するときは、正常であると判断してその比較データＭＡＴＣＨを検証部２８に入力する。また、両者が一致しないときは、サーチ回数が最大値に達したか否かを判定し（認証プログラムＰＲＧ８のステップＳ６）、サーチ回数が最大値に達していなければ、サーチアドレスに「１」を加えた上でＩＤコードＩＤＣＤの比較を同様に行い、サーチ回数が最大値に達していれば、正常でないと判断して認証処理を中止する。
【００８４】
また、重複禁止データに関する検証を行うべく、受信部３３から重複禁止データＯＶＬＰを読み出して第１比較器２３に入力するとともに、ＩＤコードＩＤＣＤが一致したサーチアドレスに対応した前回の重複禁止データＯＶＬＰ＿１を重複禁止データテーブル３２から読み出して第１比較器２３に入力し（認証プログラムＰＲＧ８のステップＳ７）、両者を比較して前者が後者より大きいか否かを判定する（認証プログラムＰＲＧ８のステップＳ８）。その結果、前者が後者より大きいときは、正常であると判断してその比較データＯＶＬＡＰを検証部２８に入力し、前者が後者より大きくないときは、正常でないと判断して認証処理を中止する。
【００８５】
さらに、乱数データに関する検証を行うべく、受信部３３から認証用乱数データＲＮＤ２、ＩＤコードＩＤＣＤおよび重複禁止データＯＶＬＰを読み出し、それぞれ暗号用ブロックデータＢＳ、第１暗号用鍵ＫＥＹおよび第２暗号用鍵ＣＮＴとして暗号器２６に入力するとともに、固定値メモリー２１から４個の乱数ＣＤ０〜ＣＤ３を読み出して暗号器２６に入力した後（認証プログラムＰＲＧ８のステップＳ２）、この暗号用ブロックデータＢＳを第１暗号用鍵ＫＥＹ、第２暗号用鍵ＣＮＴおよび乱数ＣＤ０〜ＣＤ３を用いて暗号化し、その暗号化データＣＲＮＤ２Ｌを第３比較器２５に入力する（認証プログラムＰＲＧ８のステップＳ９）。他方、受信部３３から暗号化データＣＲＮＤ２を読み出して第３比較器２５に入力する。そして、両者を比較して一致するか否かを判定し（認証プログラムＰＲＧ８のステップＳ１０）、両者が一致するときは、正常であると判断してその比較データＡＴＴＥＳを検証部２８に入力し、両者が一致しないときは、正常でないと判断して認証処理を中止する。
【００８６】
そして、検証部２８では、これら３種類の比較データＭＡＴＣＨ、ＯＶＬＡＰ、ＡＴＴＥＳを受信すると、すべての検証において正常であると判断し、今回の重複禁止データＯＶＬＰを重複禁止データテーブル３２に重ね書きするとともに、開閉制御部３５に検証データを出力し（認証プログラムＰＲＧ８のステップＳ１１）、この検証データを受けて開閉制御部３５は所定の処理を実行する（認証プログラムＰＲＧ８のステップＳ１２）。ここで、認証処理が終了する。
【００８７】
このように、鍵４０でブロックデータＢＳを暗号化するときにはＩＤコードＩＤＣＤをも組み込むので、その他の組込データ、つまり第２暗号用鍵ＣＮＴおよび乱数ＣＤ０〜ＣＤ３が同じでも暗号化データＣＲＮＤ２は異なることになる。また、錠５０で検証するときには３重のセキュリティーチェックが実施され、３種類の検証のうち１種類でもパスしないものがあれば認証に失敗する。これらの結果、第三者による不正な解読が困難となり、セキュリティーレベルが向上する。
【００８８】
しかも、パスワード生成時のパラメータとなるカウンタ値を許容範囲内の乱数値に基づいて進ませる従来のワンタイムパスワード方式と違って、多数のパスワード生成・比較作業を要するという問題が発生せず、また、パスワードに時刻データを付加する従来のワンタイムパスワード方式と異なり、時計機能を具備していない装置内でも使用することができる。
【００８９】
【発明の効果】
以上説明したように、本発明のうち請求項１、２に係る発明によれば、被認証装置で認証用乱数データを暗号化するときにＩＤコードが組み込まれ、その他の組込データが同じでも暗号化データが異なることに加えて、認証装置で検証するときに３重のセキュリティーチェックが実施され、３種類の検証のうち１種類でもパスしないものがあれば認証に失敗することから、従来のワンタイムパスワード方式に付随する不都合を伴うことなくセキュリティーレベルを高めることが可能な認証方法を提供することができる。
【図面の簡単な説明】
【図１】暗号・復号化の手順を示すブロック図である。
【図２】本発明に係る認証方法の第１の実施形態を示すブロック図である。
【図３】図２に示す認証システムにおける認証処理プログラムを示すフローチャートであって、（ａ）は被認証側となる認証コード生成装置で実行される部分、（ｂ）は認証側となる認証サーバで実行される部分である。
【図４】重複禁止処理におけるオーバーフロー対処法の二例を示す図である。
【図５】本発明に係る認証方法の第２の実施形態を示すブロック図である。
【図６】本発明に係る認証方法の第３の実施形態を示すブロック図である。
【図７】本発明に係る認証方法の第４の実施形態を示すブロック図である。
【図８】図７に示す認証システムにおける認証処理プログラムを示すフローチャートであって、（ａ）は被認証側となる認証コード生成装置で実行される部分、（ｂ）は認証側となる認証サーバで実行される部分である。
【図９】本発明に係る認証方法の第５の実施形態を示すブロック図である。
【図１０】図９に示す認証システムにおける認証処理プログラムを示すフローチャートであって、（ａ）は被認証側となる鍵で実行される部分、（ｂ）は認証側となる錠で実行される部分である。
【図１１】本発明に係る認証方法の第６の実施形態を示すブロック図である。
【図１２】本発明に係る認証方法の第７の実施形態を示すブロック図である。
【図１３】本発明に係る認証方法の第８の実施形態を示すブロック図である。
【図１４】図１３に示す認証システムにおける認証処理プログラムを示すフローチャートであって、（ａ）は被認証側となる鍵で実行される部分、（ｂ）は認証側となる錠で実行される部分である。
【符号の説明】
１０……認証コード生成装置（被認証装置）
１１……固定値メモリー
１５……乱数発生器
２０……認証サーバ（認証装置）
３１……ＩＤコードテーブル
３２……重複禁止データテーブル
４０……鍵（被認証装置）
５０……錠（認証装置）
ＩＤＣＤ……ＩＤコード
ＣＤ０〜ＣＤ３……乱数
ＯＶＬＰ＿０、ＯＶＬＰ……重複禁止データ
ＲＮＤ２……認証用乱数データ
ＣＲＮＤ２……暗号化データ
【図１】
2004120031.tif 000003
【図２】
2004120031.tif 000004
【図３】
2004120031.tif 000005
【図４】
2004120031.tif 000006
【図５】
2004120031.tif 000007
【図６】
2004120031.tif 000008
【図７】
2004120031.tif 000009
【図８】
2004120031.tif 000010
【図９】
2004120031.tif 000011
【図１０】
2004120031.tif 000012
【図１１】
2004120031.tif 000013
【図１２】
2004120031.tif 000014
【図１３】
2004120031.tif 000015
【図１４】
2004120031.tif 000016