説明

認証ICタグ、認証システム、ホストアクセス装置及び認証方法

【課題】認証ICタグの誤動作を防止する。
【解決手段】認証処理状態とメモリアクセス状態とを有する認証ICタグ100であって、メモリアクセス状態は、ホストアクセス装置200から、メモリ部104へのメモリアクセス処理が実行可能な状態であり、認証処理状態は、ホストアクセス装置200による公開鍵暗号方式を用いた認証処理が実行可能で、かつ、メモリアクセス処理が禁止された状態であり、認証ICタグ100は、メモリ部104と、認証処理状態の場合に認証処理を行う認証処理部106と、認証処理状態の場合にメモリアクセス処理を禁止し、メモリアクセス状態の場合にメモリアクセス処理を行うメモリアクセス制御部107と、ホストアクセス装置200と通信することで、コマンドを取得する通信部101と、当該コマンドに基づいて、認証処理状態とメモリアクセス状態との間で認証ICタグの状態遷移を行う処理状態遷移制御部108とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、様々な物品の管理及び模造品の判別を行うための認証処理、又は、個人を認証する電子認証などの認証処理を行う認証ICタグ、認証システム、ホストアクセス装置及び認証方法に関するものである。
【背景技術】
【0002】
電子機器及び電子カードの普及に伴い、非正規品又は模造品が非常に増加しており、社会的な問題となっている。この問題を解決する手段の1つとして、暗号鍵を用いた暗号方式での認証システムがある。
【0003】
特に、電子機器などの認証では、ICタグを用いた認証システムが普及している。一般的なICタグを用いた認証システムでは、秘密鍵暗号方式が用いられる。例えば、特許文献1及び特許文献2には、秘密鍵暗号方式を用いた認証を行う技術が開示されている。
【0004】
秘密鍵暗号方式を用いた認証では、特許文献1で用いられているDES(Data Encryption Standard)などの方式が用いられる。秘密鍵暗号方式では、暗号鍵と復号鍵とが共通である。
【0005】
秘密鍵暗号方式を用いた認証は、暗号化及び復号の速度が速いというメリットがある。特に、処理時間が短い点と、暗号文が短い点とにより、秘密鍵暗号方式を用いた認証は、比較的容易に製品に適用可能であり、その応用分野は多岐にわたる。
【0006】
一方で、秘密鍵暗号方式を用いた認証は、鍵の受け渡しが問題であるというデメリットがある。すなわち、鍵が盗まれると、その鍵で復号が可能となる。また、秘密鍵暗号方式を用いた認証は、相手の数だけ、鍵を作成する必要があるため、不特定多数の認証には不向きであるというデメリットもある。また、暗号文が短いということは、暗号強度が脆弱であるというデメリットにもなる。
【0007】
このように、秘密鍵暗号方式では、暗号鍵と復号鍵とが共通であるために、鍵の配送が難しい点と、暗号文が短いため暗号強度が脆弱であるという課題を有する。
【0008】
近年、秘密鍵に変わる暗号方式として、公開鍵暗号方式がある。公開鍵暗号方式では、暗号化する鍵と復号する鍵とが異なり、それぞれペアでなければ元の情報を復元できない。この公開鍵暗号方式での長所となるのは、鍵が暗号化と復号とで異なるため、「鍵の配送(配布)が容易で管理が楽である」という点がある。
【0009】
公開鍵暗号方式の仕組みを利用するには、事前に相手の公開鍵を入手しておく必要はあるが、仮に第三者に公開鍵が入手されても復号されることはなく問題とならない。また、公開鍵暗号方式の暗号文は、秘密鍵暗号方式の暗号方式と比べて長いため、処理時間が長いという短所はあるが、一方で、暗号強度は、秘密鍵暗号方式と比較して強固であるという長所がある。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2001−307055号公報
【特許文献2】特開2009−171467号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、上記従来技術では、認証ICタグが誤動作を起こしてしまうことを防止することができないという課題がある。
【0012】
例えば、ホストアクセス装置と認証ICタグとの間の通信時のエラー、又は、ビット化けなどによりコマンド識別子(オペランド)の取りこぼしが発生した場合、認証ICタグは、ホストアクセス装置から送られてきた暗号文を復号しない。このとき、NTRUなどの公開鍵暗号方式で暗号化した暗号文は非常に長いために、公開鍵暗号文中にメモリアクセス命令又はアクセス不許可命令のコマンド識別子と一致するデータが含まれている場合に、認証ICタグは、当該データをコマンド識別子と判定する。そして、認証ICタグは、意図しないメモリアクセス又は返信動作などの誤動作を引き起こす。
【0013】
特に、認証ICタグとホストアクセス装置とが調歩同期式などの通信方式での通信を行う場合は、ビット単位での区切りは明確であるが、コマンドの始まり及び終わりを示す方法が規定されていない。このため、コマンドの始まり及び終わりが不明確であり、上記のような誤動作が生じやすい。
【0014】
そこで、本発明は、上記課題を鑑みてなされたものであって、認証ICタグの誤動作を防止することができる認証ICタグ、認証システム、ホストアクセス装置及び認証方法を提供することを目的とする。
【課題を解決するための手段】
【0015】
上記の問題を解決するために、本発明の一態様に係る認証ICタグは、認証処理状態とメモリアクセス状態とを有する認証ICタグであって、前記メモリアクセス状態は、ホストアクセス装置から、所定のデータを格納するためのメモリ部へのメモリアクセス処理が実行可能な状態であり、前記認証処理状態は、前記ホストアクセス装置による公開鍵暗号方式を用いた認証処理が実行可能で、かつ、前記メモリアクセス処理が禁止された状態であり、前記認証ICタグは、前記メモリ部と、前記認証ICタグが前記認証処理状態である場合に、前記認証処理を行う認証部と、前記認証ICタグが前記認証処理状態である場合に、前記メモリアクセス処理を禁止し、前記認証ICタグが前記メモリアクセス状態である場合に、前記メモリアクセス処理を行うメモリアクセス制御部と、前記ホストアクセス装置と通信することで、コマンドを取得する通信部と、前記通信部が取得したコマンドに基づいて、前記認証処理状態と前記メモリアクセス状態との間で前記認証ICタグの状態遷移を行う状態遷移制御部とを備える。
【0016】
これにより、認証処理状態では、メモリアクセス処理が禁止されているため、認証処理状態のときに受け取ったデータの一部をコマンド識別子と誤検出した場合でも、メモリアクセス処理を防止することができ、認証ICタグの誤動作を防止することができる。なお、特に、認証処理に公開鍵暗号方式を用いる場合は、暗号文データが長くなることが多いので、コマンド識別子の誤検出を起こす確率が高くなる。このため、本発明の一態様に係る認証ICタグによる誤動作の防止という効果は、より格別な効果を奏する。
【0017】
また、前記認証部は、前記認証ICタグが前記認証処理状態であり、かつ、前記認証処理を要求する認証要求コマンドを前記通信部が取得した場合に、前記認証処理を行い、前記メモリアクセス制御部は、前記認証ICタグが前記メモリアクセス状態であり、かつ、前記メモリアクセス処理を要求するアクセス要求コマンドを前記通信部が取得した場合に、前記メモリアクセス処理を行い、前記状態遷移制御部は、前記認証処理状態と前記メモリアクセス状態とのいずれかへの状態遷移を要求する遷移要求コマンドを前記通信部が取得した場合に、前記遷移要求コマンドに応じて前記認証ICタグの状態遷移を行ってもよい。
【0018】
これにより、認証処理、メモリアクセス処理、及び、状態遷移処理のそれぞれを、ホストアクセス装置から各処理に対応するコマンドを受け取った場合に実行する。つまり、遷移要求コマンドを取得した場合に、認証処理が可能な認証処理状態と、メモリアクセス処理が可能なメモリアクセス処理状態との相互の処理状態の切り替え処理を実行し、処理状態を確定しなければ、認証処理もメモリアクセス処理も受け付けない。このため、コマンド識別子の取りこぼしにより、暗号文データ中の一部をコマンド識別子であると誤検出した場合でも、認証ICタグの意図しない動作(誤動作)を防ぐことができる。
【0019】
また、前記状態遷移制御部は、前記認証処理又は前記メモリアクセス処理が完了した場合に、前記認証ICタグの状態遷移を行ってもよい。
【0020】
これにより、既に認証処理又はメモリアクセス処理が正しく実行されている場合には、処理中に状態遷移要求のコマンド識別子を受け取ったとしても、状態遷移を行わないので、認証ICタグの誤動作を防止することができる。
【0021】
また、前記状態遷移制御部は、前記認証処理が完了した場合に、前記認証ICタグの状態を前記認証処理状態のまま維持してもよい。
【0022】
これにより、認証処理を連続して実行することができる。つまり、状態遷移処理を実行しなければ、認証処理を独立して連続で実行することもできるため、連続した複数回の認証処理を行うことも可能となる。
【0023】
また、前記認証ICタグは、さらに、前記状態遷移制御部によって前記認証ICタグの状態遷移が行われた場合に、当該状態遷移の結果を示す状態遷移結果データを出力する出力部を備えてもよい。
【0024】
これにより、状態遷移処理の完了時に、ホストアクセス装置に、認証ICタグの処理状態を通知することができるため、効率良く認証ICタグの認証処理又はメモリアクセス処理を実行することができる。
【0025】
また、前記通信部は、前記ホストアクセス装置から、公開鍵を用いて暗号化された暗号文データとを所定の通信単位で取得し、前記認証部は、前記暗号文データを全て取得した後で、前記認証処理として、前記暗号文データを復号してもよい。
【0026】
これにより、暗号文データを全て受信してから復号を行うので、暗号文データの復号が失敗してしまうことを防止することができる。
【0027】
また、前記通信部は、前記ホストアクセス装置から、公開鍵を用いて暗号化された暗号文データとを所定の通信単位で取得し、前記認証部は、前記認証処理として、前記暗号文データを前記通信単位毎に復号してもよい。
【0028】
これにより、暗号文データを受信する度に復号するので、暗号文データの復号を高速化することができ、認証処理に要する時間を短くすることができる。
【0029】
また、前記通信部は、前記ホストアクセス装置との間で物理的な信号線を介して通信してもよい。
【0030】
これにより、接触型の認証ICタグの認証処理を行うことができる。
【0031】
また、前記通信部は、前記ホストアクセス装置との間で無線で通信してもよい。
【0032】
これにより、非接触型の認証ICタグの認証処理を行うことができる。
【0033】
また、前記通信部は、前記ホストアクセス装置から、公開鍵を用いて暗号化された暗号文データを取得し、前記認証部は、前記認証処理として、前記公開鍵に対応する秘密鍵を用いて前記暗号文データを復号することで、復号文データを生成し、前記通信部は、さらに、前記復号文データを前記ホストアクセス装置へ送信してもよい。
【0034】
これにより、ホストアクセス装置側で、認証ICタグによる暗号文データの復号が正しく行われたか否かを判定することができる。すなわち、ホストアクセス装置は、認証ICタグの認証処理が正しく完了したか否かを判定することができる。
【0035】
また、前記通信部は、前記ホストアクセス装置から、公開鍵を用いて平文データが暗号化された暗号文データとを取得し、前記認証部は、前記認証処理として、前記公開鍵に対応する秘密鍵を用いて前記暗号文データを復号することで、復号文データを生成し、前記平文データと前記復号文データとが一致するか否かを判定してもよい。
【0036】
これにより、認証ICタグ側で、認証ICタグの認証処理を行うことができる。
【0037】
また、本発明の一態様に係るホストアクセス装置は、所定のデータを格納するためのメモリ部を備える認証ICタグを、公開鍵暗号方式を用いて認証する処理である認証処理を行うホストアクセス装置であって、前記認証ICタグの状態を遷移させるための命令を発行する制御部と、前記命令に対応するコマンドを前記認証ICタグに送信する通信部とを備え、前記制御部は、前記認証ICタグの状態を、前記ホストアクセス装置から前記メモリ部へのメモリアクセス処理が禁止され、かつ、前記ホストアクセス装置による前記認証処理が実行可能な認証処理状態と、前記メモリアクセス処理が実行可能なメモリアクセス状態との間で遷移させるための命令を発行する。
【0038】
これにより、認証処理状態とメモリアクセス状態とを有する認証ICタグの状態を遷移させるためのコマンドを生成するので、認証ICタグの状態を遷移させることができる。
【0039】
また、前記ホストアクセス装置は、さらに、公開鍵を用いて平文データを暗号化することで、暗号文データを生成する暗号化部を備え、前記制御部は、前記認証処理を要求する認証命令、及び、前記メモリアクセス処理を要求するメモリアクセス命令を発行し、前記通信部は、前記制御部によって前記認証命令が発行された場合に、前記認証命令に対応するコマンドを識別するための識別コードと、前記暗号文データとを、前記認証ICタグに送信し、前記制御部によって前記メモリアクセス命令が発行された場合に、前記メモリアクセス命令に対応するコマンドを識別するための識別コードを、前記認証ICタグに送信してもよい。
【0040】
これにより、認証処理、メモリアクセス処理、及び、状態遷移処理を認証ICタグに要求することができる。
【0041】
また、前記通信部は、前記制御部によって発行された命令に応じて、信号波形を変更してもよい。
【0042】
これにより、認証ICタグとホストアクセス装置との間の通信の信号波形を命令に応じて変更するので、認証ICタグは、信号波形を検出することで、要求されたコマンドを認識することができる。
【0043】
また、前記ホストアクセス装置は、CPU(Central Processing Unit)を備え、前記CPUは、前記制御部、前記暗号化部及び前記通信部の機能を実行してもよい。
【0044】
これにより、ホストアクセス装置の主要な機能は、全てソフトウェア構成で実現することができる。
【0045】
また、認証ICタグの認証処理を行うホストアクセス装置であって、前記認証ICタグに対する少なくとも1つ以上の命令を発行する制御部と、公開鍵を用いて平文データを暗号化することで、暗号文データを生成する暗号化部と、前記暗号文データを前記認証ICタグに送信する通信部と、前記暗号文データを解析することで、前記1つ以上の命令に対応するコマンドを識別するための識別コードと一致するデータが前記暗号文データに含まれているか否かを判定する解析部と、前記識別コードと一致するデータが前記暗号文データに含まれていると判定された場合に、前記識別コードを変更することで、変更後識別コードを生成する変更部とを備え、前記通信部は、さらに、前記変更後識別コードを前記認証ICタグに送信してもよい。
【0046】
これにより、暗号文データの一部がコマンド識別子と一致した場合に、コマンド識別子を変更するので、変更後のコマンド識別子を用いることで、暗号文データの一部をコマンド識別子であると誤検出することを防止することができる。したがって、認証ICタグの誤動作を防止することができる。
【0047】
また、本発明の一態様に係る認証システムは、上記の認証ICタグのいずれかと、上記のホストアクセス装置のいずれかとを備える。
【0048】
これにより、認証処理状態では、メモリアクセス処理が禁止されているため、認証処理状態に受け取ったデータの一部をコマンド識別子と誤検出した場合でも、メモリアクセス処理を防止することができ、認証ICタグの誤動作を防止することができる。なお、特に、認証処理に公開鍵暗号方式を用いる場合は、暗号文データが長くなることが多いので、コマンド識別子の誤検出を起こす確率が高くなる。このため、本発明の一態様に係る認証システムによる誤動作の防止という効果は、より格別な効果となる。
【0049】
なお、本発明は、認証ICタグ、ホストアクセス装置及び認証システムとして実現できるだけではなく、当該認証ICタグ、ホストアクセス装置及び認証システムを構成する処理部をステップとする方法として実現することもできる。
【0050】
例えば、本発明の一態様に係る認証方法は、認証処理状態とメモリアクセス状態とを有する認証ICタグを認証する認証方法であって、前記メモリアクセス状態の前記認証ICタグは、ホストアクセス装置から、所定のデータを格納するためのメモリ部へのメモリアクセス処理が実行可能であり、前記認証処理状態の前記認証ICタグは、前記ホストアクセス装置による公開鍵暗号方式を用いた認証処理が実行可能で、かつ、前記メモリアクセス処理が禁止され、前記認証方法は、前記認証ICタグが前記認証処理状態である場合に、前記認証処理を行う認証ステップと、前記認証ICタグが前記認証処理状態である場合に、前記メモリアクセス処理を禁止し、前記認証ICタグが前記メモリアクセス状態である場合に、前記メモリアクセス処理を行うメモリアクセスステップと、前記ホストアクセス装置と通信することで、コマンドを取得する通信ステップと、前記コマンドに基づいて、前記認証処理状態と前記メモリアクセス状態との間で前記認証ICタグの状態遷移を行う状態遷移制御ステップとを含む。
【0051】
これにより、認証処理状態の認証ICタグは、メモリアクセス処理が禁止されているため、認証処理状態に受け取ったデータの一部をコマンド識別子と誤検出した場合でも、メモリアクセス処理を防止することができ、認証ICタグの誤動作を防止することができる。なお、特に、認証処理に公開鍵暗号方式を用いる場合は、暗号文データが長くなることが多いので、コマンド識別子の誤検出を起こす確率が高くなる。このため、本発明の一態様に係る認証システムによる誤動作の防止という効果は、より格別な効果となる。
【発明の効果】
【0052】
本発明によれば、認証ICタグの誤動作を防止することができる。
【図面の簡単な説明】
【0053】
【図1】本発明の実施の形態1に係る公開鍵暗号方式の認証ICタグの構成の一例を示すブロック図である。
【図2】本発明の実施の形態1に係るコマンド種別の一例を示す図である。
【図3】本発明の実施の形態1に係る認証処理部の構成の一例を示すブロック図である。
【図4】本発明の実施の形態1に係るコマンドフォーマットの一例を示す図である。
【図5】本発明の実施の形態1に係る認証ICタグの動作の一例を示すフローチャートである。
【図6】本発明の実施の形態1に係る認証システムの一例である電子機器の構成の一例を示すブロック図である。
【図7A】本発明の実施の形態1に係る認証システムの動作の一例を示すシーケンス図である。
【図7B】本発明の実施の形態1に係る認証システムの動作の一例を示すシーケンス図である。
【図8】認証ICタグが誤動作を起こす場合の認証システムの動作を示すシーケンス図である。
【図9A】本発明の実施の形態1に係る認証システムの状態遷移の一例を示すフローチャートである。
【図9B】本発明の実施の形態1に係る認証システムの状態遷移の一例を示すフローチャートである。
【図9C】本発明の実施の形態1に係る認証システムの状態遷移の一例を示すフローチャートである。
【図9D】本発明の実施の形態1に係る認証システムの状態遷移の一例を示すフローチャートである。
【図10】本発明の実施の形態1に係る認証システムにおいてホストアクセス装置側での認証処理を説明するための図である。
【図11】本発明の実施の形態2に係る認証システムの一例である電子機器の構成の一例を示すブロック図である。
【図12】本発明の実施の形態2に係る認証ICタグの構成の一例を示すブロック図である。
【図13】本発明の実施の形態の変形例に係る認証システムの一例である電子機器の構成の一例を示すブロック図である。
【図14】本発明の実施の形態の変形例に係る認証システムの一例である電子機器の構成の一例を示すブロック図である。
【図15】本発明の実施の形態の変形例に係る非接触型の認証システムの構成の一例を示す図である。
【図16】本発明の実施の形態の変形例に係る認証ICタグの構成の一例を示すブロック図である。
【図17】本発明の実施の形態の変形例に係る認証ICタグの動作の一例を示すフローチャートである。
【図18】本発明の実施の形態の変形例に係る認証処理部の構成の一例を示すブロック図である。
【図19】本発明の実施の形態の変形例に係る認証システムにおいて認証ICタグ側での認証処理を説明するための図である。
【図20】本発明の実施の形態の変形例に係る認証ICタグの構成の一例を示すブロック図である。
【図21】本発明の実施の形態の変形例に係るホストアクセス装置によるコマンドフォーマットの変更の一例を示す図である。
【図22】本発明の実施の形態の変形例に係るホストアクセス装置によるコマンドフォーマットの変更の一例を示す図である。
【発明を実施するための形態】
【0054】
以下、本発明に係る認証ICタグ、認証システム、ホストアクセス装置及び認証方法の実施の形態について、図面を参照しながら詳細に説明する。
【0055】
(実施の形態1)
本発明の実施の形態1に係る認証ICタグは、ホストアクセス装置による公開鍵暗号方式を用いた認証処理と、ホストアクセス装置から所定のデータを格納するためのメモリ部へのメモリアクセス処理とを行う。認証ICタグは、取得したコマンドに基づいて、認証処理状態とメモリアクセス状態との間で認証ICタグの状態遷移を行う状態遷移制御部と、認証処理状態である場合に認証処理を行う認証部と、認証処理状態である場合にメモリアクセス処理を禁止し、メモリアクセス状態である場合にメモリアクセス処理を実行するメモリアクセス制御部とを備えることを特徴とする。
【0056】
つまり、本発明の実施の形態1に係る認証ICタグは、認証処理状態とメモリアクセス状態とを有する。認証処理状態は、認証処理を実行可能であるが、メモリアクセス処理を行うことができない状態である。メモリアクセス状態は、メモリアクセス処理を実行可能な状態である。
【0057】
図1は、本発明の実施の形態1に係る公開鍵暗号方式の認証ICタグ100の構成の一例を示すブロック図である。図1に示すように、認証ICタグ100は、通信部101と、コマンド識別部102と、識別コード記憶部103と、メモリ部104と、認証制御部105と、認証処理部106と、メモリアクセス制御部107と、処理状態遷移制御部108と、出力データ制御部109と、入出力端子110とを備える。
【0058】
本発明の実施の形態1に係る認証ICタグ100は、認証処理とメモリアクセス処理とを行う。認証処理は、ホストアクセス装置200による公開鍵暗号方式を用いた処理である。メモリアクセス処理は、ホストアクセス装置200によるメモリ部104へのアクセス処理である。
【0059】
具体的には、認証ICタグ100は、認証処理状態とメモリアクセス状態とを有する。認証処理状態の認証ICタグ100は、ホストアクセス装置200からメモリ部104へのメモリアクセス処理が禁止され、ホストアクセス装置200による公開鍵暗号方式を用いた認証処理が実行可能である。また、メモリアクセス処理状態の認証ICタグ100は、ホストアクセス装置200による公開鍵暗号方式を用いた認証処理が禁止され、ホストアクセス装置200からメモリ部104へのメモリアクセス処理が実行可能である。
【0060】
通信部101は、ホストアクセス装置200と通信することで、データの送受信を行う。具体的には、通信部101は、入出力端子110と接続され、外部のホストアクセス装置200から送信されてきたデータを受け取り、受け取ったデータをコマンド識別部102、認証制御部105、メモリアクセス制御部107及び処理状態遷移制御部108に送信する。
【0061】
通信部101が受信するデータは、例えば、認証ICタグ100に所定の処理を要求するために、ホストアクセス装置200によって生成されたコマンドである。コマンドは、コマンドを識別するための識別コード(コマンド識別子)を含んでいる。コマンドの詳細については、後で説明する。
【0062】
また、通信部101は、出力データ制御部109より制御された外部に送信するための出力データを受け取り、入出力端子110を介して外部のホストアクセス装置200に送信する。出力データの詳細については、後で説明する。
【0063】
コマンド識別部102は、通信部101と接続され、外部のホストアクセス装置200から送信されてきた受信データ中のコマンドの識別を行う。コマンドの識別とは、識別コードを分析することで、認証ICタグ100が要求されている処理の種別を判定することである。
【0064】
具体的には、コマンド識別部102は、識別コード記憶部103に登録されているコマンド識別情報を参照することで、受信データに含まれるコマンドが認証処理要求であるか、メモリアクセス要求であるか、処理状態遷移要求であるかを判別する。そして、コマンド識別部102は、認証制御部105、メモリアクセス制御部107及び処理状態遷移制御部108にそれぞれ、動作の指示を発行する。
【0065】
識別コード記憶部103は、コマンドの識別コードを記憶するためのメモリである。具体的には、識別コード記憶部103には、コマンド識別部102に送信するための、図2に示すような識別コード情報が記憶されている。コマンド識別部102は、識別コード記憶部103に記憶されている識別コード情報を適宜参照することができる。なお、識別コード情報は、メモリ部104とアドレス空間を共有しておりメモリアクセス命令で書き換え可能であってもよい。
【0066】
メモリ部104は、所定のデータを記憶するためのメモリである。例えば、メモリ部104は、FeRAM(Ferroelectric Random Access Memory:強誘電体メモリ)から構成される。なお、メモリ部104は、FeRAMではなく、EEPROM(Electric Erasable and Programmable ROM)から構成されてもよい。
【0067】
また、メモリ部104は、例えば、プロテクト領域と非プロテクト領域とに分割されており、プロテクト領域には、外部から参照されてはならない情報が所定のデータとして記憶されていてもよい。例えば、メモリ部104のプロテクト領域には、製品情報、及び、暗号文を復号するための鍵情報などが記憶されている。なお、メモリ部104は、全ての領域がプロテクト領域でもよく、あるいは、全ての領域が非プロテクト領域でもよい。また、記憶すべきデータに応じて、プロテクト領域と非プロテクト領域とを動的に変更することができてもよい。
【0068】
認証制御部105は、認証ICタグ100が認証処理状態である場合に、認証処理部106に認証処理を行わせる。具体的には、認証制御部105は、認証ICタグ100が認証処理状態であり、かつ、認証処理を要求する認証要求コマンドを通信部101が取得した場合に、認証処理部106に認証処理を行わせる。
【0069】
例えば、認証制御部105は、コマンド識別部102によって判別された受信データに含まれるコマンドが認証処理要求である場合に、コマンド識別部102より認証処理の指示を受け取る。そして、認証制御部105は、認証処理部106に、暗号文データの復号処理である認証処理を実施するように命令する。また、認証制御部105は、認証処理完了時に、コマンド識別部102、メモリアクセス制御部107及び処理状態遷移制御部108に、完了通知を行う。
【0070】
なお、認証制御部105は、認証ICタグ100がメモリアクセス状態である場合に、認証処理を禁止してもよい。
【0071】
認証処理部106は、認証制御部105の指示で、通信部101から出力された受信データに含まれる暗号文データを復号することで、復号文データを生成する。認証処理部106は、図3に示すように、暗号文復号部106aと、秘密鍵記憶部106bとを備える。
【0072】
暗号文復号部106aは、秘密鍵記憶部106bに記憶されている復号鍵(秘密鍵)を用いて、復号処理を実施する。暗号文復号部106aは、公開鍵暗号方式の暗号回路である。公開鍵暗号方式は、上述のNTRUなどを示し、暗号化処理後にハッシュ処理などを行う場合もある。また、復号文データは、出力データ制御部109に出力される。
【0073】
メモリアクセス制御部107は、認証ICタグ100が認証処理状態である場合に、ホストアクセス装置200からメモリ部104へのメモリアクセス処理を禁止する。また、メモリアクセス制御部107は、認証ICタグ100がメモリアクセス状態である場合に、ホストアクセス装置200からメモリ部104へのメモリアクセス処理を行う。具体的には、メモリアクセス制御部107は、認証ICタグ100がメモリアクセス状態であり、かつ、メモリアクセス処理を要求するアクセス要求コマンドを通信部101が取得した場合に、メモリアクセス処理を行う。
【0074】
例えば、メモリアクセス制御部107は、コマンド識別部102によって判別された受信データに含まれるコマンドがメモリアクセス要求である場合に、コマンド識別部102よりメモリアクセス処理の指示を受け取る。そして、メモリアクセス制御部107は、メモリ部104へのメモリアクセス処理を実施する。
【0075】
具体的には、アクセス要求コマンドがメモリ部104への書き込み要求である場合は、メモリアクセス制御部107は、受信データ中の書き込みデータを受信データのアドレス領域に書き込みを行う。そして、書き込みアクセスの完了が完了した際に、メモリアクセス制御部107は、出力データ制御部109に書き込み完了信号を出力する。なお、書き込み完了を通知しないことも可能である。
【0076】
また、アクセス要求コマンドがメモリ部104からの読み出し要求である場合は、メモリアクセス制御部107は、受信データのアドレス領域からの読み出しを行う。そして、読み出しアクセスの完了が完了した際に、メモリアクセス制御部107は、出力データ制御部109に読み出しデータとともに読み出し完了信号を出力する。なお、読み出し完了は、読み出しデータの返信のみを持って暗示的に通知することも可能である。
【0077】
処理状態遷移制御部108は、通信部101が取得したコマンドに基づいて、認証処理状態とメモリアクセス状態との間で認証ICタグ100の状態遷移を行う。具体的には、処理状態遷移制御部108は、認証処理状態とメモリアクセス状態とのいずれかへの状態遷移を要求する遷移要求コマンドを通信部101が取得した場合に、遷移要求コマンドに応じて認証ICタグ100の状態遷移を行う。
【0078】
例えば、処理状態遷移制御部108は、コマンド識別部102によって判別された受信データに含まれるコマンドが処理状態遷移要求であった場合に、コマンド識別部102より処理状態遷移処理の指示を受け取る。そして、処理状態遷移制御部108は、処理状態遷移処理を実施する。
【0079】
処理状態遷移制御部108は、認証ICタグ100の処理状態が認証処理状態である場合で、次に実施する処理をメモリアクセス処理に変更したい場合に、処理状態を切り替える。また、処理状態遷移制御部108は、認証ICタグ100の処理状態がメモリアクセス処理状態である場合に、次に実施する処理を認証処理に変更する場合にも、処理状態を切り替える。なお、処理状態遷移処理を実施しない場合は、前回の処理と今回の処理とは、同じとなる。例えば、前回の処理が認証処理である場合は、今回の処理は認証処理となる。なお、メモリアクセス処理の場合も同様となる。
【0080】
また、処理状態遷移制御部108は、受信データ中の特定のコード(遷移判定コード)が遷移状態の許可又は不許可を表すコードと一致するか否かを判定することで、遷移を実施するか否かを判定する。遷移処理が許可された場合は、処理状態遷移制御部108は、認証ICタグ100を認証処理状態からメモリアクセス状態へ遷移させる。あるいは、処理状態遷移制御部108は、認証ICタグ100をメモリアクセス状態から認証状態へ遷移させる。
【0081】
遷移処理が不許可である場合は、処理状態遷移制御部108は、認証ICタグ100を現在の処理状態に留める。なお、認証ICタグ100が現在の処理状態に留まった場合は、認証ICタグ100は、再度、現行の処理と同種の処理を実行することが可能となる。つまり、処理状態遷移制御部108は、認証処理が完了した場合に、認証ICタグ100の状態を認証処理状態のまま維持する。また、処理状態遷移制御部108は、メモリアクセス処理が完了した場合に、認証ICタグ100の状態をメモリアクセス状態のまま維持してもよい。
【0082】
さらに、遷移処理を実行しない場合も、認証ICタグ100は、現行の処理と同種の処理を再度実行可能となる。つまり、遷移処理を実行しない場合は、認証ICタグ100は、現行の処理を連続で実行することが可能となる。例えば、1度目の認証処理を実行後、2度目の認証処理を実行することが可能となる。
【0083】
遷移処理を実行した場合、処理状態遷移制御部108は、実行結果を示す遷移状態信号を出力データ制御部109へ出力する。実行結果は、認証処理からメモリアクセス処理への遷移、及び、メモリアクセス処理から認証処理への遷移のいずれであるかによって、異なる。したがって、実行結果の値を判別することによって、外部のホストアクセス装置200は、認証ICタグ100の処理状態を把握することが可能となる。
【0084】
また、処理状態遷移制御部108は、遷移処理が不許可である場合も遷移結果を出力してもよい。遷移処理が不許可の場合の実行結果は、認証ICタグ100の現在の処理状態となる。
【0085】
出力データ制御部109は、出力部の一例であり、認証処理部106、メモリアクセス制御部107及び処理状態遷移制御部108より出力される各出力データを選択して、通信部101へ送信する。具体的には、出力データ制御部109は、認証処理部106による認証結果を示す認証結果信号、メモリアクセス制御部107によってメモリ部104から読み出されたデータを示す記憶データ読み出し信号、及び、処理状態遷移制御部108による状態遷移の結果を示す遷移状態信号のいずれかを選択して、選択したデータを通信部101へ送信する。例えば、出力データ制御部109は、認証ICタグ100の状態遷移が行われた場合に、通信部101を介して、状態遷移の結果を示す状態遷移結果データをホストアクセス装置200に出力する。
【0086】
入出力端子110は、通信部101と接続している。通信部101は、入出力端子110を介して、外部のホストアクセス装置200から入力される受信データを受信し、また、出力データ制御部109から出力された出力データを外部のホストアクセス装置200へ送信する。
【0087】
次に、識別コード記憶部103に記憶されているコマンド種別、及び、コマンドに対応する動作について説明する。図2は、本発明の実施の形態1に係るコマンド種別の一例を示す図である。
【0088】
図2に示す例では、コマンド種別には、認証処理、遷移処理、メモリアクセス処理、及び、処理状態確認処理がある。つまり、コマンド識別部102は、受信したコマンドが、認証要求コマンド、遷移要求コマンド、アクセス要求コマンド、及び、状態確認要求コマンドのいずれであるかを判定する。
【0089】
認証要求コマンドは、認証処理を要求するコマンドである。例えば、コマンド識別部102は、受信データに識別コード“A0”が含まれている場合に、受信データに含まれるコマンドが認証要求コマンドであると判定する。そして、コマンド識別部102は、認証要求コマンドを取得したことを認証制御部105に通知する。
【0090】
認証制御部105は、受信データに含まれる暗号文データ“X0”を復号するように、認証処理部106を制御する。認証処理部106は、公開鍵に対応する秘密鍵を用いて暗号文データ“X0”を復号することで、復号文データを生成し、生成した復号文データ(認証結果信号)を出力データ制御部109に出力する。そして、出力データ制御部109は、通信部101を介して、復号文データを認証結果データ“B0”として出力する。
【0091】
遷移要求コマンドは、状態遷移処理を要求するコマンドである。例えば、コマンド識別部102は、受信データに識別コード“S0”が含まれている場合に、受信データに含まれるコマンドが遷移要求コマンドであると判定する。そして、コマンド識別部102は、遷移要求コマンドを取得したことを処理状態遷移制御部108に通知する。
【0092】
処理状態遷移制御部108は、受信データに含まれる遷移判定コード“S1”を取得し、取得した遷移判定コード“S1”が状態遷移処理の可否のいずれを示しているかを判定する。具体的には、処理状態遷移制御部108は、遷移判定コード“S1”が状態遷移処理の許可を示すコードに一致する場合は、状態遷移を行う。また、処理状態遷移制御部108は、遷移判定コード“S1”が状態遷移処理の不許可を示すコードに一致する場合は、状態遷移を行わない。すなわち、処理状態遷移制御部108は、認証ICタグ100の状態を現在の状態のまま維持させる。
【0093】
例えば、遷移判定コード“S1”がメモリアクセス状態から認証処理状態への遷移を許可するコードに一致している場合、処理状態遷移制御部108は、認証ICタグ100を認証処理状態へ変更する。また、遷移判定コード“S1”が認証処理状態からメモリアクセス状態への遷移を許可するコードに一致している場合、処理状態遷移制御部108は、認証ICタグ100をメモリアクセス状態変更する。
【0094】
処理状態遷移制御部108は、遷移結果データ(遷移状態信号)を出力データ制御部109に出力する。出力データ制御部109は、通信部101を介して遷移結果データを出力する。例えば、遷移処理の結果(又は、遷移不許可の結果)、認証ICタグ100がメモリアクセス状態である場合、出力データ制御部109は、メモリアクセス状態であることを示す遷移結果データ“T0”を出力する。また、認証ICタグ100が認証処理状態である場合、出力データ制御部109は、認証処理状態であることを示す遷移結果データ“T1”を出力する。
【0095】
アクセス要求コマンドは、メモリアクセス処理を要求するコマンドである。例えば、コマンド識別部102は、受信データに識別コード“M0”が含まれている場合に、受信データに含まれるコマンドがアクセス要求コマンドであると判定する。そして、コマンド識別部102は、アクセス要求コマンドを取得したことをメモリアクセス制御部107に通知する。
【0096】
例えば、アクセス要求コマンドが書き込み要求である場合、メモリアクセス制御部107は、受信データに含まれるメモリアドレス“AD”及び書き込みデータ“WT”を取得する。そして、メモリアクセス制御部107は、取得したメモリアドレス“AD”が示すメモリ部104内の領域に、書き込みデータ“WT”を書き込む。
【0097】
また、アクセス要求コマンドが読み出し要求である場合、メモリアクセス制御部107は、受信データに含まれるメモリアドレス“AD”を取得し、取得したメモリアドレス“AD”が示すメモリ部104内の領域に格納されているデータを読み出す。そして、メモリアクセス制御部107は、読み出したデータを、記憶データ読み出し信号(メモリデータ“N0”)として出力データ制御部109に出力する。出力データ制御部109は、通信部101を介して、メモリデータ“N0”を出力する。
【0098】
状態確認要求コマンドは、認証ICタグ100の現在の状態を確認するためのコマンドである。例えば、コマンド識別部102は、受信データに識別コード“ST0”が含まれている場合に、受信データに含まれるコマンドが状態確認要求コマンドであると判定する。そして、コマンド識別部102は、状態確認要求コマンドを取得したことを処理状態遷移制御部108に通知する。
【0099】
処理状態遷移制御部108は、認証ICタグ100の現在の状態を示す信号を出力データ制御部109に出力する。そして、出力データ制御部109は、認証ICタグ100の現在の状態を示す状態通知データを、通信部101を介して出力する。例えば、認証ICタグ100がメモリアクセス状態である場合、出力データ制御部109は、メモリアクセス状態であることを示す状態通知データ“T0”を出力する。また、認証ICタグ100が認証処理状態である場合、出力データ制御部109は、認証処理状態であることを示す状態通知データ“T1”を出力する。
【0100】
続いて、本発明の実施の形態1に係るコマンドフォーマットの一例について説明する。図4は、本発明の実施の形態1に係るコマンドフォーマットの一例を示す図である。
【0101】
図4に示すように、コマンドは、識別コードと処理対象データとを含んでいる。なお、図4は、識別コード“A0”、すなわち、認証要求コマンドの一例を示している。認証ICタグ100は、識別コード“A0”に続いて、暗号文データ“X0”を受信する。
【0102】
なお、暗号文データ“X0”は、例えば、NTRU暗号方式によって、秘匿に送信すべき対象である平文データが暗号化されたデータである。NTRU暗号方式については、例えば、特許文献3(特開2003−195755号公報)に開示されている。NTRU暗号方式で暗号化された暗号文データは、暗号強度を確保するために4000ビット程度のビット長で用いられるのが一般的である。
【0103】
なお、公開鍵暗号方式には、NTRUの他にRSA及びECCといった方式があるので、これらの暗号方式を用いてもよい。
【0104】
続いて、本発明の実施の形態1に係る認証ICタグ100の動作の一例について説明する。図5は、本発明の実施の形態1に係る認証ICタグ100の動作の一例を示すフローチャートである。なお、図5は、認証ICタグ100は、初期状態が認証処理状態である場合の例について示している。
【0105】
まず、認証ICタグ100は、認証要求コマンドの受信待ち状態にある(S101)。すなわち、認証ICタグ100は、認証要求コマンドの識別コードを受信するまで、何もせず待機している。受信待ち状態にある場合に通信部101が識別コードを含むデータを取得した場合、コマンド識別部102は、識別コードを解析することで、認証ICタグ100に要求されている処理を判定する。これにより、認証ICタグ100は、暗号文取得状態となる。
【0106】
なお、この待機期間に、例えば、アクセス要求コマンドを受信したとしても、認証ICタグ100は、メモリアクセス処理を実行しない。また、待機期間に、例えば、遷移要求コマンドを受信した場合、認証ICタグ100は、状態遷移処理を行ってもよい(S107以降の処理)。あるいは、認証処理が完了していないので、遷移要求コマンドを受信したとしても、認証ICタグ100は、状態遷移を禁止してもよい。
【0107】
認証要求コマンドの識別コードを取得した場合、通信部101は、暗号文データの受信を行う(S102)。なお、外部のホストアクセス装置200は、接触又は非接触のインターフェイスに関わらず、規定のビット単位でデータを送受信する。言い換えると、通信部101は、ホストアクセス装置200から、公開鍵を用いて暗号化された暗号文データを所定の通信単位で取得する。例えば、調歩同期式などの通信方式で通信する場合、1回の通信で送信可能なデータは8ビットとなる。
【0108】
このように、認証ICタグ100の通信部101は、Nビット単位で認証要求コマンドを受信する。認証に必要な暗号文は、例えば、4000ビット程度のビット長であるため、認証ICタグ100は、複数回に分けて暗号文データを受け取る。具体的には、8ビット単位での通信である場合は、暗号文データの送受信だけで、500回の通信を実施する。
【0109】
認証ICタグ100は、全ての暗号文データの受信が完了するまで(S103でNo)、認証要求コマンドの分割された暗号文データの受信を繰り返す。具体的には、4000ビットの暗号文データを全て取得するまで、分割された暗号文データの受信を繰り返す。例えば、通信部101は、暗号文取得状態から、分割された暗号文データを8ビット単位で受け取ると、分割された暗号文データを内部の記憶領域に保持するとともに、受け取り回数をカウントする。そして、通信部101は、必要なビット数を受け取るまでのカウント数まで、分割された暗号文データを取得し続ける。
【0110】
認証処理に必要な暗号文データを受け取った後、認証処理部106は、受け取った暗号文データに対する認証処理を実施する(S104)。具体的には、認証処理部106は、公開鍵に対応する秘密鍵を用いて暗号文データを復号することで、復号文データを生成する。
【0111】
そして、認証処理が完了した後(S105)、具体的には、復号文データの生成が完了した後、出力データ制御部109は、通信部101を介して、復号文データを認証結果としてホストアクセス装置200に通知する(S106)。ここで、ホストアクセス装置200は、例えば、認証ICタグ100から送信された復号文データと、自装置が保持している平文データとを比較することで、認証が成功したか否かを判定する。そして、認証が成功していると判定した場合に、遷移要求コマンドを認証ICタグ100に送信する。なお、ホストアクセス装置200の詳細な動作については、後で説明する。
【0112】
通信部101は、遷移要求コマンドを受信する(S107)。具体的には、コマンド識別部102が、受信されたコマンドの識別コードを解析し、コマンドが遷移要求コマンドであることを確認する。そして、処理状態遷移制御部108は、遷移判定コードが認証処理状態からメモリアクセス状態への遷移を許可するコードに一致しているか否かを判定する(S108)。
【0113】
遷移判定コードが認証処理状態からメモリアクセス状態への遷移を許可するコードに一致しない場合(S108でNo)、処理状態遷移制御部108は、状態遷移を行わない。すなわち、認証ICタグ100は、認証処理状態を維持、つまり、認証要求コマンドの受信待ち状態を維持する。
【0114】
遷移判定コードが認証処理状態からメモリアクセス状態への遷移を許可するコードに一致する場合(S108でYes)、処理状態遷移制御部108は、認証ICタグ100の状態遷移を行う(S109)。具体的には、処理状態遷移制御部108は、認証ICタグ100を認証処理状態からメモリアクセス状態へ遷移させる。
【0115】
処理状態の遷移が完了した後(S110)、出力データ制御部109は、通信部101を介して、状態遷移の結果を示すデータをホストアクセス装置200へ通知する(S111)。状態遷移が完了したので、認証ICタグ100は、アクセス要求コマンドの受信待ち状態にある(S112)。ここで、ホストアクセス装置200は、認証ICタグ100の状態がメモリアクセス状態に遷移したことを確認し、アクセス要求コマンドを送信する。
【0116】
通信部101が受信したコマンドがアクセス要求コマンドである場合(S113でNo)、通信部101は、受信データに含まれるメモリアドレス(及び、書き込みデータ)をメモリアクセス制御部107に出力する。そして、メモリアクセス制御部107は、メモリアドレスが示すメモリ部104の領域からデータを読み出す、又は、当該領域にデータを書き込む(S114)。
【0117】
認証ICタグ100がメモリアクセス状態である場合に、通信部101が遷移要求コマンドを受信した場合(S113でYes)、処理状態遷移制御部108は、遷移判定コードの判定(S108)を行い、状態遷移処理を行う。
【0118】
以上のように、本発明の実施の形態1に係る認証ICタグ100は、遷移要求コマンドを受信した場合のみ、認証処理状態からメモリアクセス状態への状態遷移、又は、メモリアクセス状態から認証処理状態への状態遷移を行う。
【0119】
なお、図5では、認証ICタグ100の初期状態が認証処理状態である場合について説明したが、認証ICタグ100の初期状態がメモリアクセス状態である場合についても同様である。具体的には、図5におけるアクセス要求コマンドの受信待ち状態である場合(S112)から処理が開始される。
【0120】
次に、本発明の実施の形態1に係る認証ICタグ100とホストアクセス装置200とを備える認証システム、及び、ホストアクセス装置200の詳細について説明する。
【0121】
図6は、本発明の実施の形態1に係る認証システムの一例である電子機器300の構成の一例を示すブロック図である。
【0122】
電子機器300は、本体基板301と、アクセサリ機器302とを備える。電子機器300は、例えば、携帯電話機又はデジタルカメラと電池パック、又は、ゲーム本体とコントローラといった機器であり、電池パック及びコントローラなどがアクセサリ機器302に相当する。本発明の実施の形態1に係る認証システムは、本体機器とアクセサリ機器と間での模造品又は不良品などを判別し、安全性の確保することを目的として使用される。
【0123】
本体基板301は、アクセサリ機器302に認証アクセスを行うホストアクセス装置200と電器製品としての動作を行うための機器(図示せず)とを備えている。本体基板301は、例えば、携帯電話機、デジタルカメラ、又は、ゲーム本体として機能する処理部などを備える基板である。
【0124】
アクセサリ機器302は、認証ICタグ100を備える。例えば、アクセサリ機器302は、電池又はコントローラなどである。また、図6に示すように、認証ICタグ100とホストアクセス装置200とは、2本の信号線303及び304で接続されている。
【0125】
信号線303は、認証ICタグ100がホストアクセス装置200から取得する受信データを伝送するための信号線である。また、信号線304は、認証ICタグ100がホストアクセス装置200へ送信する送信データを伝送するための信号線である。
【0126】
ホストアクセス装置200は、図6に示すように、CPU201と、鍵記憶部202と、暗号処理部203と、通信部204と、認証取得部205と、認証結果比較部206とを備えている。ホストアクセス装置200は、公開鍵暗号方式を用いて認証ICタグ100を認証するための認証処理を行う。
【0127】
CPU201は、ホストアクセス装置200の処理を制御する制御部であり、認証ICタグ100へ要求する命令を発行する。例えば、CPU201は、認証ICタグ100の状態を遷移させるための命令を発行する。具体的には、CPU201は、認証ICタグ100の状態を、認証処理状態とメモリアクセス処理状態との間で遷移させるための命令を発行する。
【0128】
また、CPU201は、認証ICタグ100に認証処理を要求する認証命令を発行する。具体的には、CPU201は、暗号処理部203に対して暗号文データの生成を指示する命令を発行する。また、CPU201は、通信部204を介して、認証ICタグ100に対するメモリアクセス命令を発行する。
【0129】
鍵記憶部202は、平文データの暗号に用いる公開鍵(暗号鍵)を記憶しているメモリである。本実施の形態では、鍵記憶部202は、公開鍵を格納している。NTRU暗号方式では、4000ビット程度の鍵長となる。また、RSA又はECCといった暗号方式の場合は、200ビット程度であってもよい。
【0130】
鍵記憶部202は、CPU201の命令を受け、暗号処理部203に暗号鍵を出力する。なお、暗号鍵は、CPU201によって書き換えることができてもよい。
【0131】
暗号処理部203は、CPU201からの命令によって、鍵記憶部202に格納されている鍵データを用いて平文データを暗号化することで、暗号文データを生成する。生成された暗号文データは、通信部204を介して、アクセサリ機器302に送信される。そして、認証ICタグ100は、暗号文データをICタグ受信データとして受け取る。
【0132】
具体的には、暗号処理部203は、公開鍵暗号方式であるNTRU暗号処理を行う。暗号処理部203は、CPU201からの命令を受け、鍵記憶部202に格納されている暗号鍵を用いて、NTRU暗号方式に基づいて平文データを暗号化することで、暗号文データを生成する。
【0133】
なお、平文データは、秘匿に送信すべき対象のデータであり、例えば、CPU201内のメモリに格納されている。あるいは、平文データは、別途専用の記憶領域に格納されていてもよい。
【0134】
通信部204は、本体基板301とアクセサリ機器302とを電気的に接続するインターフェイスである。例えば、通信部204は、電極、コネクタ又は端子台などでよく、あるいは、ランド又はパッドなどの配線パターンでもよい。
【0135】
通信部204が行う通信方式としては、SMBus(System Management Bus)(登録商標)などの同期式通信インターフェイス回路、調歩同期式の通信インターフェイス回路などの種々の通信インターフェイス回路を用いることができる。
【0136】
通信部204は、CPU201によって発行された命令に対応するコマンドを認証ICタグ100に送信する。例えば、通信部204は、CPU201によって認証命令が発行された場合に、認証命令に対応するコマンド(認証要求コマンド)を識別するための識別コードと、暗号文データとを含む認証要求コマンドを、認証ICタグ100に送信する。また、通信部204は、メモリアクセス命令が発行された場合に、メモリアクセス命令に対応するコマンド(アクセス要求コマンド)を識別するための識別コードを含むアクセス要求コマンドを、認証ICタグ100に送信する。
【0137】
なお、認証ICタグ100は、少なくとも認証処理部106とメモリ部104とを備え、ホストアクセス装置200から送信される暗号文データを復号し、ICタグ送信データとして、信号線304を介してホストアクセス装置200に返信する。また、ホストアクセス装置200からの送信データがメモリ部104への書き込みアクセスである場合は、認証ICタグ100は、メモリ部104に記憶するデータを送信してもよい。あるいは、ホストアクセス装置200からの送信データがメモリ部104への読み出しアクセスである場合は、認証ICタグ100は、メモリ部104に記憶されているデータを、ICタグ送信データとして送信してもよい。
【0138】
認証取得部205は、認証ICタグ100から送信された復号文データ(平文データ)を、通信部204を介して受け取り、内部のメモリなどに格納する。
【0139】
認証結果比較部206は、CPU201からの命令を受けて、認証取得部205に格納された復号文データと、暗号処理部203で暗号処理される前の平文データとが一致するか否かを判定する。例えば、認証結果比較部206は、内部に論理積演算を行う論理演算子を備える。そして、認証結果比較部206は、論理演算子により各1ビット単位での比較を行い、全ての比較値が1であれば、全ビット一致となるため、平文データと復号文データとが一致したと判定する。
【0140】
一致の可否は、CPU201に送信される。CPU201は、平文データと復号文データとが一致していれば、認証は問題ないと判断し、アクセサリ機器302は正規品であると判断する。また、平文データと復号文データとが一致しなければ、CPU201は、認証処理は問題あり(失敗)と判断し、アクセサリ機器302が非正規品又は模造品であると判断する。
【0141】
続いて、本発明の実施の形態1に係る認証システムの動作について説明する。
【0142】
図7Aは、本発明の実施の形態1に係る認証システムの動作の一例を示すシーケンス図である。図6で示される認証システムにおいて、本体基板301側のホストアクセス装置200よりアクセサリ機器302側の認証ICタグ100に、コマンドを発行することで所望の動作を実現する。なお、認証ICタグ100は、初期状態が認証処理状態であって、メモリアクセス処理は禁止されているものとする。
【0143】
例えば、ホストアクセス装置200は、アクセサリ機器302が模造品でないかを検出するために、認証アクセスを実施する(S201)。ホストアクセス装置200は、認証アクセスとして、コマンド識別子と暗号文データとを含む認証要求コマンドを生成する。そして、ホストアクセス装置200は、コマンド識別子(例えば、“1111”のビット列)と暗号文データ(公開鍵暗号方式で4000ビット程度。例えば、“1234_56bc_4fbc_ABCD_・・・・_AAAA”)とを認証ICタグ100に送信する(S202)。
【0144】
認証要求コマンドを受信した認証ICタグ100は、暗号文データと内部で保持している秘密鍵とを用いて認証処理を実施する(S203)。認証ICタグ100は、認証処理の結果を表す認証結果データを生成し(S204)、ホストアクセス装置200に返信する(S205)。
【0145】
認証結果データは、例えば、ホストアクセス装置200が認証ICタグ100からの認証結果であると判別するためのコマンド識別子(例えば、“2222”)を含んでいる。また、認証結果データは、暗号文データを復号することで生成された復号文データ(例えば、“ABCD・・・AAAA”)も含んでいる。
【0146】
ホストアクセス装置200は、認証結果データを受け取り、認証が成功したか否かを判定する(S206)。例えば、ホストアクセス装置200は、認証ICタグ100から送信された復号文データと、自装置が記憶している平文データとが一致するか否かを判定する。復号文データと平文データとが一致した場合、ホストアクセス装置200は、認証処理が成功したと判定する。復号文データと平文データとが一致しない場合、ホストアクセス装置200は、認証処理が失敗したと判定する。
【0147】
認証処理が成功した場合は(S206でOK)、ホストアクセス装置200は、認証ICタグ100を正規品であると判断し、詳細な製品情報、例えば、品番、使用頻度などが記憶されたメモリ部104へのアクセスを行う処理への準備を行う(S207)。
【0148】
認証処理が失敗した場合は(S206でNG)、ホストアクセス装置200は、認証ICタグ100を非正規品又は模造品と判断し、該当のアクセサリ機器302を使用できなくする(S208)。
【0149】
ホストアクセス装置200がメモリアクセス処理を行うためには、認証ICタグ100の処理状態を認証処理状態からメモリアクセス処理状態に切り替える必要がある。なぜなら、認証ICタグ100は、認証処理が成功しただけでは、処理状態は遷移せず、認証処理状態のままであり、メモリアクセス処理は禁止されているためである。
【0150】
ホストアクセス装置200は、認証ICタグ100の処理状態を切り替えるため、遷移要求コマンドを生成する(S207)。遷移要求コマンドは、コマンド識別子(例えば、“3333”)と遷移判定コードとを含んでいる。ホストアクセス装置200は、生成した遷移要求コマンドを認証ICタグ100に送信する(S209)。
【0151】
認証ICタグ100は、コマンド識別子を解析することで、ホストアクセス装置200から送信されたコマンドが、遷移要求コマンドであることを確認し、状態遷移処理を実行する(S210)。そして、認証ICタグ100は、遷移要求コマンドに含まれる遷移判定コードを解析することで、状態遷移の許可又は不許可を判定する(S211)。
【0152】
遷移判定コードが不一致であった場合(S211でNG)、認証ICタグ100は、状態遷移を不許可と判断し、認証処理状態を維持する(S212)。遷移判定コードが一致であった場合は(S211でOK)、認証ICタグ100は、処理状態遷移を許可と判断し、認証処理状態からメモリアクセス状態へと遷移する(S213)。
【0153】
そして、認証ICタグ100は、状態遷移の許可又は不許可に関わらず、遷移結果データをホストアクセス装置200に返信する(S214)。例えば、遷移結果データは、現在の処理状態を示す値であり、メモリアクセス状態であれば“T0”を返信し、認証処理状態であれば“T1”を返信する(図2参照)。例えば、認証ICタグ100は、認証処理状態から、遷移不許可で認証処理状態に回帰した場合は、“T1”を返信する。
【0154】
ホストアクセス装置200は、認証ICタグ100からの状態遷移結果データを受け取り、認証ICタグ100がメモリアクセス状態であることを確認する。そして、ホストアクセス装置200は、アクセス要求コマンドを生成する(S215)。アクセス要求コマンドは、コマンド識別子(例えば、“ABCD”)と、メモリアドレスと、Read/Write属性信号(読み書き判定データ)と、書き込みデータとを含んでいる。なお、書き込みデータは、読み出し要求である場合は、アクセス要求コマンドに含まれない。
【0155】
次に、ホストアクセス装置200は、生成したアクセス要求コマンドを送信する(S216)。認証ICタグ100は、アクセス要求コマンドを受け取り、メモリアクセス処理を実行する(S217)。
【0156】
アクセス要求コマンドがWrite属性の場合、すなわち、メモリ部104への書き込みを要求するコマンドである場合、認証ICタグ100は、該当のメモリアドレスが示す領域に、送信した書き込みデータを書き込む。また、アクセス要求コマンドがRead属性の場合、すなわち、メモリ部104への読み出しを要求するコマンドである場合、認証ICタグ100は、該当のメモリアドレスが示す領域から、データを読み出す。
【0157】
そして、認証ICタグ100は、ホストアクセス装置200に、書き込み完了結果、又は、読み出したデータを返信する(S218、S219)。
【0158】
なお、メモリアクセス状態から認証処理状態への処理切り替えも同様の手順で実施される。
【0159】
ここで、図7Bを用いて、状態遷移を不許可にすることにより、認証処理を連続して行う例について説明する。図7Bは、本発明の実施の形態1に係る認証システムの動作の一例を示すシーケンス図である。図6で示される認証システムにおいて、本体基板301側のホストアクセス装置200よりアクセサリ機器302側の認証ICタグ100に、コマンドを発行することで所望の動作を実現する。なお、認証ICタグ100は、初期状態が認証処理状態であって、メモリアクセス処理は禁止されているものとする。また、以下では、図7Aと同じ処理には同じ参照符号を付し、以下では、説明を省略する。
【0160】
ホストアクセス装置200は、アクセサリ機器302が模造品でないかを検出するために、認証アクセスを実施する(S201〜S206)。認証処理が成功した場合は(S206でOK)、ホストアクセス装置200は、通常、図7Aに示すように、認証ICタグ100を正規品であると判断し、詳細な製品情報、例えば、品番、使用頻度などが記憶されたメモリ部104へのアクセスを行う処理への準備を行う(S207)。
【0161】
このとき、ホストアクセス装置200が、連続して認証処理を試みる場合が存在する。例えば、ホストアクセス装置200は、1回目の認証処理の後にメモリアクセス処理を行わなかった場合に、再度、メモリアクセス処理を行う前に認証処理を行う場合などである。
【0162】
このとき、図7Bに示すように、ホストアクセス装置200は、認証ICタグ100の処理状態を切り替えるため、遷移要求コマンドを生成する(S207a)。遷移要求コマンドは、コマンド識別子(例えば、“3333”)と偽の遷移判定コードとを含んでいる。ホストアクセス装置200は、生成した遷移要求コマンドを認証ICタグ100に送信する(S209a)。
【0163】
認証ICタグ100は、コマンド識別子を解析することで、ホストアクセス装置200から送信されたコマンドが、遷移要求コマンドであることを確認し、状態遷移処理を実行する(S210a)。そして、認証ICタグ100は、遷移要求コマンドに含まれる遷移判定コードを解析することで、状態遷移の許可又は不許可を判定する(S211a)。
【0164】
図7Bの例では、上述したように、ホストアクセス装置200は、認証ICタグ100を認証状態にするために、偽の遷移判定コードを送信する。認証ICタグ100は、偽の遷移判定コードを受信するので、状態遷移は不許可であると判断し、再度、認証処理状態へ回帰する。
【0165】
そして、認証ICタグ100は、遷移処理は不許可であり、元の状態(具体的には、認証処理状態)に回帰したことを示す遷移結果データをホストアクセス装置200に送信する(S214a)。具体的には、認証ICタグ100は、認証処理状態を示す“T1”を返信する。
【0166】
ホストアクセス装置200は、認証ICタグ100から返信された遷移結果データが“T1”であることを検出すると、認証ICタグ100が認証処理状態であることを認識し、再度、認証アクセスを実施する(S201a)。
【0167】
例えば、ホストアクセス装置200は、認証アクセスとして、コマンド識別子と暗号文データとを含む認証要求コマンドを生成する。そして、ホストアクセス装置200は、コマンド識別子(例えば、“1111”のビット列)と暗号文データ(公開鍵暗号方式で4000ビット程度。例えば、“1234_56bc_4fbc_ABCD_・・・・_AAAA”)とを認証ICタグ100に送信する(S202a)。このとき、1度目の暗号文データと2度目の暗号文データとは、同じものである必要はない。
【0168】
認証要求コマンドを受信した認証ICタグ100は、暗号文データと内部で保持している秘密鍵とを用いて認証処理を実施する(S203a)。認証ICタグ100は、認証処理の結果を表す認証結果データを生成し(S204a)、ホストアクセス装置200に返信する(S205a)。
【0169】
これにより、認証処理を連続して実現することを可能とする。
【0170】
なお、図7Bの例では、ホストアクセス装置200は、偽の遷移判定コードを送信したが、認証処理状態に遷移させるための遷移判定コードを送信してもよい。また、ホストアクセス装置200は、遷移判定コードを送信しなくてもよい。認証ICタグ100では、遷移判定コードが受信されないので、状態遷移は不許可であると判断することができる。
【0171】
ここで、従来の認証ICタグが誤動作を起こす例について説明する。図8は、従来の認証ICタグが誤動作を起こす場合の認証システムの動作の一例を示すシーケンス図である。
【0172】
例えば、ホストアクセス装置が認証アクセスを行う際に、認証ICタグがコマンド識別子“1111”を通信エラーによって取りこぼしてしまうことが考えられる。このとき、ホストアクセス装置は、認証ICタグの通信エラーを検知することはできないため、継続して暗号文データを送信し続ける。
【0173】
暗号文データに、アクセス要求コマンドの識別子である“ABCD”が含まれる場合、認証ICタグは、暗号文データを順次受信する中で、メモリアクセスのコマンド識別子である“ABCD”を暗号文データ中から誤検出する。
【0174】
誤検出した認証ICタグは、アクセス要求コマンドが送信されたと判断し、メモリアクセス処理を実施し、メモリデータをホストアクセス装置に返信する。
【0175】
また、メモリアクセス処理が実施されずに、メモリデータの読み出しが行われない場合であっても、認証ICタグは、メモリアクセス要求を受け付けたと誤認しているので、メモリアクセス処理が失敗したことを示すアクセス不許可命令をホストアクセス装置に返信する。このため、誤動作は、必ず発生する。
【0176】
これに対して、本発明の実施の形態1に係る認証システムでは、認証ICタグ100は、認証処理状態である場合には、たとえ認証コマンド識別子を取りこぼし、暗号文データ中の“ABCD”をアクセス要求のコマンド識別子であると判定した場合であっても、メモリアクセス処理は実行されない。また、認証ICタグ100は、アクセス要求コマンドを受信したと誤認しないので、メモリアクセス処理が失敗したことを示すアクセス不許可命令も返信しない。
【0177】
このようにして、本発明の実施の形態1に係る認証ICタグ100は、誤動作を防止することができる。特に、公開鍵暗号方式を用いた場合には、暗号文データが長くなるので、暗号文データの中にコマンド識別子と一致するコードが含まれる可能性が高く、誤動作を起こす可能性も高くなる。したがって、公開鍵暗号方式を利用する認証システムでは、本発明に係る認証ICタグ100は、格別な効果を奏する。
【0178】
続いて、本発明の実施の形態1に係る認証システムの動作の一例について説明する。図9A〜図9Dは、本発明の実施の形態1に係る認証システムの状態遷移の一例を示すフローチャートである。
【0179】
本発明の実施の形態1に係る認証ICタグ100は、電源起動後、又は、リセット解除後の初期状態において、コマンド受付可能状態となる。起動時のコマンド受付状態は、認証処理状態、又は、メモリアクセス状態のいずれかとなるが、いずれの状態から起動されるかは、認証ICタグ100の起動方法によって、切り替えることができる。
【0180】
図9Aは、初期状態として、認証ICタグ100が認証要求コマンド受付状態、すなわち、認証処理状態にある場合を示すフローチャートである。以下では、図9Aを用いて、外部のホストアクセス装置200が認証ICタグ100にアクセスする場合の手順を説明する。
【0181】
認証処理状態(S300)では、認証ICタグ100は、認証要求コマンドのみを受け付ける。認証要求コマンド以外のコマンドは、通信エラーなどで誤検出した場合であっても、受け付けない。なお、コマンドを受け付けるとは、取得したコマンドに従った処理を行うことである。つまり、認証処理状態である認証ICタグ100は、認証要求コマンドを受信した場合に、認証処理を行うことはできるが、他のコマンドを受信した場合であっても、メモリアクセス処理又は状態遷移処理を行うことはできない。
【0182】
ホストアクセス装置200は、識別コードと暗号文データとを含む認証要求コマンドを発行し、認証ICタグ100に送信する。認証ICタグ100は、暗号文データの全てを取得して、認証処理を実施し、認証結果をホストアクセス装置200に送信する(S301)。具体的には、認証ICタグ100は、暗号文データを復号することで、復号文データを生成し、生成した復号文データをホストアクセス装置200に送信する。そして、ホストアクセス装置200は、平文データと受信した復号文データとが一致するか否かを判定することで、認証処理が成功したか否かを判定する。
【0183】
認証処理が成功すると(S301でYes)、認証ICタグ100は、遷移要求コマンド受付状態(遷移処理状態とも記載する)となる(S302)。遷移要求コマンド受付状態では、認証ICタグ100は、遷移要求コマンド又は処理状態確認コマンド(図2参照)を受け付ける。これら以外のコマンドは、通信エラーなどで誤検出した場合であっても、受け付けない。
【0184】
ホストアクセス装置200は、識別コードと遷移判定コードとを含む遷移要求コマンドを発行し、認証ICタグ100に送信する。認証ICタグ100は、遷移判定コードを全て取得して、遷移判定コードが有効であるか否かを判定する。そして、認証ICタグ100は、遷移判定コードが有効であった場合に、処理状態を切り替え、ホストアクセス装置200に状態遷移結果データを送信する(S303)。なお、遷移判定コードが有効であるとは、認証ICタグ100が受信した遷移判定コードが、遷移処理の許可を示すコードに一致することを意味する。
【0185】
遷移判定コードが有効である場合(S303でYes)、認証ICタグ100の処理状態が認証処理状態からメモリアクセス許可状態に切り替わる(S304)。メモリアクセス許可状態では、認証ICタグ100は、アクセス要求コマンドのみを受け付ける。アクセス要求コマンド以外のコマンドは、通信エラーなどで誤検出した場合であっても、受け付けない。
【0186】
ホストアクセス装置200は、識別コードと、メモリアドレスと、読み書き判定データ(Read/Write属性信号)と、書き込みデータ(書き込み要求の場合)とを含むアクセス要求コマンドを発行し、認証ICタグ100に送信する。認証ICタグ100は、読み書き判定データが書き込み属性である場合は、アクセス要求コマンドに含まれるメモリアドレスが示すメモリ部104の領域に、書き込みデータを書き込む(S305)。また、読み書き判定データが読み出し属性である場合には、アクセス要求コマンドに含まれるメモリアドレスが示すメモリ部104の領域から、データを読み出し、読み出したデータをホストアクセス装置200に送信する(S305)。
【0187】
以上のように、本発明の実施の形態1に係る認証システムでは、認証ICタグ100は、認証処理状態(S300)、遷移要求コマンド受付状態(S302)、メモリアクセス状態(S304)の順に遷移する。各状態では、対応するコマンドのみを受け付け、受け付けたコマンドの処理が完了した場合に、次の状態に遷移する。つまり、各状態では、対応する処理のみが許可されており、他の処理は禁止されているので、認証ICタグ100の誤動作が防止される。
【0188】
なお、遷移要求コマンド受付状態では、直前の処理状態である認証処理状態が受け付け可能なコマンドを受け付けてもよい。すなわち、遷移要求コマンド受付状態である認証ICタグ100が、認証要求コマンドを受け付けた場合、認証処理を実行してもよい。これにより、本発明の実施の形態1に係る認証システムは、連続して認証処理を行うことができる。
【0189】
続いて、認証ICタグ100の初期状態が、メモリアクセス状態である場合について説明する。
【0190】
図9Bは、初期状態として、認証ICタグ100がメモリアクセス状態にある場合を示すフローチャートである。以下では、図9Bを用いて、外部のホストアクセス装置200が認証ICタグ100にアクセスする場合の手順を説明する。
【0191】
メモリアクセス状態(S310)では、認証ICタグ100は、アクセス要求コマンドのみを受け付ける。アクセス要求コマンド以外のコマンドは、通信エラーなどで誤検出した場合であっても、受け付けない。
【0192】
ホストアクセス装置200は、識別コードと、メモリアドレスと、読み書き判定データ(Read/Write属性信号)と、書き込みデータ(書き込み要求の場合)とを含むアクセス要求コマンドを発行し、認証ICタグ100に送信する。認証ICタグ100は、読み書き判定データが書き込み属性である場合は、アクセス要求コマンドに含まれるメモリアドレスが示すメモリ部104の領域に、書き込みデータを書き込む(S311)。また、読み書き判定データが読み出し属性である場合は、アクセス要求コマンドに含まれるメモリアドレスが示すメモリ部104の領域からデータを読み出し、読み出したデータをホストアクセス装置200に送信する(S311)。
【0193】
メモリアクセス処理が完了すると(S311でYes)、認証ICタグ100は、遷移要求コマンド受付状態となる(S312)。遷移要求コマンド受付状態では、認証ICタグ100は、遷移要求コマンド又は処理状態確認コマンド(図2参照)を受け付ける。これら以外のコマンドは、通信エラーなどで誤検出した場合であっても、受け付けない。
【0194】
ホストアクセス装置200は、識別コードと遷移判定コードとを含む遷移要求コマンドを発行し、認証ICタグ100に送信する。認証ICタグ100は、遷移判定コードを全て取得して、遷移判定コードが有効であるか否かを判定する。そして、認証ICタグ100は、遷移判定コードが有効であった場合に、処理状態を切り替え、ホストアクセス装置200に状態遷移結果データを送信する(S313)。なお、遷移判定コードが有効であるとは、認証ICタグ100が受信した遷移判定コードが、遷移処理の許可を示すコードに一致することを意味する。
【0195】
遷移判定コードが有効である場合(S313でYes)、認証ICタグ100の処理状態がメモリアクセス状態から認証処理状態に切り替わる(S314)。認証処理状態では、認証ICタグ100は、認証要求コマンドのみを受け付ける。認証要求コマンド以外のコマンドは、通信エラーなどで誤検出した場合であっても、受け付けない。
【0196】
ホストアクセス装置200は、識別コードと暗号文データとを含む認証要求コマンドを発行し、認証ICタグ100に送信する。認証ICタグ100は、暗号文データの全てを取得して、認証処理を実施し、認証結果をホストアクセス装置200に送信する。具体的には、認証ICタグ100は、暗号文データを復号することで、復号文データを生成し、生成した復号文データをホストアクセス装置200に送信する。そして、ホストアクセス装置200は、平文データと受信した復号文データとが一致するか否かを判定することで、認証処理が成功したか否かを判定する(S315)。
【0197】
以上のように、本発明の実施の形態1に係る認証システムでは、認証ICタグ100は、メモリアクセス状態(S310)、遷移要求コマンド受付状態(S312)、認証処理状態(S314)の順に遷移することもできる。図9Aの場合と同様に、各状態では、対応するコマンドのみを受け付け、受け付けたコマンドの処理が完了した場合に、次の処理に遷移する。つまり、各状態では、対応する処理のみが許可されており、他の処理は禁止されているので、認証ICタグ100の誤動作が防止される。
【0198】
なお、遷移要求コマンド受付状態では、直前の処理状態であるメモリアクセス状態が受け付け可能なコマンドを受け付けてもよい。すなわち、遷移要求コマンド受付状態である認証ICタグ100が、アクセス要求コマンドを受け付けた場合、メモリアクセス処理を実行してもよい。これにより、本発明の実施の形態1に係る認証システムは、連続してメモリアクセス処理を行うことができる。
【0199】
続いて、認証ICタグ100の初期状態が、認証処理状態である場合の別の例について説明する。
【0200】
図9Cは、初期状態として、認証ICタグ100が認証要求コマンド受付状態、すなわち、認証処理状態にある場合の別の例を示すフローチャートである。以下では、図9Cを用いて、外部のホストアクセス装置200が認証ICタグ100にアクセスする場合の手順の別の例を説明する。
【0201】
図9Cの例では、認証ICタグ100は、遷移処理が許可されなかった場合に、直前の処理状態に復帰する点が、図9Aの例と異なっている。以下では、異なる点を中心に説明し、同じ点は説明を省略する。
【0202】
遷移要求コマンド受付状態である認証ICタグ100は、遷移要求コマンドを取得した場合に、遷移判定コードが有効であるか否かを判定する。遷移判定コードが有効でない場合、遷移処理は許可されないため(S400でNo)、認証ICタグ100の処理状態は、遷移要求コマンド受付状態の前の状態、具体的には、認証処理状態に戻る。
【0203】
なお、このとき、認証ICタグ100は、認証ICタグ100の現在の状態が認証処理状態であることを、ホストアクセス装置200に送信することで、遷移処理が不許可であったことを通知する。つまり、認証ICタグ100は、遷移要求コマンドに対する返信データとして、現在の状態が認証処理状態及びメモリアクセス状態のいずれであるかのみを返信する。あるいは、認証ICタグ100は、不許可状態を示すデータを返信してもかまわない。
【0204】
これにより、ホストアクセス装置200は、現行の処理を連続して行いたい場合は、処理状態の切り替えを不許可にすることにより実現される。なお、認証処理の結果が正しいか正しくないかと、状態遷移処理の許可又は不許可とには全く依存はない。つまり、認証処理は、処理状態切り替えが不許可であっても正しい認証結果を外部に返信する。
【0205】
また、ホストアクセス装置200は、処理状態確認コマンドを発行し、処理状態遷移コマンド受付状態の認証ICタグ100に送信することで、処理状態を遷移せずに、現在の処理状態を確認することも可能である。
【0206】
例えば、認証ICタグ100の現在の処理状態が認証処理状態である場合、認証ICタグ100は、図2に示す返信データ“T1”を返信する。また、現在の処理状態がメモリアクセス状態である場合、認証ICタグ100は、図2に示す返信データ“T0”を返信する。これにより、外部のホストアクセス装置200は、認証ICタグ100の処理状態を確認することができる。
【0207】
続いて、認証ICタグ100の初期状態が、メモリアクセス状態である場合の別の例について説明する。
【0208】
図9Dは、初期状態として、認証ICタグ100がアクセス要求コマンド受付状態、すなわち、メモリアクセス状態にある場合の別の例を示すフローチャートである。以下では、図9Dを用いて、外部のホストアクセス装置200が認証ICタグ100にアクセスする場合の手順の別の例を説明する。
【0209】
図9Dの例では、認証ICタグ100は、遷移処理が許可されなかった場合に、直前の処理状態に復帰する点が、図9Bの例と異なっている。以下では、異なる点を中心に説明し、同じ点は説明を省略する。
【0210】
遷移要求コマンド受付状態である認証ICタグ100は、遷移要求コマンドを取得した場合に、遷移判定コードが有効であるか否かを判定する。遷移判定コードが有効でない場合、遷移処理は許可されないため(S400でNo)、認証ICタグ100の処理状態は、遷移要求コマンド受付状態の前の状態、具体的には、メモリアクセス状態に戻る。
【0211】
なお、このとき、認証ICタグ100は、認証ICタグ100の現在の状態がメモリアクセス状態であることを、ホストアクセス装置200に送信することで、遷移処理が不許可であったことを通知する。つまり、認証ICタグ100は、遷移要求コマンドに対する返信データとして、現在の状態が認証処理状態及びメモリアクセス状態のいずれであるのかのみを返信する。あるいは、認証ICタグ100は、不許可状態を示すデータを返信してもかまわない。
【0212】
これにより、図9Cの場合と同様に、ホストアクセス装置200は、現行の処理を連続して行いたい場合は、処理状態の切り替えを不許可にすることにより実現される。
【0213】
なお、認証ICタグ100は、遷移要求コマンド受付状態だけでなく、認証処理状態又はメモリアクセス状態の場合にも、処理状態確認コマンドを受け付けることができてもよい。これにより、ホストアクセス装置200は、認証処理及びメモリアクセスのいずれかの処理を実行する前に、認証ICタグ100の現在の状態を確認することができる。
【0214】
ここで、本発明の実施の形態1に係る認証システムが実行する公開鍵暗号方式の一例について説明する。図10は、本発明の実施の形態1に係る認証システムにおいてホストアクセス装置200側での認証処理を説明するための図である。
【0215】
ホストアクセス装置200では、暗号処理部203は、鍵記憶部202に格納された公開鍵を用いて平文データを暗号化することで、暗号文データを生成する。ホストアクセス装置200は、通信部204を介して、生成した暗号文データを、認証処理を要求するコマンドの識別コードとともに、ICタグ受信データとして認証ICタグ100に送信する。
【0216】
認証ICタグ100では、通信部101を介して、識別コードと暗号文データとを取得する。コマンド識別部102が識別コードを解析することで、認証要求であることを判別すると、認証処理部106は、秘密鍵を用いて暗号文データを復号することで、復号文データを生成する。認証ICタグ100は、通信部101を介して、生成した復号文データを、ICタグ送信データとしてホストアクセス装置200に返信する。
【0217】
なお、秘密鍵は、例えば、メモリ部104の外部からの読み出し及び書き込みが禁止されている領域に格納されている。あるいは、認証処理部106が、外部からの読み出し及び書き込みが禁止されたメモリを有し、当該メモリ内に秘密鍵を格納していてもよい。
【0218】
ホストアクセス装置200では、通信部204を介して、認証取得部205が復号文データを取得する。そして、認証結果比較部206は、平文データと復号文データとを比較する。平文データと復号文データとが一致していた場合、ホストアクセス装置200は、認証ICタグ100の認証が成功したと判定する。また、平文データと復号文データとが一致しなかった場合、ホストアクセス装置200は、認証ICタグ100の認証が失敗したと判定する。
【0219】
以上のように、本発明の実施の形態1に係る認証システムは、認証ICタグ100とホストアクセス装置200とを備え、ホストアクセス装置200は、公開鍵暗号方式を用いて認証ICタグ100の認証を行う。認証ICタグ100は、認証処理状態とメモリアクセス状態とを有し、ホストアクセス装置200から送信されるコマンドに応じて、認証処理状態とメモリアクセス状態との間で状態遷移を行う。認証処理状態の認証ICタグ100は、ホストアクセス装置200からメモリ部104へのメモリアクセス処理が禁止され、認証処理は許可されている。
【0220】
これにより、処理状態の遷移を制御することによって、通信エラーなどにより、コマンド識別子を取りこぼすなどの問題が発生した際に、公開鍵で暗号化された暗号文データは非常に長いために、暗号文データ中にコマンド識別子を示すデータが存在していた場合であっても、誤動作を防止することができる。例えば、ホストアクセス装置200からの意図しないメモリアクセスを防ぐことが可能となる。
【0221】
例えば、データ取りこぼしにより、遷移要求コマンドのコマンド識別子と暗号文データの一部とが一致した場合、コマンド識別子に続くデータが遷移判定コードとみなされるが、この遷移判定コードは通常有効ではないので、処理状態不許可となり、現行の処理をもう一度実行可能な状態となるので問題ない。具体的には、遷移判定コードのビット長を十分長くすることで、処理状態の切り替えを防ぐことが可能となる。
【0222】
このように、本発明の実施の形態1では、認証処理状態においてメモリアクセス処理が禁止されているため、認証処理状態に受け取ったデータの一部をコマンド識別子と誤検出した場合でも、メモリアクセス処理を防止することができ、認証ICタグの誤動作を防止することができる。なお、特に、認証処理に公開鍵暗号方式を用いる場合は、暗号文データが長くなることが多いので、コマンド識別子の誤検出を起こす確率が高くなる。このため、本発明の実施の形態1による認証ICタグの誤動作の防止という効果は、より格別な効果である。
【0223】
(実施の形態2)
本発明の実施の形態2に係るホストアクセス装置は、公開鍵を用いて平文データを暗号化することで、暗号文データを生成する暗号化部と、暗号文データを解析することで、コマンドを識別するための識別コードと一致するデータが、暗号文データに含まれているか否かを判定する解析部と、識別コードと一致するデータが暗号文データに含まれていると判定された場合に、識別コードを変更することで、変更後識別コードを生成する変更部とを備えることを特徴とする。
【0224】
図11は、本発明の実施の形態2に係る認証システムの一例である電子機器400の構成の一例を示すブロック図である。
【0225】
電子機器400は、本体基板401と、アクセサリ機器402とを備える。電子機器400は、実施の形態1に係る電子機器300と同様に、例えば、携帯電話機又はデジタルカメラなどである。なお、以下では、実施の形態1と同じ構成については同じ参照符号を付して説明を省略し、異なる点を中心に説明する。
【0226】
本体基板401は、アクセサリ機器402に認証アクセスを行うホストアクセス装置500と、電器製品としての動作を行うための機器(図示せず)とを備えている。アクセサリ機器402は、認証ICタグ600を備える。認証ICタグ600の構成の例については、後で説明する。
【0227】
ホストアクセス装置500は、実施の形態1に係るホストアクセス装置200と比較して、新たに、暗号文データ解読部507と、コマンド識別子変更部508とを備える点が異なっている。
【0228】
暗号文データ解読部507は、解析部の一例であり、暗号文データを解析することで、1つ以上のコマンドを識別するための識別コードと一致するデータが暗号文データに含まれているか否かを判定する。つまり、暗号文データ解読部507は、暗号処理部203によって暗号化された暗号文データを解読し、コマンド識別子と一致するデータが暗号文データに含まれているか否かを検知する。コマンド識別子と一致するデータが検知された場合、暗号文データ解読部507は、コマンド識別子と一致したデータを、コマンド識別子変更部508に送信する。ここで、識別コードは、例えば、図2に示すような認証処理、遷移処理、メモリアクセス処理及び処理状態確認を要求するためのコマンドのそれぞれに対応する識別子である。
【0229】
コマンド識別子変更部508は、識別コードと一致するデータが暗号文データに含まれていると判定された場合に、識別コードを変更することで、変更後識別コードを生成する。具体的には、コマンド識別子変更部508は、暗号文データ解読部507から受け取ったデータから、暗号文データの一部と一致しない新しいコマンド識別子を生成する。そして、コマンド識別子変更部508は、通信部204を介して、認証ICタグ600に送信する。
【0230】
例えば、暗号文データ解読部507は、認証要求コマンドのコマンド識別子が“1111”である場合に、暗号文データ中に“1111”というデータ列が存在していることを検出する。この場合に、コマンド識別子変更部508は、認証要求コマンドのコマンド識別子を“1111”から、例えば、“1234”に変更して、認証ICタグ600に送信する。
【0231】
暗号文データ解読部507(又は、CPU201)は、例えば、識別子変更要求コマンドを生成して、認証ICタグ600に送信する。識別子変更要求コマンドは、識別コードの変更を要求するための識別コードと、変更前の識別コードと、変更後の識別コードとを含んでいる。あるいは、識別子変更要求コマンドは、変更前の識別コードの代わりに、変更前の識別コードを特定するための他の情報を含んでいてもよい。
【0232】
なお、ホストアクセス装置500は、例えば、認証ICタグ600から識別子を変更したことを表す通知を受け取った後、CPU201が、通信部204を介して、認証要求コマンドを認証ICタグ600に送信する。
【0233】
このように、本発明の実施の形態2に係るホストアクセス装置500は、暗号文データの一部に一致しているコマンド識別子を、前もって認証ICタグ600に送信する。このため、認証ICタグ600が、仮に、認証処理コマンドの識別子を通信エラーなどにより取りこぼしたとしても、暗号文データには、認証ICタグ600が認識可能な識別子に一致するデータが含まれていないので、認証ICタグ600の誤動作を防止することができる。
【0234】
なお、新規のコマンド識別子は、再度、暗号文データ解読部507に送信され、暗号文データ解読部507は、新規のコマンド識別子が暗号文データの別のデータ列と一致しないかを確認してもよい。
【0235】
図12は、本発明の実施の形態2に係る認証ICタグ600の構成の一例を示すブロック図である。本発明の実施の形態2に係る認証ICタグ600は、実施の形態1に係る認証ICタグ100と比較して、新たに、識別コード変更部611を備える点が異なっている。
【0236】
識別コード変更部611は、現在のコマンド識別子を、ホストアクセス装置500から送られてきた新規のコマンド識別子に変更する。例えば、コマンド識別部102が、識別子変更要求コマンドを取得し、変更前の識別コードと変更後の識別コードとを識別コード変更部611に出力する。識別コード変更部611は、識別コード記憶部103に格納されている識別コードであって、変更前の識別コードに一致する識別コードを、変更後の識別コードに置き換える。
【0237】
識別コード変更部611は、識別コードの変更を完了した後、出力データ制御部109及び通信部101を介して、ホストアクセス装置500に、識別子変更処理が完了したことを通知する。
【0238】
これにより、認証ICタグ600は、仮に、認証処理コマンドの識別子を通信エラーなどにより取りこぼしたとしても、暗号文データには、認証ICタグ600が認識可能な識別子に一致するデータが含まれていないので、認証ICタグ600の誤動作を防止することができる。
【0239】
なお、本発明の実施の形態2に係る認証ICタグ600は、処理状態遷移制御部108を備えていなくてもよい。つまり、認証ICタグ600の状態は、従来のように、認証処理状態とメモリアクセス状態とに排他的に分かれていなくてもよい。つまり、本発明の実施の形態2では、ホストアクセス装置200が、生成した暗号文データの内容に基づいてコマンド識別子を変更するので、認証ICタグ600は、暗号文データの一部をコマンド識別子であると誤認することを防止することができる。
【0240】
以上、本発明に係る認証ICタグ、ホストアクセス装置、認証システム及び認証方法について、実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を当該実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
【0241】
例えば、図6又は図11に示すホストアクセス装置200及び500は、鍵記憶部202、暗号処理部203、認証結果比較部206、認証取得部205、暗号文データ解読部507及びコマンド識別子変更部508を、ハードウェア構成で実現している。これに対して、図13に示すホストアクセス装置200aのように、これらの処理部をソフトウェアとして実現してもよい。つまり、図13に示すように、ホストアクセス装置200aは、CPU201aと、通信部204とを備えていてもよい。
【0242】
ホストアクセス装置200aは、例えば、所定の演算処理を実行するCPU201aと、所定の制御プログラムが記憶されたROM(図示せず)と、データを一時的に記憶するRAM(図示せず)と、これらの周辺回路などとを備えている。そして、CPU201aは、ROMに記憶された制御プログラムを実行することにより、鍵記憶部202、暗号処理部203、認証取得部205、認証結果比較部206として機能する。
【0243】
また、図6又は図11に示す電子機器300及び400は、本体基板301又は401とアクセサリ機器302又は402とを2本の信号線303及び304で物理的に接続している。これに対して、図14に示す電子機器300aのように、本体基板301aとアクセサリ機器302aとを1本の信号線303aで物理的に接続していてもよい。すなわち、認証ICタグ100とホストアクセス装置200とは、1本の信号線303aを介してデータの通信を行ってもよい。言い換えると、認証ICタグ100は、入力用の信号線と出力用の信号線とを1本の信号線303aによって兼用していてもよい。
【0244】
また、上記の各実施の形態では、図6又は図11などに示すように、認証ICタグ100とホストアクセス装置200とは、1本以上の物理的な信号線(有線)を介して、通信を行っている。つまり、上記の各実施の形態では、接触型の認証システムについて説明した。これに対して、本発明の実施の形態の変形例に係る認証システムは、非接触型の認証システムとして実現することもできる。
【0245】
図15は、本発明の実施の形態の変形例に係る非接触型の認証システムの構成の一例を示す図である。
【0246】
図15に示すように、本発明の実施の形態の変形例に係る非接触型の認証システムは、非接触型認証ICタグ700と、非接触型ホストアクセス装置710とを備える。非接触型認証ICタグ700は、認証ICタグ100と、アンテナ701とを備える。非接触型ホストアクセス装置710は、ホストアクセス装置200と、アンテナ711とを備える。
【0247】
ホストアクセス装置200と認証ICタグ100とは、無線通信を行う。すなわち、ホストアクセス装置200から送信されるデータは、アンテナ711から無線で送信される。そして、非接触型認証ICタグ700は、送信されたデータをアンテナ701で受信し、認証ICタグ100に送信する。
【0248】
また、認証ICタグ100から送信されるデータは、アンテナ701から無線で送信される。そして、非接触型ホストアクセス装置710は、送信されたデータをアンテナ711で受信し、ホストアクセス装置200に送信する。
【0249】
無線通信の方式は、非接触ICカード規格などで用いられる近距離通信規格NFCなど種々の通信インターフェイス回路を用いることができる。また、通信速度及び通信周波数は、一般的な規格に準拠したもので通信可能である。
【0250】
例えば、ホストアクセス装置200内のCPU201により発行された命令によって、暗号処理部203が生成した暗号文データは、ホストアクセス装置200の通信部204を経由し、アンテナ711に送られる。そして、アンテナ711は、暗号文データを無線通信により送信し、非接触型認証ICタグ700のアンテナ701が、送信された暗号文データを受信する。
【0251】
なお、アンテナ701及び711は、送信アンテナとして、特定の方向に電波を放射する指向性アンテナである。例えば、アンテナ701及び711は、振幅の変化した、又は、変化していない搬送波を受け取り、電波として空間に放射する。また、アンテナ701及び711は、空間を伝播してきた電波を受信する受信アンテナとしても機能する。
【0252】
具体的な認証処理、メモリアクセス処理、及び、状態遷移処理などは、上述の実施の形態と同様である。
【0253】
このように、本発明の実施の形態の変形例に係る認証システムのように、ホストアクセス装置と認証ICタグとは、非接触型であってもよい。言い換えると、ホストアクセス装置と認証ICタグとは、無線通信を行ってもよい。
【0254】
また、図16に示すように、認証ICタグは、処理状態に対応する出力データ以外の出力データを固定してもよい。具体的には、認証処理状態である認証ICタグは、メモリアクセス処理が行われた場合に出力する出力データを予め定められた値に固定する。また、メモリアクセス状態である認証ICタグは、認証処理が行われた場合に出力する出力データを予め定められた値に固定する。
【0255】
図16は、本発明の実施の形態の変形例に係る認証ICタグ100aの構成の一例を示すブロック図である。認証ICタグ100aは、図1に示す認証ICタグ100と比較して、さらに、セレクタ111a及び111bを備える点が異なっている。
【0256】
セレクタ111aは、処理状態遷移制御部108からの制御に基づいて、認証結果信号及び固定値のいずれかを選択する。具体的には、認証ICタグ100aが認証処理状態である場合は、セレクタ111aは、認証処理結果信号を選択する。また、認証ICタグ100aがメモリアクセス状態である場合は、セレクタ111aは、固定値、例えば、0を選択する。
【0257】
セレクタ111bは、処理状態遷移制御部108からの制御に基づいて、記憶データ読み出し信号及び固定値のいずれかを選択する。具体的には、認証ICタグ100aがメモリアクセス状態である場合は、セレクタ111bは、記憶データ読み出し信号を選択する。また、認証ICタグ100aが認証処理状態である場合は、セレクタ111bは、固定値、例えば、0を選択する。
【0258】
このように、認証ICタグ100aは、現行の処理状態でない側の出力を固定する。これにより、例えば、出力データ制御部109が、出力すべきデータの選択を誤っても、外部に出力データが漏洩することを防ぐことができる。
【0259】
また、上記の実施の形態では、認証ICタグは、暗号文データを全て取得した後、復号を行う構成について説明したが、認証ICタグは、暗号文データを取得する度に、復号を行ってもよい。
【0260】
図17は、本発明の実施の形態の変形例に係る認証ICタグ100の動作の一例を示すフローチャートである。なお、図17は、認証ICタグ100は、初期状態が認証処理状態である場合の例について示している。以下では、図5に示す処理と異なる点を中心に説明し、同じ点は説明を省略する。
【0261】
認証要求コマンドの識別コードを取得した場合、通信部101は、暗号文データの受信を行う(S102)。なお、ホストアクセス装置200は、接触/非接触のインターフェイスに関わらず、規定のビット単位でデータを送受信する。言い換えると、通信部101は、ホストアクセス装置200から、公開鍵を用いて暗号化された暗号文データを所定の通信単位で取得する。例えば、調歩同期式などの通信方式で通信する場合、1回の通信で送信可能なデータは8ビットとなる。
【0262】
このように、認証ICタグ100の通信部101は、Nビット単位で認証要求コマンドを受信する。認証に必要な暗号文は、例えば、4000ビット程度のビット長であるため、認証ICタグ100は、複数回に分けて暗号文データを受け取る。具体的には、8ビット単位での通信である場合は、暗号文データの送受信だけで、500回の通信を実施する。
【0263】
通信部101は、暗号文データを8ビット単位で受け取ると、受け取った暗号文データを認証処理部106へ送信し、認証処理を逐次実施する(S104a)。つまり、認証処理部106は、暗号文データを通信単位毎に復号する。認証ICタグ100は、暗号文データの受け取り回数又は復号回数をカウントし、必要なビット数を受け取るまでのカウント数まで、分割された暗号文データを取得及び復号し続ける。
【0264】
認証処理が完了した後(S105)の処理は、図5に示す処理と同様に実施される。
【0265】
このように、認証ICタグ100は、分割された暗号文データを受け取る度に、逐次復号することもできる。これにより、分割された暗号文データの取得と復号とを並列して実行することができるので、認証処理を高速化することができる。
【0266】
また、上記の実施の形態に係る認証システムでは、ホストアクセス装置が認証処理の成功又は失敗を判定したが、認証ICタグが認証処理の成功又は失敗を判定してもよい。
【0267】
図18は、本発明の実施の形態の変形例に係る認証ICタグが備える認証処理部806の一例を示すブロック図である。例えば、図1に示す認証ICタグ100が、認証処理部106の代わりに、認証処理部806を備える。
【0268】
本発明の実施の形態の変形例に係る認証システムでは、暗号前の平文データをホストアクセス装置200より受け取る。
【0269】
図18に示すように、認証処理部806は、暗号文復号部106aと、秘密鍵記憶部106bと、比較部806cとを備える。
【0270】
暗号文復号部106aは、秘密鍵記憶部106bに記憶されている復号鍵を用いて、復号処理を実施する。つまり、暗号文復号部106aは、ホストアクセス装置200から送信された暗号文データを、秘密鍵を用いて復号することで、復号文データを生成する。生成された復号文データは、比較部806cに送信される。
【0271】
比較部806cは、ホストアクセス装置200から送信された平文データと、復号文データとを比較する。例えば、比較部806cは、内部にビット単位での論理積をとる論理演算子を有する。そして、比較部806cは、論理演算子により各1ビット単位での比較を行い、全ての比較値が1であれば、全ビット一致となるため、平文データと復号文データとが一致したと判定する。
【0272】
図19は、本発明の実施の形態の変形例に係る認証システムにおいて認証ICタグ側での認証処理を説明するための図である。
【0273】
まず、ホストアクセス装置200にて、暗号処理部203は、秘匿に送信すべき対象である平文データを、公開鍵を用いて暗号化することで、暗号文データを生成する。ホストアクセス装置200は、通信部204を介して、暗号文データをICタグ受信データとして認証ICタグ100に送信する。
【0274】
また、ホストアクセス装置200は、別途、平文データを認証ICタグ100に送信する。平文データは、暗号文データの送信前及び送信後のいずれのタイミングで送信されてもよい。あるいは、暗号文データと同じタイミングで送信されてもよい。
【0275】
認証ICタグ100は、ICタグ受信データとして暗号文データを受け取る。そして、認証処理部106は、秘密鍵を用いて暗号文データを復号することで、復号文データを生成する。
【0276】
認証ICタグ100は、さらに暗号文データ以外に、平文データをホストアクセス装置200より受信する。例えば、認証ICタグ100は、暗号文データの受信と同じコマンドとして、平文データを受け取る。あるいは、暗号文データの後に継続して送信される平分データを受信してもよい。なお、認証ICタグ100は、平文データを予め保持していてもよい。
【0277】
認証ICタグ100では、比較部806cが、平文データと復号文データとが一致するか否かを判定し、判定結果をホストアクセス装置200に送信する。
【0278】
このように、認証ICタグ側で認証処理の成功又は失敗の判断を実施することもできる。
【0279】
また、図20に示す認証ICタグ900のように、認証処理、メモリアクセス処理及び状態遷移処理のそれぞれに対応する制御部の代わりに、これらの処理の全てを行う制御部912を備えていてもよい。図20に示す認証ICタグ900は、図1に示す認証ICタグ100と比較して、認証制御部105、メモリアクセス制御部107及び処理状態遷移制御部108の代わりに、認証データ入出力部905、メモリアクセス入出力部907、処理状態遷移入出力部908、制御部912及び遷移処理部913を備える点が異なっている。
【0280】
認証データ入出力部905は、暗号文データの入力、及び、復号文データの出力を行う。なお、認証データ入出力部905を介さず直接、通信部101と出力データ制御部109との間でデータのやり取りを行ってもよい。
【0281】
メモリアクセス入出力部907は、メモリアクセス制御部107と同様に、メモリアドレスの生成、及び、メモリアクセスのイネーブル信号の生成を実施する。さらに、メモリ部104への書き込みデータを通信部101から受け取り、メモリ部104へ書き込む。また、メモリ部104から読み出したデータを、出力データ制御部109に出力する。
【0282】
処理状態遷移入出力部908は、遷移判定コードの入力、及び遷移処理データの出力を行う。なお、処理状態遷移入出力部908を介さず直接、通信部101と出力データ制御部109との間でデータのやり取りを行ってもよい。
【0283】
制御部912は、コマンド識別部102よりコマンド識別子の判定結果を入力とし、認証処理部106、認証データ入出力部905、メモリアクセス入出力部907、処理状態遷移入出力部908及び遷移処理部913に対して、それぞれの動作を行うように指示を発行する。例えば、制御部912は、マイクロプロセッサなどのCPUから構成される。
【0284】
遷移処理部913は、認証ICタグ900の状態遷移を行う。具体的な処理は、上述した実施の形態1に係る処理状態遷移制御部108が行う処理と同様である。
【0285】
以上のような構成であっても、誤動作を防止することができる。特に、公開鍵暗号方式を用いた場合には、暗号文データが長くなるので、暗号文データの中にコマンド識別子と一致するコードが含まれる可能性が高く、誤動作を起こす可能性も高くなる。したがって、公開鍵暗号方式を利用する認証システムでは、本発明の実施の形態の変形例に係る認証ICタグ900も、格別な効果を奏する。
【0286】
また、本発明に係るホストアクセス装置は、認証ICタグに送信するコマンドに応じて、コマンドの信号波形を変更してもよい。
【0287】
具体的には、調歩同期式などのシリアル方式での通信で、ホストアクセス装置と認証ICタグとの間で認証を実施する場合において、ホストアクセス装置の通信部204は、認証処理とメモリアクセス処理で、同期信号及び通信データのパルス幅を変更する。例えば、通信部204は、図21に示すように、認証要求コマンドのパルス幅がNmsであるのに対して、アクセス要求コマンドは半分のN/2msのパルス幅でデータ通信を行う。
【0288】
つまり、認証要求コマンドの受信、及び、これに対する返信などの認証処理に必要な通信は、パルス幅がNmsの信号波形を用いて行われる(図21(a))。また、アクセス要求コマンドの受信、及び、これに対する返信などのメモリアクセス処理に必要な通信は、パルス幅がN/2msの信号波形を用いて行われる(図21(b))。
【0289】
なお、調歩同期式などの通信においては、通信部204は、通信データ(例えば、認証要求コマンド)の前に、データ幅を規定するSyncパルスを付与する。
【0290】
受信側である認証ICタグの通信部101は、送信されるSyncパルスのパルス幅を計測して、継続する通信データのビット幅を確定し、ビットの0/1の判定を実施する。例えば、図21において、信号がハイレベルの場合を1、ローレベルの場合を0として判定する。
【0291】
例えば、4000ビットを送信中に少なくとも500回はSyncパルスを計測することが可能であるため、コマンド識別子を取りこぼしても、暗号文データの途中で、認証処理であることを検出でき、意図しないアクセスを効果的に防ぐことが可能となる。したがって、コマンドの信号波形を変更する場合、実施の形態2のように、認証ICタグは、明示的な状態遷移を行わなくてもよい。
【0292】
また、本発明に係るホストアクセス装置は、認証ICタグに送信するコマンドに応じて、コマンド長を変更してもよい。例えば、図22の(a)及び(b)に示すように、ホストアクセス装置の通信部204は、コマンド識別子のビット長を長くするように、コマンドのフォーマットを変更する。これにより、暗号文データの一部とコマンド識別子とが一致する確率を減らすことができる。
【0293】
また、本発明に係るホストアクセス装置は、図22の(c)に示すように、コマンド識別子にCRC(Cyclic Redundancy Check(巡回冗長検査))を付加してもよい。CRCは、誤り検出符号の一例であり、データの誤りを検出することができる。したがって、コマンド識別子に誤りが発生した場合であっても、認証ICタグの通信部101は、その誤りを検出することにより、誤動作を防止することができる。
【0294】
また、上記実施の形態1、2及びその変形例に係る認証ICタグ及びホストアクセス装置に含まれる各処理部は、典型的には集積回路であるLSI(Large Scale Integration)として実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
【0295】
ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
【0296】
また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【0297】
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて各処理部の集積化を行ってもよい。バイオ技術の適用等が可能性として考えられる。
【0298】
また、本発明の実施の形態1、2に係る認証ICタグ及びホストアクセス装置の機能の一部又は全てを、CPU等のプロセッサがプログラムを実行することにより実現してもよい。
【0299】
さらに、本発明は上記プログラムであってもよいし、上記プログラムが記録された記録媒体であってもよい。また、上記プログラムは、インターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
【0300】
また、上記で用いた数字は、全て本発明を具体的に説明するために例示するものであり、本発明は例示された数字に制限されない。また、構成要素間の接続関係は、本発明を具体的に説明するために例示するものであり、本発明の機能を実現する接続関係はこれに限定されない。
【0301】
さらに、上記の実施の形態は、ハードウェア及び/又はソフトウェアを用いて構成されるが、ハードウェアを用いる構成は、ソフトウェアを用いても構成可能であり、ソフトウェアを用いる構成は、ハードウェアを用いても構成可能である。
【0302】
また、上記認証ICタグ及びホストアクセス装置の構成は、本発明を具体的に説明するために例示するためのものであり、本発明に係る認証ICタグ及びホストアクセス装置は、上記構成の全てを必ずしも備える必要はない。言い換えると、本発明に係る認証ICタグ及びホストアクセス装置は、本発明の効果を実現できる最小限の構成のみを備えればよい。
【0303】
同様に、上記の認証システムによる認証方法は、本発明を具体的に説明するために例示するためのものであり、本発明に係る認証システムによる認証方法は、上記ステップの全てを必ずしも含む必要はない。言い換えると、本発明に係る認証方法は、本発明の効果を実現できる最小限のステップのみを含めばよい。また、上記のステップが実行される順序は、本発明を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
【産業上の利用可能性】
【0304】
本発明は、認証ICタグの誤動作を防止することができるという効果を奏し、例えば、物品の管理、模造品の判別、及び、個人認証などに用いられる認証ICタグ及び認証システムに利用することができる。
【符号の説明】
【0305】
100、100a、600、900 認証ICタグ
101、204 通信部
102 コマンド識別部
103 識別コード記憶部
104 メモリ部
105 認証制御部
106、806 認証処理部
106a 暗号文復号部
106b 秘密鍵記憶部
107 メモリアクセス制御部
108 処理状態遷移制御部
109 出力データ制御部
110 入出力端子
200、200a、500 ホストアクセス装置
201、201a CPU
202 鍵記憶部
203 暗号処理部
205 認証取得部
206 認証結果比較部
300、300a、400 電子機器
301、301a、401 本体基板
302、302a、402 アクセサリ機器
303、303a、304 信号線
507 暗号文データ解読部
508 コマンド識別子変更部
611 識別コード変更部
700 非接触型認証ICタグ
701、711 アンテナ
710 非接触型ホストアクセス装置
806c 比較部
905 認証データ入出力部
907 メモリアクセス入出力部
908 処理状態遷移入出力部
912 制御部
913 遷移処理部

【特許請求の範囲】
【請求項1】
認証処理状態とメモリアクセス状態とを有する認証ICタグであって、
前記メモリアクセス状態は、ホストアクセス装置から、所定のデータを格納するためのメモリ部へのメモリアクセス処理が実行可能な状態であり、
前記認証処理状態は、前記ホストアクセス装置による公開鍵暗号方式を用いた認証処理が実行可能で、かつ、前記メモリアクセス処理が禁止された状態であり、
前記認証ICタグは、
前記メモリ部と、
前記認証ICタグが前記認証処理状態である場合に、前記認証処理を行う認証部と、
前記認証ICタグが前記認証処理状態である場合に、前記メモリアクセス処理を禁止し、前記認証ICタグが前記メモリアクセス状態である場合に、前記メモリアクセス処理を行うメモリアクセス制御部と、
前記ホストアクセス装置と通信することで、コマンドを取得する通信部と、
前記通信部が取得したコマンドに基づいて、前記認証処理状態と前記メモリアクセス状態との間で前記認証ICタグの状態遷移を行う状態遷移制御部とを備える
認証ICタグ。
【請求項2】
前記認証部は、前記認証ICタグが前記認証処理状態であり、かつ、前記認証処理を要求する認証要求コマンドを前記通信部が取得した場合に、前記認証処理を行い、
前記メモリアクセス制御部は、前記認証ICタグが前記メモリアクセス状態であり、かつ、前記メモリアクセス処理を要求するアクセス要求コマンドを前記通信部が取得した場合に、前記メモリアクセス処理を行い、
前記状態遷移制御部は、前記認証処理状態と前記メモリアクセス状態とのいずれかへの状態遷移を要求する遷移要求コマンドを前記通信部が取得した場合に、前記遷移要求コマンドに応じて前記認証ICタグの状態遷移を行う
請求項1記載の認証ICタグ。
【請求項3】
前記状態遷移制御部は、前記認証処理又は前記メモリアクセス処理が完了した場合に、前記認証ICタグの状態遷移を行う
請求項1又は2記載の認証ICタグ。
【請求項4】
前記状態遷移制御部は、前記認証処理が完了した場合に、前記認証ICタグの状態を前記認証処理状態のまま維持する
請求項1〜3のいずれか1項に記載の認証ICタグ。
【請求項5】
前記認証ICタグは、さらに、前記状態遷移制御部によって前記認証ICタグの状態遷移が行われた場合に、当該状態遷移の結果を示す状態遷移結果データを出力する出力部を備える
請求項1〜4のいずれか1項に記載の認証ICタグ。
【請求項6】
前記通信部は、前記ホストアクセス装置から、公開鍵を用いて暗号化された暗号文データとを所定の通信単位で取得し、
前記認証部は、前記暗号文データを全て取得した後で、前記認証処理として、前記暗号文データを復号する
請求項1〜5のいずれか1項に記載の認証ICタグ。
【請求項7】
前記通信部は、前記ホストアクセス装置から、公開鍵を用いて暗号化された暗号文データとを所定の通信単位で取得し、
前記認証部は、前記認証処理として、前記暗号文データを前記通信単位毎に復号する
請求項1〜5のいずれか1項に記載の認証ICタグ。
【請求項8】
前記通信部は、前記ホストアクセス装置との間で物理的な信号線を介して通信する
請求項1〜7のいずれか1項に記載の認証ICタグ。
【請求項9】
前記通信部は、前記ホストアクセス装置との間で無線で通信する
請求項1〜7のいずれか1項に記載の認証ICタグ。
【請求項10】
前記通信部は、前記ホストアクセス装置から、公開鍵を用いて暗号化された暗号文データを取得し、
前記認証部は、前記認証処理として、前記公開鍵に対応する秘密鍵を用いて前記暗号文データを復号することで、復号文データを生成し、
前記通信部は、さらに、前記復号文データを前記ホストアクセス装置へ送信する
請求項1〜9のいずれか1項に記載の認証ICタグ。
【請求項11】
前記通信部は、前記ホストアクセス装置から、公開鍵を用いて平文データが暗号化された暗号文データとを取得し、
前記認証部は、前記認証処理として、前記公開鍵に対応する秘密鍵を用いて前記暗号文データを復号することで、復号文データを生成し、前記平文データと前記復号文データとが一致するか否かを判定する
請求項1〜9のいずれか1項に記載の認証ICタグ。
【請求項12】
所定のデータを格納するためのメモリ部を備える認証ICタグを、公開鍵暗号方式を用いて認証する処理である認証処理を行うホストアクセス装置であって、
前記認証ICタグの状態を遷移させるための命令を発行する制御部と、
前記命令に対応するコマンドを前記認証ICタグに送信する通信部とを備え、
前記制御部は、
前記認証ICタグの状態を、前記ホストアクセス装置から前記メモリ部へのメモリアクセス処理が禁止され、かつ、前記ホストアクセス装置による前記認証処理が実行可能な認証処理状態と、前記メモリアクセス処理が実行可能なメモリアクセス状態との間で遷移させるための命令を発行する
ホストアクセス装置。
【請求項13】
前記ホストアクセス装置は、さらに、公開鍵を用いて平文データを暗号化することで、暗号文データを生成する暗号化部を備え、
前記制御部は、前記認証処理を要求する認証命令、及び、前記メモリアクセス処理を要求するメモリアクセス命令を発行し、
前記通信部は、前記制御部によって前記認証命令が発行された場合に、前記認証命令に対応するコマンドを識別するための識別コードと、前記暗号文データとを、前記認証ICタグに送信し、前記制御部によって前記メモリアクセス命令が発行された場合に、前記メモリアクセス命令に対応するコマンドを識別するための識別コードを、前記認証ICタグに送信する
請求項12記載のホストアクセス装置。
【請求項14】
前記通信部は、前記制御部によって発行された命令に応じて、信号波形を変更する
請求項13記載のホストアクセス装置。
【請求項15】
前記ホストアクセス装置は、CPU(Central Processing Unit)を備え、
前記CPUは、前記制御部、前記暗号化部及び前記通信部の機能を実行する
請求項13又は14記載のホストアクセス装置。
【請求項16】
認証ICタグの認証処理を行うホストアクセス装置であって、
前記認証ICタグに対する少なくとも1つ以上の命令を発行する制御部と、
公開鍵を用いて平文データを暗号化することで、暗号文データを生成する暗号化部と、
前記暗号文データを前記認証ICタグに送信する通信部と、
前記暗号文データを解析することで、前記1つ以上の命令に対応するコマンドを識別するための識別コードと一致するデータが前記暗号文データに含まれているか否かを判定する解析部と、
前記識別コードと一致するデータが前記暗号文データに含まれていると判定された場合に、前記識別コードを変更することで、変更後識別コードを生成する変更部とを備え、
前記通信部は、さらに、
前記変更後識別コードを前記認証ICタグに送信する
ホストアクセス装置。
【請求項17】
請求項1〜11のいずれか1項に記載の認証ICタグと、
請求項12〜16のいずれか1項に記載のホストアクセス装置とを備える
認証システム。
【請求項18】
認証処理状態とメモリアクセス状態とを有する認証ICタグを認証する認証方法であって、
前記メモリアクセス状態の前記認証ICタグは、ホストアクセス装置から、所定のデータを格納するためのメモリ部へのメモリアクセス処理が実行可能であり、
前記認証処理状態の前記認証ICタグは、前記ホストアクセス装置による公開鍵暗号方式を用いた認証処理が実行可能で、かつ、前記メモリアクセス処理が禁止され、
前記認証方法は、
前記認証ICタグが前記認証処理状態である場合に、前記認証処理を行う認証ステップと、
前記認証ICタグが前記認証処理状態である場合に、前記メモリアクセス処理を禁止し、前記認証ICタグが前記メモリアクセス状態である場合に、前記メモリアクセス処理を行うメモリアクセスステップと、
前記ホストアクセス装置と通信することで、コマンドを取得する通信ステップと、
前記コマンドに基づいて、前記認証処理状態と前記メモリアクセス状態との間で前記認証ICタグの状態遷移を行う状態遷移制御ステップとを含む
認証方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7A】
image rotate

【図7B】
image rotate

【図8】
image rotate

【図9A】
image rotate

【図9B】
image rotate

【図9C】
image rotate

【図9D】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2012−155560(P2012−155560A)
【公開日】平成24年8月16日(2012.8.16)
【国際特許分類】
【出願番号】特願2011−14587(P2011−14587)
【出願日】平成23年1月26日(2011.1.26)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】