以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
図1は、一般的な通信システムにおけるデータ読み出し時の認証プロセスを示すシーケンス図である。図1を参照して、一般的な通信システムにおけるデータ読み出し時の認証プロセスについて説明する。
認証プロセスは、ISO/IEC(International Organization for Standardization/International Electrotechnical Commission)9798−2及びJIS(Japanese Industrial Standards) X5056−2において定義されている、対称暗号アルゴリズムを用いた方式により、行われることが一般的である。
ここでは、まずステップS11において、リーダライタ11Aは、第一の乱数Aを生成し、認証鍵としての共通鍵Bを用いて所定の手順でこれを暗号化し、暗号化データM1を得る。M1は、Auth1_Reqのパラメータとして、通信装置12Aあてに送信する。Auth1_Reqを受信した通信装置12Aは、ステップS21において、Auth1_ReqのパラメータのM1を、共通鍵Bを用いて所定の手順で復号し、乱数Aを得る。続いて、乱数Aを、共通鍵Aを用いて所定の手順で暗号化し、暗号化データM2を得る。
さらに、ステップS22において、第二の乱数Bを生成し、共通鍵Aを用いて所定の手順で暗号化し、暗号化データM3を得る。M2及びM3はAuth1_Resのパラメータとして通信装置12Aからリーダライタ11Aへ返送される。
Auth1_Resを受信したリーダライタ11Aは、ステップS12において、Auth1_ResのパラメータのM2を、共通鍵Aを用いて所定の手順で復号し、得られた値がステップS11で生成した乱数Aと同値であることを比較、確認する。確認ができれば、リーダライタ11Aは、自己と同じ共通鍵A及びBを通信装置12Aが保有していることが分かる。
続いて、リーダライタ11Aは、ステップS13において、Auth1_ResのパラメータのM3を、共通鍵Aを用いて所定の手順で復号し、乱数Bを得る。続いて、乱数Bを、共通鍵Bを用いて所定の手順で暗号化し、暗号化データM4を得る。M4は、Auth2_Reqのパラメータとして、通信装置12Aあてに送信する。
Auth2_Reqを受信した通信装置12Aは、ステップS23において、Auth2_ReqのパラメータのM4を、共通鍵Bを用いて所定の手順で復号し、得られた値がステップS22で生成した乱数Bと同値であることを比較、確認する。確認ができれば、通信装置12Aは、自己と同じ共通鍵A及びBをリーダライタ11Aが保有していることが分かる。
その後、通信装置12Aは、得られた乱数A,Bから所定の手順により、通信路を暗号化・復号するための暗号鍵(SK)と相互認証プロセスを識別するセッションID(SID)を生成する。そして、セッションID及び相互認証が成功した旨を表すコードを、暗号鍵SKを用いて所定の手順で暗号化し、暗号化データM5を得る。M5はAuth2_Resのパラメータとして、通信装置12Aからリーダライタ11Aへ返送される。
Auth2_Resを受信したリーダライタ11Aは、ステップS14において、これまでに得られた乱数A,Bから所定の手順により、通信路を暗号化・復号するための暗号鍵SKと相互認証プロセスを識別するセッションID(SID)を生成する。次に、Auth2_ResのパラメータのM5を、暗号鍵SKを用いて所定の手順で復号し、同一セッションIDと相互認証が成功した旨を表すコードが得られることを確認することで認証プロセスが完了する。
認証プロセスを終えると、暗号通信プロセスを実行できる。図1においては、認証プロセスの後に、通信装置12Aからのデータ読み出し要求Read_Reqを暗号化して伝送している。Read_Reqは、例えば、要求識別子及び読み出し対象アドレスを含む構成として定義されている(図6(a)参照)。ステップS15において、Read_Reqの要求識別子を除く、すべてのフィールドを相互認証プロセスで共有した暗号鍵SKによって所定の手順で暗号化し、通信装置12Aあてに送信する。
Read_Reqを受信した通信装置12Aは、ステップS24において、S15と同様に、Read_Reqの要求識別子を除く、すべてのフィールドを相互認証プロセスで共有した暗号鍵SKによって所定の手順で復号し、平文のRead_Reqを得る。通信装置12Aは、平文のRead_Reqにしたがって、指定されたアドレスからデータを読み出し、Read_Resのパラメータとする。Read_Resは、例えば、応答識別子、結果コード及び読み出し対象データを含む構成として定義されている(図6(b)参照)。Read_ResもRead_Reqと同様に、通信装置12Aによって、応答識別子を除く、すべてのフィールドを相互認証プロセスで共有した暗号鍵SKによって所定の手順で暗号化し、通信装置12Aからリーダライタ11Aへ返送される。
図2は、一般的な通信システムにおけるデータ書き込み時の認証プロセスを示すシーケンス図である。図2を参照して、一般的な通信システムにおけるデータ書き込み時の認証プロセスについて説明する。
図2においては、図1と同等の認証プロセスの後に、通信装置12Aへのデータ書き込み要求Write_Reqを暗号化して伝送している。Write_Reqは、例えば、要求識別子、書き込み対象アドレス及び書き込み対象データを含む構成として定義されている(図8(a)参照)。
ステップS35において、Write_Reqの要求識別子を除く、すべてのフィールドを相互認証プロセスで共有した暗号鍵SKによって所定の手順で暗号化し、通信装置12Aあてに送信する。
Write_Reqを受信した通信装置12Aは、ステップS44において、S35と同様に、Write_Reqの要求識別子を除く、すべてのフィールドを相互認証プロセスで共有した暗号鍵SKによって所定の手順で復号し、平文のWrite_Reqを得る。通信装置12Aは、平文のWrite_Reqにしたがって、指定されたアドレスへ指定されたデータを書き込み、その結果コードをWrite_Resのパラメータとする。Write_Resは、例えば、応答識別子及び結果コードを含む構成として定義されている(図8(b)参照)。Write_ResもWrite_Reqと同様に、通信装置12Aによって、応答識別子を除く、すべてのフィールドを相互認証プロセスで共有した暗号鍵SKによって所定の手順で暗号化し、通信装置12Aからリーダライタ11Aへ返送される。
図3は、本発明の実施形態に係る通信システムの構成を示す図である。図3を参照して、本発明の実施形態に係る通信システムについて説明する。
図3に示すように、通信システム10は、無線通信するリーダライタ11及び通信装置12から構成され、リーダライタ11と通信装置12との間では、電磁波を利用して非接触でのデータの送受信が行われる。ここで想定する一般的な無線通信システムは、以下の手順によって暗号化通信を行っている。
リーダライタ11は、電波(電磁波)を放射し、例えば、ポーリングなどの処理を行うことによって、通信装置12を検出する。通信装置12がリーダライタ11に近接し、リーダライタ11によって、通信装置12が検出されると、リーダライタ11及び通信装置12は、所定のデータを送受信することによって、認証プロセスを行う。そして、認証プロセス中に生成・共有される暗号鍵、セッションIDを用いて、リーダライタ11は、通信装置12に対する要求信号を暗号化して送信する。要求信号には、例えば、所定のデータの上書きを要求する旨の要求信号、所定のデータの送信を要求する旨の要求信号等がある。
通信装置12は、リーダライタ11から送信された要求信号を受信した場合、共有している暗号鍵を用いてそれを復号し、共有しているセッションIDとの整合性を確認した後に、要求される処理を行い、その成功可否を表すコードを返送する。
本実施形態では、セキュリティデバイスである通信装置12に対するセキュアなデータの読み出し/書き込みにおいて、各々の認証プロセスを分離独立することで、コマンドシーケンスを利用方法に最適化する。セキュリティデバイスから読み出し処理を行う場合は、読み出し要求を行う側が暗号鍵(セッション鍵)を生成し、読み出される側に対して伝送する。続いて、読み出される側は、この暗号鍵(セッション鍵)を用いて、読み出しデータを暗号化して伝送する。セキュリティデバイスから書き込み処理を行う場合は、書き込まれる側から暗号鍵(セッション鍵)を生成し、書き込み要求を行う側に伝送する。続いて、書き込む側は、暗号鍵(セッション鍵)を用いて、書き込みデータを暗号化して伝送する。これによって、セキュリティデバイスである通信装置12に対する認証の更新またはセッション鍵の更新を、より高速に行うことができる。
また、この方式において、暗号鍵(セッション鍵)を秘匿に伝送するために、セキュリティデバイス間(リーダライタ11と通信装置12との間)で共有する共通鍵を用いて、暗号鍵(セッション鍵)を暗号化する。
通信装置12のデータ領域に対して、読み出し処理と書き込み処理とで異なるセッション鍵または共通鍵を用いることで、アクセス権限を分離したシステムを実現できる。
図4は、本発明の実施形態に係るリーダライタの機能の構成を示すブロック図である。図4を参照して、本発明の実施形態に係るリーダライタについて説明する。
リーダライタ11は、制御部31、記録部(第2記録部)32、SPU(Signal Processing Unit)33、変調部34、発振回路35、通信部の一例としてのアンテナ36、復調部37、及びドライブ38を含むように構成される。
制御部31は、所定のデータを含む、データの上書きを要求する旨の要求信号を生成する。また、制御部31は、所定のデータの送信を要求する旨の要求信号を生成する。
制御部31は、データの上書きを要求する旨の要求信号に格納するデータを生成する。制御部31は、データを読み出す際には、所定の手順で暗号鍵を生成する。制御部31は、生成した暗号鍵を、記録部32に記録された読み出し用共通鍵によって暗号化し、暗号化した暗号鍵を含んだ暗号鍵更新要求信号(図6(c)参照)を、SPU33に供給する。暗号鍵更新要求信号は、アンテナ36を介して通信装置12に送信される。制御部31は、生成した暗号鍵によって不揮発性メモリ106(図5参照)におけるデータ読み出し元の領域を指定する読み出し対象アドレスを暗号化し、暗号化した読み出し対象アドレスを含んだ読み出し要求信号(図6(a)参照)を、SPU33に供給する。読み出し要求信号は、アンテナ36を介して通信装置12に送信される。
制御部31は、データを書き込む際には、暗号鍵の生成を要求する旨を示す暗号鍵生成要求信号(図8(c)参照)を、SPU33に供給する。暗号鍵生成要求信号は、アンテナ36を介して通信装置12に送信される。制御部31は、通信装置12が記録部32に記録された書き込み用共通鍵と同一の鍵によって暗号化した暗号鍵を含んだ暗号鍵生成応答信号(図8(d)参照)が、通信装置12からアンテナ36を介して受信され、SPU33から供給されると、制御部31は、暗号鍵生成応答信号に含まれた暗号化した暗号鍵を、記録部32に記録された書き込み用共通鍵によって復号し、復号して得た暗号鍵を記録部32に記録し、書き込み対象データと不揮発性メモリ106における書き込み対象データの書き込み先の領域を指定する書き込み対象アドレスとを、記録部32に記録した暗号鍵によって暗号化し、暗号化した書き込み対象データ及び暗号化した書き込み対象アドレスを含んだ書き込み要求信号(図8(a)参照)を、SPU33に供給する。書き込み要求信号は、アンテナ36を介して通信装置12に送信される。
制御部31は、例えば、CPU(Central Processing Unit)等により構成され、必要に応じて装着された、ドライブ38から供給されたプログラムを読み込んで、読み込んだプログラムを実行する。また、制御部31は、ドライブ38からプログラムやデータが供給された場合、供給されたプログラムやデータを必要に応じて、記録部32に供給し、記録部32に記録されたプログラムを読み込み、読み込んだプログラムを実行する。
記録部32は、書き換え可能で、電源が遮断されても記録内容を保持できる、いわゆる不揮発性の記憶媒体または記録媒体からなり、例えば、ハードディスクまたはフラッシュメモリなどにより構成される。記録部32は、各種のデータを記録している。また、記録部32は、記録しているデータを、必要に応じて制御部31に供給する。
記録部32には、通信装置12との間で共通に使用される鍵として読み出し用共通鍵及び書き込み用共通鍵のうち、少なくとも一方が記録されている。記録部32は、記録されている共通鍵を制御部31に供給する。また、記録部32には、制御部31から供給されたデータが記録される。
SPU33は、制御部31から供給された要求信号を、所定の方式により符号化し、符号化した要求信号を変調部34に供給する。また、SPU33は、復調部37から供給された応答信号を、応答信号の符号化方式に対応する方式により復号し、復号した応答信号を制御部31に供給する。
例えば、SPU33は、通信装置12あてに送信する要求信号が、制御部31から供給されてきた場合、その要求信号に、例えば、マンチェスターコードへのコーディングなどの符号化処理を施し、これにより得られた信号を変調部34に出力する。また、SPU33は、通信装置12からの応答信号が復調部37から供給されてきた場合、そのデータに対して、例えば、マンチェスターコードのデコードなどの復号処理を施し、これにより得られた信号を、制御部31に供給する。
変調部34は、発振回路35から供給された所定の周波数のクロック信号を基に、搬送波を生成する。変調部34は、搬送波に基づいて、SPU33から供給された要求信号を所定の方式により変調することにより要求信号を生成し、変調した要求信号をアンテナ36に供給する。例えば、変調部34は、SPU33から供給された要求信号に基づいて、搬送波の位相、振幅、周波数などを変化させることにより変調した要求信号を生成する。
より具体的には、例えば、変調部34は、発振回路35から供給される13.56MHzの周波数のクロック信号を搬送波として、SPU33より供給されるデータをASK(Amplitude Shift Keying)変調し、生成された変調波を、電磁波としてアンテナ36から出力させる。
発振回路35は、所定の周波数の、基準となるクロック信号を生成し、生成したクロック信号を変調部34に供給する。
アンテナ36は、変調部34から供給された要求信号を、無線通信により通信装置12あてに送信する。すなわち、例えば、アンテナ36は、変調部34から供給された要求信号を伝送するための電波を輻射(放射)する。また、アンテナ36は、通信装置12から送信されてきた応答信号を受信し、受信した応答信号を復調部37に供給する。
復調部37は、アンテナ36から供給された応答信号を、変調部109(図3)の変調方式に対応する復調方式により復調し、復調した応答信号をSPU33に供給する。例えば、復調部37は、アンテナ36を介して取得した変調波(ASK変調波)を復調し、復調した応答信号をSPU33に出力する。
ドライブ38は、磁気ディスク71、光ディスク72、光磁気ディスク73、或いは半導体メモリ74などが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、制御部31または通信装置12に転送される。また、通信装置12に転送(送信)されたプログラムは、通信装置12により、必要に応じて、記録されるか、または実行される。
図5は、本発明の実施形態に係る通信装置の機能の構成を示すブロック図である。図5を参照して、本発明の実施形態に係る通信装置について説明する。
通信装置12は、通信部の一例としてのアンテナ101、復調部102、SPU103、制御部104、記録部(第1記録部)106、RAM(Random Access Memory)107、発振回路108、変調部109、及び電力発生部110を含むように構成される。
アンテナ101は、リーダライタ11から送信されてきた要求信号を受信し、受信した要求信号を復調部102に供給する。また、アンテナ101は、変調部109から供給された応答信号を、無線通信により、リーダライタ11あてに送信する。すなわち、例えば、アンテナ101は、変調部109から供給された応答信号を伝送するための電波を放射する。また、アンテナ101においては、リーダライタ11から放射される所定の周波数の電波により、共振が生じ、起電力が発生する。
復調部102は、アンテナ101から供給された要求信号を、変調部34(図2)の変調方式に対応する復調方式により復調し、復調した要求信号をSPU103に供給する。例えば、復調部102は、アンテナ101を介して受信したASK変調波である要求信号を包絡線検波して復調し、復調した要求信号をSPU103に出力する。
SPU103は、復調部102から供給された要求信号を所定の方式により復号し、復号した要求信号を制御部104に供給する。SPU103は、制御部104から供給された応答信号を、所定の符号化方式により符号化し、符号化した応答信号を変調部109に供給する。例えば、SPU103は、復調部102において復調されたデータがマンチェスター方式で符号化されている場合、図示せぬPLL(Phase Locked Loop)回路から供給されるクロック信号に基づいて、そのデータの復号(マンチェスターコードのデコード)を行い、復号したデータを制御部104に供給する。例えば、SPU103は、制御部104から供給された応答信号を、マンチェスター方式で符号化し、符号化した応答信号を変調部109に供給する。
制御部104は、例えば、CPU(Central Processing Unit)等により構成され、RAM107に記憶されたプログラムを実行することによってその機能を実現する。リーダライタ11が不揮発性メモリ106に記録された読み出し用共通鍵と同一の鍵によって暗号化した暗号鍵を含んだ暗号鍵更新要求信号(図6(c)参照)が、リーダライタ11からアンテナ101を介して受信され、SPU103から供給される。暗号鍵更新要求信号が供給されると、制御部104は、暗号鍵更新要求信号に含まれた暗号化した暗号鍵を、不揮発性メモリ106に記録された読み出し用共通鍵によって復号し、復号して得た暗号鍵をRAM107に記録する。なお、ここでは、復号して得た暗号鍵をRAM107に記録することとするが、不揮発性メモリ106に記録することとしてもよい。
制御部104は、書き込み要求信号が供給された場合に、この書き込み要求信号に含まれる暗号鍵更新要求フラグを判定することとしてもよい。暗号鍵更新要求フラグに暗号鍵更新を要求する旨の値が設定されていると判定した場合には、この書き込み要求信号が暗号鍵更新要求信号であると認識する。これによって、既存の書き込み要求信号を暗号鍵更新要求信号として利用することができるので、開発効率が向上する等の利点がある。
制御部104には、リーダライタ11がこの暗号鍵と同一の暗号鍵によって暗号化した、不揮発性メモリ106におけるデータ読み出し元の領域を指定する読み出し対象アドレスを含んだ読み出し要求信号が、リーダライタ11からアンテナ101を介して受信され、SPU103から供給される。読み出し要求信号が供給されると、制御部104は、読み出し要求信号に含まれた暗号化した読み出し対象アドレスを、RAM107に記録した暗号鍵によって復号し、不揮発性メモリ106の領域のうち、復号して得た読み出し対象アドレスで指定される領域に記録されたデータを、SPU103に供給する。このデータは、アンテナ101を介してリーダライタ11に送信される。
制御部104には、暗号鍵の生成を要求する旨を示す暗号鍵生成要求信号(図8(c)参照)が、リーダライタ11からアンテナ101を介して受信され、SPU103から供給される。暗号鍵生成要求信号が供給されると、制御部104は、所定の手順で暗号鍵を生成し、生成した暗号鍵を、不揮発性メモリ106に記録された書き込み用共通鍵によって暗号化する。制御部104は、暗号化した暗号鍵を含んだ暗号鍵生成応答信号(図8(d)参照)を、SPU103に供給する。この信号は、アンテナ101を介してリーダライタ11に送信される。
制御部104は、読み出し要求信号が供給された場合に、この読み出し要求信号に含まれる暗号鍵生成要求フラグを判定することとしてもよい。暗号鍵生成要求フラグに暗号鍵更新を要求する旨の値が設定されていると判定した場合には、この読み出し要求信号が暗号鍵生成要求信号であると認識する。これによって、既存の読み出し要求信号を暗号鍵生成要求信号として利用することができるので、開発効率が向上する等の利点がある。
制御部104には、リーダライタ11が暗号化した書き込み対象データと暗号化した不揮発性メモリ106における書き込み対象データの書き込み先の領域を指定する書き込み対象アドレスとを含んだ書き込み要求信号(図8(a)参照)が、アンテナ101を介して受信され、SPU103から供給される。書き込み要求信号が供給されると、制御部104は、暗号化した書き込み対象データ及び暗号化した書き込み対象アドレスを、RAM107に記録した暗号鍵によって復号する。なお、ここでは、暗号鍵がRAM107に記録されていることとするが、不揮発性メモリ106に記録されていることとしてもよい。制御部104は、不揮発性メモリ106の領域のうち、復号して得た書き込み対象アドレスで指定される領域に、復号して得た書き込み対象データを記録する。
記録部105は、不揮発性メモリ106、RAM107等を含んで構成されている。不揮発性メモリ106は、例えば、フラッシュメモリ、EEPROM、MRAM、またはFeRAMなどの不揮発性メモリなどにより構成されている。不揮発性メモリ106には、リーダライタ11に送信される秘匿すべきデータ、プログラムの実行に必要なデータなどの各種データが記録されている。また、不揮発性メモリ106には、リーダライタ11との間で共通に使用される鍵として読み出し用共通鍵及び書き込み用共通鍵のうち、少なくとも一方が記録されている。
RAM107は、プログラムの実行に必要なデータなどを適宜記憶する。RAM107は、記憶しているデータを制御部104に供給する。
発振回路108は、アンテナ101が受信する要求信号の周波数と同じ周波数のクロック信号を生成し、生成したクロック信号を変調部109に供給する。例えば、発振回路108は、PLL回路を内蔵し、要求信号のクロック周波数と同一の周波数のクロック信号を発生する。
変調部109は、発振回路108から供給された所定の周波数のクロック信号を基に、搬送波を生成する。変調部109は、搬送波に基づいて、SPU103から供給された応答信号を、所定の方式によって変調することにより、応答信号を生成し、変調した応答信号をアンテナ101に供給する。例えば、変調部109は、SPU103から供給された、マンチェスター方式により符号化された応答信号を、さらにASK変調し、変調した応答信号を、アンテナ101を介して、リーダライタ11に送信する。
また、例えば、変調部109は、SPU103から供給される応答信号に対して、所定のスイッチング素子(図示せず)をオン、オフさせ、スイッチング素子がオン状態であるときだけ、所定の負荷をアンテナ101に並列に接続させることにより、アンテナ101の負荷を変動させる。ASK変調された応答信号は、アンテナ101の負荷の変動により、アンテナ101を介して、リーダライタ11に送信される(リーダライタ11のアンテナ36の端子電圧を変動させる)。
電力発生部110は、アンテナ101に生じた交流の起電力を基に、直流電力を発生させ、発生させた直流電力を通信装置12の各部に供給する。
本発明はこのようなシステムの認証プロセスを用途に合わせて簡略化し、暗号強度はそのままに処理を高速化することを目的としている。すなわち、用途とは、ある共通鍵を利用して生成した暗号鍵を用いた暗号あり読み出し要求と暗号あり書き込み要求の2通りに大別される。
暗号あり読み出し要求(Read_Req)を行う場合は、リーダライタ11が生成した乱数を暗号鍵として用いる。リーダライタ11はRead_Reqを伝送するより事前に、認証プロセスとして暗号鍵の更新要求をするためのWrite_SK_Reqを通信装置12に対して伝送する。
図6は、本発明の実施形態に係る通信システムがデータ読み出しをする際に使用するデータの構成を示すブロック図である。図6を参照して、本発明の実施形態に係る通信システムがデータ読み出しをする際に使用するデータの構成について説明する。
図6(a)に示すように、読み出し要求(Read_Req)は、要求を識別する要求識別子、セッションを識別するセッションID(SID)、不揮発性メモリ106(図5参照)におけるデータ読み出し元の領域を指定する読み出し対象アドレス(ADDR)を含んでいる。また、図6(a)に示すように、セッションID(SID)、読み出し対象データ(DATA)が暗号化対象となる。
図6(b)に示すように、読み出し応答(Read_Res)は、応答を識別する応答識別子、セッションを識別するセッションID(SID)、要求に対する処理結果を示す結果コード(SF)、不揮発性メモリ106(図5参照)から読み出した読み出し対象データ(DATA)を含んでいる。また、図6(b)に示すように、セッションID(SID)、結果コード(SF)、読み出し対象データ(DATA)が暗号化対象となる。
図6(c)に示すように、暗号鍵更新要求(Write_SK_Req)は、要求を識別する要求識別子、通信装置12(図2参照)を識別する装置識別子(IDm)、共通鍵を識別する共通鍵識別子(PKID)、暗号鍵(SK)を含んでいる。また、図6(c)に示すように、暗号鍵(SK)が暗号化対象となる。
図6(d)に示すように、暗号鍵更新応答(Write_SK_Res)は、応答を識別する応答識別子、通信装置12(図2参照)を識別する装置識別子(IDm)、要求に対する処理結果を示す結果コード(SF)を含んでいる。
図7は、本発明の実施形態に係る通信システムによるデータ読み出し時の処理の流れを示すシーケンス図である。図7を参照して、本発明の実施形態に係る通信システムによるデータ読み出し時の処理について説明する。
リーダライタ11は、ステップS111において暗号鍵(SK)を生成する。すなわち、リーダライタ11は、乱数を生成し、暗号鍵(SK)として保持する。次に、認証鍵としての共通鍵(PK)を用いて所定の手順でこれを暗号化し、暗号化データEnc(PK,SK)を得る。Enc(PK,SK)は、Write_SK_Reqのパラメータとして、通信装置12あてに送信する。
Write_SK_Reqを受信した通信装置12は、ステップS221において、Write_SK_ReqのパラメータのEnc(PK,SK)を、共通鍵識別子(PKID)に対応する共通鍵(PK)を用いて所定の手順で復号し、暗号鍵(SK)を得る。これにより、暗号鍵(SK)をリーダライタ11及び通信装置12間で共有することができる。一実施形態として、Write_SK_Resは、パラメータとして、成功可否判定コード(SF)を含んでおり、これを返送している。以降の暗号通信プロセスについては、図1に示した例と同等のため割愛する。
以上説明したデータ読み出し時の処理によって、セキュリティデバイス(通信装置12)からセキュアに読み出しだけを行うシステムにおいて、セッション鍵(暗号鍵)を共有する、高速な暗号通信を実現することが可能である。
具体的には、リーダライタ11と通信装置12との通信が2往復分行われることでデータ読み出しが可能であるので、高速に暗号通信を実現することが可能である。また、通信装置12が乱数を生成する処理(鍵を生成する処理)を行う必要がないので、高速に暗号通信を実現することが可能である。また、リーダライタ11と通信装置12との間を送受信されるデータは暗号化されているので、安全性を保つことができる。
図8は、本発明の実施形態に係る通信システムがデータ書き込みをする際に使用するデータの構成を示すブロック図である。図8を参照して、本発明の実施形態に係る通信システムがデータ書き込みをする際に使用するデータの構成について説明する。
図8(a)に示すように、書き込み要求(Write_Req)は、要求を識別する要求識別子、セッションを識別するセッションID(SID)、不揮発性メモリ106(図5参照)におけるデータ書き込み先の領域を指定する書き込み対象アドレス(ADDR)、書き込み対象データ(DATA)を含んでいる。また、図8(a)に示すように、セッションID(SID)、書き込み対象アドレス(ADDR)、不揮発性メモリ106(図5参照)に書き込む書き込み対象データ(DATA)が暗号化対象となる。
図8(b)に示すように、書き込み応答(Write_Res)は、応答を識別する応答識別子、セッションを識別するセッションID(SID)、要求に対する処理結果を示す結果コード(SF)を含んでいる。また、図8(b)に示すように、セッションID(SID)、結果コード(SF)が暗号化対象となる。
図8(c)に示すように、暗号鍵生成要求(Read_SK_Req)は、要求を識別する要求識別子、通信装置12(図2参照)を識別する装置識別子(IDm)、共通鍵を識別する共通鍵識別子(PKID)を含んでいる。
図8(d)に示すように、暗号鍵生成応答(Read_SK_Res)は、応答を識別する応答識別子、通信装置12(図2参照)を識別する装置識別子(IDm)、要求に対する処理結果を示す結果コード(SF)、暗号鍵(SK)を含んでいる。図8(d)に示すように、暗号鍵(SK)が暗号化対象となる。
図9は、本発明の実施形態に係る通信システムによるデータ書き込み時の処理の流れを示すシーケンス図である。図9を参照して、本発明の実施形態に係る通信システムによるデータ書き込み時の処理について説明する。
リーダライタ11は、まず通信装置12に対してRead_SK_Reqを伝送する。このときパラメータとして共通鍵(PK)の識別子(PKID)を同時に送信している。
Read_SK_Reqを受信した通信装置12は、ステップS231において、暗号鍵(SK)を生成する。すなわち、通信装置12は、乱数を生成し、暗号鍵(SK)として保持する。次に共通鍵識別子(PKID)に対応する共通鍵(PK)を用いて所定の手順で暗号鍵(SK)を暗号化し、暗号化データEnc(PK,SK)を得る。Enc(PK,SK)は、Read_SK_Resのパラメータとして、リーダライタ11あてに返送される。
Read_SK_Resを受信したリーダライタ11は、ステップS131において、Read_SK_ResのパラメータのEnc(PK,SK)を、共通鍵(PK)を用いて所定の手順で復号し、暗号鍵(SK)を得る。これにより、暗号鍵(SK)をリーダライタ11及び通信装置12間で共有することができる。以降の暗号通信プロセスについては、図2の例と同等のため割愛する。
以上説明したデータ書き込み時の処理によって、セキュリティデバイス(通信装置12)にセキュアに書き込みだけを行うシステムにおいて、セッション鍵(暗号鍵)を共有する、高速な暗号通信を実現することが可能である。具体的には、リーダライタ11と通信装置12との通信が2往復分行われることでデー書き込みが可能であるので、高速に暗号通信を実現することが可能である。また、リーダライタ11が乱数を生成する処理(鍵を生成する処理)を行う必要がないので、高速に暗号通信を実現することが可能である。また、リーダライタ11と通信装置12との間を送受信されるデータは暗号化されているので、安全性を保つことができる。
また、通信システム10は、以上説明したデータ読み込み時の処理とデータ書き込み時の処理とを両方行うこととしてもよい。その場合、セキュリティデバイス(通信装置12)のデータ領域に対して、読み出し処理と書き込み処理で異なる鍵値を用いた認証または暗号化通信を実現できる。また、この場合には、データ読み込み時に使用する鍵値と、データ書き込み時に使用する鍵値が異なるので、データ読み込み、データ書き込みの双方に対する攻撃への安全性は向上する。
本発明は、有線または無線の通信網を介して、データを送受信する情報処理システム、ICカードを利用した電子マネーシステム、セキュリティシステムなどに適用できる。
上記では、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。