(57)【要約】【課題】より簡単にデータを安全に授受できるようにする。【解決手段】  書込み制御部２３２は、書込みフラグがオフの場合、受信したデータを書込み、書込みフラグをオンする。読出し制御部２３３は、受信した読出し鍵が一致した場合、書込みフラグをオフし、データを送信する。あるいは、書込み制御部２３２は、受信した書込み鍵が一致した場合、受信したデータを書込み、暗号化フラグをオフする。読出し制御部２３１は、暗号化フラグがオフの場合、受信した暗号化鍵で暗号化したデータを送信し、暗号化フラグをオンし、暗号化フラグがオンの場合、すでに暗号化されているデータを送信する。本発明は、ＩＣカードに適用することができる。【選択図】図８
2006155190.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域を有する記憶部を備えたデータ記憶装置において、
第１の情報処理装置から送信されてくる、前記記憶領域からのデータの読出しを許可する第１の読出し鍵を登録する読出し鍵登録手段と、
前記記憶領域に記憶されているデータが最初に読出されるまで、前記記憶領域への新たなデータの書込みを禁止するように前記記憶部へのデータの書込みを制御する書込み制御手段と、
前記第１の情報処理装置または前記第１の情報処理装置とは異なる第２の情報処理装置により前記記憶領域からのデータの読出しが要求された場合、前記第１の情報処理装置または前記第２の情報処理装置から送信されてくる第２の読出し鍵と前記第１の読出し鍵とが一致するとき、前記記憶領域からのデータの読出しを許可するように前記記憶部からのデータの読出しを制御する読出し制御手段と
を含むことを特徴とするデータ記憶装置。
【請求項２】
前記書込み制御手段は、前記記憶領域に書込むデータとともに送信されてくる前記記憶領域に書込むデータを暗号化したデジタル署名をさらに前記記憶領域に書込むように前記記憶部へのデータの書込みを制御し、
前記読出し制御手段は、前記第１の情報処理装置または前記第２の情報処理装置により前記第２の鍵が送信されずに前記記憶領域に記憶されているデータの内容の確認が要求された場合、前記記憶領域から前記デジタル署名を読出し、前記第１の情報処理装置または前記第２の情報処理装置に前記デジタル署名を送信するように前記記憶部からのデータの読出しを制御する
ことを特徴とする請求項１に記載のデータ記憶装置。
【請求項３】
記憶領域を有する記憶部を備えたデータ記憶装置のデータ処理方法において、
第１の情報処理装置から送信されてくる、前記記憶領域からのデータの読出しを許可する第１の読出し鍵を登録する読出し鍵登録ステップと、
前記記憶領域に記憶されているデータが最初に読出されるまで、前記記憶領域への新たなデータの書込みを禁止するように前記記憶部へのデータの書込みを制御する書込み制御ステップと、
前記第１の情報処理装置または前記第１の情報処理装置とは異なる第２の情報処理装置により前記記憶領域からのデータの読出しが要求された場合、前記第１の情報処理装置または前記第２の情報処理装置から送信されてくる第２の読出し鍵と前記第１の読出し鍵とが一致するときのみ、前記記憶領域からのデータの読出しを許可するように前記記憶部からのデータの読出しを制御する読出し制御ステップと
を含むことを特徴とするデータ処理方法。
【請求項４】
記憶領域を有する記憶部を備えたデータ記憶装置のデータ処理用のプログラムであって、
第１の情報処理装置から送信されてくる、前記記憶領域からのデータの読出しを許可する第１の読出し鍵を登録する読出し鍵登録ステップと、
前記記憶領域に記憶されているデータが最初に読出されるまで、前記記憶領域への新たなデータの書込みを禁止するように前記記憶部へのデータの書込みを制御する書込み制御ステップと、
前記第１の情報処理装置または前記第１の情報処理装置とは異なる第２の情報処理装置により前記記憶領域からのデータの読出しが要求された場合、前記第１の情報処理装置または前記第２の情報処理装置から送信されてくる第２の読出し鍵と前記第１の読出し鍵とが一致するときのみ、前記記憶領域からのデータの読出しを許可するように前記記憶部からのデータの読出しを制御する読出し制御ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項５】
記憶領域を有する記憶部を備えたデータ記憶装置に、データ処理を行なわせるプログラムであって、
第１の情報処理装置から送信されてくる、前記記憶領域からのデータの読出しを許可する第１の読出し鍵を登録する読出し鍵登録ステップと、
前記記憶領域に記憶されているデータが最初に読出されるまで、前記記憶領域への新たなデータの書込みを禁止するように前記記憶部へのデータの書込みを制御する書込み制御ステップと、
前記第１の情報処理装置または前記第１の情報処理装置とは異なる第２の情報処理装置により前記記憶領域からのデータの読出しが要求された場合、前記第１の情報処理装置または前記第２の情報処理装置から送信されてくる第２の読出し鍵と前記第１の読出し鍵とが一致するときのみ、前記記憶領域からのデータの読出しを許可するように前記記憶部からのデータの読出しを制御する読出し制御ステップと
を含むことを特徴とするプログラム。
【請求項６】
記憶領域を有する記憶部を備えたデータ記憶装置において、
第１の情報処理装置から送信されてくる、前記記憶領域へのデータの書込みを許可する第１の書込み鍵を登録する書込み鍵登録手段と、
前記第１の情報処理装置または前記第１の情報処理装置とは異なる第２の情報処理装置により前記記憶領域へのデータの書込みが要求された場合、前記第１の情報処理装置または前記第２の情報処理装置から送信されてくる第２の書込み鍵が前記第１の書込み鍵と一致するときのみ、前記記憶領域へのデータの書込みを許可するように前記記憶部へのデータの書込みを制御する書込み制御手段と、
前記第１の情報処理装置または前記第２の情報処理装置により前記記憶領域からのデータの読出しが要求された場合、前記記憶領域に記憶されているデータが最初に読出されるとき、前記第１の情報処理装置または前記第２の情報処理装置より送信されてくる暗号化鍵を用いて前記記憶領域に記憶されているデータを暗号化する暗号化手段と、
前記第１の情報処理装置または前記第２の情報処理装置により前記記憶領域からのデータの読出しが要求された場合、前記記憶領域に記憶されているデータが最初に読出されるとき、前記暗号化手段により暗号化されたデータを前記第１の情報処理装置または前記第２の情報処理装置に送信し、前記記憶領域に記憶されているデータが２回目以降に読出されるとき、前記暗号化手段によりすでに暗号化されているデータを前記記憶領域から読出し、前記読出したデータを前記第１の情報処理装置または前記第２の情報処理装置に送信する送信制御手段と
を含むことを特徴とするデータ記憶装置。
【請求項７】
記憶領域を有する記憶部を備えたデータ記憶装置のデータ処理方法において、
第１の情報処理装置から送信されてくる、前記記憶領域へのデータの書込みを許可する第１の書込み鍵を登録する書込み鍵登録ステップと、
前記第１の情報処理装置または前記第１の情報処理装置とは異なる第２の情報処理装置により前記記憶領域へのデータの書込みが要求された場合、前記第１の情報処理装置または前記第２の情報処理装置から送信されてくる第２の書込み鍵が前記第１の書込み鍵と一致するときのみ、前記記憶領域へのデータの書込みを許可するように前記記憶部へのデータの書込みを制御する書込み制御ステップと、
前記第１の情報処理装置または前記第２の情報処理装置により前記記憶領域からのデータの読出しが要求された場合、前記記憶領域に記憶されているデータが最初に読出されるとき、前記第１の情報処理装置または前記第２の情報処理装置より送信されてくる暗号化鍵を用いて前記記憶領域に記憶されているデータを暗号化する暗号化ステップと、
前記第１の情報処理装置または前記第２の情報処理装置により前記記憶領域からのデータの読出しが要求された場合、前記記憶領域に記憶されているデータが最初に読出されるとき、前記暗号化ステップの処理により暗号化されたデータを前記第１の情報処理装置または前記第２の情報処理装置に送信し、前記記憶領域に記憶されているデータが２回目以降に読出されるとき、前記暗号化ステップの処理によりすでに暗号化されているデータを前記記憶領域から読出し、前記読出したデータを前記第１の情報処理装置または前記第２の情報処理装置に送信する送信制御ステップと
を含むことを特徴とするデータ処理方法。
【請求項８】
記憶領域を有する記憶部を備えたデータ記憶装置のデータ処理用のプログラムであって、
第１の情報処理装置から送信されてくる、前記記憶領域へのデータの書込みを許可する第１の書込み鍵を登録する書込み鍵登録ステップと、
前記第１の情報処理装置または前記第１の情報処理装置とは異なる第２の情報処理装置により前記記憶領域へのデータの書込みが要求された場合、前記第１の情報処理装置または前記第２の情報処理装置から送信されてくる第２の書込み鍵が前記第１の書込み鍵と一致するときのみ、前記記憶領域へのデータの書込みを許可するように前記記憶部へのデータの書込みを制御する書込み制御ステップと、
前記第１の情報処理装置または前記第２の情報処理装置により前記記憶領域からのデータの読出しが要求された場合、前記記憶領域に記憶されているデータが最初に読出されるとき、前記第１の情報処理装置または前記第２の情報処理装置より送信されてくる暗号化鍵を用いて前記記憶領域に記憶されているデータを暗号化する暗号化ステップと、
前記第１の情報処理装置または前記第２の情報処理装置により前記記憶領域からのデータの読出しが要求された場合、前記記憶領域に記憶されているデータが最初に読出されるとき、前記暗号化ステップの処理により暗号化されたデータを前記第１の情報処理装置または前記第２の情報処理装置に送信し、前記記憶領域に記憶されているデータが２回目以降に読出されるとき、前記暗号化ステップの処理によりすでに暗号化されているデータを前記記憶領域から読出し、前記読出したデータを前記第１の情報処理装置または前記第２の情報処理装置に送信する送信制御ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項９】
記憶領域を有する記憶部を備えたデータ記憶装置に、データ処理を行なわせるプログラムであって、
第１の情報処理装置から送信されてくる、前記記憶領域へのデータの書込みを許可する第１の書込み鍵を登録する書込み鍵登録ステップと、
前記第１の情報処理装置または前記第１の情報処理装置とは異なる第２の情報処理装置により前記記憶領域へのデータの書込みが要求された場合、前記第１の情報処理装置または前記第２の情報処理装置から送信されてくる第２の書込み鍵が前記第１の書込み鍵と一致するときのみ、前記記憶領域へのデータの書込みを許可するように前記記憶部へのデータの書込みを制御する書込み制御ステップと、
前記第１の情報処理装置または前記第２の情報処理装置により前記記憶領域からのデータの読出しが要求された場合、前記記憶領域に記憶されているデータが最初に読出されるとき、前記第１の情報処理装置または前記第２の情報処理装置より送信されてくる暗号化鍵を用いて前記記憶領域に記憶されているデータを暗号化する暗号化ステップと、
前記第１の情報処理装置または前記第２の情報処理装置により前記記憶領域からのデータの読出しが要求された場合、前記記憶領域に記憶されているデータが最初に読出されるとき、前記暗号化ステップの処理により暗号化されたデータを前記第１の情報処理装置または前記第２の情報処理装置に送信し、前記記憶領域に記憶されているデータが２回目以降に読出されるとき、前記暗号化ステップの処理によりすでに暗号化されているデータを前記記憶領域から読出し、前記読出したデータを前記第１の情報処理装置または前記第２の情報処理装置に送信する送信制御ステップと
を含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの安全性を確保するようにしたデータ記憶装置、データ処理方法、記録媒体、およびプログラムに関する。
【背景技術】
【０００２】
近年、情報処理技術の発展に伴い、毎日大量の情報がインターネットなどの伝送路や各種の記録媒体を介して授受されている。このような情報の授受において、情報を安全に伝達するために、暗号技術が用いられる。
【０００３】
例えば、暗号技術の１つとして秘密鍵暗号方式がある。これは、送信者と受信者が共通の秘密鍵を持ち、送信者が秘密鍵を用いて暗号化したデータを送信し、受信者が暗号化されたデータを秘密鍵を用いて復号する方式である。
【０００４】
例えば、秘密鍵方式を利用した暗号技術の一例として、通信を行なう二者間の相互認証を二種類の秘密鍵を用いて行なう方法が提案されている（例えば、特許文献１参照）。
【０００５】
また、近年、秘密鍵方式に代わる暗号方式として、公開鍵方式が普及してきている。公開鍵方式は、対になる２つの鍵を使ってデータを暗号化および復号する方式であり、２つの鍵のうち一方の鍵は、公開鍵として他人に広く公開され、もう一方の鍵は、秘密鍵として公開鍵を公開した人が厳重に保管する。秘密鍵で暗号化したデータは対になる公開鍵でしか復号できず、公開鍵で暗号化したデータは対になる秘密鍵でしか復号できないようになっている。従って、公開鍵を用いて暗号化したデータは秘密鍵を保管する人が入手するまで復号できないため、データを安全に送信することができる。また、秘密鍵方式では、第三者が入手できないように安全な経路を用いてデータの授受相手に秘密鍵を送付する必要があるのに対し、公開鍵方式では、公開鍵の送付経路の安全性は特に問われないため、鍵の管理が楽であり、また、鍵の盗難を心配する必要がない。
【０００６】
例えば、公開鍵暗号方式を利用したセキュリティ基盤として、PKI（Public Key Infrastructure）が知られている。
【特許文献１】特開平１０−２０７８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、秘密鍵方式では、データの授受を行なう前に安全な経路を用いて秘密鍵を送付する必要があり、また、授受相手ごとに異なる秘密鍵を用いてデータを暗号化する必要があり、鍵の管理やデータ授受の手順が煩雑になってしまうという課題があった。
【０００８】
さらに、公開鍵方式では、データの授受を行なう前に、データの受信者が公開鍵を公開し、データの送信者が公開鍵を入手する必要があり、また、送信者は、異なる受信者に対して、それぞれ異なる公開鍵を用いてデータを暗号化して送信する必要があり、鍵の管理やデータ授受の手順が煩雑になってしまうという課題があった。
【０００９】
さらに、PKIにおいては、公開鍵の持ち主を証明する証明書を発行する第三者の機関である認証局を設ける必要があり、システムが大規模になってしまうとともに、データ授受の手順が煩雑になってしまうという課題があった。
【００１０】
本発明は、このような状況に鑑みてなされたものであり、より簡単にデータを安全に授受できるようにするものである。
【課題を解決するための手段】
【００１１】
本発明の第１のデータ記憶装置は、記憶領域を有する記憶部を備えたデータ記憶装置であって、第１の情報処理装置から送信されてくる、記憶領域からのデータの読出しを許可する第１の読出し鍵を登録する読出し鍵登録手段と、記憶領域に記憶されているデータが最初に読出されるまで、記憶領域への新たなデータの書込みを禁止するように記憶部へのデータの書込みを制御する書込み制御手段と、第１の情報処理装置または第１の情報処理装置とは異なる第２の情報処理装置により記憶領域からのデータの読出しが要求された場合、第１の情報処理装置または第２の情報処理装置から送信されてくる第２の読出し鍵と第１の読出し鍵とが一致するとき、記憶領域からのデータの読出しを許可するように記憶部からのデータの読出しを制御する読出し制御手段とを含むことを特徴とする。
【００１２】
書込み制御手段は、記憶領域に書込むデータとともに送信されてくる記憶領域に書込むデータを暗号化したデジタル署名をさらに記憶領域に書込むように記憶部へのデータの書込みを制御し、読出し制御手段は、第１の情報処理装置または第２の情報処理装置により第２の鍵が送信されずに記憶領域に記憶されているデータの内容の確認が要求された場合、記憶領域からデジタル署名を読出し、第１の情報処理装置または第２の情報処理装置にデジタル署名を送信するように記憶部からのデータの読出しを制御するようにすることができる。
【００１３】
本発明の第１のデータ処理方法は、記憶領域を有する記憶部を備えたデータ記憶装置のデータ処理方法であって、第１の情報処理装置から送信されてくる、記憶領域からのデータの読出しを許可する第１の読出し鍵を登録する読出し鍵登録ステップと、記憶領域に記憶されているデータが最初に読出されるまで、記憶領域への新たなデータの書込みを禁止するように記憶部へのデータの書込みを制御する書込み制御ステップと、第１の情報処理装置または第１の情報処理装置とは異なる第２の情報処理装置により記憶領域からのデータの読出しが要求された場合、第１の情報処理装置または第２の情報処理装置から送信されてくる第２の読出し鍵と第１の読出し鍵とが一致するときのみ、記憶領域からのデータの読出しを許可するように記憶部からのデータの読出しを制御する読出し制御ステップとを含むことを特徴とする。
【００１４】
本発明の第１の記録媒体に記録されているプログラムは、記憶領域を有する記憶部を備えたデータ記憶装置のデータ処理用のプログラムであって、第１の情報処理装置から送信されてくる、記憶領域からのデータの読出しを許可する第１の読出し鍵を登録する読出し鍵登録ステップと、記憶領域に記憶されているデータが最初に読出されるまで、記憶領域への新たなデータの書込みを禁止するように記憶部へのデータの書込みを制御する書込み制御ステップと、第１の情報処理装置または第１の情報処理装置とは異なる第２の情報処理装置により記憶領域からのデータの読出しが要求された場合、第１の情報処理装置または第２の情報処理装置から送信されてくる第２の読出し鍵と第１の読出し鍵とが一致するときのみ、記憶領域からのデータの読出しを許可するように記憶部からのデータの読出しを制御する読出し制御ステップとを含むことを特徴とする。
【００１５】
本発明の第１のプログラムは、記憶領域を有する記憶部を備えたデータ記憶装置に、データ処理を行なわせるプログラムであって、第１の情報処理装置から送信されてくる、記憶領域からのデータの読出しを許可する第１の読出し鍵を登録する読出し鍵登録ステップと、記憶領域に記憶されているデータが最初に読出されるまで、記憶領域への新たなデータの書込みを禁止するように記憶部へのデータの書込みを制御する書込み制御ステップと、第１の情報処理装置または第１の情報処理装置とは異なる第２の情報処理装置により記憶領域からのデータの読出しが要求された場合、第１の情報処理装置または第２の情報処理装置から送信されてくる第２の読出し鍵と第１の読出し鍵とが一致するときのみ、記憶領域からのデータの読出しを許可するように記憶部からのデータの読出しを制御する読出し制御ステップとを含むことを特徴とする。
【００１６】
本発明の第２のデータ記憶装置は、記憶領域を有する記憶部を備えたデータ記憶装置であって、第１の情報処理装置から送信されてくる、記憶領域へのデータの書込みを許可する第１の書込み鍵を登録する書込み鍵登録手段と、第１の情報処理装置または第１の情報処理装置とは異なる第２の情報処理装置により記憶領域へのデータの書込みが要求された場合、第１の情報処理装置または第２の情報処理装置から送信されてくる第２の書込み鍵が第１の書込み鍵と一致するときのみ、記憶領域へのデータの書込みを許可するように記憶部へのデータの書込みを制御する書込み制御手段と、第１の情報処理装置または第２の情報処理装置により記憶領域からのデータの読出しが要求された場合、記憶領域に記憶されているデータが最初に読出されるとき、第１の情報処理装置または第２の情報処理装置より送信されてくる暗号化鍵を用いて記憶領域に記憶されているデータを暗号化する暗号化手段と、第１の情報処理装置または第２の情報処理装置により記憶領域からのデータの読出しが要求された場合、記憶領域に記憶されているデータが最初に読出されるとき、暗号化手段により暗号化されたデータを第１の情報処理装置または第２の情報処理装置に送信し、記憶領域に記憶されているデータが２回目以降に読出されるとき、暗号化手段によりすでに暗号化されているデータを記憶領域から読出し、読出したデータを第１の情報処理装置または第２の情報処理装置に送信する送信制御手段とを含むことを特徴とする。
【００１７】
本発明の第２のデータ処理方法は、記憶領域を有する記憶部を備えたデータ記憶装置のデータ処理方法であって、第１の情報処理装置から送信されてくる、記憶領域へのデータの書込みを許可する第１の書込み鍵を登録する書込み鍵登録ステップと、第１の情報処理装置または第１の情報処理装置とは異なる第２の情報処理装置により記憶領域へのデータの書込みが要求された場合、第１の情報処理装置または第２の情報処理装置から送信されてくる第２の書込み鍵が第１の書込み鍵と一致するときのみ、記憶領域へのデータの書込みを許可するように記憶部へのデータの書込みを制御する書込み制御ステップと、第１の情報処理装置または第２の情報処理装置により記憶領域からのデータの読出しが要求された場合、記憶領域に記憶されているデータが最初に読出されるとき、第１の情報処理装置または第２の情報処理装置より送信されてくる暗号化鍵を用いて記憶領域に記憶されているデータを暗号化する暗号化ステップと、第１の情報処理装置または第２の情報処理装置により記憶領域からのデータの読出しが要求された場合、記憶領域に記憶されているデータが最初に読出されるとき、暗号化ステップの処理により暗号化されたデータを第１の情報処理装置または第２の情報処理装置に送信し、記憶領域に記憶されているデータが２回目以降に読出されるとき、暗号化ステップの処理によりすでに暗号化されているデータを記憶領域から読出し、読出したデータを第１の情報処理装置または第２の情報処理装置に送信する送信制御ステップとを含むことを特徴とする。
【００１８】
本発明の第２の記録媒体に記録されているプログラムは、記憶領域を有する記憶部を備えたデータ記憶装置のデータ処理用のプログラムであって、第１の情報処理装置から送信されてくる、記憶領域へのデータの書込みを許可する第１の書込み鍵を登録する書込み鍵登録ステップと、第１の情報処理装置または第１の情報処理装置とは異なる第２の情報処理装置により記憶領域へのデータの書込みが要求された場合、第１の情報処理装置または第２の情報処理装置から送信されてくる第２の書込み鍵が第１の書込み鍵と一致するときのみ、記憶領域へのデータの書込みを許可するように記憶部へのデータの書込みを制御する書込み制御ステップと、第１の情報処理装置または第２の情報処理装置により記憶領域からのデータの読出しが要求された場合、記憶領域に記憶されているデータが最初に読出されるとき、第１の情報処理装置または第２の情報処理装置より送信されてくる暗号化鍵を用いて記憶領域に記憶されているデータを暗号化する暗号化ステップと、第１の情報処理装置または第２の情報処理装置により記憶領域からのデータの読出しが要求された場合、記憶領域に記憶されているデータが最初に読出されるとき、暗号化ステップの処理により暗号化されたデータを第１の情報処理装置または第２の情報処理装置に送信し、記憶領域に記憶されているデータが２回目以降に読出されるとき、暗号化ステップの処理によりすでに暗号化されているデータを記憶領域から読出し、読出したデータを第１の情報処理装置または第２の情報処理装置に送信する送信制御ステップとを含むことを特徴とする。
【００１９】
本発明の第２のプログラムは、記憶領域を有する記憶部を備えたデータ記憶装置に、データ処理を行なわせるプログラムであって、第１の情報処理装置から送信されてくる、記憶領域へのデータの書込みを許可する第１の書込み鍵を登録する書込み鍵登録ステップと、第１の情報処理装置または第１の情報処理装置とは異なる第２の情報処理装置により記憶領域へのデータの書込みが要求された場合、第１の情報処理装置または第２の情報処理装置から送信されてくる第２の書込み鍵が第１の書込み鍵と一致するときのみ、記憶領域へのデータの書込みを許可するように記憶部へのデータの書込みを制御する書込み制御ステップと、第１の情報処理装置または第２の情報処理装置により記憶領域からのデータの読出しが要求された場合、記憶領域に記憶されているデータが最初に読出されるとき、第１の情報処理装置または第２の情報処理装置より送信されてくる暗号化鍵を用いて記憶領域に記憶されているデータを暗号化する暗号化ステップと、第１の情報処理装置または第２の情報処理装置により記憶領域からのデータの読出しが要求された場合、記憶領域に記憶されているデータが最初に読出されるとき、暗号化ステップの処理により暗号化されたデータを第１の情報処理装置または第２の情報処理装置に送信し、記憶領域に記憶されているデータが２回目以降に読出されるとき、暗号化ステップの処理によりすでに暗号化されているデータを記憶領域から読出し、読出したデータを第１の情報処理装置または第２の情報処理装置に送信する送信制御ステップとを含むことを特徴とする。
【００２０】
本発明の第１のデータ記憶装置、第１のデータ処理方法、第１の記録媒体、および第１のプログラムによれば、第１の情報処理装置から送信されてくる、記憶領域からのデータの読出しを許可する第１の読出し鍵が登録され、記憶領域に記憶されているデータが最初に読出されるまで、記憶領域への新たなデータの書込みを禁止するように記憶部へのデータの書込みが制御され、第１の情報処理装置または第１の情報処理装置とは異なる第２の情報処理装置により記憶領域からのデータの読出しが要求された場合、第１の情報処理装置または第２の情報処理装置から送信されてくる第２の読出し鍵と第１の読出し鍵とが一致するとき、記憶領域からのデータの読出しを許可するように記憶部からのデータの読出しが制御される。
【００２１】
本発明の第２のデータ記憶装置、第２のデータ処理方法、第２の記録媒体、および第２のプログラムによれば、第１の情報処理装置から送信されてくる、記憶領域へのデータの書込みを許可する第１の書込み鍵が登録され、第１の情報処理装置または第１の情報処理装置とは異なる第２の情報処理装置により記憶領域へのデータの書込みが要求された場合、第１の情報処理装置または第２の情報処理装置から送信されてくる第２の書込み鍵が第１の書込み鍵と一致するとき、記憶領域へのデータの書込みを許可するように記憶部へのデータの書込みが制御され、第１の情報処理装置または第２の情報処理装置により記憶領域からのデータの読出しが要求された場合、記憶領域に記憶されているデータが最初に読出されるとき、第１の情報処理装置または第２の情報処理装置より送信されてくる暗号化鍵を用いて記憶領域に記憶されているデータが暗号化され、第１の情報処理装置または第２の情報処理装置により記憶領域からのデータの読出しが要求された場合、記憶領域に記憶されているデータが最初に読出されるとき、暗号化されたデータが第１の情報処理装置または第２の情報処理装置に送信され、記憶領域に記憶されているデータが２回目以降に読出されるとき、すでに暗号化されているデータを記憶領域から読出し、読出したデータが第１の情報処理装置または第２の情報処理装置に送信される。
【発明の効果】
【００２２】
本発明によれば、データを授受することができる。また、本発明によれば、より簡単にデータを安全に授受することができる。
【発明を実施するための最良の形態】
【００２３】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２４】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
【００２５】
請求項１に記載のデータ記憶装置（例えば、図１のICカード１３）は、記憶領域（例えば、サービス領域）を有する記憶部（例えば、図７の記憶部２０７）を備えたデータ記憶装置であって、第１の情報処理装置（例えば、図１のリーダライタ１１）から送信されてくる、前記記憶領域からのデータの読出しを許可する第１の読出し鍵を登録する読出し鍵登録手段（例えば、図８のサービス生成部２３４）と、前記記憶領域に記憶されているデータが最初に読出されるまで、前記記憶領域への新たなデータの書込みを禁止するように前記記憶部へのデータの書込みを制御する書込み制御手段（例えば、図８の書込み制御部２３２）と、前記第１の情報処理装置または前記第１の情報処理装置とは異なる第２の情報処理装置（例えば、図１のリーダライタ１２）により前記記憶領域からのデータの読出しが要求された場合、前記第１の情報処理装置または前記第２の情報処理装置から送信されてくる第２の読出し鍵と前記第１の読出し鍵とが一致するとき、前記記憶領域からのデータの読出しを許可するように前記記憶部からのデータの読出しを制御する読出し制御手段（例えば、図８の読出し制御部２３３）とを含むことを特徴とする。
【００２６】
請求項２に記載のデータ記憶装置（例えば、図１のICカード１３）は、前記書込み制御手段は、前記記憶領域に書込むデータとともに送信されてくる前記記憶領域に書込むデータを暗号化したデジタル署名（例えば、シグネチャー）をさらに前記記憶領域に書込むように前記記憶部へのデータの書込みを制御し、前記読出し制御手段は、前記第１の情報処理装置または前記第２の情報処理装置により前記第２の鍵が送信されずに前記記憶領域に記憶されているデータの内容の確認が要求された場合、前記記憶領域から前記デジタル署名を読出し、前記第１の情報処理装置または前記第２の情報処理装置に前記デジタル署名を送信するように前記記憶部からのデータの読出しを制御することを特徴とする。
【００２７】
請求項３に記載のデータ処理方法は、記憶領域（例えば、サービス領域）を有する記憶部（例えば、図７の記憶部２０７）を備えたデータ記憶装置（例えば、図１のICカード１３）のデータ処理方法であって、第１の情報処理装置（例えば、図１のリーダライタ１１）から送信されてくる、前記記憶領域からのデータの読出しを許可する第１の読出し鍵を登録する読出し鍵登録ステップ（例えば、図９のステップＳ１２）と、前記記憶領域に記憶されているデータが最初に読出されるまで、前記記憶領域への新たなデータの書込みを禁止するように前記記憶部へのデータの書込みを制御する書込み制御ステップ（例えば、図１１のステップＳ５３乃至Ｓ５５）と、前記第１の情報処理装置または前記第１の情報処理装置とは異なる第２の情報処理装置（例えば、図１のリーダライタ１２）により前記記憶領域からのデータの読出しが要求された場合、前記第１の情報処理装置または前記第２の情報処理装置から送信されてくる第２の読出し鍵と前記第１の読出し鍵とが一致するとき、前記記憶領域からのデータの読出しを許可するように前記記憶部からのデータの読出しを制御する読出し制御ステップ（例えば、図１３のステップＳ１１３およびＳ１１５）とを含むことを特徴とする。
【００２８】
請求項４に記載の記録媒体（例えば、図３の磁気ディスク５１、光ディスク５２、光磁気ディスク５３、もしくは、半導体メモリ５４、または、図５の磁気ディスク１５１、光ディスク１５２、光磁気ディスク１５３、もしくは、半導体メモリ１５４）に記録されているプログラムは、記憶領域（例えば、サービス領域）を有する記憶部（例えば、図７の記憶部２０７）を備えたデータ記憶装置（例えば、図１のICカード１３）のデータ処理用のプログラムであって、第１の情報処理装置（例えば、図１のリーダライタ１１）から送信されてくる、前記記憶領域からのデータの読出しを許可する第１の読出し鍵を登録する読出し鍵登録ステップ（例えば、図９のステップＳ１２）と、前記記憶領域に記憶されているデータが最初に読出されるまで、前記記憶領域への新たなデータの書込みを禁止するように前記記憶部へのデータの書込みを制御する書込み制御ステップ（例えば、図１１のステップＳ５３乃至Ｓ５５）と、前記第１の情報処理装置または前記第１の情報処理装置とは異なる第２の情報処理装置（例えば、図１のリーダライタ１２）により前記記憶領域からのデータの読出しが要求された場合、前記第１の情報処理装置または前記第２の情報処理装置から送信されてくる第２の読出し鍵と前記第１の読出し鍵とが一致するとき、前記記憶領域からのデータの読出しを許可するように前記記憶部からのデータの読出しを制御する読出し制御ステップ（例えば、図１３のステップＳ１１３およびＳ１１５）とを含むことを特徴とする。
【００２９】
請求項５に記載のプログラムは、記憶領域（例えば、サービス領域）を有する記憶部（例えば、図７の記憶部２０７）を備えたデータ記憶装置（例えば、図１のICカード１３）に、データ処理を行なわせるプログラムであって、第１の情報処理装置（例えば、図１のリーダライタ１１）から送信されてくる、前記記憶領域からのデータの読出しを許可する第１の読出し鍵を登録する読出し鍵登録ステップ（例えば、図９のステップＳ１２）と、前記記憶領域に記憶されているデータが最初に読出されるまで、前記記憶領域への新たなデータの書込みを禁止するように前記記憶部へのデータの書込みを制御する書込み制御ステップ（例えば、図１１のステップＳ５３乃至Ｓ５５）と、前記第１の情報処理装置または前記第１の情報処理装置とは異なる第２の情報処理装置（例えば、図１のリーダライタ１２）により前記記憶領域からのデータの読出しが要求された場合、前記第１の情報処理装置または前記第２の情報処理装置から送信されてくる第２の読出し鍵と前記第１の読出し鍵とが一致するとき、前記記憶領域からのデータの読出しを許可するように前記記憶部からのデータの読出しを制御する読出し制御ステップ（例えば、図１３のステップＳ１１３およびＳ１１５）とを含むことを特徴とする。
【００３０】
請求項６に記載のデータ記憶装置（例えば、図１のICカード１３）は、記憶領域（例えば、サービス領域）を有する記憶部（例えば、図７の記憶部２０７）を備えたデータ記憶装置であって、第１の情報処理装置（例えば、図１のリーダライタ１１）から送信されてくる、前記記憶領域へのデータの書込みを許可する第１の書込み鍵を登録する書込み鍵登録手段（例えば、図８のサービス生成部２３４）と、前記第１の情報処理装置または前記第１の情報処理装置とは異なる第２の情報処理装置（例えば、図１のリーダライタ１２）により前記記憶領域へのデータの書込みが要求された場合、前記第１の情報処理装置または前記第２の情報処理装置から送信されてくる第２の書込み鍵が前記第１の書込み鍵と一致するとき、前記記憶領域へのデータの書込みを許可するように前記記憶部へのデータの書込みを制御する書込み制御手段（例えば、図８の書込み制御部２３２）と、前記第１の情報処理装置または前記第２の情報処理装置により前記記憶領域からのデータの読出しが要求された場合、前記記憶領域に記憶されているデータが最初に読出されるとき、前記第１の情報処理装置または前記第２の情報処理装置より送信されてくる暗号化鍵を用いて前記記憶領域に記憶されているデータを暗号化する暗号化手段（例えば、図８の暗号化部２３５）と、前記第１の情報処理装置または前記第２の情報処理装置により前記記憶領域からのデータの読出しが要求された場合、前記記憶領域に記憶されているデータが最初に読出されるとき、前記暗号化手段により暗号化されたデータを前記第１の情報処理装置または前記第２の情報処理装置に送信し、前記記憶領域に記憶されているデータが２回目以降に読出されるとき、前記暗号化手段によりすでに暗号化されているデータを前記記憶領域から読出し、前記読出したデータを前記第１の情報処理装置または前記第２の情報処理装置に送信する送信制御手段（例えば、図８の読出し制御部２３３）とを含むことを特徴とする。
【００３１】
請求項７に記載のデータ処理方法は、記憶領域（例えば、サービス領域）を有する記憶部（例えば、図７の記憶部２０７）を備えたデータ記憶装置（例えば、図１のICカード１３）のデータ処理方法であって、第１の情報処理装置（例えば、図１のリーダライタ１１）から送信されてくる、前記記憶領域へのデータの書込みを許可する第１の書込み鍵を登録する書込み鍵登録ステップ（例えば、図１４のステップＳ２１２）と、前記第１の情報処理装置または前記第１の情報処理装置とは異なる第２の情報処理装置（例えば、図１のリーダライタ１２）により前記記憶領域へのデータの書込みが要求された場合、前記第１の情報処理装置または前記第２の情報処理装置から送信されてくる第２の書込み鍵が前記第１の書込み鍵と一致するとき、前記記憶領域へのデータの書込みを許可するように前記記憶部へのデータの書込みを制御する書込み制御ステップ（例えば、図１６のステップＳ２５３およびＳ２５４）と、前記第１の情報処理装置または前記第２の情報処理装置により前記記憶領域からのデータの読出しが要求された場合、前記記憶領域に記憶されているデータが最初に読出されるとき、前記第１の情報処理装置または前記第２の情報処理装置より送信されてくる暗号化鍵を用いて前記記憶領域に記憶されているデータを暗号化する暗号化ステップ（例えば、図１７のステップＳ２８４）と、前記第１の情報処理装置または前記第２の情報処理装置により前記記憶領域からのデータの読出しが要求された場合、前記記憶領域に記憶されているデータが最初に読出されるとき、前記暗号化ステップの処理により暗号化されたデータを前記第１の情報処理装置または前記第２の情報処理装置に送信し、前記記憶領域に記憶されているデータが２回目以降に読出されるとき、前記暗号化ステップの処理によりすでに暗号化されているデータを前記記憶領域から読出し、前記読出したデータを前記第１の情報処理装置または前記第２の情報処理装置に送信する送信制御ステップ（例えば、図１７のステップＳ２８６）とを含むことを特徴とする。
【００３２】
請求項８に記載の記録媒体（例えば、図３の磁気ディスク５１、光ディスク５２、光磁気ディスク５３、もしくは、半導体メモリ５４、または、図５の磁気ディスク１５１、光ディスク１５２、光磁気ディスク１５３、もしくは、半導体メモリ１５４）に記録されているプログラムは、記憶領域（例えば、サービス領域）を有する記憶部（例えば、図７の記憶部２０７）を備えたデータ記憶装置（例えば、図１のICカード１３）のデータ処理用のプログラムであって、第１の情報処理装置（例えば、図１のリーダライタ１１）から送信されてくる、前記記憶領域へのデータの書込みを許可する第１の書込み鍵を登録する書込み鍵登録ステップ（例えば、図１４のステップＳ２１２）と、前記第１の情報処理装置または前記第１の情報処理装置とは異なる第２の情報処理装置（例えば、図１のリーダライタ１２）により前記記憶領域へのデータの書込みが要求された場合、前記第１の情報処理装置または前記第２の情報処理装置から送信されてくる第２の書込み鍵が前記第１の書込み鍵と一致するとき、前記記憶領域へのデータの書込みを許可するように前記記憶部へのデータの書込みを制御する書込み制御ステップ（例えば、図１６のステップＳ２５３およびＳ２５４）と、前記第１の情報処理装置または前記第２の情報処理装置により前記記憶領域からのデータの読出しが要求された場合、前記記憶領域に記憶されているデータが最初に読出されるとき、前記第１の情報処理装置または前記第２の情報処理装置より送信されてくる暗号化鍵を用いて前記記憶領域に記憶されているデータを暗号化する暗号化ステップ（例えば、図１７のステップＳ２８４）と、前記第１の情報処理装置または前記第２の情報処理装置により前記記憶領域からのデータの読出しが要求された場合、前記記憶領域に記憶されているデータが最初に読出されるとき、前記暗号化ステップの処理により暗号化されたデータを前記第１の情報処理装置または前記第２の情報処理装置に送信し、前記記憶領域に記憶されているデータが２回目以降に読出されるとき、前記暗号化ステップの処理によりすでに暗号化されているデータを前記記憶領域から読出し、前記読出したデータを前記第１の情報処理装置または前記第２の情報処理装置に送信する送信制御ステップ（例えば、図１７のステップＳ２８６）とを含むことを特徴とする。
【００３３】
請求項９に記載のプログラムは、記憶領域（例えば、サービス領域）を有する記憶部（例えば、図７の記憶部２０７）を備えたデータ記憶装置（例えば、図１のICカード１３）に、データ処理を行なわせるプログラムであって、第１の情報処理装置（例えば、図１のリーダライタ１１）から送信されてくる、前記記憶領域へのデータの書込みを許可する第１の書込み鍵を登録する書込み鍵登録ステップ（例えば、図１４のステップＳ２１２）と、前記第１の情報処理装置または前記第１の情報処理装置とは異なる第２の情報処理装置（例えば、図１のリーダライタ１２）により前記記憶領域へのデータの書込みが要求された場合、前記第１の情報処理装置または前記第２の情報処理装置から送信されてくる第２の書込み鍵が前記第１の書込み鍵と一致するとき、前記記憶領域へのデータの書込みを許可するように前記記憶部へのデータの書込みを制御する書込み制御ステップ（例えば、図１６のステップＳ２５３およびＳ２５４）と、前記第１の情報処理装置または前記第２の情報処理装置により前記記憶領域からのデータの読出しが要求された場合、前記記憶領域に記憶されているデータが最初に読出されるとき、前記第１の情報処理装置または前記第２の情報処理装置より送信されてくる暗号化鍵を用いて前記記憶領域に記憶されているデータを暗号化する暗号化ステップ（例えば、図１７のステップＳ２８４）と、前記第１の情報処理装置または前記第２の情報処理装置により前記記憶領域からのデータの読出しが要求された場合、前記記憶領域に記憶されているデータが最初に読出されるとき、前記暗号化ステップの処理により暗号化されたデータを前記第１の情報処理装置または前記第２の情報処理装置に送信し、前記記憶領域に記憶されているデータが２回目以降に読出されるとき、前記暗号化ステップの処理によりすでに暗号化されているデータを前記記憶領域から読出し、前記読出したデータを前記第１の情報処理装置または前記第２の情報処理装置に送信する送信制御ステップ（例えば、図１７のステップＳ２８６）とを含むことを特徴とする。
【００３４】
以下、図を参照して、本発明の実施の形態について説明する。
【００３５】
図１は、本発明を適用した非接触ICカードシステム１の一実施の形態を示している。非接触ICカードシステム１において、リーダライタ１１とICカード１３、または、リーダライタ１２とICカード１３は、電磁波を利用して非接触でデータの送受信を行なう。例えば、非接触ICカードシステム１において、リーダライタ１１は、ICカード１３を所有するICカード所有者のものとされ、リーダライタ１２は、ICカード１３を利用した各種サービスを提供するサービス提供者のものとされる。
【００３６】
図２は、リーダライタ１１とICカード１３との間、または、リーダライタ１２とICカード１３との間で送受信されるコマンドのフォーマットの例を示す図である。
【００３７】
コマンドは、CMDフィールド、LENフィールド、データフィールド、データシグネチャーフィールド、および、CRCフィールドにより構成される。
【００３８】
CMDフィールドには、リーダライタ１１とICカード１３との間、または、リーダライタ１１とICカード１３との間、または、リーダライタ１２とICカード１３との間において、各種の処理を指示したり、各種の情報を伝達したりするためのコードであるコマンドコードが設定される。
【００３９】
LENフィールドには、データフィールドからCRCフィールドまでのデータ長（例えば、バイト数）が設定される。
【００４０】
データフィールドには、リーダライタ１１とICカード１３との間、または、リーダライタ１２とICカード１３との間で授受される各種のデータが格納される。
【００４１】
データシグネチャーフィールドには、必要に応じて、データフィールドに格納されているデータを暗号化したデジタル署名であるシグネチャーが格納される。シグネチャーは、例えば、不可逆な一方向関数を含むMD5（Message Digest 5）などのハッシュ関数を用いて、データフィールドに格納されているデータから生成されたハッシュ値とされる。
【００４２】
CRCフィールドには、データ伝送の誤り検出の一方式であるCRC（Cyclical（Cyclic） Redundancy Check）方式におけるCRCコードが設定される。
【００４３】
なお、図２のコマンドに、リーダライタ１１または１２を識別するための装置ID、ICカード１３を識別するためのカードIDなどのコマンドの送受信に必要な情報が付加され、
コマンドが送受信される。
【００４４】
図３は、リーダライタ１１の機能の構成例を示すブロック図である。リーダライタ１１は、制御部３１、記録部３２、SPU（Signal Processing Unit）３３、変調部３４、発振回路３５、アンテナ３６、復調部３７、およびドライブ３８を含むように構成される。
【００４５】
制御部３１は、必要に応じて装着される、ドライブ３８から供給されるプログラムを読み込み、読み込んだプログラムを実行し、リーダライタ１１全体を制御する。また、制御部３１は、ドライブ３８からプログラムやデータが供給された場合、供給されたプログラムやデータを必要に応じて記録部３２に記録させる。そして、制御部３１は、記録部３２に記録されたプログラムを読み込み、読み込んだプログラムを実行し、リーダライタ１１全体を制御する。
【００４６】
制御部３１は、ＩＣカード１３に所定の処理を実行させるコマンドを生成し、生成したコマンドをSPU３３に供給する。また、制御部３１は、ICカード１３から送信され、SPU３３から供給されるコマンドに対応した処理を実行する。また、制御部３１は、図示せぬ操作部を用いてユーザにより入力された指令に対応した処理を実行する。
【００４７】
記録部３２は、書き換え可能で、電源が遮断されても記録内容を保持できる、いわゆる不揮発性の記憶媒体または記録媒体からなり、例えば、ハードディスクまたはフラッシュメモリなどにより構成される。記録部３２は、制御部３１が使用するプログラムやデータを記録する。
【００４８】
SPU３３は、制御部３１から供給されたコマンドを、所定の方式により符号化し、符号化したコマンドを変調部３４に供給する。また、SPU３３は、復調部３７から供給されたデータを、データの符号化方式に対応する方式により復号し、復号したデータを制御部３１に供給する。
【００４９】
例えば、SPU３３は、ＩＣカード１３あてに送信するコマンドが、制御部３１から供給されてきた場合、そのコマンドに、マンチェスタコードへのコーディングなどの符号化処理を施し、これにより得られた信号を変調部３４に出力する。また、例えば、SPU３３は、ＩＣカード１３からのデータが復調部３７から供給されてきた場合、そのデータに対して、マンチェスタコードのデコードなどの復号処理を施し、これにより得られた信号を、制御部３１に供給する。
【００５０】
変調部３４は、発振回路３５から供給された所定の周波数のクロック信号を基に、搬送波を生成する。変調部３４は、搬送波に基づいて、SPU３３から供給されたコマンドを所定の方式により変調することにより変調したコマンドを生成し、変調したコマンドをアンテナ３６に供給する。例えば、変調部３４は、SPU３３から供給されたコマンドに基づいて、搬送波の位相、振幅、周波数などを変化させることにより変調したコマンドを生成する。
【００５１】
より具体的には、例えば、変調部３４は、発振回路３５から供給される13.56MHzの周波数のクロック信号を搬送波として、SPU３３より供給されるデータをASK（Amplitude Shift Keying）変調し、生成された変調波を、電磁波としてアンテナ３６から出力させる。      
【００５２】
発振回路３５は、所定の周波数の、基準となるクロック信号を生成し、生成したクロック信号を変調部３４に供給する。
【００５３】
アンテナ３６は、変調部３４から供給されたコマンドを、無線通信によりICカード１３あてに送信する。すなわち、例えば、アンテナ３６は、変調部３４から供給されたコマンドを伝送するための電波を輻射（放射）する。また、アンテナ３６は、ICカード１３から送信されてきたデータを受信し、受信したデータを復調部３７に供給する。
【００５４】
復調部３７は、アンテナ３６から供給されたデータを、ICカード１３の変調部２０９（図７）の変調方式に対応する復調方式により復調し、復調したデータをSPU３３に供給する。例えば、復調部３７は、アンテナ３６を介して取得した変調波（ASK変調波）を復調し、復調したデータをSPU３３に出力する。
【００５５】
ドライブ３８は、磁気ディスク５１、光ディスク５２、光磁気ディスク５３、または半導体メモリ５４などが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、制御部３１またはＩＣカード１３に転送される。また、ＩＣカード１３に転送（送信）されたプログラムは、ＩＣカード１３により、必要に応じて記録されるか、または実行される。
【００５６】
図４は、所定のプログラムを実行する制御部３１により実現される機能の構成例を示すブロック図である。制御部３１がプログラムを実行することにより、通信制御部７１、書込み制御部７２、読出し制御部７３、サービス生成要求部７４、暗号化部７５、および、復号部７６が実現される。
【００５７】
通信制御部７１は、SPU３３、変調部３４、および、アンテナ３６を介して、ポーリングコマンドを送信し、ポーリングコマンドに対するポーリング応答コマンドがICカード１３から送信されてきた場合、アンテナ３６、復調部３７、および、SPU３３を介してポーリング応答コマンドを受信する。通信制御部７１は、ICカード１３からポーリング応答コマンドを受信した場合、SPU３３、変調部３４または復調部３７、および、アンテナ３６を介して、ICカード１３と相互認証などのセッション確立処理を行ない、リーダライタ１１とICカード１３との間の通信セッションを確立する。
【００５８】
通信制御部７１は、ICカード１３から送信されてくる各種のコマンドを、アンテナ３６、復調部３７、および、SPU３３を介して受信し、LENフィールドに設定された値に基づいて受信したコマンドのデータ長を確認したり、CRCコードに基づいて、コマンドのデータのエラー検出を行なう。通信制御部７１は、必要に応じて、書込み制御部７２、読出し制御部７３、または、サービス生成要求部７４に受信したコマンドを供給する。また、通信制御部７１は、書込み制御部７２、読出し制御部７３、または、サービス生成要求部７４から供給される各種のコマンドに、コマンドの送信に必要な情報を付加し、情報を付加したコマンドを、SPU３３、変調部３４、および、アンテナ３６を介してICカード１３に送信する。
【００５９】
書込み制御部７２は、図１６を参照して後述するように、ICカード１３へのデータの書込みを要求する書込みコマンドを生成し、生成した書込みコマンドを通信制御部７１に供給する。書込み制御部７２は、書込みコマンドに対するICカード１３からの応答である書込み終了通知コマンドを、通信制御部７１から取得する。
【００６０】
読出し制御部７３は、図１３を参照して後述するように、ICカード１３からのデータの読出しを要求する読出しコマンドを生成し、生成した読出しコマンドを通信制御部７１に供給する。読出し制御部７３は、読出しコマンドに対するICカード１３からの応答である読出し応答コマンドを、通信制御部７１から取得する。読出し制御部７３は、読出し応答コマンドに格納されている、ICカード１３から読出したデータを、必要に応じて、リーダライタ１１の各部に供給したり、記録部３２に記録させたりする。
【００６１】
サービス生成要求部７４は、ICカード１３への各種のサービスの生成を要求するサービス生成要求コマンドを生成し、生成したサービス生成要求コマンドを通信制御部７１に供給する。例えば、サービス生成要求部７４は、図９乃至図１３を参照して後述するライトワンスサービスや、図１４乃至図１７を参照して後述するリードワンスサービスをICカード１３に生成させる。サービス生成要求部７４は、サービス生成要求コマンドに対するICカード１３からの応答であるサービス生成通知コマンドを、通信制御部７１から取得する。
【００６２】
暗号化部７５は、各種データの暗号化を行なう。例えば、暗号化部７５は、通信制御部７１、書込み制御部７２、読出し制御部７３、または、サービス生成要求部７４から供給されたデータを暗号化し、暗号化したデータをデータの供給元に返す。
【００６３】
復号部７６は、各種データの復号を行なう。例えば、復号部７６は、通信制御部７１、書込み制御部７２、読出し制御部７３、または、サービス生成要求部７４から供給されたデータを復号し、復号したデータをデータの供給元に返す。
【００６４】
図５は、リーダライタ１２の機能の構成例を示すブロック図である。リーダライタ１２は、制御部１３１、記録部１３２、SPU１３３、変調部１３４、発振回路１３５、アンテナ１３６、復調部１３７、およびドライブ１３８を含むように構成される。なお、図中、図３と対応する部分については下２桁が同じ符号を付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。
【００６５】
制御部１３１は、必要に応じて装着される、ドライブ１３８から供給されるプログラムを読み込み、読み込んだプログラムを実行し、リーダライタ１２全体を制御する。また、制御部１３１は、ドライブ１３８からプログラムやデータが供給された場合、供給されたプログラムやデータを必要に応じて記録部１３２に記録させる。そして、制御部１３１は、記録部１３２に記録されたプログラムを読み込み、読み込んだプログラムを実行し、リーダライタ１２全体を制御する。
【００６６】
制御部１３１は、ICカード１３に所定の処理を実行させるコマンドを生成し、生成したコマンドをSPU１３３に供給する。また、制御部１３１は、ICカード１３から送信され、SPU１３３から供給されるコマンドに対応した処理を実行する。また、制御部１３１は、図示せぬ操作部などを用いてユーザにより入力された指令に対応した処理を実行する。
【００６７】
図６は、所定のプログラムを実行する制御部１３１により実現される機能の構成例を示すブロック図である。制御部１３１がプログラムを実行することにより、通信制御部１７１、書込み制御部１７２、読出し制御部１７３、暗号化部１７４、および、復号部１７５が実現される。
【００６８】
通信制御部１７１は、SPU１３３、変調部１３４、および、アンテナ１３６を介して、ポーリングコマンドを送信し、ポーリングコマンドに対するポーリング応答コマンドがICカード１３から送信されてきた場合、アンテナ１３６、復調部１３７、および、SPU１３３を介してポーリング応答コマンドを受信する。通信制御部１７１は、ICカード１３からポーリング応答コマンドを受信した場合、SPU１３３、変調部１３４または復調部１３７、および、アンテナ１３６を介して、ICカード１３と相互認証などのセッション確立処理を行ない、リーダライタ１２とICカード１３との間の通信セッションを確立する。
【００６９】
通信制御部１７１は、ICカード１３から送信されてくる各種のコマンドを、アンテナ１３６、復調部１３７、および、SPU１３３を介して受信し、LENフィールドに設定された値に基づいて受信したコマンドのデータ長を確認したり、CRCコードに基づいて、コマンドのデータのエラー検出を行なう。通信制御部１７１は、必要に応じて、書込み制御部１７２、または、読出し制御部１７３に受信したコマンドを供給する。また、通信制御部１７１は、書込み制御部１７２、または、読出し制御部１７３から供給される各種のコマンドに、コマンドの送信に必要な情報を付加し、情報を付加したコマンドを、SPU１３３、変調部１３４、および、アンテナ１３６を介してICカード１３に送信する。
【００７０】
書込み制御部１７２は、図１１を参照して後述するように、ICカード１３へのデータの書込みを要求する書込みコマンドを生成し、生成した書込みコマンドを通信制御部１７１に供給する。書込み制御部１７２は、書込みコマンドに対するICカード１３からの応答である書込み終了通知コマンドを、通信制御部１７１から取得する。
【００７１】
また、書込み制御部１７２は、図１２を参照して後述するように、ICカード１３に書込んだデータの内容の確認を要求するデータ確認コマンドを生成し、生成したデータ確認コマンドを通信制御部１７１に供給する。書込み制御部１７２は、データ確認コマンドに対するICカード１３からの応答であるデータ確認応答コマンドを、通信制御部１７１から取得する。
【００７２】
読出し制御部１７３は、図１２を参照して後述するように、ICカード１３からのデータの読出しを要求する読出しコマンドを生成し、生成した読出しコマンドを通信制御部１７１に供給する。読出し制御部１７３は、読出しコマンドに対するICカード１３からの応答である読出し応答コマンドを、通信制御部１７１から取得する。読出し制御部１７３は、読出し応答コマンドに格納されている、ICカード１３から読出したデータを、必要に応じて、リーダライタ１２の各部に供給したり、記録部１３２に記録させたりする。
【００７３】
暗号化部１７４は、各種データの暗号化を行なう。例えば、暗号化部１７４は、通信制御部１７１、書込み制御部１７２、または、読出し制御部１７３供給されたデータを暗号化し、暗号化したデータをデータの供給元に返す。
【００７４】
復号部１７５は、各種データの復号を行なう。例えば、復号部１７５は、通信制御部１７１、書込み制御部１７２、または、読出し制御部１７３から供給されたデータを復号し、復号したデータをデータの供給元に返す。
【００７５】
図７は、ICカード１３の機能の構成例を示すブロック図である。ICカード１３は、アンテナ２０１、復調部２０２、ＳＰＵ２０３、制御部２０４、ROM（Read Only Memory）２０５、RAM（Random Access Memory）２０６、記憶部２０７、発振回路２０８、変調部２０９、および電力発生部２１０を含むように構成される。
【００７６】
アンテナ２０１は、リーダライタ１１または１２から送信されてきたコマンドを受信し、受信したコマンドを復調部２０２に供給する。また、アンテナ２０１は、変調部２０９から供給されたデータ（例えば、コマンド）を、無線通信により、リーダライタ１１または１２あてに送信する。すなわち、例えば、アンテナ２０１は、変調部２０９から供給されたデータを伝送するための電波を放射する。また、アンテナ２０１においては、リーダライタ１１または１２から放射される所定の周波数の電波により、共振が生じ、起電力が発生する。
【００７７】
復調部２０２は、アンテナ２０１から供給されたコマンドを、リーダライタ１１の変調部３４またはリーダライタ１２の変調部１３４の変調方式に対応する復調方式により復調し、復調したコマンドをＳＰＵ２０３に供給する。例えば、復調部２０２は、アンテナ２０１を介して受信したASK変調波であるコマンドを包絡線検波して復調し、復調したコマンドをＳＰＵ２０３に出力する。
【００７８】
ＳＰＵ２０３は、復調部２０２から供給されたコマンドを所定の方式により復号し、復号したコマンドを制御部２０４に供給する。ＳＰＵ２０３は、制御部２０４から供給されたデータを、所定の符号化方式により符号化し、符号化したデータを変調部２０９に供給する。例えば、ＳＰＵ２０３は、復調部２０２において復調されたコマンドがマンチェスタ方式で符号化されている場合、図示せぬPLL（Phase Locked Loop）回路から供給されるクロック信号に基づいて、そのコマンドの復号（マンチェスタコードのデコード）を行い、復号したコマンドを制御部２０４に供給する。例えば、ＳＰＵ２０３は、制御部２０４から供給されたデータを、マンチェスタ方式で符号化し、符号化したデータを変調部２０９に供給する。
【００７９】
制御部２０４は、必要に応じて、ROM２０５または記憶部２０７に記憶または記録されているプログラムを読み込み、読み込んだプログラムを実行し、ICカード１３全体を制御する。また、制御部２０４は、ＳＰＵ２０３から供給された各種のコマンドに対応する処理を実行する。さらに、制御部２０４は、リーダライタ１１または１２から送信されてきたコマンドに応答するコマンドを生成し、SPU２０３に供給する。
【００８０】
ROM２０５は、制御部２０４が各種の処理を行うためのプログラム、その他のデータなどを記録している。
【００８１】
RAM２０６は、制御部２０４が各種の処理を行うとき、その処理の途中のデータなどを一時的に記憶する。
【００８２】
記憶部２０７は、例えば、フラッシュメモリ、EEPROM（Electrically Erasable Programmable Read Only Memory）、MRAM（Magnetoresistive Random Access Memory（磁気抵抗メモリ））、またはFeRAM（強誘電体メモリ）などの不揮発性メモリなどにより構成され、リーダライタ１１または１２により書込みが指示されたデータや、制御部２０４が各種の処理を行うためのプログラム、その他のデータなどを記憶する。
【００８３】
発振回路２０８は、アンテナ２０１が受信するコマンドの周波数と同じ周波数のクロック信号を生成し、生成したクロック信号を変調部２０９に供給する。例えば、発振回路２０８は、PLL回路を内蔵し、コマンドのクロック周波数と同一の周波数のクロック信号を発生する。
【００８４】
変調部２０９は、発振回路２０８から供給された所定の周波数のクロック信号を基に、搬送波を生成する。変調部２０９は、搬送波に基づいて、ＳＰＵ２０３から供給されたデータを、所定の方式によって変調することにより、変調したデータを生成し、変調したデータをアンテナ２０１に供給する。例えば、変調部２０９は、ＳＰＵ２０３から供給された、マンチェスタ方式により符号化されたデータを、さらにASK変調し、変調したデータを、アンテナ２０１を介して、リーダライタ１１または１２に送信する。
【００８５】
また、例えば、変調部２０９は、ＳＰＵ２０３から供給されるデータに対して、所定のスイッチング素子（図示せず）をオン、オフさせ、スイッチング素子がオン状態であるときだけ、所定の負荷をアンテナ２０１に並列に接続させることにより、アンテナ２０１の負荷を変動させる。ASK変調されたデータは、アンテナ２０１の負荷の変動により、アンテナ２０１を介して、リーダライタ１１または１２に送信される（リーダライタ１１のアンテナ３６またはリーダライタ１２のアンテナ１３６の端子電圧を変動させる）。
【００８６】
電力発生部２１０は、アンテナ２０１に生じた交流の起電力を基に、直流電力を発生させ、発生させた直流電力をICカード１３の各部に供給する。
【００８７】
図８は、所定のプログラムを実行する制御部２０４により実現される機能の構成例を示すブロック図である。制御部２０４がプログラムを実行することにより、通信制御部２３１、書込み制御部２３２、読出し制御部２３３、サービス生成部２３４、暗号化部２３５、および、復号部２３６が実現される。
【００８８】
通信制御部２３１は、アンテナ２０１、復調部２０２、およびSPU２０３を介して、リーダライタ１１または１２からポーリングコマンドを受信し、ポーリング応答コマンドを、SPU２０３、変調部２０９、およびアンテナ２０１を介してリーダライタ１１または１２に送信する。通信制御部２３１は、SPU２０３、変調部２０９または復調部２０２、および、アンテナ２０１を介して、リーダライタ１１または１２と相互認証などのセッション確立処理を行ない、リーダライタ１１または１２とICカード１３との間の通信セッションを確立する。
【００８９】
通信制御部２３１は、リーダライタ１１または１２から送信されてくる各種のコマンドを、アンテナ２０１、復調部２０２、およびSPU２０３を介して受信し、LENフィールドに設定された値に基づいて受信したコマンドのデータ長を確認したり、CRCコードに基づいて、コマンドのデータのエラー検出を行なう。通信制御部２３１は、必要に応じて、書込み制御部２３２、読出し制御部２３３、または、サービス生成部２３４に受信したコマンドを供給する。また、通信制御部２３１は、書込み制御部２３２、読出し制御部２３３、または、サービス生成部２３４から供給される各種のコマンドに、コマンドの送信に必要な情報を付加し、情報を付加したコマンドを、SPU２０３、変調部２０９、および、アンテナ２０１を介してリーダライタ１１または１２に送信する。
【００９０】
書込み制御部２３２は、図１１または図１６を参照して後述するように、リーダライタ１１または１２から送信された書込みコマンドを通信制御部２３１から取得し、書込みコマンドに格納されているデータを記憶部２０７に書込む。また、書込み制御部２３２は、書込みコマンドに対する応答である書込み終了通知コマンドを生成し、生成した書込み終了通知コマンドを通信制御部２３１に供給する。
【００９１】
読出し制御部２３３は、図１３または図１７を参照して後述するように、リーダライタ１１または１２から送信された読出しコマンドを通信制御部２３１から取得する。読出し制御部２３３は、読出しコマンドに基づいて、記憶部２０７からデータを読出し、読出したデータを格納した読出し応答コマンドを生成し、生成した読出し応答コマンドを通信制御部２３１に供給する。
【００９２】
また、読出し制御部２３３は、図１２を参照して後述するように、リーダライタ１１または１２から送信されたデータ確認コマンドを通信制御部２３１から取得する。読出し制御部２３３は、データ確認コマンドに基づいて、確認が要求されたデータとともに記憶されているデータのシグネチャーを記憶部２０７から読出し、読出したシグネチャーを格納したデータ確認応答コマンドを生成する。読出し制御部２３３は、生成したデータ確認応答コマンドを通信制御部２３１に供給する。
【００９３】
サービス生成部２３４は、リーダライタ１１または１２から送信されたサービス生成要求コマンドを通信制御部２３１から取得し、サービス生成要求コマンドに基づいて、記憶部２０７に各種のサービスを生成する。例えば、サービス生成部２３４は、図９を参照して後述するように、ライトワンスサービスを生成したり、図１４を参照して後述するように、リードワンスサービスを生成したりする。サービス生成部２３４は、サービス生成要求通知に対する応答であるサービス生成通知コマンドを生成し、生成したサービス生成通知コマンドを通信制御部２３１に供給する。
【００９４】
暗号化部２３５は、各種データの暗号化を行なう。例えば、暗号化部２３５は、通信制御部２３１、書込み制御部２３２、または読出し制御部２３３から供給されたデータを暗号化し、暗号化したデータをデータの供給元に返す。
【００９５】
復号部２３６は、各種データの復号を行なう。例えば、復号部２３６は、通信制御部２３１、書込み制御部２３２、または読出し制御部２３３から供給されたデータを復号し、復号したデータをデータの供給元に返す。
【００９６】
次に、図９乃至図１３を参照して、ライトワンスサービスを利用したICカードシステム１の処理を説明する。
【００９７】
まず、図９のフローチャートを参照して、ICカードシステム１におけるライトワンスサービス生成処理を説明する。
【００９８】
最初に、ライトワンスサービス生成処理において、リーダライタ１１により実行されるライトワンスサービス生成要求処理を説明する。
【００９９】
ステップＳ１において、リーダライタ１１の通信制御部７１は、ポーリングコマンドを送信する。具体的には、通信制御部７１は、所定の間隔ごとに、ポーリングすることを示すコマンドコードをCMDフィールドに設定したポーリングコマンドを生成し、生成したポーリングコマンドを、SPU３３、変調部３４、およびアンテナ３６を介して送信する。
【０１００】
ICカード１３が、リーダライタ１１に近接され、リーダライタ１１から送信されたポーリングコマンドを受信した場合、ICカード１３は、後述するステップＳ１１において、ポーリングコマンドに対する応答であるポーリング応答コマンドを送信する。
【０１０１】
通信制御部７１は、ICカード１３から送信されたポーリング応答コマンドを、アンテナ３６、復調部３７およびSPU３３を介して受信し、ICカード１３との間で、相互認証などのセッション確立処理を行ない、リーダライタ１１とICカード１３との間で通信セッションが確立された後、処理はステップＳ２に進む。
【０１０２】
ステップＳ２において、サービス生成要求部７４は、ICカード１３に、ライトワンスサービスの生成を要求する。具体的には、サービス生成要求部７４は、ライトワンスサービスの生成を要求するコマンドコードをCMDフィールドに設定し、ライトワンスサービス内に確保する領域（以下、サービス領域と称する）の数、サービス領域の番号（以下、サービス領域番号と称する）、サービス領域のサイズ、サービス領域からのデータの読出しを許可する読出し鍵など、ライトワンスサービスを生成するために必要なデータをデータフィールドに格納したサービス生成要求コマンドを生成する。サービス生成要求部７４は、生成したサービス生成要求コマンドを、通信制御部７１、SPU３３、変調部３４、およびアンテナ３６を介してICカード１３に送信する。
【０１０３】
ICカード１３は、後述するステップＳ１２において、サービス生成要求コマンドを受信し、ライトワンスサービスを生成した後、ステップＳ１３において、サービス生成要求コマンドに対する応答であるサービス生成通知コマンドを送信する。
【０１０４】
ステップＳ３において、サービス生成要求部７４は、ICカード１３より送信されたサービス生成通知コマンドを、アンテナ３６、復調部３７、ＳＰＵ３３、および、通信制御部７１を介して受信し、ライトワンスサービス生成要求処理は終了する。
【０１０５】
次に、リーダライタ１１によるライトワンスサービス生成要求処理に対応して、ICカード１３により実行されるライトワンスサービス生成処理を説明する。
【０１０６】
ステップＳ１１において、ICカード１３の通信制御部２３１は、ポーリングコマンドに応答する。具体的には、通信制御部２３１は、上述したステップＳ１において、リーダライタ１１より送信されたポーリングコマンドを、アンテナ２０１、復調部２０２、およびSPU２０３を介して受信する。通信制御部２３１は、ポーリングに応答することを示すコマンドコードをCMDフィールドに設定し、データフィールドにICカード１３のカードIDなどをデータフィールドに格納したポーリング応答コマンドを生成し、生成したポーリング応答コマンドを、SPU２０３、変調部２０９、およびアンテナ２０１を介してリーダライタ１１に送信する。
【０１０７】
その後、通信制御部２３１は、リーダライタ１１との間で、相互認証などのセッション確立処理を行ない、リーダライタ１１とICカード１３との間で通信セッションが確立された後、処理はステップＳ１２に進む。
【０１０８】
ステップＳ１２において、サービス生成部２３４は、ライトワンスサービスを生成する。具体的には、サービス生成部２３４は、上述したステップＳ２において、リーダライタ１１より送信されたサービス生成要求コマンドを、アンテナ２０１、復調部２０２、SPU２０３、および通信制御部２３１を介して受信する。サービス生成部２３４は、サービス生成要求コマンドにより指示されたサイズのサービス領域を、サービス生成要求コマンドにより指示された数だけ記憶部２０７に確保し、サービス生成要求コマンドにより指示されるサービス領域番号を各サービス領域に設定する（サービス領域の所定の位置に記憶させる）。
【０１０９】
サービス生成部２３４は、サービス生成要求コマンドのデータフィールドに格納されている、サービス領域からのデータの読出しを許可する読出し鍵を登録する（サービス領域の所定の位置に記憶させる）。また、サービス生成部２３４は、サービス領域へのデータの書込みの可否を示す書込みフラグを記憶する領域をサービス領域の所定の位置に確保し、書込みフラグの値を、データの書込みを許可するオフに設定する。
【０１１０】
これにより、ライトワンスサービスの各サービス領域の状態は、図１０に示される状態３０１となる。すなわち、書込みフラグがオフされ、サービス領域へのデータの書込みが可能とされ、かつ、サービス領域にデータが書込まれていない状態となる。
【０１１１】
なお、サービス領域ごとにそれぞれ異なる読出し鍵を登録するようにしてもよいし、同じ読出し鍵を登録するようにしてもよい。サービス領域ごとに異なる読出し鍵を登録する場合、サービス生成要求コマンドのデータフィールドに全ての読出し鍵を格納するようにしてもよいし、１つ以上の読出し鍵から計算などにより複数の読出し鍵を生成するようにしてもよい。また、予め別の処理によりライトワンスサービスのサービス領域を記憶部２０７に登録（確保）しておいて、登録されているサービス領域にリーダライタ１１により読出し鍵を登録するようにしてもよい。
【０１１２】
ステップＳ１３において、サービス生成部２３４は、サービス生成通知コマンドをリーダライタ１１に送信して、ライトワンスサービス生成処理は終了する。具体的には、サービス生成部２３４は、サービスの生成の終了を通知するコマンドコードをCMDフィールドに設定し、ライトワンスサービスの生成結果（例えば、サービスの生成が成功したか失敗したかなど）を示すデータをデータフィールドに格納したサービス生成通知コマンドを生成する。サービス生成部２３４は、生成したサービス生成通知コマンドを、通信制御部２３１、SPU２０３、変調部２０９、およびアンテナ２０１を介して、リーダライタ１１に送信する。
【０１１３】
その後、例えば、リーダライタ１１を用いてライトワンスサービスをICカード１３に生成したユーザは、ライトワンスサービスのサービス領域へのデータの書込みを依頼する相手（リーダライタ１２の所有者）に、ICカード１３を送付するとともに、データの書込みを依頼するサービス領域のサービス領域番号を通知する。なお、このサービス領域番号は、後述するように、第三者に知られても安全であり、各種のセキュリティ対策を施して秘密裏に送信する必要がないため、管理が容易である。
【０１１４】
次に、図１１のフローチャートを参照して、リーダライタ１２およびICカード１３との間で行なわれるライトワンスサービスへのデータ書込み処理を説明する。
【０１１５】
最初に、リーダライタ１２により実行されるデータ書込み要求処理を説明する。
【０１１６】
ステップＳ４１において、リーダライタ１２の通信制御部１７１は、ポーリングコマンドを送信する。具体的には、通信制御部１７１は、所定の間隔ごとに、ポーリングすることを示すコマンドコードをCMDフィールドに設定したポーリングコマンドを生成し、生成したポーリングコマンドを、SPU１３３、変調部１３４、およびアンテナ１３６を介して送信する。
【０１１７】
ICカード１３が、リーダライタ１２に近接され、リーダライタ１２から送信されたポーリングコマンドを受信した場合、ICカード１３は、後述するステップＳ５１において、ポーリングコマンドに対する応答であるポーリング応答コマンドを送信する。
【０１１８】
通信制御部１７１は、ICカード１３から送信されたポーリング応答コマンドを、アンテナ１３６、復調部１３７およびSPU１３３を介して受信し、ICカード１３との間で、相互認証などのセッション確立処理を行ない、リーダライタ１２とICカード１３との間で通信セッションが確立された後、処理はステップＳ４２に進む。
【０１１９】
ステップＳ４２において、書込み制御部１７２は、ICカード１３にデータの書込みを要求する。具体的には、書込み制御部１７２は、データの書込みを要求するコマンドコードをCMDフィールドに設定し、データを書込むライトワンスサービスのサービス領域のサービス領域番号、および、サービス領域に書込むデータをデータフィールドに格納し、サービス領域に書込むデータのデジタル署名であるシグネチャーをシグネチャーフィールドに格納した書込みコマンドを生成する。書込み制御部１７２は、生成した書込みコマンドを、通信制御部１７１、SPU１３３、変調部１３４、およびアンテナ１３６を介してICカード１３に送信する。
【０１２０】
なお、以下、ICカード１３の記憶部２０７のサービス領域に書込むデータを特に他のデータと区別する場合、記録データとも称する。
【０１２１】
ICカード１３は、後述するステップＳ５２において、リーダライタ１２から送信された書込みコマンドを受信し、書込みコマンドに基づいて、書込みが指示されたサービス領域にデータを書込み、ステップＳ５６において、データの書込みが終了したことを通知する書込み終了通知コマンドを送信する。
【０１２２】
ステップＳ４３において、書込み制御部１７２は、ICカード１３から送信された書込み終了通知コマンドを、アンテナ１３６、復調部１３７、SPU１３３、および通信制御部１７１を介して受信し、データ書込み要求処理は終了する。
【０１２３】
次に、リーダライタ１２によるデータ書込み要求処理に対応して、ICカード１３により実行されるデータ書込み処理を説明する。
【０１２４】
ステップＳ５１において、上述した図９のステップＳ１１の処理と同様に、ICカード１３の通信制御部２３１は、上述したステップＳ４１において、リーダライタ１２から送信されたポーリングコマンドに応答する。
【０１２５】
その後、リーダライタ１２とICカード１３の間でセッション確立処理が実行され、リーダライタ１２およびICカード１３の間の通信セッションが確立された後、処理はステップＳ５２に進む。
【０１２６】
ステップＳ５２において、書込み制御部２３２は、上述したステップＳ４２において、リーダライタ１２より送信された書込みコマンドを、アンテナ２０１、復調部２０２、SPU２０３、および通信制御部２３１を介して受信する。
【０１２７】
ステップＳ５３において、書込み制御部２３２は、書込みコマンドによりデータを書込むように指示されたライトワンスサービスのサービス領域の書込みフラグがオフであるか否かを判定する。書込みフラグがオフであると判定された場合、すなわち、書込みコマンドによりデータの書込みが指示されたサービス領域の状態が図１０の状態３０１または３０３である場合、処理はステップＳ５４に進む。
【０１２８】
ステップＳ５４において、書込み制御部２３２は、記憶部２０７にデータを書込む。具体的には、書込み制御部２３２は、書込みコマンドのデータフィールドに格納されている記録データ、および、シグネチャーフィールドに格納されている記録データのシグネチャーを、書込みコマンドにより指示されたサービス領域に書込む。
【０１２９】
ステップＳ５５において、書込み制御部２３２は、データを書込んだサービス領域の書込みフラグをオンにする。これにより、データが書込まれたサービス領域の状態は、上述した図１０の状態３０１または後述する状態３０３から状態３０２に遷移する。すなわち、書込みフラグがオンされ、サービス領域へのデータの書込みが禁止され、かつ、サービス領域にデータが書込まれている状態となる。
【０１３０】
図１３を参照して後述するように、リーダライタ１１により、記録データが読出されるまで、データが書込まれたサービス領域の書込みフラグはオンとされ、サービス領域へのデータの書込みが禁止されるため、記録データの改ざんや消去が防止される。
【０１３１】
ステップＳ５３において、書込みフラグがオンであると判定された場合、すなわち、書込みコマンドによりデータの書込みが指示されたサービス領域の状態が図１０の状態３０２である場合、さらに換言すれば、書込みコマンドにより指示されたサービス領域の記録データがまだ読出されていない場合、ステップＳ５４およびＳ５５の処理はスキップされ、サービス領域にデータが書込まれずに、処理はステップＳ５６に進む。すなわち、サービス領域に記憶されている記録データが最初に読出されるまで、そのサービス領域への新たなデータの書込みが禁止される。
【０１３２】
ステップＳ５６において、書込み制御部２３２は、書込み終了通知コマンドを送信し、データ書込み処理は終了する。具体的には、書込み制御部２３２は、データの書込みが終了したことを通知するコマンドコードをCMDフィールドに設定し、書込みコマンドに基づいてサービス領域にデータを書込んだ場合、書込みコマンドのシグネチャーフィールドに格納されていた記録データのシグネチャーをデータフィールドに格納し、サービス領域へのデータの書込みが失敗した場合、データの書込みが失敗したことを示すデータをデータフィールドに格納した書込み終了通知コマンドを生成する。書込み制御部２３２は、生成した書込み終了通知コマンドを、通信制御部２３１、SPU２０３、変調部２０９、およびアンテナ２０１を介してリーダライタ１２に送信する。
【０１３３】
次に、図１２のフローチャートを参照して、リーダライタ１２およびICカード１３との間で行なわれる、ライトワンスサービスのサービス領域に書込んだデータの確認処理を説明する。
【０１３４】
最初に、リーダライタ１２により実行されるデータ確認要求処理を説明する。
【０１３５】
ステップＳ７１において、上述した図１１のステップＳ４１と同様の処理により、リーダライタ１２の通信制御部１７１は、ポーリングコマンドを送信する。送信したポーリングコマンドに対するポーリング応答コマンドがICカード１３から送信されてきた場合、リーダライタ１２とICカード１３の間でセッション確立処理が実行され、リーダライタ１２およびICカード１３の間の通信セッションが確立された後、処理はステップＳ７２に進む。
【０１３６】
ステップＳ７２において、書込み制御部１７２は、ライトワンスサービスのサービス領域に書込まれているデータの確認を要求する。具体的には、書込み制御部１７２は、データの確認を要求するコマンドコードをCMDフィールドに設定し、書込まれているデータの確認をするライトワンスサービスのサービス領域のサービス領域番号をデータフィールドに格納したデータ確認コマンドを生成する。書込み制御部１７２は、生成したデータ確認コマンドを、通信制御部１７１、SPU１３３、変調部１３４、およびアンテナ１３６を介してICカード１３に送信する。このとき、データ確認コマンドのデータフィールドに読出し鍵を格納する（読出し鍵を送信する）必要はない。
【０１３７】
ICカード１３は、後述するステップＳ８２において、リーダライタ１２から送信されたデータ確認コマンドを受信し、データの確認が指示されたサービス領域の書込みフラグがオンである場合、すなわち、指示されたサービス領域から記録データがまだ読出されていない場合、ステップＳ８４において、データ確認コマンドに対する応答であるデータ確認応答コマンドを送信する。なお、データ確認応答コマンドのデータフィールドには、データの確認が指示されたサービス領域に記録データとともに書込まれている記録データのシグネチャーが格納される。
【０１３８】
ステップＳ７３において、書込み制御部１７２は、ICカード１３から送信されたデータ確認応答コマンドを、アンテナ１３６、復調部１３７、SPU１３３、および通信制御部１７１を介して受信し、データ確認要求処理は終了する。
【０１３９】
次に、リーダライタ１２によるデータ確認要求処理に対応して、ICカード１３により実行されるデータ確認応答処理を説明する。
【０１４０】
ステップＳ８１において、上述した図９のステップＳ１１の処理と同様に、ICカード１３の通信制御部２３１は、上述したステップＳ７１において、リーダライタ１２から送信されたポーリングコマンドに応答する。
【０１４１】
その後、リーダライタ１２とICカード１３の間でセッション確立処理が実行され、リーダライタ１２およびICカード１３の間の通信セッションが確立された後、処理はステップＳ８２に進む。
【０１４２】
ステップＳ８２において、読出し制御部２３３は、上述したステップＳ７２において、リーダライタ１２より送信されたデータ確認コマンドを、アンテナ２０１、復調部２０２、SPU２０３、および、通信制御部２３１を介して受信する。
【０１４３】
ステップＳ８３において、読出し制御部２３３は、データ確認コマンドによりデータの確認が指示されたライトワンスサービスのサービス領域の書込みフラグがオンであるか否かを判定する。書込みフラグがオンであると判定された場合、すなわち、サービス領域にデータが書込まれており、書込まれているデータ（記録データ）がまだ読出されていない場合、処理はステップＳ８４に進む。
【０１４４】
ステップＳ８４において、読出し制御部２３３は、データ確認応答コマンドを送信し、データ確認応答処理は終了する。具体的には、読出し制御部２３３は、データ確認コマンドに応答することを示すコマンドコードをCMDフィールドに設定し、データの確認が指示されたサービス領域に書込まれている記録データのシグネチャーをデータフィールドに格納したデータ確認応答コマンドを生成する。読出し制御部２３３は、生成したデータ確認応答コマンドを、通信制御部２３１、SPU２０３、変調部２０９、およびアンテナ２０１を介してリーダライタ１２に送信する。
【０１４５】
ステップＳ８３において、書込みフラグがオフであると判定された場合、すなわち、サービス領域にデータが書込まれていないか、または、書込まれているデータ（記録データ）がすでに読出されている場合、ステップＳ８４の処理はスキップされ、データ確認応答コマンドは送信されずに、データ確認応答処理は終了する。
【０１４６】
データ確認応答コマンドを受信したリーダライタ１２は、ICカード１３に書込みを要求した記録データのシグネチャーを再計算し、データ確認応答コマンドのデータフィールドに格納されている記録データのシグネチャーと比較することにより、データの確認を指示したサービス領域に書込まれている記録データの内容を確認することができる。再計算したシグネチャーと、データ確認応答コマンドに格納されているシグネチャーが一致する場合、記録データの書込みが成功し、かつ、その記録データがまだ読出されていないことが分かり、再計算したシグネチャーと、データ確認応答コマンドに格納されているシグネチャーが一致しない場合、記録データの書込みが失敗したか、すでに、別の記録データが書込まれていることが分かる。また、データ確認コマンドに対するデータ確認応答コマンドが返ってこない場合、指示したサービス領域から記録データがすでに読出されているか、または、記録データの書込みに失敗したことが分かる。
【０１４７】
さらに、読出し鍵を送信しなくてもサービス領域に書込まれている記録データの確認ができるとともに、第三者がサービス領域に書込まれている記録データの確認をしようとしても、不可逆な記録データのシグネチャーしか返されず、記録データを復元することができないため、第三者に記録データの内容を盗聴されることが防止される。
【０１４８】
その後、例えば、データの書込みを依頼したユーザ（リーダライタ１１の所有者）は、リーダライタ１２を用いてICカード１３にデータを書込んだユーザからICカード１３を取得する。
【０１４９】
次に、図１３のフローチャートを参照して、リーダライタ１１およびICカード１３との間で行なわれる、ライトワンスサービスからのデータ読出し処理を説明する。
【０１５０】
最初に、リーダライタ１１により実行されるデータ読出し要求処理を説明する。
【０１５１】
ステップＳ１０１において、上述した図９のステップＳ１と同様の処理により、リーダライタ１１の通信制御部７１は、ポーリングコマンドを送信する。送信したポーリングコマンドに対するポーリング応答コマンドがICカード１３から送信されてきた場合、リーダライタ１１とICカード１３の間でセッション確立処理が実行され、リーダライタ１１およびICカード１３の間の通信セッションが確立された後、処理はステップＳ１０２に進む。
【０１５２】
ステップＳ１０２において、読出し制御部７３は、ICカード１３にデータの読出しを要求する。具体的には、読出し制御部７３は、データの読出しを要求するコマンドコードをCMDフィールドに設定し、データを読出すライトワンスサービスのサービス領域のサービス領域番号、および、データの読出しの許可を得るための認証用の読出し鍵をデータフィールドに格納した読出しコマンドを生成する。読出し制御部７３は、生成した読出しコマンドを、通信制御部７１、SPU３３、変調部３４、およびアンテナ３６を介してICカード１３に送信する。
【０１５３】
ICカード１３は、後述するステップＳ１１２において、リーダライタ１１から送信された読出しコマンドを受信し、データの読出しが指示されたサービス領域の読出し鍵と、読出しコマンドのデータフィールドに格納された読出し鍵が一致した場合、ステップＳ１１５において、読出しが指示されたサービス領域から読出したデータ（記録データ）を格納した読出し応答コマンドを送信する。
【０１５４】
ステップＳ１０３において、読出し制御部７３は、ICカード１３から送信された読出し応答コマンドを、アンテナ３６、復調部３７、SPU３３、および通信制御部７１を介して受信し、データ読出し要求処理は終了する。
【０１５５】
次に、リーダライタ１１によるデータ読出し要求処理に対応して、ICカード１３により実行されるデータ読出し処理を説明する。
【０１５６】
ステップＳ１１１において、上述した図９のステップＳ１１の処理と同様に、ICカード１３の通信制御部２３１は、上述したステップＳ１０１において、リーダライタ１１から送信されたポーリングコマンドに応答する。
【０１５７】
その後、リーダライタ１１とICカード１３の間でセッション確立処理が実行され、リーダライタ１１およびICカード１３の間の通信セッションが確立された後、処理はステップＳ１１２に進む。
【０１５８】
ステップＳ１１２において、読出し制御部２３３は、上述したステップＳ１０２において、リーダライタ１１より送信された読出しコマンドを、アンテナ２０１、復調部２０２、SPU２０３、および通信制御部２３１を介して受信する。
【０１５９】
ステップＳ１１３において、読出し制御部２３３は、読出しコマンドによりデータの読出しが指示されたサービス領域の読出し鍵と、読出しコマンドのデータフィールドに格納された読出し鍵が一致するか否かを判定する。読出し鍵が一致したと判定された場合、処理はステップＳ１１４に進む。
【０１６０】
ステップＳ１１４において、読出し制御部２３３は、読出しコマンドによりデータの読出しが指示されたサービス領域の読出しフラグをオフにする。これにより、サービス領域の状態は、現在図１０の状態３０２である場合、状態３０３に遷移し、現在状態３０３である場合、状態３０３のままとなる。すなわち、書込みフラグがオフされ、サービス領域へのデータの書込みが可能となり、かつ、サービス領域にデータが書込まれている状態となる。
【０１６１】
ステップＳ１１５において、読出し制御部２３３は、読出し応答コマンドを送信し、データ読出し処理は終了する。具体的には、読出し制御部２３３は、読出しコマンドに応答することを示すコマンドコードをCMDフィールドに設定し、読出しコマンドにより指示されたサービス領域から読出した記録データをデータフィールドに格納した読出し応答コマンドを生成する。読出し制御部２３３は、生成した読出し応答コマンドを、通信制御部２３１、SPU２０３、変調部２０９、およびアンテナ２０１を介してリーダライタ１１に送信する。
【０１６２】
ステップＳ１１３において、読出し鍵が一致しないと判定された場合、ステップＳ１１４およびＳ１１５の処理はスキップされ、読出し応答コマンドがリーダライタ１１に送信されずに、データ読出し処理は終了する。従って、読出し鍵が一致しない場合、サービス領域からのデータの読出しは許可されず、上述したように読出し鍵が一致する場合、サービス領域からのデータの読出しが許可される。
【０１６３】
このように、ライトワンスサービスでは、ライトワンスサービスを生成したユーザが所有する読出し鍵を、ライトワンスサービスにデータを書込む人などの他者に渡す必要がないため、読出し鍵が第三者の手に渡る危険性が軽減され、かつ、その読出し鍵を用いなければデータを読出すことができないため、書込まれたデータの盗聴が防止される。また、ライトワンスサービスのサービス領域にデータが書込まれた場合、書込まれたデータが読込まれるまで、そのサービス領域へのデータの書込みが禁止されるため、データの改ざんや消去が防止される。さらに、ライトワンスサービスでは、データを授受する二者間で共通の鍵を持ったり、鍵を交換したりする必要がないため、データを授受する手順が簡単になる。また、ライトワンスサービスでは、データを書込む相手によって読出し鍵やサービス領域を必ずしも使い分ける必要がないため、鍵およびサービスの管理が容易である。
【０１６４】
なお、上述した図１１および図１２のリーダライタ１２の処理をリーダライタ１１により実行させるようにすることも可能である。すなわち、同じリーダライタを用いて、ICカード１３にライトワンスサービスを生成し、ライトワンスサービスへデータを書込んだり、ライトワンスサービスからデータを読出したりすることも可能である。
【０１６５】
また、データ確認コマンドと読出しコマンドを特に区別せずに、読出しコマンドのデータフィールドに読出し鍵が格納されている場合、サービス領域に記憶されている記録データを読み出せるようにし、読出しコマンドのデータフィールドに読出し鍵が格納されていない場合、サービス領域に記憶されている記録データのシグネチャーのみを読み出せるようにしてもよい。
【０１６６】
次に、図１４乃至図１７を参照して、リードワンスサービスを利用したICカードシステム１の処理を説明する。
【０１６７】
まず、図１４のフローチャートを参照して、ICカードシステム１におけるリードワンスサービス生成処理を説明する。
【０１６８】
最初に、リードワンスサービス生成処理において、リーダライタ１１により実行されるリードワンスサービス生成要求処理を説明する。
【０１６９】
ステップＳ２０１において、上述した図９のステップＳ１と同様の処理により、リーダライタ１１の通信制御部７１は、ポーリングコマンドを送信する。送信したポーリングコマンドに対するポーリング応答コマンドがICカード１３から送信されてきた場合、リーダライタ１１とICカード１３の間でセッション確立処理が実行され、リーダライタ１１およびICカード１３の間の通信セッションが確立された後、処理はステップＳ２０２に進む。
【０１７０】
ステップＳ２０２において、サービス生成要求部７４は、ICカード１３に、リードワンスサービスの生成を要求する。具体的には、サービス生成要求部７４は、リードワンスサービスの生成を要求するコマンドコードをCMDフィールドに設定し、リードワンスサービス内に確保するサービス領域の数、サービス領域番号、サービス領域のサイズ、サービス領域にデータを書込むときの認証用の書込み鍵など、リードワンスサービスを生成するために必要なデータをデータフィールドに格納したサービス生成要求コマンドを生成する。サービス生成要求部７４は、生成したサービス生成要求コマンドを、通信制御部７１、SPU３３、変調部３４、およびアンテナ３６を介してICカード１３に送信する。
【０１７１】
ICカード１３は、後述するステップＳ２１２において、サービス生成要求コマンドを受信し、リードワンスサービスを生成した後、ステップＳ２１３において、サービス生成要求コマンドに対する応答であるサービス生成通知コマンドを送信する。
【０１７２】
ステップＳ２０３において、サービス生成要求部７４は、ICカード１３より送信されたサービス生成通知マンドを、アンテナ３６、復調部３７、ＳＰＵ３３、および、通信制御部７１を介して受信し、リードワンスサービス生成要求処理は終了する。
【０１７３】
次に、リーダライタ１１によるリードワンスサービス生成要求処理に対応して、ICカード１３により実行されるリードワンスサービス生成処理を説明する。
【０１７４】
ステップＳ２１１において、上述した図９のステップＳ１１の処理と同様に、ICカード１３の通信制御部２３１は、上述したステップＳ２０１において、リーダライタ１１から送信されたポーリングコマンドに応答する。
【０１７５】
その後、リーダライタ１１とICカード１３の間でセッション確立処理が実行され、リーダライタ１１およびICカード１３の間の通信セッションが確立された後、処理はステップＳ２１２に進む。
【０１７６】
ステップＳ２１２において、サービス生成部２３４は、リードワンスサービスを生成する。具体的には、サービス生成部２３４は、上述したステップＳ２０２において、リーダライタ１１より送信されたサービス生成要求コマンドを、アンテナ２０１、復調部２０２、SPU２０３、および通信制御部２３１を介して受信する。サービス生成部２３４は、サービス生成要求コマンドにより指示されたサイズのサービス領域を、サービス生成要求コマンドにより指示された数だけ記憶部２０７に確保し、サービス生成要求コマンドにより指示されたサービス領域番号を各サービス領域に設定する（サービス領域の所定の位置に記憶させる）。
【０１７７】
サービス生成部２３４は、サービス生成要求コマンドのデータフィールドに格納されている、サービス領域へのデータの書込みを許可する書込み鍵を登録する（サービス領域の所定の位置に記憶させる）。また、サービス生成部２３４は、サービス領域に記憶されているデータの暗号化の可否を示す暗号化フラグを記憶する領域をサービス領域の所定の位置に確保し、暗号化フラグの値を、データの暗号化を許可するオフに設定する。
【０１７８】
これにより、リードワンスサービスの各サービス領域の状態は、図１５に示される状態３１１となる。すなわち、暗号化フラグがオフされ、かつ、サービス領域にデータが書込まれていない状態となる。
【０１７９】
なお、サービス領域ごとにそれぞれ異なる書込み鍵を登録するようにしてもよいし、同じ書込み鍵を登録するようにしてもよい。サービス領域ごとに異なる書込み鍵を登録する場合、サービス生成要求コマンドのデータフィールドに全ての書込み鍵を格納するようにしてもよいし、１つ以上の書込み鍵から計算などにより複数の書込み鍵を生成するようにしてもよい。また、予め別の処理によりリードワンスサービスのサービス領域を記憶部２０７に登録（確保）しておいて、登録されているサービス領域にリーダライタ１１により読出し鍵を登録するようにしてもよい。
【０１８０】
ステップＳ２１３において、サービス生成部２３４は、サービス生成通知コマンドをリーダライタ１１に送信して、リードワンスサービス生成処理は終了する。具体的には、サービス生成部２３４は、サービスの生成の終了を通知するコマンドコードをCMDフィールドに設定し、リードワンスサービスの生成結果（例えば、サービスの生成が成功したか失敗したかなど）を示すデータをデータフィールドに格納したサービス生成通知コマンドを生成する。サービス生成部２３４は、生成したサービス生成通知コマンドを、通信制御部２３１、SPU２０３、変調部２０９、およびアンテナ２０１を介して、リーダライタ１１に送信する。
【０１８１】
次に、図１６のフローチャートを参照して、リーダライタ１１およびICカード１３との間で行なわれるリードワンスサービスへのデータ書込み処理を説明する。
【０１８２】
最初に、リーダライタ１１により実行されるデータ書込み要求処理を説明する。
【０１８３】
ステップＳ２４１において、上述した図９のステップＳ１と同様の処理により、リーダライタ１１の通信制御部７１は、ポーリングコマンドを送信する。送信したポーリングコマンドに対するポーリング応答コマンドがICカード１３から送信されてきた場合、リーダライタ１１とICカード１３の間でセッション確立処理が実行され、リーダライタ１１およびICカード１３の間の通信セッションが確立された後、処理はステップＳ２４２に進む。
【０１８４】
ステップＳ２４２において、書込み制御部７２は、ICカード１３にデータの書込みを要求する。具体的には、書込み制御部７２は、データの書込みを要求するコマンドコードをCMDフィールドに設定し、データを書込むリードワンスサービスのサービス領域のサービス領域番号、サービス領域に書込む記録データ、および、データの書込みの許可を得るための認証用の書込み鍵をデータフィールドに格納し、記録データのシグネチャーをシグネチャーフィールドに格納した書込みコマンドを生成する。書込み制御部７２は、生成した書込みコマンドを、通信制御部７１、SPU３３、変調部３４、およびアンテナ３６を介してICカード１３に送信する。
【０１８５】
ICカード１３は、後述するステップＳ２５２において、リーダライタ１１から送信された書込みコマンドを受信し、データの書込みが指示されたサービス領域の書込み鍵と、書込みコマンドのデータフィールドに格納された書込み鍵が一致した場合、書込みが指示されたサービス領域にデータを書込み、ステップＳ２５６において、データの書込みが終了したことを通知する書込み終了通知コマンドを送信する。
【０１８６】
ステップＳ２４３において、書込み制御部７２は、ICカード１３から送信された書込み終了通知コマンドを、アンテナ３６、復調部３７、SPU３３、および通信制御部７１を介して受信し、データ書込み要求処理は終了する。
【０１８７】
次に、リーダライタ１１によるデータ書込み要求処理に対応して、ICカード１３により実行されるデータ書込み処理を説明する。
【０１８８】
ステップＳ２５１において、上述した図９のステップＳ１１の処理と同様に、ICカード１３の通信制御部２３１は、上述したステップＳ２４１において、リーダライタ１１から送信されたポーリングコマンドに応答する。
【０１８９】
その後、リーダライタ１１とICカード１３の間でセッション確立処理が実行され、リーダライタ１１およびICカード１３の間の通信セッションが確立された後、処理はステップＳ２５２に進む。
【０１９０】
ステップＳ２５２において、書込み制御部２３２は、上述したステップＳ２４２において、リーダライタ１１より送信された書込みコマンドを、アンテナ２０１、復調部２０２、SPU２０３、および通信制御部２３１を介して受信する。
【０１９１】
ステップＳ２５３において、書込み制御部２３２は、書込みコマンドによりデータの書込みが指示されたサービス領域の書込み鍵と、書込みコマンドのデータフィールドに格納された書込み鍵が一致するか否かを判定する。書込み鍵が一致したと判定された場合、処理はステップＳ２５４に進む。
【０１９２】
ステップＳ２５４において、書込み制御部２３２は、記憶部２０７にデータを書込む。具体的には、書込み制御部２３２は、書込みコマンドのデータフィールドに格納されている記録データ、および、シグネチャーフィールドに格納されている記録データのシグネチャーを、書込みコマンドにより指示されたサービス領域に書込む。
【０１９３】
ステップＳ２５５において、書込み制御部２３２は、書込みコマンドによりデータの書込みが指示されたサービス領域の暗号化フラグをオフにする。これにより、サービス領域の状態は、現在上述した図１５の状態３１１または後述する状態３１３である場合、状態３１２に遷移し、現在状態３１２である場合、状態３１２のままとなる。すなわち、サービス領域に記憶されている記録データが暗号化されておらず、かつ、暗号化フラグがオフされ、記録データの暗号化が可能な状態となる。
【０１９４】
ステップＳ２５６において、書込み制御部２３２は、書込み終了通知コマンドを送信し、データ書込み処理は終了する。具体的には、書込み制御部２３２は、データの書込みが終了したことを通知するコマンドコードをCMDフィールドに設定し、書込みコマンドに基づいてサービス領域にデータを書込んだ場合、書込みコマンドのシグネチャーフィールドに格納されていた記録データのシグネチャーをデータフィールドに格納し、サービス領域へのデータの書込みが失敗した場合、データの書込みが失敗したことを示すデータをデータフィールドに格納した書込み終了通知コマンドを生成する。書込み制御部２３２は、生成した書込み終了通知コマンドを、通信制御部２３１、SPU２０３、変調部２０９、およびアンテナ２０１を介してリーダライタ１１に送信する。
【０１９５】
ステップＳ２５３において、書込み鍵が一致しないと判定された場合、ステップＳ２５４乃至Ｓ２５６の処理はスキップされ、サービス領域にデータが書込まれずに、データ書込み処理は終了する。従って、書込み鍵が一致しない場合、サービス領域へのデータの書込みは許可されず、上述したように書込み鍵が一致する場合、サービス領域へのデータの書込みが許可される。
【０１９６】
その後、例えば、リーダライタ１１を用いてICカード１３にデータを書込んだユーザは、リーダライタ１２の所有者にICカード１３を送付する。
【０１９７】
次に、図１７のフローチャートを参照して、リーダライタ１２およびICカード１３との間で行なわれるリードワンスサービスからのデータ読出し処理を説明する。
【０１９８】
最初に、リーダライタ１２により実行されるデータ読出し要求処理を説明する。
【０１９９】
ステップＳ２７１において、上述した図１１のステップＳ４１と同様の処理により、リーダライタ１２の通信制御部１７１は、ポーリングコマンドを送信する。送信したポーリングコマンドに対するポーリング応答コマンドがICカード１３から送信されてきた場合、リーダライタ１２とICカード１３の間でセッション確立処理が実行され、リーダライタ１２およびICカード１３の間の通信セッションが確立された後、処理はステップＳ７２に進む。
【０２００】
ステップＳ２７２において、読出し制御部１７３は、ICカード１３にデータの読出しを要求する。具体的には、読出し制御部１７３は、データの読出しを要求するコマンドコードをCMDフィールドに設定し、データを読出すリードワンスサービスのサービス領域のサービス領域番号、および、読出すデータを暗号化する暗号化鍵をデータフィールドに格納した読出しコマンドを生成する。データフィールドに格納される暗号化鍵は、リードワンスサービスが対応する暗号化方式（例えば、DES（Data Encryption Standard）など）に基づいたものであれば、リーダライタ１２（読出し制御部１７３）で独自に設定したものでよい。読出し制御部１７３は、生成した読出しコマンドを、通信制御部１７１、SPU１３３、変調部１３４、およびアンテナ１３６を介してICカード１３に送信する。
【０２０１】
後述するステップＳ２８２において、ICカード１３は、リーダライタ１２から送信された読出しコマンドを受信する。そして、ICカード１３は、データの読出しが指示されたサービス領域の暗号化フラグがオフの場合、すなわち、指示されたサービス領域に記憶されている記録データが暗号化されていない場合、読出しコマンドに格納された暗号化鍵を用いて記録データを暗号化し、後述するステップＳ２８６において、暗号化した記録データを格納した読出し応答コマンドを送信する。また、ICカード１３は、データの読出しが指示されたサービス領域の暗号化フラグがオンの場合、すなわち、サービス領域に記録されている記録データが暗号化されている場合、指示されたサービス領域から記録データを読出し、後述するステップＳ２８６において、読出した記録データを格納した読出し応答コマンドを送信する。
【０２０２】
ステップＳ２７３において、読出し制御部１７３は、読出し応答コマンドを受信したか否かを判定する。読出しコマンドを送信してから所定の時間内に、読出し応答コマンドを受信しなかったと判定された場合、例えば、リーダライタ１２とICカード１３との距離が長くなり、読出しコマンドの送信や読出し応答コマンドの受信を失敗した場合、処理はステップＳ２７４に進む。
【０２０３】
ステップＳ２７４において、読出し制御部１７３は、読出し応答コマンドの再送を要求するか否かを判定する。読出し応答コマンドの再送を要求すると判定された場合、処理はステップＳ２７２に戻り、ステップＳ２７３において、読出し応答コマンドを受信したと判定されるか、または、ステップＳ２７４において、読出し応答コマンドの再送を要求しないと判定されるまで、ステップＳ２７２乃至Ｓ２７４の処理が繰り返し実行され、リーダライタ１２からICカード１３に読出しコマンドが繰り返し送信される。
【０２０４】
ステップＳ２７３において、読出しコマンドを送信してから所定の時間内に、ICカード１３から読出し応答コマンドが送信され、読出し制御部１７３が、アンテナ１３６、復調部１３７、SPU１３３、および通信制御部１７１を介して読出し応答コマンドを受信したと判定された場合、処理はステップＳ２７５に進む。
【０２０５】
ステップＳ２７５において、復号部１７５は、ICカード１３から読出したデータを復号し、データ読出し要求処理は終了する。具体的には、読出し制御部１７３は、読出しコマンドのデータフィールドに格納されている記録データと、読出しコマンドに格納してICカード１３に送信した暗号化鍵を復号部１７５に供給する。復号部１７５は、供給された暗号化鍵を用いて、記録データを復号し、復号した記録データを読出し制御部１７３に供給する。
【０２０６】
ステップＳ２７４において、読出し応答コマンドの再送を要求しないと判定された場合、例えば、所定の回数読出しコマンドを送信したにも関わらず、ICカード１３から読出し応答コマンドを受信できなかった場合、データ読出し要求処理は終了する。
【０２０７】
次に、リーダライタ１２によるデータ読出し要求処理に対応して、ICカード１３により実行されるデータ読出し処理を説明する。
【０２０８】
ステップＳ２８１において、上述した図９のステップＳ１１の処理と同様に、ICカード１３の通信制御部２３１は、上述したステップＳ２７１において、リーダライタ１２から送信されたポーリングコマンドに応答する。
【０２０９】
その後、リーダライタ１２とICカード１３の間でセッション確立処理が実行され、リーダライタ１２およびICカード１３の間の通信セッションが確立された後、処理はステップＳ２８２に進む。
【０２１０】
ステップＳ２８２において、読出し制御部２３３は、上述したステップＳ２７２において、リーダライタ１２より送信された読出しコマンドを、アンテナ２０１、復調部２０２、SPU２０３、および通信制御部２３１を介して受信する。
【０２１１】
ステップＳ２８３において、読出し制御部２３３は、読出しコマンドによりデータの読出しが指示されたサービス領域の暗号化フラグがオフであるか否かを判定する。暗号化フラグがオフであると判定された場合、すなわち、読出しコマンドによりデータの読出しが指示されたサービス領域の状態が図１５の状態３１２である場合、さらに換言すれば、指示されたサービス領域に記録されている記録データが暗号化されていない場合、処理はステップＳ２８４に進む。
【０２１２】
ステップＳ２８４において、暗号化部２３５は、データを暗号化する。具体的には、読出し制御部２３３は、読出しコマンドにより指示されたサービス領域の記録データを読出し、読出した記録データと読出しコマンドを暗号化部２３５に供給する。暗号化部２３５は、読出しコマンドのデータフィールドに格納されている暗号化鍵を用いて、所定の暗号化方式により記録データを暗号化し、暗号化した記録データを、読出し制御部２３３に供給するとともに、記録データが読出されたサービス領域に上書きする。
【０２１３】
ステップＳ２８５において、暗号化部２３５は、暗号化した記録データを書込んだサービス領域の暗号化フラグをオンにする。これにより、このサービス領域の状態は、図１５の状態３１２から状態３１３に遷移する。すなわち、サービス領域に記憶されている記録データが暗号化されており、かつ、暗号化フラグがオンされ、記録データの暗号化が禁止された状態となる。
【０２１４】
ステップＳ２８３において、暗号化フラグがオンであると判定された場合、すなわち、読出しコマンドによりデータの読出しが指示されたサービス領域の状態が図１５の状態３１３である場合、さらに換言すれば、今回の読出しコマンドで読出しが指示されたサービス領域の記録データが、先にリーダライタ１２、または、他のリーダライタから受信した読出しコマンドに基づいて、先に受信した読出しコマンドに格納されていた暗号化鍵で暗号化されている場合、ステップＳ２８４およびＳ２８５の処理はスキップされ、処理はステップＳ２８６に進む。すなわち、読出しコマンドにより読出しが指示されたサービス領域の記録データは暗号化されない。
【０２１５】
従って、サービス領域に記憶されている記録データが最初に読出される場合、記録データの読出しを指示する読出しコマンドに格納されている暗号化鍵を用いて記録データが暗号化され、サービス領域に記憶されている記録データが２回目以降に読出される場合、その記録データは新たに暗号化されない。すなわち、記録データは１回のみ暗号化される。
【０２１６】
なお、上述したように、書込みコマンドによりサービス領域に新たに記録データが書込まれた場合、そのサービス領域の暗号化フラグがオフされ、サービス領域の状態は状態３０３から状態３０２に遷移し、記録データの暗号化が可能になる。
【０２１７】
ステップＳ２８６において、読出し制御部２３３は、読出し応答コマンドを送信し、データ読出し処理は終了する。具体的には、読出し制御部２３３は、読出しコマンドに応答することを示すコマンドコードをCMDフィールドに設定し、読出しコマンドにより指示されたサービス領域の記録データをデータフィールドに格納した読出し応答コマンドを生成する。読出し制御部２３３は、生成した読出し応答コマンドを、通信制御部２３１、SPU２０３、変調部２０９、およびアンテナ２０１を介してリーダライタ１２に送信する。
【０２１８】
このとき、データフィールドに格納される記録データは、ステップＳ２８３において、暗号化フラグがオフであると判定された場合、ステップＳ２８４において、今回受信した読出しコマンドに格納されている暗号化鍵を用いて暗号化されたデータとされ、ステップＳ２８３において、暗号化フラグがオンであると判定された場合、指示されたサービス領域に記録されている記録データ、すなわち、以前受信した読出しコマンドに格納されていた暗号化鍵で暗号化されたデータとされる。すなわち、サービス領域に記憶されている記録データが最初に読出されるとき、ステップＳ２８４の処理により暗号化された記録データがリーダライタ１２に送信され、サービス領域に記憶されている記録データが２回目以降に読出されるとき、以前ICカード１３によりデータ読出し処理が実行されたときのステップＳ２８４の処理によりすでに暗号化されている記録データがサービス領域から読出され、読出された記録データがリーダライタ１２に送信される。
【０２１９】
なお、読出しコマンドのデータフィールドに有効な暗号化鍵が格納されていない場合、ICカード１３は、その読出しコマンドに対する処理は行なわない。また、データが書込まれていないサービス領域（図１５の状態３１１のサービス領域）からのデータの読出しが要求された場合、ステップＳ２８６において、送信される読出し応答コマンドのデータフィールドには、データが書込まれていないことを示すデータが格納される。
【０２２０】
このように、リードワンスサービスでは、リードワンスサービスを生成したユーザが所有する書込み鍵を、リードワンスサービスからデータを読出す人などの他者に渡す必要がないため、書込み鍵が第三者の手に渡る危険性が軽減され、かつ、その書込み鍵を用いなければデータを書込むことができないため、記録データの改ざんや、第三者が記録データを書込むこと（なりすまし）が防止される。また、リードワンスサービスでは、データを授受する二者間で共通の鍵を持ったり、鍵を交換したりする必要がないため、データを授受する手順が簡単になる。さらに、リードワンスサービスでは、データを読出す相手によって書込み鍵やサービス領域を必ずしも使い分ける必要がないため、鍵やサービスの管理が容易である。
【０２２１】
また、リードワンスサービスから記録データを読出す場合、最初に読出したリーダライタにより独自に設定された暗号化鍵で記録データが暗号化されるため、最初に読出したユーザ（リーダライタ）のみ記録データの内容を確認することができる。従って、正式な相手（リードワンスサービスにデータを書込んだユーザからデータの読出しを依頼された相手）がリードワンスサービスから記録データをいったん読出せば、それ以降、その記録データの内容を第三者が盗聴することができなくなり、例えば、ICカード１３を紛失したり、廃棄しても記録データの内容が第三者により盗聴されることがない。なお、正式な相手が記録データを読出す前に、第三者により記録データがリードワンスサービスから読出された場合、その記録データは第三者の独自の鍵で暗号化されるため、記録データが盗聴されたことを容易に知ることができ、その記録データを使用しないようにするなどの然るべき対策を迅速に施すことができる。
【０２２２】
なお、上述した図１７のリーダライタ１２の処理をリーダライタ１１により実行させるようにすることも可能である。すなわち、同じリーダライタを用いて、ICカード１３にリードワンスサービスを生成し、リードワンスサービスへデータを書込んだり、リードワンスサービスからデータを読出したりすることも可能である。
【０２２３】
以上のように、第１の情報処理装置から送信されてくる、記憶領域からのデータの読出しを許可する第１の読出し鍵を登録し、記憶領域に記憶されているデータが最初に読出されるまで、記憶領域への新たなデータの書込みを禁止するように記憶部へのデータの書込みを制御し、第１の情報処理装置または第１の情報処理装置とは異なる第２の情報処理装置により記憶領域からのデータの読出しが要求された場合、第１の情報処理装置または第２の情報処理装置から送信されてくる第２の読出し鍵と第１の読出し鍵とが一致するとき、記憶領域からのデータの読出しを許可するように記憶部からのデータの読出しを制御する場合には、データを授受することができる。また、より簡単にデータを安全に授受することができる。
【０２２４】
また、第１の情報処理装置から送信されてくる、記憶領域へのデータの書込みを許可する第１の書込み鍵を登録し、第１の情報処理装置または第１の情報処理装置とは異なる第２の情報処理装置により記憶領域へのデータの書込みが要求された場合、第１の情報処理装置または第２の情報処理装置から送信されてくる第２の書込み鍵が第１の書込み鍵と一致するとき、記憶領域へのデータの書込みを許可するように記憶部へのデータの書込みを制御し、第１の情報処理装置または第２の情報処理装置により記憶領域からのデータの読出しが要求された場合、記憶領域に記憶されているデータが最初に読出されるとき、第１の情報処理装置または第２の情報処理装置より送信されてくる暗号化鍵を用いて記憶領域に記憶されているデータを暗号化し、第１の情報処理装置または第２の情報処理装置により記憶領域からのデータの読出しが要求された場合、記憶領域に記憶されているデータが最初に読出されるとき、暗号化されたデータを第１の情報処理装置または第２の情報処理装置に送信し、記憶領域に記憶されているデータが２回目以降に読出されるとき、すでに暗号化されているデータを記憶領域から読出し、読出したデータを第１の情報処理装置または第２の情報処理装置に送信する場合には、データを授受することができる。また、より簡単にデータを安全に授受することができる。
【０２２５】
なお、以上の説明では、非接触型のICカードを用いたICカードシステムを例に用いたが、本発明は、接触型のICカード、または、上述した一連の処理を実行可能なコンピュータまたはハードウェアを内蔵したICカード以外の記憶装置を用いたデータ授受システムにも適用することができる。
【０２２６】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【０２２７】
この記録媒体は、図３および図５に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）５１，１５１、光ディスク（CD-ROM（Compact Disc-Read Only Memory）、DVD(Digital Versatile Disc)を含む）５２，１５２、光磁気ディスク（MD(Mini-Disc)（登録商標）を含む）５３，１５３、若しくは半導体メモリ５４，１５４などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM２０５（図７）や、記録部３２，１３２に含まれるハードディスク、記憶部２０７（図７）などで構成される。
【０２２８】
なお、上述した一連の処理を実行させるプログラムは、必要に応じてルータ、モデムなどのインタフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を介してコンピュータにインストールされるようにしてもよい。
【０２２９】
また、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２３０】
また、本明細書において、システムの用語は、複数の装置、手段などにより構成される全体的な装置を意味するものである。
【図面の簡単な説明】
【０２３１】
【図１】本発明を適用したICカードシステムの一実施の形態を示す図である。
【図２】図１のICカードシステムにおいて送受信されるコマンドのフォーマットの例を示す図である。
【図３】図１のリーダライタの機能の構成例を示すブロック図である。
【図４】図３のリーダライタの制御部により実現される機能の構成例を示すブロック図である。
【図５】図１のもう一方のリーダライタの機能の構成例を示すブロック図である。
【図６】図６のリーダライタの制御部により実現される機能の構成例を示すブロック図である。
【図７】図１のICカードの機能の構成例を示すブロック図である。
【図８】ICカードの制御部により実現される機能の構成例を示すブロック図である。
【図９】図１のICカードシステムのライトワンスサービス生成処理を説明するフローチャートである。
【図１０】ライトワンスサービスのサービス領域の状態の遷移を示す図である。
【図１１】図１のICカードシステムのライトワンスサービスにおけるデータ書込み処理を説明するフローチャートである。
【図１２】図１のICカードシステムのライトワンスサービスにおけるデータ確認処理を説明するフローチャートである。
【図１３】図１のICカードシステムのライトワンスサービスにおけるデータ読出し処理を説明するフローチャートである。
【図１４】図１のICカードシステムのリードワンスサービス生成処理を説明するフローチャートである。
【図１５】リードワンスサービスのサービス領域の状態の遷移を示す図である。
【図１６】図１のICカードシステムのリードワンスサービスにおけるデータ書込み処理を説明するフローチャートである。
【図１７】図１のICカードシステムのリードワンスサービスにおけるデータ読出し処理を説明するフローチャートである。
【符号の説明】
【０２３２】
１  ICカードシステム，  １１  リーダライタ，  １２  リーダライタ，  １３  ICカード，  ３１  制御部，  ３２  記録部，  ３８  ドライブ，  ５１  磁気ディスク，  ５２  光ディスク，  ５３  光磁気ディスク，  ５４  半導体メモリ，  ７２  書込み制御部，  ７３  読出し制御部，  ７４  サービス生成要求部，  １３１  制御部，  １３２  記録部，  １３８  ドライブ，  １５１  磁気ディスク，  １５２  光ディスク，  １５３  光磁気ディスク，  １５４  半導体メモリ，  １７２  書込み制御部，  １７３  読出し制御部，  ２０４  制御部，  ２０５  ROM，  ２０７  記憶部，  ２３１  通信制御部，  ２３２  書込み制御部，  ２３３  読出し制御部，  ２３４  サービス生成部，  ２３５  暗号化部
【図１】
2006155190.tif 000003
【図２】
2006155190.tif 000004
【図３】
2006155190.tif 000005
【図４】
2006155190.tif 000006
【図５】
2006155190.tif 000007
【図６】
2006155190.tif 000008
【図７】
2006155190.tif 000009
【図８】
2006155190.tif 000010
【図９】
2006155190.tif 000011
【図１０】
2006155190.tif 000012
【図１１】
2006155190.tif 000013
【図１２】
2006155190.tif 000014
【図１３】
2006155190.tif 000015
【図１４】
2006155190.tif 000016
【図１５】
2006155190.tif 000017
【図１６】
2006155190.tif 000018
【図１７】
2006155190.tif 000019