JP4538909B2 - データ記憶装置および情報処理装置 - Google Patents
データ記憶装置および情報処理装置 Download PDFInfo
- Publication number
- JP4538909B2 JP4538909B2 JP2000180052A JP2000180052A JP4538909B2 JP 4538909 B2 JP4538909 B2 JP 4538909B2 JP 2000180052 A JP2000180052 A JP 2000180052A JP 2000180052 A JP2000180052 A JP 2000180052A JP 4538909 B2 JP4538909 B2 JP 4538909B2
- Authority
- JP
- Japan
- Prior art keywords
- authentication
- key
- service
- writer
- card
- 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.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、データ記憶装置および情報処理装置に関し、例えば、ICカードと、リーダライタとのデータの授受において、一枚のICカードで、共通鍵による認証を行うサービスに関するデータの授受と、公開鍵による認証を行うサービスに関するデータの授受を可能とするデータ記憶装置および情報処理装置に関する。
【0002】
【従来の技術】
電子マネーシステムや、セキュリティシステムにおいて、IC(Integrated circuit)カードの利用が増加している。ICカードは、各種処理を行うCPU(Central Processing Unit)や、処理に必要なデータなどを記憶するメモリを内蔵しており、所定のリーダライタに電気的に接触させた状態で、または電磁波を利用して非接触で、データの送受信が行われる。なお、リーダライタとの間で、電磁波を利用して非接触でデータの送受信を行うICカードには、一般に、その電磁波により、必要な電力が供給される。
【0003】
ICカードと、リーダライタの認証には、共通鍵方式もしくは公開鍵方式が用いられる。共通鍵方式では、暗号化に使用する鍵と、復号に使用する鍵が同じである。共通鍵暗号を使うには、前もって送信者と受信者の間で共通鍵を共有する必要があるため、暗号化に使用した鍵を、通信路とは別の安全な手段を使って、通信相手に届けておく必要がある(すなわち、ICカードとリーダライタが共通鍵を予め共有していなければならない)。暗号化は、基本的には、文字の順序を入れ換える「転置(転字)」と、一定の規則に従ってある文字を別の文字に置き換える「換字」を組み合わせて行われる。どのような順序で入れ換えるか、どの文字とどの文字が置き換えてあるかを示すのが暗号アルゴリズムと鍵である。暗号化において、文字をずらすための換字暗号や文字の順序を変えるための転置暗号が基本的な暗号変換であり、ずらされる文字数などが鍵となる。
【0004】
公開鍵方式は、暗号システムにおいて、「暗号化鍵」と「復号鍵」という2つの鍵をペアで使い、そのうちの暗号化鍵は公開し、復号鍵は、鍵の発行者が管理して秘密にしておくものである。データを送信する場合は、暗号化鍵を使って通信文を暗号化し、受信した側では復号鍵を使って元に戻す。2つの鍵はある数学的な関係に基づいて決められているので、暗号化鍵から復号鍵を求めるのは不可能ではないが、計算量の点から現実的ではない。
【0005】
公開鍵暗号システムは、従来の共通鍵暗号システムに比べて、暗号化鍵は秘匿する必要がないので、暗号化鍵の配布が容易であり、暗号文を復号するには、各ユーザが個々に持っている復号鍵さえあればよいので、復号鍵を配布する必要がなく、更に、デジタル署名によるメッセージの認証機能を持つ、という利点を有するが、共通鍵暗号システムに比べて、認証処理にかかる時間が長くなる。
【0006】
デジタル署名とは、電子メールやオンライン取り引きなどにおいて、そのメッセージが正当な発信者から発信され、途中で改ざんなどが行なわれていないことを示すための方法である。通常の暗号文通信では、公開鍵で暗号化を行うが、例えば、RSA(Rivest,Shamir,Adleman)公開鍵暗号システムの場合には、逆に、「復号鍵(秘密鍵)で暗号化を行う」とデジタル署名となる。また、他の暗号方式では、署名を付加したいデータに対して、ハッシュ値を取り、それを秘密鍵で暗号化している。
【0007】
この署名を検証するには、公開鍵が用いられる(すなわち、暗号化鍵と復号鍵の役割が入れ換えられる)。公開鍵は広く公開されているので、だれでもその署名の正当性を簡単に検査することができる。もし公開鍵で暗号文を正しく復元することができ、意味のある文が得られれば、それは正しい発信者であると確認することができる。なぜなら、秘密鍵(署名を行った鍵)を知っているのは正規の発信者だけであり、公開鍵で復元できるようなデジタル署名を作成するには、そのペアとなる秘密鍵を知らなければいけないからである。また、データが改ざんされた場合、データは正しく復号することができなくなるため、改ざんの防止・検出にも利用することができる。署名の検証は、公開鍵を用いて復号した値と、別途、データから計算しなおしたハッシュ値とを比較することにより実行され、一致していれば、データは改ざんされていないと判断され、一致していなければ、データの改ざんが行われたと判断される。
【0008】
また、データの発行元が信頼のおける組織であることを証明するための証明書を発行することを目的とした第3者の組織を、認証局(CA(Certificate Authority))という。
【0009】
【発明が解決しようとする課題】
従来、例えば、ICカードを用いて駅の改札を利用したり、ICカードを用いて入室許可の認証を行う場合などの、共通鍵を用いた認証を行うサービスと、例えば、ICカードを用いて、商品の代金を支払う電子マネーサービスなどの、公開鍵を用いた認証を行うサービスを受ける場合、ユーザは、異なるICカードを保有する必要があった。すなわち、認証方法が異なるサービスは、同一のICカードで利用することができなかった。
【0010】
本発明はこのような状況に鑑みてなされたものであり、所定のリーダライタとの間で、一枚のICカードで、共通鍵による認証を行うサービスに関するデータの授受と、公開鍵による認証を行うサービスに関するデータの授受を可能とするものである。
【0011】
【課題を解決するための手段】
本発明のデータ記憶装置は、接触式および非接触式のいずれの通信方式の情報処理装置にも対応可能であって、情報処理装置に対する、入出力データの変調及び復調を制御し、情報処理装置からの所定のサービスを識別するための情報の入力を制御する第1の制御手段と、所定のサービスに対応するデータであって、所定のサービスの認証に必要な認証鍵である第1の認証鍵と第2の認証鍵のうちの少なくとも一方、および、所定のサービスを識別するための情報の記憶を制御する第2の制御手段と、認証鍵のうち、第1の認証鍵を用いた認証処理を実行する第1の認証処理実行手段と、認証鍵のうち、第2の認証鍵を用いた認証処理を実行する第2の認証処理実行手段と、第1の制御手段により入力が制御された所定のサービスを識別するための情報に基づいて、第1の認証処理実行手段と第2の認証処理実行手段のいずれかを制御して、情報処理装置との認証処理を実行させる第3の制御手段と、第1の認証鍵または第2の認証鍵の所定のサービスに対するレベルを選択する選択手段とを備え、第2の制御手段により記憶が制御されたデータには、所定のサービスの認証に必要な所定のバージョンの第1の認証鍵または第2の認証鍵が、複数のレベルで用意されており、第1の制御手段は、選択手段により選択されたレベルの第1の認証鍵または第2の認証鍵のバージョンに関する第1の情報の出力を制御するとともに、情報処理装置からの、バージョンに基づいて判定されたレベルによる認証処理を許可するか否かを示す第2の情報の入力を制御し、そのレベルによる認証処理が許可されなかった場合、選択手段は、第1の認証鍵または第2の認証鍵の異なるレベルを新たに選択し、第1の制御手段は、選択手段により新たに選択されたレベルの第1の認証鍵または第2の認証鍵の前記バージョンに関する第1の情報の出力を制御し、レベルによる認証処理が許可された場合、第3の制御手段は、第1の制御手段により入力が制御された第2の情報に基づいて、第1の認証処理実行手段と第2の認証処理実行手段のいずれかを制御して、情報処理装置との認証処理を実行させることを特徴とする。
【0018】
本発明の情報処理装置は、接触式および非接触式のいずれの通信方式のデータ記憶装置にも対応可能であって、データ記憶装置に対する、入出力データの変調及び復調を制御し、データ記憶装置への所定のサービスを識別するための情報の出力を制御する第1の制御手段と、所定のサービスに対応するデータであって、所定のサービスの認証に必要な認証鍵である複数のレベルの複数のバージョンの第1の認証鍵と第2の認証鍵のうちの少なくとも一方、および、所定のサービスを識別するための情報の記憶を制御する第2の制御手段と、所定のサービスに対応する情報を表示する表示手段と、ユーザによる所定のサービスの選択を示す信号の入力を受ける入力手段と、認証鍵のうち、第1の認証鍵を用いた認証処理を実行する第1の認証処理実行手段と、認証鍵のうち、第2の認証鍵を用いた認証処理を実行する第2の認証処理実行手段と、第1の認証処理実行手段、第2の認証処理実行手段、および第2の制御手段の処理を制御する第3の制御手段と、第1の制御手段により入力が制御される、データ記憶装置からの、所定のサービスに対する所定のレベルの第1の認証鍵もしくは第2の認証鍵のバージョンに関する第1の情報に基づいて、認証処理を許可するか否かを判断する判断手段とを備え、第1の認証処理実行手段もしくは第2の認証処理実行手段により認証が可能な所定のサービスが複数ある場合、表示手段は、認証が可能な複数の所定のサービスに対応する情報を表示し、第3の制御手段は、入力手段により入力される所定のサービスの選択を示す信号に基づいて、第1の認証処理実行手段と第2の認証処理実行手段のいずれかを制御して、判断手段により認証処理が許可されたレベルのバージョンの第1の認証鍵または第2の認証鍵でデータ記憶装置との認証処理を実行させ、第1の制御手段は、判断手段による判断結果に従って、レベルによる認証処理を許可するか否かを示す第2の情報の、データ記憶装置への出力を制御することを特徴とする。
【0026】
本発明のデータ記憶装置においては、接触式および非接触式のいずれの通信方式の情報処理装置にも対応可能であって、情報処理装置に対する、入出力データの変調及び復調が制御され、情報処理装置からの所定のサービスを識別するための情報の入力が制御され、所定のサービスに対応するデータであって、所定のサービスの認証に必要な認証鍵である第1の認証鍵と第2の認証鍵のうちの少なくとも一方、および、所定のサービスを識別するための情報の記憶が制御され、認証鍵のうち、第1の認証鍵を用いた認証処理が実行され、認証鍵のうち、第2の認証鍵を用いた認証処理が実行され、入力が制御された所定のサービスを識別するための情報に基づいて、第1の認証鍵を用いた認証処理と第2の認証鍵を用いた認証処理のいずれかが制御されて、情報処理装置との認証処理が実行される。また、第1の認証鍵または第2の認証鍵の所定のサービスに対するレベルが選択され、記憶が制御されたデータには、所定のサービスの認証に必要な所定のバージョンの第1の認証鍵または第2の認証鍵が、複数のレベルで用意されており、選択されたレベルの第1の認証鍵または第2の認証鍵のバージョンに関する第1の情報の出力が制御されるとともに、情報処理装置からの、バージョンに基づいて判定されたレベルによる認証処理を許可するか否かを示す第2の情報の入力が制御され、そのレベルによる認証処理が許可されなかった場合、第1の認証鍵または第2の認証鍵の異なるレベルが新たに選択され、新たに選択されたレベルの第1の認証鍵または第2の認証鍵のバージョンに関する第1の情報の出力が制御され、そのレベルによる認証処理が許可された場合、入力が制御された第2の情報に基づいて、第1の認証鍵を用いた認証処理と第2の認証鍵を用いた認証処理のいずれかが制御されて、情報処理装置との認証処理が実行される。
【0027】
本発明の情報処理装置においては、接触式および非接触式のいずれの通信方式のデータ記憶装置にも対応可能であって、データ記憶装置に対する、入出力データの変調及び復調が制御され、データ記憶装置への所定のサービスを識別するための情報の出力が制御され、所定のサービスに対応するデータであって、所定のサービスの認証に必要な認証鍵である複数のレベルの複数のバージョンの第1の認証鍵と第2の認証鍵のうちの少なくとも一方、および、所定のサービスを識別するための情報の記憶が制御され、所定のサービスに対応する情報が表示され、ユーザによる所定のサービスの選択を示す信号の入力が受けられ、認証鍵のうち、第1の認証鍵を用いた認証処理が実行され、認証鍵のうち、第2の認証鍵を用いた認証処理が実行され、第1の認証鍵を用いた認証処理、第2の認証鍵を用いた認証処理、および所定のサービスに対応するデータであって、所定のサービスの認証に必要な第1の認証鍵と第2の認証鍵のうちの少なくとも一方、および、所定のサービスを識別するための情報の記憶が制御する制御される。また、第1の認証鍵を用いた認証処理もしくは第2の認証鍵を用いた認証処理により認証が可能な所定のサービスが複数ある場合、認証が可能な複数の所定のサービスに対応する情報が表示され、入力される所定のサービスの選択を示す信号に基づいて、第1の認証鍵を用いた認証処理と第2の認証鍵を用いた認証処理のいずれかが制御されて、データ記憶装置との認証処理が実行される。さらに、入力が制御される、データ記憶装置からの、所定のサービスに対する所定のレベルの第1の認証鍵または第2の認証鍵のバージョンに関する第1の情報に基づいて、認証処理を許可するか否かが判断され、その判断結果に従って、そのレベルによる認証処理を許可するか否かを示す第2の情報の、データ記憶装置への出力が制御される。
【0028】
【発明の実施の形態】
以下、図を参照して、本発明の実施の形態について説明する。
【0029】
図1に、ICカードとリーダライタの関係を示す。ICカード1は、共通鍵方式による認証と、公開鍵方式による認証の両方の認証サービスに対応することが可能である(それぞれの認証方法については後述する)。非接触式共通鍵対応リーダライタ2−1は、ICカード1と非接触で通信を行い、共通鍵方式で認証を行う。非接触式公開鍵対応リーダライタ2−2は、ICカード1と非接触で通信を行い、公開鍵方式で認証を行う。接触式公開鍵対応リーダライタ2−3は、接触して通信を行い、公開鍵方式で通信を行う。
【0030】
例えば、ICカード1に定期券や運賃の支払いを行うことができるプリペイドカードなどのサービスを提供する情報が含まれており、ICカード1を用いて駅の改札を利用する場合や、ICカード1に、IDカードとしての機能が含まれており、ICカード1を用いて入室許可の認証を行う場合などの、短い処理時間が求められる処理においては、非接触式共通鍵対応リーダライタ2−1を用いて、共通鍵による非接触の通信が行われる。
【0031】
例えば、ICカード1に、電子マネーのサービスを提供する情報が含まれており、店舗などでユーザが購買した商品の清算の処理を行う場合などは、公開鍵方式により認証が行われ、認証処理に時間がかかる。このため、処理時間を特に気にしないような場合は、非接触式公開鍵対応リーダライタ2−2を用いて、非接触で通信を行ってもよいし、処理時間を短縮するために、接触式公開鍵対応リーダライタ2−3を用いて、接触して通信を行うようにしてもよい。
【0032】
図1においては、非接触式共通鍵対応リーダライタ2−1乃至接触式公開鍵対応リーダライタ2−3を、個別のリーダライタとして説明しているが、必要に応じて、1つのリーダライタで、複数の通信方法や複数の認証方法を用いることができるようにしてもよい。
【0033】
次に、図2を用いて、カード発行者、サービス提供者、およびカード保持者について説明する。
【0034】
カード発行者11は、サービス提供者12に、ICカード1を保有するカード保持者13に対して、ICカード1を用いたサービスの提供を行うことを認可し、ICカード1の発行を希望したカード保持者13に対して、ICカード1を発行する。
【0035】
カード発行者11から、サービスの認可を受けたサービス提供者12は、カード発行者11が有するサービス登録用リーダライタ2−11に、自分自身がカード保持者13に提供するサービスに対応するデータ(図6を用いて後述するService Individual Info)を登録する。この登録については、例えば、サービス提供者12が有する図示しないパーソナルコンピュータなどから、インターネットなどを介して、サービス登録用リーダライタ2−11に登録するようにしてもよいし、オペレータが手動で登録するようにしてもよい。
【0036】
カード保持者13は、サービス登録用リーダライタ2−11を用いて、カード発行者11から発行されたICカード1に、希望するサービスを登録させることができる。サービス登録用リーダライタ2−11と、ICカード1のサービス登録処理については、図29および図30を用いて後述する。
【0037】
そして、カード保持者13は、自分自身のICカード1に登録されているサービスの削除を行いたい場合、カード発行者11が管理するサービス登録用リーダライタ2−11、もしくは、サービス提供者12が管理する一般リーダライタ2−12を用いて、自分自身のICカード1から、サービスを削除させることができる。ICカード1とサービス登録用リーダライタ2−11のサービス削除処理については、図31および図32、ICカード1と一般リーダライタ2−12のサービス削除処理については、図33および図34を用いて後述する。
【0038】
また、カード保持者13は、例えば、ICカード1に、電子マネーサービスとプリペイドサービスが登録されており、それぞれの価値情報が、ICカード1のそれぞれのサービスに関する情報に記録されている状況で、電子マネーの価値の一部を、プリペイドの価値へ置き換えたい場合、サービス提供者12が管理するモジュール間通信用リーダライタ2−13を用いて、自分自身のICカード1の、図13を用いて後述する公開鍵モジュールと共通鍵モジュールの間で、モジュール間通信を実行させることができる。モジュール間通信用リーダライタ2−13は、共通鍵方式と、公開鍵方式の2方式に対応するようになされている。ICカード1とモジュール間通信用リーダライタ2−13との処理については、図48乃至図51を用いて後述する。
【0039】
更に、カード保持者13は、失効してしまった認証鍵の更新(バージョンアップ)を行いたい場合、サービス提供者12が管理する一般リーダライタ2−12、もしくは、バージョンアップ用リーダライタ2−14を用いて、自分自身のICカード1に登録されている認証鍵のバージョンアップを行わせることができる。ICカード1とバージョンアップ用リーダライタ2−14との鍵バージョンアップ処理については、図43および44を用いて、ICカード1と一般リーダライタ2−12との鍵バージョンアップ処理については、図45乃至47を用いて後述する。
【0040】
図3は、ICカード1の構成を示すブロック図である。
【0041】
ICカード1は、リーダライタ2(リーダライタ2−1乃至2−3、もしくはリーダライタ2−11乃至2−14を特に区別する必要のない場合については、これらを総称して、リーダライタ2と称するものとする)との通信を行う通信部21と、データ処理を実行するICカード処理部22から構成されている。
【0042】
通信部21は、対応するICカード1が、図1を用いて説明した非接触式共通鍵対応リーダライタ2−1、もしくは非接触式公開鍵対応リーダライタ2−2である場合、非接触式共通鍵対応リーダライタ2−1、もしくは非接触式公開鍵対応リーダライタ2−2と、電磁波を用いて通信するためのコイルを備えている。また、通信部21は、ICカード1が、図1を用いて説明した非接触式共通鍵対応リーダライタ2−1、および非接触式公開鍵対応リーダライタ2−2のみならず、接触式公開鍵対応リーダライタ2−3との通信にも対応している場合、非接触式共通鍵対応リーダライタ2−1、もしくは非接触式公開鍵対応リーダライタ2−2と、電磁波を用いて通信するためのコイルと、接触式公開鍵対応リーダライタ2−3と通信するための接触端子を備えている。
【0043】
通信部21は、リーダライタ2から送信されたデータを受信し、受信したデータが、例えば、ASK(Amplitude Shift Keying)やBPSK(Binary Phase Shift Keying)を用いて変調されている場合、所定の処理により、受信したデータを復調し、ICカード処理部22の制御部31に供給するとともに、ICカード処理部22の処理により生成されたデータを、制御部31から供給され、ASKやBPSKを用いて変調し、リーダライタ2に送信する。
【0044】
ICカード処理部22は、制御部31、メモリ32、および暗号処理部33より構成されている。制御部31は、通信部21から供給されたデータに従って、暗号処理部33を制御し、リーダライタ2との認証処理等に必要な暗号処理を実行させたり、必要に応じて、メモリ32に記録されているデータを読み込んで、通信部21を介して、リーダライタ2に送信する。
【0045】
メモリ32は、カードID、サービス登録用の認証鍵Kreg、認証局の公開鍵であるCA_Pubが記録されているメモリ領域44、図8を用いて後述するService Relation Table(SRT)45、および図6を用いて後述するService Registration Area(SRA)46で構成されている。
【0046】
暗号処理部33は、公開鍵処理部41、共通鍵処理部42、その他の暗号処理部43で構成されている。公開鍵処理部41乃至その他の暗号処理部43が実行する処理に関する詳細は、図5を用いて後述する。
【0047】
次に、図4は、ICカード1の、図3と異なる構成を示すブロック図である。なお、図4のICカード1においては、図3における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する(以下、同様)。
【0048】
ICカード1は、共通鍵サービスに関するリーダライタ2との通信を実行する通信部51、通信部51の処理によって得られたデータの処理を実行する共通鍵サービス処理部52、公開鍵サービスに関するリーダライタ2との通信を実行する通信部53、通信部53の処理によって得られたデータの処理を実行する公開鍵サービス処理部54から構成されている。
【0049】
通信部51は、非接触式共通鍵対応リーダライタ2−1と通信を行うためのコイルを備えており、通信部21と同様に、例えば、ICカード1から送信されるデータが、ASKやBPSKを用いて変調されている場合、所定の処理により、受信したデータを復調し、共通鍵サービス処理部52の制御部61に供給するとともに、共通鍵サービス処理部52の処理により生成されたデータを、制御部61から供給され、ASKやBPSKを用いて変調し、リーダライタ2に送信する。
【0050】
共通鍵サービス処理部52は、制御部61、メモリ62、および暗号処理部63から構成されている。制御部61は、通信部51から供給されたデータに従って、暗号処理部63を制御し、ICカード1との認証処理等に必要な処理を実行させたり、必要に応じて、メモリ62に記録されているデータを読み込んで、通信部51を介して、リーダライタ2に送信する。
【0051】
メモリ62は、図3を用いて説明したメモリ32と同様に、メモリ領域44、SRT45、およびSRA46で構成されている。メモリ領域44には、カードID、サービス登録用の認証鍵Kreg、および、モジュール間通信で用いられる共有秘密鍵K_commonが記録されている。
【0052】
暗号処理部63は、共通鍵処理部42、その他の暗号処理部43で構成されている。すなわち、共通鍵サービス処理部52においては、公開鍵に関するサービスを処理しないため、暗号処理部63には、図3を用いて説明した公開鍵処理部41は備えられていない。
【0053】
通信部53は、非接触式公開鍵対応リーダライタ2−2、あるいは、接触式公開鍵対応リーダライタ2−3と通信を行うためのコイルもしくは接触端子を備えている。通信部53も、通信部21と同様に、例えば、ICカード1から送信されるデータが、ASKやBPSKを用いて変調されている場合、所定の処理により、受信したデータを復調し、公開鍵サービス処理部54の制御部61に供給するとともに、公開鍵サービス処理部54の処理により生成されたデータを、制御部61から供給され、ASKやBPSKを用いて変調し、リーダライタ2に送信する。
【0054】
公開鍵サービス処理部54は、制御部61、メモリ62、および暗号処理部33から構成されている。すなわち、暗号処理部63に代わって、図3を用いて説明した暗号処理部33が備えられている以外は、共通鍵サービス処理部と、基本的に同様の構成である。
【0055】
次に、図5を用いて、公開鍵処理部41乃至その他の暗号処理部43について説明する。
【0056】
図5(A)に示されるように、公開鍵処理部41には、例えば、RSA(Rivest,Shamir,Adleman)公開鍵暗号システムを利用して署名の生成および検証を行うRSA署名生成・検証部71や、DSA(Digital Signature Algorithm)方式を利用して署名の生成および検証を行うDSA署名生成・検証部72が備えられている。
【0057】
RSA署名生成・検証部71では、2つの鍵によって暗号化と復号を行う。RSA暗号系では、2つの鍵は、例えば、次のようにして決められる。
【0058】
ある2つの大きな素数pとqを選んで、その積n=pqを求める。そして、(p−1)×(q−1)以下で(p−1)×(q−1)と互いに素な整数eを選び、次の式(1)を満たす整数dを求める。
e×d = 1 mod ((p−1)×(q−1))・・・(1)
すると(e,n)が公開鍵、dが秘密鍵となる。
【0059】
文Mを暗号化して、暗号化データCを生成する場合、次の式(2)を用いる。
C=M e mod n・・・(2)
また、暗号化データCを復号する場合、次の式(3)を用いる。
M=C d mod n・・・(3)
【0060】
DSA署名生成・検証部72には、図示しない乱数生成部が備えられている。DSAは、DLP(Discrete Logarithm Problem;離散対数問題)の困難性をベースとしたElGamal署名を改良して、署名の長さを160bit×2に短縮し、署名鍵の生成等を特定の方法で運用するデジタル署名アルゴリズムである。署名生成において、ハッシュ関数(データ圧縮関数)にSHA‐1(Secure Hash Algorithm‐1)を使うことを前提としている。DSA方式は、米国政府機関であるNIST(米国商務省標準技術局:National Institute of Standards and Technology)により、電子署名の標準として開発され、米国連邦情報処理標準(Federal Information Processing Standard)FIPS PUB 186に定められた。
【0061】
また、図5(B)に示されるように、共通鍵処理部42には、例えば、DES(Data Encryption Standard)共通鍵暗号システムによる認証処理を行うDES処理部73、RC5(Rivest Cipher5)方式による認証処理を行うRC5処理部74、およびAES(Advanced Encryption Standard)方式による認証処理を行うAES処理部75が備えられている。
【0062】
DES共通鍵暗号システムは、1977年にNISTで制定され、1981年に米国規格協会(ANSI:American National Standards Institute)により標準化された共通鍵暗号システムである。DES共通鍵暗号システムの鍵の認証アルゴリズムは公開されており、共通鍵暗号システムの代表として広く普及している。
【0063】
DES共通鍵暗号システムは、データを64bit単位に区切って暗号化および復号処理を行う暗号システムである。DESアルゴリズムにおいては、暗号化と復号は対称をなしており、受信した暗号文を同じ鍵を使ってもう一度変換すれば元の文章が復元できる。また、DES共通鍵暗号システムでは、簡単なビット位置転置とXOR演算の組み合わせ論理を16回繰り返している。内部的にはデータのフィードバックや条件判断部分がなく、処理が逐次的なので、パイプライン化すれば高速に処理することができる。もともとLSI化することを前提にして決められたアルゴリズムであり、DESチップも多く作られている。
【0064】
RC5とは、RSA Data Security社と、マサチューセッツ工科大学が開発したRCシリーズの共通鍵暗号方式であり、1995年に提案された。RC5は、可変長ブロックサイズ、可変長の鍵サイズ、および可変長回数(元データや鍵によって、ビット回転の量が変わる、Data-dependent-rotations(データ依存ビット回転)アルゴリズム)のラウンドを有するブロック暗号化方式である。そのブロックサイズとしては、32、64、128ビットをとることが可能であり、ラウンド数は0から255、鍵サイズは0から2048ビットまで可変である。RC5のアルゴリズムは公開されていて、RFC2040 として入手することが可能である。
【0065】
また、AES方式は、NISTによって選定作業が行われている、米国政府の次世代標準暗号化方式である。現在標準暗号として用いられているDESが制定されたのは1977年であり、近年のコンピュータの高性能化、暗号理論の発展に伴い、その信頼性は年々低下している。そこで、NISTはDESに代わる次世代の暗号標準として、AES候補となる暗号方式を全世界から公募した。世界中から集まった15の方式が審査を受けており、21世紀初頭までに決定される予定である。
【0066】
そして、その他の暗号処理部43は、例えば、デジタル署名を用いる場合に、メッセージに対して、不可逆的なハッシュ関数を作用させることで、「メッセージダイジェスト」を作成し、メッセージダイジェストを署名鍵により暗号化することによって、デジタル署名を作成する等の、公開鍵処理部41もしくは共通鍵処理部42が処理する以外の暗号処理を実行する。その他の暗号処理部43には、図5(C)に示されるように、例えば、署名生成および署名検証に用いられるハッシュ関数SHA-1の処理を行うSHA-1処理部76、および相互認証プロトコルで利用される真性乱数を生成する真性乱数生成部77が備えられるか、あるいは、図5(D)に示されるように、署名生成および署名検証に用いられるハッシュ関数MD5の処理を行うMD5処理部78、および相互認証プロトコルで利用される擬似乱数(ある有限な桁数の数字の範囲で出来るだけランダムな数字列をもつ人工的な乱数)を生成する擬似乱数生成部79が備えられている。
【0067】
デジタル署名においては、公開鍵暗号方式を用いるため、処理速度が遅いことが問題となるが、メッセージダイジェストを作成することによって、デジタル署名作成にかかる時間が削減される。更に、ハッシュ関数は、データの改ざんに対して大きく反応する特性を有していることから、デジタル署名を検証する際に、デジタル署名を検証鍵で復号して取り出したメッセージダイジェストと、送られてきたメッセージ本文にハッシュ関数を作用させて作成したメッセージダイジェストを比較することにより、メッセージ本文が改ざんされていないかどうかを容易に確認することができる。
【0068】
SHA-1は任意の長さのメッセージから160bitのハッシュ値を生成する一方向ハッシュ関数である。DSA同様、NISTが開発したもので、NISTによってFIPS PUB 180 に定められた。標準原案(N544)は、基本的にFIPS PUB 180に準拠したものとなっている。
【0069】
そして、MD5は、広く一般に使われているメッセージダイジェスト関数アルゴリズムのうちの1つで、RFC1321で定義されている。MD5は、32bitコンピュータ上で効率よく計算できるように、アルゴリズムが決められている。ほかにMD4やMD2という、類似のアルゴリズムもある。
【0070】
次に、図6を用いて、図3および図4を用いて説明したICカード1のSRA46に格納されている情報について説明する。
【0071】
SRA46は、ICカード1を保有するユーザが、図2を用いて説明した一般リーダライタ2−12などを用いて、複数のサービスを受けることができるようにするために、それらの複数のサービスを受けるための情報(図2を用いて説明したサービス登録用リーダライタ2−11を用いて登録された情報)を記録するためのメモリ領域である。
【0072】
すなわち、SRA46には、そのICカード1に登録されているサービスの情報であるService Individual Info1乃至Nが登録されており、それぞれのService Individual Infoには、サービスの種類を識別するためのサービスID、サービス毎に予め定められた、1つ、もしくは複数の認証用鍵情報(図6におけるService Individual Info kにおいては、1乃至nのn個の認証用鍵情報)、サービスを受けるために利用されるサービスデータ、および、鍵情報をバージョンアップするための認証鍵Kake_vupと、必要に応じて、認証鍵に対する証明書などが登録されている。
【0073】
認証用鍵情報には、例えば、認証鍵ID、鍵のレベルおよびバージョン、認証方式、および、複数の認証鍵を識別するために用いられる識別用認証鍵Kake(必要に応じて、認証鍵に対する証明書)などが含まれる。また、サービスデータには、ユーザID以外に、Service Individual Info kが、例えば、電子マネーサービスである場合、電子マネーの残高情報や累積ポイント等、Service Individual Info kが、例えば、自動改札サービスである場合、有効区間情報等が格納される。
【0074】
次に、図7を用いて、図6のService Individual Infoに登録される認証用鍵情報について説明する。
【0075】
図7(A)においては、領域No.1および領域No.2のそれぞれに対応して、認証鍵ID、鍵のバージョン、認証方式、識別用認証鍵Kake、および、必要に応じて、証明書データが登録されている。図7(A)のように認証用鍵情報が登録されている場合の認証鍵識別処理については、図20乃至図24を用いて後述する。
【0076】
図7(B)においては、領域No.1乃至領域No.7のそれぞれに対応して、認証鍵ID、鍵のレベル、鍵のバージョン、認証方式、識別用認証鍵Kake、および、必要に応じて、証明書データが登録されている。図7(B)のように、鍵のレベルを含んだ認証用鍵情報が登録されている場合の認証鍵識別処理については、図27および図28を用いて後述する。
【0077】
次に、図8を用いて、図3および図4を用いて説明したICカード1のSRT45に格納されている情報について説明する。
【0078】
SRT45には、IDカード1に複数のサービスが登録されている場合に、あるサービスを行いながら別のサービスのサービスデータに対してアクセスを許可するためのデータが登録されている。SRT45は、ICカード1に登録されているサービスIDが記載されている登録サービスIDフィールド(図8においては、サービスIDA乃至Jとして記載されている)と、それぞれのサービスIDに対応するパーミッション情報が記載されているパーミッション情報フィールドで構成されている。
【0079】
パーミッション情報の登録サービスIDフィールドには、登録されているサービスのサービスIDがすべて列挙されている。そして、パーミッション情報フィールドには、対応するサービスが実行されている場合に、登録サービスIDフィールドに記載されているサービスにアクセスすることができるサービスIDと、どのような処理を行うことを許可するかを示す情報が記載されている。例えば、読み出しおよび書き込みが許可されている場合、パーミッション情報として「rw」が記載され、読み出しのみ許可されている場合、パーミッション情報として「ro」が記載され、鍵のバージョンアップが許可されている場合、パーミッション情報として「vup」が記載される。「rw」と「ro」は同じサービスIDに対して許可されないが、「rw」と「vup」および「ro」と「vup」は、同じサービスIDに対して許可され、パーミッション情報フィールドに列挙することが可能である。
【0080】
すなわち、SRT45に、図8に示されるパーミッション情報が登録されている場合、サービスIDがCで示されるサービスの実行中には、サービスIDがBで示されるサービスに対して、読み出し、および書き込みが許可され、更に、サービスIDがDで示されるサービスの実行中においても、サービスIDがBで示されるサービスに対しての読み出しが許可され、サービスIDがEで示されるサービスの実行中に、サービスIDがDで示されるサービスに対して、読み出し、書き込み、および鍵のバージョンアップが許可され、以下、サービスIDがEで示されるサービス、サービスIDがFで示されるサービス、サービスIDがGで示されるサービス、もしくは、サービスIDがIで示されるサービスにおいても、対応するパーミッション情報フィールドに記載されている情報に基づいて、他のサービスIDに対応する処理の実行中に、パーミッション情報に対応した処理が許可される。
【0081】
これらのパーミッション情報の登録は、ICカード1に、対応するサービスを登録する場合に行われる。すなわち、ユーザが、サービス登録用リーダライタ2−11を用いて、自分自身が保有するICカード1に対して、サービスIDがFで示されるサービスを登録する場合、例えば、サービスIDがGで示されるサービスがすでに登録され、サービスIDがHで示されるサービスが登録されていないならば、登録サービスIDフィールドのFに対応するパーミッション情報フィールドには、サービスIDがGで示されるサービスに対応するパーミッション情報しか登録することができない。そして、ユーザが、サービスIDがHで示されるサービスをIDカード1に登録した後、サービスIDがFで示されるサービスをアップデートすることにより、サービスIDがFで示されるサービスに対する、サービスIDがHで示されるサービスのパーミッション情報を登録することができる。
【0082】
次に、図9は、リーダライタ2の構成を示すブロック図である。
【0083】
リーダライタ2は、ICカード1との通信を行う通信部91と、データ処理を実行するリーダライタ処理部92から構成されている。
【0084】
通信部91は、ICカード1との通信方法によって(すなわち、リーダライタ2が、図1を用いて説明した非接触式と接触式のいずれの通信方式を採用しているかによって)、電磁波を用いて通信するためのコイルのみを備えるか、もしくは、電磁波を用いて通信するためのコイル、および接触式により通信するための接触端子を備える構造を有している。
【0085】
通信部91は、ICカード1から送信されたデータを受信し、受信したデータが、例えば、ASKやBPSKを用いて変調されている場合、所定の処理により、受信したデータを復調し、リーダライタ処理部92の制御部101に供給するとともに、リーダライタ処理部92の処理により生成されたデータを、制御部101から供給され、ASKやBPSKを用いて変調し、ICカード1に送信する。
【0086】
リーダライタ処理部92は、制御部101、暗号処理部102、メモリ103、通信部104、表示部105、および入力部106より構成されている。制御部101は、通信部91から供給されたデータに従って、暗号処理部102を制御し、ICカード1との認証処理等に必要な暗号処理を実行させたり、必要に応じて、メモリ103に記録されているデータを読み込んで、通信部91を介して、ICカード1に送信したり、ユーザが入力部106を用いて入力した各種操作に対応した信号や、ネットワークを介して、通信部104に入力された制御信号の入力を受け、これらの信号に従って、処理を実行し、その結果を表示部105に表示させる。
【0087】
また、通信部104には、ドライブ114も接続されており、ドライブ114に装着される磁気ディスク115、光ディスク116、光磁気ディスク117、および半導体メモリ118などとデータの授受を行ことができる。
【0088】
暗号処理部102は、図3を用いて説明した暗号処理部33と同様の構成を有しているので、その説明は省略する。
【0089】
メモリ103には、ICカード1と所定の処理を実行するための情報が記憶されている。その情報は、リーダライタ2が、図2を用いて説明した、サービス登録用リーダライタ2−11乃至バージョンアップ用リーダライタ2−14のいずれに対応するものであるかによって異なる。図10乃至図14を用いて、サービス登録用リーダライタ2−11乃至バージョンアップ用リーダライタ2−14のメモリ103に記憶されているデータについて説明する。
【0090】
図10に示される、サービス登録用リーダライタ2−11のメモリ103には、ICカード1のメモリ32のSRA46にデータを登録もしくは削除する場合に用いられる認証鍵Kregが記憶され(必要に応じて認証鍵の証明書も記憶されている)、ICカード1に登録するための各種サービスに対応するService Individual Info1乃至nが記憶されている。
【0091】
図11に示される、一般リーダライタ2−12のメモリ103には、この一般リーダライタ2−12で処理することが可能なサービスに対応するサービスIDと、それに対応する認証鍵リスト、および鍵失効情報が記憶されている。また、一般リーダライタ2−12に、鍵バージョンアップのサービスを可能とさせる場合、一般リーダライタ2−12のメモリ103には、新バージョンの鍵などの情報も、あわせて記憶される。
【0092】
図12に示される、モジュール間通信用リーダライタ2−13のメモリ103には、一般リーダライタ2−12のメモリ103に記憶されている情報と同様に、このモジュール間通信用リーダライタ2−13で処理することが可能なサービスに対応するサービスIDと、それに対応する認証鍵リスト、および鍵失効情報が記憶されている。モジュール間通信とは、図13に示されるように、共通鍵方式および公開鍵方式の2方式に対応するようになされているモジュール間通信用リーダライタ2−13に、公開鍵モジュール121(例えば、図4を用いて説明した、ICカード1の通信部53および公開鍵サービス処理部54に対応する)と、共通鍵モジュール122(例えば、図4を用いて説明したICカード1の通信部51および共通鍵サービス処理部52に対応する)を有するICカード1を装着し、公開鍵モジュール121と共通鍵モジュール122とのデータの通信を、モジュール間通信用リーダライタ2−13を介して行うことである。モジュール間通信に関する処理の詳細は、図48乃至図51を用いて後述する。
【0093】
そして、図14に示される、バージョンアップ用リーダライタ2−14のメモリ103には、装着されたICカード1に登録されているサービスの認証鍵をバージョンアップするための、サービスIDと、そのサービスIDに対応するバージョンアップ用認証鍵Kake_vupおよび認証鍵Kakeのリストが記憶されている。
【0094】
ICカード1とリーダライタ2とが通信を行う場合、いくつかの例外となる処理を除いて、はじめに、ICカード1とリーダライタ2が相互認証するために、通信を行うサービスを相互に識別し、そのサービスの認証鍵を相互に識別する必要がある。図15のフローチャートを参照して、ICカード1とリーダライタ2の相互認証処理について説明する。
【0095】
まず、ステップS1において、リーダライタ2は、必要に応じて、ICカード1と通信して必要なデータの授受を行うことにより、図16および図18を用いて後述するリーダライタ2のサービス識別処理を実行する。そして、ステップS2において、ICカード1は、必要に応じて、リーダライタ2と通信して必要なデータの授受を行うことにより、図17および図19を用いて後述するICカード1のサービス識別処理を実行する。
【0096】
そして、ステップS1のリーダライタ2のサービス識別処理およびステップS2のICカード1のサービス識別処理が正常終了した場合、ステップS3において、リーダライタ2は、必要に応じて、ICカード1と通信して必要なデータの授受を行うことにより、図20、図22および図27を用いて後述するリーダライタ2の認証鍵識別処理を実行する。そして、ステップS4において、ICカード1は、必要に応じて、リーダライタ2と通信して必要なデータの授受を行うことにより、図21、図23および図28を用いて後述するICカード1の認証鍵識別処理を実行する。
【0097】
次に、図16のフローチャートを参照して、複数のサービスに対応しているICカード1と、複数のサービスに対応しているリーダライタ2において、ユーザが所望のサービスを入力し、そのサービスの実行が可能か否かを判断することにより、図15のステップS1において実行されるリーダライタ2のサービス識別処理について説明する。
【0098】
リーダライタ2の制御部101は、ステップS11において、ICカード1に対し、通信部91を介して、ICカード検出コマンドを送信し、ステップS12において、ICカード1からACK信号(後述する図17のステップS22において、ICカード1が送信した信号)を受信したか否かを判断する。ステップS12において、ACK信号が受信されていないと判断された場合、ACK信号が受信されたと判断されるまで、ステップS12の処理が繰り返される。
【0099】
ステップS12において、ACK信号を受信したと判断された場合(すなわち、ICカード1が、リーダライタ2に装着された場合)、ステップS13において、制御部101は、ユーザが入力部106を用いて入力した操作を示す信号に従って、または、予め決められたサービスに基づいて、ユーザが希望するサービスに対応するサービスIDを、通信部91を介して、ICカード1に送信する。
【0100】
ステップS14において、制御部101は、ICカード1から送信される信号(後述する図17のステップS25もしくはステップS26において、ICカード1が送信した信号)を受信する。ステップS15において、制御部101は、ステップS14において受信したデータは、ACK信号か否かを判断する。ステップS15において、受信した信号がACK信号ではない(すなわちNACK信号である)と判断された場合、ステップS16において、制御部101は、エラーメッセージに対応するデータを表示部105に出力して表示させ、処理を終了する(すなわち、処理は、図15のステップS3には進まない)。ステップS15において、受信した信号がACK信号であると判断された場合、処理は、図15のステップS3に進む。
【0101】
次に、図17のフローチャートを参照して、図15のステップS2において、図16を用いて説明したリーダライタ2のサービス識別処理と並行して実行される、ICカード1のサービス識別処理について説明する。なお、ここでは、図3を用いて説明したICカード1において処理が行われるものとして説明するが、図4を用いて説明したICカード1によって処理が実行される場合においても、基本的に同様の処理が実行される。
【0102】
ICカード1の制御部31は、ステップS21において、図16のステップS11において、リーダライタ2が送信したICカード検出コマンドを、通信部21を介して受信し、ステップS22において、リーダライタ2にACK信号を送信する。
【0103】
制御部31は、ステップS23において、図16のステップS13において、リーダライタ2が送信したサービスIDを、通信部21を介して受信し、ステップS24において、受信したサービスIDは、ICカード1の対応するモジュール(ここでは、図3を用いて説明したICカード1における処理について説明しているので、ICカード処理部22のメモリ32に対応するが、例えば、図4を用いて説明したICカード1の場合、リーダライタ2が対応している方式により、共通鍵サービス処理部52のメモリ62あるいは、公開鍵サービス処理部のメモリ62に対応する)内に登録されているIDであるか否か、すなわち、ステップS23において受信したサービスIDが、図6を用いて説明したSRA46に登録されているか否かを判断する。
【0104】
ステップS24において、受信したサービスIDが、モジュール内に登録されていると判断された場合、ステップS25において、制御部31は、通信部21を介して、リーダライタ2にACK信号を送信し、処理は、図15のステップS4に進む。ステップS24において、受信したサービスIDが、モジュール内に登録されていないと判断された場合、ステップS26において、制御部31は、通信部21を介して、リーダライタ2にNACK信号を送信し、処理が終了される(すなわち、図15のステップS4には進まない)。
【0105】
次に、図18のフローチャートを参照して、複数のサービスに対応しているICカード1と、複数のサービスに対応しているリーダライタ2において、該当するICカード1とリーダライタ2が実行可能なサービスを抽出して、リーダライタ2の表示部105に表示させ、それらのサービスの中から、ユーザが所望するサービスを選択させることにより、サービス識別を行う場合における、図15のステップS1において実行される、リーダライタ2のサービス識別処理について説明する。
【0106】
リーダライタ2の制御部101は、ステップS31において、サービスIDリスト送信コマンドを、ICカード1に、通信部91を介して送信し、ステップS32において、後述する図19のステップS52において、ICカード1が送信した、サービスIDリストを受信したか否かを判断する。ステップS32において、サービスIDリストを受信していないと判断された場合、サービスIDリストを受信したと判断されるまで、ステップS32の処理が繰り返される。
【0107】
ステップS32において、サービスIDリストを受信したと判断された場合、ステップS33において、制御部101は、受信したサービスIDリストに記載されているサービスIDは、リーダライタ2が対応しているサービスが含まれているか否か(すなわち、リーダライタ2のメモリ103に記憶されているサービスIDを含んでいるか否か)を判断する。
【0108】
ステップS33において、受信したサービスIDリストに、リーダライタ対応サービスが含まれていると判断された場合、ステップS34において、制御部101は、サービスIDリストに含まれていた対応サービスが複数であるか否かを判断する。ステップS34において、対応サービスが複数ではない(すなわち1つだけである)と判断された場合、処理は、ステップS37に進む。
【0109】
ステップS34において、対応サービスが複数であると判断された場合、制御部101は、ステップS35において、複数の対応サービスを表示部105に表示させるためのデータを生成し、表示部105に出力して表示させ、ステップS36において、入力部106から、ユーザが希望するサービスの入力を受ける。あるいは、サービスそれぞれに、優先度情報を含ませておき、複数の対応サービスのうちから、優先度の最も高いサービスが自動的に選択されるようにしてもよい。
【0110】
ステップS37において、制御部101は、ステップS34において、対応サービスがただ1つであると判断された場合は、そのサービスに対応するサービスIDを、ステップS34において、対応サービスが複数であると判断された場合は、ステップS36において、ユーザが入力部106を用いて入力した希望するサービスに対応するサービスIDを、通信部91を介して、ICカード1に送信し、処理は、図15のステップS3に進む。
【0111】
ステップS33において、受信したサービスIDリストに、リーダライタ対応サービスが含まれていないと判断された場合、制御部101は、ステップS38において、通信部91を介して、ICカード1にNACK信号を送信し、ステップS39において、図16のステップS16と同様の処理がなされ、処理が終了される(すなわち、処理は、図15のステップS3には進まない)。
【0112】
次に、図19のフローチャートを参照して、図15のステップS2において、図18を用いて説明したリーダライタ2のサービス識別処理と並行して実行される、ICカード1のサービス識別処理について説明する。なお、ここでは、図3を用いて説明したICカード1において処理が行われるものとして説明するが、図4を用いて説明したICカード1によって処理が実行される場合においても、基本的に同様の処理が実行される。
【0113】
ICカード1の制御部31は、ステップS51において、リーダライタ2が、図18のステップS31において送信したサービスID送信コマンドを、通信部21を介して受信し、ステップS52において、自分自身が対応しているサービスIDリスト(すなわち、メモリ32のSRA46に登録されているサービスIDのリスト)を生成して、通信部21を介して、リーダライタ2に送信する。
【0114】
制御部31は、ステップS53において、リーダライタ2が、図18のステップS37もしくはステップS38において、ICカード1に送信したデータを、通信部21を介して受信し、ステップS54において、リーダライタ2から受信したデータはNACK信号か否かを判断する。ステップS54において、受信した信号がNACK信号であると判断された場合(すなわち、受信したデータが、図18のステップS38において、リーダライタ2がICカード1に送信した信号である場合)、処理が終了される(すなわち、処理は、図15のステップS4には進まない)。
【0115】
ステップS54において、リーダライタ2から受信したデータはNACK信号ではないと判断された場合(すなわち、受信したデータが、図18のステップS37において、リーダライタ2がICカード1に送信したサービスIDである場合)、ステップS55において、制御部31は、リーダライタ2から受信したサービスIDは、自分自身のメモリ32のSRA46に登録されているか否か判断する。
【0116】
ステップS55において、サービスIDが登録されていないと判断された場合、処理が終了される(すなわち、処理は、図15のステップS4には進まない)。ステップS55において、サービスIDが登録されていると判断された場合、処理は、図15のステップS4に進む。
【0117】
次に、図20のフローチャートを参照して、図7(A)を用いて説明した認証用鍵情報を用いて認証鍵識別が行われる場合、図15のステップS3において実行される、リーダライタ2の認証鍵識別処理について説明する。
【0118】
リーダライタ2の制御部101は、ステップS61において、図15のステップS1およびステップS2のサービス識別処理により識別されたサービスに対応するサービスID(ここでは、対応するサービスIDを、ID_Sとする)に属する認証鍵のうちの1つに対応する認証鍵IDを、メモリ103から読み出し、通信部91を介して、ICカード1に送信し、ステップS62において、後述する図21のステップS73もしくはステップS75において、ICカード1が送信するデータを受信する。
【0119】
ステップS63において、制御部101は、ステップS62において、ICカード1から受信したデータは、ACK信号か否かを判断する。ステップS63において、ACK信号が受信されたと判断された場合、ステップS64において、制御部101は、暗号処理部33を制御して、ステップS61において、暗号処理部102の公開鍵処理部111もしくは共通鍵処理部112のうち、ICカード1に送信した認証鍵IDに対応する認証鍵を用いて認証処理を行う処理部を選択して制御することにより、ICカード1との相互認証処理および鍵共有処理を開始し、ICカード1とセッション鍵Ksesを共有し、相互認証処理が終了した後、処理が終了される。
【0120】
ステップS63において、ACK信号が受信されていないと判断された場合(すなわち、NACK信号を受信したと判断された場合)、ステップS65において、図16のステップS16と同様の処理がなされ、処理が終了される。
【0121】
次に、図21のフローチャートを参照して、図15のステップS4において、図20のリーダライタ2の認証鍵識別処理と並行して実行される、ICカード1の認証鍵識別処理について説明する。なお、ここでも、図3を用いて説明したICカード1により、処理が実行される場合について説明するが、図4を用いて説明したICカード1によって処理が実行される場合においても、基本的に同様の処理が実行される。
【0122】
ICカード1の制御部31は、ステップS71において、図20のステップS61において、リーダライタ2が送信した認証鍵IDを、通信部21を介して受信し、ステップS72において、ステップS71において受信した認証鍵IDは、メモリ32のSRA46のID_Sに関するデータが記憶されている領域に登録されているか否かを判断する。
【0123】
ステップS72において、認証鍵IDが登録されていると判断された場合、制御部31は、ステップS73において、通信部21を介して、リーダライタ2にACK信号を送信し、ステップS74において、暗号処理部33の公開鍵処理部41もしくは共通鍵処理部42のうち、リーダライタ2に指定された認証鍵による認証処理を行う方を選択して制御することにより、相互認証処理を実行し、リーダライタ2とセッション鍵Ksesを共有し、相互認証処理の終了後、処理が終了される。ステップS72において、認証鍵IDが登録されていないと判断された場合、ステップS75において、制御部31は、通信部21を介して、リーダライタ2にNACK信号を送信し、処理が終了される。
【0124】
図20および図21を用いて説明した処理においては、ICカード1とリーダライタ2は、図15のステップS1およびステップS2の処理により識別されたサービスのサービスIDに対応する、リーダライタ2が指定した認証鍵により、相互認証を実行する。
【0125】
例えば、あるサービスに対して共通鍵および公開鍵の2種類の認証鍵が用意されている場合、共通鍵に基づく認証処理により高速な処理を行うことをデフォルトとし、共通鍵のバージョンが古い場合には、公開鍵に基づいて認証処理を実施するようにしてもよい。
【0126】
次に、図22のフローチャートを参照して、図15のステップS3において実行される、図15のステップS1およびステップS2の処理により識別されたサービスのサービスIDに対応するサービスに対して、共通鍵および公開鍵の2種類の認証鍵が用意されている場合のリーダライタ2の認証鍵識別処理について説明する。
【0127】
リーダライタ2の制御部101は、ステップS81において、図15のステップS1およびステップS2の処理により識別されたサービスのサービスIDに対応する認証鍵の、共通鍵バージョン情報要求コマンドを、通信部91を介してICカード1に送信し、ステップS82において、後述する図23のステップS92において、ICカード1が送信した共通鍵バージョン情報を、通信部91を介して受信する。
【0128】
ステップS83において、制御部101は、ステップS82において受信した共通鍵バージョン情報を基に、共通鍵バージョンが有効か否かを判断する。ステップS83において、共通鍵バージョンが有効であると判断された場合、ステップS84において、制御部101は、ICカード1に、共通鍵による相互認証開始コマンドを送信し、暗号処理部102の共通鍵処理部112を制御して、共通鍵による相互認証を開始し、ICカード1とセッション鍵Ksesを共有し、相互認証が終了した後、処理が終了される。
【0129】
ステップS83において、共通鍵バージョンが有効ではないと判断された場合、ステップS85において、制御部101は、ICカード1に、公開鍵による相互認証開始コマンドを送信し、暗号処理部102の公開鍵処理部111を制御して、公開鍵による相互認証を開始し、ICカード1とセッション鍵Ksesを共有し、相互認証が終了した後、処理が終了される。
【0130】
次に、図23のフローチャートを参照して、図15のステップS4において、図22を用いて説明したリーダライタ2の認証鍵識別処理と並行して実行される、ICカード1の認証鍵識別処理について説明する。なお、ここでも、図3を用いて説明したICカード1により、処理が実行される場合について説明するが、図4を用いて説明したICカード1によって処理が実行される場合においても、基本的に同様の処理が実行される。
【0131】
ICカード1の制御部31は、ステップS91において、図22のステップS81において、リーダライタ2が送信した共通鍵バージョン情報要求コマンドを受信し、ステップS92において、共通鍵バージョン情報を、通信部21を介して、リーダライタ2に送信する。
【0132】
制御部31は、ステップS93において、図22のステップS84もしくはステップS85において、リーダライタ2が送信した相互認証開始コマンドを受信し、ステップS94において、ステップS93において受信された相互認証開始コマンドは、共通鍵による相互認証開始コマンドであるか否かを判断する。
【0133】
ステップS94において、共通鍵による相互認証開始コマンドであると判断された場合、ステップS95において、制御部31は、暗号処理部33の共通鍵処理部42を制御して、共通鍵による相互認証を開始し、リーダライタ2とセッション鍵Ksesを共有し、相互認証が終了した後、処理が終了される。
【0134】
ステップS94において、共通鍵による相互認証開始コマンドではない(すなわち、公開鍵による相互認証開始コマンドである)と判断された場合、ステップS96において、制御部31は、暗号処理部33の公開鍵処理部41を制御して、公開鍵による相互認証を開始し、リーダライタ2とセッション鍵Ksesを共有し、相互認証が終了した後、処理が終了される。
【0135】
図22および図23を用いて説明した処理により、ICカード1とリーダライタ2は、まず、認証速度の速い共通鍵による相互認証を実行しようとし、共通鍵による相互認証が行えない場合(例えば、対応する共通鍵のバージョンが古い場合など)、公開鍵を用いて、相互認証を実行する。
【0136】
図22のステップS85および図23のステップS96の処理においては、公開鍵による相互認証が行われる。リーダライタ2のメモリ103のSRA46には、図24(A)に示されるリーダライタ2の証明書が記憶されている。また、ICカード1のメモリ32のSRA46には、図24(B)に示されるICカード1の証明書が記憶されている。
【0137】
図24(A)および図24(B)に示されるように、それぞれの証明書には、証明書のバージョン番号、認証局が割り付ける証明書の通し番号、署名に用いたアルゴリズムとパラメータ、認証局の名前、証明書の有効期限、リーダライタ2、あるいはICカード1の名前(ID)、リーダライタ2の公開鍵Kpsp、あるいはICカード1の公開鍵Kpu、およびメッセージ全体に、図5を用いて説明したような不可逆的なハッシュ関数(データ圧縮関数)を作用させることで、メッセージダイジェストを作成し、メッセージダイジェストを、認証局の秘密鍵Kscaにより暗号化することによって作成された、デジタル署名から構成される。
【0138】
次に、図25のフローチャートを参照して、署名生成処理について説明する。ここでは、楕円曲線暗号方式(楕円DSA署名)を用いて、デジタル署名を生成する場合について説明する。ここでは、ICカード1の制御部31が、公開鍵処理部41のDSA署名生成・検証部72を制御することにより実行される処理について説明するが、リーダライタ2においても、同様の処理が実行されるので、リーダライタ2の処理についての説明は省略する。
【0139】
ステップS101において、制御部31は、署名生成処理に必要なパラメータを認識する。すなわち、pを標数、aおよびbを楕円曲線の係数、楕円曲線をy2=x3+ax+b、Gを楕円曲線上のベースポイント、rをGの位数、Mをメッセージ、Ksを秘密鍵、GおよびKsGを公開鍵とする。
【0140】
公開鍵処理部41のDSA署名生成・検証部72は、ステップS102において、図示しない乱数生成部で、0<u<rとなるuを生成し、ステップS103において、ステップS102において生成された乱数uを用いて、公開鍵Gをu倍し、V=uG=(Xv,Yv)となるVを算出する。
【0141】
DSA署名生成・検証部72は、ステップS104において、c=Xv mod rを算出し、ステップS105において、S104の計算結果に基づいて、c=0であるか否かを判断する。ステップS105において、c=0であると判断された場合、処理は、ステップS102に戻り、それ以降の処理が繰り返される。
【0142】
ステップS105において、c=0ではないと判断された場合、DSA署名生成・検証部72は、ステップS106において、メッセージMのハッシュ値であるf=SHA-1(M)(ここでは、ハッシュ関数として、SHA-1が用いられる)を算出し、ステップS107において、d=[(f+cKs)/u] mod rを計算する。
【0143】
ステップS108において、DSA署名生成・検証部72は、ステップS107の計算結果に基づいて、d=0か否かを判断する。ステップS108において、d=0であると判断された場合、処理は、ステップS102に戻り、それ以降の処理が繰り返される。ステップS108において、d=0ではないと判断された場合、ステップS109において、DSA署名生成・検証部72は、署名データを(c,d)とし、処理が終了される。
【0144】
このようにしてICカード1において生成されたデジタル署名を受信したリーダライタ2は、受信したデジタル署名を検証する処理を実施する。図26のフローチャートを参照して、署名検証処理について説明する。ここでは、リーダライタ2の制御部101が、公開鍵処理部41のDSA署名生成・検証部72を制御することにより実行される処理について説明するが、ICカード1においても、同様の処理が実行されるので、ICカード1の処理についての説明は省略する。
【0145】
ステップS111において、制御部101は、署名生成処理に必要なパラメータを認識する。すなわち、pを標数、aおよびbを楕円曲線の係数、楕円曲線をy2=x3+ax+b、Gを楕円曲線上のベースポイント、rをGの位数、Mをメッセージ、Ksを秘密鍵、GおよびKsGを公開鍵とする。
【0146】
公開鍵処理部41のDSA署名生成・検証部72は、ステップS112において、受信した署名データのcおよびdの値に基づいて、0<c<rかつ0<d<rであるか否かを判断する。
【0147】
ステップS112において、0<c<rかつ0<d<rではないと判断された場合、処理はステップS120に進む。ステップS112において、0<c<rかつ0<d<rであると判断された場合、ステップS113において、DSA署名生成・検証部72は、メッセージMのハッシュ値であるf=SHA-1(M)を算出し、ステップS114において、h=1/d mod rを計算する。
【0148】
DSA署名生成・検証部72は、ステップS114において算出されたhの値を用いて、ステップS115において、h1=fh、h2=ch mod rを算出し、ステップS116において、P=(Xp,Yp)=h1G+h2KsGを算出する。
【0149】
ステップS117において、DSA署名生成・検証部72は、ステップS116の算出結果から、Pの値が無限遠点であるか否かを判断する。ここでは、Pの値が無限遠点である場合、ステップS116において、h1G+h2KsGの解を得ることができないことに基づいて、Pの値が無限遠点であるか否かを判断することが可能である。ステップS117において、Pが無限遠点であると判断された場合、処理は、ステップS120に進む。
【0150】
ステップS117において、Pの値が無限遠点ではないと判断された場合、ステップS118において、DSA署名生成・検証部72は、c=Xp mod rが成り立つか否かを判断する。ステップS118において、c=Xp mod rが成り立たないと判断された場合、処理は、ステップS120に進む。
【0151】
ステップS118において、c=Xp mod rが成り立つと判断された場合、ステップS119において、DSA署名生成・検証部72は、受信した署名は正しいと判断し、処理が終了される。
【0152】
ステップS112において、0<c<rかつ0<d<rではないと判断された場合、ステップS117において、pが無限遠点であると判断された場合、もしくは、ステップS118において、c=Xp mod rが成り立たないと判断された場合、ステップS120において、DSA署名生成・検証部72は、受信した署名は正しくないと判断し、処理が終了される。
【0153】
また、図7(B)を用いて説明した認証用鍵情報を用いて認証鍵識別が行われ、あるサービスに対してレベル分けされた複数の認証鍵が格納されているような場合、低レベルの鍵から優先的に認証処理を開始し、その鍵のバージョンを判定し、その鍵のバージョンが古いとき、より高いレベルの認証鍵を用いて認証処理を行うようにしてもよい。
【0154】
次に、図27のフローチャートを参照して、図15のステップS3において実行される、あるサービスに対してレベル分けされた複数の認証鍵が格納されている場合のリーダライタ2の認証鍵識別処理について説明する。
【0155】
リーダライタ2の制御部101は、ステップS131において、通信部91を介して、鍵レベル交渉コマンドを、ICカード1に送信し、ステップS132において、後述する図28のステップS143において、ICカード1が送信する、レベルNにおける鍵バージョン情報Vを、通信部91を介して受信する。
【0156】
ステップS133において、制御部101は、ステップS132において受信した鍵バージョン情報VのレベルNは、N>0であるか否かを判断する。ステップS133において、N>0ではないと判断された場合、処理はステップS137に進む。
【0157】
ステップS133において、N>0であると判断された場合、ステップS134において、制御部101は、ステップS132において受信した鍵バージョン情報Vに基づいて、レベルNにおける鍵バージョン情報は有効か否かを判断する。
【0158】
ステップS134において、レベルNにおける鍵バージョンが有効ではないと判断された場合(すなわち、鍵のバージョンが古いと判断された場合)、ステップS135において、制御部101は、通信部91を介して、ICカード1にNACK信号を送信し、処理はステップS132に戻り、それ以降の処理が繰り返される。
【0159】
ステップS134において、レベルNにおける鍵バージョンは有効であると判断された場合、ステップS136において、制御部101は、通信部91を介して、ICカード1にACK信号を送信し、処理が終了される。
【0160】
ステップS133において、N>0ではないと判断された場合、ステップS137において、図16のステップS16と同様の処理がなされ、処理が終了される。
【0161】
次に、図28のフローチャートを参照して、図27を用いて説明したリーダライタ2の認証鍵識別処理と並行して実行される、ICカード1の認証鍵識別処理について説明する。なお、ここでも、図3を用いて説明したICカード1により、処理が実行される場合について説明するが、図4を用いて説明したICカード1によって処理が実行される場合においても、基本的に同様の処理が実行される。
【0162】
ICカード1の制御部31は、ステップS141において、図27のステップS131において、リーダライタ2が送信した鍵レベル交渉コマンドを受信し、ステップS142において、現在の鍵レベルNを、N=1にセットする。
【0163】
制御部31は、ステップS143において、現在の鍵レベルNと、そのレベルにおける鍵バージョン情報Vを、通信部21を介して、リーダライタ2に送信し、ステップS144において、図27のステップS135もしくはステップS136において、リーダライタ2が送信したデータを受信する。
【0164】
ステップS145において、制御部31は、ステップS144において、リーダライタ2から受信した信号は、ACK信号であるか否かを判断する。ステップS145において、リーダライタ2から受信した信号はACK信号ではないと判断された場合、制御部31は、ステップS146において、N=N+1とし、ステップS147において、Nの値が所定の最大レベルを超えているか否かを判断する。
【0165】
ステップS147において、Nが最大レベルを超えていないと判断された場合、処理はステップS143に戻り、それ以降の処理が繰り返される。ステップS147において、Nが最大レベルを超えていると判断された場合、ステップS148において、制御部31は、現在のレベルをN=0(N=0は、例外状態を示すものとする)とし、処理はステップS143に戻り、それ以降の処理が繰り返される。
【0166】
ステップS145において、リーダライタ2から受信した信号はACK信号であると判断された場合、処理が終了される。
【0167】
図15乃至図28を用いて、ICカード1と、リーダライタ2のサービス識別および認証鍵識別に関する処理について説明したが、例えば、図2を用いて説明したサービス登録用リーダライタ2−11に、ICカード1を装着し、新たなサービスの登録を実行する場合、およびサービスの削除を実行する場合には、図10を用いて説明したように、サービス登録用リーダライタ2−11のメモリ103に記憶されているサービス登録用の認証鍵Kregを用いて認証処理を行うため、図15乃至図28を用いて説明したような相互認証処理を用いなくてもよい。
【0168】
次に、図29のフローチャートを参照して、サービス登録用リーダライタ2−11のサービス登録処理について説明する。
【0169】
サービス登録用リーダライタ2−11の制御部101は、ステップS151において、通信部91を介して、サービス登録コマンドを、ICカード1に送信し、ステップS152において、ICカード1と、サービス登録用鍵Kregによる相互認証を行い、セッション鍵Ksesを共有する。
【0170】
制御部101は、ステップS153において、空き領域確認コマンドを、通信部91を介してICカード1に送信し、ステップS154において、後述する図30のステップS175もしくはステップS176においてICカード1から送信されるデータを受信する。
【0171】
ステップS155において、制御部101は、ステップS154において、ICカード1から受信した信号はACK信号であるか否かを判断する。ステップS155において、ICカード1から受信した信号がACK信号であると判断された場合、制御部101は、ステップS156において、暗号処理部102の共通鍵処理部112を制御して、ICカード1のメモリ32に新たに登録する登録データを、セッション鍵Ksesで暗号化させ、ステップS157において、暗号化データを、通信部91を介して、ICカード1に送信する。
【0172】
制御部101は、ステップS158において、後述する図30のステップS180において、ICカード1が送信したデータ登録完了通知を、通信部91を介して受信し、ステップS159において、サービス認証によるサービス削除許可フラグを送信し、処理が終了される。
【0173】
ステップS155において、ICカード1から受信した信号がACK信号ではないと判断された場合、ステップS160において、図16のステップS16と同様の処理がなされ、処理が終了される。
【0174】
次に、図30のフローチャートを参照して、図29を用いて説明した、サービス登録用リーダライタ2−11のサービス登録処理と並行して実行される、ICカード1のサービス登録処理について説明する。なお、ここでも、図3を用いて説明したICカード1により、処理が実行される場合について説明するが、図4を用いて説明したICカード1によって処理が実行される場合においても、基本的に同様の処理が実行される。
【0175】
ステップS171において、ICカード1の制御部31は、通信部21を介して、図29のステップS151において、サービス登録用リーダライタ2−11が送信したサービス登録コマンドを受信する。
【0176】
制御部31は、ステップS172において、ICカード1と、サービス登録用鍵Kregによる相互認証を行い、セッション鍵Ksesを共有し、ステップS173において、通信部21を介して、図29のステップS153において、サービス登録用リーダライタ2−11が送信した、空き領域確認コマンドを受信する。
【0177】
ステップS174において、制御部31は、メモリ32のSRA46に、登録データ用の空き領域があるか否かを判断する。ステップS174において、空き領域がないと判断された場合、ステップS175において、制御部31は、サービス登録用リーダライタ2−11に、通信部21を介して、NACK信号を送信し、処理が終了される。
【0178】
ステップS174において、空き領域があると判断された場合、ステップS176において、制御部31は、サービス登録用リーダライタ2−11に、通信部21を介して、ACK信号を送信する。
【0179】
制御部31は、ステップS177において、図29のステップS157において、サービス登録用リーダライタ2−11が送信した暗号化データを、通信部21を介して受信し、ステップS178において、暗号処理部33の共通鍵処理部42を制御して、ステップS177において受信した暗号化データを、セッション鍵Ksesを用いて復号させる。
【0180】
ステップS179において、制御部31は、ステップS178において、セッション鍵Ksesにより復号されたデータを、メモリ32に供給し、SRA46のService Individual Info領域およびSRT45に登録させる。
【0181】
制御部31は、ステップS180において、データの登録完了を、通信部21を介して、サービス登録用リーダライタ2−11に通知し、ステップS181において、図29のステップS159において、サービス登録用リーダライタ2−11が送信した、サービス認証によるサービス削除許可フラグを受信し、サービス削除許可フラグを、メモリ32のSRA46のService Individual Info領域に設定し、処理が終了される。
【0182】
次に、図31のフローチャートを参照して、サービス登録用リーダライタ2−11のサービス削除処理について説明する。
【0183】
ステップS191において、サービス登録用リーダライタ2−11の制御部101は、ユーザが、入力部106を用いて入力した、削除するサービスに対応するサービスIDの入力を受ける(ここでは、対応するサービスIDが、ID_Sであるサービスが削除されるものとする)。
【0184】
ステップS192において、図29のステップS152と同様の処理がなされる。制御部101は、ステップS193において、通信部91を介して、ICカード1に、ID_S領域削除コマンドを送信し、ステップS194において、後述する図32のステップS205においてICカード1が送信した、エラーメッセージを受信したか否かを判断する。
【0185】
ステップS194において、エラーメッセージを受信したと判断された場合、ステップS195において、図16のステップS16と同様の処理がなされ、処理が終了される。ステップS194において、エラーメッセージを受信しなかったと判断された場合、処理が終了される。
【0186】
次に、図32のフローチャートを参照して、図31を用いて説明した、サービス登録用リーダライタ2−11のサービス削除処理と並行して実行される、ICカード1のサービス削除処理について説明する。なお、ここでも、図3を用いて説明したICカード1により、処理が実行される場合について説明するが、図4を用いて説明したICカード1によって処理が実行される場合においても、基本的に同様の処理が実行される。
【0187】
ステップS201において、図30のステップS172と同様の処理が実行される。ICカード1の制御部31は、ステップS202において、図31のステップS193において、サービス登録用リーダライタ2−11が送信した、ID_S領域削除コマンドを受信し、ステップS203において、ID_S領域に対応するデータがあるか否かを確認することなどにより、ステップS202において受信したID_S領域削除コマンドの正当性が検証されたか否かを判断する。
【0188】
ステップS203において、ID_S領域削除コマンドの正当性が検証されたと判断された場合、ステップS204において、制御部31は、メモリ32のSRT45およびSRA46から、ID_Sに対応する領域を削除し、処理が終了される。
【0189】
ステップS203において、ID_S領域削除コマンドの正当性が検証されなかったと判断された場合、ステップS205において、制御部31は、通信部21を介して、サービス登録用リーダライタ2−11に、エラーメッセージを送信し、処理が終了される。
【0190】
図31および図32を用いて説明したサービス削除処理は、一般リーダライタ2−12とICカード1とで実行することも可能である。図33のフローチャートを参照して、一般リーダライタ2−12のサービス削除処理について説明する。
【0191】
ステップS211において、図16、もしくは図18を用いて説明した、リーダライタ2のサービス識別処理が実行され、ステップS212において、図20、図22、もしくは図27を用いて説明したリーダライタ2の認証鍵識別処理が実行され、ステップS213において、図31のステップS193と同様の処理が実行される。
【0192】
ステップS214において、一般リーダライタ2−12の制御部101は、後述する図34のステップS226もしくはステップS227において、ICカード1が送信する信号を受信する。そして、ステップS215およびステップS216において、図16のステップS15およびステップS16と同様の処理が実行され、処理が終了される。
【0193】
次に、図34のフローチャートを参照して、図33を用いて説明した、一般リーダライタ2−12のサービス削除処理と並行して実行される、ICカード1のサービス削除処理について説明する。なお、ここでも、図3を用いて説明したICカード1により、処理が実行される場合について説明するが、図4を用いて説明したICカード1によって処理が実行される場合においても、基本的に同様の処理が実行される。
【0194】
ステップS221において、図17、もしくは図19を用いて説明した、ICカード1のサービス識別処理が実行され、ステップS232において、図21、図23、もしくは図28を用いて説明したICカード1の認証鍵識別処理が実行される。
【0195】
ステップS223において、制御部31は、図33のステップS213において、一般リーダライタ2−12が送信した、ID_S領域削除コマンドを、通信部21を介して受信する。ステップS224において、図32のステップS203と同様の処理が実行される。ステップS224において、コマンドの正当性が検証されたと判断された場合、ステップS225において、図32のステップS204と同様の処理がなされ、ステップS226において、制御部31は、通信部21を介して、一般リーダライタ2−12にACK信号を送信し、処理が終了される。
【0196】
ステップS224において、コマンドの正当性が検証されなかったと判断された場合、ステップS227において、制御部31は、通信部21を介して、一般リーダライタ2−12にNACK信号を送信し、処理が終了される。
【0197】
次に、図35のフローチャートを参照して、ユーザが、一般リーダライタ2−12で、ICカード1に登録されているサービスを受ける場合に実行される、一般リーダライタ2−12のサービス取得処理について説明する。
【0198】
ステップS231において、図16、もしくは図18を用いて説明した、リーダライタ2のサービス識別処理が実行され、ステップS232において、図20、図22、もしくは図27を用いて説明したリーダライタ2の認証鍵識別処理が実行される。
【0199】
ステップS233において、一般リーダライタ2−12の制御部101は、通信部91を介して、ICカード1に、ID_S領域のデータ要求コマンドを送信する。
【0200】
制御部101は、ステップS234において、後述する図36のステップS245において、ICカード1から送信されるデータを受信し、ステップS235において、暗号処理部102の共通鍵処理部112を制御して、ステップS234において受信した暗号化データを、セッション鍵Ksesを用いて復号させる。制御部101は、復号されたデータを用いて、例えば、電子マネーの減算や加算などの所定のデータ処理を行い、処理が終了される。
【0201】
次に、図36のフローチャートを参照して、図35を用いて説明した、一般リーダライタ2−12のサービスデータ取得処理と並行して実行される、ICカード1のサービスデータ取得処理について説明する。なお、ここでも、図3を用いて説明したICカード1により、処理が実行される場合について説明するが、図4を用いて説明したICカード1によって処理が実行される場合においても、基本的に同様の処理が実行される。
【0202】
ステップS241において、図17、もしくは図19を用いて説明した、ICカード1のサービス識別処理が実行され、ステップS232において、図21、図23、もしくは図28を用いて説明したICカード1の認証鍵識別処理が実行される。
【0203】
ステップS243において、ICカード1の制御部31は、通信部21を介して、図35のステップS233において、一般リーダライタ2−12が送信した、ID_S領域のデータ要求コマンドを受信する。制御部31は、ステップS244において、暗号処理部33の共通鍵処理部42を制御して、メモリ32のID_Sに対応する領域に登録しているデータを、セッション鍵Ksesを用いて暗号化させ、ステップS245において、通信部21を介して、暗号化したデータを一般リーダライタ2−12に送信し、処理が終了される。
【0204】
また、ICカード1と一般リーダライタ2−12において、あるサービスに関する情報の授受がなされている場合においても、図8を用いて説明したSRT45に、対応するパーミッション情報が記録されている場合、現在情報の授受がなされている以外のサービスに関する情報の授受を行うことが可能である。図37のフローチャートを参照して、ID_S以外のサービスIDに対応するサービスの実行中に行われる、一般リーダライタ2−12のサービスデータ取得処理について説明する。
【0205】
ステップS251乃至ステップS254において、図35のステップS231乃至ステップS234と同様の処理が実行される。ステップS255において、一般リーダライタ2−12の制御部101は、ステップS254において、ICカード1から受信したデータは、NACK信号か否かを判断する。
【0206】
ステップS255において、受信したデータがNACK信号ではないと判断された場合、ステップS256において、図35のステップS235と同様の処理が実行され、処理が終了される。ステップS255において、受信したデータがNACK信号であると判断された場合、図16のステップS16と同様の処理がなされ、処理が終了される。
【0207】
次に、図38のフローチャートを参照して、図37を用いて説明した、一般リーダライタ2−12のサービスデータ取得処理と並行して実行される、ICカード1のサービスデータ取得処理について説明する。なお、ここでも、図3を用いて説明したICカード1により、処理が実行される場合について説明するが、図4を用いて説明したICカード1によって処理が実行される場合においても、基本的に同様の処理が実行される。
【0208】
ステップS261乃至ステップS263において、図34のステップS241乃至ステップS243と同様の処理が実行される。なお、ステップS261では、サービスID_Sとは異なる、サービスID_Tの認証が行われるものとする。ステップS264において、ICカード1の制御部31は、メモリ32のSRT45およびSRA46に、ステップS263において受信したデータ要求コマンドに対応するID_S領域が登録されているか否かを判断する。ステップS264において、ID_S領域が登録されていないと判断された場合、処理は、ステップS269に進む。
【0209】
ステップS264において、ID_S領域が登録されていると判断された場合、制御部31は、ステップS265において、メモリ32のSRT45の、ID_Sに対応するパーミッション情報フィールドから、ID_Sのパーミッション情報を取得し、ステップS266において、ID_T認証時に、ID_Sのデータの読み込みが許可されているか否かを判断する(すなわち、SRT45のID_Sに対応するパーミッション情報フィールドに、ID_Tによる認証時に、データの読み出し許可、すなわち、roもしくはrwが記載されているか否かを判断する)。ステップS266において、データの読み込みが許可されていないと判断された場合、処理はステップS269に進む。
【0210】
ステップS266において、データの読み込みが許可されていると判断された場合、ステップS267およびステップS268において、図36のステップS244およびステップS245と同様の処理が実行され、処理が終了される。
【0211】
ステップS264において、ID_S領域が登録されていないと判断された場合、もしくは、ステップS266において、データの読み込みが許可されていないと判断された場合、ステップS269において、制御部31は、通信部21を介して、一般リーダライタ2−12にNACK信号を送信し、処理が終了される。
【0212】
図35乃至図48を用いて説明したサービスデータ取得処理によって、ICカード1から一般リーダライタ2−12にデータが取得され、所定の処理がなされたあと、一般リーダライタ2−12は、必要に応じて、ICカード1のメモリ32のSRT45もしくはSRA46の所定の領域に対して、データを書き込む処理を実行する。
【0213】
次に、図39のフローチャートを参照して、一般リーダライタ2−12のサービスデータ書き込み処理について説明する。
【0214】
ステップS281において、図16、もしくは図18を用いて説明した、リーダライタ2のサービス識別処理が実行され、ステップS282において、図20、図22、もしくは図27を用いて説明したリーダライタ2の認証鍵識別処理が実行される。
【0215】
一般リーダライタ2−12の制御部101は、ステップS283において、ICカード1のメモリ32に書き込むために、ICカード1に送信するデータを、暗号処理部102の共通鍵処理部112を制御して、セッション鍵Ksesを用いて暗号化させ、ステップS284において、ICカード1に、データ書き込みコマンドと、ステップS284において暗号化したデータを、通信部91を介して送信し、処理が終了される。
【0216】
次に、図40のフローチャートを参照して、図39を用いて説明した、一般リーダライタ2−12のサービスデータ書き込み処理と並行して実行される、ICカード1のサービスデータ書き込み処理について説明する。なお、ここでも、図3を用いて説明したICカード1により、処理が実行される場合について説明するが、図4を用いて説明したICカード1によって処理が実行される場合においても、基本的に同様の処理が実行される。
【0217】
ステップS291において、図17、もしくは図19を用いて説明した、ICカード1のサービス識別処理が実行され、ステップS232において、図21、図23、もしくは図28を用いて説明したICカード1の認証鍵識別処理が実行される。
【0218】
ステップS293において、制御部31は、通信部21を介して、図39のステップS284において、一般リーダライタ2−12が送信した、データ書き込みコマンドと暗号化データを受信する。制御部31は、ステップS294において、暗号処理部33の共通鍵処理部42を制御して、受信したデータを、セッション鍵Ksesを用いて復号させ、ステップS295において、復号したデータを、メモリ32のSRT45およびSRA46のID_Sに対応するサービス格納領域へ書き込み、処理が終了される。
【0219】
また、ICカード1と一般リーダライタ2−12において、あるサービスに関する情報の授受がなされている場合においても、図8を用いて説明したSRT45に、対応するパーミッション情報が記録されている場合、図37および図38を用いて説明したサービスデータ取得処理と同様に、現在情報の授受がなされている以外のサービスに関するサービスデータ書き込み処理を実行することが可能である。図41のフローチャートを参照して、ID_S以外のサービスIDに対応するサービスの実行中に行われる、一般リーダライタ2−12のサービスデータ書き込み処理について説明する。
【0220】
ステップS301乃至ステップS304において、図39のステップS281乃至ステップS284と同様の処理が実行される。そして、ステップS305およびステップS306において、図16のステップS15およびステップS16と同様の処理がなされ、処理が終了される。
【0221】
次に、図42のフローチャートを参照して、図41を用いて説明した、一般リーダライタ2−12のサービスデータ書き込み処理と並行して実行される、ICカード1のサービスデータ書き込み処理について説明する。なお、ここでも、図3を用いて説明したICカード1により、処理が実行される場合について説明するが、図4を用いて説明したICカード1によって処理が実行される場合においても、基本的に同様の処理が実行される。
【0222】
ステップS311乃至ステップS313において、図40のステップS291乃至ステップS293と同様の処理が実行される。なお、ステップS311では、サービスID_Sとは異なる、サービスID_Tの認証が行われるものとする。ステップS314およびステップS315において、図38のステップS264およびステップS265と同様の処理がなされ、ステップS314において、ID_S領域が登録されていないと判断された場合、処理は、ステップS320に進む。
【0223】
ステップS316において、制御部31は、ID_T認証時に、ID_Sのサービスに対して、データの書き込みが許可されているか否かを判断する(すなわち、SRT45のID_Sに対応するパーミッション情報フィールドに、ID_T認証時のデータの書き込み許可、すなわち、rwが記載されているか否かを判断する)。ステップS316において、データの書き込みが許可されていないと判断された場合、処理はステップS320に進む。
【0224】
ステップS316において、データの書き込みが許可されていると判断された場合、ステップS317およびステップS318において、図40のステップS294およびステップS295と同様の処理が実行される。ステップS319において、制御部31は、通信部21を介して、一般リーダライタ2−12にACK信号を送信し、処理が終了される。
【0225】
ステップS314において、ID_S領域が登録されていないと判断された場合、もしくは、ステップS316において、データの書き込みが許可されていないと判断された場合、ステップS320において、制御部31は、通信部21を介して、一般リーダライタ2−12にNACK信号を送信し、処理が終了される。
【0226】
以上説明したように、一般リーダライタ2−12に、ICカード1を装着し、各種サービスを受けるためには、サービス毎に定められた共通鍵、もしくは公開鍵を用いて認証処理を行わなければならない。これらの認証鍵は、セキュリティの維持のために、しばしばバージョンアップされる(すなわち、鍵が変更される)。ユーザは、図2を用いて説明したバージョンアップ用リーダライタ2−14、もしくは一般リーダライタ2−12に、ICカード1を装着し、図43乃至図47を用いて後述する鍵バージョンアップ処理を実行させることにより、自分自身が管理しているICカード1に登録されている認証鍵を、できるだけ最新に近いバージョンの認証鍵にバージョンアップするようにしなければならない。
【0227】
次に、図43を参照して、サービス毎に定められたバージョンアップ用鍵(図6および図14を用いて説明したバージョンアップ用鍵Kake_vup)を用いて実行される、バージョンアップ用リーダライタ2−14の鍵バージョンアップ処理について説明する。
【0228】
ステップS331において、図16、もしくは図18を用いて説明した、リーダライタ2のサービス識別処理が実行され、ステップS332において、図20、図22、もしくは図27を用いて説明したリーダライタ2の認証鍵識別処理が実行される。
【0229】
ステップS333において、バージョンアップ用リーダライタ2−14の制御部101は、暗号処理部102の共通鍵処理部112を制御して、バージョンアップを行う認証鍵に対応する認証鍵IDを、セッション鍵Ksesを用いて暗号化させ、ICカード1に送信する。ステップS334において、制御部101は、後述する図44のステップS355もしくはステップS360において、ICカード1が送信する信号を受信する。
【0230】
ステップS335において、制御部101は、ステップS334においてICカード1から受信した信号はACK信号であるか否かを判断する。ステップS335において、受信した信号がACK信号ではないと判断された場合、処理は、ステップS339に進む。ステップS335において、受信した信号がACK信号であると判断された場合、ステップS336において、制御部101は、バージョンアップを行う認証鍵に対応する最新バージョン情報と、認証鍵Kakeをメモリ103から読み出し、暗号処理部102の共通鍵処理部112を制御して、セッション鍵Ksesを用いて暗号化させ、通信部91を介して、ICカード1に送信する。
【0231】
そして、ステップS337において、ICカード1が、後述する44のステップS359もしくはステップS360において送信した信号を受信する。ステップS338において、ステップS335と同様の処理がなされ、ステップS338において、受信した信号がACK信号であると判断された場合、処理が終了される。ステップS335およびステップS338において、受信した信号がACK信号ではないと判断された場合、ステップS339において、図16のステップS16と同様の処理がなされ、処理が終了される。
【0232】
次に、図44のフローチャートを参照して、図43を用いて説明した、バージョンアップ用リーダライタ2−14の鍵バージョンアップ処理と並行して実行される、ICカード1の鍵バージョンアップ処理について説明する。なお、ここでも、図3を用いて説明したICカード1により、処理が実行される場合について説明するが、図4を用いて説明したICカード1によって処理が実行される場合においても、基本的に同様の処理が実行される。
【0233】
ステップS351において、図17、もしくは図19を用いて説明した、ICカード1のサービス識別処理が実行され、ステップS352において、図21、図23、もしくは図28を用いて説明したICカード1の認証鍵識別処理が実行される。
【0234】
ステップS353において、制御部31は、通信部21を介して、図43のステップS333において、バージョンアップ用リーダライタ2−14が送信した、暗号化された認証鍵IDを受信し、暗号処理部33の共通鍵処理部42を制御して、受信したデータを、セッション鍵Ksesを用いて復号させる。ステップS354において、制御部31は、復号したデータを基に、メモリ32のSRT45およびSRA46のID_Sに、対応する認証鍵IDが存在するか否かを判断する。ステップS354において、認証鍵IDが存在しないと判断された場合、処理は、ステップS360に進む。
【0235】
ステップS354において、認証鍵IDが存在すると判断された場合、制御部31は、ステップS355において、通信部21を介して、バージョンアップ用リーダライタ2−14に、ACK信号を送信し、ステップS356において、図43のステップS336において、バージョンアップ用リーダライタ2−14が送信した、暗号化された最新バージョン情報と認証鍵Kakeを、通信部21を介して受信し、暗号処理部33の共通鍵処理部42を制御して、受信したバージョン情報を、セッション鍵Ksesを用いて復号させる。
【0236】
ステップS357において、制御部31は、復号したデータを基に、受信したバージョン情報は正しいか否か(すなわち、自分自身がすでに保有している認証鍵のバージョン情報より新しいバージョンであるか否か)を判断する。ステップS357において、バージョン情報が正しくないと判断された場合、処理は、ステップS360に進む。
【0237】
ステップS357において、バージョン情報は正しいと判断された場合、制御部31は、暗号処理部33の共通鍵処理部42を制御して、認証鍵Kakeを、セッション鍵Ksesを用いて復号させ、メモリ32のSRA46における、認証鍵Kakeが記載される領域に書き込み、ステップS359において、バージョンアップ用リーダライタ2−14に、通信部21を介してACK信号を送信し、処理が終了される。
【0238】
ステップS354において、認証鍵IDが存在しないと判断された場合、およびステップS357において、バージョン情報が正しくないと判断された場合、ステップS360において、制御部31は、バージョンアップ用リーダライタ2−14に、通信部21を介してNACK信号を送信し、処理が終了される。
【0239】
また、ICカード1と一般リーダライタ2−12において、あるサービスに関する情報の授受がなされている場合において、図8を用いて説明したSRT45に、対応するパーミッション情報が記録されている場合、図37および図38を用いて説明したサービスデータ取得処理や、図41および図42を用いて説明したサービスデータ書き込み処理と同様に、現在情報の授受がなされている以外のサービスに関する鍵バージョンアップ処理を実行することが可能である。図45のフローチャートを参照して、ID_S以外のサービスIDに対応するサービスの実行中に行われる、一般リーダライタ2−12の鍵バージョンアップ処理について説明する。
【0240】
ステップS371およびステップS372において、図44のステップS331およびステップS332と同様の処理が実行される。そして、一般リーダライタ2−12の制御部101は、ステップS373において、ID_Sに対応するサービスの認証鍵のバージョンアップコマンドを、通信部91を介してICカード1に送信し、ステップS374において、後述する図46のステップS397もしくは図47のステップS405において、ICカード1が送信するデータを受信し、ステップS375において、ICカード1から受信した信号は、ACK信号か否かを判断する。
【0241】
ステップS375において、受信した信号がACK信号でないと判断された場合、処理は、ステップS382に進む。ステップS375において、受信した信号がACK信号であると判断された場合、ステップS376乃至ステップS382において、図43のステップS333乃至ステップS339と同様の処理がなされ、処理が終了される。
【0242】
次に、図46および図47のフローチャートを参照して、図45を用いて説明した、バージョンアップ用リーダライタ2−14の鍵バージョンアップ処理と並行して実行される、ICカード1の鍵バージョンアップ処理について説明する。なお、ここでも、図3を用いて説明したICカード1により、処理が実行される場合について説明するが、図4を用いて説明したICカード1によって処理が実行される場合においても、基本的に同様の処理が実行される。
【0243】
ステップS391およびステップS392において、図44のステップS351およびステップS352と同様の処理が実行される。なお、ステップS391では、サービスID_Sとは異なる、サービスID_Tの認証が行われるものとする。ステップS393において、制御部31は、図45のステップS373において、バージョンアップ用リーダライタ2−14が送信した、ID_Sの認証鍵のバージョンアップコマンドを受信する。
【0244】
ステップS394およびステップS395において、図38のステップS264およびステップS265と同様の処理がなされ、ステップS394において、ID_S領域が登録されていないと判断された場合、処理は、ステップS405に進む。
【0245】
ステップS396において、制御部31は、ID_T認証時に、ID_Sの認証鍵のバージョンアップが許可されているか否かを判断する(すなわち、SRT45のID_Sに対応するパーミッション情報フィールドに、ID_T認証時のvupの許可が記載されているか否かを判断する)。ステップS396において、認証鍵のバージョンアップが許可されていないと判断された場合、処理は、ステップS405に進む。
【0246】
ステップS396において、認証鍵のバージョンアップが許可されていると判断された場合、ステップS397において、制御部31は、通信部21を介して、バージョンアップ用リーダライタ2−14に、ACK信号を送信する。
【0247】
そして、ステップS398乃至ステップS405において、図44のステップS353乃至ステップS360と同様の処理が実行され、処理が終了される。
【0248】
次に、図48乃至図51のフローチャートを参照して、図13を用いて説明したモジュール間通信について説明する。モジュール間通信は、図4を用いて説明したICカード1と、モジュール間通信用リーダライタ2−13によって実行される。ここでは、図4を用いて説明したICカード1の通信部51および共通鍵サービス処理部52を、図13を用いて説明した共通鍵モジュール122とし、図4を用いて説明した通信部53および公開鍵サービス処理部54を、図13を用いて説明した公開鍵モジュール121として説明する。
【0249】
まず、図48のフローチャートを参照して、共通鍵モジュール122が、モジュール間通信用リーダライタ2−13と共有するセッション鍵と、公開鍵モジュール121が、モジュール間通信用リーダライタ2−13と共有するセッション鍵とが異なる場合におけるモジュール間通信について説明する。
【0250】
ステップS411において、モジュール間通信用リーダライタ2−13は、図16、もしくは図18を用いて説明した、リーダライタ2のサービス識別処理を実行し、ステップS412において、ICカード1の公開鍵モジュール121は、図17、もしくは図19を用いて説明した、ICカード1のサービス識別処理を実行し、モジュール間リーダライタ2−13と、公開鍵モジュール121の間で、セッション鍵Kses1を共有する。
【0251】
ステップS413において、モジュール間通信用リーダライタ2−13は、図16、もしくは図18を用いて説明した、リーダライタ2のサービス識別処理を実行し、ステップS414において、ICカード1の共通鍵モジュール122は、図17、もしくは図19を用いて説明した、ICカード1のサービス識別処理を実行し、モジュール間リーダライタ2−13と、共通鍵モジュール122の間で、セッション鍵Kses2を共有する。
【0252】
ステップS415において、モジュール間通信用リーダライタ2−13の制御部101は、ステップS411およびステップS413において実行されたリーダライタ2のサービス識別処理において得られたICカード1のカードIDを基に、公開鍵モジュール121と、共通鍵モジュール122の2つのカードIDが一致したか否かを判断する。ステップS415において、カードIDが一致しないと判断された場合、ステップS416において、図16のステップS16と同様の処理が実行される。
【0253】
ステップS415において、2つのカードIDが一致すると判断された場合、ステップS417において、モジュール間通信用リーダライタ2−13の制御部101は、モジュールデータ移動コマンドを公開鍵モジュール121に送信する。
【0254】
公開鍵モジュール121の制御部61は、ステップS418において、モジュールデータ移動開始コマンドをモジュール間通信用リーダライタ2−13から受信し、暗号処理部33の、共通鍵処理部42を制御して、移動するデータをセッション鍵Kses1で暗号化させ、ステップS419で、暗号化データをモジュール間通信用リーダライタ2−13に送信する。
【0255】
モジュール間通信用リーダライタ2−13の制御部101は、ステップS420において、暗号処理部102の、共通鍵処理部112を制御して、受信したデータをセッション鍵Kses1で復号し、ステップS421において、データをセッション鍵Kses2で暗号化させ、共通鍵モジュール122に送信する。共通鍵モジュール122の制御部61は、ステップS422において、暗号処理部63の、共通鍵処理部42を制御して、受信したデータをセッション鍵Kses2で復号させ、ステップS423において、復号したデータをメモリ62の対応する領域に保存して利用する。
【0256】
次に、図49のフローチャートを参照して、共通鍵モジュール122が、モジュール間通信用リーダライタ2−13と共有するセッション鍵と、公開鍵モジュール121が、モジュール間通信用リーダライタ2−13と共有するセッション鍵とが同一である場合におけるモジュール間通信について説明する。
【0257】
ステップS431において、モジュール間通信用リーダライタ2−13は、図16、もしくは図18を用いて説明した、リーダライタ2のサービス識別処理を実行し、ステップS432において、ICカード1の公開鍵モジュール121は、図17、もしくは図19を用いて説明した、ICカード1のサービス識別処理を実行し、モジュール間リーダライタ2−13と、公開鍵モジュール121の間で、セッション鍵Kses1を共有する。
【0258】
ステップS433において、モジュール間通信用リーダライタ2−13は、図16、もしくは図18を用いて説明した、リーダライタ2のサービス識別処理を実行し、ステップS434において、ICカード1の共通鍵モジュール122は、図17、もしくは図19を用いて説明した、ICカード1のサービス識別処理を実行し、モジュール間リーダライタ2−13と、共通鍵モジュール122の間で、セッション鍵Kses1を共有する。
【0259】
ステップS435乃至ステップS439において、図48のステップS415乃至ステップS419と同様の処理が実行される。そして、ステップS440において、モジュール間通信用リーダライタ2−13の制御部101は、受信したデータを、共通鍵モジュール122に送信する。図48のステップS420およびステップS421においては、受信したデータをセッション鍵Kses1で復号し、復号したデータをセッション鍵Kses2で暗号化した後に共通鍵モジュール122に送信したが、ここでは、共通鍵モジュール122も、セッション鍵Kses1を有しているため、これらの処理が必要なくなる。
【0260】
共通鍵モジュール122の制御部61は、ステップS411において、暗号処理部63を制御して、受信したデータをセッション鍵Kses1で復号し、ステップS422において、復号したデータをメモリ62の対応する領域に保存して利用する。
【0261】
次に、図50のフローチャートを参照して、共通鍵モジュール122が、モジュール間通信用リーダライタ2−13と共有するセッション鍵と、公開鍵モジュール121が、モジュール間通信用リーダライタ2−13と共有するセッション鍵とが異なるが、モジュール間通信用リーダライタ2−13が、共通鍵モジュール122が有するセッション鍵を、公開鍵モジュール121が有するもう一方のセッション鍵で暗号化し、公開鍵モジュール121に供給するようになされている場合におけるモジュール間通信について説明する。
【0262】
ステップS451乃至ステップS456において、図48のステップS411乃至ステップS416と同様の処理が実行される。すなわち、モジュール間リーダライタ2−13と、公開鍵モジュール121の間で、セッション鍵Kses1が共有され、モジュール間リーダライタ2−13と、共通鍵モジュール122の間で、セッション鍵Kses2が共有される。
【0263】
ステップS457において、モジュール間通信用リーダライタ2−13の制御部101は、暗号処理部102を制御して、セッション鍵Kses2を、セッション鍵Kses1で暗号化させ、公開鍵モジュール121に送信する。公開鍵モジュール121の制御部61は、暗号処理部33の共通鍵処理部42を制御して、受信したデータをセッション鍵Kses1で復号させることにより、セッション鍵Kses2を取り出す。
【0264】
ステップS459において、図48のステップS417と同様の処理が実行される。ステップS460において、公開鍵モジュール121の制御部61は、移動するデータをセッション鍵Kses2で暗号化し、暗号化データをモジュール間通信用リーダライタ2−13に送信する。
【0265】
ステップS461において、図49のステップS440と同様の処理が実行される。そして、ステップS462およびステップS463において、図48のステップS422およびS423と同様の処理が実行される。
【0266】
すなわち、図48のステップS420およびステップS421においては、受信したデータをセッション鍵Kses1で復号し、復号したデータをセッション鍵Kses2で暗号化した後に共通鍵モジュール122に送信したが、ここでは、図49を用いて説明した処理と同様に、共通鍵モジュール122と、公開鍵モジュール121とが、同一のセッション鍵Kses2を得ることができるため、これらの処理を行う必要がない。
【0267】
そして、図51のフローチャートを参照して、公開鍵モジュール121と共通鍵モジュール122が、共通秘密鍵K_commonを共有し、それを用いて相互認証を行い、更に、共通のセッション鍵Ksesを共有する場合の、モジュール間通信について説明する。
【0268】
ステップS471およびステップS472において、公開鍵モジュール121と共通鍵モジュール122は、共通秘密鍵K_commonにより、相互認証を行い、セッション鍵Ksesを共有する。ステップS473において、モジュール間通信用リーダライタ2−13は、ステップS471およびステップS472における相互認証の通信路のみ提供する(すなわち、公開鍵モジュール121とも共通鍵モジュール122とも、セッション鍵の共有は行われない)。
【0269】
ステップS474において、図48のステップS417と同様の処理が実行される。ステップS475において、公開鍵モジュール121の制御部61は、暗号処理部33の共通鍵処理部42を制御して、移動するデータをセッション鍵Ksesで暗号化させ、暗号化データをモジュール間通信用リーダライタ2−13に送信する。そして、ステップS476乃至ステップS478において、図49のステップS421乃至ステップS423と同様の処理が実行される。
【0270】
すなわち、図51を用いて説明したモジュール間通信においては、モジュール間通信用リーダライタ2−13は、データの通信路を提供するのみで、モジュール間通信されるデータを暗号化したり、復号することはない。
【0271】
上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【0272】
この記録媒体は、図9に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク115(フロッピーディスクを含む)、光ディスク116(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク117(MD(Mini-Disk)を含む)、もしくは半導体メモリ118などよりなるパッケージメディアなどにより構成される。
【0273】
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0274】
【発明の効果】
本発明のデータ記憶装置によれば、所定のリーダライタと一枚のICカードで、共通鍵による認証を行うサービスに関するデータの授受と、公開鍵による認証を行うサービスに関するデータの授受を可能とすることができる。
【0275】
本発明の情報処理装置によれば、所定のリーダライタと一枚のICカードで、共通鍵による認証を行うサービスに関するデータの授受と、公開鍵による認証を行うサービスに関するデータの授受を可能とすることができる。
【図面の簡単な説明】
【図1】ICカードとリーダライタの通信方式および認証方式について説明するための図である。
【図2】カード発行者、サービス提供者、およびカード保持者の関係について説明するための図である。
【図3】ICカードの構成を示すブロック図である。
【図4】ICカードの構成を示すブロック図である。
【図5】図3および図4の暗号処理部について説明するための図である。
【図6】図3および図4のSRAについて説明するための図である。
【図7】図6のSRAに格納される認証用鍵情報について説明するための図である。
【図8】図3および図4のSRTについて説明するための図である。
【図9】リーダライタの構成を示すブロック図である。
【図10】サービス登録用リーダライタのメモリ情報を説明するための図である。
【図11】一般リーダライタのメモリ情報を説明するための図である。
【図12】モジュール間通信用リーダライタのメモリ情報を説明するための図である。
【図13】モジュール間通信を説明するための図である。
【図14】バージョンアップ用リーダライタのメモリ情報を説明するための図である。
【図15】ICカードとリーダライタの認証処理について説明するためのフローチャートである。
【図16】リーダライタのサービス識別処理について説明するためのフローチャートである。
【図17】ICカードのサービス識別処理について説明するためのフローチャートである。
【図18】リーダライタのサービス識別処理について説明するためのフローチャートである。
【図19】ICカードのサービス識別処理について説明するためのフローチャートである。
【図20】リーダライタの認証鍵識別処理について説明するためのフローチャートである。
【図21】ICカードの認証鍵識別処理について説明するためのフローチャートである。
【図22】リーダライタの認証鍵識別処理について説明するためのフローチャートである。
【図23】ICカードの認証鍵識別処理について説明するためのフローチャートである。
【図24】証明書について説明するための図である。
【図25】署名生成処理について説明するためのフローチャートである。
【図26】署名検証処理について説明するためのフローチャートである。
【図27】リーダライタの認証鍵識別処理について説明するためのフローチャートである。
【図28】ICカードの認証鍵識別処理について説明するためのフローチャートである。
【図29】サービス登録用リーダライタのサービス登録処理について説明するためのフローチャートである。
【図30】ICカードのサービス登録処理について説明するためのフローチャートである。
【図31】サービス登録用リーダライタのサービス削除処理について説明するためのフローチャートである。
【図32】ICカードのサービス削除処理について説明するためのフローチャートである。
【図33】一般リーダライタのサービス削除処理について説明するためのフローチャートである。
【図34】ICカードのサービス削除処理について説明するためのフローチャートである。
【図35】一般リーダライタのサービスデータ取得処理について説明するためのフローチャートである。
【図36】ICカードのサービスデータ送信処理について説明するためのフローチャートである。
【図37】一般リーダライタのサービスデータ取得処理について説明するためのフローチャートである。
【図38】ICカードのサービスデータ送信処理について説明するためのフローチャートである。
【図39】一般リーダライタのサービスデータ書き込み処理について説明するためのフローチャートである。
【図40】ICカードのサービスデータ書き込み処理について説明するためのフローチャートである。
【図41】一般リーダライタのサービスデータ書き込み処理について説明するためのフローチャートである。
【図42】ICカードのサービスデータ書き込み処理について説明するためのフローチャートである。
【図43】バージョンアップ用リーダライタの鍵バージョンアップ処理について説明するためのフローチャートである。
【図44】ICカードの鍵バージョンアップ処理について説明するためのフローチャートである。
【図45】一般リーダライタの鍵バージョンアップ処理について説明するためのフローチャートである。
【図46】ICカードの鍵バージョンアップ処理について説明するためのフローチャートである。
【図47】ICカードの鍵バージョンアップ処理について説明するためのフローチャートである。
【図48】モジュール間通信処理について説明するためのフローチャートである。
【図49】モジュール間通信処理について説明するためのフローチャートである。
【図50】モジュール間通信処理について説明するためのフローチャートである。
【図51】モジュール間通信処理について説明するためのフローチャートである。
【符号の説明】
1 ICカード1 リーダライタ、 21 通信部、 31 制御部、 32メモリ、 33 暗号処理部、 41 公開鍵処理部、 42 共通鍵処理部、 43 その他の暗号処理部、 45 SRT、 46 SRA、 51 通信部、 52 共通鍵サービス処理部、 53 通信部、 54 公開鍵サービス処理部、 61 制御部、 62 メモリ、63 暗号処理部、 91 通信部、 101 制御部、 102 暗号処理部、 103 メモリ、 111 公開鍵処理部、 112 共通鍵処理部、 113 その他の暗号処理部、 105 表示部、 106 入力部、 121 公開鍵モジュール、 122 共通鍵モジュール
Claims (2)
- 情報処理装置に装着され、前記情報処理装置とデータの授受を行うデータ記憶装置において、
接触式および非接触式のいずれの通信方式の前記情報処理装置にも対応可能であって、前記情報処理装置に対する、入出力データの変調及び復調を制御し、前記情報処理装置からの所定のサービスを識別するための情報の入力を制御する第1の制御手段と、
前記所定のサービスに対応するデータであって、前記所定のサービスの認証に必要な認証鍵である第1の認証鍵と第2の認証鍵のうちの少なくとも一方、および、前記所定のサービスを識別するための情報の記憶を制御する第2の制御手段と、
前記認証鍵のうち、前記第1の認証鍵を用いた認証処理を実行する第1の認証処理実行手段と、
前記認証鍵のうち、前記第2の認証鍵を用いた認証処理を実行する第2の認証処理実行手段と、
前記第1の制御手段により入力が制御された前記所定のサービスを識別するための情報に基づいて、前記第1の認証処理実行手段と前記第2の認証処理実行手段のいずれかを制御して、前記情報処理装置との認証処理を実行させる第3の制御手段と、
前記第1の認証鍵または前記第2の認証鍵の前記所定のサービスに対するレベルを選択する選択手段と
を備え、
前記第2の制御手段により記憶が制御された前記データには、前記所定のサービスの認証に必要な所定のバージョンの前記第1の認証鍵または前記第2の認証鍵が、複数のレベルで用意されており、
前記第1の制御手段は、前記選択手段により選択された前記レベルの前記第1の認証鍵または前記第2の認証鍵のバージョンに関する第1の情報の出力を制御するとともに、前記情報処理装置からの、前記バージョンに基づいて判定された前記レベルによる認証処理を許可するか否かを示す第2の情報の入力を制御し、
前記レベルによる認証処理が許可されなかった場合、前記選択手段は、前記第1の認証鍵または前記第2の認証鍵の異なるレベルを新たに選択し、前記第1の制御手段は、前記選択手段により新たに選択された前記レベルの前記第1の認証鍵または前記第2の認証鍵の前記バージョンに関する第1の情報の出力を制御し、
前記レベルによる認証処理が許可された場合、前記第3の制御手段は、前記第1の制御手段により入力が制御された前記第2の情報に基づいて、前記第1の認証処理実行手段と前記第2の認証処理実行手段のいずれかを制御して、前記情報処理装置との認証処理を実行させる
ことを特徴とするデータ記憶装置。 - データ記憶装置が装着され、前記データ記憶装置とデータの授受を行う情報処理装置において、
接触式および非接触式のいずれの通信方式の前記データ記憶装置にも対応可能であって、前記データ記憶装置に対する、入出力データの変調及び復調を制御し、前記データ記憶装置への前記所定のサービスを識別するための情報の出力を制御する第1の制御手段と、
前記所定のサービスに対応するデータであって、前記所定のサービスの認証に必要な認証鍵である複数のレベルの複数のバージョンの第1の認証鍵と第2の認証鍵のうちの少なくとも一方、および、前記所定のサービスを識別するための情報の記憶を制御する第2の制御手段と、
前記所定のサービスに対応する情報を表示する表示手段と、
ユーザによる前記所定のサービスの選択を示す信号の入力を受ける入力手段と、
前記認証鍵のうち、前記第1の認証鍵を用いた認証処理を実行する第1の認証処理実行手段と、
前記認証鍵のうち、前記第2の認証鍵を用いた認証処理を実行する第2の認証処理実行手段と、
前記第1の認証処理実行手段、前記第2の認証処理実行手段、および前記第2の制御手段の処理を制御する第3の制御手段と、
前記第1の制御手段により入力が制御される、前記データ記憶装置からの、前記所定のサービスに対する所定のレベルの前記第1の認証鍵または前記第2の認証鍵のバージョンに関する第1の情報に基づいて、認証処理を許可するか否かを判断する判断手段と
を備え、
前記第1の認証処理実行手段もしくは前記第2の認証処理実行手段により認証が可能な前記所定のサービスが複数ある場合、
前記表示手段は、前記認証が可能な複数の前記所定のサービスに対応する情報を表示し、
前記第3の制御手段は、前記入力手段により入力される前記所定のサービスの選択を示す信号に基づいて、前記第1の認証処理実行手段と前記第2の認証処理実行手段のいずれかを制御して、前記判断手段により認証処理が許可された前記レベルの前記バージョンの前記第1の認証鍵または前記第2の認証鍵で前記データ記憶装置との認証処理を実行させ、
前記第1の制御手段は、前記判断手段による判断結果に従って、前記レベルによる認証処理を許可するか否かを示す第2の情報の、前記データ記憶装置への出力を制御する
ことを特徴とする情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000180052A JP4538909B2 (ja) | 2000-06-15 | 2000-06-15 | データ記憶装置および情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000180052A JP4538909B2 (ja) | 2000-06-15 | 2000-06-15 | データ記憶装置および情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001357370A JP2001357370A (ja) | 2001-12-26 |
JP4538909B2 true JP4538909B2 (ja) | 2010-09-08 |
Family
ID=18681219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000180052A Expired - Fee Related JP4538909B2 (ja) | 2000-06-15 | 2000-06-15 | データ記憶装置および情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4538909B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4684463B2 (ja) * | 2001-04-27 | 2011-05-18 | 大日本印刷株式会社 | 送信装置、受信装置および通信システム |
JP4461351B2 (ja) * | 2002-08-15 | 2010-05-12 | ソニー株式会社 | 非接触式icカード |
CN100553192C (zh) * | 2003-12-26 | 2009-10-21 | 三菱电机株式会社 | 认证装置、被认证装置以及密钥更新方法 |
JP4551202B2 (ja) * | 2004-12-07 | 2010-09-22 | 株式会社日立製作所 | アドホックネットワークの認証方法、および、その無線通信端末 |
CN111433788A (zh) * | 2017-12-20 | 2020-07-17 | 凸版印刷株式会社 | 电子标签设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000036014A (ja) * | 1998-07-16 | 2000-02-02 | Sony Corp | 情報処理装置および情報処理方法 |
JP2000059323A (ja) * | 1998-02-13 | 2000-02-25 | Matsushita Electric Ind Co Ltd | デジタルavデータ送信ユニット、デジタルavデータ受信ユニット及び、デジタルavデータ送受信システム、媒体 |
JP2000123139A (ja) * | 1998-10-20 | 2000-04-28 | Dainippon Printing Co Ltd | Icカード |
-
2000
- 2000-06-15 JP JP2000180052A patent/JP4538909B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000059323A (ja) * | 1998-02-13 | 2000-02-25 | Matsushita Electric Ind Co Ltd | デジタルavデータ送信ユニット、デジタルavデータ受信ユニット及び、デジタルavデータ送受信システム、媒体 |
JP2000036014A (ja) * | 1998-07-16 | 2000-02-02 | Sony Corp | 情報処理装置および情報処理方法 |
JP2000123139A (ja) * | 1998-10-20 | 2000-04-28 | Dainippon Printing Co Ltd | Icカード |
Also Published As
Publication number | Publication date |
---|---|
JP2001357370A (ja) | 2001-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7496756B2 (en) | Content usage-right management system and management method | |
JP4638990B2 (ja) | 暗号鍵情報の安全な配布と保護 | |
US7661132B2 (en) | Tag privacy protection method, tag device, backend apparatus, updater, update solicitor and record medium carrying such programs in storage | |
JP4586250B2 (ja) | 個人識別証明書リンクシステム、情報処理装置、および情報処理方法、並びにプログラム提供媒体 | |
JP4654497B2 (ja) | 個人認証システム、個人認証方法、および情報処理装置、並びにプログラム提供媒体 | |
JP4516399B2 (ja) | 情報処理装置および方法、並びにプログラム | |
US20090208003A1 (en) | Authentication Method, Host Computer and Recording Medium | |
US20050262321A1 (en) | Information processing apparatus and method, and storage medium | |
JP2002169465A (ja) | 公開鍵証明書利用システム、公開鍵証明書利用方法、および情報処理装置、並びにプログラム提供媒体 | |
JP2002073568A (ja) | 個人認証システムおよび個人認証方法、並びにプログラム提供媒体 | |
JP2006099509A (ja) | 情報管理装置および方法、並びにプログラム | |
JP2002169719A (ja) | コンテンツ配信システム、コンテンツ配信方法、および情報処理装置、並びにプログラム提供媒体 | |
JP2002175279A (ja) | 個人認証システム、個人認証方法、および情報処理装置、並びにプログラム提供媒体 | |
JP2002073566A (ja) | 個人認証適用データ処理システム、個人認証適用データ処理方法、および情報処理装置、並びにプログラム提供媒体 | |
JP2002077147A (ja) | 個人認証システム、個人認証方法、および情報処理装置、並びにプログラム提供媒体 | |
JP2002175277A (ja) | 情報処理装置および情報処理方法、並びにプログラム提供媒体 | |
US20080148062A1 (en) | Method for the secure storing of program state data in an electronic device | |
JP2002073573A (ja) | コンテンツ配信システム、コンテンツ配信方法、および情報処理装置、並びにプログラム提供媒体 | |
CN105160242A (zh) | 一种读卡器的证书加载方法、证书更新方法及读卡器 | |
JP2004013600A (ja) | データ処理システム、データ処理装置、および方法、並びにコンピュータ・プログラム | |
CN115427959A (zh) | 在终端设备、支付***、货币***和监控单元之间直接传输电子币数据组的方法 | |
JP2003044436A (ja) | 認証処理方法、および情報処理装置、並びにコンピュータ・プログラム | |
JP2002073571A (ja) | 個人認証システムおよび個人認証方法、並びにプログラム提供媒体 | |
JP2001357373A (ja) | データ記憶装置およびデータ記憶方法、情報処理装置および情報処理方法、並びに記録媒体 | |
JP2001357365A (ja) | データ記憶装置およびデータ記憶方法、並びに記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061220 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090707 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090716 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090907 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100105 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100219 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100601 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100614 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130702 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |