(57)【要約】【課題】セキュアエリアを有しない情報処理装置であっても他の情報処理装置を低コストで安全に認証することができるようにする。【解決手段】  パーソナルコンピュータ７１は、チャンレジＣｋとレスポンスＲｋとの組み合わせがｎ通り格納されているリスト８１を保持する。パーソナルコンピュータ７１は、ｉ番目のチャレンジＣｉを選択してＩＣカード７２に送信する。ＩＣカード７２は、チャレンジＣｉを復号化し、算出値Ａｉを得る。ＩＣカード７２は、算出値Ａｉを暗号化し、暗号化された算出値Ａｉを、レスポンスＲとしてパーソナルコンピュータ７１に送信する。パーソナルコンピュータ７１は、ｉ番目のレスポンスＲｉをリスト８１から選択し、レスポンスＲとレスポンスＲｉとを比較する。レスポンスＲとレスポンスＲｉとが一致する場合、パーソナルコンピュータ７１は、ＩＣカード７２を認証する。本発明は、ＩＣタグに適用することができる。【選択図】図３
2011223495.tif 000002
【特許請求の範囲】
【請求項１】
認証対象のＩＣカードと共有する共通鍵を用いて、前記ＩＣカードが有する復号化アルゴリズムに対応する第1の暗号化アルゴリズムに従って、予め乱数が暗号化され、その結果得られる値をチャレンジとし、前記共通鍵を用いて、前記ＩＣカードが有する第２の暗号化アルゴリズムと同一の第３の暗号化アルゴリズムに従って、予め前記乱数が暗号化され、その結果得られる値をレスポンスとし、前記乱数を変更することで生成されたｎ通り（ｎは複数の整数値）の前記チャレンジと前記レスポンスとの組み合わせが格納されたリストを保持する保持手段と、
前記保持手段により保持されたリストの中から、１組の組み合わせを選択する選択手段と、
前記選択手段により選択された前記組み合せに含まれる前記チャレンジを送信する送信制御手段と、
前記ＩＣカードによって、前記送信制御手段から送信された前記チャレンジが受信され、前記共通鍵を用いて前記復号化アルゴリズムに従って復号化され、その結果得られる算出値が、前記共通鍵を用いて前記第２の暗号化アルゴリズムに従って暗号化され、その結果得られる値が前記レスポンスとして送信されてきた場合、前記レスポンスを受信する受信制御手段と、
前記受信制御手段に受信された前記レスポンスと、前記選択手段により選択された前記組み合せに含まれる前記レスポンスとが一致する場合、前記ＩＣカードを認証する認証手段と
を備える情報処理装置。
【請求項２】
前記リストに格納されるｎ通りの前記組み合わせの各々には、１乃至ｎの何れかの番号が付されており、
前記選択手段により所定の番号以上の前記組み合わせが選択された場合、ｎ番目に近づいてきたことを示す警告をユーザに提示する提示手段
をさらに備える請求項１に記載の情報処理装置。
【請求項３】
前記選択手段によりｎ通りの組み合わせのうちの最後の組み合わせが選択されるまでの間においては、前記認証手段により前記ＩＣカードが認証された場合に前記情報処理装置のログイン処理を実行し、前記選択手段によりｎ通りの組み合わせのうちの最後の組み合わせが選択された後においては、前記認証手段による前記ＩＣカードの認証を用いたログイン処理の実行を禁止し、その代わりに、アカウント名とパスワードを用いた認証処理を実行する
請求項２に記載の情報処理装置。
【請求項４】
所定のタイミングで、前記チャレンジと前記レスポンスとの前記組み合わせを生成する処理を実行する組み合わせ生成手段をさらに備え、
前記保持手段により保持される前記リストの少なくとも一部は、前記組み合わせ生成手段により前記組み合わせが生成される毎に更新される
請求項１に記載の情報処理装置。
【請求項５】
前記組み合わせ生成手段は、前記リストに含まれるｎ通りの前記組み合わせが前記選択手段によって選択されたとき、新たなｎ通りの前記組み合わせを生成し、
前記保持手段により保持される前記リストは、前記組み合わせ生成手段により生成された前記新たなｎ通りの組み合わせが格納された新たなリストに更新される
請求項４に記載の情報処理装置。
【請求項６】
前記組み合わせ生成手段は、前記認証手段が前記ＩＣカードを認証する毎に、１以上の前記組み合わせを生成し、
前記保持手段により保持される前記リストに、前記組み合わせ生成手段により生成された前記１以上の前記組み合わせが追加されることによって、前記リストが更新される
請求項４に記載の情報処理装置。
【請求項７】
前記選択手段、前記送信制御手段、前記受信制御手段、及び前記認証手段による処理をＬ回（Ｌは２以上の整数値）繰り返し、Ｌ回の全てについて前記認証手段により前記ＩＣカードが認証された場合、前記ＩＣカードの認証を成功とする
請求項６に記載の情報処理装置。
【請求項８】
前記保持手段に保持された前記リストには、故意に誤ったレスポンスを含む前記組み合わせが格納されている
請求項１に記載の情報処理装置。
【請求項９】
前記受信制御手段は、所定のネットワークを介する他の情報処理装置から前記リストが送信されてきた場合、前記リストを受信し、
前記保持手段は、前記受信制御手段により受信された前記リストを保持する
請求項１に記載の情報処理装置。
【請求項１０】
認証対象のＩＣカードと共有する共通鍵を用いて、前記ＩＣカードが有する復号化アルゴリズムに対応する第1の暗号化アルゴリズムに従って、予め乱数が暗号化され、その結果得られる値をチャレンジとし、前記共通鍵を用いて、前記ＩＣカードが有する第２の暗号化アルゴリズムと同一の第３の暗号化アルゴリズムに従って、予め前記乱数が暗号化され、その結果得られる値をレスポンスとし、前記乱数を変更することで生成されたｎ通り（ｎは複数の整数値）の前記チャレンジと前記レスポンスとの組み合わせが格納されたリスト
の中から、１組の組み合わせを選択する選択ステップと、
前記選択ステップの処理により選択された前記組み合せに含まれる前記チャレンジを送信する送信制御ステップと、
前記ＩＣカードによって、前記送信制御ステップの処理により送信された前記チャレンジが受信され、前記共通鍵を用いて前記復号化アルゴリズムに従って復号化され、その結果得られる算出値が、前記共通鍵を用いて前記第２の暗号化アルゴリズムに従って暗号化され、その結果得られる値が前記レスポンスとして送信されてきた場合、前記レスポンスを受信する受信制御ステップと、
前記受信制御ステップの処理により受信された前記レスポンスと、前記選択ステップの処理により選択された前記組み合せに含まれる前記レスポンスとが一致する場合、前記ＩＣカードを認証する認証ステップと
を含む情報処理方法。
【請求項１１】
認証対象のＩＣカードと共有する共通鍵を用いて、前記ＩＣカードが有する復号化アルゴリズムに対応する第1の暗号化アルゴリズムに従って、予め乱数が暗号化され、その結果得られる値をチャレンジとし、前記共通鍵を用いて、前記ＩＣカードが有する第２の暗号化アルゴリズムと同一の第３の暗号化アルゴリズムに従って、予め前記乱数が暗号化され、その結果得られる値をレスポンスとし、前記乱数を変更することで生成されたｎ通り（ｎは複数の整数値）の前記チャレンジと前記レスポンスとの組み合わせが格納されたリスト
の中から、１組の組み合わせを選択し、
選択された前記組み合せに含まれる前記チャレンジを送信し、
前記ＩＣカードによって、送信された前記チャレンジが受信され、前記共通鍵を用いて前記復号化アルゴリズムに従って復号化され、その結果得られる算出値が、前記共通鍵を用いて前記第２の暗号化アルゴリズムに従って暗号化され、その結果得られる値が前記レスポンスとして送信されてきた場合、前記レスポンスを受信し、
受信された前記レスポンスと、選択された前記組み合せに含まれる前記レスポンスとが一致する場合、前記ＩＣカードを認証する
ステップを含む制御処理をコンピュータに実行させるプログラム。
【請求項１２】
乱数を発生する乱数発生手段と、
前記乱数発生手段により発生された前記乱数を、ＩＣカードと共有する共通鍵を用いて、前記ＩＣカードが有する復号化アルゴリズムに対応する第１の暗号化アルゴリズムにより暗号化した結果得られる値をチャレンジとして、前記乱数を、前記共通鍵を用いて、前記ＩＣカードが有する第２の暗号化アルゴリズムと同一の第３の暗号化アルゴリズムにより暗号化した結果得られる値をレスポンスとして、前記チャレンジと前記レスポンスとの組み合わせを生成する処理を、前記乱数を変更しながら繰り返す暗号化手段と、
前記暗号化手段により前記組み合わせが生成される毎に、前記組み合わせをリストに追加する処理を繰り返すことによって、前記ＩＣカードを認証する装置に提供する前記リストを生成する生成手段と
を備え、
前記乱数発生手段、前記暗号化手段、及び前記生成手段は、セキュアな環境内に配置されている
情報処理装置。
【請求項１３】
乱数を発生する乱数発生ステップと、
前記乱数発生ステップの処理により発生された前記乱数を、ＩＣカードと共有する共通鍵を用いて、前記ＩＣカードが有する復号化アルゴリズムに対応する第１の暗号化アルゴリズムにより暗号化した結果得られる値をチャレンジとして、前記乱数を、前記共通鍵を用いて、前記ＩＣカードが有する第２の暗号化アルゴリズムと同一の第３の暗号化アルゴリズムにより暗号化した結果得られる値をレスポンスとして、前記チャレンジと前記レスポンスとの組み合わせを生成する処理を、前記乱数を変更しながら繰り返す暗号化ステップと、
前記暗号化ステップの処理により前記組み合わせが生成される毎に、前記組み合わせをリストに追加する処理を繰り返すことによって、前記ＩＣカードを認証する装置に提供する前記リストを生成する生成ステップと
を含み、
前記乱数発生ステップ、前記暗号化ステップ、及び前記生成ステップの処理は、セキュアな環境内で実行されている
情報処理方法。
【請求項１４】
乱数を発生し、
発生された前記乱数を、ＩＣカードと共有する共通鍵を用いて、前記ＩＣカードが有する復号化アルゴリズムに対応する第１の暗号化アルゴリズムにより暗号化した結果得られる値をチャレンジとして、前記乱数を、前記共通鍵を用いて、前記ＩＣカードが有する第２の暗号化アルゴリズムと同一の第３の暗号化アルゴリズムにより暗号化した結果得られる値をレスポンスとして、前記チャレンジと前記レスポンスとの組み合わせを生成する処理を、前記乱数を変更しながら繰り返し、
前記組み合わせが生成される毎に、前記組み合わせをリストに追加する処理を繰り返すことによって、前記ＩＣカードを認証する装置に提供する前記リストを生成する
ステップを含む制御処理をコンピュータに実行させるプログラムであって、
乱数を発生し、暗号化し、及び生成するステップを含む制御処理は、セキュアな環境内で実行される
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び方法、並びにプログラムに関し、特に、セキュアエリアを有しない情報処理装置であっても他の情報処理装置を低コストで安全に認証することが可能になる、情報処理装置及び方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来、リーダライタは、ＩＣ（Integrated Circuit）カードを用いた各種のトランザクション処理を実行することができる。一般的には、セキュリティを強化するために、リーダライタは、トランザクション処理の実行に先立って、ＩＣカードを認証する（例えば、特許文献１参照）。なお、ＩＣカードを認証するまでの一連の処理を、以下、「認証処理」と称する。
【０００３】
[従来の認証システムによる認証処理]
図１は、従来の認証システムの認証処理の流れを示す模式図である。
【０００４】
従来の認証システム１は、リーダライタ１１とＩＣカード１２とから構成されている。
【０００５】
従来の認証処理は、耐タンパ性のあるセキュアなＩＣチップ等、セキュアチップ内のセキュアな環境（以下、「セキュアエリア」と称する）内で実行される。例えば図１の例では、リーダライタ１１内にはセキュアエリア２１が構築されており、ＩＣカード１２内にはセキュアエリア２２が構築されている。そこで、リーダライタ１１は、セキュアエリア２１内で、データの暗号化或いは復号化に関連する処理を実行する。同様に、ＩＣカード１２は、セキュアエリア２２内で、データの暗号化或いは復号化に関連する処理を実行する。データの暗号化或いは復号化に関連する処理としては、例えば、データの暗号化や復号化の処理、データの暗号化若しくは復号化に用いられる鍵やアルゴリズムを管理する処理、認証に用いる情報の元になる乱数を発生する処理等が存在する。
【０００６】
認証処理は、リーダライタ１１とＩＣカード１２との間で本来のデータの送受信が行われる前に実行される。例えばユーザがＩＣカード１２をリーダライタ１１にかざして近接させると、非接触近接通信によりリーダライタ１１は、次のようにしてＩＣカード１２を認証する。
【０００７】
すなわち、リーダライタ１１とＩＣカード１２とは、共有の鍵ＫＡ及び鍵ＫＢを、自機のセキュアエリア２１，２２内にそれぞれ保持している。
【０００８】
この場合、リーダライタ１１は、セキュアエリア２１内で、暗号化アルゴリズムＥ１に従って、鍵ＫＡを用いて乱数Ａ１を暗号化する。そして、リーダライタ１１は、暗号化された乱数Ａ１を、チャレンジＣとしてＩＣカード１２に送信する。
【０００９】
ＩＣカード１２は、チャレンジＣを受信すると、セキュアエリア２２内で、暗号化アルゴリズムＥ１に対応する復号化アルゴリズムＤ１に従って、鍵ＫＡを用いてチャレンジＣを復号化する。これにより、算出値Ａ２が得られる。そこで、ＩＣカード１２は、セキュアエリア２２内で、暗号化アルゴリズムＥ２に従って、鍵ＫＢを用いて算出値Ａ２を暗号化する。そして、ＩＣカード１２は、暗号化された算出値Ａ２を、レスポンスＲとしてリーダライタ１１に送信する。
【００１０】
リーダライタ１１は、レスポンスＲを受信すると、セキュアエリア２１内で、暗号化アルゴリズムＥ２に対応する復号化アルゴリズムＤ２に従って、鍵ＫＢを用いてレスポンスＲを復号化する。これにより、算出値Ａ３が得られる。そこで、リーダライタ１１は、算出値Ａ３と乱数Ａ１とを比較して、これらが一致する場合にはＩＣカード１２を認証する。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平１０−２０７８０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、パーソナルコンピュータが、リーダライタ１１として機能して、ＩＣカード１２を認証する場合、セキュリティの高い認証処理を低コストで実現することは困難であった。すなわち、パーソナルコンピュータが、従来の認証処理に必要な鍵や暗号化アルゴリズムを安全に保持するためには、セキュアチップを実装してセキュアエリアを構築する必要がある。しかしながら、セキュアチップは開発や運用にコストがかかることから、パーソナルコンピュータに、セキュアエリアを設けることは現実的でない。従って、このようなセキュアエリアを有しないパーソナルコンピュータが、従来の認証処理を実行しても、セキュリティを確保することは困難であった。
【００１３】
[セキュアエリアを有さないパーソナルコンピュータによる認証処理]
図２は、セキュアエリアを有さないパーソナルコンピュータによる認証処理の流れを示す模式図である。
【００１４】
図２の認証システム３１は、パーソナルコンピュータ４１とＩＣカード１２とから構成されている。
【００１５】
ＩＣカード１２は、セキュアエリア２２を有しているが、パーソナルコンピュータ４１は、セキュアエリアを有していない。
【００１６】
したがって、パーソナルコンピュータ４１が図１と同様の認証処理を実行する場合、認証処理に必要な情報は、ＩＣカード１２側ではセキュアエリア２２内に保持されるのに対して、パーソナルコンピュータ４１側ではセキュアでない環境に保持される。すなわち、ＩＣカード１２においては、鍵ＫＡ、鍵ＫＢ、復号化アルゴリズムＤ１、および暗号化アルゴリズムＥ２といった認証処理に必要な情報は、セキュアエリア２２内に保持される。しかしながら、パーソナルコンピュータ４１においては、鍵ＫＡ、鍵ＫＢ、暗号化アルゴリズムＥ１、および復号化アルゴリズムＤ２といった認証処理に必要な情報は、セキュアでない環境に保持される。
【００１７】
なお、以下の図２の説明の範囲内において、鍵ＫＡや鍵ＫＢをまとめて、「鍵」と称する。また、復号化アルゴリズムＤ１、暗号化アルゴリズムＥ２、暗号化アルゴリズムＥ１、および復号化アルゴリズムＤ２をまとめて、「アルゴリズム」と称する。
【００１８】
このように、セキュアエリアを有していないパーソナルコンピュータ４１が、認証処理に必要な情報、すなわち、鍵とアルゴリズムを保持することは、セキュリティの観点から好ましくない。つまり、第三者が、セキュアエリアを有していないパーソナルコンピュータ４１から鍵やアルゴリズムを盗難する可能性は、セキュアエリアを有する場合と比較して、遥かに高くなる。
【００１９】
以上まとめると、パーソナルコンピュータ４１がＩＣカード１２を認証することは、ログイン処理等様々な利用可能性があるため、その実現が要求されている。しかしながら、パーソナルコンピュータ４１は、コストの観点等からセキュアエリアを有していないため、ＩＣカード１２を安全に認証することはできなかった。
【００２０】
なお、上述した内容は、パーソナルコンピュータ４１がＩＣカード７２を認証する場合のみならず、セキュアエリアを有していない任意の情報処理装置が任意の他の情報処理装置を認証する場合に同様にあてはまる。
【００２１】
本発明は、このような状況に鑑みてなされたものであり、セキュアエリアを有しない情報処理装置であっても他の情報処理装置を低コストで安全に認証することを可能にするものである。
【課題を解決するための手段】
【００２２】
本発明の第１の側面の情報処理装置は、認証対象のＩＣカードと共有する共通鍵を用いて、前記ＩＣカードが有する復号化アルゴリズムに対応する第1の暗号化アルゴリズムに従って、予め乱数が暗号化され、その結果得られる値をチャレンジとし、前記共通鍵を用いて、前記ＩＣカードが有する第２の暗号化アルゴリズムと同一の第３の暗号化アルゴリズムに従って、予め前記乱数が暗号化され、その結果得られる値をレスポンスとし、前記乱数を変更することで生成されたｎ通り（ｎは複数の整数値）の前記チャレンジと前記レスポンスとの組み合わせが格納されたリストを保持する保持手段と、前記保持手段により保持されたリストの中から、１組の組み合わせを選択する選択手段と、前記選択手段により選択された前記組み合せに含まれる前記チャレンジを送信する送信制御手段と、前記ＩＣカードによって、前記送信制御手段から送信された前記チャレンジが受信され、前記共通鍵を用いて前記復号化アルゴリズムに従って復号化され、その結果得られる算出値が、前記共通鍵を用いて前記第２の暗号化アルゴリズムに従って暗号化され、その結果得られる値が前記レスポンスとして送信されてきた場合、前記レスポンスを受信する受信制御手段と、前記受信制御手段に受信された前記レスポンスと、前記選択手段により選択された前記組み合せに含まれる前記レスポンスとが一致する場合、前記ＩＣカードを認証する認証手段とを備える。
【００２３】
前記リストに格納されるｎ通りの前記組み合わせの各々には、１乃至ｎの何れかの番号が付されており、前記選択手段は、前記番号の順に、前記組み合わせを選択することができる。
【００２４】
前記リストに格納されるｎ通りの前記組み合わせの各々には、１乃至ｎの何れかの番号が付されており、前記選択手段により所定の番号以上の前記組み合わせが選択された場合、ｎ番目に近づいてきたことを示す警告をユーザに提示する提示手段をさらに備えることができる。
【００２５】
前記選択手段によりｎ通りの組み合わせのうちの最後の組み合わせが選択されるまでの間においては、前記認証手段により前記ＩＣカードが認証された場合に前記情報処理装置のログイン処理を実行し、前記選択手段によりｎ通りの組み合わせのうちの最後の組み合わせが選択された後においては、前記認証手段による前記ＩＣカードの認証を用いたログイン処理の実行を禁止し、その代わりに、アカウント名とパスワードを用いた認証処理を実行することができる。
【００２６】
所定のタイミングで、前記チャレンジと前記レスポンスとの前記組み合わせを生成する処理を実行する組み合わせ生成手段をさらに備えることができ、前記保持手段により保持される前記リストの少なくとも一部は、前記組み合わせ生成手段により前記組み合わせが生成される毎に更新することができる。
【００２７】
前記組み合わせ生成手段は、前記リストに含まれるｎ通りの前記組み合わせが前記選択手段によって選択されたとき、新たなｎ通りの前記組み合わせを生成し、前記保持手段により保持される前記リストは、前記組み合わせ生成手段により生成された前記新たなｎ通りの組み合わせが格納された新たなリストに更新することができる。
【００２８】
前記組み合わせ生成手段は、前記認証手段が前記ＩＣカードを認証する毎に、１以上の前記組み合わせを生成し、前記保持手段により保持される前記リストに、前記組み合わせ生成手段により生成された前記１以上の前記組み合わせが追加されることによって、前記リストが更新することができる。
【００２９】
前記選択手段、前記送信制御手段、前記受信制御手段、及び前記認証手段による処理をＬ回（Ｌは２以上の整数値）繰り返し、Ｌ回の全てについて前記認証手段により前記ＩＣカードが認証された場合、前記ＩＣカードの認証を成功とすることができる。
【００３０】
前記組み合わせ生成手段により生成された前記組み合わせは、その生成日時を示す情報が付されて、前記リストに追加され、前記組み合わせ生成手段は、前記生成日時を示す情報に基づいて、前記組み合わせを選択することができる。
【００３１】
前記選択手段は、前回に選択した前記組み合わせの生成日時とは離散した日時に、前記組み合わせ生成手段により生成された前記組み合わせを選択することができる。
【００３２】
前記組み合わせ生成手段により生成された前記組み合わせは、生成された時点における前記認証手段による認証回数を示す情報が付されて、前記リストに追加され、前記組み合わせ生成手段は、前記認証回数を示す情報に基づいて、前記組み合わせを選択することができる。
【００３３】
前記組み合わせ生成手段は、乱数を発生させて、前記乱数に基づいてチャレンジを生成し、前記チャレンジを前記ＩＣカードに送信し、送信された前記チャレンジに基づいて前記ＩＣカードによって生成された前記レスポンスが送信されてきた場合、前記レスポンスを受信し、生成した前記チャレンジと、受信した前記レスポンスとの組を、前記組み合わせとして生成することができる。
【００３４】
前記組み合わせ生成手段による前記組み合わせの生成中又は生成直後に、前記ＩＣカードの抜き打ち認証処理として、前記選択手段、前記送信制御手段、前記受信制御手段、及び前記認証手段による認証処理が実行されることができる。
【００３５】
前記ＩＣカードの抜き打ち認証処理において、前記認証手段は、前記受信制御手段に受信された前記レスポンスと、前記選択手段により選択された前記組み合せに含まれる前記レスポンスとが不一致の場合、前回の前記ＩＣカードの認証後に前記組み合わせ生成手段により生成された前記組み合わせを破棄することができる。
【００３６】
前記認証手段により前記組み合わせが破棄された場合、前記ＩＣカードの抜き打ち認証処理の失敗を示す警告をユーザに提示する提示手段をさらに備えることができる。
【００３７】
前記ＩＣカードの抜き打ち認証処理において、前記選択手段は、前記保持手段に保持された前記リストに、前記抜き打ち認証処理の専用として格納された前記組み合わせを選択することができる。
【００３８】
前記送信制御手段は、さらに、前記チャレンジを送信する前に、ポーリングを送信し、前記ポーリングを受信した前記ＩＣカードから制御信号が送信されてきた場合、前記受信制御手段は、前記制御信号を受信し、前記送信制御手段は、前記受信制御手段により前記制御信号が受信された後、前記チャレンジを前記ＩＣカードに送信することができる。
【００３９】
前記制御信号には、前記ＩＣカードを一意に特定するカード識別子が含まれており、前記送信制御手段は、前記受信制御手段により前記制御信号に基づいて前記カード識別子を認識し、認識した前記カード識別子が前記ＩＣカードのものであることを特定した場合に、前記チャレンジを送信することができる。
【００４０】
前記保持手段に保持された前記リストには、故意に誤ったレスポンスを含む前記組み合わせを格納することができる。
【００４１】
前記受信制御手段は、所定のネットワークを介する他の情報処理装置から前記リストが送信されてきた場合、前記リストを受信し、前記保持手段は、前記受信制御手段により受信された前記リストを保持することができる。
【００４２】
本発明の第１の側面の情報処理方法及びプログラムは、上述した本発明の第１の側面の情報処理装置に対応する方法及びプログラムである。
【００４３】
本発明の第１の側面の情報処理装置及び方法並びにプログラムにおいては、認証対象のＩＣカードと共有する共通鍵を用いて、前記ＩＣカードが有する復号化アルゴリズムに対応する第1の暗号化アルゴリズムに従って、予め乱数が暗号化され、その結果得られる値がチャレンジとされ、前記共通鍵を用いて、前記ＩＣカードが有する第２の暗号化アルゴリズムと同一の第３の暗号化アルゴリズムに従って、予め前記乱数が暗号化され、その結果得られる値がレスポンスとされ、前記乱数を変更することで生成されたｎ通り（ｎは複数の整数値）の前記チャレンジと前記レスポンスとの組み合わせが格納されたリストが保持される。保持されたリストの中から、１組の組み合わせが選択され、選択された前記組み合せに含まれる前記チャレンジが送信され、前記ＩＣカードによって、送信された前記チャレンジが受信され、前記共通鍵を用いて前記復号化アルゴリズムに従って復号化され、その結果得られる算出値が、前記共通鍵を用いて前記第２の暗号化アルゴリズムに従って暗号化され、その結果得られる値が前記レスポンスとして送信されてきた場合、前記レスポンスが受信される。そして、受信された前記レスポンスと、選択された前記組み合せに含まれる前記レスポンスとが一致する場合、前記ＩＣカードが認証される。
【００４４】
本発明の第２の側面の情報処理装置は、乱数を発生する乱数発生手段と、前記乱数発生手段により発生された前記乱数を、ＩＣカードと共有する共通鍵を用いて、前記ＩＣカードが有する復号化アルゴリズムに対応する第１の暗号化アルゴリズムにより暗号化した結果得られる値をチャレンジとして、前記乱数を、前記共通鍵を用いて、前記ＩＣカードが有する第２の暗号化アルゴリズムと同一の第３の暗号化アルゴリズムにより暗号化した結果得られる値をレスポンスとして、前記チャレンジと前記レスポンスとの組み合わせを生成する処理を、前記乱数を変更しながら繰り返す暗号化手段と、前記暗号化手段により前記組み合わせが生成される毎に、前記組み合わせをリストに追加する処理を繰り返すことによって、前記ＩＣカードを認証する装置に提供する前記リストを生成する生成手段とを備え、前記乱数発生手段、前記暗号化手段、及び前記生成手段は、セキュアな環境内に配置されている。
【００４５】
本発明の第２の側面の情報処理方法及びプログラムは、上述した本発明の第３の側面の情報処理装置に対応する方法及びプログラムである。
【００４６】
本発明の第２の側面の情報処理装置及び方法並びにプログラムにおいては、乱数が発生され、発生された前記乱数を、ＩＣカードと共有する共通鍵を用いて、前記ＩＣカードが有する復号化アルゴリズムに対応する第１の暗号化アルゴリズムにより暗号化した結果得られる値がチャレンジとされ、前記乱数を、前記共通鍵を用いて、前記ＩＣカードが有する第２の暗号化アルゴリズムと同一の第３の暗号化アルゴリズムにより暗号化した結果得られる値がレスポンスとされ、前記チャレンジと前記レスポンスとの組み合わせが生成される処理が、前記乱数が変更されながら繰り返され、前記組み合わせが生成される毎に、前記組み合わせをリストに追加する処理が繰り返されることによって、前記ＩＣカードを認証する装置に提供する前記リストが生成される。そして、乱数が発生され、暗号化され、及び生成されるのは、セキュアな環境内である。
【発明の効果】
【００４７】
以上のごとく、本発明によれば、セキュアエリアを有しない情報処理装置であっても他の情報処理装置を低コストで安全に認証することが可能になる。
【図面の簡単な説明】
【００４８】
【図１】従来の認証システムの認証処理の流れを示す模式図である。
【図２】パーソナルコンピュータによる認証処理の流れを示す模式図である。
【図３】本発明の原理の概要について説明する図である。
【図４】リストの生成手法の一例について説明する図である。
【図５】リストの生成手法の他の例ついて説明する図である。
【図６】リスト内の組み合わせの総数に応じたセキュリティ強度とコストの関係の一例を示す図である。
【図７】セキュリティの復旧について説明する図である。
【図８】本発明が適用される認証システムの一実施の形態の構成を示すブロック図である。
【図９】リスト生成装置の機能的構成例を示すブロック図である。
【図１０】パーソナルコンピュータのハードウエア構成例を示すブロック図である。
【図１１】CPUの機能的構成例を示すブロック図である。
【図１２】ＩＣカードの機能的構成例を示すブロック図である。
【図１３】リスト生成処理の一例を説明するフローチャートである。
【図１４】パーソナルコンピュータの片側認証処理の一例を説明するフローチャートである。
【図１５】ＩＣカードの片側被認証処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【００４９】
[本発明の実施の形態の概要]
はじめに、本発明の理解を容易なものとすべく、図３を参照して、本発明の概略について説明する。
【００５０】
図３は、本発明の原理の概要について説明する図である。
【００５１】
図３の認証システム６１は、パーソナルコンピュータ７１とＩＣカード７２とから構成されている。パーソナルコンピュータ７１は、適正なＩＣカード７２を有するユーザにのみログインを許可する。このためパーソナルコンピュータ７１はＩＣカード７２を認証する。
【００５２】
なお、２台の情報処理装置が相互に認証する処理を、「相互認証処理」と称するのに対して、一方が他方のみを認証する認証処理を、以下、「片側認証処理」と称する。
【００５３】
ＩＣカード７２は、セキュアエリア９１を有しているが、パーソナルコンピュータ７１は、セキュアエリアを有していない。
【００５４】
パーソナルコンピュータ７１は、チャンレジＣｋとレスポンスＲｋとの組み合わせ（以下、適宜「組み合わせ」と略記する）がｎ通り格納されているリスト８１を保持する。ここで、ｋは、１乃至ｎのうちの何れかの整数値であり、ｎは、組み合わせの総数を示す１以上の任意の整数値である。
【００５５】
リスト８１の詳細については後述するが、チャレンジＣｋは、例えば、ＩＣカード７２が有する復号化アルゴリズムＤ１１に対応する暗号化アルゴリズムＥ１１に従って、ＩＣカード７２が有する鍵ＫＣを用いて、所定の値Ａｋが予め暗号化され、その結果得られた情報である。レスポンスＲｋは、例えば、ＩＣカード７２が有する暗号化アルゴリズムＥ１２に従って、ＩＣカード７２が有する鍵ＫＣを用いて、前述の値Ａｋが予め暗号化され、その結果得られた情報である。
【００５６】
パーソナルコンピュータ７１は、認証処理を開始すると、ｉ番目のチャレンジＣｉ（ｉは１乃至ｎのうちの何れかの整数値）をリスト８１から選択してＩＣカード７２に送信する。
【００５７】
ＩＣカード７２は、パーソナルコンピュータ７１からのチャレンジＣｉを受信すると、セキュアエリア９１内で、復号化アルゴリズムＤ１１に従って、鍵ＫＣを用いて、チャレンジＣｉを復号化する。これにより、算出値Ａｉが得られる。そこで、ＩＣカード７２は、セキュアエリア９１内で、暗号化アルゴリズムＥ１２に従って、鍵ＫＣを用いて算出値Ａｉを暗号化する。そして、ＩＣカード７２は、暗号化された算出値Ａｉを、レスポンスＲとしてパーソナルコンピュータ７１に送信する。
【００５８】
パーソナルコンピュータ７１は、レスポンスＲを受信すると、ｉ番目のレスポンスＲｉをリスト８１から選択し、レスポンスＲとレスポンスＲｉとを比較する。レスポンスＲとレスポンスＲｉとが一致する場合、パーソナルコンピュータ７１は、ＩＣカード７２を認証する。
【００５９】
このようにして、パーソナルコンピュータ７１がＩＣカード７２を認証する片側認証処理（以下、相互認証と区別する必要がない場合、適宜「認証処理」と略記する）が実行される。
【００６０】
ここで、認証処理の開始時におけるチャレンジＣｉの送信タイミングは、ＩＣカード７２が近接したタイミングでもよいが、ＩＣカード７２の近接の有無とは独立した所定時間間隔毎でもよい。ただし、後者の場合には、パーソナルコンピュータ７１の近傍にＩＣカード７２が存在していないときでも、チャレンジＣｉは定期的に送信されるため、第三者に盗難されるおそれがある。このような場合に、送信対象のチャレンジＣｉが無作為にリスト８１から選択されると、過去の認証処理で一度使用されたチャレンジＣｑ（ｑは１乃至ｎのうちの任意の整数値）が、送信対象のチャレンジＣｉとして再度選択される可能性がある。このようにして送信対象のチャレンジＣｉとして再度選択されたチャレンジＣｑが、過去の認証処理で使用された時点で第三者に盗難されていると、第三者によって悪用されるおそれがある。そこで、このようなおそれをなくすために、リスト８１内の組み合わせの各々に対して使用順番を設定し、例えばチャレンジの符号Ｃの後の数字を使用順番として設定するとよい。この場合、認証回数ｉの認証処理では、使用順番ｉの組み合わせ、すなわち、チャレンジＣｉとレスポンスＲｉが使用されて、過去に使用された組み合わせの重複使用が防止されるため、過去に盗難されたチャレンジＣｑが悪用されるおそれはほぼ無くなる。
【００６１】
ただし、リスト８１内の組み合わせの総数ｎは有限であるため、認証処理が繰り返し実行されると、ｎ回の認証処理でリスト８１内の全ての組み合わせが使用されてしまうことになる。従って、リスト８１内の全ての組み合わせが使用された場合の措置が必要になる。例えば、ｎ個の組み合わせを新規作成する措置や、同一のｎ個の組み合わせを再利用する措置等を取ることが可能である。なお、これらの措置の詳細については後述する。
【００６２】
ここで、上述した説明では、説明の簡略上、１つのＩＣカード７２のみについて言及した。しかしながら、実際には、複数のユーザにＩＣカード７２を提供する必要がある。このような複数のＩＣカード７２を量産するために、復号化アルゴリズムＤ１１と暗号化アルゴリズムＥ１２とは、全てのＩＣカード７２に共通に搭載される。したがって、パーソナルコンピュータ７１が、複数のＩＣカード７２の中から特定の１枚を認証するためには、ＩＣカード７２毎に異なる鍵ＫＣを保持させればよい。この場合、本発明が適用されていれば、異なる鍵ＫＣ毎に、異なるリスト８１がそれぞれ生成されることになる。すなわち、リスト８１とは、特定の鍵ＫＣにとってのみ有効な専用のリストであるため、特定の鍵ＫＣと当該特定の鍵ＫＣ専用のリスト８１とは対として用いられる。
【００６３】
このため、特定の鍵ＫＣと当該特定の鍵ＫＣ専用のリスト８１との対を予め生成することで、既存の相互認証システムで用いられている復号化アルゴリズムＤ１１と暗号化アルゴリズムＥ１２をそのまま、本発明にも適用できる。すなわち、従来の復号化アルゴリズムＤ１１と暗号化アルゴリズムＥ１２とを搭載したＩＣカード内に、特定の鍵ＫＣを保持させることで、本発明が適用されるＩＣカード７２が容易に実現可能になる。一方、ＩＣカード７２を認証する装置は、特定の鍵ＫＣ専用のリスト８１を保持していれば足り、特定の鍵ＫＣの共通鍵や、復号化アルゴリズムＤ１１に対応する暗号化アルゴリズムや暗号化アルゴリズムＥ１２に対応する復号化アルゴリズムを保持する必要がない。したがって、パーソナルコンピュータ７１のようにセキュアエリアを有しない装置であっても、特定の鍵ＫＣ専用のリスト８１を保持するだけで、ＩＣカード７２を認証する片側認証処理を実行することができる。換言すると、セキュアチップを搭載しない既存の装置に対して、セキュアチップを新たに搭載させずに、ＩＣカードの片側認証を行う機能を容易に搭載することができる。この場合、セキュアチップを新たに搭載させる場合に比べて遥かにコストを抑制することができる。このように、既存の相互認証を行うシステムの機能やメリットを温存しつつ、同一のシステムを用いて、セキュアエリアを有しない装置による片側認証を行うことが可能になる。
【００６４】
なお、この場合、特定の鍵ＫＣ専用のリスト８１は、セキュアエリア外に保持されているので、第三者に盗難されるおそれがある。しかしながら、特定の鍵ＫＣ専用のリスト８１が盗難されたとしても、特定の鍵ＫＣと当該特定の鍵ＫＣ専用のリスト８１との対を用いる認証システムのみが脅威にさらされるだけで済む。すなわち、特定の鍵ＫＣ専用のリスト８１に格納されているチャレンジＣｋとレスポンスＲｋとの組み合わせは、暗号化アルゴリズムＥ１１及び暗号化アルゴリズムＥ１２並びに特定の鍵ＫＣを用いて生成された暗号化情報である。このような暗号化情報だけでは、復号化アルゴリズムＤ１１及び暗号化アルゴリズムＥ１２並びに特定の鍵ＫＣを求めることは実質上不可能である。さらに、他のユーザのパーソナルコンピュータ７１とＩＣカード７２からなる他の認証システムは、まったく別の鍵ＫＣ及び当該別の鍵ＫＣ専用のリスト８１を用いているため、当該他の認証システムが脅威にさらされることはない。
【００６５】
このように、特定の鍵ＫＣ専用のリスト８１がたとえ盗難されたとしても、その脅威は、特定の鍵ＫＣとその特定の鍵ＫＣ専用のリスト８１との対により構成される認証システムに限定される。したがって、他の認証システムや、復号化アルゴリズムＤ１１や暗号化アルゴリズムＥ１２等のアルゴリズムの安全は確保される。
【００６６】
[リスト８１の生成手法の例]
次に、リスト８１の生成手法について説明する。
【００６７】
図４は、リスト８１の生成手法の一例について説明する図である。
【００６８】
リスト生成装置１０１は、例えばパーソナルコンピュータ７１の生成工場等に設置され、鍵とアルゴリズムを安全に保持できるセキュアな環境においてリスト８１を生成する。
【００６９】
なお、ここでは、リスト生成装置１０１がセキュアエリア１２１を有することで、「セキュアな環境」が構築されている。しかしながら、仮にリスト生成装置１０１がセキュアエリア１２１を有していなくても、リスト生成装置１０１を操作する環境全体で鍵とアルゴリズムを安全に保持できるようにセキュアな環境を構成してもよい。
【００７０】
リスト生成装置１０１は、セキュアエリア１２１内で、乱数ＡＸｊ（ｊは１乃至ｎのうちの任意の整数値）を発生させる。次に、リスト生成装置１０１は、ＩＣカード７２が有する復号化アルゴリズムＤ１１に対応する暗号化アルゴリズムＥ１１に従って、ＩＣカード７２が有する鍵ＫＣと同一の鍵ＫＣを用いて、乱数ＡＸｊを暗号化することによって、チャレンジＣｊを生成する。また、リスト生成装置１０１は、ＩＣカード７２が有する暗号化アルゴリズムＥ１２と同一の暗号化アルゴリズムＥ１２に従って、鍵ＫＣを用いて、前述の乱数ＡＸｊを暗号化することによって、レスポンスＲｊを生成する。そして、リスト生成装置１０１は、チャレンジＣｊとレスポンスＲｊとの組み合わせをリスト８１に格納する。
【００７１】
リスト生成装置１０１は、番号ｊを１ずつインクリメントしていき、乱数ＡＸｊを変更しながら、このような一連の処理を繰り返し実行する。一連の処理の繰り返し回数がｎ回になると、リスト８１には、ｎ通りの組み合わせが格納されたリスト８１が生成される。
【００７２】
なお、リスト８１内の組み合わせの総数ｎは、特に限定されず任意でよい。すなわち、リスト生成装置１０１に、任意の数ｎだけの乱数ＡＸ１乃至ＡＸｎを発生させるだけで、任意の数ｎ通りの組み合わせを容易に生成することができる。なお、以下、乱数ＡＸ１乃至ＡＸｎを個々に区別する必要がない場合、これらをまとめて乱数ＡＸと称する。
【００７３】
また、リスト生成装置１０１は、ｒ個（ｒは１以上の任意の整数値）の鍵ＫＣ−１乃至ＫＣ−ｒ毎に、リスト８１−１乃至８１−ｒをそれぞれ独立して生成することができる。すなわち、リスト生成装置１０１の設置場所、例えば、パーソナルコンピュータ７１の生成工場等では、特定の鍵ＫＣ−ｓ（ｓは、１乃至ｒのうちの任意の整数値）と、当該特定の鍵ＫＣ−ｓ専用のリスト８１−ｓとの対が生成される。したがって、当該工場等で、特定の鍵ＫＣ−ｓを保持するＩＣカード７２−ｓを生成してもよい。換言すると、当該工場等で、リスト８１−ｓとＩＣカード７２−ｓとの対を生成してもよい。ただし、この場合には、対となるリスト８１−ｓとＩＣカード７２−ｓとを、それぞれ安全にユーザに届ける必要がある。
【００７４】
[リストの生成手法の他の例]
図５は、リスト８１の生成手法の他の例ついて説明する図である。
【００７５】
図５に示される例では、リスト８１は、ＩＣカード７２を用いてパーソナルコンピュータ７１内で生成される。
【００７６】
パーソナルコンピュータ７１は、乱数ＡＸｊ（ｊ乃至ｎの整数値）を順次発生させる。次に、パーソナルコンピュータ７１は、発生させた乱数Ｋｊに基づくチャレンジＣｊをＩＣカード７２に送信する。
【００７７】
ＩＣカード７２は、パーソナルコンピュータ７１からのチャレンジＣｊを受信すると、図３を用いて上述した処理を実行することで、チャレンジＣｊに対応するレスポンスＲをパーソナルコンピュータ７１に送信してくる。
【００７８】
そこで、パーソナルコンピュータ７１は、当該レスポンスＲをレスポンスＲｊとして受信して、送信したチャレンジＣｊと受信したレスポンスＲｊとで１つの組み合わせを生成し、当該組み合わせをリスト８１に格納する。
【００７９】
パーソナルコンピュータ７１は、番号ｊを１ずつインクリメントしていき、乱数ＡＸｊを変更しながらこのような一連の処理を繰り返し実行する。一連の処理の繰り返し回数がｎ回になると、リスト８１には、ｎ通りの組み合わせが格納されたリスト８１が生成される。
【００８０】
なお、リスト８１内の組み合わせの総数ｎは、特に限定されず任意でよい。すなわち、パーソナルコンピュータ７１に、任意の数ｎだけの乱数ＡＸ１乃至ＡＸｎを発生させるだけで、任意の数ｎ通りの組み合わせを容易に生成することができる。
【００８１】
また、パーソナルコンピュータ７１は、ｒ枚のＩＣカード７２−１乃至７２−ｒの各々を個別に認証する場合、リスト生成装置１０１と同様に、各々に対応するリスト８１−１乃至８１−ｒを個別に生成することができる。
【００８２】
このように、図５のリスト８１の生成手法を適用した場合には、パーソナルコンピュータ７１を用いてリスト８１が生成可能なことから、ユーザは、リスト８１の変更や追加を容易に行うことができる。ただし、パーソナルコンピュータ７１はセキュリティエリアを有していないため、ユーザは、自身の責任の下、リスト８１の生成時にセキュアな環境を確立しておく必要がある。
【００８３】
[チャレンジとレスポンスの組み合わせ数に応じたセキュリティ強度とコストの関係]
ここで、図５のリスト８１の生成手法を適用した場合に、リスト８１内に格納させる組み合わせの総数ｎの適切な数について考えてみる。この場合、セキュリティ強度の視点と、コストの視点とからそれぞれ考える必要がある。
【００８４】
図６は、リスト８１内の組み合わせの総数ｎに応じたセキュリティ強度とコストの関係の一例を示す図である。
【００８５】
なお、以下、チャレンジＣ１乃至Ｃｎを個々に区別する必要がない場合、これらをまとめて、チャレンジＣと称する。この場合、レスポンスＲ１乃至Ｒｎもまとめて、レスポンスＲと称する。
【００８６】
パーソナルコンピュータ７１が８バイトのチャレンジＣを生成した場合、組み合わせの総数ｎは、最大で２の６４乗となる。ただし、リスト８１の組み合わせの総数ｎは、２の６４乗とする必要は特になく、２の６４乗以下の任意の数とすることができる。このため、図６の表には、一例として、リスト８１の組み合わせの総数ｎが、２の１６乗乃至２の２７乗の各々の場合のセキュリティ強度とコストの関係が示されている。なお、図６の表の１行（横方向の項目の集合体）は、総数ｎが２の１６乗乃至２の２７乗のうちのいずれかである場合に対応している。
【００８７】
図６の表の所定の行の「同じチャレンジが登場するまでの最大試行回数」の項目には、当該行に対応する総数ｎが採用された場合において、同一のチャレンジＣが登場するまでの認証処理の最大試行回数（回）が記述されている。すなわち、リスト８１に格納されるｎ通りの組み合わせが先頭から順に使用され、ｎ通りの組み合わせの全てが使用されると、同一のｎ通りの組み合わせが再利用される。この場合に、一度使用されたチャレンジＣが再度使用されるまでの認証回数が当該項目に記述されている。すなわち、当該認証回数は、リスト８１の組み合わせの総数ｎと等しいため、総数ｎと同一値が当該項目に記述されている。
【００８８】
図６の表の所定の行の「リストが必要とする記憶領域サイズ」には、当該行に対応する総数ｎが採用された場合において、１つの組み合わせに１６バイト要するとした際に、リスト８１を記憶するために必要な記憶領域のサイズ（Ｍバイト）が記述されている。
【００８９】
図６の表の所定の行の「記憶装置のコスト」には、当該行に対応する総数ｎが採用された場合において、１Ｔバイト当たり１万円として換算した場合のリスト８１を記憶する記憶領域の確保に必要なコスト（円）が記述されている。
【００９０】
図６の表の所定の行の「リスト生成時間」には、当該行に対応する総数ｎが採用された場合において、リスト８１の生成に要する時間（分）が記述されている。なお、リスト８１の生成に要する時間は、次のような仕様のパーソナルコンピュータ７１にスクリプト言語で実行させた場合の実測時間に基づいて、Ｃ言語で実行させた時間を推測したものである。すなわち、パーソナルコンピュータ７１の仕様は、Microsoft Windows（登録商標） XP Professional Version 2002 Service Pack 3，Pentium（登録商標）D CPU 2.80GHz，2.00 GB RAMである。
【００９１】
図６の表の所定の行の「計算費用」には、当該行に対応する総数ｎが採用された場合において、１時間当たり1000円として換算した場合の、パーソナルコンピュータ７１が当該行に対応する総数ｎの組み合わせを算出するのに必要なコスト（円）が記述されている。
【００９２】
図６の表の所定の行の「同じチャレンジが登場するまでの時間」には、当該行に対応する総数ｎが採用された場合において、チャレンジＣが１秒間に１回使用されたときに、一度使用されたチャレンジＣが次に使用されるまでの時間（日）が記述されている。
【００９３】
図６の表の所定の行の「レスポンスを収集する時間」には、当該行に対応する総数ｎが採用された場合において、パーソナルコンピュータ７１がＩＣカード７２にチャレンジＣを送信してからレスポンスＲを収集する（図５参照）のに要する時間が記述されている。ただし、ここでは、当該項目に記述されている時間は、通信速度が424kbpsである場合に１０万回チャレンジＣを送信してレスポンスＲを収集するのに要する時間が１時間であるとの実績に基づいて換算されたものである。
【００９４】
このような図６の表からわかるように、認証システム６１の設計者又はパーソナルコンピュータ７１のユーザは、セキュリティ強度とコストの関係とのバランスを考えて、リスト８１に格納させる組み合わせの総数ｎを決定するとよい。
【００９５】
例えば、図６の５行目に示されるように、リスト８１の組み合わせの総数ｎとして２の２０乗を採用する場合、同じチャレンジＣが登場するまでの最大試行回数は「1048576回」であり、リスト８１を記録するために必要な記憶領域サイズは「16Mバイト」であることがわかる。また、当該組み合わせ数の場合、記憶装置のコストは「0.153円」であり、リスト生成時間は「0.042分」であり、計算費用は「0.7円」であることがわかる。さらにまた、当該組み合わせ数の場合、同じチャレンジが登場するまでの時間は「12.14日」であり、レスポンスを収集するまでの時間は「10.5時間」であることがわかる。
【００９６】
従って、組み合わせの総数ｎが２の２０乗通りのリスト８１を導入する場合について、コスト面から考えると、「16Mバイト」の記憶領域サイズと、「0.042分」のリスト生成時間を確保するためには、それぞれ「0.153円」、「0.7円」が必要であることが分かる。図６の表のその他の行と見比べると明らかなように、組み合わせの総数ｎを減らす程、その分だけコストを抑制することができる。
【００９７】
一方、組み合わせの総数ｎが２の２０乗通りのリスト８１を導入する場合について、セキュリティ強度の面から考える。例えば、第三者が、チャレンジＣｉとレスポンスＲｉとの組み合せを盗難したとする。第三者は、盗難したチャレンジＣｉと同一のチャレンジＣがパーソナルコンピュータ７１からが送信されたときに、盗難したレスポンスＲｉをパーソナルコンピュータ７１に送信すれば、パーソナルコンピュータ７１に誤認証させることに成功する。しかしながら、第三者は、このためには、最大で「1048576回」の認証が行われる間、すなわち「12.14日」の間、チャレンジＣｉがパーソナルコンピュータ７１から送信されるのを常時監視していなければならない。このような第三者が常時監視しなければならない時間（すなわち、認証回数）が増加する程、その分だけセキュリティ強度が高まる。図６の表のその他の行と見比べると明らかなように、組み合わせの総数ｎを増やす程、第三者が常時監視しなければならない時間（すなわち、認証回数）が増加し、その分だけセキュリティ強度を高めることができる。
【００９８】
以上をまとめると、リスト８１内に格納させる組み合わせの総数ｎが大きくなると、セキュリティ強度が高くなるというメリットがある半面、コストが高くなるというデメリットがある。一方、リスト８１内に格納させる組み合わせの総数ｎが小さくなると、コストが低下するというメリットがある半面、セキュリティ強度が低くなるというデメリットがある。したがって、このように相反する２つの要素を考慮して、すなわち、セキュリティ強度とコストとのバランスを考慮して、リスト８１内に格納させる組み合わせの総数ｎを決定すると好適である。
【００９９】
なお、組み合わせの総数ｎとしてどのような数を採用したとしても、リスト８１を生成するための鍵とアルゴリズムをセキュアな環境に保持しておきさえすれば、認証システム６１の安全性を確保することができる。極端に言えば、どんなにセキュリティ強度を低くして、その結果リスト８１が第三者に盗難されたとしても、リスト８１から、認証システム６１の鍵とアルゴリズムが第三者に特定されるおそれは殆どない。
【０１００】
もっとも、第三者にリスト８１が盗難された状態を放置しておくことは望ましくない。そこで、以下、リスト８１が、第三者に盗難された場合のセキュリティの復旧について説明する。
【０１０１】
[リスト８１が第三者に取得された場合のセキュリティの復旧]
図７は、リスト８１が第三者に盗難された場合のセキュリティの復旧について説明する図である。
【０１０２】
上述したように、８バイトのチャレンジＣが生成される際の組み合わせの総数ｎは、最大で２の６４乗となる。以下、ｎ＝２の６４乗通りの組み合わせの集合体を、組み合わせデータ群１４１と称する。リスト８１は、組み合わせデータ群１４１の任意の一部を格納することで生成することができる。
【０１０３】
図７に示されるように、パーソナルコンピュータ７１が、リスト８１として、組み合わせデータ群１４１の一部から構成されるリスト８１Ａを保持し、認証処理時に使用しているとする。このリスト８１Ａが第三者に盗難された場合、パーソナルコンピュータ７１は、リスト８１を、組み合わせデータ群１４１の別の一部から構成されるリスト８１Ｂに更新する。
【０１０４】
これにより、第三者が、入手したリスト８１Ａをもとに偽造ＩＣカード１４２を作成したとしても、パーソナルコンピュータ７１が偽造ＩＣカード１４２を誤って認証してしまうおそれは無くなる。
【０１０５】
すなわち、偽造ＩＣカード１４２は、リスト８１Ａどおりに、チャレンジＣｉに対応するレスポンスＲｉをパーソナルコンピュータ７１に送信することができるかもしれない。しかしながら、第三者が、偽造ＩＣカード１４２をパーソナルコンピュータ７１に認証させようとしても、パーソナルコンピュータ７１は、リスト８１Ａとは異なるリスト８１Ｂを有しているので、偽造ＩＣカード１４２を誤って認証することはない。
【０１０６】
具体的には、偽造ＩＣカード１４２は、パーソナルコンピュータ７１に近接すると、パーソナルコンピュータ７１から送信された、リスト８１Ｂ内のチャレンジＣｊを受信することはできる。しかしながら、偽造ＩＣカード１４２は、リスト８１Ｂ内のチャレンジＣｊに対応するレスポンスＲｊと同一のレスポンスＲを送信することができない。
【０１０７】
すなわち、偽造ＩＣカード１４２は、リスト８１Ａ内のチャレンジＣとレスポンスＲとの対応関係を認識できる機能を有しているに過ぎず、リスト８１Ｂ内のチャレンジＣｊを復号化して再暗号化することでリスト８１Ｂ内の対応するレスポンスＲｊを生成する機能を有していない。このため、偽造ＩＣカード１４２は、リスト８１Ｂに含まれる所定のチャレンジＣを受信したとしても、当該チャレンジＣを復号化して再暗号化して対応するレスポンスＲを生成することはできない。このため、パーソナルコンピュータ７１は、偽造ＩＣカード１４２を誤って認証することはない。
【０１０８】
このように、リスト８１が第三者に盗難されてしまった場合でも、パーソナルコンピュータ７１がリスト８１を更新するだけで、認証システム６１を構成するＩＣカード７２を変更しなくても、容易にセキュリティを復旧することが可能になる。
【０１０９】
以上、図１乃至図７を参照して、本発明の原理の概略について説明した。次に、このような本発明の実施の形態について説明する。
【０１１０】
[本発明が適用される認証システム１５１の構成例]
図８は、本発明が適用される認証システムの一実施の形態の構成を示すブロック図である。
【０１１１】
図８の認証システム１５１は、リスト生成装置１０１、パーソナルコンピュータ７１−１乃至７１−Ｎ（Ｎは１以上の任意の整数値）、およびＩＣカード７２−１乃至７２−Ｎから構成される。
【０１１２】
本実施形態では、パーソナルコンピュータ７１−Ｑ（Ｑは１乃至Ｎのうちの何れかの整数値）とＩＣカード７２−Ｑとは対になって用いられるとする。例えば、パーソナルコンピュータ７１−Ｑを操作するユーザが、ＩＣカード７２−Ｑを保持し、パーソナルコンピュータ７１を起動させる場合等のログイン操作として、ＩＣカード７２−Ｑをパーソナルコンピュータ７１−Ｑにかざすものとする。この場合、パーソナルコンピュータ７１−Ｑは、ＩＣカード７２−Ｑを認証すると、起動処理等、各種処理を開始するものとする。
【０１１３】
リスト生成装置１０１は、パーソナルコンピュータ７１−Ｑの生成工場等に設置され、鍵やアルゴリズムを安全に保持できるセキュアな環境において、本実施形態では、対になるリスト８１−ＱとＩＣカード７２−Ｑとを生成する。リスト生成装置１０１によって生成されたリスト８１−Ｑは、安全にパーソナルコンピュータ７１−Ｑに届けられる（例えば記録される）。また、ＩＣカード７２−Ｑは、生成されたリスト８１−Ｑとともに安全に、パーソナルコンピュータ７１−Ｑのユーザに届けられる。
【０１１４】
リスト８１−Ｑを生成するために用いられた鍵やアルゴリズムは、ＩＣカード７２−Ｑのセキュアエリア内に保持されており、他のＩＣカード７２−Ｐ（Ｐは１乃至Ｎのうちの何れかの整数値であって、Ｑとは異なる整数値）には保持されていない。したがって、リスト８１−Ｑを保持するパーソナルコンピュータ７１−Ｑに対して、ＩＣカード７２−Ｑを用いるとログインに成功するが、ＩＣカード７２−Ｐを用いるとログインに失敗する。
【０１１５】
なお、以下、パーソナルコンピュータ７１−１乃至７１−Ｎを個々に区別する必要がない場合、これらをまとめてパーソナルコンピュータ７１と称する。同様に、ＩＣカード７２−１乃至７２−Ｎを個々に区別する必要がない場合、これらをまとめてＩＣカード７２と称する。
【０１１６】
以下、図８の認証システム１５１の各構成要素、すなわち、リスト生成装置１０１、パーソナルコンピュータ７１、及びＩＣカード７２の各構成について、その順番に順次説明していく。
【０１１７】
[リスト生成装置１０１の機能的構成例を示すブロック図]
最初に、リスト生成装置１０１の構成について説明する。
【０１１８】
図９は、リスト生成装置１０１の機能的構成例を示すブロック図である。
【０１１９】
図９のリスト生成装置１０１は、制御部１６１、乱数発生部１６２、暗号化部１６３、生成部１６４、および記憶部１６５から構成される。
【０１２０】
制御部１６１は、リスト生成装置１０１の全体の制御を行う。例えば、制御部１６１は、組み合わせの番号ｉを管理する。
【０１２１】
乱数発生部１６２は、チャレンジＣとレスポンスＲとの組み合わせを生成するための原情報として、乱数ＡＸを発生させる。ここで、乱数ＡＸとしては、疑似乱数又は、真正乱数を採用することができる。ただし、疑似乱数は、数字的には離散した数字が得られるが、計算式が明らかになると直前の乱数値から次に発生する乱数が算出可能である。したがって、第三者に盗難された場合に安全性を確保することが困難になる。このため、本実施形態では、真正乱数が乱数ＡＸとして採用されている。この場合、乱数発生部１６２は、リスト生成装置１０１内の各種情報、例えば、時間情報、バッテリの残量情報、加速度センサ情報、温度センサ情報、メモリ残量、CPU(Central Processing Unit)負荷情報などの複数の情報をパラメータとして、真正乱数である乱数ＡＸを算出する。これにより、外部から推測不可能な乱数ＡＸが生成されるため、たとえ第三者に盗難されても、安全性を確保することができる。
【０１２２】
暗号化部１６３は、暗号化アルゴリズムＥ１１に従って、鍵ＫＣを用いて、乱数発生部１６２によって発生された乱数ＡＸを暗号化することで、チャレンジＣを生成する。また、暗号化部１６３は、暗号化アルゴリズムＥ１２に従って、鍵ＫＣを用いて、同一の乱数ＡＸを暗号化することによって、レスポンスＲを生成する。暗号化部１６３は、このような一連の処理を乱数ＡＸを変更してｎ回繰り返すことによって、チャレンジＣとレスポンスＲとの組み合わせをｎ通り生成する。
【０１２３】
生成部１６４は、リスト８１を生成する。すなわち、生成部１６４は、暗号化部１６３によってチャレンジＣとレスポンスＲとの組み合わせが生成される毎に、当該組み合わせをリスト８１に追加する処理を繰り返す。このような処理がｎ回繰り返されると、チャレンジＣとレスポンスＲとの組み合わせがｎ個格納されたリスト８１が生成される。
【０１２４】
記憶部１６５は、リスト８１の生成に必要な鍵ＫＣ及び暗号化アルゴリズムＥ１１，Ｅ１２を記憶する。
【０１２５】
以上、リスト生成装置１０１の構成について説明した。次に、パーソナルコンピュータ７１の構成について説明する。
[パーソナルコンピュータ７１のハードウエア構成例を示すブロック図]
図１０は、パーソナルコンピュータ７１のハードウエア構成例を示すブロック図である。
【０１２６】
図１０において、CPU１８１は、ROM（Read Only Memory）１８２に記録されているプログラムに従って各種の処理を実行する。または、保持手段としての記憶部１８８からRAM（Random Access Memory）１８３にロードされたプログラムに従って各種の処理を実行する。
【０１２７】
RAM１８３にはまた、CPU１８１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０１２８】
CPU１８１、ROM１８２、およびRAM１８３は、バス１８４を介して相互に接続されている。このバス１８４にはまた、入出力インタフェース１８５も接続されている。
【０１２９】
入出力インタフェース１８５には、キーボード、マウスなどよりなる入力部１８６、ディスプレイなどよりなる提示手段としての出力部１８７が接続されている。また、ハードディスクなどより構成される記憶部１８８、および、モデム、ターミナルアダプタなどより構成される通信部１８９が接続されている。通信部１８９は、インターネットを含むネットワークを介して他の装置（図示せず）との間で行う通信を制御する。通信部１８９はまた、近接したＩＣカード７２との間で行う、電磁波を利用した非接触通信を制御する。
【０１３０】
入出力インタフェース１８５にはまた、必要に応じてドライブ１９０が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどよりなるリムーバブルメディア１９１が適宜装着される。そして、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部１８８にインストールされる。
【０１３１】
[CPU１８１の機能的構成例を示すブロック図]
図１１は、図１０のパーソナルコンピュータ７１のCPU１８１が有する機能のうち、ＩＣカード７２を認証する機能についての機能的構成例を示すブロック図である。
【０１３２】
図１１のCPU１８１は、認証処理を実行するために、制御部２０１、選択部２０２、送信制御部２０３、受信制御部２０４、認識部２０５、記憶制御部２０６、及び表示制御部２０７を有している。なお、リスト生成部２０８は、上述の図５のリストの生成手法を採用する場合、すなわち、パーソナルコンピュータ７１内でリスト８１の生成が必要な場合に、CPU１８１に設けられる。
【０１３３】
本実施形態においては、CPU１８１は、所定のプログラムを実行することにより、制御部２０１、選択部２０２、送信制御部２０３、受信制御部２０４、認識部２０５、記憶制御部２０６、表示制御部２０７、およびリスト生成部２０８の各機能を発揮させることができる。
【０１３４】
制御部２０１は、選択部２０２乃至リスト生成部２０８を適宜制御して、認証処理の全体を制御する。例えば、制御部２０１は、認証回数ｉを管理する。
【０１３５】
選択部２０２は、認証回数ｉの認証処理が実行される場合、記憶部１８８に記憶されているリスト８１を参照して、チャレンジＣｉとレスポンスＲｉとの組み合わせを選択する。
【０１３６】
送信制御部２０３は、通信部１８９を制御して、例えば、選択部２０２により選択されたチャレンジＣｉを所定時間間隔毎に送信する。なお、チャレンジＣｉの送信タイミングは、特にこれに限定されない。チャレンジＣｉの送信タイミングのその他の例については後述する。
【０１３７】
受信制御部２０４は、通信部１８９を制御して、ＩＣカード７２から送信されてきたレスポンスＲを受信する。
【０１３８】
認証部２０５は、受信制御部２０４に受信されたレスポンスＲと、選択部２０２によって選択されたレスポンスＲｉとを比較し、一致する場合には認証成功と判定し、一致しない場合には認証失敗と判定する。すなわち、レスポンスＲとレスポンスＲｉとが一致する場合には、認証部２０５は、ＩＣカード７２を認証する。
【０１３９】
記憶制御部２０６は、リスト８１の記憶部１８８への記憶を制御する。すなわち、出荷前にリスト生成装置１０１によりリスト８１が生成された時、又は、パーソナルコンピュータ７１内のリスト生成部２０８によりリスト８１が生成又は更新された時、記憶制御部２０６は動作する。また、記憶制御部２０６は、認証回数ｉの記憶部１８８への記憶を制御する。
【０１４０】
表示制御部２０７は、出力部１８７の表示を制御する。例えば、認証部２０５によって認証失敗であると判定された場合、表示制御部２０７は、所定の警告を示す画像を出力部１８７の表示部に表示させる。
【０１４１】
組み合わせ生成手段としてのリスト生成部２０８は、パーソナルコンピュータ７１内でリスト８１を生成すべく、乱数発生部２２１、および生成部２２２を有している。
【０１４２】
乱数発生部２２１は、チャレンジＣとレスポンスＲとの組み合わせを生成するための原情報として、乱数ＡＸｉを発生させる。上述したように、本実施形態では、真正乱数が乱数ＡＸとして採用されているとし、乱数発生部２２１は、外部から推測不可能な乱数ＡＸを生成するようにしている。
【０１４３】
生成部２２２は、リスト８１を生成する。すなわち、乱数発生部２２１により乱数ＡＸｉが発生する毎に、生成部２２２は、乱数ＡＸｉを用いて、チャレンジＣｉとレスポンスＲｉとの組み合わせを生成し、当該組み合わせをリスト８１に追加する。このような処理がｎ回繰り返されると、ｎ通りのチャレンジＣとレスポンスＲとの組み合わせが格納されたリスト８１が生成される。
【０１４４】
以上、パーソナルコンピュータ７１の構成について説明した。次に、ＩＣカード７２の構成について説明する。
【０１４５】
[ＩＣカード７２の機能的構成例を示すブロック図]
図１２は、ＩＣカード７２の機能的構成例を示すブロック図である。
【０１４６】
図１２のＩＣカード７２は、制御部２４１、記憶部２４２、受信部２４３、復号化部２４４、暗号化部２４５、および送信部２４６から構成される。これらの機能ブロックは、図示せぬセキュアエリア内に設けられている。
【０１４７】
制御部２４１は、ＩＣカード７２の全体の制御を行う。
【０１４８】
保持手段としての記憶部２４２は、認証処理に必要な情報、すなわち、鍵ＫＣ、復号化アルゴリズムＤ１１、及び暗号化アルゴリズムＥ１２を記憶する。
【０１４９】
受信部２４３は、パーソナルコンピュータ７１から送信されてきたチャレンジＣｉを受信する。
【０１５０】
復号化部２４４は、記憶部２４２に記憶された復号化アルゴリズムＤ１１に従って、記憶部２４２に記憶された鍵ＫＣを用いて、受信部２４３に受信されたチャレンジＣｉを復号化することによって、算出値Ａｉを求める。
【０１５１】
暗号化部２４５は、記憶部２４２に記憶された暗号化アルゴリズムＥ１２に従って、記憶部２４２に記憶された鍵ＫＣを用いて、復号化部２４４によって求められた算出値Ａｉを暗号化する。
【０１５２】
送信部２４６は、暗号化部２４５によって暗号化された算出値Ａｉを、レスポンスＲとしてパーソナルコンピュータ７１に送信する。なお、ＩＣカード７２としては、電子マネー、プリペイドカード、社員証、ＩＤカードなどとして実際に利用されているFeliCa（ソニー株式会社の登録商標）、Mifare（登録商標）等を適用することができる。このカードには既に相互認証のための暗号化アルゴリズムと復号化アルゴリズムが用意されており、専用の鍵ＫＣのみ新たに割り当てを受ければよい。
【０１５３】
以上、図８の認証システム１５１の各構成要素、すなわち、リスト生成装置１０１、パーソナルコンピュータ７１、及びＩＣカード７２の各構成について、その順番に順次説明した。
【０１５４】
そこで、以下、図８の認証システム１５１の各構成要素、すなわち、リスト生成装置１０１、パーソナルコンピュータ７１、及びＩＣカード７２の各動作について、その順番に順次説明する。
【０１５５】
すなわち、最初に、図１３を参照して、リスト生成装置１０１が実行するリスト生成処理について説明する。次に、図１４と図１５を参照して、リスト生成処理により生成されたリスト８１を用いた、パーソナルコンピュータ７１とＩＣカード７２が実行する認証処理について説明する。なお、本実施形態では、パーソナルコンピュータ７１がＩＣカード７２を認証する片側認証処理であるので、ＩＣカード７２が実行する片側認証処理を、片側被認証処理と称する。
【０１５６】
[リスト生成処理]
図１３は、リスト生成装置１０１によるリスト生成処理の一例を説明するフローチャートである。
【０１５７】
ステップＳ１において、制御部１６１は、リスト８１に格納する組み合わせの番号ｉ＝１に設定する。
【０１５８】
ステップＳ２において、乱数発生部１６２は、番号ｉの乱数ＡＸｉを発生させる。
【０１５９】
ステップＳ３において、暗号化部１６３は、暗号化アルゴリズムＥ１１に従って、鍵ＫＣを用いて、乱数ＡＸｉを暗号化してチャレンジＣｉを生成する。
【０１６０】
ステップＳ４において、暗号化部１６３は、暗号化アルゴリズムＥ１２に従って、鍵ＫＣを用いて、乱数ＡＸｉを暗号化してレスポンスＲｉを生成する。
【０１６１】
ステップＳ５において、生成部１６４は、チャレンジＣｉとレスポンスＲｉの組み合わせをリスト８１に追加する。
【０１６２】
ステップＳ６において、制御部１６１は、処理の終了が指示されたかを判定する。
【０１６３】
処理の終了がまだ指示されていない場合、ステップＳ６においてＮＯであると判定されて、処理はステップＳ７に進む。
【０１６４】
ステップＳ７において、制御部１６１は、番号ｉを１だけインクリメントする（ｉ＝ｉ＋１）。番号ｉがインクリメントされると、処理はステップＳ２に戻され、それ以降の処理が繰り返される。すなわち、処理の終了が指示されない限り、乱数ＡＸｉが変更されて、ステップＳ２乃至Ｓ７のループ処理が繰り返されて、その都度、チャレンジＣとレスポンスＲとの組み合わせがリスト８１に１つずつ追加されていく。
【０１６５】
その後、ステップＳ２乃至Ｓ７の処理がｎ回繰り返されると、処理の終了が指示されたとして、ステップＳ６においてＹＥＳであると判定されて、リスト生成処理は終了する。これにより、ｎ通りの組み合わせが格納されたリスト８１が生成される。
【０１６６】
このように、リスト生成処理では、処理の終了が指示されるまでチャレンジＣとレスポンスＲの組み合わせがリスト８１に順次追加されていくので、リスト８１に格納されるチャレンジＣとレスポンスＲの組み合わせの総数ｎは、任意の数とすることができる。すなわち、ユーザは、図６を参照して上述したように、認証システム６１が必要とするセキュリティ強度とコストとのバランスに合わせて、リスト８１を生成することができる。
【０１６７】
リスト生成処理によって生成されたリスト８１は、安全にパーソナルコンピュータ７１に届けられる。また、本実施形態では、リスト８１が生成される工場等では、リスト８１と共に、ＩＣカード７２が生成される。このＩＣカード７２は、上述したように、セキュアエリア９１内に、リスト８１の生成に用いられたものと同一の鍵ＫＣ、リスト８１の生成に用いられた暗号化アルゴリズムＥ１１に対応する復号化アルゴリズムＤ１１、およびリスト８１の生成に用いられたものと同一の暗号化アルゴリズムＥ１２を有している。このように対として生成されたリスト８１とＩＣカード７２とは、それぞれ安全にユーザに届けられる。リスト８１は、例えば所定のＣＤ、半導体メモリ等のリムーバブルメディアに記録して提供することもできる。
【０１６８】
以上、リスト生成処理について説明した。次に、リスト生成処理により生成されたリスト８１を用いた認証処理として、パーソナルコンピュータ７１がＩＣカード７２を認証する片側認証処理について説明する。
【０１６９】
[パーソナルコンピュータ７１の片側認証処理]
図１４は、パーソナルコンピュータ７１の片側認証処理の一例を説明するフローチャートである。
【０１７０】
ここでは、ＩＣカード７２に対する認証回数ｉは記憶部１８８に記憶されて管理されているものとする。また、リスト８１もリムーバブルメディアから記憶部１８８に転送、記憶されているものとする。
【０１７１】
ステップＳ２１において、制御部２０１は、認証回数ｉが記憶部１８８に記憶されているかを判定する。
【０１７２】
認証回数ｉが記憶されていない場合、すなわち、初めての認証である場合、ステップＳ２１においてＮＯであると判定され、処理はステップＳ２２に進む。
【０１７３】
ステップＳ２２において、制御部２０１は、認証回数ｉ＝１に設定する。認証回数ｉ＝１に設定されると、処理はステップＳ２７に進む。なお、ステップＳ２７以降の処理については後述する。
【０１７４】
これに対して、認証回数ｉが記憶されている場合、すなわち、初めての認証でない場合、ステップＳ２１においてＹＥＳであると判定され、処理はステップＳ２３に進む。
【０１７５】
ステップＳ２３において、制御部２０１は、記憶されている認証回数ｉを記憶部１８８から読み出す。
【０１７６】
ステップＳ２４において、制御部２０１は、認証回数ｉを１だけインクリメントする。
【０１７７】
ステップＳ２５において、制御部２０１は、認証回数ｉが、リスト８１の組み合わせの総数ｎよりも大きいかを判定する。
【０１７８】
認証回数ｉがリスト８１の組み合わせの総数ｎよりも小さい場合、ステップＳ２５においてＮＯであると判定され、処理はステップＳ２７に進む。なお、ステップＳ２７以降の処理については後述する。
【０１７９】
これに対して、認証回数ｉがリスト８１の組み合わせの総数ｎよりも大きい場合、ステップＳ２５においてＹＥＳであると判定され、処理はステップＳ２６に進む。
【０１８０】
ステップＳ２６において、制御部２０１は、認証回数ｉ＝１に設定する。すなわち、認証回数ｉがリスト８１の組み合わせの総数ｎを超えた場合とは、前回の認証回数（ｉ−１）がリスト８１の組み合わせの総数ｎであったことを意味する。本実施形態では、認証回数ｉの片側認証処理のときに、チャレンジＣｉとレスポンスＲｉとの組み合わせが用いられる。したがって、認証回数ｉがリスト８１の組み合わせの総数ｎを超えた場合とは、前回の認証回数ｉの認証処理においてリスト８１の最後のチャレンジＣｎとレスポンスＲｎとの組合せが使用された場合、すなわち、リスト８１内の全ての組み合わせが使用された場合を意味する。そこで、このような場合、制御部２０１は、認証回数ｉを１にリセットすることによって、リスト８１の再利用を可能にする。本実施形態では、リスト８１内の組み合わせを先頭から順に使用する。リスト８１内の組み合わせがランダムに選択されると、過去に使用された組み合わせが重複使用されるおそれがあるからである。なお、このような処理は例示であって、例えば、チャレンジＣｉとレスポンスＲｉとの組み合わせを新規に作成するようにしてもよい。
【０１８１】
ステップＳ２７において、選択部２０２は、チャレンジＣｉをリスト８１から選択する。
【０１８２】
ステップＳ２８において、送信制御部２０３は、通信部１８９を制御して、ステップＳ２７の処理で選択されたチャレンジＣｉをＩＣカード７２に送信する。
【０１８３】
図１５を参照して後述するように、ＩＣカード７２は、受信したチャレンジＣｉに対応するレスポンスＲを送信してくる（図１５のステップＳ４４）。そこで、ステップＳ２９において、受信制御部２０４は、ＩＣカード７２からのレスポンスＲを受信したかを判定する。
【０１８４】
レスポンスＲが受信されない場合、ステップＳ２９においてＮＯであると判定されて、処理はステップＳ２８に戻され、それ以降の処理が繰り返される。すなわち、レスポンスＲが受信されるまでの間、ステップＳ２８,Ｓ２９ＮＯのループ処理が繰り返されることによって、所定時間間隔毎にチャレンジＣｉが送信される。なお、所定回数だけチャレンジＣｉを送信してもレスポンスＲが受信できない場合、処理を中止してもよい。
【０１８５】
その後、レスポンスＲが受信された場合には、ステップＳ２９においてＹＥＳであると判定されて、処理はステップＳ３０に進む。
【０１８６】
ステップＳ３０において、認識部２０５は、受信されたレスポンスＲが、ステップＳ２７の処理でリスト８１から選択されたチャレンジＣｉに対応するレスポンスＲｉと一致するかを判定する。
【０１８７】
レスポンスＲがリスト８１から選択されたレスポンスＲｉと一致する場合、処理はステップＳ３１に進む。
【０１８８】
ステップＳ３１において、認証部２０５は、ＩＣカード７２を認証する。これにより、パーソナルコンピュータ７１へのログインが可能になる。
【０１８９】
ステップＳ３２において、記憶制御部２０６は、記憶部１８８を制御して認証回数ｉを記憶する。これによりパーソナルコンピュータの片側認証処理が終了する。
【０１９０】
これに対して、レスポンスＲがリスト８１から選択されたレスポンスＲｉと一致しない場合、認証失敗を意味するので、処理はステップＳ３３に進む。
【０１９１】
ステップＳ３３において、表示制御部２０７は、認証失敗の警告を示す画像を、出力部１８７の表示部に表示させる。これにより、処理はステップＳ３２に進む。
【０１９２】
ステップＳ３２において、記憶制御部２０６は、記憶部１８８を制御して認証回数ｉを記憶する。これによりパーソナルコンピュータの片側認証処理が終了する。
【０１９３】
このようなパーソナルコンピュータの片側認証処理に対して、ＩＣカード７２の片側被認証処理は次のようにして実行される。
【０１９４】
[ＩＣカード７２の片側被認証処理]
図１５は、ＩＣカード７２の片側被認証処理の一例を説明するフローチャートである。
【０１９５】
ステップＳ４１において、受信部２４３は、パーソナルコンピュータ７１からチャレンジＣｉを受信したかを判定する。このチャレンジＣｉは、図１４のステップＳ２８の処理で送信されたものである。
【０１９６】
チャレンジＣｉを受信していない場合、ステップＳ４１においてＮＯであると判定されて、処理はステップＳ４１に戻され、それ以降の処理が繰り返される。すなわち、チャレンジＣｉを受信するまでの間、ステップＳ４１の判定処理が繰り返されて、ＩＣカード７２の片側被認証処理は待機状態となる。
【０１９７】
その後、チャレンジＣｉを受信した場合には、ステップＳ４１においてＹＥＳであると判定されて、処理はステップＳ４２に進む。
【０１９８】
ステップＳ４２において、復号化部２４４は、復号化アルゴリズムＤ１１に従って、鍵ＫＣを用いて、チャレンジＣｉを復号化することによって、算出値Ａｉを求める。
【０１９９】
ステップＳ４３において、暗号化部２４５は、暗号化アルゴリズムＥ１２に従って、鍵ＫＣを用いて、算出値Ａｉを暗号化する。
【０２００】
ステップＳ４４において、送信部２４６は、暗号化された算出値ＡｉをレスポンスＲとしてパーソナルコンピュータ７１に送信する。
【０２０１】
これにより、ＩＣカード７２の片側被認証処理は終了する。
【０２０２】
このように、本実施形態においては、認証する側のパーソナルコンピュータ７１は、鍵とアルゴリズムを保持することなく、ＩＣカード７２を認証する。一方で、リスト生成装置１０１とＩＣカード７２は、セキュアな環境で鍵とアルゴリズムを保持する。これにより、認証側のパーソナルコンピュータ７１は、セキュアでない環境でＩＣカード７２を認証しても、安全性を確保することができる。
【０２０３】
また、パーソナルコンピュータ７１−１乃至７１−Ｎがそれぞれ保持するリスト８１−１乃至８１−Ｎは、相互に異なっている。したがって、仮に１つのパーソナルコンピュータ７１が保持するリスト８１が第三者に盗難されたとしても、他のパーソナルコンピュータ７１のセキュリティに対して影響を及ぼすおそれはない。
【０２０４】
従って、上述したように、ＩＣカード７２を、セキュアエリアを有さないパーソナルコンピュータ７１へのログイン処理に用いると好適である。その理由は次のとおりである。
【０２０５】
まず、パーソナルコンピュータ７１はロックされていることから、そもそもパーソナルコンピュータ７１にログインできない第三者は、パーソナルコンピュータ７１が保持するリスト８１を取得することはできない。仮に何らかの手段によって、第三者が、パーソナルコンピュータ７１が保持するリスト８１を取得したとしても、リスト８１を生成した鍵と暗号化アルゴリズムまでは取得することができない。なぜならば、リスト８１を生成した鍵と暗号化アルゴリズムは、パーソナルコンピュータ７１内には保持されておらず、パーソナルコンピュータ７１の生成工場等のセキュアな環境に保持されているからである。
【０２０６】
また、パーソナルコンピュータ７１−１乃至７１−Ｎがそれぞれ保持するリスト８１−１乃至８１−Ｎは、相互に異なっている。したがって、第三者が、仮に何らかの手段で、例えばパーソナルコンピュータ７１−１が保持するリスト８１−１を取得したとしても、取得したリスト８１−１を用いて他のパーソナルコンピュータ７１−２乃至７１−Ｎへログインすることはできない。
【０２０７】
さらに、パーソナルコンピュータ７１が有するリスト８１には、上述した組み合わせデータ群１４１の全ての組み合わせを格納する必要は特に無く、組み合わせデータ群１４１の一部の組み合わせを格納してもよい。このような場合には、たとえ第三者によってリスト８１が盗難されることがあったとしても、ユーザは、組み合わせデータ群１４１の別の一部の組み合わせを用いてリスト８１を更新すればよい。これにより、その後、第三者は、盗難したリスト８１を使用したとしても、パーソナルコンピュータ７１にログインすることができなくなる。
【０２０８】
また、第三者が、盗難したリスト８１を基にして、対となるＩＣカード７２になりすますことは非常に困難である。すなわち、図６を参照して説明したように、例えば、第三者がチャレンジＣｉに対応するレスポンスＲｉを知っていたとしても、同一のチャレンジＣｉが再度認証に使用されるまでの最大試行回数はリスト８１の組み合わせ総数ｎに等しい。したがって、第三者は、多数の組み合わせの中から該当するチャレンジＣｉが送信されてくるのを常時監視し、それに対応するレスポンスＲｉを送信しなければならないため、対となるＩＣカード７２になりすます行為は非常に困難になる。
【０２０９】
[セキュリティ強度の向上]
以上のように、本発明が適用される認証システムを採用することで、セキュアでない環境で片側認証処理を実行しても、セキュリティ強度は高いものになる。しかしながら、セキュアでない環境である以上、完全なセキュリティを確立することは困難である。そこで、以下、セキュリティ強度のさらなる向上を図ることができる措置について幾つか説明する。
【０２１０】
上述した図１４の片側認証処理の例では、パーソナルコンピュータ７１は、所定時間間隔毎にチャレンジＣｉを定期的に送信していた。この場合、ＩＣカード７２を有していない第三者が、チャレンジＣｉを取得し易くなる。そこで、認証システム６１のセキュリティ強度の向上を図るために、パーソナルコンピュータ７１は、チャレンジＣｉを送信する前に、ＩＣカード７２を検出するための制御信号（以下、ポーリングと称する）を送信するようにしてもよい。ポーリングを受信したＩＣカード７２は、当該ポーリングに対する返答を示す制御信号をパーソナルコンピュータ７１に送信する。パーソナルコンピュータ７１は、この制御信号を受信した場合にのみ、チャレンジＣｉの送信を開始する。
【０２１１】
さらに、よりセキュリティ強度を向上せるために、ポーリングに対する返答を示す制御信号に、ＩＣカード７２のカード識別子Idmの情報を含ませるとよい。この場合、パーソナルコンピュータ７１は、ＩＣカード７２からの制御信号に基づいて、カード識別子Idmを認識し、認識したカード識別子IdmがＩＣカード７２のものであることを特定できた場合にのみ、チャレンジＣｉの送信を開始する。
【０２１２】
[リスト８１の組み合わせが有限であることへの措置]
ところで、リスト８１に格納される組み合わせの総数ｎは有限であるため、リスト８１のすべての組み合わせの総数ｎを最後まで使用した場合には、何かしらの措置が必要になる。このような措置としては、上述した実施形態では、再度、リスト８１の先頭の組み合わせから再利用する措置を取っている。
【０２１３】
しかしながら、当該措置に特に限定されず、その他例えば、現在のリスト８１を最後まで使用した場合には、新たにリスト８１を生成して更新する措置を取るようにしてもよい。この場合、新たなリスト８１は、図４と図５を参照して説明したように、リスト生成装置１０１によって生成されてもよいし、パーソナルコンピュータ７１によって生成されてもよい。リスト生成装置１０１により生成された新たなリスト８１は、そのユーザに再度提供される。
【０２１４】
また、パーソナルコンピュータ７１は、新たな組み合わせを適当なタイミングで適宜生成してリスト８１に追加し、次回の認証時には、新しい組み合わせが追加されたリスト８１を用いる措置を取ってもよい。
【０２１５】
例えば、パーソナルコンピュータ７１は、ＩＣカード７２がログインに成功したタイミングで、新たな組み合わせを生成してリスト８１に追加することができる。具体的には例えば、パーソナルコンピュータ７１は、ＩＣカード７２がログインに成功した時に、新たにＭ通り（Ｍは任意の整数値）のチャレンジＣとレスポンスＲとの組み合わせを生成して、リスト８１に追加することができる。
【０２１６】
ここで、Ｉ回目（Ｉは１乃至Ｎの何れかの整数値）のログイン成功時にＪ番目（Ｊは１乃至Ｍの何れかの整数値）に生成された組み合わせを（チャレンジＣ（Ｉ，Ｊ），レスポンスＲ（Ｉ，Ｊ））と記述すると、ＩＣカード７２によるＮ回目のログイン成功時には、最初のリスト８１に対して、次のようなＮ×Ｍ組の組み合わせが新たに生成されていることになる。
【０２１７】
（チャレンジＣ（１，１），レスポンスＲ（１，１））、
（チャレンジＣ（１，２），レスポンスＲ（１，２））・・・
（チャレンジＣ（１，Ｍ），レスポンスＲ（１，Ｍ））
【０２１８】
（チャレンジＣ（２，１），レスポンスＲ（２，１））、
（チャレンジＣ（２，２），レスポンスＲ（２，２））・・・
（チャレンジＣ（２，Ｍ），レスポンスＲ（２，Ｍ））
【０２１９】
・・・
（チャレンジＣ（Ｎ，１），レスポンスＲ（Ｎ，１））、
（チャレンジＣ（Ｎ，２），レスポンスＲ（Ｎ，２））・・・
（チャレンジＣ（Ｎ，Ｍ），レスポンスＲ（Ｎ，Ｍ））
【０２２０】
このようにしてＮ回目のログイン時には、最初のリスト８１に対して、Ｎ×Ｍ個の新たな組み合わせが追加されており、次回の認証時には、これらの追加された新たな組み合わせを含むリスト８１が用いられる。このようにして、リスト８１の組み合わせの全てが使用されてしまうのを回避することができる。
【０２２１】
なお、この場合、パーソナルコンピュータ７１は、１つの組み合わせのみを用いて１回の正当性の判断でＩＣカード７２を認証するのではなく、任意の複数の組み合わせを用いて複数回正当性を判断して、ＩＣカード７２を認証するようにしてもよい。これにより、セキュリティ強度が向上する。
【０２２２】
さらに、パーソナルコンピュータは、ＩＣカード７２を認証するときに用いる複数の組み合わせとして、離散した日時に生成されたものを用いると、より一段とセキュリティ強度が向上する。
【０２２３】
具体的には例えば、
（チャレンジＣ（Ｉ，１），レスポンスＲ（Ｉ，１））、
（チャレンジＣ（Ｉ，２），レスポンスＲ（Ｉ，２））・・・
（チャレンジＣ（Ｉ，Ｍ），レスポンスＲ（Ｉ，Ｍ））は、
Ｉ回目のログイン成功時にほぼ同時に生成され、パーソナルコンピュータ７１とＩＣカード７２との間をほぼ同時に伝送されている。したがって、パーソナルコンピュータ７１は、これらＭ個の組み合わせを用いてＩＣカード７２を認証しないようにする。
【０２２４】
その代わりに、パーソナルコンピュータ７１は、Ｎ＋１回目の認証の際には、１乃至Ｎ回のうち異なるＬ回分のログイン時に生成された組み合わせを用いるとよい。例えば、パーソナルコンピュータ７１は、互いに異なる認証時に生成された組み合わせである
（チャレンジＣ（１，１），レスポンスＲ（１，１））、
（チャレンジＣ（２，１），レスポンスＲ（２，１））、・・・
（チャレンジＣ（Ｌ，１），レスポンスＲ（Ｌ，１））
を用いて、ＩＣカード７２を認証することができる。
【０２２５】
また、次のＮ＋２回目の認証時には、パーソナルコンピュータ７１は、例えば、
（チャレンジＣ（１，２），レスポンスＲ（１，２））、
（チャレンジＣ（２，２），レスポンスＲ（２，２））・・・
（チャレンジＣ（Ｌ，２），レスポンスＲ（Ｌ，２））
を用いて、ＩＣカード７２を認証してもよい。
【０２２６】
或いはまた、Ｎ＋２回目の認証時には、パーソナルコンピュータは、２Ｌ≦Ｎ＋１ならば、例えば、
（チャレンジＣ（Ｌ＋１，１），レスポンスＲ（Ｌ＋１，１））、
（チャレンジＣ（Ｌ＋２，１），レスポンスＲ（Ｌ＋２，１））・・・
（チャレンジＣ（２Ｌ，１），レスポンスＲ（２Ｌ，１））
を用いて、ＩＣカード７２を認証してもよい。
【０２２７】
要するに、異なる回のログイン成功時の各々のタイミングで生成された組み合わせを用いてＩＣカード７２を認証することが必要である。このためには、例えば、パーソナルコンピュータ７１は、組み合わせの生成日時を記録したり、あるいはログイン成功番号を記録する。なお、ログイン成功番号は、ログインが成功する毎に１ずつインクリメントされていくとする。すなわち、ログイン成功番号はログインに成功した回数を表わす。これにより、パーソナルコンピュータ７１は、次回認証時に、生成日時やログイン成功番号を利用して組み合わせを選択することで、時間的に離散した組み合わせを確実に選択することができる。
【０２２８】
さらに、また、ＩＣカード７２の認証に用いた組み合わせは、次回以降の認証には用いないことも必要である。このためには、パーソナルコンピュータ７１は、例えば、一度使用した組み合わせをリスト８１から削除する。これにより、一度使用した組み合わせが再度使用されてしまうことが防止され、かつ、リスト８１の容量が増加するのも防止される。
【０２２９】
また、リスト８１に追加する組み合わせの数は、毎回同じにする必要は特に無く、例えばリスト８１の空き容量に応じて自動的に調整してもよい。例えば、ログインに成功しない場合には、ログインに使用された組み合わせはリスト８１から削除されるが、新しい組み合わせは生成されない場合があるとする。このような場合には、パーソナルコンピュータ７１は、次にログインが成功した時に通常よりも多くの組み合わせを生成して追加することにより、組み合わせが足りなくなることを回避することができる。
【０２３０】
以上、リスト８１の組み合わせの総数ｎが有限であることに対する措置について幾つかの例を説明した。当然ながら、上述した措置は例示であって、その他の措置を単独で或いは組み合わせて取ることができる。例えば、リスト８１の最後の組み合わせに近づいてきたときに、ユーザに対して何らかの警告を提示する措置を取ってもよい。このような警告を提示する措置と、上述した措置、例えば、リスト８１を新たに生成する措置や、ログイン成功時に組み合わせを追加する措置とを組み合わせてもよい。すなわち、警告と同時に、リスト８１を新たに生成する措置や、ログイン成功時に組み合わせを追加する措置を取ることを薦める報知をユーザにしてもよい。なお、このような警告や報知をしたにも関わらず、ユーザが何ら措置を取ることがなく、リスト８１の最後の組み合わせが使用されてしまった場合には、ＩＣカード７２によるログインを無効にしてもよい。この場合、例えば、従来のアカウント名とパスワードを用いるような他の手段によるログインに切り替えるようにしてもよい。
【０２３１】
[抜き打ち認証手法]
ところで、リスト８１の組み合わせの総数ｎが有限であることに対する措置として、ログイン成功時に組み合わせを追加する措置を取る場合には、注意が必要である。すなわち、パーソナルコンピュータは、ログイン直後に、新たなチャレンジＣを送信して、チャレンジＣを受信したＩＣカード７２からレスポンスＲが送信されてきた場合、送信したチャレンジＣとレスポンスＲとの組み合わせを生成して追加する。このときに、別のＩＣカード７２がパーソナルコンピュータに近接すると、パーソナルコンピュータ７１は、別のＩＣカード７２に対してもチャレンジＣを送信し、別のＩＣカード７２からのレスポンスＲを受信してしまい、不適切な組み合わせを生成して追加してしまうおそれがある点に注意が必要である。
【０２３２】
そこで、パーソナルコンピュータ７１は、別のＩＣカード７２からのレスポンスＲを受信しないように、新たな組み合わせを生成して追加する最中や直後に、対象のＩＣカード７２を認証するようにしてもよい。すなわち、パーソナルコンピュータ７１は、リスト８１の組み合わせの中からチャレンジＣｉを選択してＩＣカード７２に送信し、レスポンスＲを受信する。そして、パーソナルコンピュータ７１は、受信したレスポンスＲがチャレンジＣｉに対応するレスポンスＲｉである場合に、ＩＣカード７２を認証する。このようなＩＣカード７２を認証する手法は、いわば、抜き打ちでＩＣカード７２を認証する手法であるといえる。そこで、このような手法を、以下、「抜き打ち認証手法」と称する。
【０２３３】
抜き打ち認証手法において、パーソナルコンピュータ７１は、受信したレスポンスＲが、送信したチャレンジＣｉと対になるレスポンスＲｉとは異なる場合、認証失敗と判断する。パーソナルコンピュータ７１は、認証失敗と判断した場合には、例えば、直前のログイン後に新たに生成してリスト８１に追加した組み合わせの全てを破棄することができる。これにより、不適切な組み合わせを完全に除去できるので、セキュリティ強度が向上する。
【０２３４】
さらに、パーソナルコンピュータ７１は、認証失敗を示す警告をユーザに提示することができる。これにより、ユーザは、パーソナルコンピュータ７１が第三者から攻撃を受けたことを認識できるようになる。
【０２３５】
このように認証失敗に対する措置も取った上で、抜き打ち認証手法を採用することで、パーソナルコンピュータ７１は、ＩＣカード７２によるログイン操作時だけではなく、任意のタイミングで、新たな組み合わせを生成してリスト８１に追加することが可能になる。
【０２３６】
なお、抜き打ち認証手法による認証処理の頻度を多くすると、リスト８１内の組み合わせを全て使い切ってしまうおそれもある。そこで、このようなおそれを回避するために、抜き打ち認証手法による認証処理の際には、専用の組み合わせを用い、一度使用しても削除しないようにすることができる。すなわち、パーソナルコンピュータ７１は、ＩＣカード７２を認証する場合、まずは専用の組み合わせを用いたいわゆる抜き打ち認証処理を実行し、認証に成功した場合にのみ、再度、リスト８１を用いて正式な認証処理を実行する。
【０２３７】
或いはまた、上述したように、ＩＣカード７２のカード識別子Idmを用いるようにしても、抜き打ち認証手法の採用によりリスト８１を使い切ってしまうおそれを回避することができる。具体的には、パーソナルコンピュータ７１は、ＩＣカード７２のカード識別子Idmを記憶しておき、当該識別子Idmを示す情報を含む制御信号がＩＣカード７２から送信されてきた直後にのみ、リスト８１を用いてＩＣカード７２を認証する。
【０２３８】
[リスト８１が第三者に盗難されたことが分かる仕組み]
さらにセキュリティ強度を向上させるために、リスト８１が第三者に盗難された場合には、その旨の警告をユーザに提示すると好適である。しかしながら、このような警告を提示するためには、パーソナルコンピュータ７１は、リスト８１が第三者に盗難されたことを認識する必要がある。そこで、以下、リスト８１が第三者に盗難されたことをパーソナルコンピュータ７１が認識できる手法の例について説明する。
【０２３９】
すなわち、当該手法では、パーソナルコンピュータ７１（若しくはリスト生成装置１０１）は、リスト８１を生成又は更新する際に、故意に誤ったレスポンスＲを含む組み合わせをリスト８１に紛れ込ませておく。この場合、どのコマンドメッセージが故意に誤ったもの（すなわち罠）であるかを区別できないように、故意に誤ったコマンドメッセージ（罠）をリスト８１に一様に紛れ込ませておく。ただし、パーソナルコンピュータ７１の認証部２０５は、その故意に誤ったレスポンスＲが見分けられるようにしておく。例えば、８バイトで 18 76 13 76 4a 5b d5 d3のコマンドメッセージと、6c 5d 73 76 26 3a be d3のコマンドメッセージが含まれる組み合わせには、パーソナルコンピュータ７１が特別な扱いをするように設定しておく。パーソナルコンピュータ７１は、このようなコマンドメッセージをリスト８１内に含めた上で、ＩＣカード７２のログイン時の認証処理に用いる。
【０２４０】
ここで、仮に第三者がリスト８１を盗難していた場合、第三者は、盗難したリスト８１に基づいてレスポンスＲを送信してくることになる。このような場合には、パーソナルコンピュータ７１は、罠どおりのレスポンスＲが送信されてきた時点で、リスト８１が盗難されたことを認識することができる。パーソナルコンピュータ７１は、リスト８１が盗難されたことを認識すると、例えば、リスト８１が外部に流出したことを示す警告を提示して、ＩＣカード７２による認証を無効にして、他の手段によるログインに切り替えるようにすることができる。このようにして、セキュリティ強度がより一段と向上される。
【０２４１】
[認証システム１５１のビジネスへの利用]
ところで、以上説明してきた認証システム１５１は、様々な分野、様々なビジネスに適用することができる。
【０２４２】
この場合、何れの分野でも、どのようなビジネスでも、パーソナルコンピュータ７１がリスト８１を保持し、かつ、ＩＣカード７２が、セキュアエリア内に、リスト８１と対になる鍵やアルゴリズムを保持する必要がある。
【０２４３】
リスト８１は、パーソナルコンピュータ７１の生成工場等でパーソナルコンピュータ７１の出荷前に組み込まれて販売される場合と、後から販売される場合とが想定される。
【０２４４】
後から販売される場合とは、例えば、パーソナルコンピュータ７１のユーザが、リスト８１が第三者に盗難された可能性があるので新しいリスト８１に変更することを要求してきた場合が想定される。また例えば、パーソナルコンピュータ７１のユーザが、リスト８１の組み合わせを最後まで使い切ったが、もう一度同じリスト８１を使いたくないために、新しいリスト８１を要求してきた場合もまた、後から販売される場合に該当すると想定される。
【０２４５】
後から販売される場合には、リスト８１はその組み合わせ数に応じて価格を変動させるようにすることができる。
【０２４６】
このように、出荷前だけではなく後からリスト８１を販売できるようにすることで、売り切りの商売にのみリスト８１が利用されることを回避することができる。
【０２４７】
また例えば、ＩＣカード７２には、予め複数のログイン用の鍵とアルゴリズムのセットを登録しておくことができる。これにより、ＩＣカード７２を有するユーザは、インターネットを利用して、リスト８１と当該リスト８１に関するソフトウェアとを購入して、パーソナルコンピュータ７１にインストールするだけで、認証システム１５１を利用することが可能になる。
【０２４８】
また例えば、ログインアプリ対応カードとしての各種のＩＣカードは、複数のログイン用の鍵とアルゴリズムのセットを組み込むことで、ＩＣカード７２として機能する。セットの鍵はインターネット上からでも変更できるようにしてもよい。この場合、ＩＣカードのユーザは、ＩＣカード７２として機能させるためにセットを購入した際に、インターネットを利用して鍵を変更する。これにより、それ以降は、当該ユーザが使用したアカウントのみからリスト８１を購入できるようにするビジネスを提供できる。
【０２４９】
また、インターネットを利用して鍵の変更やリスト８１の発行が可能となるように、ＩＣカード７２に予め鍵とセットを登録しておいてもよい。この場合、ユーザは、パーソナルコンピュータ７１を介してインターネットを利用して、リスト生成装置１０１として機能するサーバにアクセスして、例えばＩＣカード７２に関する料金を支払うと、サーバとＩＣカード７２との間で相互認証がなされる。すると、サーバは、ＩＣカード７２のセキュアエリアに保持されているセットの鍵を読み込み、その鍵に基づいてリスト８１を生成する。このようにして生成されたリスト８１が、インターネットを介してユーザのパーソナルコンピュータ７１に届けられる。ユーザは、届けられたリスト８１をパーソナルコンピュータ７１に保持させることで、リスト８１を用いた認証システム１５１による各種サービスの提供を受けることができるようになる。仮に、ユーザは、リスト８１を紛失した場合であっても、異なる乱数に基づく別のリスト８１を再度購入すれば、認証システム１５１を継続利用することができる。このように、購入できるリスト８１は毎回異なるので、第三者がリスト８１を購入してもセキュリティの脅威にはならない。 
【０２５０】
以上、説明したように、本実施形態の認証システム１５１においては、セキュアでない環境にあるパーソナルコンピュータ７１が、ＩＣカード７２を認証する、といった片側認証処理を実行することができる。
【０２５１】
[本発明のプログラムへの適用]
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることができる。
【０２５２】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【０２５３】
このようなプログラムを含む記録媒体は、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク（フロッピディスクを含む）、光ディスク（CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む）、光磁気ディスク（MD（Mini-Disc）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア（パッケージメディア）、例えば図１０のリムーバブルメディア１９１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM、例えば図１０のROM１８２や、例えば図１０の記憶部１８８等に含まれるハードディスクなどで構成される。
【０２５４】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２５５】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０２５６】
本発明は、認証側の装置としては、パーソナルコンピュータの他、携帯電話機、リーダライタ装置等、相手側を認証する片側認証機能を備えた装置であって、セキュアエリアを有しない装置に広く適用することができる。また、本発明は、被認証側の装置としては、ＩＣカードの他、ＩＣタグ等、認証側の装置と通信する機能を備えた装置であって、セキュアエリアを有する装置に広く適用することができる。
【符号の説明】
【０２５７】
６１  認証システム，  ７１  パーソナルコンピュータ，  ７２  ＩＣカード，  ８１  リスト，  ９１  セキュアエリア，  １０１  リスト生成装置，  １２１  セキュアエリア，  １４１  組み合わせデータ群，  １５１  認証システム，  １６１  制御部，  １６２  乱数発生部，  １６３  暗号化部，  １６４  生成部，  １６５  記憶部，  １８８  記憶部，  １８１  CPU，  ２０１  制御部，  ２０２  選択部，  ２０３  送信制御部，  ２０４  受信制御部，  ２０５  認証部，  ２０６  記憶制御部，  ２０７  表示制御部，  ２０８  リスト生成部，  ２２１  乱数発生部，  ２２２  生成部，  ２４１  制御部，  ２４２  記憶部，  ２４３  受信部，  ２４４  復号化部，  ２４５  暗号化部，  ２４６  送信部
【図１】
2011223495.tif 000003
【図２】
2011223495.tif 000004
【図３】
2011223495.tif 000005
【図４】
2011223495.tif 000006
【図５】
2011223495.tif 000007
【図６】
2011223495.tif 000008
【図７】
2011223495.tif 000009
【図８】
2011223495.tif 000010
【図９】
2011223495.tif 000011
【図１０】
2011223495.tif 000012
【図１１】
2011223495.tif 000013
【図１２】
2011223495.tif 000014
【図１３】
2011223495.tif 000015
【図１４】
2011223495.tif 000016
【図１５】
2011223495.tif 000017