JP2006101213A - 情報処理装置および方法、プログラム並びに記録媒体 - Google Patents

情報処理装置および方法、プログラム並びに記録媒体 Download PDF

Info

Publication number
JP2006101213A
JP2006101213A JP2004285068A JP2004285068A JP2006101213A JP 2006101213 A JP2006101213 A JP 2006101213A JP 2004285068 A JP2004285068 A JP 2004285068A JP 2004285068 A JP2004285068 A JP 2004285068A JP 2006101213 A JP2006101213 A JP 2006101213A
Authority
JP
Japan
Prior art keywords
data
information processing
processing apparatus
information
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004285068A
Other languages
English (en)
Inventor
Mitsuhiro Nakamura
光宏 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2004285068A priority Critical patent/JP2006101213A/ja
Publication of JP2006101213A publication Critical patent/JP2006101213A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】通信する機器の情報セキュリティを向上させることができるようにする。
【解決手段】 乱数RanAとアクセス対象リストを含むパケット1を受信した機器Bは、アクセス対象リストに基づいてアクセス対象チェック処理を行い、アクセスするデータの組合せが予め設定された組合せ設定情報に合致するか否かを判定し、組合せ設定情報に合致すると判定された場合、アクセス対象リストに記述されたデータ、またはエリアに対応付けられた定義ブロックに記述される鍵を用いて、所定の情報を暗号化し、機器Aと機器Bの相互認証のための共有鍵を生成する共有鍵生成処理を実行する。機器Bは、乱数RanAを共有鍵で暗号化して、認証用データ1を生成し、乱数RanBとともに機器Aに送信し、機器Aは、認証用データ1を共有鍵で復号することにより機器Bの認証を行う。本発明は、非接触型ICカードに適用することができる。
【選択図】図20

Description

本発明は、情報処理装置および方法、プログラム並びに記録媒体に関し、特に、通信する通信する機器の情報セキュリティを向上させることができるようにする情報処理装置および方法、プログラム並びに記録媒体に関する。
ICカードを用いた各種のトランザクション処理などを行う場合、セキュリティを強化するため、トランザクション処理の実行に先立って、ICカードとリーダライタとが相互に認証(相互認証)を行うことが一般的である。
従来の相互認証は、リーダライタがICカードを認証する場合、リーダライタが、乱数Aを発生し、乱数AをICカードに送信する。ICカードは、乱数Aを、鍵1を用いて所定の暗号アルゴリズムで暗号化し、さらに、鍵2を用いて同じ暗号アルゴリズムで暗号化し、認証用データ1を生成し、認証用データ1をリーダライタに送信する。ここで、鍵1と鍵2は、予めリーダライタとICカードとにより共有されており、暗号アルゴリズムも予めリーダライタとICカードとにより同じ暗号アルゴリズムが実装されている。
次に、リーダライタは、認証用データ1を受信し、鍵2を用いて上述した暗号アルゴリズムに則って復号し、さらに鍵1を用いて同じ暗号アルゴリズムに則って復号する。この処理の結果、乱数Aが得られれば、リーダライタはICカードを(正当なICカードとして)認証する。
一方、ICカードがリーダライタを認証する場合、ICカードが、乱数Bを発生し、乱数Bをリーダライタに送信する。リーダライタは、乱数Bを、鍵1を用いて所定の暗号アルゴリズムで暗号化し、さらに、鍵2を用いて同じ暗号アルゴリズムで暗号化し、認証用データ2を生成し、認証用データ2をICカードに送信する。
次に、ICカードは、認証用データ2を受信し、鍵2を用いて上述した暗号アルゴリズムに則って復号し、さらに鍵1を用いて同じ暗号アルゴリズムに則って復号する。この処理の結果、乱数Bが得られれば、ICカードはリーダライタを(正当なリーダライタとして)認証する。
また、ICカードの情報セキュリティを強化するために、ICカード内でアクセスされるデータの種類などに応じて複数の相互認証用の鍵が設定されることもある。このような場合において、相互認証の確実性を高め、迅速に認証を行うために、予めリーダライタとICカードとにより共有されている鍵(鍵1と鍵2)を利用する代わりに、アクセスされるデータの種類などに応じて定まる鍵を利用して相互認証用の鍵を生成する方法も提案されている(例えば、特許文献1参照)。
すなわち、相互認証用の鍵を、例えば、トランザクションでアクセスするデータがデータD1乃至D5である場合、リーダライタまたはICカードは、データD1に対応付けられた鍵をデータD2に対応付けられた鍵を用いて暗号化し、それをさらに、データD3乃至D5に対応付けられた鍵より順次暗号化し、相互認証用の暗号鍵を生成する。
特開平10−327142号公報
しかしながら、例えば、ICカード内のデータに対して不正なアクセスを試みる第3者は、ICカード内の特定のデータに集中してアクセスすることが多いと考えられる。例えば、電子マネーの残高などが記述される重要なデータは、そのデータを改竄または盗み見ることによって得られる利益が大きく、ICカード内のデータに対して不正なアクセスを試みる第3者に攻撃される可能性が高い。従来の技術では、特定のデータに対して執拗に不正なアクセスを試みられた場合、鍵が解読されてしまう恐れがあった。
本発明はこのような状況に鑑みてなされたものであり、通信する機器の情報セキュリティを向上させることができるようにするものである。
本発明の情報処理装置は、有線または無線により、他の情報処理装置と通信を行う情報処理装置であって、他の情報処理装置が発生する乱数、および自分が記憶する複数のデータのうち、他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第1のパケットを受信する受信手段と、第1のパケットに含まれるアクセス対象リストに基づいて、他の情報処理装置との通信を継続するか否か判定する継続判定手段と、継続判定手段により、他の情報処理装置との通信を継続すると判定された場合、アクセス対象リストに記述されるデータに対応付けられた情報に基づいて、暗号鍵を生成する鍵生成手段と、鍵生成手段により生成された暗号鍵を用いて、第1のパケットに含まれる乱数を暗号化し、他の情報処理装置により自分が認証されるためのデータである第1の認証用データを生成する認証用データ生成手段と、認証用データ生成手段により生成された第1の認証用データ、および自分が発生した乱数を含む第2のパケットを、他の情報処理装置に送信する送信手段とを備えることを特徴とする。
前記他の情報処理装置との通信において、アクセスを許可するデータの組合せを表す組合せ設定情報をさらに記憶するようにすることができる。
前記アクセス対象リストに記述されたデータの組合せが、組合せ設定情報の組み合わせと合致するか否かを判定する組合せ判定手段をさらに備え、継続判定手段は、組合せ判定手段の判定結果に基づいて、他の情報処理装置との通信を継続するか否か判定するようにすることができる。
記憶するデータには、データの全体に関する制御情報である全体制御情報と、それぞれのデータに関する制御情報である個別制御情報が付加され、全体制御情報および個別制御情報には、データを暗号化するとき用いられる鍵の情報が含まれるようにすることができる。
前記鍵生成手段は、アクセス対象リストに記述されたそれぞれのデータに関する個別制御情報に含まれる鍵の情報に基づいて、全体制御情報のうちの予め設定された部分を暗号化することにより、暗号鍵を生成するようにすることができる。
前記鍵生成手段により生成される暗号鍵と同じ暗号鍵が、他の情報処理装置により生成されるようにすることができる。
前記認証用データ生成手段により生成される第1の認証用データは、他の情報処理装置により、暗号鍵を用いて復号され、復号された第1の認証用データの値と、他の情報処理装置が発生した乱数の値とが比較されることにより、他の情報処理装置に自分が認証されるためのデータであるようにすることができる。
前記他の情報処理装置が、第2のパケットに含まれる乱数を、暗号鍵を用いて暗号化することにより生成される第2の認証用データを取得する取得手段をさらに備えるようにすることができる。
前記第2の認証用データを、前記暗号鍵を用いて復号し、復号された前記第2の認証用データの値と、自分が発生した乱数の値とを比較することにより、前記他の情報処理装置を認証するようにすることができる。
他の情報処理装置により組合せ設定情報が変更される場合、組合せ設定情報の変更に先立って、他の情報処理装置を認証するようにすることができる。
前記組合せ設定情報の変更に先立って、他の情報処理装置を認証する場合、鍵生成手段は、全体制御情報に含まれる鍵の情報に基づいて、全体制御情報のうちの予め設定された部分を暗号化することにより、暗号鍵を生成するようにすることができる。
本発明の情報処理方法は、有線または無線により、他の情報処理装置と通信を行う情報処理装置の情報処理方法であって、他の情報処理装置が発生する乱数、および自分が記憶する複数のデータのうち、他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第1のパケットを受信する受信ステップと、第1のパケットに含まれるアクセス対象リストに基づいて、他の情報処理装置との通信を継続するか否か判定する継続判定ステップと、継続判定ステップの処理により、他の情報処理装置との通信を継続すると判定された場合、アクセス対象リストに記述されるデータに対応付けられた情報に基づいて、暗号鍵を生成する鍵生成ステップと、鍵生成ステップの処理により生成された暗号鍵を用いて、第1のパケットに含まれる乱数を暗号化し、他の情報処理装置により自分が認証されるためのデータである第1の認証用データを生成する認証用データ生成ステップと、認証用データ生成ステップの処理により生成された第1の認証用データ、および自分が発生した乱数を含む第2のパケットを、他の情報処理装置に送信する送信ステップとを含むことを特徴とする。
本発明のプログラムは、有線または無線により、他の情報処理装置と通信を行う情報処理装置のプログラムであって、他の情報処理装置が発生する乱数、および自分が記憶する複数のデータのうち、他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第1のパケットの受信を制御する受信制御ステップと、第1のパケットに含まれるアクセス対象リストに基づいて、他の情報処理装置との通信を継続するか否かの判定を制御する継続判定制御ステップと、継続判定制御ステップの処理により、他の情報処理装置との通信を継続すると判定された場合、アクセス対象リストに記述されるデータに対応付けられた情報に基づいて、暗号鍵の生成を制御する鍵生成制御ステップと、鍵生成制御ステップの処理により生成された暗号鍵を用いて、第1のパケットに含まれる乱数を暗号化し、他の情報処理装置により自分が認証されるためのデータである第1の認証用データの生成を制御する認証用データ生成制御ステップと、認証用データ生成制御ステップの処理により生成された第1の認証用データ、および自分が発生した乱数を含む第2のパケットの、他の情報処理装置への送信を制御する送信制御ステップとをコンピュータに実行させることを特徴とする。
本発明の記録媒体は、有線または無線により、他の情報処理装置と通信を行う情報処理装置のプログラムが記録されている記録媒体であって、他の情報処理装置が発生する乱数、および自分が記憶する複数のデータのうち、他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第1のパケットの受信を制御する受信制御ステップと、第1のパケットに含まれるアクセス対象リストに基づいて、他の情報処理装置との通信を継続するか否かの判定を制御する継続判定制御ステップと、継続判定制御ステップの処理により、他の情報処理装置との通信を継続すると判定された場合、アクセス対象リストに記述されるデータに対応付けられた情報に基づいて、暗号鍵の生成を制御する鍵生成制御ステップと、鍵生成制御ステップの処理により生成された暗号鍵を用いて、第1のパケットに含まれる乱数を暗号化し、他の情報処理装置により自分が認証されるためのデータである第1の認証用データの生成を制御する認証用データ生成制御ステップと、認証用データ生成制御ステップの処理により生成された第1の認証用データ、および自分が発生した乱数を含む第2のパケットの、他の情報処理装置への送信を制御する送信制御ステップとをコンピュータに実行させるプログラムが記録されていることを特徴とする。
本発明の情報処理装置および方法、並びにプログラムにおいては、他の情報処理装置が発生する乱数、および自分が記憶する複数のデータのうち、他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第1のパケットが受信され、第1のパケットに含まれるアクセス対象リストに基づいて、他の情報処理装置との通信を継続するか否かが判定され、他の情報処理装置との通信を継続すると判定された場合、アクセス対象リストに記述されるデータに対応付けられた情報に基づいて、暗号鍵が生成され、生成された暗号鍵を用いて、第1のパケットに含まれる乱数が暗号化され、他の情報処理装置により自分が認証されるためのデータである第1の認証用データが生成され、第1の認証用データ、および自分が発生した乱数を含む第2のパケットが、他の情報処理装置に送信される。
本発明によれば、通信する機器の情報セキュリティを向上させることができる。
以下に本発明の実施の形態を説明するが、本明細書に記載した発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が明細書に記載されていることを確認するためのものである。従って、明細書には記載されているが、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
さらに、この記載は、明細書に記載されている発明が、全て請求されていることを意味するものではない。換言すれば、この記載は、明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出願、または追加される発明の存在を否定するものではない。
請求項1に記載の情報処理装置は、有線または無線により、他の情報処理装置(例えば、図6の機器A)と通信を行う情報処理装置(例えば、図6の機器B)であって、前記他の情報処理装置が発生する乱数(例えば、乱数RanA)、および自分が記憶する複数のデータのうち、前記他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第1のパケット(例えば、図21のパケット1)を受信する受信手段(例えば、図20のステップS133の処理を実行する図19のデータ受信部416)と、前記第1のパケットに含まれる前記アクセス対象リスト(例えば、図21のフィールド503)に基づいて、前記他の情報処理装置との通信を継続するか否か判定する継続判定手段(例えば、図20のステップS135の処理を実行する図19のアクセス対象管理部419)と、前記継続判定手段により、前記他の情報処理装置との通信を継続すると判定された場合、前記アクセス対象リストに記述されるデータに対応付けられた情報(例えば、図12のエリア定義ブロックの鍵、または図13のデータ定義ブロックの鍵)に基づいて、暗号鍵を生成する鍵生成手段(例えば、図20のステップS136の処理を実行する図19の共有鍵生成部415)と、前記鍵生成手段により生成された前記暗号鍵を用いて、前記第1のパケットに含まれる乱数を暗号化し、前記他の情報処理装置により自分が認証されるためのデータである第1の認証用データ(例えば、認証用データ1)を生成する認証用データ生成手段(例えば、図20のステップS137の処理を実行する図19の認証データ生成部418)と、前記認証用データ生成手段により生成された前記第1の認証用データ、および自分が発生した乱数(例えば、乱数RanB)を含む第2のパケット(例えば、図25のパケット2)を、前記他の情報処理装置に送信する送信手段(例えば、図20のステップS139の処理を実行する図19のデータ送信部417)とを備える。
請求項2に記載の情報処理装置は、前記他の情報処理装置との通信において、アクセスを許可するデータの組合せを表す組合せ設定情報(例えば、図11の組合せ設定情報定義ブロックのエリアIDとデータIDの組合せ)をさらに記憶するようにすることができる。
請求項3に記載の情報処理装置は、前記アクセス対象リストに記述されたデータの組合せが、前記組合せ設定情報(例えば、図17の組合せ設定情報定義ブロックの内容)の組み合わせと合致するか否かを判定する組合せ判定手段(例えば、図20のステップS134の処理を実行する図19のアクセス対象管理部419)をさらに備え、前記継続判定手段は、前記組合せ判定手段の判定結果に基づいて、前記他の情報処理装置との通信を継続するか否か判定するようにすることができる。
請求項4に記載の情報処理装置は、記憶するデータには、前記データの全体に関する制御情報である全体制御情報(例えば、図10のマスタ定義ブロック)と、それぞれの前記データに関する制御情報である個別制御情報(例えば、図12のエリア定義ブロック、または図13のデータ定義ブロック)が付加され、前記全体制御情報および個別制御情報には、データを暗号化するとき用いられる鍵の情報が含まれるようにすることができる。
請求項5に記載の情報処理装置は、前記鍵生成手段が、前記アクセス対象リストに記述されたそれぞれの前記データに関する前記個別制御情報に含まれる鍵の情報に基づいて、前記全体制御情報のうちの予め設定された部分(例えば、図10のマスタ定義ブロックの相互認証用の鍵)を暗号化することにより、前記暗号鍵を生成するようにすることができる。
請求項6に記載の情報処理装置は、前記鍵生成手段により生成される暗号鍵と同じ暗号鍵が、前記他の情報処理装置により生成される(例えば、図20のステップS108の処理により生成される)ようにすることができる。
請求項7に記載の情報処理装置は、前記認証用データ生成手段により生成される前記第1の認証用データが、前記他の情報処理装置により、前記暗号鍵を用いて復号され、復号された前記第1の認証用データの値と、前記他の情報処理装置が発生した乱数の値とが比較されることにより、前記他の情報処理装置に自分が認証される(例えば、図20のステップS109の処理により認証される)ためのデータであるようにすることができる。
請求項8に記載の情報処理装置は、前記他の情報処理装置が、前記第2のパケットに含まれる乱数を、前記暗号鍵を用いて暗号化することにより生成される第2の認証用データを取得する取得手段(例えば、図20のステップS141の処理を実行する図19のデータ受信部416)をさらに備えるようにすることができる。
請求項9に記載の情報処理装置は、前記第2の認証用データを、前記暗号鍵を用いて復号し、復号された前記第2の認証用データの値と、自分が発生した乱数の値とを比較することにより、前記他の情報処理装置を認証する(例えば、図20のステップS142の処理により認証する)ようにすることができる。
請求項10に記載の情報処理装置は、他の情報処理装置(例えば、機器C)により前記組合せ設定情報が変更される場合、前記組合せ設定情報の変更に先立って、前記他の情報処理装置を認証する(例えば、図30のステップS440の処理により認証する)ようにすることができる。
請求項11に記載の情報処理装置は、前記組合せ設定情報の変更に先立って、前記他の情報処理装置を認証する場合、前記鍵生成手段は、前記全体制御情報に含まれる鍵の情報(例えば、図10のマスタ定義ブロックの組合せ設定用の鍵)に基づいて、前記全体制御情報のうちの予め設定された部分(例えば、図10のマスタ定義ブロックの相互認証用の鍵)を暗号化することにより、前記暗号鍵を生成する(例えば、図30のステップS434の処理により生成する)ようにすることができる。
請求項12に記載の情報処理方法は、有線または無線により、他の情報処理装置(例えば、図6の機器A)と通信を行う情報処理装置(例えば、図6の機器B)の情報処理方法であって、前記他の情報処理装置が発生する乱数(例えば、乱数RanA)、および自分が記憶する複数のデータのうち、前記他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第1のパケット(例えば、図21のパケット1)を受信する受信ステップ(例えば、図20のステップS133の処理)と、前記第1のパケットに含まれる前記アクセス対象リスト(例えば、図21のフィールド503)に基づいて、前記他の情報処理装置との通信を継続するか否か判定する継続判定ステップ(例えば、図20のステップS135の処理)と、前記継続判定ステップの処理により、前記他の情報処理装置との通信を継続すると判定された場合、前記アクセス対象リストに記述されるデータに対応付けられた情報(例えば、図12のエリア定義ブロックの鍵、または図13のデータ定義ブロックの鍵)に基づいて、暗号鍵を生成する鍵生成ステップ(例えば、図20のステップS136の処理を実行する図19の共有鍵生成部415)と、前記鍵生成ステップの処理により生成された前記暗号鍵を用いて、前記第1のパケットに含まれる乱数を暗号化し、前記他の情報処理装置により自分が認証されるためのデータである第1の認証用データ(例えば、認証用データ1)を生成する認証用データ生成ステップ(例えば、図20のステップS137の処理)と、前記認証用データ生成ステップの処理により生成された前記第1の認証用データ、および自分が発生した乱数(例えば、乱数RanB)を含む第2のパケット(例えば、図25のパケット2)を、前記他の情報処理装置に送信する送信ステップ(例えば、図20のステップS139の処理)とを含む。
請求項13に記載のプログラムは、有線または無線により、他の情報処理装置(例えば、図6の機器A)と通信を行う情報処理装置(例えば、図6の機器B)のプログラムであって、前記他の情報処理装置が発生する乱数(例えば、乱数RanA)、および自分が記憶する複数のデータのうち、前記他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第1のパケット(例えば、図21のパケット1)の受信を制御する受信制御ステップ(例えば、図20のステップS133の処理)と、前記第1のパケットに含まれる前記アクセス対象リスト(例えば、図21のフィールド503)に基づいて、前記他の情報処理装置との通信を継続するか否かの判定を制御する継続判定制御ステップ(例えば、図20のステップS135の処理)と、前記継続判定制御ステップの処理により、前記他の情報処理装置との通信を継続すると判定された場合、前記アクセス対象リストに記述されるデータに対応付けられた情報(例えば、図12のエリア定義ブロックの鍵、または図13のデータ定義ブロックの鍵)に基づいて、暗号鍵の生成を制御する鍵生成制御ステップ(例えば、図20のステップS136の処理を実行する図19の共有鍵生成部415)と、前記鍵生成制御ステップの処理により生成された前記暗号鍵を用いて、前記第1のパケットに含まれる乱数を暗号化し、前記他の情報処理装置により自分が認証されるためのデータである第1の認証用データ(例えば、認証用データ1)の生成を制御する認証用データ生成制御ステップ(例えば、図20のステップS137の処理)と、前記認証用データ生成制御ステップの処理により生成された前記第1の認証用データ、および自分が発生した乱数(例えば、乱数RanB)を含む第2のパケット(例えば、図25のパケット2)の、前記他の情報処理装置への送信を制御する送信制御ステップ(例えば、図20のステップS139の処理)とをコンピュータに実行させる。
請求項14に記載の記録媒体は、有線または無線により、他の情報処理装置(例えば、図6の機器A)と通信を行う情報処理装置(例えば、図6の機器B)のプログラムが記録されている記録媒体であって、前記他の情報処理装置が発生する乱数(例えば、乱数RanA)、および自分が記憶する複数のデータのうち、前記他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第1のパケット(例えば、図21のパケット1)の受信を制御する受信制御ステップ(例えば、図20のステップS133の処理)と、前記第1のパケットに含まれる前記アクセス対象リスト(例えば、図21のフィールド503)に基づいて、前記他の情報処理装置との通信を継続するか否かの判定を制御する継続判定制御ステップ(例えば、図20のステップS135の処理)と、前記継続判定制御ステップの処理により、前記他の情報処理装置との通信を継続すると判定された場合、前記アクセス対象リストに記述されるデータに対応付けられた情報(例えば、図12のエリア定義ブロックの鍵、または図13のデータ定義ブロックの鍵)に基づいて、暗号鍵の生成を制御する鍵生成制御ステップ(例えば、図20のステップS136の処理を実行する図19の共有鍵生成部415)と、前記鍵生成制御ステップの処理により生成された前記暗号鍵を用いて、前記第1のパケットに含まれる乱数を暗号化し、前記他の情報処理装置により自分が認証されるためのデータである第1の認証用データ(例えば、認証用データ1)の生成を制御する認証用データ生成制御ステップ(例えば、図20のステップS137の処理)と、前記認証用データ生成制御ステップの処理により生成された前記第1の認証用データ、および自分が発生した乱数(例えば、乱数RanB)を含む第2のパケット(例えば、図25のパケット2)の、前記他の情報処理装置への送信を制御する送信制御ステップ(例えば、図20のステップS139の処理)とをコンピュータに実行させるプログラムが記録されている。
以下、図面を参照して、本発明の実施の形態について説明する。図1は、本発明に係る情報通信システムにおける処理の流れを説明するアローチャートである。この例では、例えば、パーソナルコンピュータとサーバなどにより構成される、情報処理装置Aと情報処理装置Bとが互いに通信を行い、情報処理装置Aが情報処理装置Bのデータ(ファイルなど)に対してアクセスするものとする。
この場合、図1に示されるように、ステップS1において、ステップS1において、情報処理装置Aは、情報処理装置Bに対して接続要求を送信し、ステップS21において、情報処理装置Bによりこれが受信される。ステップS22において情報処理装置Bは、ステップS21で受信した接続要求に対する応答を情報処理装置Aに対して送信し、ステップS2において、情報処理装置Aによりこれが受信される。
ステップS3において、情報処理装置Aは、情報処理装置Bのデータであって、アクセスするデータの一覧であるアクセス対象リストを認証チャレンジとともに送信する。認証チャレンジは、例えば、情報処理装置Aが情報処理装置Bを認証するために生成する乱数などに基づいて生成されるデータとする。
図2は、情報処理装置Bの内部に記憶されているデータの例を示す図である。この例では、情報処理装置Bに、フォルダ1とフォルダ2があり、フォルダ1の配下のデータとしてファイル11乃至ファイル13が記憶されており、フォルダ2の配下のデータとしてファイル21とファイル22が記憶されている。
また、各フォルダとファイルには、図3に示されるように、そのフォルダまたはファイルにアクセスするために必要となる鍵(所定の暗号アルゴリズムで利用される暗号鍵)が設定されている。この例では、フォルダ1に対して鍵1が設定されており、ファイル11乃至ファイル13に対して鍵11乃至鍵13が、それぞれ設定されている。また、フォルダ2に対して鍵2が設定されており、ファイル21とファイル22に対して鍵21と鍵22が、それぞれ設定されている。これら、各ファイルとフォルダに対応付けられた鍵の情報が、情報処理装置Aと情報処理装置Bとで共有されており、例えば、フォルダ1のファイル11にアクセスする場合、必要となる鍵は、鍵1と鍵11となることは、情報処理装置Bと同様に、情報処理装置Aにおいても認識されているものとする。
また、情報処理装置Bにおいては、情報処理装置Bの内部に記憶されるフォルダまたはファイルに対するアクセス条件が設定された組合せ設定情報がさらに記憶される。組み合わせ設定情報は、例えば、情報処理装置Bの内部に記憶されるフォルダまたはファイルに対して、アクセスを許可または禁止するかを判定するための情報であり、例えば、組合せ設定情報に記述されていないフォルダまたはファイルへのアクセスは禁止される。組合せ設定情報は、情報処理装置Bの組合せ設定情報を編集(追加/変更など)できる権限をもった他の情報処理装置により設定されるものとする。
図4は、組合せ設定情報の例を示す図である。この例では、情報処理装置Bの内部において、フォルダ1とフォルダ2があり、フォルダ1の配下のデータとしてファイル11乃至ファイル13が記憶されており、フォルダ2の配下には、まだデータ(ファイル)が記憶されていない。このとき、組合せ設定情報は、「(フォルダ2)(ファイル11&ファイル12&ファイル13)」と記述されており、これは、フォルダ2に対して、配下のファイルの生成が許可され、また、ファイル11乃至ファイル13の組合せに対するアクセス(ファイル11乃至ファイル13に対して同時にアクセスすること)が許可されることを表している。上述したように、組合せ設定情報に記述されていないフォルダまたはファイルへのアクセスは禁止されるので、例えば、ファイル13(単体)に対してアクセスすることは許可されない(禁止される)。
図5は、図4に示される状態から、フォルダ2の配下には、ファイル21とファイル22が生成(記憶)された場合の例を示す図である。このとき、組合せ設定情報は、図4に示される状態から変更されて、「(ファイル11&ファイル12&ファイル13)(ファイル21&ファイル22&ファイル13)」と記述されている。
これにより、例えば、情報処理装置Aが、ファイル11乃至ファイル13の組合せに対するアクセスを要求した場合、または、ファイル21、ファイル22、およびファイル13の組合せに対するアクセスを要求した場合、そのアクセス要求は許可される。一方、ファイル11とファイル12の組合せに対するアクセス、ファイル13(単体)に対するアクセス、フォルダ2の配下のファイルの生成などの要求は許可されない。
図1に戻って、ステップS23において、情報処理装置Aが送信した、アクセスするデータの組合せが記述された情報であるアクセス対象リストが、認証チャレンジとともに、情報処理装置Bにより受信される。
ステップS24において、情報処理装置Bは、アクセス対象チェック処理を行う。これにより、アクセス対象リストに記述された、情報処理装置Aによりアクセスされるデータの組合せが、上述した組合せ設定情報により、許可されるものであるか否かがチェックされ、ステップS25において、そのチェック結果が判定される。
ステップS25において、情報処理装置Aによりアクセスされるデータの組合せが、上述した組合せ設定情報により、許可されるものであると判定された場合、処理は、ステップS26に進む。
一方、ステップS25において、情報処理装置Aによりアクセスされるデータの組合せが、上述した組合せ設定情報により、許可されないものであると判定された場合、情報処理装置Bは、情報処理装置Aに対してエラーを送信し、ステップS4において、情報処理装置Aによりこれが受信される。この場合、処理は、ここで終了する。
ステップS26において、情報処理装置Bは、ステップS23で受信した認証チャレンジに対するレスポンスを、情報処理装置Aに対して送信し、ステップS5において、情報処理装置Aによりこれが受信される。レスポンスは、例えば、認証チャレンジの乱数が、情報処理装置Aによりアクセスされるデータに対応づけられる鍵により、順次暗号化されることにより生成される。例えば、情報処理装置Aによりアクセスされるデータの組合せが、ファイル11乃至ファイル13であった場合、認証チャレンジの乱数が、所定の暗号アルゴリズムと鍵11で暗号化され、暗号化されたデータが、所定の暗号アルゴリズムと鍵12でさらに暗号化され、暗号化されたデータが、所定の暗号アルゴリズムと鍵13でさらに暗号化されることによりレスポンスが生成される。
ステップS6において、情報処理装置Aは、機器Bの認証を行う。このとき、情報処理装置Aは、ステップS5で受信したレスポンスを、所定の暗号アルゴリズムと鍵13で復号し、そのデータを、所定の暗号アルゴリズムと鍵12でさらに復号し、そのデータを、所定の暗号アルゴリズムと鍵11でさらに復号する。その結果得られたデータが、ステップS3で送信した認証チャレンジの乱数と一致すれば、情報処理装置Bを正当な通信相手として認証する。
なお、ステップS6により機器Bの認証の後、情報処理装置Bから情報処理装置Aに対して認証チャレンジが送信され、ステップS26とS6の処理と同様にして、情報処理装置Bにより情報処理装置Aが認証されるようにしてもよい。
このようにして、情報処理装置Aと情報処理装置Bにより相互認証が行われる。相互認証に先立って、アクセス対象チェック処理が行われるようにしたので、不正なアクセスを試みる第3者による攻撃が回避され、情報セキュリティを向上させることができる。
次に、本発明をICカードとリーダライタの認証に適用した例について説明する。この例では、図6に示されるように、機器Aと機器Bとが通信を行い、機器Aと機器Bとがお互いに認証し合う相互認証を行ったあと、トランザクション処理が行われる。ここで、機器Aは、例えば、非接触ICカード用のリーダライタなどの機器を想定しており、機器Bは、例えば、非接触ICカードなどの機器を想定している。機器Aと機器Bは、例えば、それぞれが有するアンテナなどを介して無線による通信を行う。
図7は、機器A(リーダライタ)の内部構成例を示すブロック図である。
制御部201は、CPU211、ROM212、RAM213、SCC(Serial Communication Controller)214、SPU(Signal Processing Unit)216、並びに、これらのCPU211乃至SPU216を相互に接続するバス215から構成されている。
CPU211は、ROM212に格納されている制御プログラムをRAM213に展開し、例えば、非接触ICカード(機器B)から送信されてきた応答データや、外部のプロセッサなどから供給されてきた制御信号に基づいて、各種の処理を実行する。例えば、CPU211は、非接触ICカード(機器B)に送信するコマンドを生成し、それを、バス215を介してSPU216に出力したり、非接触ICカード(機器B)から送信されてきたデータの認証処理などを行ったりする。
SCC214は、バス200を介して接続される外部のプロセッサなどから供給されてきたデータを、バス215を介してCPU211に供給したり、CPU211から、バス215を介して供給されてきたデータを、バス200を介して接続される外部のプロセッサなどに出力したりする。
SPU216は、非接触ICカード(機器B)からの応答データが復調部204から供給されてきたとき、そのデータに対して、例えば、BPSK復調(マンチェスターコードのデコード)などを施し、取得したデータをCPU211に供給する。また、SPU216は、非接触ICカード(機器B)に送信するコマンドがバス215を介して供給されてきたとき、そのコマンドにBPSK(Binary Phase Shift Keying)変調(マンチェスターコードへのコーディング)を施し、取得したデータを変調部202に出力する。
変調部202は、発振回路(OSC)203から供給される所定の周波数の搬送波を、SPU216より供給されるデータに基づいて、ASK(Amplitude Shift Keying)変調し、生成された変調波を、電磁波としてアンテナ205から出力する。一方、復調部204は、アンテナ205を介して取得した変調波(ASK変調波)を復調し、復調されたデータをSPU206に出力する。
アンテナ205は、所定の電磁波を輻射し、それに対する負荷の変化に基づいて、非接触ICカード(機器B)が近接されたか否かを検出する。そして、例えば、非接触ICカード(機器B)が近接されたとき、アンテナ205は、非接触ICカード(機器B)と各種のデータを送受信する。
図8は、機器B(非接触ICカード)の内部構成例を示すブロック図である。
非接触ICカード(機器B)は、例えば、同図に示されるアンテナ(ループアンテナ)230およびコンデンサ231と、それ以外の構成が1チップに格納されたICから構成され、電磁誘導を利用してリーダライタ(機器A)などと各種のデータを半二重通信するものであって、必ずしもカード状のものとして構成されるわけではない。
CPU221は、ROM222に格納されている制御プログラムをRAM223に展開し、非接触ICカードの全体の動作を制御する。例えば、CPU221は、リーダライタ(機器A)から輻射されている電磁波がアンテナ230において受信されたとき、それに応じて、非接触ICカード(機器B)に設定されているカード識別番号等を含むICカード情報をリーダライタ(機器A)に通知したり、リーダライタ(機器A)からの要求に応じて、トランザクション処理に必要となる情報をリーダライタ(機器A)に供給したりする。
アンテナ230とコンデンサ231により構成されるLC回路は、近傍に配置されたリーダライタ(機器A)から輻射される所定の周波数の電磁波と共振する。インタフェース部229は、ASK復調部243において、アンテナ230を介して受信した変調波(ASK変調波)を包絡線検波して復調し、復調後のデータをBPSK(Binary Phase Shift Keying)復調部232に出力する。
また、インタフェース部229は、アンテナ230において励起された交流磁界をASK復調部243により整流し、それを電圧レギュレータ241において安定化し、各部に直流電源として供給する。リーダライタ(機器A)から輻射される電磁波の電力は、後述するように非接触ICカード(機器B)に必要な電力を賄う磁界を発生させるように調整されている。
また、インタフェース部229の発振回路244はPLL(Phase Locked Loop)回路を内蔵し、受信信号のクロック周波数と同一の周波数のクロック信号を発生する。
さらに、インタフェース部229は、所定の情報をリーダライタ(機器A)に送信する場合、BPSK変調部228から供給されるデータに対応して、例えば、所定のスイッチング素子(図示せず)をオン/オフさせ、スイッチング素子がオン状態であるときだけ、所定の負荷をアンテナ230に並列に接続させることにより、アンテナ230の負荷を変動させる。
ASK変調部242は、アンテナ230の負荷の変動により、BPSK変調部228より供給されたBPSK変調波をASK変調し、その変調成分を、アンテナ230を介してリーダライタ(機器A)に送信する。
BPSK復調部232は、ASK復調部243で復調されたデータがBPSK変調されている場合、図示せぬPLL回路から供給されるクロック信号に基づいて、そのデータの復調(マンチェスターコードのデコード)を行い、復調したデータをデータ受信部233に出力する。データ受信部233は、供給されてきたデータをCPU221に適宜出力する。CPU221はこのデータをRAM223またはEEPROM224に記憶させる。
EEPROM224に記憶されたデータは、CPU221により読み出され、データ送信部227に供給される。BPSK変調部228は、データ送信部227から供給されてきたデータにBPSK変調(マンチェスターコードへのコーディング)を行い、それをASK変調部242に出力する。
EEPROM224には、例えば、相互認証において必要となる情報、トランザクション処理において必要となる情報などが適宜記憶される。
ここでは、機器Aを非接触ICカード用のリーダライタ、機器Bを非接触ICカードにより構成し、機器Aと機器Bとが無線により通信する例について説明したが、機器Aを接触型ICカード用のリーダライタ、機器Bを接触型ICカードにより構成し、有線の通信を行うようにすることも勿論可能である。
図9は、図8のEEPROM224に記憶されるデータの構成例を示す図である。この例では、EEPROM224に記憶されるデータに、マスタ定義ブロック、組合せ情報定義ブロック、エリア01定義ブロック、エリア02定義ブロックが設けられている。
エリア01定義ブロックとエリア02定義ブロックは、それぞれEEPROM224に記憶されるデータの中の領域エリア01、領域エリア02に対して設定される定義ブロックである。領域エリア01には、データ11定義ブロックおよびその実データブロック乃至データ13定義ブロックおよびその実データブロックが含まれており、領域エリア02には、データ21定義ブロックおよびその実データブロック、並びにデータ21定義ブロックおよびその実データブロックが含まれている。領域エリア01または領域エリア02の中で、まだデータが記憶されていない領域は、それぞれエリア01残ブロックまたはエリア02残ブロックと記述されている。
図10は、マスタ定義ブロックの構成例を示す図である。同図に示されるように、マスタ定義ブロックには、固有ID、サイズ、組合せ設定情報ブロックサイズ、鍵バージョン、相互認証用の鍵、組合せ設定用の鍵、および属性情報が含まれており、マスタ定義ブロックは、固定長として構成される。
固有IDは、例えば、そのICチップに付与された固有の識別番号などとされる。サイズは、図9に示されるデータ全体のサイズを表す情報である。鍵バージョンは、後述する相互認証用の鍵、および組合せ設定用の鍵のバージョンを表す情報である。
相互認証用の鍵は、例えば、リーダライタと相互認証を行うとき必要となる、所定の暗号アルゴリズムでのデータの暗号化または復号に用いられる鍵であり、組合せ設定用の鍵は、例えば、後述する組合せ設定情報ブロックの内容の追加/変更を行う権限をもった他の機器(例えば、機器C)との通信を行うとき必要となる、所定の暗号アルゴリズムでのデータの暗号化または復号に用いられる鍵である。
属性情報には、上述した情報の他、マスタ定義ブロックに関連する情報が適宜記述される。
図11は、組合せ設定情報ブロックの構成例を示すブロック図である。同図に示されるように、組合せ設定情報ブロックには、許可/禁止フラグ、エリアIDとデータIDの組合せ情報1乃至3、区切りコード、およびエンドコードが含まれており、組合せ設定情報ブロックは、可変長として構成される。
許可/禁止フラグは、組合せ設定情報ブロックに記述される情報が、アクセスの許可を表すものか、またはアクセスの禁止を表すものかを区別するためのフラグである。
エリアIDとデータIDの組合せ情報1乃至3は、それぞれ、アクセスするエリアまたはデータの組合せを表す情報である。エリアIDとデータIDの組合せ情報の具体的な記述例については、図16または図17を参照して後述する。
区切りコードは、エリアIDとデータIDの組合せ情報1乃至3のそれぞれに付加され、区切りを表す所定のコード(例えば「%」、スペースコードなど)とされ、エンドコードは、組合せ設定情報ブロックの終了を表す所定のコードとされる。
図12は、エリア定義ブロックの構成例を示す図である。同図にしめされるように、エリア定義ブロックには、エリアID、エリアサイズ、鍵バージョン、鍵、および属性情報が含まれており、エリア定義ブロックは、固定長として構成される。
エリアIDは、そのエリア定義ブロックが設定されている領域を特定するIDであり、例えば、領域エリア01に対して設定されるエリア定義ブロックのエリアIDは、「01」とされる。エリアサイズは、そのエリア定義ブロックが設定されている領域のサイズを表す情報である。
鍵バージョンは、後述する鍵のバージョンを表す情報である。鍵は、例えば、リーダライタがそのエリア定義ブロックが設定されている領域に対してアクセスするとき必要となる、所定の暗号アルゴリズムでのデータの暗号化または復号に用いられる鍵である。
属性情報には、上述した情報の他、エリア定義ブロックに関連する情報が適宜記述される。
図13は、データ定義ブロックの構成例を示す図である。同図に示されるように、データ定義ブロックには、データID、データサイズ、鍵バージョン、鍵、および属性情報が含まれており、データ定義ブロックは、固定長として構成される。
データIDは、そのデータ定義ブロックに対応する実データブロックを特定するIDであり、例えば、データ11実データブロックに対応するデータ定義ブロックのデータIDは、「11」とされる。データサイズは、そのデータ定義ブロックに対応する実データブロックのサイズを表す情報である。
鍵バージョンは、後述する鍵のバージョンを表す情報である。鍵は、例えば、リーダライタがそのデータ定義ブロックに対応する実データブロックに対してアクセスするとき必要となる、所定の暗号アルゴリズムでのデータの暗号化または復号に用いられる鍵である。
属性情報には、上述した情報の他、データ定義ブロックに関連する情報が適宜記述される。
図14の実データブロックの構成例を示す図である。同図に示されるように実データブロックは、例えば、トランザクション処理などで必要となる、可変長のデータにより構成されている。
次に、図15乃至図17を参照して、図9に示されるデータが生成される過程を説明する。
例えば、非接触ICカード(機器B)が工場から出荷されたとき、EEPROM224に記憶されるデータは、図15に示されるように構成されている。すなわち、EEPROM224に記憶されるデータには、マスタ定義ブロックと、組合せ設定情報ブロックのみが設定されている。
いま、工場から出荷された非接触ICカードが、事業者Aに納入され、事業者Aは、自身が提供するサービスであるサービスAにおいて必要となる情報を非接触ICカードに記憶させるものとする。
このとき、図16に示されるように、事業者Aは、サービスAで使用するデータを記憶する領域として、領域エリア01を指定し、エリア01定義ブロックを設定する。そして、領域エリア01の配下に記憶されるデータとして、データ11定義ブロックおよびその実データブロック乃至データ13定義ブロックおよびその実データブロックを記憶させる。なお、以降においては、データ11定義ブロックおよびその実データブロックを、単にデータ11のように称する。
そして、事業者Aは、組合せ設定情報ブロックの内容を設定する。この例では、組合せ設定情報ブロックの内容として、「許可 01,11,12,13,区切 01,11,13,区切 END」と記述されている。これは、上述した許可/禁止フラグが「許可」に設定されており、領域エリア01、およびデータ11乃至データ13の組合せが、上述したエリアIDとデータIDの組合せ情報であって、第1番目のエリアIDとデータIDの組合せ情報として設定されていることを表している。そして上述した区切コード(「区切」)に続いて、領域エリア01、並びにデータ11およびデータ13の組合せが、第2番目のエリアIDとデータIDの組合せ情報として設定され、区切コード(「区切」)と、エンドコード(「END」)が設定されていることを表している。
例えば、データ11は、サービスAにおける取引履歴のデータであり、データ12は、サービスAにおける取引店のデータであり、データ13は、サービスAにおける電子マネーの利用残高のデータであったとする。サービスAで使用されるリーダライタ(機器A)は、非接触ICカード(機器B)に対して、必ず、データ11乃至データ13、またはデータ11およびデータ13の組合せでアクセスを要求するので、事業者Aは、その組合せ以外のアクセス要求を許可しないように、組合せ設定情報ブロックの内容を設定する。例えば、電子マネーの利用残高のデータの改竄を目的として、データ13のみに対するアクセス要求があったとしても、そのアクセス要求は拒絶される。
次に、図16に示されるようなデータが記憶された非接触ICカードが、事業者Aとともに、同じ非接触ICカードを用いて別のサービスを提供する事業者Bに納入され、事業者Bは、自身が提供するサービスであるサービスBにおいて必要となる情報を非接触ICカードに記憶させるものとする。
このとき、図17に示されるように、事業者Bは、サービスBで使用するデータを記憶する領域として、領域エリア02を指定し、エリア02定義ブロックを設定する。そして、領域エリア02の配下に記憶されるデータとして、データ21とデータ22(データ21定義ブロックおよびその実データブロック並びにデータ22定義ブロックおよびその実データブロック)を記憶させる。
そして、事業者Bは、組合せ設定情報ブロックの内容を設定する。いまの場合、図16に示される状態から新たに追加される。この例では、組合せ設定情報ブロックの新しい内容の記述として、「02,21,22,区切 02,21,22,01,13,区切」が追加されている。これは、領域エリア02、並びにデータ21およびデータ22の組合せが、第3番目のエリアIDとデータIDの組合せ情報として追加されていることを表している。そして区切コード(「区切」)に続いて、領域エリア02、データ21およびデータ22、領域エリア01、並びにデータ13の組合せが、第4番目のエリアIDとデータIDの組合せ情報として追加されたことを表している。
サービスBで使用されるリーダライタ(機器A)は、非接触ICカードに対して、必ず、データ21およびデータ22、またはデータ21、データ22、およびデータ13の組合せでアクセスを要求するので、事業者Bは、その組合せ以外のアクセス要求を許可しないように、組合せ設定情報ブロックの内容を設定する。事業者Bは、サービスAのデータ(データ13)も含めて組合せ設定情報ブロックの内容を設定することができる。
このようにして、組合せ設定情報ブロックの内容が設定される。
図18は、図7のCPU211により実行されるソフトウェアの機能的構成例を示すブロック図である。
乱数発生部311は、通信相手(いまの場合機器B)と相互認証を行うとき必要となる乱数を発生し、発生した乱数をデータ送信部317に供給するとともに、RAM213などにより構成される記憶部に記憶する。
暗号化実行部312は、共有鍵生成部315から供給される情報に基づいて特定される鍵により、データを、例えば、DES(Data Encryption Standard)、トリプルDES、AES(Advanced Encryption Standard)などの所定の暗号アルゴリズムで暗号化する。復号実行部313は、共有鍵生成部315から供給される情報に基づいて特定される鍵により、データを、暗号化実行部312が実装する所定の暗号アルゴリズムに対応する復号方法で復号する。
認証部314は、復号実行部313から出力されたデータと、記憶部に記憶されている乱数を比較し、その比較結果に基づいて、通信相手(いまの場合機器B)を認証し、認証結果をデータ送信部317に出力する。
共有鍵生成部315は、アクセス対象管理部319から供給されるアクセス対象リストに基づいて、暗号化実行部312に複数または単数の鍵を供給し、機器Aと機器Bが相互認証を行うときに必要となる共有鍵の生成を制御する。
認証データ生成部318は、暗号化実行部312、または復号実行部313から出力されるデータに基づいて、後述する認証データを生成する。
アクセス対象管理部319は、通信相手に対して自身がアクセスする領域(エリア)とデータの一覧であるアクセス対象リストの生成を行うとともに、通信相手からデータ受信部316を介してアクセス対象リストを受信した場合、そのアクセス対象リストに記述される領域(エリア)とデータの組合せが、組合せ設定情報ブロックに記述される情報を合致するか否かを判定し、判定結果をデータ送信部317に出力する。また、アクセス対象管理部319は、共有鍵生成部315に対して、アクセス対象リストに記述される領域(エリア)とデータの組合せを通知する。
データ送信部316とデータ受信部317は、それぞれ通信相手(いまの場合機器B)とのデータの送受信を制御する。
図19は、図8のCPU221により実行されるソフトウェアの機能的構成例を示すブロック図である。
同図において、乱数発生部411乃至アクセス対象管理部419は、図18の乱数発生部311乃至アクセス対象管理部319に対応する機能ブロックであり、それぞれ同様の機能を有するものなので、詳細な説明は省略する。
次に、機器Aと機器Bにおいて行われる相互認証の処理の流れについて、図20のアローチャートを参照して説明する。この処理は、例えば、非接触ICカードとして構成される機器Bと、非接触ICカード用のリーダライタとして構成される機器Aとの間でのトランザクション処理の実行に先立って実行される。
ステップS101において、機器Aのアンテナ205が、所定の電磁波(コール)を輻射し、ステップS131において、機器Bによりこれが受信される。
ステップS132において、機器Bは、ステップS131で受信したコールに対する応答を、機器Aに対して送信し、ステップS102において、機器Aによりこれが受信される。これにより、リーダライタ(機器A)は、非接触ICカード(機器B)が近接されたことを検出する。
ステップS103において、機器Aの乱数発生部311は、機器Bを認証するための乱数である乱数RanAを発生し、ステップS104において、アクセス対象管理部319は、機器Bの中のアクセスする領域(エリア)とデータの一覧であるアクセス対象リストを生成する。
ステップS105において、機器Aのデータ送信部317は、ステップS103で発生した乱数と、ステップS104で生成したアクセス対象リストに基づいて、パケット1を生成し、送信する。
図21は、パケット1の構成例を示す図である。同図において、フィールド501は、パケット1のヘッダとなる部分であり、例えば、パケット種別(このパケットの種類がパケット1であることを表す識別子)、チップ固有ID(機器Aの制御部201を特定するID)などが含まれる。
フィールド502には、ステップS103で発生された乱数RanAが格納される。フィールド503には、ステップS104で生成されたアクセス対象リストが格納される。
この例では、フィールド503は、ブロック503−1乃至503−4の4つのブロックにより構成されている。ブロック503−2は、アクセス対象となるデータを保持する領域(エリア)のエリアIDを全て記述したリストが格納され、ブロック503−1には、ブロック503−2に記述されるエリアIDの数が格納される。ブロック503−4は、アクセス対象となるデータのデータIDを全て記述したリストが格納され、ブロック503−3には、ブロック503−4に記述されるデータIDの数が格納される。
図20に戻って、ステップS133において、機器Bは、上述したパケット1を受信し、ステップS134において、ステップS133で受信したパケット1に基づいて、図22を参照して後述するアクセス対象チェック処理を実行する。
ここで、図22のフローチャートを参照して、図20のステップS134のアクセス対象チェック処理の詳細について説明する。
ステップS201において、機器Bのアクセス対象管理部419は、パケット1の中からアクセス対象リストを抽出し、ステップS202において、ステップS201で抽出したアクセス対象リストと、組合せ設定情報と比較する。
このとき、図21を参照して上述したフィールド503のアクセス対象リストと、図11、図17を参照して上述した組合せ設定情報ブロックの内容とが比較される。例えば、機器A(リーダライタ)が、機器B(非接触ICカード)のデータ11乃至13にアクセスする場合、ステップS201で抽出されたアクセス対象リストには、ブロック503−2のエリアIDのリストには、「01」が記述され、ブロック503−4のデータIDのリストには、「11」、「12」、および「13」が記述されることになる。この記述は、図17の組合せ設定情報定義ブロックの内容における、第1番目のエリアIDとデータIDの組合せ情報に合致する。
ステップS203において、アクセス対象管理部419は、ステップS202の比較の結果、ステップS201で抽出されたアクセス対象リストは、組合せ設定情報により許可されたエリアIDとデータIDの組合せか否かを判定する。いまの場合、許可されたエリアIDとデータIDの組合せであると判定され、処理はステップS204に進み、アクセス対象管理部419は、機器Aからのアクセスに対する許可を表す許可フラグをオンに設定する。
一方、例えば、機器A(リーダライタ)が、機器B(非接触ICカード)のデータ13にアクセスする場合、ステップS201で抽出されたアクセス対象リストには、ブロック503−2のエリアIDのリストには、「01」が記述され、ブロック503−4のデータIDのリストには、「13」が記述されることになる。この記述は、図17の組合せ設定情報定義ブロックの内容における、いずれのエリアIDとデータIDの組合せ情報とも合致しない。
この場合、ステップS203において、許可されたエリアIDとデータIDの組合せではないと判定され、処理はステップS205に進み、アクセス対象管理部419は、上述した許可フラグをオフに設定する。
このようにして、通信相手から送信されるアクセス対象リストに基づいてアクセスの許可(または不許可)が判定される。
図20に戻って、ステップS135において、機器Bは、ステップS134の処理によるチェック結果を判定する。チェック結果の判定は、上述した許可フラグに基づいて行われる。
許可フラグがオンに設定されている場合、ステップS135において、機器Aからのアクセスが許可されたと判定され、処理は、ステップS136に進み、その後、機器Aと機器Bによる相互認証が行われることになる。
一方、許可フラグがオフに設定されている場合、ステップS135において、機器Aからのアクセスが許可されなかった(拒絶された)と判定され、機器Bは機器Aに対してエラー情報を送信し、ステップS106において機器Aによりこれが受信される。この場合、機器Aと機器Bとの通信処理は、ここで終了することになる。
ステップS136において、機器Bは、図23を参照して後述する共有鍵生成処理を実行する。これにより、相互認証に用いられる暗号鍵(共有鍵)が生成される。
ここで、図23のフローチャートを参照して、図20のステップS136の共有鍵生成処理の詳細について説明する。ここでは、機器Aが、機器Bのデータ11乃至13にアクセスするものとし、ステップS133で受信したパケット1のアクセス対象リスト(フィールド503)には、ブロック503−2のエリアIDのリストに、「01」が記述され、ブロック503−4のデータIDのリストに、「11」、「12」、および「13」が記述されていたものとする。
ステップS221において、機器Bの共有鍵生成部415は、マスタ定義ブロックの相互認証用の鍵、およびアクセス対象となるエリアとデータの鍵を抽出する。このとき、図10を参照して上述したマスタ定義ブロックの相互認証用の鍵、図12を参照して上述したエリア定義ブロック(いまの場合エリアIDが「01」であるエリア定義ブロック)の鍵、図13を参照して上述したデータ定義ブロック(いまの場合データIDが「11」乃至「13」であるデータ定義ブロック)の鍵がそれぞれ抽出される。
ステップS222において、暗号化実行部412は、ステップS221で抽出した相互認証用の鍵を、エリア01の鍵で暗号化する。このとき、共有鍵生成部415は、アクセス対象リストに基づいて、暗号化実行部412に、エリアIDが「01」であるエリア定義ブロックの鍵を供給し、その鍵を用いて、暗号化実行部412は、マスタ定義ブロックの相互認証用の鍵を所定の暗号アルゴリズムで暗号化する。
ステップS223において、暗号化実行部412は、ステップS222で暗号化したデータを、データ11の鍵で暗号化する。このとき、共有鍵生成部415は、アクセス対象リストに基づいて、暗号化実行部412に、データIDが「11」であるデータ定義ブロックの鍵を供給し、その鍵を用いて、暗号化実行部412は、ステップS222で暗号化したデータを所定の暗号アルゴリズムでさらに暗号化する。
ステップS224において、暗号化実行部412は、ステップS223で暗号化したデータを、データ12の鍵で暗号化する。このとき、共有鍵生成部415は、アクセス対象リストに基づいて、暗号化実行部412に、データIDが「12」であるデータ定義ブロックの鍵を供給し、その鍵を用いて、暗号化実行部412は、ステップS223で暗号化したデータを所定の暗号アルゴリズムでさらに暗号化する。
ステップS225において、暗号化実行部412は、ステップS223で暗号化したデータを、データ13の鍵で暗号化する。このとき、共有鍵生成部415は、アクセス対象リストに基づいて、暗号化実行部412に、データIDが「13」であるデータ定義ブロックの鍵を供給し、その鍵を用いて、暗号化実行部412は、ステップS224で暗号化したデータを所定の暗号アルゴリズムでさらに暗号化する。
そして、ステップS226において、共有鍵生成部415は、ステップS225の処理により暗号化されたデータを共有鍵として、RAM223などにより構成される記憶部に記憶する。
このようにして、機器Aと機器Bとの相互認証において必要となる共有鍵が生成される。この共有鍵は、後述する図20のステップS108において、機器Aにより、やはり生成されることにより、機器Aと機器Bとで共有されることになる。
図20のステップS136の処理の後、処理は、ステップS137に進み、機器Bは、図24を参照して後述する認証用データ1生成処理を実行する。
ここで、図24のフローチャートを参照して、図20のステップS136の認証用データ1生成処理の詳細について説明する。
ステップS241において、機器Bの認証用データ生成部418は、ステップS133で受信されたパケット1に含まれる乱数RanA(図21のフィールド502)を抽出する。
ステップS242において、暗号化実行部242は、図23の処理により生成されている共有鍵を用いて、ステップS241で抽出された乱数RanAを、所定の暗号アルゴリズムで暗号化する。
ステップS243において、認証用データ生成部418は、ステップS242で暗号化されたデータを、認証用データ1として生成する。
このようにして、機器Aから送信された乱数RanAが暗号化されて認証用データ1が生成される。
図20に戻って、ステップS137の処理の後、ステップS138において、機器B(乱数発生部411)は、機器Aを認証するための乱数RanBを生成(発生)する。
ステップS139において、機器B(データ送信部417)は、ステップS138で発生した乱数と、ステップS137で生成した認証用データ1に基づいて、パケット2を生成し、送信する。
図25は、パケット2の構成例を示す図である。同図において、フィールド521は、パケット2のヘッダとなる部分であり、例えば、パケット種別(このパケットの種類がパケット2であることを表す識別子)、チップ固有ID(機器BのCPU221を特定するID)などが含まれる。フィールド522には、ステップS138で発生された乱数RanBが格納される。フィールド523には、ステップS137で生成された認証用データ1が格納される。
図20に戻って、ステップS107において、機器Aにより上述したパケット2が受信される。
ステップS108において、機器Aは、共有鍵生成処理を実行する。この処理は、図23を参照して上述した処理と同様の処理なので、詳細な説明は省略するが、これにより、機器Aにおいても、機器Bで生成された共有鍵と同じ共有鍵が生成されて保持(記憶)される。
ステップS109において、機器Aは、図26を参照して後述する機器Bの認証処理を実行する。これにより、機器Aにより機器Bが正当な通信相手であるか否かが認証される。
ここで、図26のフローチャートを参照して、図20のステップS109の機器Bの認証処理の詳細について説明する。
ステップS261において、復号実行部313は、ステップS107で受信したパケット2に含まれる認証用データ1(フィールド523)を、共有鍵を用いて、暗号化実行部412の暗号アルゴリズムに対応する復号方法で復号する。これにより、認証用データ1が復号され、復号された認証用データ1(すなわち、乱数RanA)が、その処理結果のデータとして、認証部314に取得される。
ステップS262において、認証部314は、処理結果のデータ(ステップS261の処理により復号された認証用データ2)と、図20のステップS103の処理により、生成された乱数RanAとを比較する。
ここで、図20のステップS103の処理により、生成された乱数RanAは、機器Aが機器Bを認証するために発生した乱数であり、機器A以外の機器は、事前にその値を取得することはできない。
また、処理結果のデータは、通信相手(いまの場合、機器B)から取得されたデータであり、機器Aで、共有鍵を用いて復号されることを知らなければ、通信相手は、復号されるデータを想定して暗号化することができない。さらに、共有鍵は、アクセス対象となるエリア、データの鍵に基づいて暗号化されて生成されるので、機器Aから送信されたアクセス対象リストを解析し、それらの鍵を抽出しなければ生成することができない。
もし、ステップS261の処理により復号された認証用データ1と、図20のステップS103の処理により生成された乱数RanAが一致していれば、通信相手は、機器Aと同じ共有鍵で乱数RanAを暗号化したものと考えられる。
仮に、第3者が、機器Bに成りすましているとすれば、その第3者は、機器Aから出力された乱数RanAが、アクセス対象リストに記述されたエリアとデータの鍵に基づいて暗号化されて生成された共有鍵で暗号化されていることをつきとめて、さらに、エリア01の鍵、データ11乃至データ13の鍵を取得して(盗んで)乱数RanAを暗号化していたことになり、このような作業を行うことは事実上不可能に近い。
したがって、ステップS262の処理による、処理結果のデータと、図20のステップS103の処理により生成された乱数RanAの比較の結果、両者の値が一致していれば、機器Bが正当な通信相手として認証されたことになる。
ステップS263において、認証部314は、ステップS262の処理による比較の結果、両者の値が一致したか否かを判定する。
ステップS263において、値が一致したと判定された場合、処理は、ステップS264に進み、認証部314は、機器Bが認証されたことを表す認証フラグをオンに設定する。
一方、ステップS263において、値が一致しなかったと判定された場合、処理は、ステップS265に進み、認証部314は、上述した認証フラグをオフに設定する。
このようにして、機器Bの認証が行われる。
図20に戻って、ステップS109の処理の後、ステップS110において、機器Aは、ステップS109の処理による認証結果の判定を行う。
上述した認証フラグがオンに設定された場合、図20のステップS110では、機器Bが認証されたと判定され、処理は、ステップS111に進む。上述した認証フラグがオフに設定された場合、ステップS110の処理では、機器Bが認証されなかったと判定され、機器Aから機器Bにエラーが送信され、ステップ140において、機器Bによりこれが受信される。この場合、機器Aと機器Bとの通信処理はここで終了することになる。
ステップS111において、機器Aは、図27を参照して後述する認証用データ2生成処理を実行する。
ここで、図27のフローチャートを参照して、図20のステップS111の認証用データ2生成処理の詳細について説明する。
ステップS281において、機器Aの認証用データ生成部318は、ステップS107で受信されたパケット1に含まれる乱数RanB(図25のフィールド522)を抽出する。
ステップS282において、暗号化実行部312は、ステップS108の処理により生成されている共有鍵を用いて、ステップS281で抽出された乱数RanBを、所定の暗号アルゴリズムで暗号化する。
ステップS283において、認証用データ生成部318は、ステップS282で暗号化されたデータを、認証用データ2として生成する。
このようにして、機器Bから送信された乱数RanBが暗号化されて認証用データ2が生成される。
図20に戻って、ステップS111の処理の後、ステップS112において、機器A(データ送信部317)は、ステップS111で生成した認証用データ2に基づいて、パケット3を生成し、送信する。
図28は、パケット3の構成例を示す図である。同図において、フィールド541は、パケット2のヘッダとなる部分であり、例えば、パケット種別(このパケットの種類がパケット3であることを表す識別子)、チップ固有ID(機器Aの制御部201を特定するID)などが含まれる。フィールド542には、ステップS111で生成された認証用データ2が格納される。
図20に戻って、ステップS141において、機器Bにより上述したパケット3が受信される。
ステップS142において、機器Bは、ステップS141で受信したパケット3に基づいて、図29を参照して後述する機器Aの認証処理を実行する。これにより、機器Bにより機器Aの認証が行われる。
ここで、図29のフローチャートを参照して、図20のステップS142の機器Aの認証処理の詳細について説明する。
ステップS301において、復号実行部413は、ステップS141で受信したパケット3に含まれる認証用データ2(フィールド542)を、共有鍵を用いて、暗号化実行部312の暗号アルゴリズムに対応する復号方法で復号する。これにより、認証用データ2が復号され、復号された認証用データ2(すなわち、乱数RanB)が、その処理結果のデータとして、認証部414に取得される。
ステップS302において、認証部414は、処理結果のデータ(ステップS301の処理により復号された認証用データ2)と、図20のステップS138の処理により、生成された乱数RanBとを比較する。
ここで、図20のステップS138の処理により、生成された乱数RanBは、機器Bが機器Aを認証するために発生した乱数であり、機器B以外の機器は、事前にその値を取得することはできない。
また、処理結果のデータは、通信相手(いまの場合、機器A)から取得されたデータであり、機器Bで、共有鍵を用いて復号されることを知らなければ、通信相手は、復号されるデータを想定して暗号化することができない。さらに、共有鍵は、アクセス対象となるエリア、データの鍵に基づいて暗号化されて生成されるので、機器Aから送信されたアクセス対象リストを解析し、それらの鍵を抽出しなければ生成することができない。
もし、ステップS301の処理により復号された認証用データ2と、図20のステップS138の処理により生成された乱数RanBが一致していれば、通信相手は、機器Bと同じ共有鍵で乱数RanBを暗号化したものと考えられる。
仮に、第3者が、機器Aに成りすましているとすれば、その第3者は、機器Bから出力された乱数RanBが、アクセス対象リストに記述されたエリアとデータの鍵に基づいて暗号化されて生成された共有鍵で暗号化されていることをつきとめて、さらに、エリア01の鍵、データ11乃至データ13の鍵を取得して(盗んで)乱数RanBを暗号化していたことになり、このような作業を行うことは事実上不可能に近い。
したがって、ステップS302の処理による、処理結果のデータと、図20のステップS138の処理により生成された乱数RanBの比較の結果、両者の値が一致していれば、機器Aが正当な通信相手として認証されたことになる。
ステップS303において、認証部314は、ステップS302の処理による比較の結果、両者の値が一致したか否かを判定する。
ステップS303において、値が一致したと判定された場合、処理は、ステップS304に進み、認証部414は、機器Aが認証されたことを表す認証フラグをオンに設定する。
一方、ステップS303において、値が一致しなかったと判定された場合、処理は、ステップS305に進み、認証部414は、上述した認証フラグをオフに設定する。
このようにして、機器Aの認証が行われる。
図20に戻って、ステップS142の処理の後、ステップS143において、機器Bは、ステップS142の処理による認証結果の判定を行う。
上述した認証フラグがオンに設定された場合、図20のステップS143では、機器Aが認証されたと判定され、その後トランザクション処理などの処理が実行されることになる。上述した認証フラグがオフに設定された場合、ステップS143の処理では、機器Aが認証されなかったと判定され、機器Bから機器Aにエラーが送信され、ステップS113において、機器Aによりこれが受信される。この場合、機器Aと機器Bとの通信処理はここで終了することになる。
このようにして、機器Aと機器Bの間でトランザクション処理などの実行に先立って、相互認証が行われる。機器Aと機器Bとでは、相互認証に用いる共有鍵がアクセス対象リストに記述されるエリアとデータに対応する複数の異なる鍵により暗号化されて生成されるようにしたので、第3者による成りすましが防止され、相互認証の確実性を高めることができる。
また、相互認証を行う前に、アクセス対象チェック処理を実行するようにしたので、例え、鍵が盗まれても、データの漏洩や改竄を防止することができる。例えば、不正なアクセスを試みる第3者が、特定のデータを執拗に分析するなどして、そのデータの鍵が盗まれた場合であっても、組合せ設定情報により事前に許可されたエリアとデータの組合せに合致しないアクセスは、相互認証の前に拒絶されてしまうので、より強固なセキュリティを実現することができる。
ところで、図10、図17を参照して上述した組合せ設定情報定義ブロックの内容(エリアIDとデータIDの組合せ情報)は、この非接触ICカードを利用してサービスを提供する事業者などが有する設定情報登録用の機器により登録されるが、このとき、非接触ICカード(機器B)は、やはり設定情報登録用の機器(例えば、機器C)を認証する必要がある。
図30のアローチャートを参照して、設定情報登録用の機器である機器Cと、非接触ICカードとして構成される機器Bにおいて行われる相互認証の処理の流れについて説明する。なお、機器Cは、機器Bの非接触ICカードに対応するリーダライタの1つであり、やはり図7の機器Aと同様に構成されているものとする。
ステップS401において、機器Cのアンテナ205が、所定の電磁波(コール)を輻射し、ステップS431において、機器Bによりこれが受信される。
ステップS432において、機器Bは、ステップS431で受信したコールに対する応答を、機器Cに対して送信し、ステップS402において、機器Cによりこれが受信される。これにより、リーダライタ(機器C)は、非接触ICカード(機器B)が近接されたことを検出する。
ステップS403において、機器Cの乱数発生部311は、機器Bを認証するための乱数である乱数RanAを発生し、ステップS404において、機器Cのデータ送信部317は、ステップS403で発生した乱数RanAと、予め設定された形式で記述されるデータである設定情報登録要求を、機器Bに送信する。
ステップS433において、機器Bは、上述した乱数RanAと、設定情報登録要求とを受信し、ステップS434において、図31を参照して後述する設定情報登録共有鍵生成処理を実行する。これにより、機器Cと機器Bの相互認証に用いられる共有鍵が生成される。
ここで、図31のフローチャートを参照して、図30のステップS434の設定情報登録共有鍵生成処理の詳細について説明する。
ステップS501において、機器Bの共有鍵生成部415は、マスタ定義ブロックの相互認証用の鍵、およびマスタ定義ブロックの組合せ設定用の鍵を抽出する。このとき、図10を参照して上述したマスタ定義ブロックの相互認証用の鍵、および組合せ設定用の鍵がそれぞれ抽出される。
ステップS502において、暗号化実行部412は、ステップS501で抽出した相互認証用の鍵を、組合せ設定用の鍵で暗号化する。このとき、共有鍵生成部415は、暗号化実行部412に、組合せ設定用の鍵を供給し、その鍵を用いて、暗号化実行部412は、マスタ定義ブロックの相互認証用の鍵を所定の暗号アルゴリズムで暗号化する。
そして、ステップS503において、共有鍵生成部415は、ステップS502の処理により暗号化されたデータを共有鍵として、RAM223などにより構成される記憶部に記憶する。
このようにして、機器Cと機器Bとの相互認証において必要となる共有鍵が生成される。
この共有鍵は、後述する図30のステップS405において、機器Cにより、やはり生成されることにより、機器Cと機器Bとで共有されることになる。ステップS405の設定情報登録共有鍵生成処理は、図31を参照して上述した処理と同様なので詳細な説明は省略する。
図30のステップS435の処理の後、処理は、ステップS436に進み、機器Bは、認証用データ1生成処理を実行する。この処理は、図24を参照して上述した処理と同様なので、詳細な説明は省略するが、これにより乱数RanAが暗号化されて認証用データ1が生成される。
ステップS436において、機器B(乱数発生部411)は、機器Cを認証するための乱数RanBを生成(発生)する。
ステップS437において、機器B(データ送信部417)は、ステップS436で発生した乱数と、ステップS435で生成した認証用データ1を、機器Cに送信し、ステップS406において、機器Cによりこれが受信される。
ステップS407において、機器Cは、機器Bの認証処理を実行する。この処理は、図26を参照して上述した処理と同様の処理なので詳細な説明は省略するが、これにより、機器Cにより機器Bが正当な通信相手であるか否かが認証される。
ステップS407の処理の後、ステップS408において、機器Cは、ステップS407の処理による認証結果の判定を行う。
ステップS408において、機器Bが認証されたと判定された場合、処理は、ステップS409に進む。ステップS408において、機器Bが認証されなかったと判定された場合、機器Cから機器Bにエラーが送信され、ステップS438において、機器Bによりこれが受信される。この場合、機器Cと機器Bとの通信処理はここで終了することになる。
ステップS409において、機器Cは、認証用データ2生成処理を実行する。この処理は、図27を参照して上述した処理と同様なので詳細な説明は省略するが、これにより乱数RanBが暗号化されて認証用データ2が生成される。
ステップS409の処理の後、ステップS410において、機器C(データ送信部317)は、ステップS409で生成した認証用データ2を機器Bに送信し、ステップS439において、機器Bによりこれが受信される。
ステップS440において、機器Bは、ステップS439で受信した認証用データ2に基づいて、機器Cの認証処理を実行する。この処理は、図29を参照して上述した機器Aの認証処理を、機器Cに置き換えたものであり、図29の場合と同様の処理となるので、詳細な説明は省略するが、これにより、機器Bにより機器Cの認証が行われる。
ステップS440の処理の後、ステップS441において、機器Bは、ステップS440の処理による認証結果の判定を行う。
ステップS441において、機器Cが認証されたと判定された場合、その後、組合せ設定情報の登録(追加/変更を含む)などの処理が実行されることになる。
ステップS441において、機器Cが認証されなかったと判定された場合、機器Bから機器Cにエラーが送信され、ステップS411において、機器Cによりこれが受信される。この場合、機器Cと機器Bとの通信処理はここで終了することになる。
このようにして、機器Cと機器Bの間で組合せ設定情報の登録に先立って、相互認証が行われる。機器Cと機器Bとでは、相互認証に用いる共有鍵がマスタ定義ブロックに記述される複数の異なる鍵により暗号化されて生成されるようにしたので、第3者による成りすましが防止され、相互認証の確実性を高めることができる。
なお、上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウェアにより実行させることもできる。上述した一連の処理をソフトウェアにより実行させる場合には、例えば、そのソフトウェアを構成するプログラムが、バス200を介して、インターネットなどのネットワークや、リムーバブルメディアなどからなる記録媒体からインストールされる。
なお、この記録媒体は、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フロッピディスク(登録商標)を含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)(登録商標)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディアにより構成されるものだけでなく、装置本体に予め組み込まれた状態でユーザに配信され、プログラムが記録されている、例えば、ROM212または222などで構成されるものも含む。
なお、本明細書において上述した一連の処理を実行するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
情報処理装置Aと情報処理装置Bの相互認証の処理の流れを説明するアローチャートである。 情報処理装置Bの内部に記憶されているデータの例を示す図である。 フォルダとファイルに設定される鍵の例を示す図である。 組合せ設定情報の例を示す図である。 組合せ設定情報の例を示す図である。 本発明に係る情報処理システムの一実施の形態を示す図である。 機器Aの内部構成例を示すブロック図である。 機器Bの内部構成例を示すブロック図である。 機器Bに記憶されるデータの例を示す図である。 図9のマスタ定義ブロックの構成例を示す図である。 図9の組合せ設定情報ブロックの構成例を示す図である。 図9のエリア定義ブロックの構成例を示す図である。 図9のデータ定義ブロックの構成例を示す図である。 図9の実データブロックの構成例を示す図である。 図9のデータが生成される過程を説明する図である。 図9のデータが生成される過程を説明する図である。 図9のデータが生成される過程を説明する図である。 図7のCPUにより実行されるソフトウェアの機能的構成例を示すブロック図である。 図8のCPUにより実行されるソフトウェアの機能的構成例を示すブロック図である。 機器Aと機器Bにおいて行われる相互認証の処理の流れを説明するアローチャートである。 パケット1の構成例を示す図である。 アクセス対象チェック処理を説明するフローチャートである。 共有鍵生成処理を説明するフローチャートである。 認証用データ1生成処理を説明するフローチャートである。 パケット2の構成例を示す図である。 機器Bの認証処理を説明するフローチャートである。 認証用データ2生成処理を説明するフローチャートである。 パケット3の構成例を示す図である。 機器Aの認証処理を説明するフローチャートである。 機器Cと機器Bにおいて行われる相互認証の処理の流れを説明するアローチャートである。 設定情報登録共有鍵生成処理を説明するフローチャートである。
符号の説明
211 CPU, 212 ROM, 213 RAM, 221 CPU, 222 ROM, 223 RAM, 224 EEPROM, 311 乱数発生部, 312 暗号化実行部, 313 復号実行部, 314 認証部, 315 共有鍵生成部, 319 アクセス対象管理部, 411 乱数発生部, 412 暗号化実行部, 413 復号実行部, 414 認証部, 415 共有鍵生成部, 419 アクセス対象管理部

Claims (14)

  1. 有線または無線により、他の情報処理装置と通信を行う情報処理装置であって、
    前記他の情報処理装置が発生する乱数、および自分が記憶する複数のデータのうち、前記他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第1のパケットを受信する受信手段と、
    前記第1のパケットに含まれる前記アクセス対象リストに基づいて、前記他の情報処理装置との通信を継続するか否か判定する継続判定手段と、
    前記継続判定手段により、前記他の情報処理装置との通信を継続すると判定された場合、前記アクセス対象リストに記述されるデータに対応付けられた情報に基づいて、暗号鍵を生成する鍵生成手段と、
    前記鍵生成手段により生成された前記暗号鍵を用いて、前記第1のパケットに含まれる乱数を暗号化し、前記他の情報処理装置により自分が認証されるためのデータである第1の認証用データを生成する認証用データ生成手段と、
    前記認証用データ生成手段により生成された前記第1の認証用データ、および自分が発生した乱数を含む第2のパケットを、前記他の情報処理装置に送信する送信手段と
    を備えることを特徴とする情報処理装置。
  2. 前記他の情報処理装置との通信において、アクセスを許可するデータの組合せを表す組合せ設定情報をさらに記憶する
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記アクセス対象リストに記述されたデータの組合せが、前記組合せ設定情報の組み合わせと合致するか否かを判定する組合せ判定手段をさらに備え、
    前記継続判定手段は、前記組合せ判定手段の判定結果に基づいて、前記他の情報処理装置との通信を継続するか否か判定する
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 記憶するデータには、
    前記データの全体に関する制御情報である全体制御情報と、
    それぞれの前記データに関する制御情報である個別制御情報が付加され、
    前記全体制御情報および個別制御情報には、データを暗号化するとき用いられる鍵の情報が含まれる
    ことを特徴とする請求項1に記載の情報処理装置。
  5. 前記鍵生成手段は、前記アクセス対象リストに記述されたそれぞれの前記データに関する前記個別制御情報に含まれる鍵の情報に基づいて、前記全体制御情報のうちの予め設定された部分を暗号化することにより、前記暗号鍵を生成する
    ことを特徴とする請求項4に記載の情報処理装置。
  6. 前記鍵生成手段により生成される暗号鍵と同じ暗号鍵が、前記他の情報処理装置により生成される
    ことを特徴とする請求項1に記載の情報処理装置。
  7. 前記認証用データ生成手段により生成される前記第1の認証用データは、
    前記他の情報処理装置により、前記暗号鍵を用いて復号され、復号された前記第1の認証用データの値と、前記他の情報処理装置が発生した乱数の値とが比較されることにより、前記他の情報処理装置に自分が認証されるためのデータである
    ことを特徴とする請求項6に記載の情報処理装置。
  8. 前記他の情報処理装置が、前記第2のパケットに含まれる乱数を、前記暗号鍵を用いて暗号化することにより生成される第2の認証用データを取得する取得手段をさらに備える
    ことを特徴とする請求項6に記載の情報処理装置。
  9. 前記第2の認証用データを、前記暗号鍵を用いて復号し、復号された前記第2の認証用データの値と、自分が発生した乱数の値とを比較することにより、前記他の情報処理装置を認証する
    ことを特徴とする請求項8に記載の情報処理装置。
  10. 他の情報処理装置により前記組合せ設定情報が変更される場合、
    前記組合せ設定情報の変更に先立って、前記他の情報処理装置を認証する
    ことを特徴とする請求項9に記載の情報処理装置。
  11. 前記組合せ設定情報の変更に先立って、前記他の情報処理装置を認証する場合、
    前記鍵生成手段は、前記全体制御情報に含まれる鍵の情報に基づいて、前記全体制御情報のうちの予め設定された部分を暗号化することにより、前記暗号鍵を生成する
    ことを特徴とする請求項10に記載の情報処理装置。
  12. 有線または無線により、他の情報処理装置と通信を行う情報処理装置の情報処理方法であって、
    前記他の情報処理装置が発生する乱数、および自分が記憶する複数のデータのうち、前記他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第1のパケットを受信する受信ステップと、
    前記第1のパケットに含まれる前記アクセス対象リストに基づいて、前記他の情報処理装置との通信を継続するか否か判定する継続判定ステップと、
    前記継続判定ステップの処理により、前記他の情報処理装置との通信を継続すると判定された場合、前記アクセス対象リストに記述されるデータに対応付けられた情報に基づいて、暗号鍵を生成する鍵生成ステップと、
    前記鍵生成ステップの処理により生成された前記暗号鍵を用いて、前記第1のパケットに含まれる乱数を暗号化し、前記他の情報処理装置により自分が認証されるためのデータである第1の認証用データを生成する認証用データ生成ステップと、
    前記認証用データ生成ステップの処理により生成された前記第1の認証用データ、および自分が発生した乱数を含む第2のパケットを、前記他の情報処理装置に送信する送信ステップと
    を含むことを特徴とする情報処理方法。
  13. 有線または無線により、他の情報処理装置と通信を行う情報処理装置のプログラムであって、
    前記他の情報処理装置が発生する乱数、および自分が記憶する複数のデータのうち、前記他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第1のパケットの受信を制御する受信制御ステップと、
    前記第1のパケットに含まれる前記アクセス対象リストに基づいて、前記他の情報処理装置との通信を継続するか否かの判定を制御する継続判定制御ステップと、
    前記継続判定制御ステップの処理により、前記他の情報処理装置との通信を継続すると判定された場合、前記アクセス対象リストに記述されるデータに対応付けられた情報に基づいて、暗号鍵の生成を制御する鍵生成制御ステップと、
    前記鍵生成制御ステップの処理により生成された前記暗号鍵を用いて、前記第1のパケットに含まれる乱数を暗号化し、前記他の情報処理装置により自分が認証されるためのデータである第1の認証用データの生成を制御する認証用データ生成制御ステップと、
    前記認証用データ生成制御ステップの処理により生成された前記第1の認証用データ、および自分が発生した乱数を含む第2のパケットの、前記他の情報処理装置への送信を制御する送信制御ステップと
    をコンピュータに実行させることを特徴とするプログラム。
  14. 有線または無線により、他の情報処理装置と通信を行う情報処理装置のプログラムが記録されている記録媒体であって、
    前記他の情報処理装置が発生する乱数、および自分が記憶する複数のデータのうち、前記他の情報処理装置との通信においてアクセスするデータの一覧であるアクセス対象リストを含む第1のパケットの受信を制御する受信制御ステップと、
    前記第1のパケットに含まれる前記アクセス対象リストに基づいて、前記他の情報処理装置との通信を継続するか否かの判定を制御する継続判定制御ステップと、
    前記継続判定制御ステップの処理により、前記他の情報処理装置との通信を継続すると判定された場合、前記アクセス対象リストに記述されるデータに対応付けられた情報に基づいて、暗号鍵の生成を制御する鍵生成制御ステップと、
    前記鍵生成制御ステップの処理により生成された前記暗号鍵を用いて、前記第1のパケットに含まれる乱数を暗号化し、前記他の情報処理装置により自分が認証されるためのデータである第1の認証用データの生成を制御する認証用データ生成制御ステップと、
    前記認証用データ生成制御ステップの処理により生成された前記第1の認証用データ、および自分が発生した乱数を含む第2のパケットの、前記他の情報処理装置への送信を制御する送信制御ステップと
    をコンピュータに実行させるプログラムが記録されていることを特徴とする記録媒体。
JP2004285068A 2004-09-29 2004-09-29 情報処理装置および方法、プログラム並びに記録媒体 Pending JP2006101213A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004285068A JP2006101213A (ja) 2004-09-29 2004-09-29 情報処理装置および方法、プログラム並びに記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004285068A JP2006101213A (ja) 2004-09-29 2004-09-29 情報処理装置および方法、プログラム並びに記録媒体

Publications (1)

Publication Number Publication Date
JP2006101213A true JP2006101213A (ja) 2006-04-13

Family

ID=36240606

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004285068A Pending JP2006101213A (ja) 2004-09-29 2004-09-29 情報処理装置および方法、プログラム並びに記録媒体

Country Status (1)

Country Link
JP (1) JP2006101213A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009296463A (ja) * 2008-06-06 2009-12-17 Sony Corp 情報処理装置、情報処理方法、プログラム及び通信システム
JP2010124376A (ja) * 2008-11-21 2010-06-03 Mitsubishi Electric Corp 認証装置及び暗号処理装置
JP2013138304A (ja) * 2011-12-28 2013-07-11 Toyota Motor Corp セキュリティシステム及び鍵データの運用方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10327142A (ja) * 1997-03-26 1998-12-08 Sony Corp 認証システムおよび方法、並びに認証装置および方法
JP2004110335A (ja) * 2002-09-18 2004-04-08 Fuji Electric Systems Co Ltd アクセス制御システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10327142A (ja) * 1997-03-26 1998-12-08 Sony Corp 認証システムおよび方法、並びに認証装置および方法
JP2004110335A (ja) * 2002-09-18 2004-04-08 Fuji Electric Systems Co Ltd アクセス制御システム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009296463A (ja) * 2008-06-06 2009-12-17 Sony Corp 情報処理装置、情報処理方法、プログラム及び通信システム
JP4631935B2 (ja) * 2008-06-06 2011-02-16 ソニー株式会社 情報処理装置、情報処理方法、プログラム及び通信システム
JP2010124376A (ja) * 2008-11-21 2010-06-03 Mitsubishi Electric Corp 認証装置及び暗号処理装置
JP2013138304A (ja) * 2011-12-28 2013-07-11 Toyota Motor Corp セキュリティシステム及び鍵データの運用方法

Similar Documents

Publication Publication Date Title
US20060050877A1 (en) Information processing apparatus and method, program, and recording medium
US8215547B2 (en) Data communicating apparatus and method for managing memory of data communicating apparatus
JP4622951B2 (ja) 通信システムおよび通信方法、情報処理装置および方法、デバイス、プログラム、並びに記録媒体
KR100627989B1 (ko) 정보 처리 시스템 및 데이터 기억 장치 및 정보 처리 장치
US8605903B2 (en) System, device, and method for wireless communication, apparatus and method for processing information from contactless IC cards
EP1667077B1 (en) Data storage apparatus, data processing method, recording medium, and program
US20100001840A1 (en) Method and system for authenticating rfid tag
US20100241867A1 (en) System and method for encrypted smart card pin entry
EP1801721A1 (en) Computer implemented method for securely acquiring a binding key for a token device and a secured memory device and system for securely binding a token device and a secured memory device
JP4987939B2 (ja) 保安モードに応じる手動型rfid保安方法
EP2183728A2 (en) Method, system and trusted service manager for securely transmitting an application to a mobile phone
JP2007183790A (ja) Rfid装置、rfidシステム及びアクセス制御方法
WO2005066803A1 (ja) データ通信装置及びデータ通信装置のメモリ管理方法
WO2006003562A1 (en) Method of choosing one of a multitude of data sets being registered with a device and corresponding device
JP5855217B1 (ja) 指紋認証付スマートカードとこれを用いた決済方法
JP2006101213A (ja) 情報処理装置および方法、プログラム並びに記録媒体
JP2007172507A (ja) ユーザ認証システム、ユーザ認証方法、認証情報格納装置、および、認証情報格納プログラム
WO2017033766A1 (ja) 通信装置、通信方法、及び、通信システム
EP3611624B1 (en) Communication device, information processing device, and data processing system
JP4817006B2 (ja) 通信システム、通信装置、および通信方法
JP2007094967A (ja) 認証システム、認証方法および入退場管理システム
US20210203483A1 (en) Secure rfid communication method
JPH1125231A (ja) メンテナンス装置およびメンテナンス方法
WO2023177497A1 (en) Using identity credentials as a key for securely controlling a lock connected to a wireless network
CN116264681A (zh) Nfc业务

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070619

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101019

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101026

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110301