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

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

Info

Publication number
JP2010074349A
JP2010074349A JP2008237654A JP2008237654A JP2010074349A JP 2010074349 A JP2010074349 A JP 2010074349A JP 2008237654 A JP2008237654 A JP 2008237654A JP 2008237654 A JP2008237654 A JP 2008237654A JP 2010074349 A JP2010074349 A JP 2010074349A
Authority
JP
Japan
Prior art keywords
challenge data
data
writer
card
reader
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
JP2008237654A
Other languages
English (en)
Inventor
Hideaki Yoshimi
英朗 吉見
Hiroaki Hamada
宏昭 濱田
Katsuya Shimoji
克弥 下地
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 JP2008237654A priority Critical patent/JP2010074349A/ja
Publication of JP2010074349A publication Critical patent/JP2010074349A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】盗聴を検出できるようにする。
【解決手段】リーダライタ211が、信号の方式を指定する指定情報を送信し、ICカード212が、リーダライタ211からの指定情報を受信する。ICカード212が、指定情報により指定された方式でリーダライタ211に信号を送信する。リーダライタ211が、ICカード212からの信号を受信し、リーダライタ211が、リーダライタ211から受信した信号の方式と、指定情報により指定した方式とから、リーダライタ211とICカード212との間に、リーダライタシミュレータ111とカードシミュレータ112が介在して信号を授受していることを検出する。
【選択図】図15

Description

本発明は情報処理装置および方法、プログラム、記録媒体、並びに情報処理システムに関し、特に、盗聴を検出できるようにした情報処理装置および方法、プログラム、記録媒体、並びに情報処理システムに関する。
最近、ICカードが普及し、多くのユーザにより店舗における支払いなどに利用されている。ICカードの利用時には、不正なICカードの利用を防止するため、認証処理が必要となる。このような認証方法については、各種の提案がなされている(例えば特許文献1)。
図1は従来のICカードシステムの構成を表している。このICカードシステム1は、リーダライタ11とICカード12により構成されている。
リーダライタ11は、CPU21、RAM22、ROM23、EEPROM24、UART25、表示部26、マンチェスタ符号化部27、ASK変調部28、ASK復調部29、マンチェスタ復号部30、およびDES暗号化部31を有している。
CPU21は、各部の動作を制御する。RAM22は、必要なデータを一時的に記憶する。ROM23は、データ、プログラムなどを記憶する。EEPROM24は、電源のオフ後も保持する必要があるデータなどを記憶する。UART25は、図示せぬ外部のコントローラとの間で授受される信号のシリアル/パラレル変換を行う。表示部26は、所定の情報を表示する。
マンチェスタ符号化部27は、送信するデータをマンチェスタ符号化する。ASK変調部28は、データをASK変調し、ICカード12に送信する。
ASK復調部29は、ICカード12からの信号を受信し、ASK復調する。マンチェスタ復号部30は、ASK復調された信号をマンチェスタ復号する。DES暗号化部31は、送信するデータを暗号化し、また受信した暗号化されているデータを復号する。
ICカード12は、CPU51、RAM52、ROM53、EEPROM54、マンチェスタ符号化部55、ASK変調部56、ASK復調部57、マンチェスタ復号部58、およびDES暗号化部59を有している。
CPU51は、各部の動作を制御する。RAM52は、必要なデータを一時的に記憶する。ROM53は、データ、プログラムなどを記憶する。EEPROM54は、電源のオフ後も保持する必要があるデータなどを記憶する。
マンチェスタ符号化部55は、送信するデータをマンチェスタ符号化する。ASK変調部56は、データをASK変調し、リーダライタ11に送信する。
ASK復調部57は、リーダライタ11からの信号を受信し、ASK復調する。マンチェスタ復号部58は、ASK復調された信号をマンチェスタ復号する。DES暗号化部59は、送信するデータを暗号化し、また受信した暗号化されているデータを復号する。
図2は、ICカードシステム1の処理を表している。リーダライタ11の相互認証アルゴリズムA1がICカード12に認証メッセージ1を送信する。この認証メッセージ1には、リーダライタ11が内蔵する鍵で暗号化した認証情報が含まれている。
ICカード12の相互認証アルゴリズムa1は、リーダライタ11が有する鍵と共通の鍵を有しているので、その鍵で、認証メッセージ1に含まれている暗号化されている認証情報を復号することができる。相互認証アルゴリズムa1は、復号された認証情報と、新たな認証情報とを鍵で暗号化し、認証レスポンス1としてリーダライタ11に送信する。
リーダライタ11の正当性検証アルゴリズムB1は、認証レスポンス1に含まれる認証情報を鍵で復号し、認証メッセージ1に含めた認証情報と比較することで、ICカード12を認証する。
同様に、ICカード12がリーダライタ11を次のように認証する。すなわち、ICカード12の相互認証アルゴリズムa2がリーダライタ11に認証メッセージ2を送信する。この認証メッセージ2には、ICカード12が鍵で暗号化した認証情報が含まれている。
リーダライタ11の相互認証アルゴリズムA2は、認証メッセージ2に含まれている暗号化されている認証情報を鍵で復号する。相互認証アルゴリズムA2は、復号された認証情報と、新たな認証情報とを鍵で暗号化し、認証レスポンス2としてICカード12に送信する。
ICカード12の正当性検証アルゴリズムb1は、認証レスポンス2に含まれる認証情報を鍵で復号し、認証メッセージ2に含めた認証情報と比較することで、リーダライタ11を認証する。
特許第3709946号公報
しかしながら、従来のシステムでは、盗聴を防止することが困難である。
すなわち、図3に示されるように、盗聴者114はリーダライタ11とICカード12の通信を盗聴する場合、リーダライタ11とICカード12の間に、カードシミュレータ112とリーダライタシミュレータ111を介在させ、信号を授受させる。そしてカードシミュレータ112とリーダライタシミュレータ111の間で授受される信号が、パーソナルコンピュータ113により解析される。
図4は、図3に示されるように、リーダライタ11とICカード12の間に、カードシミュレータ112とリーダライタシミュレータ111を介在させた場合の信号の授受を表している。カードシミュレータ112はICカード12と同様の機能を有しており、リーダライタシミュレータ111もリーダライタ11と同様の機能を有している。
リーダライタ11の相互認証アルゴリズムA1がICカード12に向けて認証メッセージ1を送信する。この認証メッセージ1には、リーダライタ11が内蔵する鍵で暗号化した認証情報が含まれている。
カードシミュレータ112は、リーダライタ11がICカード12に向けて送信した認証メッセージ1を傍受すると、これを一旦復調、および復号した後、再生成し、パーソナルコンピュータ113とリーダライタシミュレータ111に供給する。パーソナルコンピュータ113は認証メッセージ1に含まれるコマンドなどを分析する。リーダライタシミュレータ111はカードシミュレータ112からの認証メッセージ1を再び符号化、および変調した後、ICカード12に送信する。
リーダライタシミュレータ111により送信された認証メッセージ1は、リーダライタ11が送信した認証メッセージ1と同様の信号である。従って、ICカード12の相互認証アルゴリズムa1は、認証メッセージ1に含まれている暗号化されている認証情報を内蔵する鍵で復号する。相互認証アルゴリズムa1は、復号された認証情報と、新たな認証情報とを鍵で暗号化し、認証レスポンス1としてリーダライタ11に向けて送信する。
リーダライタシミュレータ111は、ICカード12がリーダライタ11に向けて送信した認証レスポンス1を傍受すると、それを一旦復調、および復号した後、パーソナルコンピュータ113とカードシミュレータ112に送信する。パーソナルコンピュータ113は認証レスポンス1を分析する。カードシミュレータ112はリーダライタシミュレータ111からの認証レスポンス1を再び符号化、および変調した後、リーダライタ11に送信する。
カードシミュレータ112により送信された認証レスポンス1は、ICカード12が送信した認証レスポンス1と同様の信号である。リーダライタ11の正当性検証アルゴリズムB1は、認証レスポンス1に含まれる認証情報を鍵で復号し、認証メッセージ1に含めた認証情報と比較することで、ICカード12を認証する。
さらに、ICカード12の相互認証アルゴリズムa2はリーダライタ11に向けて認証メッセージ2を送信する。この認証メッセージ2には、ICカード12が鍵で暗号化した認証情報が含まれている。
リーダライタシミュレータ111は認証メッセージ2を傍受すると、それを一旦復調、および復号した後、パーソナルコンピュータ113とカードシミュレータ112に送信する。パーソナルコンピュータ113は認証メッセージ2に含まれるコマンドなどを分析する。カードシミュレータ112はリーダライタシミュレータ111からの認証メッセージ2を再び符号化、および変調した後、リーダライタ11に送信する。
カードシミュレータ112により送信された認証メッセージ2は、ICカード12が送信した認証メッセージ2と同様の信号である。リーダライタ11の相互認証アルゴリズムA2は、認証メッセージ2に含まれている暗号化されている認証情報を鍵で復号する。相互認証アルゴリズムA2は、復号された認証情報と、新たな認証情報とを鍵で暗号化し、認証レスポンス2としてICカード12に向けて送信する。
カードシミュレータ112は、リーダライタ11が送信した認証レスポンス2を傍受すると、これを一旦復調、および復号した後、パーソナルコンピュータ113とリーダライタシミュレータ111に供給する。パーソナルコンピュータ113は認証レスポンス2を分析する。リーダライタシミュレータ111はカードシミュレータ112からの認証レスポンス2を再び符号化、および変調した後、ICカード12に送信する。
リーダライタシミュレータ111により送信された認証レスポンス2は、リーダライタ11が送信した認証レスポンス2と同様の信号である。従って、ICカード12の正当性検証アルゴリズムb1は、認証レスポンス2に含まれる認証情報を鍵で復号し、認証メッセージ2に含めた認証情報と比較することで、リーダライタ11を認証する。
このように、従来のICシステム1においては、盗聴者114が存在しても、ICカード12とリーダライタ11の間の通信には何ら障害が発生せず、エラーのない正常な通信が行えるので、盗聴者114による盗聴を検出することができない。その結果、機密の情報が盗まれてしまうおそれがあった。
本発明は、このような状況に鑑みてなされたものであり、盗聴を検出することができるようにするものである。
本発明の一側面は、信号の方式を指定する指定情報を送信する送信部と、他の情報処理装置から信号を受信する受信部と、受信した信号の方式と、指定情報により指定された方式とから、他の情報処理装置との間にさらに他の装置が介在することを検出する検出部とを備える情報処理装置である。
指定情報は、信号の符号化方式または変調方式を指定することができる。
指定情報は、信号の全部または一部の方式を指定することができる。
指定情報は、信号の値をさらに指定することができる。
検出部は、暗号化された状態で送られてきたチェックサムを復号し、復号されたチェックサムにより検出を行うことができる。
指定される変調方式は、ASK変調またはPSK変調とすることができる。
指定される符号化方式は、マンチェスタ符号またはRZ符号による符号化とすることができる。
他の情報処理装置が所定の回数以上認証されなかった場合、警告を表示することができる。
情報処理装置と他の情報処理装置は、リーダライタとICカードの一方と他方とすることができる。
本発明の一側面はまた、送信部が、信号の方式を指定する指定情報を送信し、受信部が、他の情報処理装置から信号を受信し、検出部が、受信した信号の方式と、指定情報により指定された方式とから、他の情報処理装置との間に他の装置が介在して信号を授受していることを検出する情報処理装置の情報処理方法である。
本発明の一側面は、コンピュータに、信号の方式を指定する指定情報を送信する手順と、 他の情報処理装置から信号を受信する手順と、受信した信号の方式と、指定情報により指定された方式とから、他の情報処理装置との間に他の装置が介在して信号を授受していることを検出する手順とを実行させるためのプログラムである。
さらに本発明の一側面は、コンピュータに、信号の方式を指定する指定情報を送信する手順と、他の情報処理装置から信号を受信する手順と、受信した信号の方式と、指定情報により指定された方式とから、他の情報処理装置との間に他の装置が介在して信号を授受していることを検出する手順とを実行させるためのプログラムが記録されている記録媒体である。
本発明の他の側面は、第1の情報処理装置が、信号の方式を指定する指定情報を送信し、 第2の情報処理装置が、第1の情報処理装置からの指定情報を受信し、第2の情報処理装置が、指定情報により指定された方式で第1の情報処理装置に信号を送信し、第1の情報処理装置が、第2の情報処理装置からの信号を受信し、第1の情報処理装置が、第1の情報処理装置から受信した信号の方式と、指定情報により指定した方式とから、第1の情報処理装置と第2の情報処理装置との間に他の装置が介在して信号を授受していることを検出する情報処理システムである。
さらに本発明の他の側面は、第1の情報処理装置が、信号の方式を指定する指定情報を送信し、第2の情報処理装置が、第1の情報処理装置からの指定情報を受信し、第2の情報処理装置が、指定情報により指定された方式で第1の情報処理装置に信号を送信し、第1の情報処理装置が、第2の情報処理装置からの信号を受信し、第1の情報処理装置が、第1の情報処理装置から受信した信号の方式と、指定情報により指定した方式とから、第1の情報処理装置と第2の情報処理装置との間に他の装置が介在して信号を授受していることを検出する情報処理システムの情報処理方法である。
本発明の一側面においては、送信部が、信号の方式を指定する指定情報を送信し、受信部が、他の情報処理装置から信号を受信し、検出部が、受信した信号の方式と、指定情報により指定された方式とから、他の情報処理装置との間に他の装置が介在して信号を授受していることを検出する。
本発明の一側面においては、第1の情報処理装置が、信号の方式を指定する指定情報を送信し、 第2の情報処理装置が、第1の情報処理装置からの指定情報を受信し、第2の情報処理装置が、指定情報により指定された方式で第1の情報処理装置に信号を送信し、第1の情報処理装置が、第2の情報処理装置からの信号を受信し、第1の情報処理装置が、第1の情報処理装置から受信した信号の方式と、指定情報により指定した方式とから、第1の情報処理装置と第2の情報処理装置との間に他の装置が介在して信号を授受していることを検出する。
以上のように、本発明の一側面によれば、盗聴を検出することができる。
以下、発明を実施するための最良の形態(以下、実施の形態と称する)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(図7乃至図12:一部のビットの符号化方式を変更する例)
2.第2の実施の形態(図16乃至図21:検出を複数回行う例)
3.第3の実施の形態(図22乃至図27:全体の符号化方式を変更する例)
4.第4の実施の形態(図30乃至図35:一部のビットの変調方式を変更する例)
5.第5の実施の形態(図37乃至図42:全体の変調方式を変更する例)
6.第6の実施の形態(図44乃至図53:認証処理と盗聴検出処理を個別に実行する例)
7.第7の実施の形態(図55乃至図60:一部のビットの他の符号化方式の有無により検出を行う例)
8.第8の実施の形態(図62乃至図67:一部のビットの他の変調方式の有無により検出する例)
<1.第1の実施の形態>
[原理]
最初に図5を参照して、本発明の原理について説明する。
リーダライタ211はアプリケーション層231、データリンク層232、符号化層233、および物理層234を有している。同様にICカード212は、アプリケーション層241、データリンク層242、符号化層243、および物理層244を有している。
アプリケーション層231,241は、符号化層233,243と物理層234,244に、盗聴を検出するために実行させる通信方式の特徴について交渉し、決定する(図5において番号1で示される処理)。アプリケーション層231,241は、決定された特徴を符号化層233,243と物理層234,244に指示する(図5において番号2で示される処理)。この指示に基づいて、符号化層233,243と物理層234,244は、指示された特徴を有する通信を実行する(図5において番号3で示される処理)。そしてデータリンク層232,242は、チェックサムにより通信の特徴が破壊されていないかをチェックし、破壊されていれば盗聴されていると判断する(図5において番号4で示される処理)。
[情報処理システムの構成]
図6は本発明のICカードシステムの一実施の形態の構成を表している。情報処理システムとしてのICカードシステム201は、情報処理装置としてのリーダライタ211とICカード212により構成されている。これらは例えばNFC(Near Field Communication)に代表される非接触通信を行う。
リーダライタ211は、CPU(Central Processing Unit)311、RAM(Random Access Memory)312、ROM(Read Only Memory)313、EEPROM(Electrically Erasable and Programmable Read Only Memory)314、UART(Universal Asynchronous Receiver Transmitter)315を有する。またリーダライタ211は、表示部316、DES(Data Encryption Standard)暗号化部317、送信調停部318、マンチェスタ符号化部319、RZ符号化部320、ASK(Amplitude Shift Keying)変調部321、ASK復調部322、受信調停部323、マンチェスタ復号部324、およびRZ復号部325を有している。
CPU311は、各部の動作を制御する。RAM312は、必要なデータを一時的に記憶する。ROM313は、データ、プログラムなどを記憶する。EEPROM314は、電源のオフ後も保持する必要があるデータなどを記憶する。UART315は、図示せぬ外部のコントローラとの間で授受される信号のシリアル/パラレル変換を行う。警告を出力する警告部として機能する出力部316は、所定の情報を出力する。出力部316はディスプレイ、スピーカなどにより構成される。DES暗号化部317は、送信するデータを暗号化し、また受信した暗号化されているデータを復号する。
送信調停部318は、送信するデータを、ビット単位でマンチェスタ符号化部319とRZ符号化部320に供給するか、またはASK変調部321に直接供給する。マンチェスタ符号化部319は、送信するデータをマンチェスタ符号化する。RZ符号化部320は、送信するデータをRZ符号化する。ASK変調部321は、データをASK変調し、電磁誘導によりICカード212に送信する。
ASK復調部322は、ICカード212からの信号を受信し、ASK復調する。受信調停部323は、ASK復調された信号を、マンチェスタ復号部324とRZ復号部325に供給するとともに、バスを介してCPU311に供給する。マンチェスタ復号部324は、ASK復調された信号をマンチェスタ復号する。RZ復号部325は、ASK復調された信号をRZ復号する。
ICカード212は、CPU351、RAM352、ROM353、EEPROM354、DES暗号化部355、送信調停部356、マンチェスタ符号化部357、RZ符号化部358、ASK変調部359、ASK復調部360、受信調停部361、マンチェスタ復号部362、およびRZ復号部363を有している。
CPU351は、各部の動作を制御する。RAM352は、必要なデータを一時的に記憶する。ROM353は、データ、プログラムなどを記憶する。EEPROM354は、電源のオフ後も保持する必要があるデータなどを記憶する。DES暗号化部355は、送信するデータを暗号化し、また受信した暗号化されているデータを復号する。
送信調停部356は、送信するデータを、ビット単位でマンチェスタ符号化部357とRZ符号化部358に供給するか、またはASK変調部359に直接供給する。マンチェスタ符号化部357は、送信するデータをマンチェスタ符号化する。RZ符号化部358は、送信するデータをRZ符号化する。ASK変調部359は、データをASK変調し、リーダライタ211に電磁誘導により送信する。
ASK復調部361は、リーダライタ211からの信号を電磁誘導により受信し、ASK復調する。受信調停部361は、ASK復調された信号をマンチェスタ復号部362とRZ復号部363に供給するとともに、バスを介してCPU351に供給する。マンチェスタ復号部362は、ASK復調された信号をマンチェスタ復号する。RZ復号部363は、ASK復調された信号をRZ復号する。
[動作説明]
次に図7乃至図12を参照して、リーダライタ211とICカード212の相互認証処理について説明する。図7乃至図9は、リーダライタ211の処理を表し、図10乃至図12は、それに対応するICカード212の処理を表す。
図7のステップS1001においてリーダライタ211のCPU311は、チャレンジデータ1rを生成する。このチャレンジデータ1rには、乱数値が用いられる。ステップS1002においてCPU311は、選択ビットをランダムに決定する。すなわち、この実施の形態の場合、データは基本的にマンチェスタ符号として送信されるのであるが、盗聴を検出するために、データ中の選択された所定のビットはRZ符号とされる。ここでその選択ビットが決定される。
ステップS1003においてDES暗号化部317は、ステップS1002において決定された選択ビットの位置を指定する指定情報をアクセス鍵で暗号化する。アクセス鍵はリーダライタ211とICカード212が共通に保持する秘密鍵である。
ステップS1004においてCPU311は、例えば図13に示されるように、チェックサムを計算する。図13の実施の形態においては、ビットD00乃至D07で構成される1バイトのデータD0のうちの1ビットD06は、後述するステップS1108でRZ符号化されるビット(すなわち選択ビット)であり、その他のビットD00乃至D05とビットD07は、後述するステップS1107でマンチェスタ符号化されるビットである。また、D1乃至Dnのnバイトの各ビットも、マンチェスタ符号化されるビットである。
チェックサムは1バイトとされ、これらの(n+1)バイトのデータD0乃至Dnから次式を満足するように計算される。すなわち、(n+1)バイトのデータD0乃至Dnと、チェックサムCSを加算して得られる値の下位1バイトが、00h(hは16進数を表す)となるようにチェックサムが決定される。
(D0+D1+D2+・・・+Dn+CS)の下位1バイト=00h (1)
ステップS1005においてDES暗号化部355は、ステップS1004で計算されたチェックサムをアクセス鍵で暗号化する。
ステップS1006においてマンチェスタ符号化部319は、全てのデータをマンチェスタ符号化する。すなわち、チャレンジデータ1r、暗号化された指定情報、および暗号化されたチェックサムがマンチェスタ符号化される。そしてそれらが認証メッセージ1Rとされる。
ステップS1007においてASK変調部321は、認証メッセージ1RをASK変調し、送信する。この認証メッセージ1Rには、ステップS1001で生成されたチャレンジデータ1r、ステップS1003で暗号化された指定情報、およびステップS1005で暗号化されたチェックサムが含まれている。なお、このときASK変調率は例えば10%とされる。
ICカード212のASK復調部360は、図10のステップS1101において、リーダライタ211から送信されてきた認証メッセージ1Rを受信し、ASK復調する。
ステップS1102において受信調停部361は、復調された全てのデータをマンチェスタ復号部362に供給する。マンチェスタ復号部362は、マンチェスタ符号化されている全てのデータをマンチェスタ復号する。これにより、チャレンジデータ1r、暗号化された指定情報、および暗号化されたチェックサムが得られる。
ステップS1103においてDES暗号化部355は、指定情報をアクセス鍵で復号する。すなわち、図7のステップS1003においてリーダライタ211により暗号化された指定情報が復号される。
次に、ステップS1104においてCPU351は、乱数を生成し、この乱数とステップS1102において復号して得たチャレンジデータ1rを組み合わせた値を、DES暗号化部355に供給し、アクセス鍵で暗号化させることでチャレンジデータ1cを生成する。具体的には、例えば、Xビットの乱数とYビットのチャレンジデータ1rが結合され、X+Yビットのデータが作成され、それを暗号化したものがチャレンジデータ1cとされる。
ステップS1105においてCPU351は、上述した式(1)に従ってチェックサムを計算する。
ステップS1106においてDES暗号化部355は、ステップS1105で計算されたチェックサムをアクセス鍵で暗号化する。
ステップS1107においてマンチェスタ符号化部357は、ステップS1104の処理で生成されたチャレンジデータ1cのうち、選択ビット以外のビットをマンチェスタ符号化する。ステップS1108においてRZ符号化部358は、チャレンジデータ1cの選択ビットをRZ符号化する。すなわち、ステップS1103で復号された指定情報により指定されている選択ビットがRZ符号化され、それ以外のビットがマンチェスタ符号化される。
ステップS1109においてマンチェスタ符号化部357は、ステップS1106で暗号化されているチェックサムをマンチェスタ符号化する。
ステップS1110においてASK変調部359は、認証レスポンス1CをASK変調し、送信する。認証レスポンス1Cには、ステップS1107,S1108で得られた、指定情報で指定された選択ビットのみがRZ符号とされ、その他のビットがマンチェスタ符号とされたチャレンジデータ1cと、ステップS1106で暗号化され、ステップS1109でマンチェスタ符号化されたチェックサムとが含まれている。
リーダライタ211のASK復調部322は、図8のステップS1008において、ICカード212からの認証レスポンス1Cを受信し、ASK復調する。これにより、指定情報で指定された選択ビットのみがRZ符号とされ、その他のビットがマンチェスタ符号化されているチャレンジデータ1cと、暗号化され、マンチェスタ符号化されているチェックサムが得られる。
ステップS1009において、受信調停部323は、チャレンジデータ1cの選択ビット以外のビットをマンチェスタ復号部324に供給する。マンチェスタ復号部324は、チャレンジデータ1cの選択ビット以外のビットをマンチェスタ復号する。選択ビットは図7のステップS1002においてリーダライタ211が決定しているので、リーダライタ211には既知である。
また、ステップS1010において、受信調停部323は、チャレンジデータ1cの選択ビットをRZ復号部325に供給する。RZ復号部325は、選択ビットをRZ復号する。
CPU311は、ステップS1009のマンチェスタ復号の結果得られたデータと、ステップS1010のRZ復号の結果得られたデータを合成することで、チャレンジデータ1cを復元する。
ステップS1011においてマンチェスタ復号部324は、チェックサムをマンチェスタ復号する。
ステップS1012においてDES暗号化部317は、暗号化されているチェックサムをアクセス鍵で復号する。すなわち図10のステップS1106でICカード212により暗号化されたチェックサムが復号される。
ステップS1013においてCPU311は、チェックサムを含む検証演算を行う。式(1)が成立するのかを検証する演算が行われる。式(1)中のチェックサムの値として、ステップS1012で復号された値が用いられる。
盗聴者はデータ中の一部のビットがマンチェスタ符号ではなく、RZ符号であることをしらない。従って、盗聴者が通信データ全てをマンチェスタ復号すると、データに誤りが発生するが、チェックサムは暗号化されているので、チェックサムから復号によりデータに誤りが発生したか否かを盗聴者は検出できない。一方、リーダライタ211は、暗号化されたチェックサムを復号することができ、チェックサムを含む式(1)の検証演算を行える。盗聴者が存在する場合、データに誤りが発生しているので、式(1)の左辺の項で計算された値は、00hにならない。これに対して、正規のICカード212から直接送られてきたデータに基づき、式(1)の左辺の項で計算された値は、00hになる。そこで、計算の結果が00hになるか否かで、盗聴者の有無が検出される。
ステップS1014においてCPU311は、演算結果が00hであるかを判定する。演算結果が00hではない場合、ステップS1015においてCPU311は、盗聴が検出されたとして、相互認証を中止する処理を行う。
演算結果が00hである場合、すなわち、盗聴者が存在しない場合(カードシミュレータやリーダライタシミュレータといった他の装置が介在していない場合)、ステップS1016においてCPU311は、チャレンジデータ1rとチャレンジデータ1cにより正当性検証の演算を行う。すなわち、ステップS1001において生成されたチャレンジデータ1rと、ステップS1009,S1010で復号の結果得られたチャレンジデータ1cとが比較される。まず、DES暗号化部317はチャレンジデータ1c(乱数とチャレンジデータ1rとの結合により構成されている)をアクセス鍵で復号する。そして、CPU311は復号されたデータのうち、チャレンジデータ1rに相当する箇所のビット値が、本当にチャレンジデータ1rと一致するかをチェックする。もし、両者が対応すれば、ICカード212は同じアクセス鍵を持つ適正なICカードであることが確認される。両者が対応しなければ、ICカード212は不正なICカードであることになる。
そこで、ステップS1017においてCPU311は、ステップS1016の演算結果に基づいて、ICカード212が適正であるかを判定する。適正でない場合、すなわち、生成されたチャレンジデータ1rと復号されたチャレンジデータ1cの該当箇所とが対応しない場合、通信相手としてのICカード212が適正でないとして、CPU311はステップS1015において相互認証を中止する。
ICカード212が適正である場合、すなわち、生成されたチャレンジデータ1rと復号されたチャレンジデータ1cの対応する部分が一致する場合、リーダライタ211によりICカード212が認証されたので、さらにICカード212がリーダライタ211を認証する処理が次のように行われる。
図11のステップS1111においてICカード212のCPU351は、チャレンジデータ2cを生成する。このチャレンジデータ2cには、ランダムな乱数値が用いられる。ステップS1112においてCPU351は、選択ビットをランダムに決定する。
ステップS1113においてDES暗号化部355は、ステップS1112において決定された選択ビットの位置を指定する指定情報をアクセス鍵で暗号化する。アクセス鍵はリーダライタ211とICカード212が共通に保持する秘密鍵である。
ステップS1114においてCPU351は、式(1)に従ってチャレンジデータ2cのチェックサムを計算する。
ステップS1115においてDES暗号化部355は、ステップS1114で計算されたチェックサムをアクセス鍵で暗号化する。
ステップS1116においてマンチェスタ符号化部357は、全てのデータをマンチェスタ符号化する。すなわち、チャレンジデータ2c、暗号化された指定情報、および暗号化されたチェックサムがマンチェスタ符号化され、これが認証メッセージ2Cとされる。なお、チャレンジデータ2cは、CPU351からバスを介して送信調停部356に供給され、さらに送信調停部356からマンチェスタ符号化部357に供給される。
ステップS1117においてASK変調部359は、認証メッセージ2CをASK変調し、送信する。なお、このときASK変調率は例えば10%とされる。
リーダライタ211のASK復調部322は、図9のステップS1018において、ICカード212から送信されてきた認証メッセージ2Cを受信し、ASK復調する。ステップS1019において受信調停部323は、マンチェスタ符号化されている全てのデータをマンチェスタ復号部324に供給する。マンチェスタ復号部324は、マンチェスタ符号化されている全てのデータをマンチェスタ復号する。これにより、チャレンジデータ2c、暗号化されている指定情報、および暗号化されているチェックサムが得られる。
ステップS1020においてDES暗号化部317は、指定情報をアクセス鍵で復号する。すなわち、図11のステップS1113においてICカード212により暗号化された指定情報が復号される。
次に、ステップS1021においてCPU311は、チャレンジデータ2rを生成する。具体的には、乱数が生成され、この乱数とチャレンジデータ2cを組み合わせた値を、DES暗号化部317によりアクセス鍵で暗号化して得られた値がチャレンジデータ2rとされる。例えば、 Xビットの乱数とYビットのチャレンジデータ2cを結合して、X+Yビットのデータが生成され、それを暗号化したものがチャレンジデータ2rとされる。
ステップS1022においてCPU311は、式(1)に従って、チャレンジデータ2rのチェックサムを計算する。ステップS1023においてDES暗号化部317は、ステップS1022で計算されたチェックサムをアクセス鍵で暗号化する。
ステップS1024においてマンチェスタ符号化部319は、ステップS1021の処理で生成されたチャレンジデータ2rのうち、選択ビット以外のビットをマンチェスタ符号化する。ステップS1025においてRZ符号化部320は、チャレンジデータ2rの選択ビットをRZ符号化する。すなわち、ステップS1020で復号された指定情報により指定されている選択ビットがRZ符号化され、それ以外のビットがマンチェスタ符号化される。ステップS1026でマンチェスタ符号化部319は暗号化されているチェックサムをマンチェスタ符号化する。
ステップS1027においてASK変調部321は、認証レスポンス2RをASK変調し、送信する。認証レスポンス2Rには、ステップS1024,S1025で得られた、指定情報で指定された選択ビットのみがRZ符号とされ、その他のビットがマンチェスタ符号とされたチャレンジデータ2rと、ステップS1023で暗号化され、マンチェスタ符号化されたチェックサムとが含まれている。
ICカード212のASK復調部360は、図12のステップS1118において、リーダライタ211からの認証レスポンス2Rを受信し、ASK復調する。これにより、指定情報で指定された選択ビットのみがRZ符号とされ、その他のビットがマンチェスタ符号化されているチャレンジデータ2rと、暗号化され、マンチェスタ符号化されているチェックサムが得られる。
ステップS1119において受信調停部361は、ステップS1118の処理で復調して得られた、チャレンジデータ2rの選択ビット以外のビットをマンチェスタ復号部362に供給する。マンチェスタ復号部362は、このチャレンジデータ2rの選択ビット以外のビットをマンチェスタ復号する。選択ビットは図11のステップS1112においてICカード212が決定しているので、ICカード212には既知である。
また、ステップS1120において、受信調停部361は、チャレンジデータ2rの選択ビットをRZ復号部363に供給する。RZ復号部363は、選択ビットをRZ復号する。
CPU351は、ステップS1119のマンチェスタ復号の結果得られたデータと、ステップS1120のRZ復号の結果得られたデータを合成することで、チャレンジデータ2rを復元する。
ステップS1121においてマンチェスタ復号部362は、チェックサムをマンチェスタ復号する。
ステップS1122においてDES暗号化部355は、暗号化されているチェックサムをアクセス鍵で復号する。すなわち図9のステップS1023でリーダライタ211により暗号化されたチェックサムが復号される。
ステップS1123においてCPU351は、チェックサムを含む検証演算を行う。上述したように式(1)が成立するのかを確認する演算が行われる。そして式(1)中のチェックサムの値として、ステップS1122で復号された値が用いられる。
盗聴者はデータ中の一部のビットがマンチェスタ符号ではなく、RZ符号であることをしらない。従って、盗聴者が通信データ全てをマンチェスタ復号すると、データに誤りが発生するが、チェックサムは暗号化されているので、チェックサムから復号によりデータに誤りが発生したか否かを盗聴者は検出できない。一方、ICカード212は、暗号化されたチェックサムを復号することができ、チェックサムを含む式(1)の検証演算を行える。盗聴者が存在する場合、データに誤りが発生しているので、式(1)の左辺の項で計算された値は、00hにならない。これに対して、正規のリーダライタ211から直接送られてきたデータに基づき、式(1)の左辺の項で計算された値は、00hになる。そこで、計算の結果が00hになるか否かで、盗聴者の有無が検出される。
ステップS1124においてCPU351は、演算結果が00hであるかを判定する。演算結果が00hではない場合、ステップS1125においてCPU351は、盗聴が検出されたとして、相互認証を中止する処理を行う。
演算結果が00hである場合、すなわち、盗聴者が存在しない場合、ステップS1126においてCPU351は、チャレンジデータ2cとチャレンジデータ2rにより正当性検証の演算を行う。すなわち、ステップS1111において生成されたチャレンジデータ2cと、ステップS1119,S1120で復号の結果得られたチャレンジデータ2rとが比較される。まず、DES暗号化部355はチャレンジデータ2r(乱数とチャレンジデータ2cとの結合により構成されている)をアクセス鍵で復号する。そしてCPU351は、復号されたデータのうち、チャレンジデータ2cに相当する箇所のビット値が、本当にチャレンジデータ2cと一致するどうかチェックする。もし、両者が対応すれば、リーダライタ211は同じアクセス鍵をもつ適正なリーダライタであることが確認される。両者が対応しなければ、リーダライタ211は不正なリーダライタであることになる。
そこで、ステップS1127においてCPU351は、ステップS1126の演算結果に基づいて、リーダライタ211が適正であるかを判定する。適正でない場合、すなわち、生成されたチャレンジデータ2cと復号されたチャレンジデータ2rとが対応しない場合、通信相手としてのリーダライタ211が適正でないとして、CPU351はステップS1125において相互認証を中止する。
生成されたチャレンジデータ2cと復号されたチャレンジデータ2rの対応する部分が一致する場合、ステップS1128において、CPU351は完了レスポンスを送信する。この完了レスポンスは、マンチェスタ符号化部357によりマンチェスタ符号化され、ASK変調部359によりASK変調され、送信される。
図9のステップS1028においてリーダライタ211は、ICカード212からの完了レスポンスを受信する。すなわち、完了レスポンスはASK復調部322によりASK復調され、マンチェスタ復号部324によりマンチェスタ復号され、CPU311により取得される。これにより、リーダライタ211は、自身がICカード212により認証されたことを知ることができる。
以上のようにしてリーダライタ211とICカード212との間で相互認証が行われる。
[動作のまとめ]
以上のICカードシステム201の処理をまとめると図14に示されるようになる。リーダライタ211の相互認証アルゴリズムA11がICカード212に認証メッセージ1Rを送信する。この認証メッセージ1Rには、チャレンジデータ1r、暗号化された指定情報、および暗号化されたチェックサムが、マンチェスタ符号化された状態で含まれている。
ICカード212の相互認証アルゴリズムa11は、受信データをマンチェスタ復号してチャレンジデータ1r、暗号化された指定情報、および暗号化されたチェックサムを得る。また相互認証アルゴリズムa11は、アクセス鍵で、暗号化されている指定情報とチェックサムを復号する。相互認証アルゴリズムa11は、復号されたチャレンジデータ1rと新たな乱数値との結合をアクセス鍵で暗号化し、チャレンジデータ1cとする。
チャレンジデータ1cのチェックサムが計算され、アクセス鍵で暗号化され、マンチェスタ符号化される。またチャレンジデータ1cのうち指定情報で指定された選択ビットがRZ符号化され、その他のビットがマンチェスタ符号化される。
暗号化され、マンチェスタ符号化されたチェックサム、選択ビットがRZ符号化され、その他のビットがマンチェスタ符号化されたチャレンジデータ1cが、認証レスポンス1Cとしてリーダライタ211に送信される。
リーダライタ211の正当性検証アルゴリズムB11は、認証レスポンス1Cに含まれるチェックサムと選択ビット以外のチャレンジデータ1cをマンチェスタ復号し、選択ビットのチャレンジデータ1cをRZ復号する。暗号化されているチェックサムとチャレンジデータ1cはさらにアクセス鍵で復号される。
正当性検証アルゴリズムB11は、チェックサムを式(1)に基づいて検証演算し、演算結果に基づいて盗聴者検出処理を実行する。正当性検証アルゴリズムB11は、さらにチャレンジデータ1rとチャレンジデータ1cの検証演算を実行し、演算結果に基づいてICカード212を認証する。
同様に、ICカード212がリーダライタ211を認証する処理が行われる。すなわち、ICカード212の相互認証アルゴリズムa12がリーダライタ211に認証メッセージ2Cを送信する。この認証メッセージ2Cには、チャレンジデータ2c、チャレンジデータ2cの暗号化されたチェックサム、および暗号化された指定情報が、マンチェスタ符号化された状態で含まれている。
リーダライタ211の相互認証アルゴリズムA12は、認証メッセージ2Cをマンチェスタ復号し、チャレンジデータ2c、チャレンジデータ2cの暗号化されたチェックサム、および暗号化された指定情報を得る。チャレンジデータ2cと乱数の結合が暗号化され、チャレンジデータ2rとされる。
チャレンジデータ2rのチェックサムが計算され、暗号化され、マンチェスタ符号化される。チャレンジデータ2rのうち、指定情報で指定された選択ビットがRZ符号化され、その他のビットがマンチェスタ符号化される。これらのデータが、認証レスポンス2RとしてICカード212に送信される。
ICカード212の正当性検証アルゴリズムb11は、認証レスポンス2Rのチェックサムと選択ビット以外のチャレンジデータ2rをマンチェスタ復号し、選択ビットのチャレンジデータ2rをRZ復号する。暗号化されているチャレンジデータ2rとチェックサムはさらに復号される。
正当性検証アルゴリズムb11は、チェックサムを式(1)に基づいて検証演算し、演算結果に基づいて盗聴者検出処理を実行する。正当性検証アルゴリズムb11は、さらにチャレンジデータ2cとチャレンジデータ2rの検証演算を実行し、演算結果に基づいてリーダライタ211を認証する。
認証が成功した場合、ICカード212の正当性検証アルゴリズムb11は、リーダライタ211に完了レスポンスを返す。
[盗聴時の動作]
図15は、リーダライタ211とICカード212の間に、カードシミュレータ112とリーダライタシミュレータ111を介在させた場合の信号の授受を表している。カードシミュレータ112は図1に示した従来のICカード12と同様の機能を有しており、リーダライタシミュレータ111も従来のリーダライタ11と同様の機能を有している。
リーダライタ211の相互認証アルゴリズムA11がICカード212に向けて認証メッセージ1Rを送信する。この認証メッセージ1Rには、チャレンジデータ1r、暗号化された指定情報、および暗号化されたチェックサムが、マンチェスタ符号化された状態で含まれている。
カードシミュレータ112は、リーダライタ211がICカード212に向けて送信した認証メッセージ1Rを傍受すると、それを一旦ASK復調し、マンチェスタ復号した後、パーソナルコンピュータ113とリーダライタシミュレータ111に送信する。パーソナルコンピュータ113はこのデータを分析する。リーダライタシミュレータ111はカードシミュレータ112からの認証メッセージ1Rをマンチェスタ符号化し、ASK変調した後、ICカード212に送信する。
ICカード212の相互認証アルゴリズムa11は、上述したように認証メッセージ1Rに基づいて認証レスポンス1Cを生成し、リーダライタ211に向けて送信する。この認証レスポンス1Cには、指定情報により指定された選択ビットがRZ符号化され、その他のビットがマンチェスタ符号化されたチャレンジデータ1c、および暗号化され、マンチェスタ符号化されたチェックサムが含まれている。
リーダライタシミュレータ111は、ICカード212がリーダライタ211に向けて送信した認証レスポンス1Cを傍受すると、それを一旦ASK復調し、マンチェスタ復号した後、パーソナルコンピュータ113とカードシミュレータ112に送信する。パーソナルコンピュータ113はリーダライタシミュレータ111から供給されたデータを分析する。
しかしながら、不正な装置であるリーダライタシミュレータ111はアクセス鍵を有しておらず、暗号化されたデータを正しく復号することはできない。また、指定情報が暗号化されているので、リーダライタシミュレータ111はチャレンジデータ1cのビットのうち、どのビットがRZ符号化されているのか分からない。従って、リーダライタシミュレータ111は、傍受した認証レスポンス1Cを復号して、元の正しいデータを得ることはできない。
その結果、リーダライタシミュレータ111が認証レスポンス1Cを傍受して、ASK復調し、マンチェスタ復号してカードシミュレータ112に出力するデータは、ICカード212がリーダライタ211に向けて送信する認証レスポンス1Cとは異なるデータとなる。従って、リーダライタシミュレータ111からデータの供給を受け、再生成してリーダライタ211にデータを送信するカードシミュレータ112は、ICカード212がリーダライタ211からのデータの入力を受けて出力するデータと同じデータを生成することはできない。
さらにカードシミュレータ112も不正な装置であり、アクセス鍵を有しておらず、暗号化されたデータを正しく復号することはできないし、指定情報で指定されたビットをRZ符号化したり、RZ復号する機能を有していない。このことからも、カードシミュレータ112は、ICカード212がリーダライタ211からのデータの入力を受けて出力するデータと同じデータを生成することはできない。
以上のことから、リーダライタ211の正当性検証アルゴリズムB11は、チェックサムの式(1)が成立しないことを確認することで、リーダライタ211とICカード212の間に、他の不正な装置(図15の例においては、リーダライタシミュレータ111とカードシミュレータ112)が介在していることを検出することができる。
同様の原理で、ICカード212の正当性検証アルゴリズムb11は、リーダライタ211とICカード212の間に、他の不正な装置が介在していることを検出することができる。
このように、盗聴が検出された場合、相互認証を中止するなどの対処が可能になるので、機密の情報が盗まれてしまうおそれが抑制される。
<2.第2の実施の形態>
[動作説明]
第1の実施の形態においては、演算結果が00hではなかった場合、直ちに相互認証を中止するようにしたが、同様の結果が所定の回数発生した場合に相互認証を中止させることもできる。図16乃至図21は、この場合の実施の形態を表している。
図16乃至図18は、リーダライタ211の処理を表し、図19乃至図21は、それに対応するICカード212の処理を表す。
図16のステップS1201乃至図17のステップS1221のリーダライタ211の処理と、それに対応する図19のステップS1301乃至ステップS1310のICカード212の処理は、リーダライタ211がICカード212を認証する処理である。図20のステップS1311乃至図21のステップS1331のICカード212の処理と、それに対応する図18のステップS1222乃至ステップS1232のリーダライタ211の処理は、ICカード212がリーダライタ211を認証する処理である。
図16のステップS1202乃至ステップS1208の処理は、図7のステップS1001乃至ステップS1007の処理と同様の処理である。図16においては、ステップS1202の前に、ステップS1201の処理が付加されている点が、図7の処理と異なっている。
図17のステップS1209乃至ステップS1215、ステップS1219乃至ステップS1221の処理は、図8のステップS1008乃至ステップS1017の処理と同様の処理である。図17においては、ステップS1215とステップS1219の間に、ステップS1216乃至ステップS1218の処理が付加されている点が、図8の処理と異なっている。
図18ステップS1222乃至ステップS1232、図19のステップS1301乃至ステップS1310の処理は、図9のステップS1018乃至ステップS1028と図10のステップS1101乃至ステップS1110処理と同様の処理である。
図20のステップS1312乃至ステップS1318の処理は、図11のステップS1111乃至ステップS1117の処理と同様の処理である。図20においては、ステップS1312の前に、ステップS1311の処理が付加されている点が、図11の処理と異なっている。
図21のステップS1319乃至ステップS1325、ステップS1328乃至ステップS1331の処理は、図12のステップS1118乃至ステップS1128の処理と同様の処理である。図21においては、ステップS1325とステップS1328の間に、ステップS1326とステップS1327の処理が付加されている点が、図12の処理と異なっている。
このように、図16乃至図21の処理は、基本的に図7乃至図12の処理と同様であるので、異なる点のみを説明すると次のようになる。
すなわち、リーダライタ211がICカード212を認証するとき、リーダライタ211のCPU311は、図16のステップS1201において、エラーの発生回数を表す変数Errorを0に初期設定する。
その後、ステップS1202乃至ステップS1215の処理が行われる。ステップS1215においてチェックサムの演算結果が00hではないと判定された場合、ステップS1216において、CPU311は変数Errorを1だけインクリメントする。ステップS1217において、CPU311はインクリメントした変数Errorが予め設定されている基準値THより大きいかを判定する。変数Errorが予め設定されている基準値TH以下である場合、処理はステップS1202に戻り、それ以降の処理が繰り返される。すなわち、リーダライタ211がICカード212を認証する処理が繰り返される。
変数Errorが基準値THより大きくなった場合、ステップS1218においてCPU311は、表示部316を制御し、「盗聴者有り」の警告メッセージを画像や音声で出力させる。そしてステップS1219において相互認証処理は中止される。
同様に、ICカード212がリーダライタ211を認証するとき、ICカード212のCPU351は、図20のステップS1311において、エラーの発生回数を表す変数Errorを0に初期設定する。
その後、ステップS1312乃至ステップS1325の処理が行われる。ステップS1325においてチェックサムの演算結果が00hではないと判定された場合、ステップS1326において、CPU351は変数Errorを1だけインクリメントする。ステップS1217において、CPU351はインクリメントした変数Errorが予め設定されている基準値THより大きいかを判定する。変数Errorが予め設定されている基準値TH以下である場合、処理はステップS1312に戻り、それ以降の処理が繰り返される。すなわち、ICカード212がリーダライタ211を認証する処理が繰り返される。
変数Errorが基準値THより大きくなった場合、ステップS1228においてCPU351は、相互認証処理を中止する。
このようにこの実施の形態の場合、チェックサムの演算結果が00hでない結果が、予め設定されている回数だけ発生したとき、警告が出力される。従って、チェックサムの演算結果が00hでない結果が1回発生したとき、直ちに相互認証処理を中止する第1の実施の形態に比べて、より確実な動作が可能となる。
第2の実施の形態のその他の動作は第1の実施の形態と同様であるので、その説明は省略する。
<3.第3の実施の形態>
[動作説明]
第1の実施の形態と第2の実施の形態においては、伝送するビットの一部を指定する符号化方式のビットに変更するようにしたが、全体の符号化方式を変更すること、すなわち全部のビットを変更することもできる。図22乃至図27は、この場合の実施の形態を表している。
図22のステップS1401乃至図23のステップS1416のリーダライタ211の処理と、それに対応する図25のステップS1501乃至ステップS1509のICカード212処理は、リーダライタ211がICカード212を認証する処理である。図26のステップS1510乃至図27のステップS1526のICカード212処理と、それに対応する図24のステップS1417乃至ステップS1426のリーダライタ211の処理は、ICカード212がリーダライタ211を認証する処理である。
図22のステップS1401においてリーダライタ211のCPU311は、チャレンジデータ1rを生成する。このチャレンジデータ1rには、乱数値が用いられる。ステップS1402においてCPU311は、符号化方式をランダムに決定する。すなわち、この実施の形態の場合、データは基本的にマンチェスタ符号として送信されるのであるが、盗聴を検出するために、データは他の異なる符号化方式の符号化ビットとして送信される。その符号化方式は、例えばRZ符号化方式とされる。その符号化方式がここで決定される。勿論符号化方式は、予め用意されているものの中から選択される。
ステップS1403においてDES暗号化部317は、ステップS1402において決定された符号化方式を指定する指定情報をアクセス鍵で暗号化する。アクセス鍵はリーダライタ211とICカード212が共通に保持する秘密鍵である。
ステップS1404においてCPU311は、式(1)に従ってチャレンジデータ1rのチェックサムを計算する。
ステップS1405においてDES暗号化部355は、ステップS1404で計算されたチェックサムをアクセス鍵で暗号化する。
ステップS1406においてマンチェスタ符号化部319は、全てのデータをマンチェスタ符号化する。すなわち、チャレンジデータ1r、暗号化された指定情報、および暗号化されたチェックサムがマンチェスタ符号化される。そしてそれが認証メッセージ1Rとされる。
ステップS1407においてASK変調部321は、認証メッセージ1RをASK変調し、送信する。この認証メッセージ1Rには、ステップS1401で生成されたチャレンジデータ1r、ステップS1403で暗号化された指定情報、およびステップS1405で暗号化されたチェックサムが含まれている。なお、このときASK変調率は例えば10%とされる。
ICカード212のASK復調部360は、図25のステップS1501において、リーダライタ211から送信されてきた認証メッセージ1Rを受信し、ASK復調する。
ステップS1502において受信調停部361は、復調された全てのデータをマンチェスタ復号部362に供給する。マンチェスタ復号部362は、マンチェスタ符号化されている全てのデータをマンチェスタ復号する。これにより、チャレンジデータ1r、暗号化された指定情報、および暗号化されたチェックサムが得られる。
ステップS1503においてDES暗号化部355は、指定情報をアクセス鍵で復号する。すなわち、図22のステップS1403においてリーダライタ211により暗号化された指定情報が復号される。
次に、ステップS1504においてCPU351は、乱数を生成し、この乱数とステップS1502において復号して得たチャレンジデータ1rを組み合わせた値を、DES暗号化部355に供給し、アクセス鍵で暗号化させることでチャレンジデータ1cを生成する。
ステップS1505においてCPU351は、上述したように式(1)に基づいて、チェックサムを計算する。ステップS1506においてDES暗号化部355は、ステップS1505で計算されたチェックサムをアクセス鍵で暗号化する。
ステップS1507においてマンチェスタ符号化部357は、ステップS1504の処理で生成されたチャレンジデータ1cを、復号された指定情報で指定されている符号化方式で符号化する。例えばRZ符号化方式が指定されていれば、RZ符号化方式により符号化が行われる。
ステップS1508においてマンチェスタ符号化部357は、チェックサムをマンチェスタ符号化する。このチェックサムはステップS1506で暗号化されている。
ステップS1509においてASK変調部359は、認証レスポンス1CをASK変調し、送信する。認証レスポンス1Cには、ステップS1503で得られた指定情報により指定された符号化方式で符号化されたチャレンジデータ1cと、ステップS1506で暗号化され、ステップS1508でマンチェスタ符号化された1バイトのチェックサムとが含まれている。
リーダライタ211のASK復調部322は、図23のステップS1408において、ICカード212からの認証レスポンス1Cを受信し、ASK復調する。これにより、指定情報で指定された符号化方式で符号化されているチャレンジデータ1cと、暗号化され、マンチェスタ符号化されているチェックサムが得られる。
ステップS1409において、受信調停部323は、チャレンジデータ1cを指定した符号化方式に対応する復号部(いまの場合、RZ復号部325)に供給する。RZ復号部325は、チャレンジデータ1cをRZ復号する。符号化方式は図22のステップS1402においてリーダライタ211が決定しているので、リーダライタ211には既知である。
ステップS1410においてマンチェスタ復号部324は、チェックサムをマンチェスタ復号する。
ステップS1411においてDES暗号化部317は、暗号化されているチェックサムをアクセス鍵で復号する。すなわち図25のステップS1506でICカード212により暗号化されたチェックサムが復号される。
ステップS1412においてCPU311は、チェックサムを含む式(1)に従って検証演算を行う。式(1)中のチェックサムの値として、ステップS1411で復号された値が用いられる。
盗聴者はデータがマンチェスタ符号ではなく、RZ符号であることをしらない。従って、盗聴者が通信データ全てをマンチェスタ復号すると、データに誤りが発生するが、チェックサムは暗号化されているので、チェックサムから復号によりデータに誤りが発生したか否かを盗聴者は検出できない。一方、リーダライタ211は、暗号化されたチェックサムを復号することができ、チェックサムを含む式(1)の検証演算を行える。盗聴者が存在する場合、データに誤りが発生しているので、式(1)の左辺の項で計算された値は、00hにならない。これに対して、正規のICカード212から直接送られてきたデータに基づき、式(1)の左辺の項で計算された値は、00hになる。そこで、計算の結果が00hになるか否かで、盗聴者の有無が検出される。
ステップS1413においてCPU311は、演算結果が00hであるかを判定する。演算結果が00hではない場合、ステップS1414においてCPU311は、盗聴が検出されたとして、相互認証を中止する処理を行う。
演算結果が00hである場合、すなわち、盗聴者が存在しない場合、ステップS1415においてCPU311は、チャレンジデータ1rとチャレンジデータ1cにより正当性検証の演算を行う。すなわち、ステップS1401において生成したチャレンジデータ1rと、ステップS1409で復号の結果得られたチャレンジデータ1cとが比較される。まず、DES暗号化部317はチャレンジデータ1c(乱数とチャレンジデータ1rとの結合により構成されている)をアクセス鍵で復号する。そして、CPU311は復号されたデータのうち、チャレンジデータ1rに相当する箇所のビット値が、本当にチャレンジデータ1rと一致するかチェックする。もし、両者が対応すれば、ICカード212は同じアクセス鍵を持つ適正なICカードであることが確認される。両者が対応しなければ、ICカード212は不正なICカードであることになる。
そこで、ステップS1416においてCPU311は、ステップS1415の演算結果に基づいて、ICカード212が適正であるかを判定する。適正でない場合、すなわち、生成されたチャレンジデータ1rと復号されたチャレンジデータ1cの該当箇所とが対応しない場合、通信相手としてのICカード212が適正でないとして、CPU311はステップS1414において相互認証を中止する。
ICカード212が適正である場合、すなわち、生成されたチャレンジデータ1rと復号されたチャレンジデータ1cの対応する部分が一致する場合、リーダライタ211によりICカード212が認証されたので、さらにICカード212がリーダライタ211を認証する処理が次のように行われる。
図26のステップS1510においてICカード212のCPU351は、チャレンジデータ2cを生成する。このチャレンジデータ2cには、ランダムな乱数値が用いられる。ステップS1511においてCPU351は、符号化方式をランダムに決定する。
ステップS1512においてDES暗号化部355は、ステップS1511において決定された符号化方式を指定する指定情報をアクセス鍵で暗号化する。アクセス鍵はリーダライタ211とICカード212が共通に保持する秘密鍵である。
ステップS1513においてCPU351は、式(1)に従ってチャレンジデータ2cのチェックサムを計算する。
ステップS1514においてDES暗号化部355は、ステップS1513で計算されたチェックサムをアクセス鍵で暗号化する。
ステップS1515においてマンチェスタ符号化部357は、全てのデータをマンチェスタ符号化する。すなわち、チャレンジデータ2c、暗号化された指定情報、および暗号化されたチェックサムがマンチェスタ符号化され、これが認証メッセージ2Cとされる。
ステップS1516においてASK変調部359は、認証メッセージ2CをASK変調し、送信する。なお、このときASK変調率は例えば10%とされる。
リーダライタ211のASK復調部322は、図24のステップS1417において、ICカード212から送信されてきた認証メッセージ2Cを受信し、ASK復調する。ステップS1418において受信調停部323は、マンチェスタ符号化されている全てのデータをマンチェスタ復号部324に供給する。マンチェスタ復号部324は、マンチェスタ符号化されている全てのデータをマンチェスタ復号する。これにより、チャレンジデータ2c、暗号化されている指定情報、および暗号化されているチェックサムが得られる。
ステップS1419においてDES暗号化部317は、指定情報をアクセス鍵で復号する。すなわち、図26のステップS1512においてICカード212により暗号化された指定情報が復号される。
次に、ステップS1420においてCPU311は、チャレンジデータ2rを生成する。具体的には、乱数が生成され、この乱数とチャレンジデータ2cを組み合わせた値を、DES暗号化部317によりアクセス鍵で暗号化して得られた値がチャレンジデータ2rとされる。
ステップS1421においてCPU311は、式(1)に従って、チャレンジデータ2rのチェックサムを計算する。ステップS1422においてDES暗号化部317は、ステップS1421で計算されたチェックサムをアクセス鍵で暗号化する。
ステップS1423においてチャレンジデータ2rが、ステップS1423で復号された指定情報で指定された符号化方式で符号化される。いまの場合、RZ符号化部320が、チャレンジデータ2rを符号化する。ステップS1424でマンチェスタ符号化部319は暗号化されているチェックサムをマンチェスタ符号化する。
ステップS1425においてASK変調部321は、認証レスポンス2RをASK変調し、送信する。認証レスポンス2Rには、指定情報で指定された符号化方式であるRZ符号化方式で符号化されたチャレンジデータ2rと、ステップS1422で暗号化され、ステップS1424でマンチェスタ符号化されたチェックサムとが含まれている。
ICカード212のASK復調部360は、図27のステップS1517において、リーダライタ211からの認証レスポンス2Rを受信し、ASK復調する。これにより、指定情報で指定された符号化方式であるRZ符号化方式で符号化されているチャレンジデータ2rと、暗号化され、マンチェスタ符号化されているチェックサムが得られる。
ステップS1518において受信調停部361は、ステップS1517の処理で復調して得られた、チャレンジデータ2rをRZ復号部363に供給する。RZ復号部363は、選択ビットをRZ復号する。すなわち、チャレンジデータ2rが指定した符号化方式に対応する復号方式で復号される。符号化方式は図26のステップS1511においてICカード212が決定しているので、ICカード212には既知である。
ステップS1519においてマンチェスタ復号部362は、チェックサムをマンチェスタ復号する。
ステップS1520においてDES暗号化部355は、暗号化されているチェックサムをアクセス鍵で復号する。すなわち図24のステップS1422でリーダライタ211により暗号化されたチェックサムが復号される。
ステップS1521においてCPU351は、チェックサムを含む式(1)に従って検証演算を行う。式(1)中のチェックサムの値として、ステップS1520で復号された値が用いられる。
盗聴者はデータがマンチェスタ符号ではなく、RZ符号であることをしらない。従って、盗聴者が通信データ全てをマンチェスタ復号すると、データに誤りが発生するが、チェックサムは暗号化されているので、チェックサムから復号によりデータに誤りが発生したか否かを盗聴者は検出できない。一方、ICカード212は、暗号化されたチェックサムを復号することができ、チェックサムを含む式(1)の検証演算を行える。盗聴者が存在する場合、データに誤りが発生しているので、式(1)の左辺の項で計算された値は、00hにならない。これに対して、正規のリーダライタ211から直接送られてきたデータに基づき、式(1)の左辺の項で計算された値は、00hになる。そこで、計算の結果が00hになるか否かで、盗聴者の有無が検出される。
ステップS1522においてCPU351は、演算結果が00hであるかを判定する。演算結果が00hではない場合、ステップS1523においてCPU351は、盗聴が検出されたとして、相互認証を中止する処理を行う。
演算結果が00hである場合、すなわち、盗聴者が存在しない場合、ステップS1524においてCPU351は、チャレンジデータ2cとチャレンジデータ2rにより正当性検証の演算を行う。すなわち、ステップS1510において生成したチャレンジデータ2cと、ステップS1518で復号の結果得られたチャレンジデータ2rとが比較される。まず、DES暗号化部355はチャレンジデータ2r(乱数とチャレンジデータ2cとの結合により構成されている)をアクセス鍵で復号する。そしてCPU351は、復号されたデータのうち、チャレンジデータ2cに相当する箇所のビット値が、本当にチャレンジデータ2cと一致するどうかチェックする。もし、両者が対応すれば、リーダライタ211は同じアクセス鍵をもつ適正なリーダライタであることが確認される。両者が対応しなければ、リーダライタ211は不正なリーダライタであることになる。
そこで、ステップS1525においてCPU351は、ステップS1524の演算結果に基づいて、リーダライタ211が適正であるかを判定する。適正でない場合、すなわち、生成されたチャレンジデータ2cと復号されたチャレンジデータ2rとが対応しない場合、通信相手としてのリーダライタ211が適正でないとして、CPU351はステップS1523において相互認証を中止する。
生成されたチャレンジデータ2cと復号されたチャレンジデータ2rの対応する部分が一致する場合、ステップS1526において、CPU351は完了レスポンスを送信する。この完了レスポンスは、マンチェスタ符号化部357によりマンチェスタ符号化され、ASK変調部359によりASK変調され、送信される。
図24のステップS1426においてリーダライタ211は、ICカード212からの完了レスポンスを受信する。すなわち、完了レスポンスはASK復調部322によりASK復調され、マンチェスタ復号部324によりマンチェスタ復号され、CPU311により取得される。これにより、リーダライタ211は、自身がICカード212により認証されたことを知ることができる。
以上のようにしてリーダライタ211とICカード212との間で相互認証が行われる。
[動作のまとめ]
以上のICカードシステム201の処理をまとめると図28に示されるようになる。リーダライタ211の相互認証アルゴリズムA11がICカード212に認証メッセージ1Rを送信する。この認証メッセージ1Rには、チャレンジデータ1r、暗号化された指定情報、および暗号化されたチェックサムが、マンチェスタ符号化された状態で含まれている。
ICカード212の相互認証アルゴリズムa11は、受信データをマンチェスタ復号してチャレンジデータ1r、暗号化された指定情報、および暗号化されたチェックサムを得る。また相互認証アルゴリズムa11は、アクセス鍵で、暗号化されている指定情報とチェックサムを復号する。相互認証アルゴリズムa11は、復号されたチャレンジデータ1rと新たな乱数値との結合をアクセス鍵で暗号化し、チャレンジデータ1cとする。
チャレンジデータ1cのチェックサムが計算され、アクセス鍵で暗号化され、マンチェスタ符号化される。またチャレンジデータ1cは、指定情報で指定された符号化方式であるRZ符号化方式で符号化される。
暗号化され、マンチェスタ符号化されたチェックサムと、RZ符号化されチャレンジデータ1cが、認証レスポンス1Cとしてリーダライタ211に送信される。
リーダライタ211の正当性検証アルゴリズムB11は、認証レスポンス1Cに含まれるチェックサムをマンチェスタ復号し、チャレンジデータ1cをRZ復号する。暗号化されているチェックサムとチャレンジデータ1cはさらにアクセス鍵で復号される。
正当性検証アルゴリズムB11は、チェックサムを式(1)に基づいて検証演算し、演算結果に基づいて盗聴者の検出処理を実行する。正当性検証アルゴリズムB11は、さらにチャレンジデータ1rとチャレンジデータ1cの検証演算を実行し、演算結果に基づいてICカード212を認証する。
同様に、ICカード212がリーダライタ211を認証する処理が行われる。すなわち、ICカード212の相互認証アルゴリズムa12がリーダライタ211に認証メッセージ2Cを送信する。この認証メッセージ2Cには、チャレンジデータ2c、チャレンジデータ2cの暗号化されたチェックサム、および暗号化された指定情報が、マンチェスタ符号化された状態で含まれている。
リーダライタ211の相互認証アルゴリズムA12は、認証メッセージ2Cをマンチェスタ復号し、チャレンジデータ2c、チャレンジデータ2cの暗号化されたチェックサム、および暗号化された指定情報を得る。チャレンジデータ2cと乱数の結合が暗号化され、チャレンジデータ2rとされる。
チャレンジデータ2rのチェックサムが計算され、暗号化され、マンチェスタ符号化される。チャレンジデータ2rは、指定情報で指定された符号化方式であるRZ符号化方式で符号化される。これらのデータが、認証レスポンス2RとしてICカード212に送信される。
ICカード212の正当性検証アルゴリズムb11は、認証レスポンス2Rのチェックサムをマンチェスタ復号し、チャレンジデータ2rをRZ復号する。暗号化されているチャレンジデータ2rとチェックサムはさらに復号される。
正当性検証アルゴリズムb11は、チェックサムを式(1)に基づいて検証演算し、演算結果に基づいて盗聴者検出処理を実行する。正当性検証アルゴリズムb11は、さらにチャレンジデータ2cとチャレンジデータ2rの検証演算を実行し、演算結果に基づいてリーダライタ211を認証する。
認証が成功した場合、ICカード212の正当性検証アルゴリズムb11は、リーダライタ211に完了レスポンスを返す。
<4.第4の実施の形態>
[ICカードシステムの構成]
以上の実施の形態においては、符号化方式を変更するようにしたが、変調方式を変更することもできる。この場合、ICカードシステム201は、図29に示されるように構成される。
このICカードシステム201のリーダライタ211は、ASK変調方式に関して、ASK変調部321とASK復調部322を有する他、PSK変調方式に関しても、PSK変調部401とPSK復調部402を有する。送信調停部318は、マンチェスタ符号化部319から供給されるデータ、およびバスから供給されるデータを、ASK変調部321とPSK変調部401に供給する。受信調停部323は、ASK復調部322とPSK復調部402から供給されるデータを、マンチェスタ復号部324およびバスに供給する。
ICカード212も、ASK変調方式に関して、ASK変調部359とASK復調部360を有する他、PSK変調方式に関しても、PSK変調部421とPSK復調部422を有する。送信調停部356は、マンチェスタ符号化部357から供給されるデータ、およびバスから供給されるデータを、ASK変調部359とPSK変調部421に供給する。受信調停部361は、ASK復調部360とPSK復調部422から供給されるデータを、マンチェスタ復号部362およびバスに供給する。
その他の構成は、図6における場合と同様であるので、その説明は省略する。
[動作説明]
次に図30乃至図35を参照して、リーダライタ211とICカード212の相互認証処理について説明する。図30乃至図32は、リーダライタ211の処理を表し、図33乃至図35は、それに対応するICカード212の処理を表す。
図30のステップS1601乃至図31のステップS1617のリーダライタ211の処理と、それに対応する図33のステップS1701乃至ステップS1709のICカード212の処理は、リーダライタ211がICカード212を認証する処理である。図34のステップS1710乃至図35のステップS1727のICカード212の処理と、それに対応する図32のステップS1618乃至ステップS1627のリーダライタ211の処理は、ICカード212がリーダライタ211を認証する処理である。
図30のステップS1601においてリーダライタ211のCPU311は、チャレンジデータ1rを生成する。このチャレンジデータ1rには、乱数値が用いられる。ステップS1602においてCPU311は、選択ビットをランダムに決定する。すなわち、この実施の形態の場合、データは基本的にASK変調されて送信されるのであるが、盗聴を検出するために、データ中の選択された所定のビットはPSK変調されて送信される。ここでその選択ビットが決定される。
ステップS1603においてDES暗号化部317は、ステップS1602において決定された選択ビットの位置を指定する指定情報をアクセス鍵で暗号化する。アクセス鍵はリーダライタ211とICカード212が共通に保持する秘密鍵である。
ステップS1604においてCPU311は、式(1)に従ってチャレンジデータ1rのチェックサムを計算する。
ステップS1605においてDES暗号化部355は、ステップS1604で計算されたチェックサムをアクセス鍵で暗号化する。
ステップS1606においてマンチェスタ符号化部319は、全てのデータをマンチェスタ符号化する。すなわち、チャレンジデータ1r、暗号化された指定情報、および暗号化されたチェックサムがマンチェスタ符号化される。そしてそれらが認証メッセージ1Rとされる。
ステップS1607においてASK変調部321は、認証メッセージ1RをASK変調し、送信する。この認証メッセージ1Rには、ステップS1601で生成されたチャレンジデータ1r、ステップS1603で暗号化された指定情報、およびステップS1605で暗号化されたチェックサムが含まれている。なお、このときASK変調率は例えば10%とされる。
ICカード212のASK復調部360は、図33のステップS1701において、リーダライタ211から送信されてきた認証メッセージ1Rを受信し、ASK復調する。
ステップS1702において受信調停部361は、復調された全てのデータをマンチェスタ復号部362に供給する。マンチェスタ復号部362は、マンチェスタ符号化されている全てのデータをマンチェスタ復号する。これにより、チャレンジデータ1r、暗号化された指定情報、および暗号化されたチェックサムが得られる。
ステップS1703においてDES暗号化部355は、指定情報をアクセス鍵で復号する。すなわち、図30のステップS1603においてリーダライタ211により暗号化された指定情報が復号される。
次に、ステップS1704においてCPU351は、乱数を生成し、この乱数とステップS1702において復号して得たチャレンジデータ1rを組み合わせた値を、DES暗号化部355に供給し、アクセス鍵で暗号化させることでチャレンジデータ1cを生成する。具体的には、例えば、Xビットの乱数とYビットのチャレンジデータ1rが結合され、X+Yビットのデータが作成され、それを暗号化したものがチャレンジデータ1cとされる。
ステップS1705においてCPU351は、式(1)に従って、チェックサムを計算する。ステップS1706においてDES暗号化部355は、ステップS1705で計算されたチェックサムをアクセス鍵で暗号化する。
ステップS1707においてマンチェスタ符号化部357は、ステップS1704の処理で生成されたチャレンジデータ1cをマンチェスタ符号化する。
ステップS1708においてマンチェスタ符号化部357は、チェックサムをマンチェスタ符号化する。このチェックサムはステップS1706で暗号化されている。
ステップS1709においてPSK変調部421は、認証レスポンス1Cのうちチャレンジデータ1cの選択ビットをPSK変調し、ASK変調部359は、その他のビットをASK変調し、送信する。選択ビットは、ステップS1703で復号された指定情報により指定されている。
リーダライタ211のASK復調部322は、図31のステップS1608において、ICカード212からの認証レスポンス1Cを受信し、ASK復調する。また、PSK復調部402も認証レスポンス1Cを受信し、PSK復調する。これにより、マンチェスタ符号化されているチャレンジデータ1cと、暗号化され、マンチェスタ符号化されているチェックサムが得られる。
ステップS1609において、受信調停部323は、チャレンジデータ1cをマンチェスタ復号部324に供給する。マンチェスタ復号部324は、チャレンジデータ1cをマンチェスタ復号する。ステップS1610において、CPU311は、チャレンジデータ1cの選択ビットをPSK変調信号の復調データから取得する。すなわち、チャレンジデータ1cの選択ビットをPSK復調データから取得し、選択ビット以外のビットをASK変調信号の復調データから取得し、得られたデータを合成することで、チャレンジデータ1cを復元する。選択ビットは図30のステップS1602においてリーダライタ211が決定しているので、リーダライタ211には既知である。
ステップS1611においてマンチェスタ復号部324は、チェックサムをマンチェスタ復号する。
ステップS1612においてDES暗号化部317は、暗号化されているチェックサムをアクセス鍵で復号する。すなわち図33のステップS1706でICカード212により暗号化されたチェックサムが復号される。
ステップS1613においてCPU311は、チェックサムを含む式(1)に従って検証演算を行う。式(1)中のチェックサムの値として、ステップS1611で復号された値が用いられる。
盗聴者はデータの選択ビットがPSK変調されていることをしらない。従って、盗聴者が通信データ全てをASK復調すると、データに誤りが発生するが、チェックサムは暗号化されているので、チェックサムから復調によりデータに誤りが発生したか否かを盗聴者は検出できない。一方、リーダライタ211は、暗号化されたチェックサムを復号することができ、チェックサムを含む式(1)の検証演算を行える。盗聴者が存在する場合、データに誤りが発生しているので、式(1)の左辺の項で計算された値は、00hにならない。これに対して、正規のICカード212から直接送られてきたデータに基づき、式(1)の左辺の項で計算された値は、00hになる。そこで、計算の結果が00hになるか否かで、盗聴者の有無が検出される。
ステップS1614においてCPU311は、演算結果が00hであるかを判定する。演算結果が00hではない場合、ステップS1615においてCPU311は、盗聴が検出されたとして、相互認証を中止する処理を行う。
演算結果が00hである場合、すなわち、盗聴者が存在しない場合、ステップS1616においてCPU311は、チャレンジデータ1rとチャレンジデータ1cにより正当性検証の演算を行う。すなわち、ステップS1601において生成したチャレンジデータ1rと、ステップS1610で復号の結果得られたチャレンジデータ1cとが比較される。まず、DES暗号化部317はチャレンジデータ1c(乱数とチャレンジデータ1rとの結合により構成されている)をアクセス鍵で復号する。そして、CPU311は復号されたデータのうち、チャレンジデータ1rに相当する箇所のビット値が、本当にチャレンジデータ1rと一致するかチェックする。もし、両者が対応すれば、ICカード212は同じアクセス鍵を持つ適正なICカードであることが確認される。両者が対応しなければ、ICカード212は不正なICカードであることになる。
そこで、ステップS1617においてCPU311は、ステップS1616の演算結果に基づいて、ICカード212が適正であるかを判定する。適正でない場合、すなわち、生成されたチャレンジデータ1rと復号されたチャレンジデータ1cの該当箇所とが対応しない場合、通信相手としてのICカード212が適正でないとして、CPU311はステップS1615において相互認証を中止する。
ICカード212が適正である場合、すなわち、生成されたチャレンジデータ1rと復号されたチャレンジデータ1cの対応する部分が一致する場合、リーダライタ211によりICカード212が認証されたので、さらにICカード212がリーダライタ211を認証する処理が次のように行われる。
図34のステップS1710においてICカード212のCPU351は、チャレンジデータ2cを生成する。このチャレンジデータ2cには、ランダムな乱数値が用いられる。ステップS1711においてCPU351は、選択ビットをランダムに決定する。
ステップS1712においてDES暗号化部355は、ステップS1711において決定された選択ビットの位置を指定する指定情報をアクセス鍵で暗号化する。アクセス鍵はリーダライタ211とICカード212が共通に保持する秘密鍵である。
ステップS1713においてCPU351は、式(1)に従ってチャレンジデータ2cのチェックサムを計算する。
ステップS1714においてDES暗号化部355は、ステップS1713で計算されたチェックサムをアクセス鍵で暗号化する。
ステップS1715においてマンチェスタ符号化部357は、全てのデータをマンチェスタ符号化する。すなわち、チャレンジデータ2c、暗号化された指定情報、および暗号化されたチェックサムがマンチェスタ符号化され、これが認証メッセージ2Cとされる。
ステップS1716においてASK変調部359は、認証メッセージ2CをASK変調し、送信する。なお、このときASK変調率は例えば10%とされる。
リーダライタ211のASK復調部322は、図32のステップS1618において、ICカード212から送信されてきた認証メッセージ2Cを受信し、ASK復調する。ステップS1619において受信調停部323は、マンチェスタ符号化されている全てのデータをマンチェスタ復号部324に供給する。マンチェスタ復号部324は、マンチェスタ符号化されている全てのデータをマンチェスタ復号する。これにより、チャレンジデータ2c、暗号化されている指定情報、および暗号化されているチェックサムが得られる。
ステップS1620においてDES暗号化部317は、指定情報をアクセス鍵で復号する。すなわち、図34のステップS1712においてICカード212により暗号化された指定情報が復号される。
次に、ステップS1621においてCPU311は、チャレンジデータ2rを生成する。具体的には、乱数が生成され、この乱数とチャレンジデータ2cを組み合わせた値を、DES暗号化部317によりアクセス鍵で暗号化して得られた値がチャレンジデータ2rとされる。例えば、 Xビットの乱数とYビットのチャレンジデータ2cを結合して、X+Yビットのデータが生成され、それを暗号化したものがチャレンジデータ2rとされる。
ステップS1622においてCPU311は、式(1)に従って、チャレンジデータ2rのチェックサムを計算する。ステップS1623においてDES暗号化部317は、ステップS1622で計算されたチェックサムをアクセス鍵で暗号化する。
ステップS1624においてマンチェスタ符号化部319は、ステップS1620の処理で生成されたチャレンジデータ2rをマンチェスタ符号化する。ステップS1625でマンチェスタ符号化部319は暗号化されているチェックサムをマンチェスタ符号化する。
ステップS1626においてPSK変調部401は、認証レスポンス2Rのチャレンジデータ2rの選択ビットをPSK変調し、ASK変調部321はその他のデータをASK変調し、送信する。
ICカード212のASK復調部360は、図35のステップS1717において、リーダライタ211からの認証レスポンス2Rを受信し、ASK復調する。また、PSK変調部422も認証レスポンス2Rを受信し、PSK復調する。これにより、マンチェスタ符号化されているチャレンジデータ2rと、暗号化され、マンチェスタ符号化されているチェックサムが得られる。
ステップS1718において受信調停部361は、ステップS1717の処理で復調して得られた全部のデータをマンチェスタ復号部362に供給する。マンチェスタ復号部362は、チャレンジデータ2rをマンチェスタ復号する。
ステップS1719においてCPU351は、チャレンジデータ2rの選択ビットを、PSK変調信号の復調データから取得する。すなわち、CPU351は、ASK変調信号の復調データから得られた選択ビット以外のデータと、PSK変調信号の復調データから得られた選択ビットのデータを合成することで、チャレンジデータ2rを復元する。選択ビットは図34のステップS1711においてICカード212が決定しているので、ICカード212には既知である。
ステップS1720においてマンチェスタ復号部362は、チェックサムをマンチェスタ復号する。
ステップS1721においてDES暗号化部355は、暗号化されているチェックサムをアクセス鍵で復号する。すなわち図32のステップS1623でリーダライタ211により暗号化されたチェックサムが復号される。
ステップS1722においてCPU351は、チェックサムを含む式(1)に従って検証演算を行う。式(1)中のチェックサムの値として、ステップS1721で復号された値が用いられる。
盗聴者はデータの選択ビットがPSK変調されていることをしらない。従って、盗聴者が通信データ全てをASK復調すると、データに誤りが発生するが、チェックサムは暗号化されているので、チェックサムから復調によりデータに誤りが発生したか否かを盗聴者は検出できない。一方、ICカード212は、暗号化されたチェックサムを復号することができ、チェックサムを含む式(1)の検証演算を行える。盗聴者が存在する場合、データに誤りが発生しているので、式(1)の左辺の項で計算された値は、00hにならない。これに対して、正規のリーダライタ211から直接送られてきたデータに基づき、式(1)の左辺の項で計算された値は、00hになる。そこで、計算の結果が00hになるか否かで、盗聴者の有無が検出される。
ステップS1723においてCPU351は、演算結果が00hであるかを判定する。演算結果が00hではない場合、ステップS1724においてCPU351は、盗聴が検出されたとして、相互認証を中止する処理を行う。
演算結果が00hである場合、すなわち、盗聴者が存在しない場合、ステップS1725においてCPU351は、チャレンジデータ2cとチャレンジデータ2rにより正当性検証の演算を行う。すなわち、ステップS1710において生成したチャレンジデータ2cと、ステップS1719で復号の結果得られたチャレンジデータ2rとが比較される。まず、DES暗号化部355はチャレンジデータ2r(乱数とチャレンジデータ2cとの結合により構成されている)をアクセス鍵で復号する。そしてCPU351は、復号されたデータのうち、チャレンジデータ2cに相当する箇所のビット値が、本当にチャレンジデータ2cと一致するどうかチェックする。もし、両者が対応すれば、リーダライタ211は同じアクセス鍵をもつ適正なリーダライタであることが確認される。両者が対応しなければ、リーダライタ211は不正なリーダライタであることになる。
そこで、ステップS1726においてCPU351は、ステップS1725の演算結果に基づいて、リーダライタ211が適正であるかを判定する。適正でない場合、すなわち、生成されたチャレンジデータ2cと復号されたチャレンジデータ2rとが対応しない場合、通信相手としてのリーダライタ211が適正でないとして、CPU351はステップS1724において相互認証を中止する。
生成されたチャレンジデータ2cと復号されたチャレンジデータ2rの対応する部分が一致する場合、ステップS1727において、CPU351は完了レスポンスを送信する。この完了レスポンスは、マンチェスタ符号化部357によりマンチェスタ符号化され、ASK変調部359によりASK変調され、送信される。
図32のステップS1627においてリーダライタ211は、ICカード212からの完了レスポンスを受信する。すなわち、完了レスポンスはASK復調部322によりASK復調され、マンチェスタ復号部324によりマンチェスタ復号され、CPU311により取得される。これにより、リーダライタ211は、自身がICカード212により認証されたことを知ることができる。
以上のようにしてリーダライタ211とICカード212との間で相互認証が行われる。
[動作のまとめ]
以上のICカードシステム201の処理をまとめると図36に示されるようになる。リーダライタ211の相互認証アルゴリズムA11がICカード212に認証メッセージ1Rを送信する。この認証メッセージ1Rには、チャレンジデータ1r、暗号化された指定情報、および暗号化されたチェックサムが、マンチェスタ符号化された状態で含まれている。
ICカード212の相互認証アルゴリズムa11は、受信データをマンチェスタ復号してチャレンジデータ1r、暗号化された指定情報、および暗号化されたチェックサムを得る。また相互認証アルゴリズムa11は、アクセス鍵で、暗号化されている指定情報とチェックサムを復号する。相互認証アルゴリズムa11は、復号されたチャレンジデータ1rと新たな乱数値との結合をアクセス鍵で暗号化し、チャレンジデータ1cとする。
チャレンジデータ1cのチェックサムが計算され、アクセス鍵で暗号化され、マンチェスタ符号化される。
暗号化され、マンチェスタ符号化されたチェックサム、マンチェスタ符号化されたチャレンジデータ1cが、認証レスポンス1Cとしてリーダライタ211に送信される。このとき、チャレンジデータ1cの選択ビットはPSK変調され、その他のビットはASK変調される。
リーダライタ211の正当性検証アルゴリズムB11は、認証レスポンス1Cに含まれるチェックサムとチャレンジデータ1cをマンチェスタ復号する。暗号化されているチェックサムとチャレンジデータ1cはさらにアクセス鍵で復号される。
正当性検証アルゴリズムB11は、チェックサムを式(1)に基づいて検証演算し、演算結果に基づいて盗聴者検出処理を実行する。正当性検証アルゴリズムB11は、さらにチャレンジデータ1rとチャレンジデータ1cの検証演算を実行し、演算結果に基づいてICカード212を認証する。
同様に、ICカード212がリーダライタ211を認証する処理が行われる。すなわち、ICカード212の相互認証アルゴリズムa12がリーダライタ211に認証メッセージ2Cを送信する。この認証メッセージ2Cには、チャレンジデータ2c、チャレンジデータ2cの暗号化されたチェックサム、および暗号化された指定情報が、マンチェスタ符号化された状態で含まれている。
リーダライタ211の相互認証アルゴリズムA12は、認証メッセージ2Cをマンチェスタ復号し、チャレンジデータ2c、チャレンジデータ2cの暗号化されたチェックサム、および暗号化された指定情報を得る。チャレンジデータ2cと乱数の結合が暗号化され、チャレンジデータ2rとされる。
チャレンジデータ2rのチェックサムが計算され、暗号化され、マンチェスタ符号化される。チャレンジデータ2rがマンチェスタ符号化される。これらのデータが、認証レスポンス2RとしてICカード212に送信される。
ICカード212の正当性検証アルゴリズムb11は、認証レスポンス2Rのチェックサムとチャレンジデータ2rをマンチェスタ復号する。暗号化されているチャレンジデータ2rとチェックサムはさらに復号される。
正当性検証アルゴリズムb11は、チェックサムを式(1)に基づいて検証演算し、演算結果に基づいて盗聴者検出処理を実行する。正当性検証アルゴリズムb11は、さらにチャレンジデータ2cとチャレンジデータ2rの検証演算を実行し、演算結果に基づいてリーダライタ211を認証する。
認証が成功した場合、ICカード212の正当性検証アルゴリズムb11は、リーダライタ211に完了レスポンスを返す。
<5.第5の実施の形態>
[動作説明]
第4の実施の形態においては、選択ビットのみの変調方式を変更するようにしたが、チャレンジデータ全部を選択された変調方式で変調することができる。図37乃至図42は、この場合の実施の形態を表している。この処理は、図29のICカードシステム201で行われる。
図37乃至図39は、リーダライタ211の処理を表し、図40乃至図42は、それに対応するICカード212の処理を表す。
図37のステップS1801乃至図38のステップS1816のリーダライタ211の処理と、それに対応する図40のステップS1901乃至ステップS1908のICカード212の処理は、リーダライタ211がICカード212を認証する処理である。図41のステップS1909乃至図42のステップS1925のICカード212の処理と、それに対応する図39のステップS1817乃至ステップS1826のリーダライタ211の処理は、ICカード212がリーダライタ211を認証する処理である。
図37のステップS1801においてリーダライタ211のCPU311は、チャレンジデータ1rを生成する。このチャレンジデータ1rには、乱数値が用いられる。ステップS1802においてCPU311は、変調方式をランダムに決定する。すなわち、この実施の形態の場合、データは基本的にASK変調されて送信されるのであるが、盗聴を検出するために、チャレンジデータはPSK変調されて送信される。ここでその変調方式が決定される。勿論、変調方式は、予め用意されているものの中から選択される。
ステップS1803においてDES暗号化部317は、ステップS1802において決定された変調方式を指定する指定情報をアクセス鍵で暗号化する。アクセス鍵はリーダライタ211とICカード212が共通に保持する秘密鍵である。
ステップS1804においてCPU311は、式(1)に従ってチャレンジデータ1rのチェックサムを計算する。
ステップS1805においてDES暗号化部355は、ステップS1804で計算されたチェックサムをアクセス鍵で暗号化する。
ステップS1806においてマンチェスタ符号化部319は、全てのデータをマンチェスタ符号化する。すなわち、チャレンジデータ1r、暗号化された指定情報、および暗号化されたチェックサムがマンチェスタ符号化される。そしてそれが認証メッセージ1Rとされる。
ステップS1807においてASK変調部321は、認証メッセージ1RをASK変調し、送信する。この認証メッセージ1Rには、ステップS1801で生成されたチャレンジデータ1r、ステップS1803で暗号化された指定情報、およびステップS1805で暗号化されたチェックサムが含まれている。なお、このときASK変調率は例えば10%とされる。
ICカード212のASK復調部360は、図40のステップS1901において、リーダライタ211から送信されてきた認証メッセージ1Rを受信し、ASK復調する。
ステップS1902において受信調停部361は、復調された全てのデータをマンチェスタ復号部362に供給する。マンチェスタ復号部362は、マンチェスタ符号化されている全てのデータをマンチェスタ復号する。これにより、チャレンジデータ1r、暗号化された指定情報、および暗号化されたチェックサムが得られる。
ステップS1903においてDES暗号化部355は、指定情報をアクセス鍵で復号する。すなわち、図37のステップS1803においてリーダライタ211により暗号化された指定情報が復号される。
次に、ステップS1904においてCPU351は、乱数を生成し、この乱数とステップS1902において復号して得たチャレンジデータ1rを組み合わせた値を、DES暗号化部355に供給し、アクセス鍵で暗号化させることでチャレンジデータ1cを生成する。具体的には、例えば、Xビットの乱数とYビットのチャレンジデータ1rが結合され、X+Yビットのデータが作成され、それを暗号化したものがチャレンジデータ1cとされる。
ステップS1905においてCPU351は、式(1)に従って、チェックサムを計算する。ステップS1906においてDES暗号化部355は、ステップS1905で計算されたチェックサムをアクセス鍵で暗号化する。
ステップS1907においてマンチェスタ符号化部357は、全データをマンチェスタ符号化する。すなわち、ステップS1904の処理で生成されたチャレンジデータ1cとチェックサムがマンチェスタ符号化される。このチェックサムはステップS1706で暗号化されている。
ステップS1908において変調部は、認証レスポンス1Cのチャレンジデータ1cを、指定された変調方式で変調し、その他のデータをASK変調し、送信する。いまの場合、ステップS1903で復号された指定情報により、PSK変調方式が指定されている。従って、PSK変調部421がチャレンジデータ1cをPSK変調し、ASK変調部359がチェックサムをASK変調する。
リーダライタ211のASK復調部322は、図38のステップS1808において、ICカード212からの認証レスポンス1Cを受信し、ASK復調する。また、PSK復調部402も認証レスポンス1Cを受信し、PSK復調する。これにより、マンチェスタ符号化されているチャレンジデータ1cと、暗号化され、マンチェスタ符号化されているチェックサムが得られる。
ステップS1809において、受信調停部323は、チャレンジデータ1cをマンチェスタ復号部324に供給する。マンチェスタ復号部324は、チャレンジデータ1cをマンチェスタ復号する。ステップS1810において、マンチェスタ復号部324は、チェックサムをマンチェスタ復号する。チャレンジデータ1cはPSK復調信号から得られ、チェックサムはASK復調信号から得られる。変調方式は図37のステップS1802においてリーダライタ211が決定しているので、リーダライタ211には既知である。
ステップS1811においてDES暗号化部317は、暗号化されているチェックサムをアクセス鍵で復号する。すなわち図40のステップS1906でICカード212により暗号化されたチェックサムが復号される。
ステップS1812においてCPU311は、チェックサムを含む式(1)に従って検証演算を行う。式(1)中のチェックサムの値として、ステップS1810で復号された値が用いられる。
盗聴者はチャレンジデータがPSK変調されていることをしらない。従って、盗聴者が通信データ全てをASK復調すると、データに誤りが発生するが、チェックサムは暗号化されているので、チェックサムから復調によりデータに誤りが発生したか否かを盗聴者は検出できない。一方、リーダライタ211は、暗号化されたチェックサムを復号することができ、チェックサムを含む式(1)の検証演算を行える。盗聴者が存在する場合、データに誤りが発生しているので、式(1)の左辺の項で計算された値は、00hにならない。これに対して、正規のICカード212から直接送られてきたチャレンジデータに基づき、式(1)の左辺の項で計算された値は、00hになる。そこで、計算の結果が00hになるか否かで、盗聴者の有無が検出される。
ステップS1813においてCPU311は、演算結果が00hであるかを判定する。演算結果が00hではない場合、ステップS1814においてCPU311は、盗聴が検出されたとして、相互認証を中止する処理を行う。
演算結果が00hである場合、すなわち、盗聴者が存在しない場合、ステップS1815においてCPU311は、チャレンジデータ1rとチャレンジデータ1cにより正当性検証の演算を行う。すなわち、ステップS1801において生成したチャレンジデータ1rと、ステップS1809で復号の結果得られたチャレンジデータ1cとが比較される。まず、DES暗号化部317はチャレンジデータ1c(乱数とチャレンジデータ1rとの結合により構成されている)をアクセス鍵で復号する。そして、CPU311は復号されたデータのうち、チャレンジデータ1rに相当する箇所のビット値が、本当にチャレンジデータ1rと一致するかチェックする。もし、両者が対応すれば、ICカード212は同じアクセス鍵を持つ適正なICカードであることが確認される。両者が対応しなければ、ICカード212は不正なICカードであることになる。
そこで、ステップS1816においてCPU311は、ステップS1815の演算結果に基づいて、ICカード212が適正であるかを判定する。適正でない場合、すなわち、生成されたチャレンジデータ1rと復号されたチャレンジデータ1cの該当箇所とが対応しない場合、通信相手としてのICカード212が適正でないとして、CPU311はステップS1814において相互認証を中止する。
ICカード212が適正である場合、すなわち、生成されたチャレンジデータ1rと復号されたチャレンジデータ1cの対応する部分が一致する場合、リーダライタ211によりICカード212が認証されたので、さらにICカード212がリーダライタ211を認証する処理が次のように行われる。
図41のステップS1909においてICカード212のCPU351は、チャレンジデータ2cを生成する。このチャレンジデータ2cには、ランダムな乱数値が用いられる。ステップS1910においてCPU351は、用意されているものの中から変調方式をランダムに決定する。
ステップS1911においてDES暗号化部355は、ステップS1910において決定された変調方式を指定する指定情報をアクセス鍵で暗号化する。アクセス鍵はリーダライタ211とICカード212が共通に保持する秘密鍵である。
ステップS1912においてCPU351は、式(1)に従ってチャレンジデータ2cのチェックサムを計算する。
ステップS1913においてDES暗号化部355は、ステップS1912で計算されたチェックサムをアクセス鍵で暗号化する。
ステップS1914においてマンチェスタ符号化部357は、全てのデータをマンチェスタ符号化する。すなわち、チャレンジデータ2c、暗号化された指定情報、および暗号化されたチェックサムがマンチェスタ符号化され、これが認証メッセージ2Cとされる。
ステップS1915においてASK変調部359は、認証メッセージ2CをASK変調し、送信する。なお、このときASK変調率は例えば10%とされる。
リーダライタ211のASK復調部322は、図39のステップS1817において、ICカード212から送信されてきた認証メッセージ2Cを受信し、ASK復調する。ステップS1818において受信調停部323は、マンチェスタ符号化されている全てのデータをマンチェスタ復号部324に供給する。マンチェスタ復号部324は、マンチェスタ符号化されている全てのデータをマンチェスタ復号する。これにより、チャレンジデータ2c、暗号化されている指定情報、および暗号化されているチェックサムが得られる。
ステップS1819においてDES暗号化部317は、指定情報をアクセス鍵で復号する。すなわち、図41のステップS1911においてICカード212により暗号化された指定情報が復号される。
次に、ステップS1820においてCPU311は、チャレンジデータ2rを生成する。具体的には、乱数が生成され、この乱数とチャレンジデータ2cを組み合わせた値を、DES暗号化部317によりアクセス鍵で暗号化して得られた値がチャレンジデータ2rとされる。例えば、 Xビットの乱数とYビットのチャレンジデータ2cを結合して、X+Yビットのデータが生成され、それを暗号化したものがチャレンジデータ2rとされる。
ステップS1821においてCPU311は、式(1)に従って、チャレンジデータ2rのチェックサムを計算する。ステップS1822においてDES暗号化部317は、ステップS1821で計算されたチェックサムをアクセス鍵で暗号化する。
ステップS1823においてマンチェスタ符号化部319は、ステップS1820の処理で生成されたチャレンジデータ2rをマンチェスタ符号化する。ステップS1824でマンチェスタ符号化部319は暗号化されているチェックサムをマンチェスタ符号化する。
ステップS1825においてPSK変調部401は、認証レスポンス2Rのチャレンジデータ2rを指定された変調方式で、すなわちPSK変調方式で変調し、ASK変調部321はその他のデータであるチェックサムをASK変調し、送信する。
ICカード212のASK復調部360は、図42のステップS1916において、リーダライタ211からの認証レスポンス2Rを受信し、ASK復調する。また、PSK変調部422も認証レスポンス2Rを受信し、PSK復調する。これにより、マンチェスタ符号化されているチャレンジデータ2rと、暗号化され、マンチェスタ符号化されているチェックサムが得られる。
ステップS1917において受信調停部361は、ステップS1916の処理で復調して得られた全部のデータをマンチェスタ復号部362に供給する。マンチェスタ復号部362は、チャレンジデータ2rをマンチェスタ復号する。
ステップS1918においてマンチェスタ復号部362は、チェックサムをマンチェスタ復号する。チャレンジデータ2rはPSK復調信号から得られ、チェックサムはASK復調信号から得られる。変調方式は図41のステップS1910においてICカード212が決定しているので、ICカード212には既知である。
ステップS1919においてDES暗号化部355は、暗号化されているチェックサムをアクセス鍵で復号する。すなわち図39のステップS1822でリーダライタ211により暗号化されたチェックサムが復号される。
ステップS1920においてCPU351は、チェックサムを含む式(1)に従って検証演算を行う。式(1)中のチェックサムの値として、ステップS1919で復号された値が用いられる。
盗聴者はチャレンジデータがPSK変調されていることをしらない。従って、盗聴者が通信データ全てをASK復調すると、データに誤りが発生するが、チェックサムは暗号化されているので、チェックサムから復調によりデータに誤りが発生したか否かを盗聴者は検出できない。一方、ICカード212は、暗号化されたチェックサムを復号することができ、チェックサムを含む式(1)の検証演算を行える。盗聴者が存在する場合、データに誤りが発生しているので、式(1)の左辺の項で計算された値は、00hにならない。これに対して、正規のリーダライタ211から直接送られてきたデータに基づき、式(1)の左辺の項で計算された値は、00hになる。そこで、計算の結果が00hになるか否かで、盗聴者の有無が検出される。
ステップS1921においてCPU351は、演算結果が00hであるかを判定する。演算結果が00hではない場合、ステップS1922においてCPU351は、盗聴が検出されたとして、相互認証を中止する処理を行う。
演算結果が00hである場合、すなわち、盗聴者が存在しない場合、ステップS1923においてCPU351は、チャレンジデータ2cとチャレンジデータ2rにより正当性検証の演算を行う。すなわち、ステップS1909において生成したチャレンジデータ2cと、ステップS1917で復号の結果得られたチャレンジデータ2rとが比較される。まず、DES暗号化部355はチャレンジデータ2r(乱数とチャレンジデータ2cとの結合により構成されている)をアクセス鍵で復号する。そしてCPU351は、復号されたデータのうち、チャレンジデータ2cに相当する箇所のビット値が、本当にチャレンジデータ2cと一致するどうかチェックする。もし、両者が対応すれば、リーダライタ211は同じアクセス鍵をもつ適正なリーダライタであることが確認される。両者が対応しなければ、リーダライタ211は不正なリーダライタであることになる。
そこで、ステップS1924においてCPU351は、ステップS1923の演算結果に基づいて、リーダライタ211が適正であるかを判定する。適正でない場合、すなわち、生成されたチャレンジデータ2cと復号されたチャレンジデータ2rとが対応しない場合、通信相手としてのリーダライタ211が適正でないとして、CPU351はステップS1922において相互認証を中止する。
生成されたチャレンジデータ2cと復号されたチャレンジデータ2rの対応する部分が一致する場合、ステップS1925において、CPU351は完了レスポンスを送信する。この完了レスポンスは、マンチェスタ符号化部357によりマンチェスタ符号化され、ASK変調部359によりASK変調され、送信される。
図39のステップS1826においてリーダライタ211は、ICカード212からの完了レスポンスを受信する。すなわち、完了レスポンスはASK復調部322によりASK復調され、マンチェスタ復号部324によりマンチェスタ復号され、CPU311により取得される。これにより、リーダライタ211は、自身がICカード212により認証されたことを知ることができる。
以上のようにしてリーダライタ211とICカード212との間で相互認証が行われる。
[動作のまとめ]
以上のICカードシステム201の処理をまとめると図43に示されるようになる。リーダライタ211の相互認証アルゴリズムA11がICカード212に認証メッセージ1Rを送信する。この認証メッセージ1Rには、チャレンジデータ1r、暗号化された指定情報、および暗号化されたチェックサムが、マンチェスタ符号化された状態で含まれている。
ICカード212の相互認証アルゴリズムa11は、受信データをマンチェスタ復号してチャレンジデータ1r、暗号化された指定情報、および暗号化されたチェックサムを得る。また相互認証アルゴリズムa11は、アクセス鍵で、暗号化されている指定情報とチェックサムを復号する。相互認証アルゴリズムa11は、復号されたチャレンジデータ1rと新たな乱数値との結合をアクセス鍵で暗号化し、チャレンジデータ1cとする。
チャレンジデータ1cのチェックサムが計算され、アクセス鍵で暗号化され、マンチェスタ符号化される。
暗号化され、マンチェスタ符号化されたチェックサム、マンチェスタ符号化されたチャレンジデータ1cが、認証レスポンス1Cとしてリーダライタ211に送信される。このとき、チャレンジデータ1cはPSK変調され、チェックサムはASK変調される。
リーダライタ211の正当性検証アルゴリズムB11は、ASK復調またはPSK復調された認証レスポンス1Cに含まれるチェックサムとチャレンジデータ1cをマンチェスタ復号する。暗号化されているチェックサムとチャレンジデータ1cはさらにアクセス鍵で復号される。
正当性検証アルゴリズムB11は、チェックサムを式(1)に基づいて検証演算し、演算結果に基づいて盗聴者検出処理を実行する。正当性検証アルゴリズムB11は、さらにチャレンジデータ1rとチャレンジデータ1cの検証演算を実行し、演算結果に基づいてICカード212を認証する。
同様に、ICカード212がリーダライタ211を認証する処理が行われる。すなわち、ICカード212の相互認証アルゴリズムa12がリーダライタ211に認証メッセージ2Cを送信する。この認証メッセージ2Cには、チャレンジデータ2c、チャレンジデータ2cの暗号化されたチェックサム、および暗号化された指定情報が、マンチェスタ符号化された状態で含まれている。
リーダライタ211の相互認証アルゴリズムA12は、認証メッセージ2Cをマンチェスタ復号し、チャレンジデータ2c、チャレンジデータ2cの暗号化されたチェックサム、および暗号化された指定情報を得る。チャレンジデータ2cと乱数の結合が暗号化され、チャレンジデータ2rとされる。
チャレンジデータ2rのチェックサムが計算され、暗号化され、マンチェスタ符号化される。チャレンジデータ2rがマンチェスタ符号化される。これらのデータが、認証レスポンス2RとしてICカード212に送信される。このとき、チャレンジデータ2rはPSK変調され、チェックサムはASK変調される。
ICカード212の正当性検証アルゴリズムb11は、認証レスポンス2Rのチェックサムとチャレンジデータ2rをマンチェスタ復号する。暗号化されているチャレンジデータ2rとチェックサムはさらに復号される。
正当性検証アルゴリズムb11は、チェックサムを式(1)に基づいて検証演算し、演算結果に基づいて盗聴者検出処理を実行する。正当性検証アルゴリズムb11は、さらにチャレンジデータ2cとチャレンジデータ2rの検証演算を実行し、演算結果に基づいてリーダライタ211を認証する。
認証が成功した場合、ICカード212の正当性検証アルゴリズムb11は、リーダライタ211に完了レスポンスを返す。
<6.第6の実施の形態>
[動作説明]
以上においては、盗聴者の検出と認証処理を同時に行うようにしたが、別々に行うこともできる。図44乃至図53はこの場合の実施の形態を表している。この処理は、図6のICカードシステム201で行われる。
図44乃至図48は、リーダライタ211の処理を表し、図49乃至図53は、それに対応するICカード212の処理を表す。
図44のステップS2001乃至ステップS2008のリーダライタ211の処理と、それに対応する図49のステップS2101乃至ステップS2105のICカード212の処理は、リーダライタ211がICカード212を認証する処理である。図49のステップS2106乃至図50のステップS2114のICカード212の処理と、それに対応する図45のステップS2009乃至ステップS2014のリーダライタ211の処理は、ICカード212がリーダライタ211を認証する処理である。
図46のステップS2015乃至図47のステップS2029のリーダライタ211の処理と、それに対応する図51のステップS2115乃至ステップS2124のICカード212の処理は、リーダライタ211がICカード212との間の盗聴者を検出する処理である。図52のステップS2125乃至図53のステップS2140のICカード212の処理と、それに対応する図48のステップS2030乃至ステップS2040のリーダライタ211の処理は、ICカード212がリーダライタ211との間の盗聴者を検出する処理である。
図44のステップS2001においてリーダライタ211のCPU311は、チャレンジデータ1rを生成する。このチャレンジデータ1rには、乱数値が用いられる。
ステップS2002においてマンチェスタ符号化部319は、チャレンジデータ1rをマンチェスタ符号化する。そしてそれが認証メッセージ1Rとされる。
ステップS2003においてASK変調部321は、認証メッセージ1RをASK変調し、送信する。この認証メッセージ1Rには、ステップS1001で生成されたチャレンジデータ1rが含まれている。なお、このときASK変調率は例えば10%とされる。
ICカード212のASK復調部360は、図49のステップS2101において、リーダライタ211から送信されてきた認証メッセージ1Rを受信し、ASK復調する。
ステップS2102においてマンチェスタ復号部362は、マンチェスタ符号化されているチャレンジデータ1rをマンチェスタ復号する。これにより、チャレンジデータ1rが得られる。
ステップS2103においてCPU351は、乱数を生成し、この乱数とステップS2102において復号して得たチャレンジデータ1rを組み合わせた値を、DES暗号化部355に供給し、アクセス鍵で暗号化させることでチャレンジデータ1cを生成する。具体的には、例えば、Xビットの乱数とYビットのチャレンジデータ1rが結合され、X+Yビットのデータが作成され、それを暗号化したものがチャレンジデータ1cとされる。
ステップS2104においてマンチェスタ符号化部357は、ステップS2103の処理で生成されたチャレンジデータ1cをマンチェスタ符号化する。
ステップS2105においてASK変調部359は、認証レスポンス1CをASK変調し、送信する。認証レスポンス1Cには、マンチェスタ符号化されたチャレンジデータ1cが含まれている。
リーダライタ211のASK復調部322は、図44のステップS2004において、ICカード212からの認証レスポンス1Cを受信し、ASK復調する。これにより、チャレンジデータ1cが得られる。
ステップS2005において、マンチェスタ復号部324は、チャレンジデータ1cをマンチェスタ復号する。
ステップS2006においてCPU311は、チャレンジデータ1rとチャレンジデータ1cにより正当性検証の演算を行う。すなわち、ステップS2001において生成したチャレンジデータ1rと、ステップS2005で復号の結果得られたチャレンジデータ1cとが比較される。まず、DES暗号化部317はチャレンジデータ1c(乱数とチャレンジデータ1rとの結合により構成されている)をアクセス鍵で復号する。そして、CPU311は復号されたデータのうち、チャレンジデータ1rに相当する箇所のビット値が、本当にチャレンジデータ1rと一致するかチェックする。もし、両者が対応すれば、ICカード212は同じアクセス鍵を持つ適正なICカードであることが確認される。両者が対応しなければ、ICカード212は不正なICカードであることになる。
そこで、ステップS2007においてCPU311は、ステップS2006の演算結果に基づいて、ICカード212が適正であるかを判定する。適正でない場合、すなわち、生成されたチャレンジデータ1rと復号されたチャレンジデータ1cの該当箇所とが対応しない場合、通信相手としてのICカード212が適正でないとして、CPU311はステップS2008において相互認証を中止する。
ICカード212が適正である場合、すなわち、生成されたチャレンジデータ1rと復号されたチャレンジデータ1cの対応する部分が一致する場合、リーダライタ211によりICカード212が認証されたので、さらにICカード212がリーダライタ211を認証する処理が次のように行われる。
図49のステップS2106においてICカード212のCPU351は、チャレンジデータ2cを生成する。このチャレンジデータ2cには、ランダムな乱数値が用いられる。
ステップS2107においてマンチェスタ符号化部357は、チャレンジデータ2cをマンチェスタ符号化する。これが認証メッセージ2Cとされる。
ステップS2108においてASK変調部359は、認証メッセージ2CをASK変調し、送信する。なお、このときASK変調率は例えば10%とされる。
リーダライタ211のASK復調部322は、図45のステップS2009において、ICカード212から送信されてきた認証メッセージ2Cを受信し、ASK復調する。ステップS2010においてマンチェスタ復号部324は、マンチェスタ符号化されているチャレンジデータ2cをマンチェスタ復号する。これにより、チャレンジデータ2cが得られる。
次に、ステップS2011においてCPU311は、チャレンジデータ2rを生成する。具体的には、乱数が生成され、この乱数とチャレンジデータ2cを組み合わせた値を、DES暗号化部317によりアクセス鍵で暗号化して得られた値がチャレンジデータ2rとされる。例えば、 Xビットの乱数とYビットのチャレンジデータ2cを結合して、X+Yビットのデータが生成され、それを暗号化したものがチャレンジデータ2rとされる。
ステップS2012においてマンチェスタ符号化部319は、ステップS2011の処理で生成されたチャレンジデータ2rをマンチェスタ符号化する。
ステップS2013においてASK変調部321は、認証レスポンス2RをASK変調し、送信する。認証レスポンス2Rには、マンチェスタ符号化されたチャレンジデータ2rが含まれている。
ICカード212のASK復調部360は、図50のステップS2019において、リーダライタ211からの認証レスポンス2Rを受信し、ASK復調する。これにより、マンチェスタ符号化されているチャレンジデータ2rが得られる。
ステップS2110においてマンチェスタ復号部362は、このチャレンジデータ2rをマンチェスタ復号する。
ステップS2111においてCPU351は、チャレンジデータ2cとチャレンジデータ2rにより正当性検証の演算を行う。すなわち、ステップS2106において生成したチャレンジデータ2cと、ステップS2110で復号の結果得られたチャレンジデータ2rとが比較される。まず、DES暗号化部355はチャレンジデータ2r(乱数とチャレンジデータ2cとの結合により構成されている)をアクセス鍵で復号する。そしてCPU351は、復号されたデータのうち、チャレンジデータ2cに相当する箇所のビット値が、本当にチャレンジデータ2cと一致するどうかチェックする。もし、両者が対応すれば、リーダライタ211は同じアクセス鍵をもつ適正なリーダライタであることが確認される。両者が対応しなければ、リーダライタ211は不正なリーダライタであることになる。
そこで、ステップS2112においてCPU351は、ステップS2111の演算結果に基づいて、リーダライタ211が適正であるかを判定する。適正でない場合、すなわち、生成されたチャレンジデータ2cと復号されたチャレンジデータ2rとが対応しない場合、通信相手としてのリーダライタ211が適正でないとして、CPU351はステップS2113において相互認証を中止する。
生成されたチャレンジデータ2cと復号されたチャレンジデータ2rの対応する部分が一致する場合、ステップS2114において、CPU351は完了レスポンスを送信する。この完了レスポンスは、マンチェスタ符号化部357によりマンチェスタ符号化され、ASK変調部359によりASK変調され、送信される。
図45のステップS2014においてリーダライタ211は、ICカード212からの完了レスポンスを受信する。すなわち、完了レスポンスはASK復調部322によりASK復調され、マンチェスタ復号部324によりマンチェスタ復号され、CPU311により取得される。これにより、リーダライタ211は、自身がICカード212により認証されたことを知ることができる。
以上のようにしてリーダライタ211とICカード212との間で相互認証が行われると、さらに盗聴者検出処理が行われる。
図46のステップS2015においてリーダライタ211のCPU311は、チャレンジデータ3rを生成する。このチャレンジデータ3rには、乱数値が用いられる。ステップS2016においてCPU311は、選択ビットをランダムに決定する。すなわち、この実施の形態の場合、データは基本的にマンチェスタ符号として送信されるのであるが、盗聴を検出するために、データ中の選択された所定のビットはRZ符号とされる。ここでその選択ビットが決定される。
ステップS2017においてDES暗号化部317は、ステップS2016において決定された選択ビットの位置を指定する指定情報をアクセス鍵で暗号化する。アクセス鍵はリーダライタ211とICカード212が共通に保持する秘密鍵である。
ステップS2018においてCPU311は、式(1)に従ってチャレンジデータ3rのチェックサムを計算する。
ステップS2019においてDES暗号化部355は、ステップS2018で計算されたチェックサムをアクセス鍵で暗号化する。
ステップS2020においてマンチェスタ符号化部319は、全データをマンチェスタ符号化する。すなわち、チャレンジデータ3r、暗号化された指定情報、および暗号化されたチェックサムがマンチェスタ符号化され、それが盗聴者検出メッセージ3Rとされる。
ステップS2021においてASK変調部321は、盗聴者検出メッセージ3RをASK変調し、送信する。この盗聴者検出メッセージ3Rには、チャレンジデータ3r、暗号化された指定情報、および暗号化されたチェックサムが、マンチェスタ符号化された状態で含まれている。なお、このときASK変調率は例えば10%とされる。
ICカード212のASK復調部360は、図51のステップS2115において、リーダライタ211から送信されてきた盗聴者検出メッセージ3Rを受信し、ASK復調する。
ステップS2116においてマンチェスタ復号部362は、マンチェスタ符号化されている全てのデータをマンチェスタ復号する。
ステップS2117においてDES暗号化部355は、指定情報をアクセス鍵で復号する。すなわち、図46のステップS2017においてリーダライタ211により暗号化された指定情報が復号される。
次に、ステップS2118においてCPU351は、乱数を生成し、この乱数とステップS2116において復号して得たチャレンジデータ3rを組み合わせた値を、DES暗号化部355に供給し、アクセス鍵で暗号化させることでチャレンジデータ3cを生成する。具体的には、例えば、Xビットの乱数とYビットのチャレンジデータ3rが結合され、X+Yビットのデータが作成され、それを暗号化したものがチャレンジデータ3cとされる。
ステップS2119においてCPU351は、式(1)に従ってチャレンジデータ3cのチェックサムを計算する。
ステップS2120においてDES暗号化部355は、ステップS2119で計算されたチェックサムをアクセス鍵で暗号化する。
ステップS2121においてマンチェスタ符号化部357は、ステップS2118の処理で生成されたチャレンジデータ3cのうち、選択ビット以外のビットをマンチェスタ符号化する。ステップS2122においてRZ符号化部358は、チャレンジデータ3cの選択ビットをRZ符号化する。すなわち、ステップS2117で復号された指定情報により指定されている選択ビットがRZ符号化され、それ以外のビットがマンチェスタ符号化される。
ステップS2123においてマンチェスタ符号化部357は、チェックサムをマンチェスタ符号化する。このチェックサムはステップS2120で暗号化されている。
ステップS2124においてASK変調部359は、認証レスポンス3CをASK変調し、送信する。認証レスポンス3Cには、指定情報で指定された選択ビットのみがRZ符号とされ、その他のビットがマンチェスタ符号とされたチャレンジデータ3cと、マンチェスタ符号化されたチェックサムとが含まれている。
リーダライタ211のASK復調部322は、図47のステップS2022において、ICカード212からの認証レスポンス3Cを受信し、ASK復調する。これにより、指定情報で指定された選択ビットのみがRZ符号とされ、その他のビットがマンチェスタ符号化されているチャレンジデータ3cと、暗号化され、マンチェスタ符号化されているチェックサムが得られる。
ステップS2023において、マンチェスタ復号部324は、チャレンジデータ3cの選択ビット以外のビットをマンチェスタ復号する。選択ビットは図46のステップS2016においてリーダライタ211が決定しているので、リーダライタ211には既知である。
また、ステップS2024において、RZ復号部325は、チャレンジデータ3cの選択ビットをRZ復号する。
CPU311は、ステップS2023のマンチェスタ復号の結果得られたデータと、ステップS2024のRZ復号の結果得られたデータを合成することで、チャレンジデータ3cを復元する。
ステップS2025においてマンチェスタ復号部324は、チェックサムをマンチェスタ復号する。
ステップS2026においてDES暗号化部317は、暗号化されているチェックサムをアクセス鍵で復号する。すなわち図51のステップS2120でICカード212により暗号化されたチェックサムが復号される。
ステップS2027においてCPU311は、チェックサムを含む式(1)に従って検証演算を行う。式(1)中のチェックサムの値として、ステップS2026で復号された値が用いられる。
盗聴者はデータ中の一部のビットがマンチェスタ符号ではなく、RZ符号であることをしらない。従って、盗聴者が通信データ全てをマンチェスタ復号すると、データに誤りが発生するが、チェックサムは暗号化されているので、チェックサムから復号によりデータに誤りが発生したか否かを盗聴者は検出できない。一方、リーダライタ211は、暗号化されたチェックサムを復号することができ、チェックサムを含む式(1)の検証演算を行える。盗聴者が存在する場合、データに誤りが発生しているので、式(1)の左辺の項で計算された値は、00hにならない。これに対して、正規のICカード212から直接送られてきたデータに基づき、式(1)の左辺の項で計算された値は、00hになる。そこで、計算の結果が00hになるか否かで、盗聴者の有無が検出される。
ステップS2028においてCPU311は、演算結果が00hであるかを判定する。演算結果が00hではない場合、ステップS2029においてCPU311は、盗聴が検出されたとして、相互認証を中止する処理を行う。
演算結果が00hである場合、すなわち、盗聴者が存在しない場合、今度はICカード 212が盗聴者検出処理を行う。
すなわち、図52のステップS2125においてICカード212のCPU351は、チャレンジデータ4cを生成する。このチャレンジデータ4cには、ランダムな乱数値が用いられる。ステップS2126においてCPU351は、選択ビットをランダムに決定する。
ステップS2127においてDES暗号化部355は、ステップS2126において決定された選択ビットの位置を指定する指定情報をアクセス鍵で暗号化する。アクセス鍵はリーダライタ211とICカード212が共通に保持する秘密鍵である。
ステップS2128においてCPU351は、式(1)に従ってチャレンジデータ4cのチェックサムを計算する。
ステップS2129においてDES暗号化部355は、ステップS2128で計算されたチェックサムをアクセス鍵で暗号化する。
ステップS2130においてマンチェスタ符号化部357は、全てのデータをマンチェスタ符号化する。すなわち、チャレンジデータ4c、暗号化された指定情報、および暗号化されたチェックサムがマンチェスタ符号化され、これが認証メッセージ4Cとされる。
ステップS2131においてASK変調部359は、認証メッセージ4CをASK変調し、送信する。なお、このときASK変調率は例えば10%とされる。
リーダライタ211のASK復調部322は、図48のステップS2030において、ICカード212から送信されてきた認証メッセージ4Cを受信し、ASK復調する。ステップS2031においてマンチェスタ復号部324は、マンチェスタ符号化されている全てのデータをマンチェスタ復号する。これにより、チャレンジデータ4c、暗号化されている指定情報、および暗号化されているチェックサムが得られる。
ステップS2032においてDES暗号化部317は、指定情報をアクセス鍵で復号する。すなわち、図52のステップS2127においてICカード212により暗号化された指定情報が復号される。
次に、ステップS2023においてCPU311は、チャレンジデータ4rを生成する。具体的には、乱数が生成され、この乱数とチャレンジデータ4cを組み合わせた値を、DES暗号化部317によりアクセス鍵で暗号化して得られた値がチャレンジデータ4rとされる。例えば、 Xビットの乱数とYビットのチャレンジデータ4cを結合して、X+Yビットのデータが生成され、それを暗号化したものがチャレンジデータ4rとされる。
ステップS2034においてCPU311は、式(1)に従って、チャレンジデータ4rのチェックサムを計算する。ステップS2035においてDES暗号化部317は、ステップS2034で計算されたチェックサムをアクセス鍵で暗号化する。
ステップS2036においてマンチェスタ符号化部319は、ステップS2033の処理で生成されたチャレンジデータ4rのうち、選択ビット以外のビットをマンチェスタ符号化する。ステップS2037においてRZ符号化部320は、チャレンジデータ4rの選択ビットをRZ符号化する。すなわち、ステップS2032で復号された指定情報により指定されている選択ビットがRZ符号化され、それ以外のビットがマンチェスタ符号化される。ステップS2038でマンチェスタ符号化部319は暗号化されているチェックサムをマンチェスタ符号化する。
ステップS2039においてASK変調部321は、盗聴者検出レスポンス4RをASK変調し、送信する。盗聴者検出レスポンス4Rには、指定情報で指定された選択ビットのみがRZ符号とされ、その他のビットがマンチェスタ符号とされたチャレンジデータ4rと、マンチェスタ符号化されたチェックサムとが含まれている。
ICカード212のASK復調部360は、図53のステップS2132において、リーダライタ211からの盗聴者検出レスポンス4Rを受信し、ASK復調する。これにより、指定情報で指定された選択ビットのみがRZ符号とされ、その他のビットがマンチェスタ符号化されているチャレンジデータ4rと、暗号化され、マンチェスタ符号化されているチェックサムが得られる。
ステップS2133においてマンチェスタ復号部362は、チャレンジデータ4rの選択ビット以外のビットをマンチェスタ復号する。選択ビットは図52のステップS2126においてICカード212が決定しているので、ICカード212には既知である。
また、ステップS2134において、RZ復号部363は、チャレンジデータ4rの選択ビットをRZ復号する。
CPU351は、ステップS2133のマンチェスタ復号の結果得られたデータに、ステップS2134のRZ復号の結果得られたデータを合成することで、チャレンジデータ4rを復元する。
ステップS2135においてマンチェスタ復号部362は、チェックサムをマンチェスタ復号する。
ステップS2136においてDES暗号化部355は、暗号化されているチェックサムをアクセス鍵で復号する。すなわち図48のステップS2035でリーダライタ211により暗号化されたチェックサムが復号される。
ステップS2137においてCPU351は、チェックサムを含む式(1)に従って検証演算を行う。式(1)中のチェックサムの値として、ステップS2135で復号された値が用いられる。
盗聴者はデータ中の一部のビットがマンチェスタ符号ではなく、RZ符号であることをしらない。従って、盗聴者が通信データ全てをマンチェスタ復号すると、データに誤りが発生するが、チェックサムは暗号化されているので、チェックサムから復号によりデータに誤りが発生したか否かを盗聴者は検出できない。一方、ICカード212は、暗号化されたチェックサムを復号することができ、チェックサムを含む式(1)の検証演算を行える。盗聴者が存在する場合、データに誤りが発生しているので、式(1)の左辺の項で計算された値は、00hにならない。これに対して、正規のリーダライタ211から直接送られてきたデータに基づき、式(1)の左辺の項で計算された値は、00hになる。そこで、計算の結果が00hになるか否かで、盗聴者の有無が検出される。
ステップS2138においてCPU351は、演算結果が00hであるかを判定する。演算結果が00hではない場合、ステップS2139においてCPU351は、盗聴が検出されたとして、相互認証を中止する処理を行う。
演算結果が00hである場合、すなわち、盗聴者が存在しない場合、ステップS2140において、CPU351は盗聴者検出完了レスポンスを送信する。この盗聴者検出完了レスポンスは、マンチェスタ符号化部357によりマンチェスタ符号化され、ASK変調部359によりASK変調され、送信される。
図48のステップS2040においてリーダライタ211は、ICカード212からの盗聴者検出完了レスポンスを受信する。すなわち、盗聴者検出完了レスポンスはASK復調部322によりASK復調され、マンチェスタ復号部324によりマンチェスタ復号され、CPU311により取得される。これにより、リーダライタ211は、自身がICカード212により認証されたことを知ることができる。
以上のようにしてリーダライタ211とICカード212との間で盗聴者検出処理が行われる。
[動作のまとめ]
以上のICカードシステム201の処理をまとめると図54に示されるようになる。リーダライタ211の相互認証アルゴリズムA11がICカード212に認証メッセージ1Rを送信する。この認証メッセージ1Rには、チャレンジデータ1rがマンチェスタ符号化された状態で含まれている。
ICカード212の相互認証アルゴリズムa11は、受信データをマンチェスタ復号してチャレンジデータ1rを得る。相互認証アルゴリズムa11は、復号されたチャレンジデータ1rと新たな乱数値との結合をアクセス鍵で暗号化し、チャレンジデータ1cとする。
チャレンジデータ1cはマンチェスタ符号化される。マンチェスタ符号化されたチャレンジデータ1cが、認証レスポンス1Cとしてリーダライタ211に送信される。
リーダライタ211の正当性検証アルゴリズムB11は、認証レスポンス1Cに含まれるチャレンジデータ1cをマンチェスタ復号する。
正当性検証アルゴリズムB11は、チャレンジデータ1rとチャレンジデータ1cの検証演算を実行し、演算結果に基づいてICカード212を認証する。
同様に、ICカード212がリーダライタ211を認証する処理が行われる。すなわち、ICカード212の相互認証アルゴリズムa12がリーダライタ211に認証メッセージ2Cを送信する。この認証メッセージ2Cには、チャレンジデータ2cがマンチェスタ符号化された状態で含まれている。
リーダライタ211の相互認証アルゴリズムA12は、認証メッセージ2Cをマンチェスタ復号する。そして相互認証アルゴリズムA12は、チャレンジデータ2cと乱数の結合を暗号化し、チャレンジデータ2rを生成する。
チャレンジデータ2rはマンチェスタ符号化され、認証レスポンス2RとしてICカード212に送信される。
ICカード212の正当性検証アルゴリズムb11は、認証レスポンス2Rのチャレンジデータ2rを復号する。そして正当性検証アルゴリズムb11は、チャレンジデータ2cとチャレンジデータ2rの検証演算を実行し、演算結果に基づいてリーダライタ211を認証する。
認証が成功した場合、ICカード212の正当性検証アルゴリズムb11は、リーダライタ211に完了レスポンスを返す。
さらに盗聴者検出のため、次のような処理が行われる。すなわち、リーダライタ211の相互認証アルゴリズムA11がICカード212に盗聴者検出メッセージ3Rを送信する。この盗聴者検出メッセージ3Rには、チャレンジデータ3r、暗号化された指定情報、および暗号化されたチェックサムが、マンチェスタ符号化された状態で含まれている。
ICカード212の相互認証アルゴリズムa11は、受信データをマンチェスタ復号してチャレンジデータ3r、暗号化された指定情報、および暗号化されたチェックサムを得る。また相互認証アルゴリズムa11は、アクセス鍵で、暗号化されている指定情報とチェックサムを復号する。相互認証アルゴリズムa11は、復号されたチャレンジデータ3rと新たな乱数値との結合をアクセス鍵で暗号化し、チャレンジデータ3cとする。
チャレンジデータ3cのチェックサムが計算され、アクセス鍵で暗号化され、マンチェスタ符号化される。またチャレンジデータ3cのうち指定情報で指定された選択ビットがRZ符号化され、その他のビットがマンチェスタ符号化される。
暗号化され、マンチェスタ符号化されたチェックサム、選択ビットがRZ符号化され、その他のビットがマンチェスタ符号化されたチャレンジデータ3cが、盗聴者検出レスポンス3Cとしてリーダライタ211に送信される。
リーダライタ211の正当性検証アルゴリズムB11は、盗聴者検出レスポンス3Cに含まれるチェックサムと選択ビット以外のチャレンジデータ3cをマンチェスタ復号し、選択ビットのチャレンジデータ3cをRZ復号する。暗号化されているチェックサムとチャレンジデータ1cはさらにアクセス鍵で復号される。
正当性検証アルゴリズムB11は、チェックサムを式(1)に基づいて検証演算し、演算結果に基づいて盗聴者検出処理を実行する。
同様に、ICカード212がリーダライタ211との間の盗聴者検出処理を行う。すなわち、ICカード212の相互認証アルゴリズムa12がリーダライタ211に盗聴者検出メッセージ4Cを送信する。この盗聴者検出メッセージ4Cには、チャレンジデータ4c、チャレンジデータ4cの暗号化されたチェックサム、および暗号化された指定情報が、マンチェスタ符号化された状態で含まれている。
リーダライタ211の相互認証アルゴリズムA12は、盗聴者検出メッセージ4Cをマンチェスタ復号し、チャレンジデータ4c、チャレンジデータ4cの暗号化されたチェックサム、および暗号化された指定情報を得る。チャレンジデータ4cと乱数の結合が暗号化され、チャレンジデータ4rとされる。
チャレンジデータ4rのチェックサムが計算され、暗号化され、マンチェスタ符号化される。チャレンジデータ4rのうち、指定情報で指定された選択ビットがRZ符号化され、その他のビットがマンチェスタ符号化される。これらのデータが、認証レスポンス4RとしてICカード212に送信される。
ICカード212の正当性検証アルゴリズムb11は、盗聴者検出レスポンス4Rのチェックサムと選択ビット以外のチャレンジデータ4rをマンチェスタ復号し、選択ビットのチャレンジデータ4rをRZ復号する。暗号化されているチャレンジデータ4rとチェックサムはさらに復号される。
正当性検証アルゴリズムb11は、チェックサムを式(1)に基づいて検証演算し、演算結果に基づいて盗聴者検出処理を実行する。
盗聴者検出処理で非盗聴が確認された場合、ICカード212の正当性検証アルゴリズムb11は、リーダライタ211に盗聴者検出完了レスポンスを返す。
<7.第7の実施の形態>
[動作説明]
チェックサムではなく、指定されたビットの指定された符号の有無から盗聴者検出処理を行うこともできる。図55乃至図60はこの場合の実施の形態を表している。この処理は、図6のICカードシステム201により実行される。
図55乃至図57は、リーダライタ211の処理を表し、図58乃至図60は、それに対応するICカード212の処理を表す。
図55のステップS2201乃至図56のステップS2214のリーダライタ211の処理と、それに対応する図58のステップS2301乃至ステップS2307のICカード212処理は、リーダライタ211がICカード212を認証する処理である。図59のステップS2308乃至図60のステップS2322のICカード212処理と、それに対応する図57のステップS2215乃至ステップS2222のリーダライタ211の処理は、ICカード212がリーダライタ211を認証する処理である。
図55のステップS2201においてリーダライタ211のCPU311は、チャレンジデータ1rを生成する。このチャレンジデータ1rには、乱数値が用いられる。ステップS2202においてCPU311は、選択ビットをランダムに決定する。すなわち、この実施の形態の場合、データは基本的にマンチェスタ符号として送信されるのであるが、盗聴を検出するために、データ中の選択された所定のビットはRZ符号とされる。ここでその選択ビットが決定される。
ステップS2303においてDES暗号化部317は、ステップS2202において決定された選択ビットの位置を指定する指定情報をアクセス鍵で暗号化する。アクセス鍵はリーダライタ211とICカード212が共通に保持する秘密鍵である。
ステップS2204においてCPU311は、選択ビットの値を決定する。選択ビットはRZ符号化されるので、このビット値としては、例えば高(1)または低(0)のレベルが決定される。
ステップS2205において、DES暗号化部355は、ステップS2204で決定された選択ビットの値を指定する指定情報をアクセス鍵で暗号化する。
ステップS2206においてマンチェスタ符号化部319は、全てのデータをマンチェスタ符号化する。すなわち、チャレンジデータ1r、暗号化された選択ビットの位置の指定情報、および暗号化された選択ビットの値の指定情報がマンチェスタ符号化される。そしてそれが認証メッセージ1Rとされる。
ステップS2207においてASK変調部321は、認証メッセージ1RをASK変調し、送信する。この認証メッセージ1Rには、チャレンジデータ1r、暗号化された位置の指定情報、および暗号化された値の指定情報が含まれている。なお、このときASK変調率は例えば10%とされる。
ICカード212のASK復調部360は、図58のステップS2301において、リーダライタ211から送信されてきた認証メッセージ1Rを受信し、ASK復調する。
ステップS2302においてマンチェスタ復号部362は、マンチェスタ符号化されている全てのデータをマンチェスタ復号する。これにより、チャレンジデータ1r、暗号化された位置の指定情報、および暗号化された値の指定情報が得られる。
ステップS2303においてDES暗号化部355は、指定情報をアクセス鍵で復号する。すなわち、図55のステップS2203,S2205においてリーダライタ211により暗号化された位置と値の指定情報が復号される。
次に、ステップS2304においてCPU351は、乱数を生成し、この乱数とステップS2302において復号して得たチャレンジデータ1rを組み合わせた値を、DES暗号化部355に供給し、アクセス鍵で暗号化させることでチャレンジデータ1cを生成する。具体的には、例えば、Xビットの乱数とYビットのチャレンジデータ1rが結合され、X+Yビットのデータが作成され、それを暗号化したものがチャレンジデータ1cとされる。
ステップS2305においてCPU351は、マンチェスタ符号化部357は、ステップS2304の処理で生成されたチャレンジデータ1cのうち、選択ビット以外のビットをマンチェスタ符号化する。ステップS2306においてRZ符号化部358は、チャレンジデータ1cの選択ビットを指定された値にRZ符号化する。すなわち、ステップS2303で復号された位置の指定情報により指定されている選択ビットが、値の指定情報で指定されている値にRZ符号化され、それ以外のビットがマンチェスタ符号化される。
ステップS2307においてASK変調部359は、認証レスポンス1CをASK変調し、送信する。認証レスポンス1Cには、指定情報で指定された選択ビットのみが、指定された値にRZ符号とされ、その他のビットがマンチェスタ符号とされたチャレンジデータ1cが含まれている。
リーダライタ211のASK復調部322は、図56のステップS2208において、ICカード212からの認証レスポンス1Cを受信し、ASK復調する。これにより、指定情報で指定された選択ビットのみが、指定された値にRZ符号とされ、その他のビットがマンチェスタ符号化されているチャレンジデータ1cが得られる。
ステップS2209において、マンチェスタ復号部324は、チャレンジデータ1cの選択ビット以外のビットをマンチェスタ復号する。選択ビットは図55のステップS2202においてリーダライタ211が決定しているので、リーダライタ211には既知である。
また、ステップS2210において、RZ復号部325は、チャレンジデータ1cの選択ビットをRZ復号する。
CPU311は、ステップS2209のマンチェスタ復号の結果得られたデータと、ステップS2210のRZ復号の結果得られたデータを合成することで、チャレンジデータ1cを復元する。
ステップS2211においてCPU311は、選択ビットの値は指定された値であるかを判定する。すなわち、指定されたビット位置に、指定された値のRZ符号が存在するかが判定される。
盗聴者はデータ中の指定されたビットが指定された値のRZ符号であることをしらない。従って、カードシミュレータとリーダライタシミュレータを介して送信されてくるデータは、データ中の指定されたビットが指定された値のRZ符号にはなっていない。これにより、盗聴者の存在が検出される。
盗聴者の存在が検出された場合、CPU311はステップS2214において相互認証を中止する。
盗聴者の存在が検出されない場合、ステップS2212においてCPU311は、チャレンジデータ1rとチャレンジデータ1cにより正当性検証の演算を行う。すなわち、ステップS2201において生成したチャレンジデータ1rと、ステップS2209,S2210で復号の結果得られたチャレンジデータ1cとが比較される。まず、DES暗号化部317はチャレンジデータ1c(乱数とチャレンジデータ1rとの結合により構成されている)をアクセス鍵で復号する。そして、CPU311は復号されたデータのうち、チャレンジデータ1rに相当する箇所のビット値が、本当にチャレンジデータ1rと一致するかチェックする。もし、両者が対応すれば、ICカード212は同じアクセス鍵を持つ適正なICカードであることが確認される。両者が対応しなければ、ICカード212は不正なICカードであることになる。
そこで、ステップS2213においてCPU311は、ステップS2212の演算結果に基づいて、ICカード212が適正であるかを判定する。適正でない場合、すなわち、生成されたチャレンジデータ1rと復号されたチャレンジデータ1cの該当箇所とが対応しない場合、通信相手としてのICカード212が適正でないとして、CPU311はステップS2214において相互認証を中止する。
ICカード212が適正である場合、すなわち、生成されたチャレンジデータ1rと復号されたチャレンジデータ1cの対応する部分が一致する場合、リーダライタ211によりICカード212が認証されたので、さらにICカード212がリーダライタ211を認証する処理が次のように行われる。
図59のステップS2308においてICカード212のCPU351は、チャレンジデータ2cを生成する。このチャレンジデータ2cには、ランダムな乱数値が用いられる。ステップS2309においてCPU351は、選択ビットをランダムに決定する。
ステップS2310においてDES暗号化部355は、ステップS2309において決定された選択ビットの位置を指定する指定情報をアクセス鍵で暗号化する。アクセス鍵はリーダライタ211とICカード212が共通に保持する秘密鍵である。
ステップS2311においてCPU351は、選択ビットの値を決定する。
ステップS2312においてDES暗号化部355は、ステップS2311で決定された選択ビットの値を指定する指定情報をアクセス鍵で暗号化する。
ステップS2313においてマンチェスタ符号化部357は、全てのデータをマンチェスタ符号化する。すなわち、チャレンジデータ2c、選択ビットの暗号化された位置の指定情報、および選択ビットの暗号化された値の指定情報がマンチェスタ符号化され、これが認証メッセージ2Cとされる。
ステップS2314においてASK変調部359は、認証メッセージ2CをASK変調し、送信する。なお、このときASK変調率は例えば10%とされる。
リーダライタ211のASK復調部322は、図57のステップS2215において、ICカード212から送信されてきた認証メッセージ2Cを受信し、ASK復調する。ステップS2216においてマンチェスタ復号部324は、マンチェスタ符号化されている全てのデータをマンチェスタ復号する。これにより、チャレンジデータ2c、暗号化されている位置の指定情報、および暗号化されている値の指定情報が得られる。
ステップS2217においてDES暗号化部317は、位置と値の指定情報をアクセス鍵で復号する。すなわち、図59のステップS2310,S2312においてICカード212により暗号化された指定情報が復号される。
次に、ステップS2218においてCPU311は、チャレンジデータ2rを生成する。具体的には、乱数が生成され、この乱数とチャレンジデータ2cを組み合わせた値を、DES暗号化部317によりアクセス鍵で暗号化して得られた値がチャレンジデータ2rとされる。例えば、 Xビットの乱数とYビットのチャレンジデータ2cを結合して、X+Yビットのデータが生成され、それを暗号化したものがチャレンジデータ2rとされる。
ステップS2219においてマンチェスタ符号化部319は、ステップS2218の処理で生成されたチャレンジデータ2rのうち、選択ビット以外のビットをマンチェスタ符号化する。ステップS2220においてRZ符号化部320は、チャレンジデータ2rの選択ビットを指定された値にRZ符号化する。すなわち、ステップS2217で復号された指定情報により指定されている選択ビットが指定された値にRZ符号化され、それ以外のビットがマンチェスタ符号化される。
ステップS2221においてASK変調部321は、認証レスポンス2RをASK変調し、送信する。認証レスポンス2Rには、指定情報で指定された選択ビットのみが指定された値にRZ符号とされ、その他のビットがマンチェスタ符号とされたチャレンジデータ2rが含まれている。
ICカード212のASK復調部360は、図60のステップS2315において、リーダライタ211からの認証レスポンス2Rを受信し、ASK復調する。これにより、指定情報で指定された選択ビットのみが指定された値にRZ符号とされ、その他のビットがマンチェスタ符号化されているチャレンジデータ2rが得られる。
ステップS2316においてマンチェスタ復号部362は、チャレンジデータ2rの選択ビット以外のビットをマンチェスタ復号する。選択ビットは図59のステップS2309においてICカード212が決定しているので、ICカード212には既知である。
また、ステップS2317において、RZ復号部363は、チャレンジデータ2rの選択ビットをRZ復号する。
CPU351は、ステップS2316のマンチェスタ復号の結果得られたデータと、ステップS2317のRZ復号の結果得られたデータを合成することで、チャレンジデータ2rを復元する。
ステップS2318においてCPU351は、選択ビットの値は、指定された値であるかを判定する。すなわち、指定されたビット位置に、指定された値のRZ符号が存在するかが判定される。
盗聴者はデータ中の指定されたビットが指定された値のRZ符号であることをしらない。従って、カードシミュレータとリーダライタシミュレータを介して送信されてくるデータは、データ中の指定されたビットが指定された値のRZ符号にはなっていない。これにより、盗聴者の存在が検出される。
盗聴者の存在が検出された場合、CPU311はステップS2321において相互認証を中止する。
指定されたビット位置に、指定された値のRZ符号が存在する場合、すなわち盗聴者が存在しない場合、ステップS2319においてCPU351は、チャレンジデータ2cとチャレンジデータ2rにより正当性検証の演算を行う。すなわち、ステップS2308において生成したチャレンジデータ2cと、ステップS2316,S2317で復号の結果得られたチャレンジデータ2rとが比較される。まず、DES暗号化部355はチャレンジデータ2r(乱数とチャレンジデータ2cとの結合により構成されている)をアクセス鍵で復号する。そしてCPU351は、復号されたデータのうち、チャレンジデータ2cに相当する箇所のビット値が、本当にチャレンジデータ2cと一致するどうかチェックする。もし、両者が対応すれば、リーダライタ211は同じアクセス鍵をもつ適正なリーダライタであることが確認される。両者が対応しなければ、リーダライタ211は不正なリーダライタであることになる。
そこで、ステップS2320においてCPU351は、ステップS2319の演算結果に基づいて、リーダライタ211が適正であるかを判定する。適正でない場合、すなわち、生成されたチャレンジデータ2cと復号されたチャレンジデータ2rとが対応しない場合、通信相手としてのリーダライタ211が適正でないとして、CPU351はステップS2321において相互認証を中止する。
生成されたチャレンジデータ2cと復号されたチャレンジデータ2rの対応する部分が一致する場合、ステップS2322において、CPU351は完了レスポンスを送信する。この完了レスポンスは、マンチェスタ符号化部357によりマンチェスタ符号化され、ASK変調部359によりASK変調され、送信される。
図57のステップS2222においてリーダライタ211は、ICカード212からの完了レスポンスを受信する。すなわち、完了レスポンスはASK復調部322によりASK復調され、マンチェスタ復号部324によりマンチェスタ復号され、CPU311により取得される。これにより、リーダライタ211は、自身がICカード212により認証されたことを知ることができる。
以上のようにしてリーダライタ211とICカード212との間で相互認証が行われる。
[動作のまとめ]
以上のICカードシステム201の処理をまとめると図61に示されるようになる。リーダライタ211の相互認証アルゴリズムA11がICカード212に認証メッセージ1Rを送信する。この認証メッセージ1Rには、チャレンジデータ1r、選択ビットの暗号化された位置の指定情報、および選択ビットの暗号化された値の指定情報が、マンチェスタ符号化された状態で含まれている。
ICカード212の相互認証アルゴリズムa11は、受信データをマンチェスタ復号してチャレンジデータ1r、暗号化された位置の指定情報、および暗号化された値の指定情報を得る。また相互認証アルゴリズムa11は、アクセス鍵で、暗号化されている指定情報を復号する。相互認証アルゴリズムa11は、復号されたチャレンジデータ1rと新たな乱数値との結合をアクセス鍵で暗号化し、チャレンジデータ1cとする。
チャレンジデータ1cのうち指定情報で指定された選択ビットが指定された値にRZ符号化され、その他のビットがマンチェスタ符号化される。
選択ビットが指定された値にRZ符号化され、その他のビットがマンチェスタ符号化されたチャレンジデータ1cが、認証レスポンス1Cとしてリーダライタ211に送信される。
リーダライタ211の正当性検証アルゴリズムB11は、認証レスポンス1Cに含まれる選択ビット以外のチャレンジデータ1cをマンチェスタ復号し、選択ビットのチャレンジデータ1cをRZ復号する。暗号化されているチャレンジデータ1cはさらにアクセス鍵で復号される。
正当性検証アルゴリズムB11は、指定されたビット位置に、指定された値のRZ符号が存在するかを判定することで、盗聴者検出処理を実行する。正当性検証アルゴリズムB11は、さらにチャレンジデータ1rとチャレンジデータ1cの検証演算を実行し、演算結果に基づいてICカード212を認証する。
同様に、ICカード212がリーダライタ211を認証する処理が行われる。すなわち、ICカード212の相互認証アルゴリズムa12がリーダライタ211に認証メッセージ2Cを送信する。この認証メッセージ2Cには、チャレンジデータ2c、および暗号化された位置と値の指定情報が、マンチェスタ符号化された状態で含まれている。
リーダライタ211の相互認証アルゴリズムA12は、認証メッセージ2Cをマンチェスタ復号し、チャレンジデータ2c、並びに暗号化された位置と値の指定情報を得る。チャレンジデータ2cと乱数の結合が暗号化され、チャレンジデータ2rとされる。
チャレンジデータ2rのうち、指定情報で指定された選択ビットが指定された値にRZ符号化され、その他のビットがマンチェスタ符号化される。これらのデータが、認証レスポンス2RとしてICカード212に送信される。
ICカード212の正当性検証アルゴリズムb11は、認証レスポンス2Rの選択ビット以外のチャレンジデータ2rをマンチェスタ復号し、選択ビットのチャレンジデータ2rをRZ復号する。暗号化されているチャレンジデータ2rはさらに復号される。
正当性検証アルゴリズムb11は、指定されたビット位置に、指定された値のRZ符号が存在するかを判定することで、盗聴者検出処理を実行する。正当性検証アルゴリズムb11は、さらにチャレンジデータ2cとチャレンジデータ2rの検証演算を実行し、演算結果に基づいてリーダライタ211を認証する。
認証が成功した場合、ICカード212の正当性検証アルゴリズムb11は、リーダライタ211に完了レスポンスを返す。
<8.第8の実施の形態>
[動作説明]
指定されたビットの指定された変調方式の信号の有無から盗聴者検出処理を行うこともできる。図62乃至図67はこの場合の実施の形態を表している。この処理は、図29のICカードシステム201で実行される。
図62乃至図64は、リーダライタ211の処理を表し、図65乃至図67は、それに対応するICカード212の処理を表す。
図62のステップS2401乃至図63のステップS2413のリーダライタ211の処理と、それに対応する図65のステップS2501乃至ステップS2506のICカード212処理は、リーダライタ211がICカード212を認証する処理である。図66のステップS2507乃至図67のステップS2520のICカード212処理と、それに対応する図64のステップS2414乃至ステップS2420のリーダライタ211の処理は、ICカード212がリーダライタ211を認証する処理である。
図62のステップS2401においてリーダライタ211のCPU311は、チャレンジデータ1rを生成する。このチャレンジデータ1rには、乱数値が用いられる。ステップS2402においてCPU311は、選択ビットをランダムに決定する。すなわち、この実施の形態の場合、データは基本的にASK変調信号として送信されるのであるが、盗聴を検出するために、データ中の選択された所定のビットはPSK変調信号として送信される。ここでその選択ビットが決定される。
ステップS2403においてDES暗号化部317は、ステップS2402において決定された選択ビットの位置を指定する指定情報をアクセス鍵で暗号化する。アクセス鍵はリーダライタ211とICカード212が共通に保持する秘密鍵である。
ステップS2404においてCPU311は、選択ビットのPSK変調信号の値を決定する。このPSK変調信号の値としては、例えば0°または180°のいずれかを表す値とされる。
ステップS2405においてDES暗号化部355は、ステップS2404で決定された、PSK変調信号の値を指定する指定情報をアクセス鍵で暗号化する。
ステップS2406においてマンチェスタ符号化部319は、全てのデータをマンチェスタ符号化する。すなわち、チャレンジデータ1r、選択ビットの暗号化された位置の指定情報、および選択ビットの暗号化された値の指定情報がマンチェスタ符号化される。そしてそれが認証メッセージ1Rとされる。
ステップS2407においてASK変調部321は、認証メッセージ1RをASK変調し、送信する。この認証メッセージ1Rには、チャレンジデータ1r、暗号化された位置の指定情報、および暗号化された値の指定情報が含まれている。なお、このときASK変調率は例えば10%とされる。
ICカード212のASK復調部360は、図65のステップS2501において、リーダライタ211から送信されてきた認証メッセージ1Rを受信し、ASK復調する。
ステップS2502においてマンチェスタ復号部362は、マンチェスタ符号化されている全てのデータをマンチェスタ復号する。これにより、チャレンジデータ1r、暗号化された位置の指定情報、および暗号化された値の指定情報が得られる。
ステップS2503においてDES暗号化部355は、指定情報をアクセス鍵で復号する。すなわち、図62のステップS2403,S2405においてリーダライタ211により暗号化された位置と値の指定情報が復号される。
次に、ステップS2504においてCPU351は、乱数を生成し、この乱数とステップS2502において復号して得たチャレンジデータ1rを組み合わせた値を、DES暗号化部355に供給し、アクセス鍵で暗号化させることでチャレンジデータ1cを生成する。具体的には、例えば、Xビットの乱数とYビットのチャレンジデータ1rが結合され、X+Yビットのデータが作成され、それを暗号化したものがチャレンジデータ1cとされる。
ステップS2505においてマンチェスタ符号化部357は、ステップS2504の処理で生成されたチャレンジデータ1cをマンチェスタ符号化する。
ステップS2506においてASK変調部359は、認証レスポンス1Cのチャレンジデータ1cの選択ビットを指定された値のPSK変調信号とし、その他のビットをASK変調信号として、送信する。
リーダライタ211のASK復調部322とPSK復調部402は、図63のステップS2408において、ICカード212からの認証レスポンス1Cを受信し、ASK復調するとともに、PSK復調する。これにより、指定情報で指定された値にPSK変調されていた選択ビットと、ASK変調されていた、その他のビットからなる、マンチェスタ符号化されているチャレンジデータ1cが得られる。
ステップS2409において、マンチェスタ復号部324は、チャレンジデータ1cをマンチェスタ復号する。
CPU311は、マンチェスタ復号の結果得られたASK復調信号から得られたデータと、PSK復調信号から得られたデータを合成することで、チャレンジデータ1cを復元する。
ステップS2410においてCPU311は、指定されたビット位置に、指定された値のPSK変調信号が存在するかを判定する。
盗聴者はデータ中の所定の位置のビットが、所定の値のPSK変調信号であることをしらない。従って、リーダライタシミュレータとカードシミュレータを介して送信されてくるデータは、すべてのビットがASK変調信号を復号して得られたデータとされている。その結果、指定されたビット位置に、指定された値のPSK変調信号が存在するかを判定することで、盗聴者の有無が検出される。
指定されたビット位置に、指定された値のPSK変調信号が存在しない場合、ステップS2411においてCPU311は、盗聴が検出されたとして、相互認証を中止する処理を行う。
指定されたビット位置に、指定された値のPSK変調信号が存在する場合、すなわち、盗聴者が存在しない場合、ステップS2412においてCPU311は、チャレンジデータ1rとチャレンジデータ1cにより正当性検証の演算を行う。すなわち、ステップS2401において生成したチャレンジデータ1rと、ステップS2409で復号の結果得られたチャレンジデータ1cとが比較される。まず、DES暗号化部317はチャレンジデータ1c(乱数とチャレンジデータ1rとの結合により構成されている)をアクセス鍵で復号する。そして、CPU311は復号されたデータのうち、チャレンジデータ1rに相当する箇所のビット値が、本当にチャレンジデータ1rと一致するかチェックする。もし、両者が対応すれば、ICカード212は同じアクセス鍵を持つ適正なICカードであることが確認される。両者が対応しなければ、ICカード212は不正なICカードであることになる。
そこで、ステップS2413においてCPU311は、ステップS2412の演算結果に基づいて、ICカード212が適正であるかを判定する。適正でない場合、すなわち、生成されたチャレンジデータ1rと復号されたチャレンジデータ1cの該当箇所とが対応しない場合、通信相手としてのICカード212が適正でないとして、CPU311はステップS2411において相互認証を中止する。
ICカード212が適正である場合、すなわち、生成されたチャレンジデータ1rと復号されたチャレンジデータ1cの対応する部分が一致する場合、リーダライタ211によりICカード212が認証されたので、さらにICカード212がリーダライタ211を認証する処理が次のように行われる。
図66のステップS2507においてICカード212のCPU351は、チャレンジデータ2cを生成する。このチャレンジデータ2cには、ランダムな乱数値が用いられる。ステップS2508においてCPU351は、選択ビットをランダムに決定する。
ステップS2509においてDES暗号化部355は、ステップS2508において決定された選択ビットの位置を指定する指定情報をアクセス鍵で暗号化する。アクセス鍵はリーダライタ211とICカード212が共通に保持する秘密鍵である。
ステップS2510においてCPU351は、選択ビットのPSK変調信号の値を決定する。
ステップS2511においてDES暗号化部355は、ステップS2510で決定されたPSK変調信号の値を指定する指定情報をアクセス鍵で暗号化する。
ステップS2512においてマンチェスタ符号化部357は、全てのデータをマンチェスタ符号化する。すなわち、チャレンジデータ2c、並びに暗号化された位置と値の指定情報がマンチェスタ符号化され、これが認証メッセージ2Cとされる。
ステップS2513においてASK変調部359は、認証メッセージ2CをASK変調し、送信する。なお、このときASK変調率は例えば10%とされる。
リーダライタ211のASK復調部322は、図64のステップS2414において、ICカード212から送信されてきた認証メッセージ2Cを受信し、ASK復調する。ステップS2415においてマンチェスタ復号部324は、マンチェスタ符号化されている全てのデータをマンチェスタ復号する。これにより、チャレンジデータ2c、暗号化されている位置の指定情報、および暗号化されている値の指定情報が得られる。
ステップS2416においてDES暗号化部317は、指定情報をアクセス鍵で復号する。すなわち、図66のステップS2509,S2511においてICカード212により暗号化された指定情報が復号される。
次に、ステップS2417においてCPU311は、チャレンジデータ2rを生成する。具体的には、乱数が生成され、この乱数とチャレンジデータ2cを組み合わせた値を、DES暗号化部317によりアクセス鍵で暗号化して得られた値がチャレンジデータ2rとされる。例えば、 Xビットの乱数とYビットのチャレンジデータ2cを結合して、X+Yビットのデータが生成され、それを暗号化したものがチャレンジデータ2rとされる。
ステップS2418においてマンチェスタ符号化部319は、ステップS2417の処理で生成されたチャレンジデータ2rをマンチェスタ符号化する。
ステップS2419においてASK変調部321は、認証レスポンス2Rのチャレンジデータ2rの選択ビットを指定された値のPSK変調信号とし、その他のビットをASK変調信号として、送信する。
ICカード212のASK復調部360は、図67のステップS2514において、リーダライタ211からの認証レスポンス2Rを受信し、ASK復調するとともに、PSK復調する。これにより、PSK復調信号から、指定情報で指定されたチャレンジデータ2rの選択ビットが、そしてASK復調信号から、チャレンジデータ2rのその他のビットが得られる。
ステップS2515においてマンチェスタ復号部362は、チャレンジデータ2rをマンチェスタ復号する。
CPU351は、マンチェスタ復号の結果得られたPSK変調信号からの選択ビットと、ASK変調信号からのその他のビットを合成することで、チャレンジデータ2rを復元する。
ステップS2516においてCPU351は、指定されたビット位置に、指定された値のPSK変調信号が存在するかを判定する
盗聴者はデータ中の所定の位置のビットが、所定の値のPSK変調信号であることをしらない。従って、リーダライタシミュレータとカードシミュレータを介して送信されてくるデータは、すべてのビットがASK変調信号を復号して得られたデータとされている。その結果、指定されたビット位置に、指定された値のビットのPSK変調信号が存在するかを判定することで、盗聴者の有無が検出される。
指定されたビット位置に、指定された値のビットのPSK変調信号が存在しない場合、ステップS2517においてCPU351は、盗聴が検出されたとして、相互認証を中止する処理を行う。
指定されたビット位置に、指定された値のPSK変調信号が存在する場合、すなわち盗聴者が存在しない場合、ステップS2518においてCPU351は、チャレンジデータ2cとチャレンジデータ2rにより正当性検証の演算を行う。すなわち、ステップS2507において生成したチャレンジデータ2cと、ステップS2515で復号の結果得られたチャレンジデータ2rとが比較される。まず、DES暗号化部355はチャレンジデータ2r(乱数とチャレンジデータ2cとの結合により構成されている)をアクセス鍵で復号する。そしてCPU351は、復号されたデータのうち、チャレンジデータ2cに相当する箇所のビット値が、本当にチャレンジデータ2cと一致するどうかチェックする。もし、両者が対応すれば、リーダライタ211は同じアクセス鍵をもつ適正なリーダライタであることが確認される。両者が対応しなければ、リーダライタ211は不正なリーダライタであることになる。
そこで、ステップS2519においてCPU351は、ステップS2518の演算結果に基づいて、リーダライタ211が適正であるかを判定する。適正でない場合、すなわち、生成されたチャレンジデータ2cと復号されたチャレンジデータ2rとが対応しない場合、通信相手としてのリーダライタ211が適正でないとして、CPU351はステップS2517において相互認証を中止する。
生成されたチャレンジデータ2cと復号されたチャレンジデータ2rの対応する部分が一致する場合、ステップS2520において、CPU351は完了レスポンスを送信する。この完了レスポンスは、マンチェスタ符号化部357によりマンチェスタ符号化され、ASK変調部359によりASK変調され、送信される。
図64のステップS2420においてリーダライタ211は、ICカード212からの完了レスポンスを受信する。すなわち、完了レスポンスはASK復調部322によりASK復調され、マンチェスタ復号部324によりマンチェスタ復号され、CPU311により取得される。これにより、リーダライタ211は、自身がICカード212により認証されたことを知ることができる。
以上のようにしてリーダライタ211とICカード212との間で相互認証が行われる。
[動作のまとめ]
以上のICカードシステム201の処理をまとめると図68に示されるようになる。リーダライタ211の相互認証アルゴリズムA11がICカード212に認証メッセージ1Rを送信する。この認証メッセージ1Rには、チャレンジデータ1r、暗号化された位置の指定情報、および暗号化された値の指定情報が、マンチェスタ符号化された状態で含まれている。
ICカード212の相互認証アルゴリズムa11は、受信データをマンチェスタ復号してチャレンジデータ1r、暗号化された位置の指定情報、および暗号化された値の指定情報を得る。また相互認証アルゴリズムa11は、アクセス鍵で、暗号化されている指定情報を復号する。相互認証アルゴリズムa11は、復号されたチャレンジデータ1rと新たな乱数値との結合をアクセス鍵で暗号化し、チャレンジデータ1cとする。
チャレンジデータ1cはマンチェスタ符号化され、さらに暗号化される。マンチェスタ符号化され、暗号化されたチャレンジデータ1cが、認証レスポンス1Cとしてリーダライタ211に送信される。
リーダライタ211の正当性検証アルゴリズムB11は、認証レスポンス1Cに含まれるチャレンジデータ1cをマンチェスタ復号する。暗号化されているチャレンジデータ1cはさらにアクセス鍵で復号される。
正当性検証アルゴリズムB11は、指定されたビット位置に、指定された値のPSK変調信号が存在するかを判定することで盗聴者検出処理を実行する。正当性検証アルゴリズムB11は、さらにチャレンジデータ1rとチャレンジデータ1cの検証演算を実行し、演算結果に基づいてICカード212を認証する。
同様に、ICカード212がリーダライタ211を認証する処理が行われる。すなわち、ICカード212の相互認証アルゴリズムa12がリーダライタ211に認証メッセージ2Cを送信する。この認証メッセージ2Cには、チャレンジデータ2c、選択ビットの暗号化された位置の指定情報、および選択ビットの暗号化された値の指定情報が、マンチェスタ符号化された状態で含まれている。
リーダライタ211の相互認証アルゴリズムA12は、認証メッセージ2Cをマンチェスタ復号し、チャレンジデータ2c、暗号化された位置の指定情報、および暗号化された値の指定情報を得る。チャレンジデータ2cと乱数の結合が暗号化され、チャレンジデータ2rとされる。
チャレンジデータ2rはマンチェスタ符号化される。チャレンジデータ2rの指定情報で指定された選択ビットが指定された値にPSK変調され、その他のビットがASK変調される。これらのデータが、認証レスポンス2RとしてICカード212に送信される。
ICカード212の正当性検証アルゴリズムb11は、認証レスポンス2Rの選択ビット以外のチャレンジデータ2rをASK復調した後、マンチェスタ復号し、選択ビットのチャレンジデータ2rをPSK復調した後、マンチェスタ復号する。暗号化されているチャレンジデータ2rはさらに復号される。
正当性検証アルゴリズムb11は、指定されたビット位置に、指定された値のPSK変調信号が存在するかを判定することで盗聴者検出処理を実行する。正当性検証アルゴリズムb11は、さらにチャレンジデータ2cとチャレンジデータ2rの検証演算を実行し、演算結果に基づいてリーダライタ211を認証する。
認証が成功した場合、ICカード212の正当性検証アルゴリズムb11は、リーダライタ211に完了レスポンスを返す。
以上においては、マンチェスタ符号化方式とRZ符号化方式を用いたが、その他の符号化方式を用いることもできる。同様に変調方式としても、ASK変調とPSK変調以外の変調方式を採用することもできる。さらにこれらの符号化方式や変調方式は、入れ替えて使用することもできる。
また本発明は、リーダライタとICカード以外の情報処理装置から構成されるシステムに適用することが可能である。
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
なお、本明細書において、プログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
従来のICカードシステムの構成を示すブロック図である。 従来のICカードシステムの処理を説明する図である。 盗聴者による傍受の構成を示す図である。 盗聴者による傍受の処理を説明する図である。 本発明の原理を説明するブロック図である。 本発明のICカードシステムの一実施の形態の構成を示すブロック図である。 第1の実施の形態のリーダライタの動作を説明するフローチャートである。 第1の実施の形態のリーダライタの動作を説明するフローチャートである。 第1の実施の形態のリーダライタの動作を説明するフローチャートである。 第1の実施の形態のICカードの動作を説明するフローチャートである。 第1の実施の形態のICカードの動作を説明するフローチャートである。 第1の実施の形態のICカードの動作を説明するフローチャートである。 チェックサムの演算を説明する図である。 第1の実施の形態の動作を説明する図である。 盗聴者による傍受があった場合の動作を説明する図である。 第2の実施の形態のリーダライタの動作を説明するフローチャートである。 第2の実施の形態のリーダライタの動作を説明するフローチャートである。 第2の実施の形態のリーダライタの動作を説明するフローチャートである。 第2の実施の形態のICカードの動作を説明するフローチャートである。 第2の実施の形態のICカードの動作を説明するフローチャートである。 第2の実施の形態のICカードの動作を説明するフローチャートである。 第3の実施の形態のリーダライタの動作を説明するフローチャートである。 第3の実施の形態のリーダライタの動作を説明するフローチャートである。 第3の実施の形態のリーダライタの動作を説明するフローチャートである。 第3の実施の形態のICカードの動作を説明するフローチャートである。 第3の実施の形態のICカードの動作を説明するフローチャートである。 第3の実施の形態のICカードの動作を説明するフローチャートである。 第3の実施の形態の動作を説明する図である。 本発明のICカードシステムの他の実施の形態の構成を示すブロック図である。 第4の実施の形態のリーダライタの動作を説明するフローチャートである。 第4の実施の形態のリーダライタの動作を説明するフローチャートである。 第4の実施の形態のリーダライタの動作を説明するフローチャートである。 第4の実施の形態のICカードの動作を説明するフローチャートである。 第4の実施の形態のICカードの動作を説明するフローチャートである。 第4の実施の形態のICカードの動作を説明するフローチャートである。 第4の実施の形態の動作を説明する図である。 第5の実施の形態のリーダライタの動作を説明するフローチャートである。 第5の実施の形態のリーダライタの動作を説明するフローチャートである。 第5の実施の形態のリーダライタの動作を説明するフローチャートである。 第5の実施の形態のICカードの動作を説明するフローチャートである。 第5の実施の形態のICカードの動作を説明するフローチャートである。 第5の実施の形態のICカードの動作を説明するフローチャートである。 第5の実施の形態の動作を説明する図である。 第6の実施の形態のリーダライタの動作を説明するフローチャートである。 第6の実施の形態のリーダライタの動作を説明するフローチャートである。 第6の実施の形態のリーダライタの動作を説明するフローチャートである。 第6の実施の形態のリーダライタの動作を説明するフローチャートである。 第6の実施の形態のリーダライタの動作を説明するフローチャートである。 第6の実施の形態のICカードの動作を説明するフローチャートである。 第6の実施の形態のICカードの動作を説明するフローチャートである。 第6の実施の形態のICカードの動作を説明するフローチャートである。 第6の実施の形態のICカードの動作を説明するフローチャートである。 第6の実施の形態のICカードの動作を説明するフローチャートである。 第6の実施の形態の動作を説明する図である。 第7の実施の形態のリーダライタの動作を説明するフローチャートである。 第7の実施の形態のリーダライタの動作を説明するフローチャートである。 第7の実施の形態のリーダライタの動作を説明するフローチャートである。 第7の実施の形態のICカードの動作を説明するフローチャートである。 第7の実施の形態のICカードの動作を説明するフローチャートである。 第7の実施の形態のICカードの動作を説明するフローチャートである。 第7の実施の形態の動作を説明する図である。 第8の実施の形態のリーダライタの動作を説明するフローチャートである。 第8の実施の形態のリーダライタの動作を説明するフローチャートである。 第8の実施の形態のリーダライタの動作を説明するフローチャートである。 第8の実施の形態のICカードの動作を説明するフローチャートである。 第8の実施の形態のICカードの動作を説明するフローチャートである。 第8の実施の形態のICカードの動作を説明するフローチャートである。 第8の実施の形態の動作を説明する図である。
符号の説明
201 ICカードシステム,211 リーダライタ, 212 ICカード, 317 DES暗号化部, 318 送信調停部, 319 マンチェスタ符号化部, 320 RZ符号化部, 321 ASK変調部, 322 ASK復調部, 355 DES暗号化部, 356 送信調停部, 357 マンチェスタ符号化部, 358 RZ符号化部, 359 ASK変調部, 360 ASK復調部

Claims (14)

  1. 信号の方式を指定する指定情報を送信する送信部と、
    他の情報処理装置から信号を受信する受信部と、
    受信した信号の方式と、前記指定情報により指定された方式とから、前記他の情報処理装置との間に他の装置が介在して信号を授受していることを検出する検出部と
    を備える情報処理装置。
  2. 前記指定情報は、信号の符号化方式または変調方式を指定する
    請求項1に記載の情報処理装置。
  3. 前記指定情報は、信号の全部または一部の方式を指定する
    請求項2に記載の情報処理装置。
  4. 前記検出部は、暗号化された状態で送られてきたチェックサムを復号し、復号された前記チェックサムにより検出を行う
    請求項3に記載の情報処理装置。
  5. 指定される前記変調方式は、ASK変調またはPSK変調である
    請求項4に記載の情報処理装置。
  6. 指定される前記符号化方式は、マンチェスタ符号またはRZ符号による符号化方式である
    請求項4に記載の情報処理装置。
  7. 前記他の情報処理装置が予め設定された回数以上認証されなかった場合、警告を出力する警告部をさらに備える
    請求項4に記載の情報処理装置。
  8. 前記指定情報は、信号の値をさらに指定する
    請求項3に記載の情報処理装置。
  9. 前記情報処理装置と前記他の情報処理装置は、リーダライタとICカードの一方と他方である
    請求項4に記載の情報処理装置。
  10. 送信部が、信号の方式を指定する指定情報を送信し、
    受信部が、他の情報処理装置から信号を受信し、
    検出部が、受信した信号の方式と、前記指定情報により指定された方式とから、前記他の情報処理装置との間に他の装置が介在して信号を授受していることを検出する
    情報処理装置の情報処理方法。
  11. コンピュータに、
    信号の方式を指定する指定情報を送信する手順と、
    他の情報処理装置から信号を受信する手順と、
    受信した信号の方式と、前記指定情報により指定された方式とから、前記他の情報処理装置との間に他の装置が介在して信号を授受していることを検出する手順と
    を実行させるためのプログラム。
  12. コンピュータに、
    信号の方式を指定する指定情報を送信する手順と、
    他の情報処理装置から信号を受信する手順と、
    受信した信号の方式と、前記指定情報により指定された方式とから、前記他の情報処理装置との間に他の装置が介在して信号を授受していることを検出する手順と
    を実行させるためのプログラムが記録されている記録媒体。
  13. 第1の情報処理装置が、信号の方式を指定する指定情報を送信し、
    第2の情報処理装置が、前記第1の情報処理装置からの前記指定情報を受信し、
    前記第2の情報処理装置が、前記指定情報により指定された方式で前記第1の情報処理装置に信号を送信し、
    前記第1の情報処理装置が、第2の情報処理装置からの信号を受信し、
    前記第1の情報処理装置が、前記第1の情報処理装置から受信した信号の方式と、前記指定情報により指定した方式とから、前記第1の情報処理装置と前記第2の情報処理装置との間に他の装置が介在して信号を授受していることを検出する
    情報処理システム。
  14. 第1の情報処理装置が、信号の方式を指定する指定情報を送信し、
    第2の情報処理装置が、前記第1の情報処理装置からの前記指定情報を受信し、
    前記第2の情報処理装置が、前記指定情報により指定された方式で前記第1の情報処理装置に信号を送信し、
    前記第1の情報処理装置が、第2の情報処理装置からの信号を受信し、
    前記第1の情報処理装置が、前記第1の情報処理装置から受信した信号の方式と、前記指定情報により指定した方式とから、前記第1の情報処理装置と前記第2の情報処理装置との間に他の装置が介在して信号を授受していることを検出する
    情報処理システムの情報処理方法。
JP2008237654A 2008-09-17 2008-09-17 情報処理装置および方法、プログラム、記録媒体、並びに情報処理システム Pending JP2010074349A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008237654A JP2010074349A (ja) 2008-09-17 2008-09-17 情報処理装置および方法、プログラム、記録媒体、並びに情報処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008237654A JP2010074349A (ja) 2008-09-17 2008-09-17 情報処理装置および方法、プログラム、記録媒体、並びに情報処理システム

Publications (1)

Publication Number Publication Date
JP2010074349A true JP2010074349A (ja) 2010-04-02

Family

ID=42205753

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008237654A Pending JP2010074349A (ja) 2008-09-17 2008-09-17 情報処理装置および方法、プログラム、記録媒体、並びに情報処理システム

Country Status (1)

Country Link
JP (1) JP2010074349A (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001111612A (ja) * 1999-10-05 2001-04-20 Nippon Telegr & Teleph Corp <Ntt> 情報漏洩防止方法およびシステム並びに情報漏洩防止プログラムを記録した記録媒体
JP2003051022A (ja) * 2001-06-28 2003-02-21 Eastman Kodak Co 動画化コンテンツの再生を認証する方法および再生装置
JP2003281822A (ja) * 2002-03-25 2003-10-03 Teruo Furukawa データ変調回路および記録再生装置
JP2004040246A (ja) * 2002-06-28 2004-02-05 Canon Inc 情報処理装置、情報処理方法
WO2008037886A2 (fr) * 2006-09-25 2008-04-03 Centre National De La Recherche Scientifique - Cnrs - Système et procédé pour la transmission sécurisée de code binaire par codage en phase et en intensité

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001111612A (ja) * 1999-10-05 2001-04-20 Nippon Telegr & Teleph Corp <Ntt> 情報漏洩防止方法およびシステム並びに情報漏洩防止プログラムを記録した記録媒体
JP2003051022A (ja) * 2001-06-28 2003-02-21 Eastman Kodak Co 動画化コンテンツの再生を認証する方法および再生装置
JP2003281822A (ja) * 2002-03-25 2003-10-03 Teruo Furukawa データ変調回路および記録再生装置
JP2004040246A (ja) * 2002-06-28 2004-02-05 Canon Inc 情報処理装置、情報処理方法
WO2008037886A2 (fr) * 2006-09-25 2008-04-03 Centre National De La Recherche Scientifique - Cnrs - Système et procédé pour la transmission sécurisée de code binaire par codage en phase et en intensité

Similar Documents

Publication Publication Date Title
CN103081397B (zh) 加密装置、加密系统、加密方法
EP1378870B1 (en) Encryption Communication System for Generating Passwords on the Basis of Start Information on both parties of Communication
US8037309B2 (en) Portable data storage device with encryption system
KR101440328B1 (ko) 메시지 인증 코드 생성 방법 및 이를 수행하는 인증 장치
CN103548300B (zh) 加密装置以及加密方法
CN101803270A (zh) 数据加密的方法和系统
TR201107556T1 (tr) Çok fonksiyonlu otantikasyon sistemlerine yönelik iyileştirmeler.
CN102664898A (zh) 一种基于指纹识别的加密传输方法、装置及系统
CN106650325B (zh) 一种基于加密狗的软件平台管理方法
JP2007025903A (ja) 無線タグ、リーダライタ、符号化システムおよび符合化方法
CN102385710B (zh) 一种真伪验证方法和系统
CN108075879B (zh) 一种数据加密和解密的方法、装置及系统
CN102801759A (zh) 数字内容管理系统、管理与取用方法及服务交付平台服务器
EP1439660A2 (en) Encryption/decryption method for data limited in value range, apparatus and program therefor
JP2010074349A (ja) 情報処理装置および方法、プログラム、記録媒体、並びに情報処理システム
KR20080099631A (ko) 모바일 카드를 이용한 컨텐츠 사용 방법, 호스트 장치, 및모바일 카드
CN105279447A (zh) 数据加密方法、解密方法及装置
JP6097153B2 (ja) 通信システム、通信アダプタ、サーバ、携帯端末および通信方法
CN104125562A (zh) 一种可变密码的无线通讯加密方法
CN112152963B (zh) 一种智能锁、安全平台及其认证方法
JP5267983B2 (ja) タグアクセスシステム及びデータ格納方法
Kumar et al. Smart grid security with cryptographic chip integration
CN101639881A (zh) 数据传输线
Ghosh et al. A double layered additive space sequenced Audio Steganography Technique for mobile network
TWM517237U (zh) 一種光波加解密之萬用鑰匙系統

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110810

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121108

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130305