(57)【特許請求の範囲】
【請求項１】
複数のアプリケーションが搭載されているＩＣモジュールと，前記アプリケーションに対応する対応アプリケーションが搭載されているコントローラと，前記コントローラからの指示に応じて前記ＩＣモジュールに対して情報の読み書きを行うリーダライタと，を備える通信システムにおいて：
前記リーダライタは，
前記ＩＣモジュールに搭載されているアプリケーションの各々と対応し，対応する前記アプリケーションそれぞれとの相互認証に用いる前記アプリケーションごとの１以上のＩＣアクセス認証情報を，対応する前記アプリケーション別のグループに区分してそれぞれ記憶し，かつ，前記グループそれぞれに対応するグループ認証情報を前記グループごとにそれぞれ記憶しているメモリを備え，
前記コントローラの対応アプリケーションから前記ＩＣモジュールへの情報の書き込みまたは前記ＩＣモジュールからの情報の読み込みを要求されると，前記グループ認証情報を用いて該対応アプリケーションと相互認証し，相互認証に成功した場合は，該成功した相互認証に用いた前記グループ認証情報に対応する前記グループに属する前記ＩＣアクセス認証情報を用いて前記ＩＣモジュールのアプリケーションと相互認証し，相互認証に成功した場合は，前記対応アプリケーションからの指示に応じて前記ＩＣモジュールに対して情報の読み込みまたは書き込みを実行する，通信システム。
【請求項２】
複数のアプリケーションが搭載されているＩＣモジュールに対し，前記アプリケーションに対応する対応アプリケーションが搭載されているコントローラからの指示に応じて情報の読み書きを行うリーダライタにおいて：
前記ＩＣモジュールに搭載されているアプリケーションの各々と対応し，対応する前記アプリケーションそれぞれとの認証に用いる前記アプリケーションごとの１以上のＩＣアクセス認証情報を，対応する前記アプリケーション別のグループに区分してそれぞれ記憶し，かつ，前記グループそれぞれに対応するグループ認証情報を前記グループごとにそれぞれ記憶しているメモリと；
前記グループ認証情報を用いて前記コントローラに搭載されている対応アプリケーションを認証し，認証に成功した場合は，該成功した認証に用いた前記グループ認証情報に対応する前記グループに属する前記ＩＣアクセス認証情報を，前記認証に成功した前記対応アプリケーションが使用することを許可する制御部と；
を備える，リーダライタ。
【請求項３】
前記ＩＣアクセス認証情報は，前記グループごとに異なるセグメントに記憶される，請求項２に記載のリーダライタ。
【請求項４】
前記制御部は，前記コントローラの対応アプリケーションの認証に成功した場合は，該成功した認証に用いた前記グループ認証情報のグループに属する前記ＩＣアクセス認証情報を用いて前記ＩＣモジュールのアプリケーションを認証し，認証に成功した場合は，前記対応アプリケーションからの指示に応じて前記ＩＣモジュールに対して情報の読み込みまたは書き込みを実行する，請求項２に記載のリーダライタ。
【請求項５】
前記制御部は，共通鍵暗号方式により前記対応アプリケーションと相互認証を行い，前記グループ認証情報は共通鍵である，請求項２に記載のリーダライタ。
【請求項６】
前記制御部は，共通鍵暗号方式により前記ＩＣモジュールのアプリケーションと相互認証を行い，前記ＩＣ認証情報は共通鍵である，請求項４に記載のリーダライタ。
【請求項７】
複数のアプリケーションが搭載されているＩＣモジュールに対し，前記アプリケーションに対応する対応アプリケーションが搭載されているコントローラからの指示に応じて情報の読み書きを行うリーダライタをして：
前記リーダライタは，前記ＩＣモジュールに搭載されているアプリケーションの各々と対応し，対応する前記アプリケーションそれぞれとの認証に用いる前記アプリケーションごとの１以上のＩＣアクセス認証情報を，対応する前記アプリケーション別のグループに区分してそれぞれ記憶し，かつ，前記グループそれぞれに対応するグループ認証情報を前記グループごとにそれぞれ記憶しているメモリを備えており，
前記コントローラの対応アプリケーションから前記ＩＣモジュールへの情報の書き込みまたは前記ＩＣモジュールからの情報の読み込みの要求を受け付けるステップと；
前記グループ認証情報を用いて前記対応アプリケーションを認証するステップと；
認証に成功した場合は，該成功した認証に用いた前記グループ認証情報に対応する前記グループに属する前記ＩＣアクセス認証情報を，前記認証に成功した前記対応アプリケーションが使用することを許可するステップと：
を実行せしめる，コンピュータプログラム。
【請求項８】
複数のアプリケーションが搭載されているＩＣモジュールに対し，前記アプリケーションに対応する対応アプリケーションが搭載されているコントローラからの指示に応じて情報の読み書きを行うリーダライタによる認証方法において：
前記リーダライタは，前記ＩＣモジュールに搭載されているアプリケーションの各々と対応し，対応する前記アプリケーションそれぞれとの認証に用いる前記アプリケーションごとの１以上のＩＣアクセス認証情報を，対応する前記アプリケーション別のグループに区分してそれぞれ記憶し，かつ，前記グループそれぞれに対応するグループ認証情報を前記グループごとにそれぞれ記憶しているメモリを備えており，
前記コントローラの対応アプリケーションから前記ＩＣモジュールへの情報の書き込みまたは前記ＩＣモジュールからの情報の読み込みの要求を受け付けるステップと；
前記グループ認証情報を用いて前記対応アプリケーションを認証するステップと；
認証に成功した場合は，該成功した認証に用いた前記グループ認証情報に対応する前記グループに属する前記ＩＣアクセス認証情報を，前記認証に成功した前記対応アプリケーションが使用することを許可するステップと；
を含む，認証方法。
【請求項９】
前記許可するステップは，前記成功した認証に用いた前記グループ認証情報のグループに属する前記ＩＣアクセス認証情報を用いて前記ＩＣモジュールのアプリケーションを認証し，認証に成功した場合は，前記対応アプリケーションからの指示に応じて前記ＩＣモジュールに対して情報の読み込みまたは書き込みを実行するステップ
を含む，請求項８に記載の認証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，通信システム，リーダライタ，認証方法，およびコンピュータプログラムに関する。詳細には，１以上のアプリケーションが搭載されているＩＣモジュールに対し，上記アプリケーションに対応する対応アプリケーションが搭載されているコントローラからの指示に応じて情報の読み書きを行うリーダライタと，そのリーダライタを備える通信システム，そのリーダライタにより実行される認証方法，およびコンピュータプログラムに関する。
【背景技術】
【０００２】
近年，ＩＣカード，携帯電話に組み込まれたＩＣチップなどのＩＣモジュールに，例えば電子決済を行うアプリケーション，店舗のサービスポイントの蓄積を行うアプリケーション等，複数のアプリケーションを搭載することが可能になった（例えば，特許文献１参照。）。ＩＣモジュールに対する情報の読み書きは，ＩＣモジュールに搭載されるアプリケーションに対応する対応アプリケーションに制御されるリーダライタによって行われるが，一般に，読み書きの際には，リーダライタとＩＣモジュールとの間で相互認証が行われる。複数のアプリケーションが搭載されたＩＣモジュールに対して情報の読み書きをするには，ＩＣモジュール内の各アプリケーションとリーダライタとの間で相互認証を行う必要があるが，セキュリティの確保のため，従来は，対応アプリケーションごとに異なるリーダライタが設けられていた。
【０００３】
しかし，複数のリーダライタが必要であることは，リーダライタを設置する店舗等においては，設置スペース，ユーザビリティ，保守等に関する様々な問題を生じさせていた。詳細には，例えば，複数のリーダライタを設置するスペースが無い，複数設置されているリーダライタからユーザが所望の処理に適切なリーダライタを選択しなければならない，アプリケーションの数だけ保守作業，費用が発生する，などといった問題があった。
【０００４】
そこで，１つのリーダライタに，ＩＣモジュール内の各アプリケーションと相互認証するために必要な鍵情報を全て格納し，１つのリーダライタでＩＣモジュール内の複数のアプリケーションと各々相互認証し，情報の読み書きをさせることが行われるようになった。
【０００５】
【特許文献１】特開２００２−７９７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし，上記のように，１つのリーダライタに全ての鍵情報を格納する場合，セキュリティ上の問題があった。詳細には，リーダライタを制御する対応アプリケーションが，自己に対応するＩＣモジュール内のアプリケーション以外のアプリケーションとリーダライタとが相互認証を行うための鍵情報をも知得し，使用することができてしまうという問題が生じる。
【０００７】
そこで，本発明は，このような問題に鑑みてなされたもので，その目的とするところは，複数のアプリケーションが搭載されたＩＣモジュールへの情報の読み書きを，１つのリーダライタによりセキュリティを確保しながら行うことが可能な，通信システム，リーダライタ，認証方法，およびコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために，本発明のある観点によれば，１以上のアプリケーションが搭載されているＩＣモジュールと，アプリケーションに対応する対応アプリケーションが搭載されているコントローラと，コントローラからの指示に応じてＩＣモジュールに対して情報の読み書きを行うリーダライタと，を備える通信システムが提供される。本通信システムにおいて，リーダライタは，ＩＣモジュールに搭載されているアプリケーションの各々と対応し，対応するアプリケーションとの相互認証に用いる１以上のＩＣアクセス認証情報を記憶し，かつ，ＩＣアクセス認証情報を対応するアプリケーション別のグループに区分してグループごとにグループ認証情報を記憶しているメモリを備え，コントローラの対応アプリケーションからＩＣモジュールへの情報の書き込みまたはＩＣモジュールからの情報の読み込みを要求されると，グループ認証情報を用いて該対応アプリケーションと相互認証し，相互認証に成功した場合は，該成功した相互認証に用いたグループ認証情報に対応するグループに属するＩＣアクセス認証情報を用いてＩＣモジュールのアプリケーションと相互認証し，相互認証に成功した場合は，対応アプリケーションからの指示に応じてＩＣモジュールに対して情報の読み込みまたは書き込みを実行する。
【０００９】
上記発明によれば，ＩＣモジュールに１以上のアプリケーションが搭載されており，そのアプリケーションと相互認証するために用いられるＩＣアクセス認証情報をリーダライタが保有している。リーダライタは，ＩＣアクセス認証情報を対応するアプリケーション別にグループ化し，グループごとにグループ認証情報を有している。そして，リーダライタは，コントローラ内の対応アプリケーションからＩＣモジュールへのアクセスを要求されると，グループ認証情報を用いて該対応アプリケーションと相互認証する。リーダライタは，相互認証に成功した場合のみ，グループ認証情報に対応付けられているＩＣアクセス認証情報を用いてＩＣモジュールのアプリケーションと相互認証し，相互認証に成功すると，ＩＣモジュールへの情報の読み書きを行う。
【００１０】
かかる構成によると，コントローラがリーダライタを介してＩＣモジュールにアクセスするためには，リーダライタにおいてＩＣモジュール内のアプリケーションとの相互認証に成功しなければならないが，その相互認証に必要なＩＣアクセス認証情報は，グループ認証情報により保護されている。グループ認証情報は，ＩＣモジュール内の各アプリケーションごとにグループ化されたＩＣアクセス認証情報ごとに，異なっている。そのため，コントローラ内の対応アプリケーションは，１つのグループ認証情報による相互認証に成功しても，他のグループ認証情報により保護されているＩＣアクセス認証情報を使用することができない。その結果，１以上のアプリケーションが搭載されたＩＣモジュールへの情報の読み書きに際して，リーダライタが，グループ認証情報によりコントローラと相互認証を行うことにより，複数のアプリケーションが搭載されたＩＣモジュールへの情報の読み書きを，１つのリーダライタによりセキュリティを確保しながら行うことができる。
【００１１】
上記課題を解決するために，本発明の別の観点によれば，１以上のアプリケーションが搭載されているＩＣモジュールに対し，アプリケーションに対応する対応アプリケーションが搭載されているコントローラからの指示に応じて情報の読み書きを行うリーダライタが提供される。本リーダライタは，ＩＣモジュールに搭載されているアプリケーションの各々と対応し，対応するアプリケーションの認証に用いる１以上のＩＣアクセス認証情報を記憶し，かつ，ＩＣアクセス認証情報を対応するアプリケーション別のグループに区分してグループごとにグループ認証情報を記憶しているメモリと；グループ認証情報を用いてコントローラに搭載されている対応アプリケーションを認証し，認証に成功した場合は，該成功した認証に用いたグループ認証情報に対応するグループに属するＩＣアクセス認証情報を，認証に成功した対応アプリケーションが使用することを許可する制御部と；を備える。
【００１２】
上記発明によれば，ＩＣモジュールに１以上のアプリケーションが搭載されており，そのアプリケーションの認証に用いられるＩＣアクセス認証情報をリーダライタが保有している。リーダライタは，ＩＣアクセス認証情報を対応するアプリケーション別にグループ化し，グループごとにグループ認証情報を有している。そして，リーダライタは，コントローラ内の対応アプリケーションからＩＣモジュールへのアクセスを要求されると，グループ認証情報を用いて該対応アプリケーションを認証する。リーダライタは，認証に成功した場合のみ，グループ認証情報に対応付けられているＩＣアクセス認証情報を，対応アプリケーションが使用することを許可する。
【００１３】
かかる構成によると，コントローラがリーダライタを介してＩＣモジュールにアクセスするためには，リーダライタにおいてＩＣモジュール内のアプリケーションの認証に成功しなければならないが，その認証に必要なＩＣアクセス認証情報は，グループ認証情報により保護されている。グループ認証情報は，ＩＣモジュール内の各アプリケーションごとにグループ化されたＩＣアクセス認証情報ごとに，異なっている。そのため，コントローラ内の対応アプリケーションは，１つのグループ認証情報により認証された場合，そのグループ認証情報に対応付けられているＩＣアクセス認証情報の使用は許可されるが，他のグループ認証情報により保護されているＩＣアクセス認証情報までもを使用することはできない。その結果，１以上のアプリケーションが搭載されたＩＣモジュールへの情報の読み書きに際して，リーダライタが，グループ認証情報によりコントローラを認証することにより，複数のアプリケーションが搭載されたＩＣモジュールへの情報の読み書きを，１つのリーダライタによりセキュリティを確保しながら行うことができる。
【００１４】
上記ＩＣアクセス認証情報は，グループごとに異なるセグメントに記憶されるようにしてもよい。セグメントは，物理的なメモリを論理的に分割したメモリ空間である。
【００１５】
上記制御部は，コントローラの対応アプリケーションの認証に成功した場合は，該成功した認証に用いたグループ認証情報のグループに属するＩＣアクセス認証情報を用いてＩＣモジュールのアプリケーションを認証し，認証に成功した場合は，対応アプリケーションからの指示に応じてＩＣモジュールに対して情報の読み込みまたは書き込みを実行するようにしてもよい。
【００１６】
上記制御部は，共通鍵暗号方式により対応アプリケーションと相互認証を行うようにしてもよく，その場合，上記グループ認証情報は共通鍵であってもよい。かかる構成によれば，相互認証を行うことにより，よりセキュリティを高めることができる。
【００１７】
上記制御部は，共通鍵暗号方式によりＩＣモジュールのアプリケーションと相互認証を行うようにしてもよく，その場合，上記ＩＣ認証情報は共通鍵であってもよい。かかる構成によれば，相互認証を行うことにより，よりセキュリティを高めることができる。
【００１８】
上記課題を解決するために，本発明の別の観点によれば，コンピュータに上記のリーダライタとして機能させるコンピュータプログラムが提供される。コンピュータプログラムは，コンピュータが備える記憶装置に格納され，コンピュータが備えるＣＰＵに読み込まれて実行されることにより，そのコンピュータを上記のリーダライタとして機能させる。また，コンピュータプログラムが記録された，コンピュータで読み取り可能な記録媒体も提供される。記録媒体は，例えば，磁気ディスク，光ディスクなどである。
【００１９】
上記課題を解決するために，本発明の別の観点によれば，１以上のアプリケーションが搭載されているＩＣモジュールに対し，アプリケーションに対応する対応アプリケーションが搭載されているコントローラからの指示に応じて情報の読み書きを行うリーダライタによる認証方法が提供される。本認証方法において，リーダライタは，ＩＣモジュールに搭載されているアプリケーションの各々と対応し，対応するアプリケーションの認証に用いる１以上のＩＣアクセス認証情報を記憶し，かつ，ＩＣアクセス認証情報を対応するアプリケーション別のグループに区分してグループごとにグループ認証情報を記憶しているメモリを備えており，コントローラの対応アプリケーションからＩＣモジュールへの情報の書き込みまたはＩＣモジュールからの情報の読み込みの要求を受け付けるステップと；グループ認証情報を用いて対応アプリケーションを認証するステップと；認証に成功した場合は，該成功した認証に用いたグループ認証情報に対応するグループに属するＩＣアクセス認証情報を，認証に成功した対応アプリケーションが使用することを許可するステップとを含む。
【００２０】
上記許可するステップは，成功した認証に用いたグループ認証情報のグループに属するＩＣアクセス認証情報を用いてＩＣモジュールのアプリケーションを認証し，認証に成功した場合は，対応アプリケーションからの指示に応じてＩＣモジュールに対して情報の読み込みまたは書き込みを実行するステップを含むようにしてもよい。
【発明の効果】
【００２１】
以上説明したように本発明によれば，複数のアプリケーションが搭載されたＩＣモジュールへの情報の読み書きを，１つのリーダライタによりセキュリティを確保しながら行うことが可能な，通信システム，リーダライタ，認証方法，およびコンピュータプログラムを提供することができる。
【発明を実施するための最良の形態】
【００２２】
以下に添付図面を参照しながら，本発明の好適な実施の形態について詳細に説明する。なお，本明細書及び図面において，実質的に同一の機能構成を有する構成要素については，同一の符号を付することにより重複説明を省略する。
【００２３】
以下では，本発明にかかる通信システムを，複数のアプリケーションが搭載されたＩＣモジュール１０６と，ＩＣモジュール１０６内の各アプリケーションに各々対応する対応アプリケーションが搭載されたコントローラ１０２と，コントローラ１０２により制御され，ＩＣモジュール１０６に対する情報の読み書きを行うリーダライタ１０４とを備える通信システム１００に適用して説明する。
【００２４】
＜通信システムの全体構成＞
まず，図１に基づいて，通信システム１００の全体構成について説明する。通信システム１００は，コントローラ１０２，リーダライタ１０４，およびＩＣモジュール１０６を含んで構成される。
【００２５】
コントローラ１０２は，リーダライタを制御するコンピュータである。コントローラ１０２には，ＩＣモジュール１０６に搭載されるアプリケーションに対応する１以上の対応アプリケーションが搭載されている。対応アプリケーションは，対応するＩＣモジュール内のアプリケーションを通してＩＣモジュールへの情報の書き込み，ＩＣモジュールへの情報の読み込みを実行する。各アプリケーションは，ＩＣモジュールに対する情報の読み書きをリーダライタ１０４に要求し，リーダライタ１０４にＩＣモジュールへの情報の読み書きを実行させる。なお，リーダライタ１０４への要求送信や，後述する相互認証処理など，各アプリケーションが共通して実行する処理を専門に行う共通ライブラリをコントローラ１０２内に設け，各アプリケーションがかかる共通ライブラリを使用できるようにしてもよい。
【００２６】
リーダライタ１０４は，コントローラ１０２からの要求を受けて，ＩＣモジュール１０６への情報の書き込み，ＩＣモジュール１０６からの情報の読み込みを実行する。詳細には，リーダライタ１０４は，コントローラ１０２に搭載される対応アプリケーションから，ＩＣモジュール１０６に対する情報の読み書きの要求を受けて，要求を受けた対応アプリケーションに対応するＩＣモジュール１０６内のアプリケーションを通じて，ＩＣモジュール内の情報の読み込み／書き込みを行う。
【００２７】
ＩＣモジュール１０６は，例えばＩＣカード，携帯電話等のモバイル機器に内蔵されたＩＣチップなどであり，リーダライタ１０４により情報を読み書きされる。本実施形態において，ＩＣモジュール１０６は，リーダライタ１０４との間で無線通信を行うことにより，情報を読み書きされる。無線通信は，例えば近距離無線規格（ＮＦＣ：Ｎｅａｒ  Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）を利用した非接触な通信とすることができる。ＮＦＣは，その利用範囲が１０ｃｍ程度と狭いので，ハンドアクションにより通信相手を限定する等セキュリティに優れている。ＩＣモジュール１０６には，１以上のアプリケーションが搭載されており，各アプリケーションは，コントローラ１０２に搭載される対応アプリケーションからの読み込み／書き込み要求をリーダライタ１０４を介して受けて，情報の読み出し，更新等を実行する。
【００２８】
コントローラ１０２とリーダライタ１０４間，およびリーダライタ１０４とＩＣモジュール１０６間では，相互認証が行われる。コントローラ１０２とリーダライタ１０４間での相互認証では，リーダライタ１０４は，ＩＣモジュール１０６に対する情報の読み書きに際して，情報の読み書きを要求した対応アプリケーションとの間で相互認証を行う。また，リーダライタ１０４とＩＣモジュール１０６間での相互認証では，リーダライタ１０４は，ＩＣチップ内で実際に情報の読み書きを実行するＩＣチップ内のアプリケーションとの間で相互認証を行う。
【００２９】
リーダライタ１０４は，ＩＣモジュール１０６内の各アプリケーションと相互認証を行うためのＩＣアクセス認証情報を複数有している。本実施形態では，リーダライタ１０４は共通鍵暗号方式によりＩＣモジュール１０６内の各アプリケーションと各々相互認証を行うこととし，ＩＣアクセス認証情報を共通鍵である鍵情報とする。
【００３０】
また，リーダライタ１０４は，コントローラ１０２内の対応アプリケーションと相互認証し，相互認証に成功した場合にのみ，その対応アプリケーションからの要求に応じてＩＣチップへの情報の読み書きを行うことで，なりすまし等のＩＣチップへの不正なアクセスを防止し，セキュリティを保っている。しかし，相互認証に成功した対応アプリケーションといえども，ＩＣモジュール１０６内においてその対応アプリケーションに対応しているアプリケーション以外のアプリケーションにアクセスすることまで許可しては，セキュリティを十分に保つことはできない。そこで，リーダライタ１０４は，ＩＣモジュール１０６内の各アプリケーションと相互認証を行うための鍵情報を，対応するアプリケーション毎にグループ化し，グループ毎に管理することにより，上記問題を回避している。詳細は，後述する。
【００３１】
以上，通信システム１００の全体構成について説明した。次に，図１に基づいて，コントローラ１０２，リーダライタ１０４，およびＩＣモジュール１０６の機能構成について説明する。
【００３２】
＜コントローラの機能構成＞
まず，コントローラ１０２の機能構成について説明する。コントローラ１０２は，対応アプリケーションＡ１１０，対応アプリケーションＢ１１２，…，対応アプリケーションＺ１１４等の，複数の対応アプリケーションを備える。各対応アプリケーションは，ＩＣモジュール１０６に格納されるアプリケーションＡ，アプリケーションＢ，…，アプリケーションＺと対応しており，対応するアプリケーションを介してＩＣモジュール１０６に対して情報の読み書きを行う。
【００３３】
具体的には，例えば，ＩＣモジュール１０６内のアプリケーションＡが電子決済を行うためのアプリケーションであるとすると，対応アプリケーションＡは，アプリケーションＡを介してＩＣモジュール１０６内に格納される電子マネーの残高を読み出し，読み取った残高から代金を差し引き，差し引き後の金額を，アプリケーションＡを介してＩＣモジュール１０６内に書き戻す。また，ＩＣモジュール１０６内のアプリケーションＢが店舗のサービスポイントを蓄積するためのアプリケーションであるとすると，対応アプリケーションＢは，アプリケーションＢを介してＩＣモジュール１０６内に格納される現在のサービスポイント数を読み出し，読み出したサービスポイント数に今回のサービスポイント数を加算し，加算後のサービスポイント数を，アプリケーションＢを介してＩＣモジュール１０６内に書き戻す。
【００３４】
各対応アプリケーションは，互いに相違する認証鍵を有する。図１の例によれば，対応アプリケーションＡは認証鍵Ａ１１００を，対応アプリケーションＢは認証鍵Ｂ１１２０を，対応アプリケーションＣは認証鍵Ｃ１１４０をそれぞれ有しており，認証鍵Ａ１１００，認証鍵Ｂ１１２０，認証鍵Ｚ１１４０は互いに相違する。認証鍵は，各アプリケーションがリーダライタ１０４と相互認証を行うために保有している認証情報である。本実施形態では，コントローラ１０２内の各対応アプリケーションとリーダライタ１０４との間の相互認証は，共通鍵暗号方式により行われる。そのため，認証鍵は，リーダライタ１０４と共通して保有する共通鍵である。後述するように，リーダライタ１０４は，認証鍵Ａ，認証鍵Ｂ，…，認証鍵Ｚに各々対応する認証鍵を有しており，各アプリケーションは，自己が保有する認証鍵によってリーダライタ１０４と相互認証を行う。
【００３５】
＜リーダライタの機能構成＞
次に，リーダライタ１０４の機能構成について説明する。図１に示すように，リーダライタ１０４は，上位装置インタフェース１２０，暗号処理部１２２，電源部１２８，制御部１３０，ＲＦ回路１３２，アンテナ１３４，およびメモリ１３６などを主に備える。
【００３６】
上位装置インタフェース１２０は，コントローラ１０２との間で情報の送受信を行う。例えば，上位装置インタフェース１２０は，コントローラ１０２から，ＩＣモジュールへの情報の読み込み／書き込みの要求を受信する。また，上位装置インタフェース１２０は，コントローラ１０２との相互認証のためのデータを送受信する。
【００３７】
暗号処理部１２２は，暗号文の生成と暗号文の復号化を行う。暗号処理部１２２は，乱数発生部１２４および暗号エンジン１２６を含む。暗号処理部１２２は，乱数発生部１２４により生成された乱数を，メモリ１３６に格納されている認証鍵または鍵情報を用いて，暗号エンジン１２６により暗号化させることで，暗号文の生成を行う。また，暗号処理部１２２は，暗号文を，認証鍵または鍵情報を用いて暗号エンジン１２６により復号化させることで，暗号文の復号化を行う。
【００３８】
電源部１２８は，リーダライタ１０４に電源を供給する。
【００３９】
メモリ１３６は，不揮発性の記憶装置であり，コントローラ１０２との相互認証に必要な認証鍵と，ＩＣモジュール１０６との相互認証に必要な鍵情報とを記憶している。メモリ１３６は，論理的に分割されたメモリ空間であるセグメントを複数含んでいる。各セグメントは，制御部１３０により管理されており，制御部１３０の処理によって，メモリ１３６内のセグメント数，セグメント内に格納可能な鍵情報の数などが変更されることができる。メモリ１３６には鍵情報が記憶されるが，鍵情報は，その鍵情報を用いて相互認証される相手方であるＩＣモジュール１０６内のアプリケーション別のグループに区分されている。そして，グループごとに異なるセグメントに記憶される。さらに，メモリ１３６には，グループごとにグループ認証情報の一例である認証鍵が格納されている。以下に，図１の例を用いて具体的に説明する。
【００４０】
メモリ１３６は，セグメントＡ１３８，セグメントＢ１４０，…，セグメントＺ１４２等の複数のセグメントを含んでいる。各セグメントには，鍵情報と認証鍵とが含まれている。セグメントＡ１３８には，鍵情報１ａ，鍵情報１ｂ，…，鍵情報１Ｚからなる鍵情報のグループＡ１３８２が格納されている。このグループＡは，ＩＣモジュール１０６のメモリ１６４に格納されているアプリケーションＡと対応している。つまり，セグメントＡ１３８に含まれている各鍵情報１ａ，１ｂ，…，１ｚは，ＩＣモジュール１０６内のアプリケーションＡとの相互認証に各々用いられる共通鍵である。
【００４１】
セグメントＡ１３８には，認証鍵Ａ１３８０も含まれている。認証鍵Ａ１３８０は，セグメントＡ内の各鍵情報をコントローラ１０２に使用させるか否かを制御部１３０が判断するために用いられる。認証鍵Ａ１３８０は，コントローラ１０２に搭載される対応アプリケーションＡ１１０が保有する認証鍵Ａ１１００と対応する共通鍵である。認証鍵Ａ１３８０は，制御部１３０によって対応アプリケーションＡ１１０との相互認証に用いられ，相互認証に成功すると，制御部１３０はセグメントＡ内に格納される各鍵情報を対応アプリケーションＡ１１０に使用させることを許可する。
【００４２】
セグメントＡ１３８内の鍵情報の使用が許可されると，対応アプリケーションＡ１１０は，グループＡ１３８２の各鍵情報を用いて，リーダライタ１０４とＩＣモジュール１０６内のアプリケーションＡとの間で相互認証を行わせることにより，リーダライタ１０４を介してアプリケーションＡにアクセスすることができる。
【００４３】
一方，対応アプリケーションＡ１１０は，認証鍵Ｂや認証鍵Ｚを有していないため，セグメントＢ１４０内やセグメントＺ１４２内の各鍵情報の使用は許可されない。従って，対応アプリケーションＡ１１０は，リーダライタ１０４を介してＩＣモジュール１０６内のアプリケーションＢにアクセスすることはできない。同様に，コントローラ１０２内の対応アプリケーションＢ１１２は，認証鍵Ｂ１１２０を有しているため，セグメントＢ１４０内に格納される認証鍵Ｂ１４００を用いた相互認証によりセグメントＢ１４０内に格納される鍵情報のグループ１４０２の使用が許可される。そのため，対応アプリケーションＢ１１２は，リーダライタ１０４を介してＩＣモジュール１０６内のアプリケーションＢ１６８にアクセスすることができるが，認証鍵Ａや認証鍵Ｚを有していないため，ＩＣモジュール１０６内のアプリケーションＡにアクセスすることはできない。
【００４４】
上述のように，メモリ１３６内に，ＩＣモジュール１０６の各アプリケーションと相互認証するための鍵情報を対応するアプリケーションごとにグループ分けしてセグメントに格納し，グループ（セグメント）ごとに異なる認証鍵を格納しておくことにより，対応する認証鍵を有する対応アプリケーションのみがＩＣモジュール１０６内のアプリケーションにアクセス可能であるようにアクセス制限をすることができる。
【００４５】
制御部１３０は，リーダライタ１０４の全体制御を行う。特に，制御部１３０は，上述のように，メモリ１３６に格納されている認証鍵を用いて，コントローラ１０２との相互認証を行い，また，メモリ１３６に格納されている鍵情報を用いて，ＩＣモジュール１０６との相互認証を行う。詳細には，制御部１３０は，上位装置インタフェース１２０を介してコントローラ１０２からＩＣモジュール１０６への情報の読み込み／書き込みの要求を受けると，その要求元であるコントローラ１０２内の対応アプリケーションと相互認証を行う。そして，制御部１３０は，相互認証に成功すると，その相互認証に用いた認証鍵に対応するセグメントに格納されている鍵情報を，認証に成功した対応アプリケーションが使用することを許可する。制御部１３０は，鍵情報の使用を許可した対応アプリケーションからの要求を受けて，鍵情報を用いてＩＣモジュール１０６内のアプリケーションと相互認証し，該アプリケーションを通してＩＣモジュール１０６への情報の読み書きを行う。
【００４６】
制御部１３０によるコントローラ１０２との相互認証，およびＩＣモジュール１０６との相互認証は，上述のように共通鍵暗号方式を用いて行われる。つまり，制御部１３０は，コントローラ１０２と相互認証する場合には，乱数発生部１２４に乱数を生成させ，その乱数をメモリ１３６に格納されているいずれかの認証鍵によって暗号エンジン１２６に暗号化させ，暗号化された乱数を上位装置インタフェース１２０を介してコントローラ１０２に送信する。コントローラ１０２では，受信した乱数を対応する認証鍵により復号化し，復号化した乱数を同認証鍵により再び暗号化して，リーダライタ１０４に返す。リーダライタ１０４の制御部１３０は，返却された乱数を，暗号化に用いた認証鍵により暗号エンジン１２６に復号化させる。制御部１３０は，乱数発生部１２４により生成された乱数と，復号化された乱数とが一致すれば認証を成功とする。
【００４７】
リーダライタ１０４がコントローラ１０２側から認証される場合には，制御部は，コントローラ１０２により生成され，いずれかの対応アプリケーションが保有する認証鍵により暗号化された乱数を上位装置インタフェース１２０を介して取得する。制御部１３０は，取得した乱数を，該対応アプリケーションに対応するセグメントの認証鍵により，暗号化エンジン１２６に復号化させる。制御部１３０は，復号化された乱数を，復号化に用いた認証鍵と同じ認証鍵を用いて暗号化エンジン１２６に暗号化させ，上位装置インタフェース１２０を介してコントローラ１０２に返す。コントローラ１０２により該乱数の復号化，照合が行われることにより，リーダライタ１０４に認証が行われる。
【００４８】
また，制御部１３０は，ＩＣモジュール１０６と相互認証する場合には，乱数発生部１２４に乱数を生成させ，その乱数をメモリ１３６に格納されているいずれかの鍵情報によって暗号エンジン１２６に暗号化させ，暗号化された乱数をＲＦ回路１３２，アンテナ１３４を介してＩＣモジュール１０６に送信する。ＩＣモジュール１０６では，受信した乱数を対応する鍵情報により復号化し，復号化した乱数を同鍵情報により再び暗号化して，リーダライタ１０４に返す。リーダライタ１０４の制御部１３０は，返却された乱数を，暗号化に用いた鍵情報により暗号エンジン１２６に復号化させる。制御部１３０は，乱数発生部１２４により生成された乱数と，復号化された乱数とが一致すれば認証を成功とする。ＩＣモジュール１０６側からリーダライタ１０４が認証される場合の制御部１３０の処理は，コントローラ１０２側からリーダライタ１０４が認証される場合とほぼ同様であり，ＩＣモジュール１０６から取得した乱数の復号化および再暗号化に用いる鍵が認証鍵ではなく鍵情報である点のみが異なる。
【００４９】
上述の構成により，リーダライタ１０４は，コントローラ１０２の対応アプリケーションからＩＣモジュール１０６への情報の読み書きの要求を受けた際に，ＩＣモジュール１０６内のアプリケーションごとに対応付けられている認証鍵を用いてその対応アプリケーションと相互認証する。相互認証に成功した場合は，リーダライタ１０４は，相互認証に用いた認証鍵に対応付けられているＩＣモジュール１０６内アプリケーションへのアクセスを，認証に成功したコントローラ１０２内対応アプリケーションに許可し，該対応アプリケーションからの要求に応じてＩＣモジュール１０６への情報の読み書きを行う。かかる構成により，リーダライタ１０４は，コントローラ１０２内の対応アプリケーションが，ＩＣモジュール１０６内における該対応アプリケーションと対応するアプリケーション以外のアプリケーションにまでアクセスすることを防止し，セキュリティを確保することができる。
【００５０】
＜ＩＣモジュールの機能構成＞
次に，ＩＣモジュール１０６の機能構成について説明する。図１に示したように，ＩＣモジュール１０６は，アンテナ１５０，ＲＦ回路１５２，暗号処理部１５４，ボルテージレギュレータ１６０，制御部１６２，およびメモリ１６４などを主に備える。
【００５１】
暗号処理部１５４は，乱数発生部１５６と暗号エンジン１５８を備える。乱数発生部１５６および暗号エンジン１５８は，リーダライタ１０４が備える乱数発生部１２４および暗号エンジン１２６と同様の機能を有するため，説明を省略する。
【００５２】
ボルテージレギュレータ１６０は，制御部１６２に供給される電圧を調整する。
【００５３】
メモリ１６４は，不揮発性の記憶装置であり，リーダライタ１０４との相互認証に必要な鍵情報と，各鍵情報に対応づけられているユーザデータとを記憶している。以下に，図１の例を用いて具体的に説明する。
【００５４】
メモリ１６４には，１以上のアプリケーションが格納されており，各アプリケーション
で使用されるユーザデータと，そのユーザデータに対応する鍵情報とがアプリケーションごとに格納されている。図１の例によれば，アプリケーションＡ１６６およびアプリケーションＢ１６８の２つのアプリケーションがメモリ１６４に格納されている。各アプリケーションは，制御部１６２に読み込まれて実行される。アプリケーションＡを，例えば電子決済処理を行うアプリケーションであるとすると，アプリケーションＡでは，例えば，残高，使用可能上限金額などのユーザデータ１６６２を保有しており，リーダライタ１０４を介したコントローラ１０２の対応アプリケーションＡからの要求に応じて該ユーザデータ１６６２の読み出しや更新を行う。各ユーザデータには，固有の鍵情報１ａ，１ｂ，…，１ｚが対応付けられており，これらの鍵情報は，該ユーザデータの読み出しや更新に際して制御部１６２により実行されるリーダライタ１０４との相互認証に用いられる。
【００５５】
制御部１６２は，ＩＣモジュール１０６の全体制御を行う。特に，制御部１６２は，リーダライタ１０４との相互認証を実行する。また，相互認証に成功したリーダライタ１０４からの指示に従って，メモリ１６４内のユーザデータの読み出し，および更新などを行う。
【００５６】
以上，本実施形態にかかる通信システム１００を構成するコントローラ１０２，リーダライタ１０４，およびＩＣモジュール１０６の機能構成について説明した。次に，図２〜４に基づいて，本実施形態にかかる通信システム１００における認証方法について説明する。
【００５７】
＜通信システム１００における認証処理の流れ＞
図２に基づいて，通信システム１００における認証処理の流れについて説明する。まず，ＩＣモジュール１０６またはコントローラ１０２において，処理主体となるアプリケーションまたは対応アプリケーションが選択される（図示なし）。具体的には，例えばＩＣモジュール１０６が，入力装置を備える携帯電話に内蔵されたＩＣチップである場合には，ユーザにより入力装置を介してアプリケーションが選択され，起動される。または，コントローラ１０２において，複数の対応アプリケーションから特定のアプリケーションがユーザにより選択され，起動される。
【００５８】
ＩＣモジュール１０６またはコントローラ１０２のいずれかにおいて特定のアプリケーション（対応アプリケーション）が選択された状態で，ＩＣモジュール１０６がリーダライタ１０４に翳されるなどして，ＩＣモジュール１０６とリーダライタ１０４とが通信可能な範囲内に近づけられると，コントローラ１０２は，ＩＣモジュール１０６へのアクセスをリーダライタ１０４に要求する（Ｓ１００）。
【００５９】
リーダライタ１０４は，選択されている対応アプリケーションに固有の認証鍵を用いて，対応アプリケーションを認証する（Ｓ１０２）。コントローラ１０２も，選択されている対応アプリケーションに固有の認証鍵を用いて，リーダライタ１０４を認証する（Ｓ１０４）。リーダライタ１０４およびコントローラ１０２の双方が認証に成功すると，コントローラ１０２はＩＣモジュール１０６内の特定のユーザデータとの相互認証の実行をリーダライタ１０４に指示する（Ｓ１０６）。
【００６０】
リーダライタ１０４は，Ｓ１０２で認証に用いた認証鍵と対応付けられているセグメント内の鍵情報を用いて，指示されたユーザデータを認証する（Ｓ１０８）。ＩＣモジュール１０６も，鍵情報を用いてリーダライタ１０４を認証する（Ｓ１１０）。リーダライタ１０４は認証結果をコントローラ１０２に通知する（Ｓ１１２）。
【００６１】
リーダライタ１０４とＩＣモジュール１０６の双方が認証に成功した場合は，コントローラ１０２は，認証に成功したユーザデータへのアクセス（読み込みまたは書き込み）をリーダライタ１０４に指示し（Ｓ１１４），リーダライタ１０４は指示に応じてＩＣモジュール１０６内のユーザデータの読み出しまたは書き込みを行う（Ｓ１１６）。
【００６２】
＜リーダライタの認証処理＞
次に，図３に基づいて，リーダライタ１０４が実行する認証処理の流れについて説明する。まず，リーダライタ１０４は，コントローラ１０２のいずれかの対応アプリケーションから，ＩＣモジュール１０６へのアクセス要求を受ける（Ｓ２００）。要求を受けると，リーダライタ１０４は，要求元である対応アプリケーションと相互認証を行う（Ｓ２０２）。リーダライタ１０４は，相互認証に成功したかを判断し（Ｓ２０４），失敗した場合には処理を終了する。一方，相互認証に成功した場合には，リーダライタ１０４は，対応アプリケーションに対応するＩＣモジュール１０６内のアプリケーションと相互認証を行う（Ｓ２０６）。より詳細には，リーダライタ１０４はアプリケーションで使用されるユーザデータを認証し，ＩＣモジュール１０６によって該ユーザデータへのアクセス権限があるか（対応する鍵情報を持っているか）を認証される。リーダライタ１０４は，相互認証に成功したかを判断し（Ｓ２０８），失敗した場合には処理を終了する。一方，相互認証に成功した場合には，リーダライタ１０４は，コントローラ１０２の対応アプリケーションからの要求に応じて，ＩＣモジュール１０６に対して情報の読み込みまたは書き込みを行う（Ｓ２１０）。
【００６３】
＜コントローラとリーダライタ間の認証処理＞
次に，図４に基づいて，コントローラ１０２とリーダライタ１０４間で実行される認証処理の詳細な流れについて説明する。図４は，リーダライタ１０４がコントローラ１０２の対応アプリケーションＡ１１０を認証する処理を示している。
【００６４】
まず，リーダライタ１０４は乱数を生成する（Ｓ３００）。続いて，リーダライタ１０４は，生成した乱数をメモリ１３６に格納されている認証鍵Ａ１３８０で暗号化し（Ｓ３０２），暗号化した乱数をコントローラ１０2に送信する（Ｓ３０４）。
【００６５】
コントローラ１０２は，取得した乱数を，対応アプリケーションＡ１１０が保有する認証鍵Ａ１１００で復号化する（Ｓ３０６）。続いて，コントローラ１０２は，復号化した乱数を，認証鍵Ａ１１００で暗号化し（Ｓ３０８），暗号化した乱数をリーダライタ１０４に送信する（Ｓ３１０）。
【００６６】
リーダライタ１０４は，取得した乱数を，メモリ１３６に格納されている認証鍵Ａ１３８０で復号化する（Ｓ３１２）。次に，リーダライタ１０４は，Ｓ３００で生成した乱数と，Ｓ３１２で復号化した乱数とを比較する（Ｓ３１４）。比較の結果，２つの乱数が同一であれば，リーダライタ１０４はコントローラ１０２の対応アプリケーションＡ１１０が真正なものであることを認識でき，認証を成功とする。
【００６７】
コントローラ１０２がリーダライタ１０４を認証する処理の流れは，図４におけるリーダライタ１０４が行う処理とコントローラ１０２が行う処理とを逆転させたものであるため，説明を省略する。以上，通信システム１００における認証方法について説明した。
【００６８】
上述のように，本実施形態にかかる通信システム１００，リーダライタ１０４，および認証方法によれば，リーダライタ１０４は，コントローラ１０２内の対応アプリケーションが，ＩＣモジュール１０６内における該対応アプリケーションと対応するアプリケーション以外のアプリケーションにまでアクセスすることを防止し，セキュリティを確保することができる。
【００６９】
また，リーダライタ１０４内において鍵情報を格納するメモリ空間（セグメント）が互いに独立しているので，複数のアプリケーションの鍵情報を安全に格納することができる。
【００７０】
また，複数のリーダライタを設ける必要がなく，アプリケーションごとに異なる通信システムを構築する場合に比べて，システム構築，メンテナンスにおけるコストを削減することができる。
【００７１】
また，通信システムに新たなアプリケーションを対応させる場合でも，そのアプリケーションに応じた鍵情報を格納する装置を新たに追加しなくてよいため，システムの拡張性が向上する。
【００７２】
以上，添付図面を参照しながら本発明の好適な実施形態について説明したが，本発明は係る例に限定されないことは言うまでもない。当業者であれば，特許請求の範囲に記載された範疇内において，各種の変更例または修正例に想到し得ることは明らかであり，それらについても当然に本発明の技術的範囲に属するものと了解される。
【００７３】
例えば，上記実施形態では，コントローラ１０２とリーダライタ１０４間，およびリーダライタ１０４とＩＣモジュール１０６間は，それぞれ相互認証が行われたが，本発明はかかる例には限定されない。例えば，コントローラ１０２とリーダライタ１０４間では，コントローラ１０２がリーダライタ１０４を一方的に認証するだけでもよいし，リーダライタ１０４とＩＣモジュール１０６間では，ＩＣモジュール１０６がリーダライタ１０４を一方的に認証するだけでもよい。
【図面の簡単な説明】
【００７４】
【図１】本発明の実施形態にかかるリーダライタの機能構成を示すブロック図である
【図２】同実施の形態における通信システムにおけるの認証方法を示すフローチャートである。
【図３】同実施の形態におけるリーダライタの認証方法を示すフローチャートである。
【図４】同実施の形態における認証方法を詳細に示すフローチャートである。
【符号の説明】
【００７５】
１００      通信システム
１０２      コントローラ
１０４      リーダライタ
１０６      ＩＣモジュール
１１０，１１２，１１４      対応アプリケーション
１３０      制御部
１３６      メモリ
１３８，１４０，１４２      セグメント
１３８０，１４００，１４２０      認証鍵
１３８２，１４０２，１４２２      鍵情報
１６６，１６８      アプリケーション
【図１】
0004435084.tif 000002
【図２】
0004435084.tif 000003
【図３】
0004435084.tif 000004
【図４】
0004435084.tif 000005