説明

通信システムおよび通信方法、デバイス、情報処理装置および方法、プログラム、並びに記録媒体

【課題】簡単な構成で安全かつ利便性の高い情報通信を行うことができるようにする。
【解決手段】乱数生成部202により生成された乱数が、秘密鍵記憶部203に記憶される鍵を用いて暗号演算部208により暗号され、CPU207と入出力部201とを介してリーダライタ100に通信IDとして送信される。CPU105は、通信IDを秘密鍵記憶部101に記憶されている鍵を用いて暗号演算部106により復号させ、乱数を取得する。また、CPU105は、必要に応じてID記憶部204に記憶されているICカード200に固有のカードIDの取得要求を、入出力部102を介して送信し、ICカード200から送信されてくるデータを、乱数を鍵として暗号演算部106に復号させ、取得する。本発明は、NFCIP-1デバイスに適用することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信システムおよび通信方法、デバイス、情報処理装置および方法、プログラム、並びに記録媒体関し、特に、簡単な構成で安全かつ利便性の高い情報通信を行うことができるようにする通信システムおよび通信方法、デバイス、情報処理装置および方法、プログラム、並びに記録媒体に関する。
【背景技術】
【0002】
近年、非接触型ICカードやRFIDなどの普及が目覚しい。例えば、従来の非接触型ICカードなどでは、ICカードとリーダライタとの間で行われる通信において、同時に二つ以上のICカード又はリーダライタが電波を送出し、その結果、ICカード又はリーダライタがどの対象から電波が発せられたものであるかを区別できなくなるという、いわゆる衝突を防止するために、カードに固有のID(カードID)を用いるものが多い。
【0003】
このように衝突防止のためにカードIDが用いられる場合、カードIDは、どのリーダライタでも読み出すことが可能となるので、ICカードを持っていると、そのカードIDによりカードの持ち主が特定され、その人のプライバシーが侵害される問題があった。
【0004】
また、例えば、希少な商品などの真贋性を確認するために商品にRFIDが取り付けられることもある。このような場合、商品に取り付けられるRFIDが固有のIDを有することになり、RFIDと通信可能なリーダライタがあれば、その商品を購入したユーザの行動を監視することも可能となってしまう。
【0005】
一方、リーダライタと通信可能な範囲にあるICカードやRFIDを識別するための方式であるNFCIP(Near Field Communication - Interface and Protocol)-1を標準化した規格としてISO/IEC18092 (NFCIP-1)が規定されている。この規格によれば、ICカードやRFIDに固有のIDがリーダライタに送信されることなく、衝突を防止することが可能となる。
【0006】
また、リーダライタとRFIDなどの電子タグの双方で秘密共有鍵情報を設定し、同情報を有するリーダライタのみが暗号化された発信情報を復号可能とすることで、不正な同定追跡の防止をはかり、プライバシーを保護することも提案されている(例えば、特許文献1参照)。
【特許文献1】特開2005-348306号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、NFCIP-1においては、ICカードやRFIDに固有のIDが送信されないので、このままでは個々のICカードやRFIDそのものを識別することができない。このため、個々のICカードやRFIDを個々に識別する必要がある場合、チップのデータ領域にICカードやRFIDに固有のIDを記憶させておき、必要に応じて固有のIDをリーダライタに送信することも考えられるが、この方式では、ICカードやRFIDに固有のIDを暗号化して安全に送信するために、セッション鍵を交換するための認証シーケンスが新たに必要となってしまう。
【0008】
また、特許文献1の技術では、電子タグの固有のIDを秘匿することが可能となるが、一方向通信に関してのみの提案であり相互通信するRFIDに必要な識別番号を秘匿状態にしなければならず通信する相手を特定することができないという問題があった。
【0009】
本発明はこのような状況に鑑みてなされたものであり、簡単な構成で安全かつ利便性の高い情報通信を行うことができるようにするものである。
【課題を解決するための手段】
【0010】
本発明の第1の側面は、所定の距離の範囲内において無線通信を行うデバイスおよび情報処理装置により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムであって、前記デバイスは、乱数を生成する乱数生成手段と、与えられた鍵に基づいて予め定められたアルゴリズムで情報を暗号化または復号するデバイス暗号化手段と、前記デバイス暗号化手段による暗号化または復号に用いられ、前記情報処理装置との間で事前に共有されている秘密鍵を記憶するデバイス秘密鍵記憶手段と、前記情報処理装置から送信されるポーリングに対応して、前記乱数生成手段により生成された乱数を、前記秘密鍵を用いて前記デバイス暗号化手段により暗号化した処理結果のデータが、前記情報処理装置との通信において通信相手を一意に識別するために利用される通信IDとして埋め込まれた応答を、前記情報処理装置に送信する通信ID送信手段と、前記乱数生成手段により生成された乱数を鍵として用い、前記デバイス暗号化手段を制御して情報を暗号化または復号し、前記情報処理装置との間で送受信するデバイス送受信処理手段とを備え、前記情報処理装置は、与えられた鍵に基づいて予め定められたアルゴリズムで情報を暗号化または復号する装置暗号化手段と、前記装置暗号化手段による暗号化または復号に用いられ、前記デバイスとの間で事前に共有されている秘密鍵を記憶する装置秘密鍵記憶手段と、ポーリングに対応して前記デバイスから送信される応答を受信して前記応答に含まれる通信IDを、前記デバイスとの通信において通信相手を一意に識別するために利用される識別子として記憶する通信ID記憶手段と、前記通信IDを、前記秘密鍵を用い、前記装置暗号化手段を制御して復号することで前記乱数を取得する乱数取得手段と、前記乱数取得手段により取得された乱数を鍵として用い、前記装置暗号化手段を制御して情報を暗号化または復号し、前記デバイスとの間で送受信する装置送受信処理手段とを備える通信システムである。
【0011】
本発明の第1の側面は、所定の距離の範囲内において無線通信を行うデバイスおよび情報処理装置により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムの通信方法であって、前記デバイスが、乱数を生成し、前記情報処理装置から送信されるポーリングに対応して、前記生成された乱数を、前記情報処理装置との間で事前に共有されている秘密鍵を用いて、予め定められたアルゴリズムで暗号化した処理結果のデータが、前記情報処理装置との通信において通信相手を一意に識別するために利用される通信IDとして埋め込まれた応答を、前記情報処理装置に送信し、前記生成された乱数を鍵として用い、前記アルゴリズムで情報を暗号化または復号し、前記情報処理装置との間で送受信するステップを含み、前記情報処理装置が、ポーリングに対応して前記デバイスから送信される応答を受信して前記応答に含まれる通信IDを、前記デバイスとの通信において通信相手を一意に識別するために利用される識別子として記憶し、前記通信IDを、前記デバイスとの間で事前に共有されている秘密鍵を用い予め定められたアルゴリズムで復号することで前記乱数を取得し、前記取得された乱数を鍵として用い、情報を前記アルゴリズムで暗号化または復号し、前記デバイスとの間で送受信するステップを含む通信方法である。
【0012】
本発明の第1の側面においては、デバイスにより、乱数が生成され、前記情報処理装置から送信されるポーリングに対応して、前記生成された乱数を、前記情報処理装置との間で事前に共有されている秘密鍵を用いて、予め定められたアルゴリズムで暗号化した処理結果のデータが、前記情報処理装置との通信において通信相手を一意に識別するために利用される通信IDとして埋め込まれた応答が、前記情報処理装置に送信され、前記生成された乱数を鍵として用い、前記アルゴリズムで情報を暗号化または復号し、前記情報処理装置との間で送受信される。また、前記情報処理装置により、ポーリングに対応して前記デバイスから送信される応答を受信して前記応答に含まれる通信IDが、前記デバイスとの通信において通信相手を一意に識別するために利用される識別子として記憶され、前記通信IDを、前記デバイスとの間で事前に共有されている秘密鍵を用い予め定められたアルゴリズムで復号することで前記乱数が取得され、前記取得された乱数を鍵として用い、情報が前記アルゴリズムで暗号化または復号され、前記デバイスとの間で送受信される。
【0013】
本発明の第2の側面は、所定の距離の範囲内において、無線通信を行うデバイスおよび情報処理装置により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムのデバイスであって、第1の乱数を生成する乱数生成手段と、与えられた鍵に基づいて予め定められたアルゴリズムで情報を暗号化または復号するデバイス暗号化手段と、前記デバイス暗号化手段による暗号化または復号に用いられ、前記情報処理装置との間で事前に共有されている秘密鍵を記憶するデバイス秘密鍵記憶手段と、前記情報処理装置から送信されるポーリングに対応して、前記乱数生成手段により生成された前記第1の乱数を、前記秘密鍵を用いて前記デバイス暗号化手段により暗号化した処理結果のデータが、前記情報処理装置との通信において通信相手を一意に識別するために利用される通信IDとして埋め込まれた応答を、前記情報処理装置に送信する通信ID送信手段と、前記乱数生成手段により生成された前記第1の乱数を鍵として用い、前記デバイス暗号化手段を制御して情報を暗号化または復号し、前記情報処理装置との間で送受信するデバイス送受信処理手段とを備えるデバイスである。
【0014】
前記通信システムにおける通信の方式は、ISO/IEC 18092として規定されるNFCIP(Near Field Communication - Interface and Protocol)-1であり、前記通信ID送信手段は、前記通信IDを、NFCIP-1において、RF衝突回避の際及び単一デバイス探知処理に用いられるNFC識別子として前記応答に埋め込むようにすることができる。
【0015】
自分に固有の固有IDを記憶するID記憶手段をさらに備え、前記情報処理装置から前記固有IDの読出し要求を受信した場合、前記ID記憶手段に記憶されている固有IDを、前記乱数生成手段により生成された前記第1の乱数を鍵として用い、前記デバイス暗号化手段で暗号化して前記情報処理装置に送信するようにすることができる。
【0016】
前記情報処理装置との通信において、前記情報処理装置に前記固有IDを暗号化して送信したか否かを判定する判定手段をさらに備え、前記判定手段により、前記情報処理装置に前記固有IDを暗号化して送信したと判定された場合、前記デバイス送受信処理手段は、前記情報処理装置との間で送受信される情報を、暗号化または復号するようにすることができる。
【0017】
前記デバイス送受信処理手段は、前記乱数生成手段により生成された前記第1の乱数に加えて、前記ポーリングか、または、前記ポーリングの次の送信のときに前記情報処理装置から前記秘密鍵で暗号化されて送信されてくる第2の乱数も鍵として用い、前記デバイス暗号化手段を制御して情報を暗号化または復号し、前記情報処理装置との間で送受信するようにすることができる。
【0018】
本発明の第2の側面は、所定の距離の範囲内において、無線通信を行うデバイスおよび情報処理装置により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムのデバイスの通信方法であって、乱数を生成し、前記情報処理装置から送信されるポーリングに対応して、前記生成された乱数を、前記情報処理装置との間で事前に共有されている秘密鍵を用いて、予め定められたアルゴリズムで暗号化した処理結果のデータが、前記情報処理装置との通信において通信相手を一意に識別するために利用される通信IDとして埋め込まれた応答を、前記情報処理装置に送信し、前記生成された乱数を鍵として用い、前記アルゴリズムで情報を暗号化または復号し、前記情報処理装置との間で送受信するステップを含む通信方法である。
【0019】
本発明の第2の側面は、所定の距離の範囲内において、無線通信を行うデバイスおよび情報処理装置により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムのデバイスに通信処理を実行させるプログラムであって、乱数の生成を制御し、前記情報処理装置から送信されるポーリングに対応して、前記生成された乱数を、前記情報処理装置との間で事前に共有されている秘密鍵を用いて、予め定められたアルゴリズムで暗号化した処理結果のデータが、前記情報処理装置との通信において通信相手を一意に識別するために利用される通信IDとして埋め込まれた応答の、前記情報処理装置への送信を制御し、前記生成された乱数を鍵として用い、前記アルゴリズムで情報を暗号化または復号し、前記情報処理装置との間での送受信を制御するステップを含むコンピュータが読み取り可能なプログラムである。
【0020】
本発明の第2の側面においては、乱数が生成され、前記情報処理装置から送信されるポーリングに対応して、前記生成された乱数を、前記情報処理装置との間で事前に共有されている秘密鍵を用いて、予め定められたアルゴリズムで暗号化した処理結果のデータが、前記情報処理装置との通信において通信相手を一意に識別するために利用される通信IDとして埋め込まれた応答が、前記情報処理装置に送信され、前記生成された乱数を鍵として用い、前記アルゴリズムで情報が暗号化または復号され、前記情報処理装置との間で送受信される。
【0021】
本発明の第3の側面は、所定の距離の範囲内において無線通信を行うデバイスおよび情報処理装置により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムの情報処理装置であって、与えられた鍵に基づいて予め定められたアルゴリズムで情報を暗号化または復号する装置暗号化手段と、前記装置暗号化手段による暗号化または復号に用いられ、前記デバイスとの間で事前に共有されている秘密鍵を記憶する装置秘密鍵記憶手段と、ポーリングに対応して前記デバイスから送信される応答を受信して前記応答に含まれる通信IDを、前記デバイスとの通信において通信相手を一意に識別するために利用される識別子として記憶する通信ID記憶手段と、前記通信IDを、前記秘密鍵を用い、前記装置暗号化手段を制御して復号することで第1の乱数を取得する乱数取得手段と、前記乱数取得手段により取得された前記第1の乱数を鍵として用い、前記装置暗号化手段を制御して情報を暗号化または復号し、前記デバイスとの間で送受信する装置送受信処理手段とを備える情報処理装置である。
【0022】
前記通信システムにおける通信の方式は、ISO/IEC 18092として規定されるNFCIP(Near Field Communication - Interface and Protocol)-1であり、前記通信ID記憶手段は、ポーリングに対応して前記デバイスから送信される応答に含まれる情報であって、NFCIP-1において、RF衝突回避の際及び単一デバイス探知処理に用いられるNFC識別子を、前記通信IDとして記憶するようにすることができる。
【0023】
第2の乱数を生成する乱数生成手段をさらに備え、前記装置送受信処理手段は、前記ポーリングか、または、前記ポーリングの次の送信のときに前記第2の乱数を前記秘密鍵で暗号化して前記デバイスに送信するとともに、前記乱数取得手段により取得された前記第1の乱数に加えて前記第2の乱数も鍵として用い、前記装置暗号化手段を制御して情報を暗号化または復号し、前記デバイスとの間で送受信するようにすることができる。
【0024】
前記デバイスに固有の固有IDを読み出す必要がある場合、前記装置送受信処理手段は、前記情報処理装置との間で送受信される情報を、暗号化または復号するようにすることができる。
【0025】
本発明の第3の側面は、所定の距離の範囲内において無線通信を行うデバイスおよび情報処理装置により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムの情報処理装置の情報処理方法であって、ポーリングに対応して前記デバイスから送信される応答を受信して前記応答に含まれる通信IDを、前記デバイスとの通信において通信相手を一意に識別するために利用される識別子として記憶し、前記通信IDを、前記デバイスとの間で事前に共有されている秘密鍵を用い予め定められたアルゴリズムで復号することで前記乱数を取得し、前記取得された乱数を鍵として用い、前記アルゴリズムで情報を暗号化または復号し、前記デバイスとの間で送受信するステップを含む情報処理方法である。
【0026】
本発明の第3の側面は、所定の距離の範囲内において無線通信を行うデバイスおよび情報処理装置により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムの情報処理装置に情報処理を実行させるプログラムであって、ポーリングに対応して前記デバイスから送信される応答を受信して前記応答に含まれる通信IDを、前記デバイスとの通信において通信相手を一意に識別するために利用される識別子として記憶するように制御し、前記通信IDを、前記デバイスとの間で事前に共有されている秘密鍵を用い予め定められたアルゴリズムで復号することで前記乱数の取得を制御し、前記取得された乱数を鍵として用い、前記アルゴリズムで情報を暗号化または復号し、前記デバイスとの間での送受信を制御するステップを含むコンピュータが読み取り可能なプログラムである。
【0027】
本発明の第3の側面においては、ポーリングに対応して前記デバイスから送信される応答を受信して前記応答に含まれる通信IDが、前記デバイスとの通信において通信相手を一意に識別するために利用される識別子として記憶され、前記通信IDを、前記デバイスとの間で事前に共有されている秘密鍵を用い予め定められたアルゴリズムで復号することで前記乱数が取得され、前記取得された乱数を鍵として用い、前記アルゴリズムで情報が暗号化または復号され、前記デバイスとの間で送受信される。
【0028】
本発明の第4の側面は、所定の距離の範囲内において無線通信を行うデバイスおよび情報処理装置により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムであって、前記デバイスは、第1の乱数を生成する乱デバイス数生成手段と、与えられた鍵に基づいて予め定められたアルゴリズムで情報を暗号化または復号するデバイス暗号化手段と、前記デバイス暗号化手段による暗号化または復号に用いられ、前記情報処理装置との間で事前に共有されている秘密鍵を記憶するデバイス秘密鍵記憶手段と、前記情報処理装置から送信されるポーリングに対応して、前記デバイス乱数生成手段により生成された前記第1の乱数を、前記秘密鍵を用いて前記デバイス暗号化手段により暗号化した処理結果のデータが、前記情報処理装置との通信において通信相手を一意に識別するために利用される通信IDとして埋め込まれた応答を、前記情報処理装置に送信する通信ID送信手段と、前記ポーリングか、または、前記ポーリングの次の送信のときに前記情報処理装置から前記秘密鍵で暗号化されて送信されてくる第2の乱数と、前記デバイス乱数生成手段により生成された前記第1の乱数とを鍵として用い、前記デバイス暗号化手段を制御して情報を暗号化または復号し、前記情報処理装置との間で送受信するデバイス送受信処理手段とを備え、前記情報処理装置は、前記第2の乱数を生成する装置乱数生成手段と、与えられた鍵に基づいて予め定められたアルゴリズムで情報を暗号化または復号する装置暗号化手段と、前記装置暗号化手段による暗号化または復号に用いられ、前記デバイスとの間で事前に共有されている秘密鍵を記憶する装置秘密鍵記憶手段と、前記ポーリングに対応して前記デバイスから送信される応答を受信して前記応答に含まれる通信IDを、前記デバイスとの通信において通信相手を一意に識別するために利用される識別子として記憶する通信ID記憶手段と、前記通信IDを、前記秘密鍵を用い、前記装置暗号化手段を制御して復号することで前記第1の乱数を取得する乱数取得手段と、前記ポーリングか、または、前記ポーリングの次の送信のときに前記第2の乱数を前記秘密鍵で暗号化して前記デバイスに送信するとともに、前記乱数取得手段により取得された前記第1の乱数と前記第2の乱数を鍵として用い、前記装置暗号化手段を制御して情報を暗号化または復号し、前記デバイスとの間で送受信する装置送受信処理手段とを備える通信システムである。
【0029】
本発明の第4の側面は、所定の距離の範囲内において無線通信を行うデバイスおよび情報処理装置により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムの通信方法であって、前記デバイスが、第1の乱数を生成し、前記情報処理装置から送信されるポーリングに対応して、生成された前記第1の乱数を、前記情報処理装置との間で事前に共有されている秘密鍵を用いて、予め定められたアルゴリズムで暗号化した処理結果のデータが、前記情報処理装置との通信において通信相手を一意に識別するために利用される通信IDとして埋め込まれた応答を、前記情報処理装置に送信し、前記ポーリングか、または、前記ポーリングの次の送信のときに前記情報処理装置から前記秘密鍵で暗号化されて送信されてくる第2の乱数と、生成された前記第1の乱数とを鍵として用い、前記アルゴリズムで情報を暗号化または復号し、前記情報処理装置との間で送受信するステップを含み、前記情報処理装置が、前記第2の乱数を生成し、前記ポーリングに対応して前記デバイスから送信される応答を受信して前記応答に含まれる通信IDを、前記デバイスとの通信において通信相手を一意に識別するために利用される識別子として記憶し、前記通信IDを、前記デバイスとの間で事前に共有されている秘密鍵を用い予め定められたアルゴリズムで復号することで前記第1の乱数を取得し、前記ポーリングか、または、前記ポーリングの次の送信のときに前記第2の乱数を前記秘密鍵で暗号化して前記デバイスに送信するとともに、取得された前記第1の乱数と前記第2の乱数を鍵として用い、情報を前記アルゴリズムで暗号化または復号し、前記デバイスとの間で送受信するステップを含む通信方法である。
【0030】
本発明の第4の側面においては、デバイスにより、第1の乱数が生成され、前記情報処理装置から送信されるポーリングに対応して、生成された前記第1の乱数を、前記情報処理装置との間で事前に共有されている秘密鍵を用いて、予め定められたアルゴリズムで暗号化した処理結果のデータが、前記情報処理装置との通信において通信相手を一意に識別するために利用される通信IDとして埋め込まれた応答が、前記情報処理装置に送信され、前記ポーリングか、または、前記ポーリングの次の送信のときに前記情報処理装置から前記秘密鍵で暗号化されて送信されてくる第2の乱数と、生成された前記第1の乱数とを鍵として用い、前記アルゴリズムで情報が暗号化または復号され、前記情報処理装置との間で送受信される。また、前記情報処理装置により、前記第2の乱数が生成され、前記ポーリングに対応して前記デバイスから送信される応答を受信して前記応答に含まれる通信IDが、前記デバイスとの通信において通信相手を一意に識別するために利用される識別子として記憶され、前記通信IDを、前記デバイスとの間で事前に共有されている秘密鍵を用い予め定められたアルゴリズムで復号することで前記第1の乱数が取得され、前記ポーリングか、または、前記ポーリングの次の送信のときに前記第2の乱数が前記秘密鍵で暗号化されて前記デバイスに送信されるとともに、取得された前記第1の乱数と前記第2の乱数を鍵として用い、情報が前記アルゴリズムで暗号化または復号され、前記デバイスとの間で送受信される。
【発明の効果】
【0031】
本発明によれば、簡単な構成で安全かつ利便性の高い情報通信を行うことができる。
【発明を実施するための最良の形態】
【0032】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【0033】
本発明の第1の側面の通信システムは、所定の距離の範囲内において無線通信を行うデバイス(例えば、図1のICカード200)および情報処理装置(例えば、図1のリーダライタ100)により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムであって、前記デバイスは、乱数を生成する乱数生成手段(例えば、図1の乱数生成部202)と、与えられた鍵に基づいて予め定められたアルゴリズムで情報を暗号化または復号するデバイス暗号化手段(例えば、図1の暗号演算部208)と、前記デバイス暗号化手段による暗号化または復号に用いられ、前記情報処理装置との間で事前に共有されている秘密鍵を記憶するデバイス秘密鍵記憶手段(例えば、図1の秘密鍵記憶部203)と、前記情報処理装置から送信されるポーリングに対応して、前記乱数生成手段により生成された乱数を、前記秘密鍵を用いて前記デバイス暗号化手段により暗号化した処理結果のデータが、前記情報処理装置との通信において通信相手を一意に識別するために利用される通信IDとして埋め込まれた応答を、前記情報処理装置に送信する通信ID送信手段(例えば、図4のステップS103の処理を実行する図1のCPU207)と、前記乱数生成手段により生成された乱数を鍵として用い、前記デバイス暗号化手段を制御して情報を暗号化または復号し、前記情報処理装置との間で送受信するデバイス送受信処理手段(例えば、図4のステップS108、またはステップS110の処理を実行する図1のCPU207)とを備え、前記情報処理装置は、与えられた鍵に基づいて予め定められたアルゴリズムで情報を暗号化または復号する装置暗号化手段(例えば、図1の暗号演算部208)と、前記装置暗号化手段による暗号化または復号に用いられ、前記デバイスとの間で事前に共有されている秘密鍵を記憶する装置秘密鍵記憶手段(例えば、図1の秘密鍵記憶部203)と、ポーリングに対応して前記デバイスから送信される応答を受信して前記応答に含まれる通信IDを、前記デバイスとの通信において通信相手を一意に識別するために利用される識別子として記憶する通信ID記憶手段(例えば、図6のステップS332の処理を実行する図1のCPU105)と、前記通信IDを、前記秘密鍵を用い、前記装置暗号化手段を制御して復号することで前記乱数を取得する乱数取得手段(例えば、図6のステップS334の処理を実行する図1のCPU105)と、前記乱数取得手段により取得された乱数を鍵として用い、前記装置暗号化手段を制御して情報を暗号化または復号し、前記デバイスとの間で送受信する装置送受信処理手段(例えば、図4のステップS206、S209、またはS210の処理を実行する図1のCPU105)とを備える。
【0034】
本発明の第1の側面の通信方法は、所定の距離の範囲内において無線通信を行うデバイス(例えば、図1のICカード200)および情報処理装置(例えば、図1のリーダライタ100)により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムの通信方法であって、前記デバイスは、 乱数を生成し(例えば、図5のステップS301の処理)、前記情報処理装置から送信されるポーリングに対応して、前記生成された乱数を、前記情報処理装置との間で事前に共有されている秘密鍵を用いて、予め定められたアルゴリズムで暗号化した処理結果のデータが、前記情報処理装置との通信において通信相手を一意に識別するために利用される通信IDとして埋め込まれた応答を、前記情報処理装置に送信し(例えば、図4のステップS103の処理)、前記生成された乱数を鍵として用い、前記アルゴリズムで情報を暗号化または復号し、前記情報処理装置との間で送受信する(例えば、図4のステップS108、またはステップS110の処理)ステップを含み、前記情報処理装置は、ポーリングに対応して前記デバイスから送信される応答を受信して前記応答に含まれる通信IDを、前記デバイスとの通信において通信相手を一意に識別するために利用される識別子として記憶し(例えば、図6のステップS332の処理)、前記通信IDを、前記デバイスとの間で事前に共有されている秘密鍵を用い予め定められたアルゴリズムで復号することで前記乱数を取得し(例えば、図6のステップS334の処理)、前記取得された乱数を鍵として用い、情報を前記アルゴリズムで暗号化または復号し、前記デバイスとの間で送受信する(例えば、図4のステップS206、S209、またはS210の処理)ステップを含む。
【0035】
本発明の第2の側面のデバイスは、所定の距離の範囲内において、無線通信を行うデバイス(例えば、図1のICカード200)および情報処理装置(例えば、図1のリーダライタ100)により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムのデバイスであって、第1の乱数を生成する乱数生成手段(例えば、図1の乱数生成部202)と、与えられた鍵に基づいて予め定められたアルゴリズムで情報を暗号化または復号するデバイス暗号化手段(例えば、図1の暗号演算部208)と、前記デバイス暗号化手段による暗号化または復号に用いられ、前記情報処理装置との間で事前に共有されている秘密鍵を記憶するデバイス秘密鍵記憶手段(例えば、図1の秘密鍵記憶部203)と、前記情報処理装置から送信されるポーリングに対応して、前記乱数生成手段により生成された第1の乱数を、前記秘密鍵を用いて前記デバイス暗号化手段により暗号化した処理結果のデータが、前記情報処理装置との通信において通信相手を一意に識別するために利用される通信IDとして埋め込まれた応答を、前記情報処理装置に送信する通信ID送信手段(例えば、図4のステップS103の処理を実行する図1のCPU207)と、前記乱数生成手段により生成された第1の乱数を鍵として用い、前記デバイス暗号化手段を制御して情報を暗号化または復号し、前記情報処理装置との間で送受信するデバイス送受信処理手段(例えば、図4のステップS108、またはステップS110の処理を実行する図1のCPU207)とを備える。
【0036】
このデバイスは、前記通信システムにおける通信の方式が、ISO/IEC 18092として規定されるNFCIP(Near Field Communication - Interface and Protocol)-1であり、前記通信ID送信手段は、前記通信IDを、NFCIP-1において、RF衝突回避の際及び単一デバイス探知処理に用いられるNFC識別子(例えば、図3のNFCID2)として前記応答に埋め込むようにすることができる。
【0037】
このデバイスは、自分に固有の固有IDを記憶するID記憶手段(例えば、図1のID記憶部204)をさらに備え、前記情報処理装置から前記固有IDの読出し要求を受信した場合、前記ID記憶手段に記憶されている固有IDを、前記乱数生成手段により生成された乱数を鍵として用い、前記デバイス暗号化手段で暗号化して前記情報処理装置に送信するようにすることができる。
【0038】
このデバイスは、前記情報処理装置との通信において、前記情報処理装置に前記固有IDを暗号化して送信したか否かを判定する判定手段(例えば、図2のステップS29の処理を実行する図1のCPU207)をさらに備え、前記判定手段により、前記情報処理装置に前記固有IDを暗号化して送信したと判定された場合、前記デバイス送受信処理手段は、前記情報処理装置との間で送受信される情報を、暗号化または復号するようにすることができる。
【0039】
本発明の第2の側面の通信方法は、所定の距離の範囲内において、無線通信を行うデバイス(例えば、図1のICカード200)および情報処理装置(例えば、図1のリーダライタ100)により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムのデバイスの通信方法であって、乱数を生成し(例えば、図5のステップS301の処理)、前記情報処理装置から送信されるポーリングに対応して、前記生成された乱数を、前記情報処理装置との間で事前に共有されている秘密鍵を用いて、予め定められたアルゴリズムで暗号化した処理結果のデータが、前記情報処理装置との通信において通信相手を一意に識別するために利用される通信IDとして埋め込まれた応答を、前記情報処理装置に送信し(例えば、図4のステップS103の処理)、前記生成された乱数を鍵として用い、前記アルゴリズムで情報を暗号化または復号し、前記情報処理装置との間で送受信する(例えば、図4のステップS108、またはステップS110の処理)ステップを含む。
【0040】
本発明の第3の側面の情報処理装置は、所定の距離の範囲内において無線通信を行うデバイス(例えば、図1のICカード200)および情報処理装置(例えば、図1のリーダライタ100)により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムの情報処理装置であって、与えられた鍵に基づいて予め定められたアルゴリズムで情報を暗号化または復号する装置暗号化手段(例えば、図1の暗号演算部208)と、前記装置暗号化手段による暗号化または復号に用いられ、前記デバイスとの間で事前に共有されている秘密鍵を記憶する装置秘密鍵記憶手段(例えば、図1の秘密鍵記憶部203)と、ポーリングに対応して前記デバイスから送信される応答を受信して前記応答に含まれる通信IDを、前記デバイスとの通信において通信相手を一意に識別するために利用される識別子として記憶する通信ID記憶手段(例えば、図6のステップS332の処理を実行する図1のCPU105)と、前記通信IDを、前記秘密鍵を用い、前記装置暗号化手段を制御して復号することで前記乱数を取得する乱数取得手段(例えば、図6のステップS334の処理を実行する図1のCPU105)と、前記乱数取得手段により取得された乱数を鍵として用い、前記装置暗号化手段を制御して情報を暗号化または復号し、前記デバイスとの間で送受信する装置送受信処理手段(例えば、図4のステップS206、S209、またはS210の処理を実行する図1のCPU105)とを備える。
【0041】
この情報処理装置は、前記通信システムにおける通信の方式が、ISO/IEC 18092として規定されるNFCIP(Near Field Communication - Interface and Protocol)-1であり、前記通信ID記憶手段は、ポーリングに対応して前記デバイスから送信される応答に含まれる情報であって、NFCIP-1において、RF衝突回避の際及び単一デバイス探知処理に用いられるNFC識別子(例えば、図3のNFCID2)を、前記通信IDとして記憶するようにすることができる。
【0042】
本発明の第3の側面の情報処理方法は、所定の距離の範囲内において無線通信を行うデバイス(例えば、図1のICカード200)および情報処理装置(例えば、図1のリーダライタ100)により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムの情報処理装置の情報処理方法であって、ポーリングに対応して前記デバイスから送信される応答を受信して前記応答に含まれる通信IDを、前記デバイスとの通信において通信相手を一意に識別するために利用される識別子として記憶し(例えば、図6のステップS332の処理)、前記通信IDを、前記デバイスとの間で事前に共有されている秘密鍵を用い予め定められたアルゴリズムで復号することで前記乱数を取得し(例えば、図6のステップS334の処理)、前記取得された乱数を鍵として用い、前記アルゴリズムで情報を暗号化または復号し、前記デバイスとの間で送受信する(例えば、図4のステップS206、S209、またはS210の処理)ステップを含む。
【0043】
以下、図面を参照して、本発明の実施の形態について説明する。
【0044】
図1は、本発明を適用した通信システム50の一実施形態における構成例を示すブロック図である。同図において、通信システム50は、リーダライタ100と、ICカード200とにより構成されており、リーダライタ100と、ICカード200とは、例えば、それぞれが有するアンテナなどを介して無線による通信を行う。
【0045】
リーダライタ100の入出力部102は、所定の電磁波を輻射し、それに対する負荷の変化に基づいて、ICカード200が近接されたか否かを検出するとともに、例えば、ICカード200が近接されたとき、ICカード200と各種のデータを送受信するアンテナを有する構成とされる。入出力部102は、例えば、発振回路(OSC)から供給される所定の周波数の搬送波を、CPU105から供給されるデータに基づいて、ASK(Amplitude Shift Keying)変調し、生成された変調波を、電磁波としてアンテナから出力する。また、アンテナを介して取得した変調波(ASK変調波)を復調し、復調されたデータをCPU105に供給する。
【0046】
リーダライタ100のCPU(Central Processing Unit)101は、ROM(Read Only Memory)104に記憶されているプログラムを、RAM(Random Access Memory)103にロードするなどして各種の処理を実行する。RAM103にはまた、CPU101が各種の処理を実行する上において必要なデータなども適宜記憶される。
【0047】
CPU105は、暗号演算部106を制御することにより、予め定められた暗号アルゴリズムに基づく、データの暗号化と復号を行うことができるように構成されている。ここで、暗号演算部106の暗号アルゴリズムは、DES(Data Encryption Standard)、トリプルDES、AES(Advanced Encryption Standard)などの暗号アルゴリズムであって、いわゆる秘密鍵(共通鍵)暗号方式の暗号アルゴリズムとされる。
【0048】
リーダライタ100においてデータの暗号化または復号を行う場合、例えば、CPU105が秘密鍵記憶部101に記憶された秘密鍵を、暗号化または復号すべきデータとともに、暗号演算部106に供給することにより、暗号演算部106による、供給された秘密鍵を用いた、供給されたデータの暗号化または復号が実行される。
【0049】
秘密鍵記憶部101に記憶される秘密鍵は、ICカード200の秘密鍵記憶部203に記憶されている秘密鍵を同じものとされ、ICカード200に対応するリーダライタ100であって、ICカード200に固有のIDであるカードIDの読み出しを許可されたリーダライタ100のみに、予め秘密鍵が記憶されている。
【0050】
ICカード200の入出力部201は、例えば、コイル状のアンテナとコンデンサにより構成されるLC回路を有する構成とされ、LC回路が近傍に配置されたリーダライタ100から輻射される所定の周波数の電磁波と共振するようになされている。また、入出力部201は、アンテナにおいて励起された交流磁界をASK復調により整流し、それを安定化し、各部に直流電源として供給する。リーダライタ100から輻射される電磁波の電力は、ICカード200に必要な電力を賄う磁界を発生させるように調整されている。
【0051】
また、入出力部201は、アンテナを介して受信した変調波(ASK変調波)を包絡線検波して復調し、復調後のデータをBPSK(Binary Phase Shift Keying)復調してCPU207に供給するとともに、受信信号のクロック周波数と同一の周波数のクロック信号を発生してCPU207に供給する。
【0052】
さらに、入出力部201は、所定の情報をリーダライタ100に送信する場合、CPU207から供給されBPSK変調されたデータを、例えばアンテナの負荷の変動に基づいてASK変調し、その変調成分を、アンテナを介してリーダライタ100に送信する。
【0053】
ICカード200のCPU201は、ROM204に記憶されているプログラムを実行するなどして各種の処理を実行する。秘密鍵記憶部203乃至データ記憶部205は、例えば、EEPROM(Electrically Erasable Programmable Read-Only Memory)などで構成され、それぞれがEEPROMの記憶領域の一部とされる。
【0054】
CPU105は、暗号演算部208を制御することにより、予め定められた暗号アルゴリズムに基づく、データの暗号化と復号を行うことができるように構成されている。ここで、暗号演算部208の暗号アルゴリズムは、暗号演算部106の暗号アルゴリズムと同じアルゴリズムとされ、やはり秘密鍵(共通鍵)暗号方式の暗号アルゴリズムとされる。
【0055】
ICカード200においてデータの暗号化または復号を行う場合、例えば、CPU207が秘密鍵記憶部203に記憶された秘密鍵を、暗号化または復号すべきデータとともに、暗号演算部208に供給することにより、暗号演算部208による、供給された秘密鍵を用いた、供給されたデータの暗号化または復号が実行される。
【0056】
乱数生成部202は、必要に応じて所定のけた数の乱数を発生する。詳細については後述するが、この乱数は、ICカード200とリーダライタ100との間で行われる通信において、両者が通信相手を相互に識別しあうためのセッションID、およびそのセッションにおいて送受信されるデータの暗号化または復号に用いられるセッション鍵として利用されることになる。
【0057】
ID記憶部204は、ICカード200に固有の識別情報であるカードIDを記憶する。
【0058】
データ記憶部205は、ICカード200を用いて行われる各種サービスなどを提供するためのアプリケーションデータなどが必要に応じて記憶される。
【0059】
なお、暗号演算部106と暗号演算部208は、それぞれソフトウェアとして構成されるようにすることも可能である。
【0060】
上述したように、リーダライタ100とICカード200は、無線による通信を行うので、同時に二つ以上のICカード又はリーダライタが電波を送出し、その結果、ICカード又はリーダライタがどの対象から電波が発せられたものであるかを区別できなくなるという、いわゆる衝突が懸念されるが、通信システム50におけるリーダライタ100とICカード200のそれぞれは、リーダライタと通信可能な範囲にあるICカードやRFIDを識別することが可能な通信方式であるNFCIP(Near Field Communication - Interface and Protocol)-1に適合する通信を行う。
【0061】
NFCIP-1には、他のNFCIP-1デバイスの通信ならびに同帯域で通信している他の装置による通信との両立を図るため、RF検知と衝突回避の仕組が盛り込まれており、NFC識別子(NFCID(NFC Identifier))と呼ばれるRF衝突回避の際及び単一デバイス探知処理に用いられる乱数を利用したNFCデバイスの識別子が用いられる。例えば、従来の通信システムにおいては、ICカードの固有のIDをリーダライタに送信し、リーダライタがそのIDに基づいて個々のICカードを識別することで衝突の防止を図るものも多いが、NFCIP-1ではICカードに固有のIDをリーダライタに送信する必要はない。
【0062】
従って、通信システム50においては、ICカード200に固有のカードIDをリーダライタ100に送信しなくも、リーダライタ100とICカード200がそれぞれ通信相手を一意に識別し、衝突を防止することが可能となる。
【0063】
なお、NFCIP-1については、ISO/IEC18092にその詳細が記述されている。
【0064】
以降においては、リーダライタ100がNFCIP-1に規定されるイニシエータとして動作し、ICカード200がNFCIP-1に規定されるターゲットとして動作する場合を例として説明する。また、NFCIP-1の受動通信モードにおいては、イニシエータとターゲットのそれぞれが106 kb/sの伝送速度に対応している場合と、212 kb/sまたは424 kb/sの伝送速度に対応している場合について規定されているが、ここでは主に、イニシエータとターゲットのそれぞれが212 kb/sまたは424 kb/sの伝送速度に対応している場合を想定して説明する。
【0065】
ところで、上述したように、通信システム50においては、NFCIP-1による無線通信が行われ、ICカード200に固有のカードIDがリーダライタ100に送信されず、ユーザのプライバシーを尊重した通信システムを提供することが可能となるが、ICカードを用いて提供されるサービスにおいては、やはり個々のICカードを一意に識別する仕組みが必要となる場合もある。このため、本発明のICカード200においては、必要に応じてICカード200に固有のカードIDをリーダライタ100に送信する機能が実装されている。
【0066】
図2は、図1のICカード200による通信処理の例を説明するフローチャートである。この処理は、例えば、ICカード200がリーダライタ100のアンテナの近傍に位置し、入出力部201のアンテナにおいて励起された交流磁界により生成される電力がICカード200の各部に供給されたとき実行される。
【0067】
ステップS21において、乱数生成部202は、乱数を生成する。ここで生成された乱数は、例えば、データ記憶部205の中の予め設定された所定の領域に記憶される。
【0068】
ステップS22において、暗号演算部208は、ステップS21の処理で生成された乱数を、秘密鍵記憶部203に保持されている秘密鍵で暗号化し、通信IDを生成する。
【0069】
ステップS23において、CPU207は、リーダライタ100からのポーリングを受信したか否かを判定し、ポーリングを受信したと判定されるまで待機する。ステップS23において、リーダライタ100からのポーリングを受信したと判定された場合、処理は、ステップS24に進む。
【0070】
ステップS24において、CPU207は、ステップS23で受信したと判定されたポーリングに対する応答であって、ステップS22の処理で生成された通信IDを含む応答をリーダライタ100に送信する。
【0071】
図3は、このとき送信される応答のデータが格納されるフレームであって、NFCIP-1で規定される応答フレームのフォーマットを示す図である。なお、同図は、NFCIP-1において規定されるフレームであって、イニシエータとターゲットのそれぞれが212 kb/sまたは424 kb/sの伝送速度に対応している場合の、イニシエータからのポーリングに対応して送出されるターゲットからの応答フレームのフォーマット(構成)を示している。
【0072】
同図に示されるフィールド「プリアンブル」には、すべて論理“0”で48 ビット以上のデータが格納される。フィールド「同期パターン」には、イニシエータとターゲットとの間の通信の同期に用いられる2バイト(16ビット)のデータが格納される。フィールド「長さ」は、値として“12”を示す8ビットのデータが格納される。フィールド「ペイロード」は、開始バイトが“01”とされ、8バイトのNFCID2及び8バイトのPadを含んだデータが格納される。CRC(Cyclic Redundancy Check)は、誤り検出に用いられるデータであって、予め定められた方式で計算されたデータが格納される。
【0073】
ステップS24においては、上述した通信IDがフィールド「ペイロード」に含まれるNFCID2として格納され、応答フレームが送信されることになる。
【0074】
また、上述したように通信IDは、暗号化された乱数であるが、ICカード200に対応するリーダライタ100であって、ICカード200のカードIDを読み出すことを許可されたリーダライタ100には、予め秘密鍵記憶部101に秘密鍵記憶部203に保持されている鍵と同じ鍵が保持されているので、リーダライタ100では、ステップS24の処理で送信された応答フレームのNFCID2の値(通信ID)を復号することで、ステップS21の処理でICカード200が生成した乱数を取得することができる。
【0075】
図2に戻って、ステップS24の処理の後、ステップS25において、CPU207は、リーダライタ100からコマンドを受信したか否かを判定し、コマンドを受信したと判定されるまで待機する。リーダライタ100は、ICカード200に記憶されているデータを読み出したり、ICカード200にデータを書き込んだりするために、所定のコマンドをICカード200に送信する。ステップS25において、リーダライタ100からのコマンドを受信したと判定された場合、処理は、ステップS26に進む。
【0076】
ステップS26において、CPU207は、ステップS25の処理で受信したと判定されたコマンドが、ICカード200に固有のカードIDの送信を要求するコマンドであるか否かを判定する。ステップS26において、当該コマンドが、カードIDの送信を要求するコマンドであると判定された場合、処理は、ステップS27に進む。
【0077】
ステップS27において、CPU207は、暗号化フラグをONに設定する。これにより、以降の処理では、送信されるデータの暗号化が行われることになる。なお、暗号化フラグは、例えば、データ記憶部205の中の予め設定された所定の領域のビットとされ、初期値は「0(OFF)」とされており、一度暗号化フラグがONに設定されると、ICカード200の電力の供給が停止されるまで、すなわちICカード200がリーダライタ100と通信可能な範囲外に移動させられるまで、暗号化フラグONの状態が保持される。
【0078】
ステップS28において、CPU207は、ID記憶部204に記憶されているカードIDを読出し、暗号演算部208を制御してそのカードIDを、ステップS21の処理で生成された乱数を鍵として暗号化させ、暗号化されたカードIDをリーダライタ100に送信する。すなわち、リーダライタ100からカードIDの送信要求があった場合、カードIDが乱数を鍵として暗号化されてリーダライタ100に送信される。
【0079】
なお、リーダライタ100では、上述したように乱数を取得することが可能なので、ステップS28の処理で送信されたデータを復号してカードIDを取得することができる。
【0080】
ステップS28の処理の後、処理は、ステップS25に戻り、再びステップS25とS26の処理が実行される。ステップS26の処理による判定結果として、当該コマンドが、カードIDの送信を要求するコマンドではないと判定された場合、処理は、ステップS29に進む。いまの場合、例えば、リーダライタ100から受信したコマンドがデータ記憶部205に記憶されている所定のデータの読出し要求であったものとする。
【0081】
ステップS29において、CPU207は、暗号化フラグがONであるか否かを判定する。ステップS29において、暗号化フラグはONであると判定された場合、処理は、ステップS30に進む。
【0082】
ステップS30において、CPU207は、ステップS25の処理で受信したと判定されたコマンドを解析して、所定の処理を行い、その処理結果のデータを暗号化する。いまの場合、例えば、リーダライタ100からのコマンドに対応してデータ記憶部205の所定の領域に記憶されたデータが読み出され、読み出されたデータが暗号演算部208により暗号化されることになる。なお、ここで暗号化に用いられる暗号鍵は、やはりステップS21の処理で生成された乱数とされる。
【0083】
ステップS31において、CPU207は、ステップS30の処理で暗号化されたデータをリーダライタ100に送信する。ここで、送信されたデータが、リーダライタ100により復号されることでICカード200に記憶されていたデータがリーダライタ100により読み出されたことになる。
【0084】
一方、ステップS29において、暗号化フラグがONではないと判定された場合、処理は、ステップS32に進む。
【0085】
ステップS32において、CPU207は、ステップS25の処理で受信したと判定されたコマンドを解析して、所定の処理を行い、その処理結果のデータを送信する。いまの場合、例えば、リーダライタ100からのコマンドに対応してデータ記憶部205の所定の領域に記憶されたデータが読み出され、読み出されたデータがリーダライタ100に対して送信される。
【0086】
ここでは、リーダライタ100からICカード200に記憶されているデータを読み出すコマンドが受信された場合の例について説明したが、例えば、リーダライタ100からICカード200にデータを記憶させる(書き込む)コマンドが受信される場合、リーダライタ100から、書き込むべきデータが送信され、ICカード200においてそのデータを書き込むことになる。
【0087】
ステップS32の処理では、送信されるデータは暗号化されていないので、リーダライタは、受信したデータを復号する必要はない。すなわち、リーダライタ100からカードIDの送信要求がない場合、暗号化フラグがONに設定されず、リーダライタ100とICカード200との間で送受信されるデータの暗号化は行われない。
【0088】
ステップS31またはS32の処理の後、処理は、ステップS25に戻り、それ以後の処理が、ICカード200がリーダライタ100と通信可能な範囲外に移動させられるまで繰り返し実行される。
【0089】
このようにして、ICカードの通信処理が実行される。このようにすることで、リーダライタによりICカードを用いて提供されるサービスにおいて、個々のICカードを一意に識別する仕組みが必要となる場合、カードIDが暗号化されてリーダライタに送信されるので、予めICカードのカードIDを読み出すことが許可されているリーダライタ以外のリーダライタには、カードIDが取得できないようにすることができ、ユーザのプライバシーが尊重されたより安全な通信システムを提供することができる。
【0090】
また、ICカードのカードIDを読み出すことが許可されていないリーダライタであっても、NFCIP-1の規定に適合する通信を行うリーダライタであれば、ICカードとの間でデータの送受信を行うことができ、リーダライタにより提供されるサービスにおいて個々のICカードを一意に識別する必要がない場合、問題なく処理を実行することが可能となる。
【0091】
なお、図3の例では、イニシエータとターゲットのそれぞれが212 kb/sまたは424 kb/sの伝送速度に対応している場合であって、通信IDがNFCID2として用いられる例について説明したが、イニシエータとターゲットのそれぞれが106 kb/sの伝送速度に対応している場合は、通信IDがNFCIP-1に規定されるNFCID1として用いられることになる。
【0092】
次に、図4のアローチャートを参照して、リーダライタ100と、ICカード200との間で行われる通信の詳細について説明する。ここでは、ICカード200のカードIDの読出しを許可されているリーダライタ100と、ICカード200との間で、カードIDの読出しの後、データの読出しとデータの書込みが行われる例について説明する。
【0093】
例えば、ICカード200がリーダライタ100のアンテナの近傍に位置し、入出力部201のアンテナにおいて励起された交流磁界により生成される電力がICカード200の各部に供給されると、ICカード200は、ステップS101の処理を実行し、乱数を生成する。
【0094】
ここで、図5のフローチャートを参照して、図4のステップS101の処理である通信ID生成処理の詳細について説明する。
【0095】
ステップS301において、乱数生成部202は、乱数Aを生成(発生)する。
【0096】
ステップS302において、CPU207は、ステップS301の処理で生成された乱数Aを、例えば、データ記憶部205の中の予め定められた所定の領域に記憶する。
【0097】
ステップS303において、暗号演算部208は、ステップS301の処理で生成された乱数Aを、秘密鍵記憶部203に記憶されている鍵を用いて暗号化する。
【0098】
ステップS304において、CPU207は、ステップS303の処理結果のデータ(すなわち、暗号化された乱数A)を、通信IDとして、例えば、データ記憶部205の中の予め定められた所定の領域に記憶する。
【0099】
なお、ステップS301乃至S304の処理は、図2のステップS21とS22に対応する(同等の)処理である。
【0100】
図4に戻って、リーダライタ100は、ステップS201において、自身が通信可能なICカード200に対してポーリングを送信し、ステップS102でICカード200により、これが受信される。
【0101】
ステップS103において、ICカード200は、ステップS102の処理で受信されたポーリングに対する応答を、リーダライタ100に送信する。このとき、図3を参照して上述したように、応答フレームの中の所定の領域に格納されるNFCID2としてステップS304の処理で記憶された通信IDがリーダライタ100に送信される応答フレームの中に格納される。なお、ステップS102と103の処理は、図2のステップS23とS24に対応する(同等の)処理である。リーダライタ100は、ステップS202で、この応答フレームを受信する。
【0102】
ステップS203において、リーダライタ100は、ICカード200から送信された応答フレームの通信IDを復号して乱数Aを取得する。
【0103】
ここで、図6のフローチャートを参照して、図4のステップS203の処理である乱数取得処理の詳細について説明する。
【0104】
ステップS331において、CPU105は、ステップS202の処理で受信したICカード200からの応答フレームに含まれる通信ID(すなわち、暗号化された乱数A)を取得する。
【0105】
ステップS332において、CPU105は、例えば、RAM103の所定の領域に、ステップS331の処理で取得された通信IDを記憶する。
【0106】
ステップS333において、暗号演算部106は、ステップS331の処理で取得された通信IDであって、暗号化された乱数Aを、秘密鍵記憶部101に記憶されている鍵を用いて復号する。上述したように、暗号演算部106は、暗号演算部208と同じ暗号アルゴリズムで暗号または復号の処理を実行し、また、予めICカード200のカードIDの読出しを許可されたリーダライタ100の秘密鍵記憶部101には、秘密鍵記憶部203に記憶されている鍵と同じ鍵が記憶されている。したがって、ステップS333の処理により、ステップS301の処理でICカード200が生成した乱数Aが復号されて取得されることになる。
【0107】
ステップS334において、CPU105は、ステップS333の処理により取得された乱数Aを、例えば、RAM103の所定の領域に記憶する。
【0108】
この後、リーダライタ100と、ICカード200は、通信IDに基づいて互いを一意に識別し、また、乱数Aを鍵として必要に応じてデータの暗号化または復号を行う。従って、ここまでの処理により、リーダライタ100とICカード200との間で、今回の通信(セッション)において必要となるセッションID(いまの場合、通信ID)と、セッション鍵(いまの場合、乱数A)を交換したことになる。
【0109】
図4に戻って、ステップS204において、リーダライタ100は、ICカード200に対してカードIDの読出しを要求するコマンドを含むフレームを送信する。このとき、ステップS332の処理で記憶されている通信IDが、ICカード200がリーダライタ100から送信されたフレームを一意に識別するための識別子として埋め込まれる。なお、NFCIP-1の規定に従い、通信IDは、NFCIP-1において規定される転送フレームの中のトランスポートデータフィールドの一部に埋め込まれることになる。そして、ステップS104で、ICカード200により、このフレームが受信される。
【0110】
ステップS105において、ICカード200は、リーダライタ100から送信されたコマンドに対応する処理を実行する。いまの場合、カードIDの読出しコマンドに対応する処理が実行されることになる。
【0111】
ここで、図7のフローチャートを参照して、図4のステップS105の処理であるカードID送信処理の詳細について説明する。
【0112】
ステップS361において、CPU207は、ID記憶部204に記憶されているカードIDを読み出す。
【0113】
ステップS362において、暗号演算部208は、ステップS361の処理で読み出されたカードIDを、ステップS302の処理により記憶されている乱数Aを鍵として用い、暗号化する。
【0114】
ステップS363において、CPU207は、ステップS362の処理結果のデータ(暗号化されたカードID)を取得する。
【0115】
図4に戻って、ステップS105の処理の後、ステップS106において、ICカード200は、ステップS363の処理で取得されたデータを含むフレームを、ステップS104で受信されたリーダライタ100からのカードID読出しコマンドに対応する応答として送信する。このとき、やはりステップS304の処理で記憶されている通信IDが、リーダライタ100がICカード200から送信されたフレームを一意に識別するための識別子として埋め込まれることになる。なお、ステップS104乃至S106の処理は、図2のステップS25乃至S28に対応する(同等の)処理である。そして、図4のステップS205で、リーダライタ100により、このフレームが受信される。
【0116】
また、ここでリーダライタ100からのカードID読出し要求に対応してカードIDが読み出されたことで、ICカード200において暗号化フラグがONとなり(図2のステップS27の処理)、これ以後のデータの読出し、または書込みの処理においては、データが暗号化されて送受信されることになる。
【0117】
ステップS206において、リーダライタ100は、暗号化されたカードIDを復号する。
【0118】
ここで、図8のフローチャートを参照して、図4のステップS206の処理であるカードID復号処理の詳細について説明する。
【0119】
ステップS391において、CPU105は、ステップS205で受信したフレームに含まれる暗号化されたデータを取得する。
【0120】
ステップS392において、暗号演算部106は、ステップS391の処理で取得されたデータを、ステップS334の処理で記憶されている乱数Aを鍵として用い、復号する。
【0121】
ステップS393において、CPU105は、ステップS392の処理結果のデータを、カードIDとして取得する。これにより、ICカード200に固有のカードIDがリーダライタ100により取得されたことになる。この後、リーダライタ100は、必要に応じてカードIDを用いたサービスの提供に伴う処理を実行する。
【0122】
図4に戻って、ステップS206の処理の後、ステップS207においてリーダライタ100は、ICカード200に記憶されているデータ(例えば、リーダライタ100により提供されるサービスの処理の中で必要となるデータなど)を読み出すコマンドを含んだフレームを、ICカード200に対して送信する。このとき、やはりステップS332の処理で記憶されている通信IDが、ICカード200がリーダライタ100から送信されたフレームを一意に識別するための識別子として埋め込まれる。ステップS107において、ICカード200によりこのフレームが受信される。
【0123】
ステップS108において、ICカード200は、リーダライタ100から送信されたコマンドに対応する処理を実行する。いまの場合、データの読出しコマンドに対応する処理が実行されることになる。
【0124】
ここで、図9のフローチャートを参照して、図4のステップS108の処理である読出しデータ送信処理の詳細について説明する。
【0125】
ステップS421において、CPU207は、データ記憶部205に記憶されているデータの中のうち、リーダライタ100から要求のあったデータを読み出す。
【0126】
ステップS422において、暗号演算部208は、ステップS421の処理で読み出されたデータを、ステップS302の処理により記憶されている乱数Aを鍵として用い、暗号化する。
【0127】
ステップS423において、CPU207は、ステップS422の処理結果のデータ(暗号化されたデータ)を取得する。
【0128】
図4に戻って、ステップS109において、CPU207は、ステップS423の処理により取得されたデータを含むフレームを、ステップS107で受信されたリーダライタ100からのデータ読出しコマンドに対応する応答として送信する。このとき、やはりステップS304の処理で記憶されている通信IDが、リーダライタ100がICカード200から送信されたフレームを一意に識別するための識別子として埋め込まれることになる。なお、ステップS107乃至S108の処理は、図2のステップS25、S26、S29乃至S31に対応する(同等の)処理である。そして、図4のステップS208で、リーダライタ100により、このフレームが受信される。
【0129】
ステップS209において、リーダライタ100は、ICカード200から受信したデータの復号を行う。この処理は、図8を参照して上述した処理と同様なので、詳細な説明は省略するが、いまの場合、カードIDではなく、例えば、リーダライタ100により提供されるサービスの処理の中で必要となるデータが乱数Aを鍵として復号されて取得されることになる。
【0130】
ステップS210において、リーダライタ100は、ICカード200にデータを記憶させる(書き込む)ための処理を行う。
【0131】
ここで、図10のフローチャートを参照して、図4のステップS210の処理である書込要求送信処理の詳細について説明する。
【0132】
ステップS451において、CPU105は、例えば、自身が実行したアプリケーションプログラムの処理結果などのデータであって、ICカード200に記憶させる(書き込む)べきデータを取得する。
【0133】
ステップS452において、暗号演算部106は、ステップS451の処理で取得されたデータを、ステップS334の処理により記憶されている乱数Aを鍵として用い、暗号化する。
【0134】
ステップS453において、CPU105は、ステップS452の処理結果のデータ(暗号化されたデータ)を書込み要求のコマンドとともにフレームに格納する。
【0135】
図4に戻って、ステップS210の処理の後、ステップS211において、リーダライタ100は、ステップS453の処理により暗号化されたデータが格納された書込み要求のフレームをICカード200に対して送信する。このとき、やはりステップS332の処理で記憶されている通信IDが、ICカード200がリーダライタ100から送信されたフレームを一意に識別するための識別子として埋め込まれることになる。そして、ステップS110で、ICカード200によりこのフレームが受信される。
【0136】
ステップS111において、ICカード200は、リーダライタ100から送信されたコマンドに対応する処理を実行する。いまの場合、データの書込みコマンドに対応する処理が実行されることになる。
【0137】
ここで、図11のフローチャートを参照して、図4のステップS111の処理であるデータ書込み処理の詳細について説明する。
【0138】
ステップS481において、CPU207は、ステップS110で受信したフレームに含まれる暗号化されたデータを取得する。
【0139】
ステップS482において、暗号演算部208は、ステップS481の処理で取得されたデータを、ステップS302の処理により記憶されている乱数Aを鍵として用い、復号する。
【0140】
ステップS483において、CPU207は、ステップS482の処理結果のデータ(復号されたデータ)を、データ記憶部205の中の所定の領域に記憶することで、データの書込みを実行する。
【0141】
図4に戻って、ステップS111の処理の後、ステップS112において、ICカード200は、ステップS483の処理結果を表すデータを含むフレームをリーダライタ100に対して送信する。これにより、例えば、データの書込みに成功したまたは失敗したことを表すデータを含むフレームが送信される。このとき、やはりステップS304の処理で記憶されている通信IDが、リーダライタ100がICカード200から送信されたフレームを一意に識別するための識別子として埋め込まれることになる。そして、ステップS212において、リーダライタ100によりこのフレームが受信される。
【0142】
なお、ここでは、カードID読出しの後、データの読出しが行われ、さらにデータの書込みが行われる例について説明したが、データの読出し、データの書込みが行われる順序や回数は、これに限られるものではなく、必要に応じて変更してもよい。
【0143】
このようにして、リーダライタ100とICカード200との間で通信が行われる。ICカード200のカードIDの読出しを許可されているリーダライタ100と、ICカード200との間では、カードIDが暗号化されてリーダライタ100に送信されるとともに、カードIDの読出しの後行われる、データの読出しとデータの書込みについても全てデータが暗号化されて送受信される。従って、ユーザのプライバシーが侵害されることのない安全な通信システムを提供することが可能となる。
【0144】
また、例えば、秘密鍵記憶部101と秘密鍵記憶部203に記憶されている鍵により、送受信されるデータが暗号化されるようにしてもよいが、このような場合、データを安全に送受信するためには、それぞれのICカードが異なる秘密鍵を有する必要があり、その結果、リーダライタに、個々のICカードのそれぞれに対応する膨大な量の鍵を記憶させなければならず、鍵の管理が困難になる。
【0145】
本発明においては、リーダライタ100とICカード200との間で通信IDをセッションID(識別子)として交換するだけでなく、通信IDを秘密鍵で復号して得られる乱数Aも、リーダライタ100とICカード200との間で、第3者に知られることなく共有することができる。乱数Aは、ICカード200がリーダライタ100と通信を行う都度生成されるので、その後の通信において乱数Aが暗号化または復号のための鍵として利用されることを事前に取り決めておけば、通信が行われる都度異なるセッション鍵(すなわち乱数A)を利用した暗号化通信を行うこともできる。従って、リーダライタに、個々のICカードに対応する膨大な量の鍵を記憶させなくても、セッション鍵による暗号化を実現することができ、簡単な構成で安全な通信システムを提供することが可能となる。
【0146】
勿論、ICカードのカードIDの読出しを許可されていないリーダライタは、ICカードの秘密鍵記憶部に記憶されている鍵と同じ鍵を記憶していないことになるので、仮にカードIDの送信要求を行ったとしても、通信IDから乱数を復号することができず、乱数を鍵として暗号化されて送信されてくるカードIDも復号して取得することはできない。
【0147】
さらに、本発明においては、リーダライタ(イニシエータ)とICカード(ターゲット)は、それぞれNFCIP-1の規定に適合する通信を行うだけで、セッション鍵を交換するためのハンドシェイクプロトコルなどの付加的な処理は一切行う必要がない。
【0148】
NFCIP-1においては、衝突回避の際及び単一デバイス探知処理に用いられる乱数を利用したNFCデバイスの識別子であるNFC識別子(例えば、図3に示されるNFCID2)の利用が規定されており、NFCIP-1に対応するICカードにはもともと乱数生成部202(または同等の機能)が設けられていることになる。本発明で用いられる通信IDは、ターゲットで生成された乱数を暗号化したものにすぎず、ICカードに暗号演算部を新たに設けるだけで、セッションIDである通信IDの交換に伴う付加的な処理は何ら発生しない。
【0149】
また、本発明においては、通信IDを復号することによって得られる乱数を、セッション鍵として利用する。従って、NFCIP-1に規定されるイニシエータからのポーリングと、ターゲットからの応答が完了すれば、通信IDとともにセッション鍵の交換も完了したことになり、やはり付加的な処理は何ら発生しない。
【0150】
すなわち、本発明においては、ICカードは、通信相手のリーダライタが、ICカードのカードIDの読出しを許可され、データを暗号化して送受信を行う特定のリーダライタであるのか、または、ICカードのカードIDの読出しを許可されておらず、データを暗号化せずに送受信する一般的なリーダライタであるのかを意識(区別)することなく処理を実行することができる。したがって、本発明のICカードは、通信相手のリーダライタがNFCIP-1に規定されるイニシエータとして動作するリーダライタであれば、問題なく通信を行うことが可能であり、装置の互換性が保たれることになる。
【0151】
次に、図12のアローチャートを参照して、本発明を適用したICカード200と、ICカード200のカードIDの読出しを許可されておらず、データを暗号化せずに送受信する一般的なリーダライタ(図示せず)との間で行われる通信の詳細について説明する。
【0152】
ステップS121乃至S123の処理と、ステップS221及びS222の処理は、それぞれ図4を参照して上述したステップS101乃至S103の処理と、ステップS201及びS202の処理と同様の処理である。
【0153】
図12の例の場合、図4の場合と異なり、ステップS222で受信したICカード200からの応答に含まれる通信IDを、リーダライタが復号する処理は、実行されない。また、リーダライタからICカード200に対してカードIDの読出し要求が送信されず、それに対するICカードからの応答も送信されない。すなわち、図12の場合、図4のステップS203乃至205と、ステップS104乃至S106に対応する処理は実行されないことになる。
【0154】
また、リーダライタからのカードID読出し要求がないので、ICカード200においては、暗号化フラグがONとされず(図2のステップS27の処理は実行されておらず)、これ以後のデータの読出し、または書込みの処理においても、データが暗号化されずに送受信されることになる。
【0155】
従って、図12の場合、図4のS108、S209、S210、およびS111に対応する処理は実行されず、ステップS129とS231では、それぞれ読み出されたデータと、書き込むべきデータが暗号化されずそのまま送信され、ステップS228とS130では、受信したフレームのデータを復号せずにそのまま取得または記憶することになる。なお、ステップS129とS131の処理は、図2のステップS32に対応する(同等の)処理である。
【0156】
また、図12の例の場合も、ステップS227、S129、S231、またはS131の処理で送信されるフレームに、やはりステップS121の処理で生成された通信IDが識別子として埋め込まれることになる。
【0157】
このように、本発明のICカード200は、一般的なリーダライタとの間でも問題なく通信を行うことが可能であり、その結果装置の互換性が保たれ、通信システムのコストを抑制することが可能となる。
【0158】
さて、上述した実施の形態では、ICカード200が生成した乱数Aを秘密鍵記憶部203に記憶されている秘密鍵で暗号化したものを、通信IDとしてリーダライタ100に送信することにより、リーダライタ100とICカード200が互いを一意に識別することができる他、乱数Aによるデータの暗号化通信を可能としていた。
【0159】
この通信IDは、図2を参照して説明したように、NFCIP-1で規定される応答フレームの中のNFCID2を格納する8バイトのフィールドに格納される。従って、通信IDおよび乱数Aは、最大で8バイト(すなわち、64ビット)長のデータに制限される。
【0160】
しかしながら、例えば、暗号アルゴリズムとして2-Key Triple-DESを使用する場合の鍵のデータ長は112ビットであり、112ビットの鍵に関する情報を伝送するためには、112ビット以上のデータ長が必要となる。また、暗号アルゴリズムしてAES(Advanced Encryption Standard)を使用する場合の鍵のデータ長は最小で128ビットであり、128ビットの鍵に関する情報を伝送するためには、128ビット以上のデータ長が必要となる。
【0161】
従って、暗号アルゴリズムとして、2-Key Triple-DESまたはAESなどを採用した場合には、ポーリングに対する1回の返信だけでは、暗号化通信に必要な鍵を生成するための全ての情報を送信することができず、リーダライタ100は、不足分の情報を問い合わせるコマンドを含むフレームをICカード200に対して送信し、これに対し、ICカード200が返信するやりとりが必要となる。即ち、図4に示した処理より、リーダライタ100とICカード200との間で、鍵情報の不足分をやりとりする通信が余分に発生する。
【0162】
そこで、図13に示す通信システムでは、所定の暗号アルゴリズムで使用される鍵のデータ長が128ビットであっても、リーダライタとICカードとの間で鍵情報の不足分をやりとりする通信が発生しないようにするシステムを実現する。
【0163】
即ち、図13は、本発明を適用した通信システムのその他の実施の形態としての、通信システム500の構成例を示すブロック図である。同図において、上述した実施の形態と対応する部分については同一の符号を付してあり、その説明は適宜省略する。
【0164】
図13の通信システム500は、リーダライタ600とICカード200とにより構成されている。通信システム500では、上述した通信システム50で用いられていたものと同様のICカード200が、リーダライタ600と無線による通信を行うように構成されている。
【0165】
リーダライタ600は、図1のリーダライタ100が有する秘密鍵記憶部101、入出力部102、RAM103、ROM104、CPU105、および暗号演算部106と同様の、秘密鍵記憶部601、入出力部602、RAM603、ROM604、CPU605、および暗号演算部606を有し、さらに、乱数生成部607およびデータ記憶部608を備える。
【0166】
乱数生成部607は、ICカード200の乱数生成部202と同様に、必要に応じて所定のけた数の乱数を発生する。例えば、乱数生成部607は、8バイト長の乱数Bを生成する。データ記憶部608は、ICカード200との通信において記憶することが必要となったデータを適宜記憶する。例えば、データ記憶部608は、乱数生成部607で生成された乱数Bを記憶する。
【0167】
通信システム500では、ICカード200は、上述した通信システム50における場合と同様に、例えば、8バイトの乱数Aを生成し、秘密鍵で暗号化したものを通信IDとしてリーダライタ600に送信する。また、リーダライタ600も、8バイトの乱数Bを生成し、秘密鍵で暗号化したものをICカード200に送信する。その結果、リーダライタ600およびICカード200のそれぞれは、自分自身で生成した8バイトの乱数と、通信相手から受け取った8バイトの乱数とを合わせた16バイトの乱数を共有することができる。そして、リーダライタ600およびICカード200は、16バイト(128ビット)の乱数をセッション鍵として使用する。
【0168】
以下では、図4に示した通信処理と同様の、リーダライタ600がICカード200に対してデータの読出しとデータの書込みを行う処理において、ポーリングの付加情報として、暗号化された乱数Bをリーダライタ600からICカード200へ伝送する場合と、ポーリングの次に送信するフレームの付加情報として、暗号化された乱数Bをリーダライタ600からICカード200へ伝送する場合のそれぞれについて説明する。なお、ポーリングのフレーム、および、ポーリングの次に送信するフレーム(本実施の形態では、カードID読み出し要求のコマンドを含むフレーム)には、少なくとも8バイト長のデータを格納する空き領域(または拡張可能な領域)がある。
【0169】
最初に、図14のアローチャートを参照して、ポーリングの付加情報として、暗号化された乱数Bをリーダライタ600からICカード200へ伝送する場合の、リーダライタ600とICカード200との間で行われる通信の詳細について説明する。
【0170】
例えば、ICカード200がリーダライタ600のアンテナの近傍に位置し、入出力部201のアンテナにおいて励起された交流磁界により生成される電力がICカード200の各部に供給されると、ICカード200は、ステップS601の処理を実行し、8バイトの乱数Aを生成する。ステップS601の処理の詳細は、図5を参照して上述した通信ID生成処理と同様であるので、その説明は省略する。
【0171】
リーダライタ600は、ステップS501の処理を実行し、付加情報付きのポーリングのフレームを生成する。
【0172】
ここで、図15のフローチャートを参照して、図14のステップS501の処理であるポーリング生成処理の詳細について説明する。
【0173】
ステップS701において、乱数生成部607は、8バイトの乱数Bを生成(発生)する。
【0174】
ステップS702において、CPU605は、ステップS701の処理で生成された乱数Bを、例えば、データ記憶部608の中の予め定められた所定の領域に記憶する。
【0175】
ステップS703において、暗号演算部606は、ステップS701の処理で生成された乱数Bを、秘密鍵記憶部601に記憶されている鍵を用いて暗号化する。
【0176】
ステップS704において、CPU605は、ステップS703の処理結果のデータ(すなわち、暗号化された乱数B)を、ポーリングの付加情報として、例えば、データ記憶部608の中の予め定められた所定の領域に記憶する。
【0177】
図14に戻り、リーダライタ600は、ステップS502において、ICカード200に対して付加情報付きのポーリングを送信し、ステップS602でICカード200により、これが受信される。
【0178】
ステップS603において、ICカード200は、リーダライタ600から送信されたポーリングの付加情報を復号して乱数Bを取得する。
【0179】
ここで、図16のフローチャートを参照して、図14のステップS603の処理である乱数B取得処理の詳細について説明する。
【0180】
ステップS731において、CPU207は、ステップS602の処理で受信したリーダライタ600からのポーリングに含まれる付加情報(すなわち、暗号化された乱数B)を取得する。
【0181】
ステップS732において、CPU207は、例えば、データ記憶部205の所定の領域に、ステップS731の処理で取得された付加情報を記憶する。
【0182】
ステップS733において、暗号演算部208は、ステップS731の処理で取得されたポーリングに含まれる付加情報であって、暗号化された乱数Bを、秘密鍵記憶部203に記憶されている鍵を用いて復号する。これにより乱数Bが取得される。
【0183】
ステップS734において、CPU207は、ステップS733の処理により取得された乱数Bを、例えば、データ記憶部205の所定の領域に記憶する。
【0184】
図14に戻り、ステップS604において、ICカード200は、ステップS602の処理で受信されたポーリングに対する応答を、リーダライタ600に送信する。このとき、応答フレームの中の所定の領域に格納されるNFCID2(図3参照)として、ステップS601の処理で生成された通信ID(即ち、暗号化された乱数A)が格納される。リーダライタ600は、ステップS503で、この応答フレームを受信する。
【0185】
ステップS504において、リーダライタ600は、ICカード200から送信された応答フレームの通信IDを復号して乱数Aを取得する。このステップS504の処理の詳細は、図6を参照して説明した乱数取得処理と同様であるので、その説明は省略する。
【0186】
以上の処理により、リーダライタ600とICカード200は、今回の通信(セッション)において必要となるセッションID(いまの場合、通信ID)と、セッション鍵(いまの場合、8バイトの乱数Aおよび乱数B)を交換したことになる。
【0187】
従って、このステップS504の処理以降、リーダライタ600とICカード200との間で送受信されるフレームには、通信相手であるリーダライタ600またはICカード200を一意に識別するための識別子として、通信IDが埋め込まれる。また、リーダライタ600とICカード200との間で送受信されるフレームには、8バイトの乱数Aおよび乱数Bをあわせた16バイトのセッション鍵で暗号化されたデータが含まれる。
【0188】
ステップS504の処理以降の、リーダライタ600によるカードIDの読み出し要求、データ読み出し要求、およびデータ書込み要求のコマンドを含むフレームの送信と、それに応答するICカード200の返信処理は、図4を参照して説明したリーダライタ100とICカード200との間で行われる処理と同様であるので、その説明は省略する。即ち、図14のステップS505乃至513の処理は、図4のステップS204乃至S212の処理とそれぞれ同様であり、図14のステップS605乃至S613の処理は、図4のステップS104乃至S112の処理とそれぞれ同様である。但し、上述したように、リーダライタ600とICカード200との間で送受信されるフレームに含まれるデータが、乱数A(8バイトのセッション鍵)で暗号化されたものではなくて、乱数Aと乱数Bを合わせたもの(16バイトのセッション鍵)で暗号化されている点だけが異なる。
【0189】
次に、図17のアローチャートを参照して、ポーリングの次に送信するフレームの付加情報として、暗号化された乱数Bをリーダライタ600からICカード200へ伝送する場合の、リーダライタ600とICカード200との間で行われる通信の詳細について説明する。
【0190】
図17において、ICカード200が8バイトの乱数Aを生成し、リーダライタ600のポーリングに応答して、通信IDとしての、暗号化された乱数Aをリーダライタ600に送信するとともに、リーダライタ600が、それを受信して秘密鍵で復号し、8バイトの乱数Aを取得するまでの処理は、図4を参照して説明したリーダライタ100とICカード200との間で行われる処理と同様である。即ち、リーダライタ600が行う図17のステップS531乃至S533の処理は、図4のステップS201乃至S203の処理とそれぞれ同様であり、ICカード200が行う図17のステップS641乃至S643の処理は、図4のステップS101乃至S103の処理とそれぞれ同様である。
【0191】
そして、これ以降のリーダライタ600とICカード200との間で送受信されるフレームには、通信相手であるリーダライタ600またはICカード200を一意に識別するための識別子として、通信IDが埋め込まれる。
【0192】
リーダライタ600は、ステップS533において、通信IDをRAM103の所定の領域に記憶するとともに、通信IDを復号し、乱数Aを取得した後、ステップS534の処理を実行し、付加情報付きのカードID読み出し要求を生成する。
【0193】
ここで、図18のフローチャートを参照して、図17のステップS534の処理であるカードID読み出し要求生成処理の詳細について説明する。
【0194】
ステップS761において、乱数生成部607は、乱数Bを生成(発生)する。
【0195】
ステップS762において、CPU605は、ステップS761の処理で生成された乱数Bを、例えば、データ記憶部608の中の予め定められた所定の領域に記憶する。
【0196】
ステップS763において、暗号演算部606は、ステップS761の処理で生成された乱数Bを、秘密鍵記憶部601に記憶されている鍵を用いて暗号化する。
【0197】
ステップS764において、CPU605は、ステップS763の処理結果のデータ(すなわち、暗号化された乱数B)を、ID読み出し要求の付加情報として、例えば、データ記憶部608の中の予め定められた所定の領域に記憶する。
【0198】
図17に戻り、リーダライタ600は、ステップS535において、付加情報付きの、カードIDの読み出しを要求するコマンドを含むフレームをICカード200に送信する。ステップS644において、ICカード200により、このフレームが受信される。
【0199】
ステップS645において、リーダライタ600は、ICカード200から送信されたIDカード読み出し要求の付加情報を復号して乱数Bを取得する。
【0200】
ここで、図19のフローチャートを参照して、図17のステップS645の処理である乱数B取得処理の詳細について説明する。
【0201】
ステップS791において、CPU207は、ステップS644の処理で受信したリーダライタ600からのカードID読み出し要求に含まれる付加情報(すなわち、暗号化された乱数B)を取得する。
【0202】
ステップS792において、CPU207は、例えば、データ記憶部205の所定の領域に、ステップS791の処理で取得された付加情報を記憶する。
【0203】
ステップS793において、暗号演算部208は、ステップS791の処理で取得されたカードID読み出し要求に含まれる付加情報であって、暗号化された乱数Bを、秘密鍵記憶部203に記憶されている鍵を用いて復号する。これにより乱数Bが取得される。
【0204】
ステップS794において、CPU207は、ステップS793の処理により取得された乱数Bを、例えば、データ記憶部205の所定の領域に記憶する。
【0205】
以上の処理により、リーダライタ600とICカード200は、今回の通信(セッション)において必要となるセッションID(いまの場合、通信ID)と、セッション鍵(いまの場合、8バイトの乱数Aおよび乱数B)を交換したことになる。
【0206】
図17におけるICカード200のステップS646乃至S653の処理とリーダライタ600のステップS536乃至S542の処理は、リーダライタ600とICカード200との間で送受信されるフレームに含まれるデータが、乱数A(8バイトのセッション鍵)で暗号化されたものではなくて、乱数Aと乱数Bを合わせたもの(16バイトのセッション鍵)で暗号化されている点を除いて、図4のステップS105乃至S112の処理とステップS205乃至S212の処理と、それぞれ同様である。
【0207】
以上のように、通信システム500においては、リーダライタ600が、乱数生成部607によって生成された8バイトの乱数Bを秘密鍵で暗号化したものを、付加情報として、ポーリングのフレームか、または、ポーリングの次に送信するフレームに格納してICカード200に送信し、ICカード200が、乱数生成部202によって生成された8バイトの乱数Aを秘密鍵で暗号化したものを、通信IDとしてリーダライタ600に送信する。
【0208】
これにより、リーダライタ600とICカード200は、自身が生成した8バイト長の乱数A(または乱数B)と、通信相手が生成した8バイト長の乱数B(または乱数A)を合わせた16(128ビット)バイト長の鍵を共有することができる。
【0209】
従って、鍵のデータ長として112ビットや128ビットが必要な2-Key Triple-DESやAESなどの暗号アルゴリズムにも対応可能である。また、このときリーダライタ600とICカード200との間で行われる通信フレームの数(通信の回数)は、図4のアローチャートと図14および図17のアローチャートを比較して明らかなように、通信システム50で行われていた通信フレームの数と同一である。即ち、通信システム50において16バイト長の鍵を共有するために必要であった不足分の情報を問い合わせる余分な通信は、通信システム500においては発生しない。
【0210】
即ち、通信システム500によれば、必要最小限の通信フレーム数の通信によって、通信IDのデータ長よりも長いデータ長の鍵を使用する暗号アルゴリズムに対応した通信システムを提供することが可能となる。
【0211】
なお、上述した例において、リーダライタ600が生成する乱数Bのデータ長を8バイトとしたが、付加情報として格納するフレームの空き領域により、乱数Bのデータ長を8バイトより大きくすることも可能である。この場合、リーダライタ600とICカード200で使用されるセッション鍵を128ビットより大きくすることができる。
【0212】
上述した実施の形態では、図2を参照して説明したように、カードIDの送信要求があった場合に暗号化フラグがONに設定されるため、データを暗号化して通信するためには、リーダライタ600からICカード200にカードIDの送信要求を必ず送信する必要がある。
【0213】
しかしながら、送受信するデータを秘匿する必要はあるが、カードIDは必ずしも必要ではない場合も考えられる。そのような場合には、暗号化フラグをONさせるコマンドを別途設け、リーダライタ600からICカード200に送信すればよい。即ち、図14および図17の処理において、カードID読み出し要求のコマンドに代えて、暗号化フラグをONさせるコマンドを含むフレームがリーダライタ600からICカード200に送信される。また、データの暗号化を必ず行う場合には、セッション鍵の交換後は、リーダライタ600とICカード200とでやりとりするデータを必ず暗号化する(暗号化フラグをONさせる)ようにしてもよい。この場合、暗号化フラグは省略することが可能である。
【0214】
以上においては、ICカードとリーダライタを用いて構成される通信システムの例について説明したが、例えば、RFIDと、RFIDのリーダによりNFCIP-1のイニシエータとターゲットが構成される場合においても本発明を適用することができる。
【0215】
なお、上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、図1のCPU105またはCPU207により実行され、それらのプログラムは、リーダライタ100またはICカード200が読み取り可能な記録媒体などから読み込まれる。
【0216】
本明細書において上述した一連の処理を実行するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【図面の簡単な説明】
【0217】
【図1】本発明を適用した通信システムの一実施形態における構成例を示すブロック図である。
【図2】図1のICカードの通信処理を説明するフローチャートである。
【図3】NFCIP-1に規定される応答フレームフォーマットを示す図である。
【図4】図1のリーダライタと、ICカードとの間で行われる通信の詳細について説明するアローチャートである。
【図5】通信ID生成処理を説明するフローチャートである。
【図6】乱数取得処理を説明するフローチャートである。
【図7】カードID送信処理を説明するフローチャートである。
【図8】カードID復号処理を説明するフローチャートである。
【図9】読出データ送信処理を説明するフローチャートである。
【図10】書込要求送信処理を説明するフローチャートである。
【図11】データ書込み処理を説明するフローチャートである。
【図12】本発明を適用したICカードと、一般的なリーダライタとの間で行われる通信の詳細について説明するアローチャートである。
【図13】本発明を適用した通信システムのその他の実施形態における構成例を示すブロック図である。
【図14】図13のリーダライタと、ICカードとの間で行われる通信の詳細について説明するアローチャートである。
【図15】ポーリング生成処理を説明するフローチャートである。
【図16】乱数B取得処理を説明するフローチャートである。
【図17】図13のリーダライタと、ICカードとの間で行われる通信の詳細について説明するアローチャートである。
【図18】カードID読み出し要求生成処理を説明するフローチャートである。
【図19】乱数B取得処理を説明するフローチャートである。
【符号の説明】
【0218】
50 通信システム, 100 リーダライタ, 101 秘密鍵記憶部, 102 入出力部, 103 RAM, 104 ROM, 105 CPU, 106 暗号演算部, 200 ICカード, 201 入出力部, 202 乱数生成部, 203 秘密鍵記憶部, 204 ID記憶部, 205 データ記憶部, 206 ROM, 207 CPU, 208 暗号演算部, 500 通信システム, 600 リーダライタ, 601 秘密鍵記憶部, 602 入出力部, 603 RAM, 604 ROM, 605 CPU, 606 暗号演算部, 607 乱数生成部, 608 データ記憶部

【特許請求の範囲】
【請求項1】
所定の距離の範囲内において無線通信を行うデバイスおよび情報処理装置により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムであって、
前記デバイスは、
乱数を生成する乱数生成手段と、
与えられた鍵に基づいて予め定められたアルゴリズムで情報を暗号化または復号するデバイス暗号化手段と、
前記デバイス暗号化手段による暗号化または復号に用いられ、前記情報処理装置との間で事前に共有されている秘密鍵を記憶するデバイス秘密鍵記憶手段と、
前記情報処理装置から送信されるポーリングに対応して、前記乱数生成手段により生成された乱数を、前記秘密鍵を用いて前記デバイス暗号化手段により暗号化した処理結果のデータが、前記情報処理装置との通信において通信相手を一意に識別するために利用される通信IDとして埋め込まれた応答を、前記情報処理装置に送信する通信ID送信手段と、
前記乱数生成手段により生成された乱数を鍵として用い、前記デバイス暗号化手段を制御して情報を暗号化または復号し、前記情報処理装置との間で送受信するデバイス送受信処理手段とを備え、
前記情報処理装置は、
与えられた鍵に基づいて予め定められたアルゴリズムで情報を暗号化または復号する装置暗号化手段と、
前記装置暗号化手段による暗号化または復号に用いられ、前記デバイスとの間で事前に共有されている秘密鍵を記憶する装置秘密鍵記憶手段と、
ポーリングに対応して前記デバイスから送信される応答を受信して前記応答に含まれる通信IDを、前記デバイスとの通信において通信相手を一意に識別するために利用される識別子として記憶する通信ID記憶手段と、
前記通信IDを、前記秘密鍵を用い、前記装置暗号化手段を制御して復号することで前記乱数を取得する乱数取得手段と、
前記乱数取得手段により取得された乱数を鍵として用い、前記装置暗号化手段を制御して情報を暗号化または復号し、前記デバイスとの間で送受信する装置送受信処理手段と
を備える
通信システム。
【請求項2】
所定の距離の範囲内において無線通信を行うデバイスおよび情報処理装置により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムの通信方法であって、
前記デバイスは、
乱数を生成し、
前記情報処理装置から送信されるポーリングに対応して、前記生成された乱数を、前記情報処理装置との間で事前に共有されている秘密鍵を用いて、予め定められたアルゴリズムで暗号化した処理結果のデータが、前記情報処理装置との通信において通信相手を一意に識別するために利用される通信IDとして埋め込まれた応答を、前記情報処理装置に送信し、
前記生成された乱数を鍵として用い、前記アルゴリズムで情報を暗号化または復号し、前記情報処理装置との間で送受信するステップを含み、
前記情報処理装置は、
ポーリングに対応して前記デバイスから送信される応答を受信して前記応答に含まれる通信IDを、前記デバイスとの通信において通信相手を一意に識別するために利用される識別子として記憶し、
前記通信IDを、前記デバイスとの間で事前に共有されている秘密鍵を用い予め定められたアルゴリズムで復号することで前記乱数を取得し、
前記取得された乱数を鍵として用い、情報を前記アルゴリズムで暗号化または復号し、前記デバイスとの間で送受信するステップを含む
通信方法。
【請求項3】
所定の距離の範囲内において、無線通信を行うデバイスおよび情報処理装置により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムのデバイスであって、
第1の乱数を生成する乱数生成手段と、
与えられた鍵に基づいて予め定められたアルゴリズムで情報を暗号化または復号するデバイス暗号化手段と、
前記デバイス暗号化手段による暗号化または復号に用いられ、前記情報処理装置との間で事前に共有されている秘密鍵を記憶するデバイス秘密鍵記憶手段と、
前記情報処理装置から送信されるポーリングに対応して、前記乱数生成手段により生成された前記第1の乱数を、前記秘密鍵を用いて前記デバイス暗号化手段により暗号化した処理結果のデータが、前記情報処理装置との通信において通信相手を一意に識別するために利用される通信IDとして埋め込まれた応答を、前記情報処理装置に送信する通信ID送信手段と、
前記乱数生成手段により生成された前記第1の乱数を鍵として用い、前記デバイス暗号化手段を制御して情報を暗号化または復号し、前記情報処理装置との間で送受信するデバイス送受信処理手段と
を備えるデバイス。
【請求項4】
前記通信システムにおける通信の方式は、ISO/IEC 18092として規定されるNFCIP(Near Field Communication - Interface and Protocol)-1であり、
前記通信ID送信手段は、前記通信IDを、NFCIP-1において、RF衝突回避の際及び単一デバイス探知処理に用いられるNFC識別子として前記応答に埋め込む
請求項3に記載のデバイス。
【請求項5】
自分に固有の固有IDを記憶するID記憶手段をさらに備え、
前記情報処理装置から前記固有IDの読出し要求を受信した場合、
前記ID記憶手段に記憶されている固有IDを、前記乱数生成手段により生成された前記第1の乱数を鍵として用い、前記デバイス暗号化手段で暗号化して前記情報処理装置に送信する
請求項3に記載のデバイス。
【請求項6】
前記情報処理装置との通信において、前記情報処理装置に前記固有IDを暗号化して送信したか否かを判定する判定手段をさらに備え、
前記判定手段により、前記情報処理装置に前記固有IDを暗号化して送信したと判定された場合、前記デバイス送受信処理手段は、前記情報処理装置との間で送受信される情報を、暗号化または復号する
請求項5に記載のデバイス。
【請求項7】
前記デバイス送受信処理手段は、前記乱数生成手段により生成された前記第1の乱数に加えて、前記ポーリングか、または、前記ポーリングの次の送信のときに前記情報処理装置から前記秘密鍵で暗号化されて送信されてくる第2の乱数も鍵として用い、前記デバイス暗号化手段を制御して情報を暗号化または復号し、前記情報処理装置との間で送受信する
請求項3に記載のデバイス。
【請求項8】
所定の距離の範囲内において、無線通信を行うデバイスおよび情報処理装置により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムのデバイスの通信方法であって、
乱数を生成し、
前記情報処理装置から送信されるポーリングに対応して、前記生成された乱数を、前記情報処理装置との間で事前に共有されている秘密鍵を用いて、予め定められたアルゴリズムで暗号化した処理結果のデータが、前記情報処理装置との通信において通信相手を一意に識別するために利用される通信IDとして埋め込まれた応答を、前記情報処理装置に送信し、
前記生成された乱数を鍵として用い、前記アルゴリズムで情報を暗号化または復号し、前記情報処理装置との間で送受信するステップ
を含む通信方法。
【請求項9】
所定の距離の範囲内において、無線通信を行うデバイスおよび情報処理装置により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムのデバイスに通信処理を実行させるプログラムであって、
乱数の生成を制御し、
前記情報処理装置から送信されるポーリングに対応して、前記生成された乱数を、前記情報処理装置との間で事前に共有されている秘密鍵を用いて、予め定められたアルゴリズムで暗号化した処理結果のデータが、前記情報処理装置との通信において通信相手を一意に識別するために利用される通信IDとして埋め込まれた応答の、前記情報処理装置への送信を制御し、
前記生成された乱数を鍵として用い、前記アルゴリズムで情報を暗号化または復号し、前記情報処理装置との間での送受信を制御するステップ
を含むコンピュータが読み取り可能なプログラム。
【請求項10】
請求項9に記載のプログラムが記録されている記録媒体。
【請求項11】
所定の距離の範囲内において無線通信を行うデバイスおよび情報処理装置により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムの情報処理装置であって、
与えられた鍵に基づいて予め定められたアルゴリズムで情報を暗号化または復号する装置暗号化手段と、
前記装置暗号化手段による暗号化または復号に用いられ、前記デバイスとの間で事前に共有されている秘密鍵を記憶する装置秘密鍵記憶手段と、
ポーリングに対応して前記デバイスから送信される応答を受信して前記応答に含まれる通信IDを、前記デバイスとの通信において通信相手を一意に識別するために利用される識別子として記憶する通信ID記憶手段と、
前記通信IDを、前記秘密鍵を用い、前記装置暗号化手段を制御して復号することで第1の乱数を取得する乱数取得手段と、
前記乱数取得手段により取得された前記第1の乱数を鍵として用い、前記装置暗号化手段を制御して情報を暗号化または復号し、前記デバイスとの間で送受信する装置送受信処理手段と
を備える情報処理装置。
【請求項12】
前記通信システムにおける通信の方式は、ISO/IEC 18092として規定されるNFCIP(Near Field Communication - Interface and Protocol)-1であり、
前記通信ID記憶手段は、ポーリングに対応して前記デバイスから送信される応答に含まれる情報であって、NFCIP-1において、RF衝突回避の際及び単一デバイス探知処理に用いられるNFC識別子を、前記通信IDとして記憶する
請求項11に記載の情報処理装置。
【請求項13】
前記デバイスに固有の固有IDを読み出す必要がある場合、前記装置送受信処理手段は、前記情報処理装置との間で送受信される情報を、暗号化または復号する
請求項11に記載の情報処理装置。
【請求項14】
第2の乱数を生成する乱数生成手段をさらに備え、
前記装置送受信処理手段は、前記ポーリングか、または、前記ポーリングの次の送信のときに前記第2の乱数を前記秘密鍵で暗号化して前記デバイスに送信するとともに、前記乱数取得手段により取得された前記第1の乱数に加えて前記第2の乱数も鍵として用い、前記装置暗号化手段を制御して情報を暗号化または復号し、前記デバイスとの間で送受信する
請求項11に記載の情報処理装置。
【請求項15】
所定の距離の範囲内において無線通信を行うデバイスおよび情報処理装置により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムの情報処理装置の情報処理方法であって、
ポーリングに対応して前記デバイスから送信される応答を受信して前記応答に含まれる通信IDを、前記デバイスとの通信において通信相手を一意に識別するために利用される識別子として記憶し、
前記通信IDを、前記デバイスとの間で事前に共有されている秘密鍵を用い予め定められたアルゴリズムで復号することで前記乱数を取得し、
前記取得された乱数を鍵として用い、前記アルゴリズムで情報を暗号化または復号し、前記デバイスとの間で送受信するステップ
を含む情報処理方法。
【請求項16】
所定の距離の範囲内において無線通信を行うデバイスおよび情報処理装置により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムの情報処理装置に情報処理を実行させるプログラムであって、
ポーリングに対応して前記デバイスから送信される応答を受信して前記応答に含まれる通信IDを、前記デバイスとの通信において通信相手を一意に識別するために利用される識別子として記憶するように制御し、
前記通信IDを、前記デバイスとの間で事前に共有されている秘密鍵を用い予め定められたアルゴリズムで復号することで前記乱数の取得を制御し、
前記取得された乱数を鍵として用い、前記アルゴリズムで情報を暗号化または復号し、前記デバイスとの間での送受信を制御するステップ
を含むコンピュータが読み取り可能なプログラム。
【請求項17】
請求項16に記載のプログラムが記録されている記録媒体。
【請求項18】
所定の距離の範囲内において無線通信を行うデバイスおよび情報処理装置により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムであって、
前記デバイスは、
第1の乱数を生成するデバイス乱数生成手段と、
与えられた鍵に基づいて予め定められたアルゴリズムで情報を暗号化または復号するデバイス暗号化手段と、
前記デバイス暗号化手段による暗号化または復号に用いられ、前記情報処理装置との間で事前に共有されている秘密鍵を記憶するデバイス秘密鍵記憶手段と、
前記情報処理装置から送信されるポーリングに対応して、前記デバイス乱数生成手段により生成された前記第1の乱数を、前記秘密鍵を用いて前記デバイス暗号化手段により暗号化した処理結果のデータが、前記情報処理装置との通信において通信相手を一意に識別するために利用される通信IDとして埋め込まれた応答を、前記情報処理装置に送信する通信ID送信手段と、
前記ポーリングか、または、前記ポーリングの次の送信のときに前記情報処理装置から前記秘密鍵で暗号化されて送信されてくる第2の乱数と、前記デバイス乱数生成手段により生成された前記第1の乱数とを鍵として用い、前記デバイス暗号化手段を制御して情報を暗号化または復号し、前記情報処理装置との間で送受信するデバイス送受信処理手段とを備え、
前記情報処理装置は、
前記第2の乱数を生成する装置乱数生成手段と、
与えられた鍵に基づいて予め定められたアルゴリズムで情報を暗号化または復号する装置暗号化手段と、
前記装置暗号化手段による暗号化または復号に用いられ、前記デバイスとの間で事前に共有されている秘密鍵を記憶する装置秘密鍵記憶手段と、
前記ポーリングに対応して前記デバイスから送信される応答を受信して前記応答に含まれる通信IDを、前記デバイスとの通信において通信相手を一意に識別するために利用される識別子として記憶する通信ID記憶手段と、
前記通信IDを、前記秘密鍵を用い、前記装置暗号化手段を制御して復号することで前記第1の乱数を取得する乱数取得手段と、
前記ポーリングか、または、前記ポーリングの次の送信のときに前記第2の乱数を前記秘密鍵で暗号化して前記デバイスに送信するとともに、前記乱数取得手段により取得された前記第1の乱数と前記第2の乱数を鍵として用い、前記装置暗号化手段を制御して情報を暗号化または復号し、前記デバイスとの間で送受信する装置送受信処理手段と
を備える
通信システム。
【請求項19】
所定の距離の範囲内において無線通信を行うデバイスおよび情報処理装置により構成され、所定の距離の範囲内にある通信相手を一意に識別し、予め定められた方式で情報の送受信を行う通信システムの通信方法であって、
前記デバイスは、
第1の乱数を生成し、
前記情報処理装置から送信されるポーリングに対応して、生成された前記第1の乱数を、前記情報処理装置との間で事前に共有されている秘密鍵を用いて、予め定められたアルゴリズムで暗号化した処理結果のデータが、前記情報処理装置との通信において通信相手を一意に識別するために利用される通信IDとして埋め込まれた応答を、前記情報処理装置に送信し、
前記ポーリングか、または、前記ポーリングの次の送信のときに前記情報処理装置から前記秘密鍵で暗号化されて送信されてくる第2の乱数と、生成された前記第1の乱数とを鍵として用い、前記アルゴリズムで情報を暗号化または復号し、前記情報処理装置との間で送受信するステップを含み、
前記情報処理装置は、
前記第2の乱数を生成し、
前記ポーリングに対応して前記デバイスから送信される応答を受信して前記応答に含まれる通信IDを、前記デバイスとの通信において通信相手を一意に識別するために利用される識別子として記憶し、
前記通信IDを、前記デバイスとの間で事前に共有されている秘密鍵を用い予め定められたアルゴリズムで復号することで前記第1の乱数を取得し、
前記ポーリングか、または、前記ポーリングの次の送信のときに前記第2の乱数を前記秘密鍵で暗号化して前記デバイスに送信するとともに、取得された前記第1の乱数と前記第2の乱数を鍵として用い、情報を前記アルゴリズムで暗号化または復号し、前記デバイスとの間で送受信するステップを含む
通信方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2007−329884(P2007−329884A)
【公開日】平成19年12月20日(2007.12.20)
【国際特許分類】
【出願番号】特願2006−205702(P2006−205702)
【出願日】平成18年7月28日(2006.7.28)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】