説明

認証装置、認証方法、及びプログラム

【課題】ステータスレジスタ値の固定攻撃に対する耐性を有する認証装置を提供すること。
【解決手段】互いに異なる第1又は第2のビット値が格納されるレジスタと、入力情報と当該入力情報に対応する認証情報とが一致するか否かを判定して、当該判定結果が真の場合にレジスタに第1のビット値を格納し、偽の場合にレジスタに第2のビット値を格納する第1の判定処理部と、入力情報と当該入力情報に対応する認証情報とが不一致であるか否かを判定して、当該判定結果が真の場合にレジスタに第1のビット値を格納し、偽の場合にレジスタに第2のビット値を格納する第2の判定処理部と、第1の判定処理部による判定処理でレジスタに第1のビット値が格納され、各第2の判定処理部による判定処理でレジスタに第2のビット値が格納された場合に認証成立と判定する認証装置が提供される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、認証装置、認証方法、及びプログラムに関する。
【背景技術】
【0002】
近年、ネットワーク環境の普及に伴い、パーソナルコンピュータ(以下、PC)等の汎用電子機器のみならず、テレビジョン受像機、録画再生装置、携帯オーディオ機器等、専用機能を有する電子機器までもがネットワークに接続可能な状態になってきている。こうした状況に伴い、各種電子機器には、利用者の個人情報保護や、コンピュータウィルス、マルウェアに対する対策等、セキュリティの確保がますます重要になってきている。そのため、各種の電子機器には通信相手の正当性を確認する認証機能を搭載することが求められている。特に、その内部で主要な役割を果たす半導体集積回路(以下、IC)には、セキュリティを確保するために、外部から入力されたソフトウェアやファームウェア(以下、プログラム)の正当性を確認する認証機能の実現が要求される。
【0003】
このような認証機能は、多くの場合、暗号技術を利用して実現される。暗号技術を利用した認証機能としては、通信相手が正しい鍵を保持しているか否かを確認する相手認証や、プログラム等が正しいものか否かを確認する電子署名、MAC(Message Authentication Code)等が存在する。相手認証では、認証したい相手に乱数を送信して暗号文を生成してもらい、相手から返信された暗号文を復号した結果が自身の送った乱数と一致するか否かを判定して相手の鍵が正しいか否かを判断する。また、電子署名やMACでは、鍵を利用したデータの演算結果が期待値と一致するか否かでデータの改竄や鍵の作成者に対する正当性等を確認する。例えば、下記の特許文献1には、こうした認証機能に関する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第3749640号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
こうした安全な暗号アルゴリズムを正しく利用している限り、不正な通信相手を正規の通信相手であると誤認させられたり、不正なプログラムを実行させられたりすることは理論上ない。しかしながら、認証を実行するプログラムの実装方法に欠陥等があった場合、鍵を保持しない攻撃者は、正規の通信相手に成りすましたり、不正なプログラムを実行させたりすることが可能になる。
【0006】
例えば、認証を実施するプログラムは、検証や可読性の観点から、認証成立可否の条件分岐部分が、「条件式が真ならば認証成立、偽ならば認証不成立」となるように実装される。そのため、このプログラムを実行すると、IC内部のマイクロプロセッサ(MPU;Micro Processing Unit)は、条件式の真偽に応じてフラグレジスタの所定ビットの値を1又は0にセットする。例えば、フラグレジスタの所定ビットの値には、条件式が真である場合に1、偽である場合に0がセットされる。
【0007】
そこで、上記のプログラムは、フラグレジスタの所定ビットの値を読み出し、1の場合に認証成立処理を実行し、0の場合に認証不成立の処理を実行する。従って、認証成立の場合、フラグレジスタの所定ビットの値は常に1となる。しかしながら、このようにプログラムを実装すると、FIB(Focus Ion Beam)を利用してフラグレジスタ値出力配線が電源又はグランド(GND)に短絡された場合、MPUのフラグレジスタの所定ビットの値が1に固定されてしまう。同様に、レーザ光照射によるフラグレジスタの値固定等の攻撃により、MPUのフラグレジスタの所定ビットの値が1に固定されてしまう。その結果、攻撃者によりMPUに認証成立の処理を実行させられてしまう。
【0008】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、MPU等が持つレジスタの所定ビットの値が固定されたとしても、不正に認証処理が実行されないようにすることが可能な、新規かつ改良された認証装置、認証方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明のある観点によれば、互いに異なる第1又は第2のビット値が格納されるレジスタと、入力情報と当該入力情報に対応する認証情報とが一致するか否かを判定して、当該判定結果が真の場合に前記レジスタに第1のビット値を格納し、偽の場合に前記レジスタに第2のビット値を格納するm個(1≦m≦N−1、N≧2)の第1の判定処理部と、入力情報と当該入力情報に対応する認証情報とが不一致であるか否かを判定して、当該判定結果が真の場合に前記レジスタに第1のビット値を格納し、偽の場合に前記レジスタに第2のビット値を格納する(N−m)個の第2の判定処理部と、全ての前記第1の判定処理部による判定処理で前記レジスタに第1のビット値が格納され、全ての前記各第2の判定処理部による判定処理で前記レジスタに第2のビット値が格納された場合に認証成立と判定する認証判定部と、を備える、認証装置が提供される。
【0010】
また、上記の認証装置は、判定処理の実行命令と当該実行命令に対する入力データが入力された場合に、当該入力データを用いて前記実行命令を実行した結果が真の場合に前記レジスタに第1のビット値を格納し、偽の場合に前記第2のビット値を格納する演算処理回路を備えていてもよい。この場合、前記第1の判定処理部は、前記演算処理回路に対し、2つの入力データに対する一致判定処理の実行命令と、当該入力データとして前記入力情報及び当該入力情報に対応する認証情報とを入力することで前記レジスタに前記第1又は第2のビット値を格納する。さらに、前記第2の判定処理部は、前記演算処理回路に対し、2つの入力データに対する不一致判定処理の実行命令と、当該入力データとして前記入力情報及び当該入力情報に対応する認証情報とを入力することで前記レジスタに前記第1又は第2のビット値を格納する。
【0011】
また、上記の認証装置は、アプリケーションプログラムの実行環境を形成するための第1のプログラムを認証するために用いる第1の認証情報と、前記アプリケーションプログラムの認証に用いる第2の認証情報とが格納された記憶部をさらに備えていてもよい。この場合、前記第1の判定処理部は、実行対象の前記第1のプログラムから前記入力情報として得られる認証用の情報と前記記憶部に格納された第1の認証情報とが一致するか否かを判定して前記レジスタに第1又は第2のビット値を格納する。さらに、前記第2の判定処理部は、実行対象の前記第2のプログラムから前記入力情報として得られる認証用の情報と前記記憶部に格納された第2の認証情報とが不一致であるか否かを判定して前記レジスタに第1又は第2のビット値を格納する。
【0012】
また、上記の認証装置は、アプリケーションプログラムの実行環境を形成するための第1のプログラムを認証するために用いる第1の認証情報と、前記アプリケーションプログラムの認証に用いる第2の認証情報とが格納された記憶部をさらに備えていてもよい。この場合、前記第2の判定処理部は、実行対象の前記第1のプログラムから前記入力情報として得られる認証用の情報と前記記憶部に格納された第1の認証情報とが不一致であるか否かを判定して前記レジスタに第1又は第2のビット値を格納する。さらに、前記第1の判定処理部は、実行対象の前記第2のプログラムから前記入力情報として得られる認証用の情報と前記記憶部に格納された第2の認証情報とが一致するか否かを判定して前記レジスタに第1又は第2のビット値を格納する。
【0013】
また、上記の認証装置は、外部機器との間の認証処理に利用する第1の認証情報と、前記外部機器を介したユーザ認証に利用する第2の認証情報とが格納される記憶部をさらに備えていてもよい。この場合、前記第1の判定処理部は、前記外部機器から入力された入力情報と前記記憶部に格納された第1の認証情報とが一致するか否かを判定して前記レジスタに第1又は第2のビット値を格納する。さらに、前記第2の判定処理部は、前記外部機器を介してユーザにより入力された入力情報と前記記憶部に格納された第2の認証情報とが不一致であるか否かを判定して前記レジスタに第1又は第2のビット値を格納する。
【0014】
また、上記の認証装置は、外部機器との間の認証処理に利用する第1の認証情報と、前記外部機器を介したユーザ認証に利用する第2の認証情報とが格納される記憶部をさらに備えていてもよい。この場合、前記第1の判定処理部は、前記外部機器を介してユーザにより入力された入力情報と前記記憶部に格納された第2の認証情報とが一致するか否かを判定して前記レジスタに第1又は第2のビット値を格納する。さらに、前記第2の判定処理部は、前記外部機器から入力された入力情報と前記記憶部に格納された第1の認証情報とが不一致であるか否かを判定して前記レジスタに第1又は第2のビット値を格納する。
【0015】
また、上記課題を解決するために、本発明の別の観点によれば、入力情報と当該入力情報に対応する認証情報とが一致するか否かを判定して、互いに異なる第1又は第2のビット値が格納されるレジスタに対し、当該判定結果が真の場合に第1のビット値を格納し、偽の場合に前記レジスタに第2のビット値を格納する第1の判定処理ステップをm回(1≦m≦N−1、N≧2)実行するステップと、入力情報と当該入力情報に対応する認証情報とが不一致であるか否かを判定し、当該判定結果が真の場合に前記レジスタに第1のビット値を格納し、偽の場合に前記レジスタに第2のビット値を格納する第2の判定処理ステップを(N−m)回実行するステップと、全ての前記第1の判定処理ステップによる判定処理で前記レジスタに第1のビット値が格納され、全ての前記各第2の判定処理部による判定処理で前記レジスタに第2のビット値が格納された場合に認証成立と判定する認証判定ステップと、を含む、認証処理方法が提供される。
【0016】
また、上記課題を解決するために、本発明の別の観点によれば、入力情報と当該入力情報に対応する認証情報とが一致するか否かを判定して、互いに異なる第1又は第2のビット値が格納されるレジスタに対し、当該判定結果が真の場合に第1のビット値を格納し、偽の場合に前記レジスタに第2のビット値を格納する第1の判定処理ステップをm回(1≦m≦N−1、N≧2)実行するステップと、入力情報と当該入力情報に対応する認証情報とが不一致であるか否かを判定し、当該判定結果が真の場合に前記レジスタに第1のビット値を格納し、偽の場合に前記レジスタに第2のビット値を格納する第2の判定処理ステップを(N−m)回実行するステップと、全ての前記第1の判定処理ステップによる判定処理で前記レジスタに第1のビット値が格納され、全ての前記各第2の判定処理部による判定処理で前記レジスタに第2のビット値が格納された場合に認証成立と判定する認証判定ステップと、をコンピュータに実現させるためのプログラムが提供される。
【0017】
また、上記課題を解決するために、本発明の別の観点によれば、上記のプログラムが記録されたコンピュータにより読み取り可能な記録媒体が提供される。
【発明の効果】
【0018】
以上説明したように本発明によれば、MPU等が持つレジスタの所定ビットの値が固定されたとしても、不正に認証処理が実行されないようにすることが可能になる。
【図面の簡単な説明】
【0019】
【図1】本発明の一実施形態に係る認証処理システムの一構成例を示す説明図である。
【図2】同実施形態に係る認証処理方法の一例を示す説明図である。
【図3】同実施形態に係るICカード利用者端末の一構成例を示す説明図である。
【図4】同実施形態に係るICカードの一構成例を示す説明図である。
【図5】同実施形態に係るICカードによる処理の流れを示す説明図である。
【図6A】同実施形態に係るICカードが実行する動作の一部を示す説明図である。
【図6B】同実施形態に係るICカードが実行する動作の一部を示す説明図である。
【図7】同実施形態に係るICカードによる処理のより具体的な流れを示す説明図である。
【図8】同実施形態に係る認証処理方法と一般的な認証処理方法とを対比するための説明図である。
【図9】一般的な認証処理方法を用いた場合に実行され得るタンパリングの一例を示す説明図である。
【図10】一般的な認証処理方法を用いた場合に実行され得るタンパリングの一例を示す説明図である。
【発明を実施するための形態】
【0020】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0021】
[説明の流れについて]
ここで、以下に記載する本発明の実施形態に関する説明の流れについて簡単に述べる。まず、図1を参照しながら、本発明の一実施形態に係る認証処理システムの一構成例について説明する。次いで、図2を参照しながら、同実施形態に係る認証処理の流れについて説明する。次いで、図3を参照しながら、同実施形態に係るICカード利用者端末10の機能構成について説明する。次いで、図4を参照しながら、同実施形態に係るICカード20の機能構成について説明する。次いで、図5を参照しながら、同実施形態に係るICカード20による処理の流れについて説明する。
【0022】
次いで、図6A、図6Bを参照しながら、同実施形態に係るICカード20の一部動作について、より詳細に説明する。次いで、図7を参照しながら、同実施形態に係るICカード20による処理の一部について、より具体的な処理の流れについて説明する。次いで、図8〜図10を参照しながら、同実施形態に係る認証処理方法と一般的な認証処理方法との違いについて説明し、同実施形態に係る認証処理方法を適用することで得られる効果について述べる。最後に、同実施形態の技術的思想について纏め、当該技術的思想から得られる作用効果について簡単に説明する。
【0023】
(説明項目)
1:実施形態
1−1:認証処理システムの構成
1−2:認証処理方法の全体的な流れ
1−3:ICカード利用者端末10の機能構成
1−4:ICカード20の機能構成
1−5:一般的な認証処理方法との対比
2:まとめ
【0024】
<1:実施形態>
本発明の一実施形態について説明する。本実施形態は、半導体集積回路(IC)上で動作する相互認証やメッセージ認証といった各種認証処理を実施するプログラムの実装方法に関するものである。また、本実施形態は、認証を実施するプログラムに含まれる認証成立可否判断部分に関し、条件式が真ならば認証成立処理を実施する部分と、偽ならば認証成立処理を実施する部分を混在させるようにプログラムを実装する点に特徴がある。この特徴により、FIBやレーザー照射等の解析技術を利用した認証結果の固定化攻撃により認証結果が改竄されるのを防止することができる。但し、本実施形態の技術は、認証成立可否判断を複数回実施する認証実施プログラムを実装するケースに適用される。
【0025】
[1−1:認証処理システムの構成]
まず、図1を参照しながら、本実施形態に係る認証処理システムの一構成例について説明する。図1は、本実施形態に係る認証処理システムの一構成例を示す説明図である。なお、図1に示すシステム構成は一例であり、本実施形態に係る技術の適用範囲はこれに限定されない。例えば、本実施形態においては、説明の都合上、非接触ICカードによる認証処理が例として用いられる。しかし、ICを搭載した種々の電子機器や接触型のICカード等も本実施形態の技術的範囲に属する点に注意されたい。
【0026】
図1に示すように、認証処理システムは、主に、ICカード利用者端末10と、ICカード20とにより構成される。なお、ICカード20は、認証装置の一例である。ICカード利用者端末10は、例えば、PC等に接続されたり、交通機関の改札や小売店舗、銀行窓口等に設置されているようなIC情報の読み書き用端末である。ICカード利用者端末10は、主に、入力デバイス12、表示デバイス14、演算装置16、及び読み書き装置18により構成される。但し、これらの構成要素の一部は実施の態様に応じて省略されることもある。
【0027】
入力デバイス12は、ICカード利用者が個人情報や認証情報(PIN;Personal Identification Number)等を入力するための入力手段である。また、表示デバイス14は、ICカード利用者が入力した個人情報を入力したり、認証情報の入力を促すメッセージを表示したりするのに用いる表示手段である。演算装置16は、表示デバイス14の表示や読み書き装置18の動作を制御する手段である。また、演算装置16は、入力デバイス12を用いて入力されたICカード利用者の個人情報や認証情報、或いは、読み書き装置18を介して取得した各種の情報を保持することができる。さらに、演算装置16は、認証処理における各種の演算処理を実行する手段である。
【0028】
また、読み書き装置18は、ICカード20との間で通信することによりICカード20に搭載されたICチップ22の情報を読み出したり、ICチップ22に情報を書き込んだりする手段である。なお、読み書き装置18とICカード20との間の通信は、非接触通信であっても、接触通信であってもよい。上記の通り、ICカード20には、ICチップ22が設けられている。また、非接触通信の場合、ICカード20には、ループアンテナが配線されており、ループアンテナの端部がICチップ22に接続されている。そのため、読み書き装置18が発生させる磁界の変動によりループアンテナに誘導される電力の変調を利用してICカード20とICカード利用者端末10との間で通信が実現する。
【0029】
図1に示した構成は一例であるが、説明の都合上、図1のシステム構成を想定して以下の説明を進める。もちろん、本実施形態に係る技術の適用範囲はこれに限定されない。
【0030】
[1−2:認証処理方法の全体的な流れ]
次に、図2を参照しながら、本実施形態の認証処理システムにおける認証処理方法の全体的な流れについて説明する。図2は、本実施形態の認証処理システムにおける認証処理方法の全体的な流れを示す説明図である。但し、図2に示す認証処理方法は一例であり、本実施形態に係る技術の適用範囲はこれに限定されない。例えば、本実施形態は、複数回の判定処理を含む任意の認証処理方法に適用することが可能である。従って、図2は、複数回の判定処理を含む認証処理方法の中から選択された一例である点に注意されたい。
【0031】
まず、利用者は、ICカード利用者端末10に対し、入力デバイス12を用いてPINを入力する(S102、S104)。なお、ここで利用者が入力すべきPINの情報は、ICカード20に保持されている。次いで、ICカード利用者端末10は、乱数要求を発行してICカード20に送信する(S106)。この乱数要求は、ICカード20が生成した乱数を取得するためのものである。ICカード利用者端末10から乱数要求を受信すると、ICカード20は、乱数(r)を生成する(S108)。次いで、ICカード20は、生成した乱数rをICカード利用者端末10に送信する(S110)。
【0032】
ICカード20から乱数rを受信すると、ICカード利用者端末10は、乱数(K0)を生成する(S112)。次いで、ICカード20が発行した公開鍵PKを用いて、ICカード20から取得した乱数r、ステップS112で生成した乱数K0、及び利用者により入力されたPINを暗号化する(S114)。この暗号化処理により、暗号文E(PK,(r,K0,PIN))が生成される。なお、E(A,B)と表記した場合、E(A,B)は、Aを暗号鍵としてBを暗号化した暗号文を意味する。また、E(PK,(r,K0,PIN))は、r、K0、PINが公開鍵PKに対応する秘密鍵SKでそれぞれ復号できる形式で暗号化された暗号文を意味する。
【0033】
暗号文E(PK,(r,K0,PIN))を生成すると、ICカード利用者端末10は、暗号文E(PK,(r,K0,PIN))をICカード20に送信する(S116)。ICカード利用者端末10から暗号文E(PK,(r,K0,PIN))を受信すると、ICカード20は、公開鍵PKに対応する秘密鍵SKを利用してr、K0、PINを復号する(S118)。次いで、ICカード20は、復号したPINと、自身が保持するPINとが不一致であるか否かを確認する(S120)。このとき、ICカード20は、PINが不一致の場合に真(true)と判定する。PINが不一致の場合、ICカード20は、エラー処理を実行して一連の認証処理を終了する。
【0034】
PINが一致した場合、ICカード20は、ステップS118で復号された乱数rと、ステップS108で自身が生成した乱数rとが一致するか否かを確認する(S122)。このとき、ICカード20は、乱数rが一致する場合に真(true)と判定する。乱数rが不一致の場合、ICカード20は、エラー処理を実行して一連の認証処理を終了する。一方、乱数rが一致した場合、ICカード20は、乱数(K1)を生成する(S124)。次いで、ICカード20は、ステップS118で復号された乱数K0を用いて乱数K1を暗号化する(S126)。この暗号化処理により、暗号文E(K0,K1)が生成される。次いで、ICカード20は、生成した暗号文E(K0,K1)をICカード利用者端末10に送信する(S128)。
【0035】
ICカード20から暗号文E(K0,K1)を受信すると、ICカード利用者端末10は、ステップS112に生成した乱数K0を鍵にして暗号文E(K0,K1)に含まれる乱数K1を復号する(S130)。次いで、ICカード利用者端末10は、乱数K0、K1を用いて共通鍵K=K1 xor K0を生成する(S132)。但し、xorは排他的論理和演算を意味する。同様に、ICカード20は、乱数K0、K1を用いて共通鍵K=K1 xor K0を生成する(S134)。そして、ICカード利用者端末10とICカード20とは共通鍵Kを利用して暗号通信する(S136)。
【0036】
上記の通り、図2に示した認証処理方法には、ICカード20による2回の判定処理(ステップS120、S122)が含まれている。そして、本実施形態においては、ステップS120の判定処理が不一致確認であり、ステップS122の判定処理が一致確認である。そのため、ステップS120の判定処理で「偽」、ステップS122の判定処理で「真」の場合に認証が成立する。このように、認証の成否を判定するための真偽値が複数の判定処理で異なるようにする点が本実施形態の技術的特徴の中心部分である。以下、当該技術について図2に示した処理を例に挙げつつ、より詳細に説明する。
【0037】
[1−3:ICカード利用者端末10の機能構成]
まず、図3を参照しながら、本実施形態に係るICカード利用者端末10の機能構成について説明する。図3は、本実施形態に係るICカード利用者端末10の機能構成例を示す説明図である。なお、図3に示した機能構成例は、図2の認証処理を実行するためのものであり、対象とする認証処理方法の種類等により適宜変更される点に注意されたい。
【0038】
図3に示すように、ICカード利用者端末10は、主に、入力デバイス12と、表示デバイス14と、通信部102と、乱数取得部104と、乱数生成部106と、記憶部108と、暗号化部110と、共通鍵生成部112と、復号部114とを有する。また、乱数取得部104、乱数生成部106、記憶部108、暗号化部110、共通鍵生成部112、及び復号部114の機能は、演算装置16により実現される。そして、通信部102の機能は、読み書き装置18により実現される。
【0039】
まず、利用者が入力デバイス12を用いてPINを入力すると、入力デバイス12から暗号化部110にPINが入力される。このとき、表示デバイス14に入力したPINの確認情報が表示されてもよい。また、入力デバイス12から乱数取得部104にPINが入力されたことを示す通知情報(info)が入力される。この通知情報を受けると、乱数取得部104は、乱数要求(request)を発行し、通信部102を介してICカード20に送信する。この乱数要求を受けてICカード20から乱数rが送信されると、通信部102を通じて乱数rが乱数取得部104に入力される。
【0040】
このようにしてICカード20から乱数rを取得すると、乱数取得部104は、取得した乱数rを暗号化部110に入力する。また、暗号化部110には、乱数生成部106により生成された乱数K0も入力される。乱数生成部106は、乱数K0を生成し、暗号化部110の他に、共通鍵生成部112及び復号部114に乱数K0を入力する。また、暗号化部110は、記憶部108に格納されているICカード20の公開鍵PKを取得し、入力されたPIN、r、K0を公開鍵PKで暗号化する。この暗号化処理により暗号文E(PK,(r,K0,PIN))が生成される。
【0041】
暗号化部110で生成された暗号文E(PK,(r,K0,PIN))は、通信部102を通じてICカード20に送信される。暗号文E(PK,(r,K0,PIN))を受けてICカード20によりPIN及び乱数rの認証処理が実行され、認証が成功すると乱数K0を用いて乱数K1を暗号化した暗号文E(K0,K1)がICカード20から送信される。通信部102が受信した暗号文E(K0,K1)は、通信部102から復号部114に入力される。暗号文E(K0,K1)が入力されると、復号部114は、乱数生成部106から入力された乱数K0を用いて暗号文E(K0,K1)に含まれる乱数K1を復号する。そして、復号部114により復号された乱数K1は共通鍵生成部112に入力される。
【0042】
復号部114から乱数K1が入力されると、共通鍵生成部112は、乱数生成部106で生成された乱数K0と復号部114から入力された乱数K1とを用いて共通鍵K=K0 xor K1を生成する。なお、共通鍵生成部112で生成される共通鍵Kは、乱数K0、K1に基づいて生成されるものであればよい。そのため、共通鍵Kの生成に用いる演算式は、必ずしも上記の排他的論理和演算に限定されない。但し、説明の都合上、上記の演算式により共通鍵が生成されるものとする。共通鍵生成部112により生成された共通鍵Kは、復号部114、及び暗号化部110に入力される。
【0043】
暗号化部110は、記憶部108に格納されている送信データ(data)を共通鍵Kで暗号化し、通信部102を通じてICカード20に送信する。一方、共通鍵Kを用いて暗号化された暗号文がICカード20から送信された場合、通信部102を介して受信した暗号文は復号部114に入力される。そして、復号部114は、受信した暗号文に対し、共通鍵Kを用いて復号処理を実行する。このようにして暗号通信が実現される。以上、ICカード利用者端末10の機能構成について説明した。以下、ICカード20の機能構成について詳細に説明する。
【0044】
[1−4:ICカード20の機能構成]
次に、図4を参照しながら、本実施形態に係るICカード20の機能構成例について説明する。図4は、本実施形態に係るICカード20の機能構成例を示す説明図である。なお、図4に示した機能構成例は、図2の認証処理を実行するためのものであり、対象とする認証処理方法の種類等により適宜変更される点に注意されたい。
【0045】
図4に示すように、ICカード20は、主に、通信部202と、第1乱数生成部204と、記憶部206と、復号部208と、PIN確認部210と、乱数確認部212と、第2乱数生成部214と、暗号化部216と、共通鍵生成部218とを有する。これらの構成要素のうち、PIN確認部210、及び乱数確認部212の機能に主な特徴がある。また、上記のPIN確認部210は、第2の判定処理部の一例である。さらに、上記の乱数確認部212は、第1の判定処理部の一例である。そして、上記のPIN確認部210、及び乱数確認部212は、認証判定部の一例である。
【0046】
まず、ICカード利用者端末10から乱数要求(request)が送信されると、ICカード20は、通信部202により乱数要求を受信する。受信した乱数要求は、通信部202を通じて第1乱数生成部204に入力される。第1乱数生成部204は、乱数要求に応じて乱数rを生成する。そして、第1乱数生成部204により生成された乱数rは、通信部202に入力されると共に、記憶部206に格納される。記憶部206には、乱数rの他、利用者のPIN、及び公開鍵PKに対応する秘密鍵SKが格納されている。
【0047】
第1乱数生成部204から通信部202に乱数rが入力されると、乱数rは、通信部202を介してICカード利用者端末10に送信される。その後、乱数rを受信したICカード利用者端末10から公開鍵PKを利用して生成された暗号文E(PK,(r,K0,PIN))が送信されると、ICカード20は、通信部202により暗号文E(PK,(r,K0,PIN))を受信する。そして、暗号文E(PK,(r,K0,PIN))は、通信部202から復号部208に入力される。
【0048】
暗号文E(PK,(r,K0,PIN))が入力されると、復号部208は、記憶部206から公開鍵PKに対応する秘密鍵SKを読み出し、秘密鍵SKを用いて暗号文E(PK,(r,K0,PIN))を復号し、r、K0、PINを取得する。そして、復号部208は、取得したrを乱数確認部212に入力し、取得したPINをPIN確認部210に入力し、取得したK0を暗号化部216に入力する。
【0049】
PIN確認部210は、復号部208から入力されたPINと、記憶部206から読み出したPINとが不一致であるか否かを確認する。確認の結果、PINが不一致である場合(判定演算の出力=「真」)、PIN確認部210は、エラー処理を実行する。一方、PINが不一致でない場合(判定演算の出力=「偽」)、PIN確認部210は、PIN認証の成立(ok)を乱数確認部212に通知する。
【0050】
PIN認証の成立が通知されると、乱数確認部212は、復号部208から入力されたrと、記憶部206から読み出したrとが一致するか否かを確認する。確認の結果、rが一致する場合(判定演算の出力=「真」)、乱数確認部212は、乱数による認証が成立したことを示す通知(ok)を第2乱数生成部214に入力する。一方、rが一致しない場合(判定演算の出力=「偽」)、乱数確認部212は、エラー処理を実行する。
【0051】
乱数確認部212により乱数による認証が成立したことを示す通知が入力されると、第2乱数生成部214は、乱数K1を生成する。第2乱数生成部214により生成された乱数K1は、暗号化部216に入力される。乱数K1が入力されると、暗号化部216は、復号部208から入力されたK0を用いて乱数K1を暗号化する。この暗号化処理により暗号文E(K0,K1)が生成される。そして、暗号化部216により生成された暗号文E(K0,K1)は、通信部202を通じてICカード利用者端末10に送信される。
【0052】
また、復号部208により取得されたK0と第2乱数生成部214で生成された乱数K1とは、共通鍵生成部218に入力される。共通鍵生成部218は、入力されたK0、K1を用いて共通鍵K=K0 xor K1を生成する。なお、共通鍵生成部218で生成される共通鍵Kは、乱数K0、K1に基づいて生成されるものであればよい。そのため、共通鍵Kの生成に用いる演算式は、必ずしも上記の排他的論理和演算に限定されない。但し、説明の都合上、上記の演算式により共通鍵が生成されるものとする。
【0053】
共通鍵生成部218で生成された共通鍵Kは、暗号化部216に入力されると共に、記憶部206に格納される。暗号化部216は、暗号通信により送信データを暗号化する際に共通鍵Kを用いる。また、復号部208は、暗号通信により受信した暗号文を復号する際に、記憶部206に格納された共通鍵Kを用いて暗号文を復号する。このようにして暗号通信が実現される。以上、ICカード20の機能構成について説明した。上記の通り、本実施形態におけるICカード20の特徴部分はPIN確認部210及び乱数確認部212の機能にある。以下、この特徴部分に注目し、より詳細に説明する。
【0054】
(判定処理に関する動作について)
まず、図5を参照しながら、ICカード20による処理の流れについて、PIN確認部210、及び乱数確認部212の処理を中心に説明する。図5は、ICカード20による処理の流れを示す説明図である。
【0055】
まず、ICカード20は、ICカード利用者端末10から送信された乱数要求を通信部202により受信する(S142)。次いで、ICカード20は、第1乱数生成部204により乱数rを生成し、通信部202を通じて乱数rをICカード利用者端末10に送信する(S144)。次いで、ICカード20は、ICカード利用者端末10から暗号文E(PK,(r,K0,PIN))を受信し、復号部208により復号する(S146)。ステップS146の処理により、r、K0、PINが取得される。
【0056】
そこで、PIN確認部210は、取得したPINと、ICカード20に保持されているPINとが不一致であるか否かを確認する(S148)。確認の結果、不一致である場合、ICカード20は、エラー処理を実行する(S152)。一方、不一致でない場合、ICカード20は、ステップS150の処理に進行する。ここで、PIN確認部210が「一致であるか否か」を判定するのではなく、「不一致であるか否か」を判定している点に注意されたい。このような構成にする理由については後述する。
【0057】
ステップS150に進行した場合、乱数確認部212により、取得したrと、ICカード20に保持されているrとが一致するか否かが確認される(S150)。確認の結果、一致しない場合、ICカード20は、エラー処理を実行する(S152)。一方、一致する場合、ICカード20は、ステップS154の処理に進行する。ここで、PIN確認部210が「不一致であるか否か」を判定するのに対し、乱数確認部212が「一致するか否か」を判定している点に注意されたい。
【0058】
ステップS154に進行した場合、ICカード20は、第2乱数生成部214により乱数K1を生成する(S154)。次いで、ICカード20は、暗号化部216により暗号文E(K0,K1)を生成し、通信部202を通じてICカード利用者端末10に送信する(S156)。また、ICカード20は、共通鍵生成部218により共通鍵K=K0 xor K1を生成する(S158)。
【0059】
ここで、ステップS148、S150の処理について、より詳細に説明する。上記の通り、ステップS148の処理は、PINの「不一致確認」のための判定処理である。一方、ステップS150の処理は、乱数rの「一致確認」のための判定処理である。これらの処理は、実際には図6A、図6Bに示すようにICカード20に搭載されているMPU220を利用して実行される。なお、MPU220は、演算処理回路の一例である。
【0060】
まず、図6Aを参照する。図6Aは、PIN確認部210による「不一致確認」処理を模式的に示したものである。なお、図6Aにおいて、ICカード利用者端末10から取得したPINをPIN’と表記し、ICカード20に保持されているPINを単にPINと表記することにする。図6Aに示すように、MPU220には、フラグレジスタ222(FR)が設けられている。なお、ここでは「フラグレジスタ」と表記するが、広義にはMPU220の演算状態を示すステータスレジスタのことを意味する。また、フラグレジスタ222は、レジスタの一例である。
【0061】
また、フラグレジスタ222には、所定のビット位置にゼロフラグ(ZF)が含まれる。ゼロフラグは、演算結果が1(判定処理における「真」)のときにセットされる(1が書き込まれる)部分である。逆に、演算結果が0(判定処理における「偽」)の場合、ゼロフラグはクリアされる(0が書き込まれる)。
【0062】
上記の通り、PIN確認部210は、PINとPIN’とが不一致であるか否かを判定する。言い換えると、PIN確認部210は、不一致であるか否かを判定させる判定処理命令(bne A,B)と、パラメータであるPIN及びPIN’とをMPU220に入力し、フラグレジスタ222のゼロフラグに格納された値を参照する。ここで、「bne A,B」は、パラメータA、Bが不一致の場合に「真」、不一致でない場合に「偽」と判定する処理命令を意味する。
【0063】
この命令が入力されると、MPU220は、PINとPIN’とが不一致であるか否かを判定し、判定結果が「真」である場合にフラグレジスタ222のゼロフラグをセットし、判定結果が「偽」である場合にフラグレジスタ222のゼロフラグをクリアする。従って、PIN認証が成立する場合、フラグレジスタ222のゼロフラグには「0」が格納されていることになる。
【0064】
次に、図6Bを参照する。図6Bは、乱数確認部212による「一致確認」処理を模式的に示したものである。なお、図6Bにおいて、ICカード利用者端末10から取得したrをr’と表記し、ICカード20に保持されているrを単にrと表記することにする。上記の通り、乱数確認部212は、rとr’とが一致するか否かを判定する。言い換えると、乱数確認部212は、一致するか否かを判定させる判定処理命令(beq A,B)と、パラメータであるr及びr’とをMPU220に入力し、フラグレジスタ222のゼロフラグに格納された値を参照する。
【0065】
ここで、「beq A,B」は、パラメータA、Bが一致の場合に「真」、一致しない場合に「偽」と判定する処理命令を意味する。この命令がMPU220に入力されると、MPU220は、rとr’とが一致するか否かを判定し、判定結果が「真」である場合にフラグレジスタ222のゼロフラグをセットし、判定結果が「偽」である場合にフラグレジスタ222のゼロフラグをクリアする。従って、乱数rによる認証が成立する場合、フラグレジスタ222のゼロフラグには「1」が格納されていることになる。
【0066】
図6A、図6Bから明らかなように、「一致確認」も、「不一致確認」も、2つのパラメータを比較し、その一致/不一致を判定するという点では同じであるが、MPU220で実行される演算処理が異なるため、同じ「一致」でもゼロフラグの値が異なる。本実施形態では、図6A、図6Bで示した『同じ「一致(又は不一致)」に対してゼロフラグの値が変化する』という性質を利用し、セキュリティを高める方法を提案しているのである。仮に、フラグレジスタ222のゼロフラグが「1」に固定された場合、一般的な方式ではPIN認証も乱数による認証も成立してしまう。しかし、本実施形態の方法を利用すると、PIN認証が不成立となり、タンパリングを防ぐことができるのである。以下、この点について、より詳細に説明する。
【0067】
[1−5:一般的な認証処理方法との対比]
まず、図5に示した本実施形態に係る認証処理の中で、PIN認証及び乱数認証に関する部分を含むステップS146〜S154(以下、ステップS160)に関し、図7を参照しながら、MPU220による動作の流れについて説明する。その後、一般的な認証処理方法(図8)を用いた場合のMPU220による動作の流れ(図9)について説明する。さらに、一般的な認証処理方法(図9)と本実施形態の方法(図7)とを対比しながら、ゼロフラグを固定する攻撃(図10)に対する耐性について述べる。
【0068】
(本実施形態に係る認証処理方法におけるMPU220の動作について)
まず、図7を参照する。図7は、図5に示したステップS148、S150の処理をMPU220の動作に関して詳細に示したものである。
【0069】
図7に示すように、ステップS146の処理によりPIN、rが得られると、PIN確認部210は、MPU220に対して命令「bne A,B」と、PIN及びPIN’とを入力する。MPU220は、入力された命令に応じてPINとPIN’とが不一致であるか否かを判定する(S1481)。判定結果が「真(YES)」である場合、MPU220は、フラグレジスタ222のゼロフラグに「1」を格納する(S1482)。一方、判定結果が「偽(NO)」である場合、MPU220は、フラグレジスタ222のゼロフラグに「0」を格納する(S1483)。
【0070】
次いで、PIN確認部210は、フラグレジスタ222のゼロフラグが「0」であるか否かを確認する(S1484)。ゼロフラグが「0」でない場合、ICカード20は、エラー処理を実行する(S152)。一方、ゼロフラグが「0」である場合、ICカード20は、ステップS1501の処理に進行する。仮に、ゼロフラグの固定攻撃を受けてゼロフラグの値が「1」に固定されている場合であっても、ステップS1484において攻撃を防ぐことができる。
【0071】
ステップS1501の処理に進行した場合、乱数確認部212は、MPU220に対して命令「beq A,B」と、r及びr’とを入力する。MPU220は、入力された命令に応じてrとr’とが一致するか否かを判定する(S1501)。判定結果が「真(YES)」である場合、MPU220は、フラグレジスタ222のゼロフラグに「1」を格納する(S1502)。一方、判定結果が「偽(NO)」である場合、MPU220は、フラグレジスタ222のゼロフラグに「0」を格納する(S1503)。
【0072】
次いで、乱数確認部212は、フラグレジスタ222のゼロフラグが「1」であるか否かを確認する(S1504)。ゼロフラグが「1」でない場合、ICカード20は、エラー処理を実行する(S152)。一方、ゼロフラグが「1」である場合、ICカード20は、ステップS154の処理に進行する。仮に、ゼロフラグの固定攻撃を受けてゼロフラグの値が「0」に固定されている場合であっても、ステップS1504において攻撃を防ぐことができる。
【0073】
(一般的な認証処理方法におけるMPU220の動作について)
次に、図8、図9を参照しながら、一般的な認証処理方法におけるMPU220の動作について説明する。図8は、一般的な認証処理方法の全体的な流れを示す説明図である。また、図9は、PIN認証及び乱数認証に関する部分について、MPU220の動作を詳細に示した認証処理の流れを示す説明図である。
【0074】
まず、図8を参照する。まず、ICカード利用者端末10から乱数要求を受信し(S12)、乱数rを生成してICカード利用者端末10に送信する(S14)。次いで、ICカード利用者端末10から暗号文E(PK,(r,K0,PIN))を受信してr、PINを取得する(S16)。次いで、取得したPINと予め保持しているPINとが一致するか否かを確認する(S18)。確認の結果、一致していればステップS20の処理に進行し、一致していなければエラー処理を実行する(S22)。
【0075】
ステップS20の処理に進行した場合、取得したrと予め保持しているrとが一致するか否かを確認する(S20)。確認の結果、一致していればステップS24の処理に進行し、一致していなければエラー処理を実行する(S22)。ステップS24の処理に進行した場合、乱数K1を生成し(S24)、暗号文E(K0,K1)を生成してICカード利用者端末10に送信する(S26)。また、共通鍵Kを生成する(S28)。
【0076】
上記の通り、一般的な認証処理方法において、ステップS18、S20で実行される2回の判定処理はいずれも「一致確認」である。この点を踏まえて図9を参照する。
【0077】
図9に示すように、ステップS16の処理によりPIN、rが得られると、MPU220に対して命令「beq A,B」と、PIN及びPIN’とが入力される。MPU220は、入力された命令に応じてPINとPIN’とが一致するか否かを判定する(S0181)。判定演算の出力が「真(YES)」である場合、MPU220は、フラグレジスタ222のゼロフラグに「1」を格納する(S0182)。一方、判定演算の出力が「偽(NO)」である場合、MPU220は、フラグレジスタ222のゼロフラグに「0」を格納する(S0183)。
【0078】
次いで、フラグレジスタ222のゼロフラグが「1」であるか否かが確認される(S0184)。ゼロフラグが「1」でない場合、エラー処理が実行される(S22)。一方、ゼロフラグが「1」である場合、ステップS0201の処理に進行する。仮に、ゼロフラグの固定攻撃を受けてゼロフラグの値が「1」に固定されている場合、ステップS0184の判定処理を通過してしまい、攻撃を防ぐことができない。
【0079】
ステップS0201の処理に進行した場合、MPU220に対して命令「beq A,B」と、r及びr’とが入力される。MPU220は、入力された命令に応じてrとr’とが一致するか否かを判定する(S0201)。判定演算の出力が「真(YES)」である場合、MPU220は、フラグレジスタ222のゼロフラグに「1」を格納する(S0202)。一方、判定演算の出力が「偽(NO)」である場合、MPU220は、フラグレジスタ222のゼロフラグに「0」を格納する(S0203)。
【0080】
次いで、フラグレジスタ222のゼロフラグが「1」であるか否かが確認される(S0204)。ゼロフラグが「1」でない場合、エラー処理を実行する(S22)。一方、ゼロフラグが「1」ある場合、ステップS24の処理に進行する。仮に、ゼロフラグの固定攻撃を受けてゼロフラグの値が「1」に固定されている場合、ステップS0204の判定処理を通過してしまい、攻撃を防ぐことができない。
【0081】
つまり、図10に示すように、PINの一致確認(ステップS44)、及びrの一致確認(ステップS46)が無効化されてしまうのである。ここで、図10を参照しながら、ゼロフラグのビット値を固定化する攻撃と、その攻撃により一般的な認証処理方法を採用したICカードが受ける影響とについて簡単に纏める。
【0082】
図10に示すように、悪意者は、まず、乱数要求を発行してICカードに送信する(S30)。ICカードは、受信した乱数要求に応じて乱数rを生成する(S34)。そして、ICカードは、生成した乱数rを攻撃者に送信する(S32)。次いで、攻撃者は、乱数K0’を生成する(S36)。そして、ICカードの公開鍵PKでr’、K0’、PIN’を暗号化し、暗号文E(PK,(r’,K0’,PIN’))を生成する(S38)。但し、r’は、ICカードが生成したrとは異なるものである。また、PIN’は、ICカードが保持するPINとは異なるものである。なお、r’の代わりにrが用いられる可能性もある。
【0083】
そして、攻撃者は、生成した暗号文E(PK,(r’,K0’,PIN’))をICカードに送信する(S40)。但し、このとき、攻撃者は、ICカードに対してレーザ照射を開始し、ICカードのMPU220が持つフラグレジスタ222のゼロフラグを「1」に固定する。ICカードでは、暗号文E(PK,(r’,K0’,PIN’))が受信され、公開鍵PKに対応する秘密鍵を用いてr’、K0’、PIN’が復号される(S42)。次いで、PINの一致確認(S44)、及びrの一致確認(S46)が実行される。
【0084】
しかし、攻撃者によりフラグレジスタ222のゼロフラグが「1」に固定されているため、PIN≠PIN’、r≠r’であるにも関わらず、PIN認証及びr認証が成立してしまう。つまり、ステップS44、S46の認証処理が無効化されてしまうのである。ステップS44、S46の認証が成立すると、ICカードは、乱数K1を生成する(S48)。次いで、ICカードは、ステップS42において復号したK0’でK1を暗号化し、暗号文E(K0’,K1)を生成する(S50)。
【0085】
そして、ICカードは、暗号文E(K0’,K1)を攻撃者に送信する(S52)。暗号文E(K0’,K1)を受信した攻撃者は、自身が保持するK0’を用いて暗号文E(K0’,K1)を復号し、K1を取得する(S54)。さらに、取得したK1を用いて共通鍵K=K1 xor K0’を生成する(S56)。同様に、ICカードも共通鍵K=K1 xor K0’を生成する。この時点で攻撃者とICカードとが共有鍵Kを共有した状態になるので、この共有鍵Kを用いて暗号通信S60が成立してしまう。その結果、攻撃者によりICカードの情報が自由に改竄できる状態になってしまう。
【0086】
こうした状況は、一般的な認証処理方法を利用する限り、FIBを利用したフラグレジスタ値出力配線の短絡攻撃についても同様に成立してしまう。しかし、本実施形態に係る認証処理方法を適用することにより、これらの攻撃に対してエラーが出力されるようになり、ICカード20の情報が改竄される状態になることを防止できる。
【0087】
なお、攻撃者がPIN認証とr認証との間でレーザの照射/非照射を切り替える方法を思いつくかもしれないが、このようなレーザの照射制御は技術的に極めて困難である。また、上記のような攻撃に対する耐性を得るための新たな回路を付加していないため、本実施形態の技術を適用しても回路規模の増加やロジックの複雑化を招かない。そのため、製造コストや設計負担が増大せずに、セキュリティを高めることが可能である。
【0088】
以上、本実施形態に係る技術について具体例を挙げながら詳細に説明した。上記の例では、当該技術の適用対象をICカード20とした。しかし、ICカード利用者端末10で複数回の判定処理を含むような認証が実施される場合にはICカード利用者端末10に当該技術を適用することもできる。さらに、当該技術が適用される対象物はICカードやICチップに限定されない。つまり、MPU220のような構成を有する演算ユニットを搭載し、複数回の判定処理を実行する際、MPU220に判定演算の命令を入力し、フラグレジスタ222の所定ビットに出力される値を参照して判定処理を実行する任意の手段に対して適用できる。そのため、このような手段を有するPC、携帯端末、携帯電話、ICチップ、リーダ/ライタ、及び各種の電子機器等に対して適用可能である。
【0089】
<2:まとめ>
本実施形態に係る技術は、複数回の認証処理を実行する認証装置に適用される。例えば、利用者の個人識別番号PINを利用した相手認証と、乱数rを利用した鍵共有を実施するICカード等に適用できる。このような構成を適用すると、非正規利用者の排除と、過去のデータを利用したなりすまし攻撃を防止することができる。但し、認証処理の際に実施される判定処理を実際に実行するMPUのフラグレジスタ値が「1」又は「0」に固定されてしまうと、いずれの認証も不正に成立してしまうという問題を有している。
【0090】
こうした問題に対し、本実施形態は、認証成立処理を条件式が「真」である場合に実施する部分と、「偽」である場合に実施する部分とを交互又はランダムに実装する方法を提案している。このような実装方法を適用することで、フラグレジスタの値が「0」である場合に認証成立となる処理と、「1」である場合に認証成立となる処理とが実装される。その結果、フラグレジスタの値が固定化された場合であっても、攻撃者による不正な認証成立処理の実施を防止することが可能になる。
【0091】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【0092】
例えば、上記の実施形態に関する説明の中では、説明を容易にするために本実施形態の技術を外部機器との間の相互認証へと適用する方法が主に示されていた。しかし、本実施形態に係る技術は、認証装置の一例であるICカード等の内部で実行される様々な認証処理に対して適用することができる。例えば、ICカード等の内部で実行されるプログラム認証に適用することができる。ICカード等には、様々なサービスを提供するためにアプリケーションプログラムが搭載されている。また、ICカード等には、例えば、起動時に実行されてアプリケーションプログラム等の実行環境を形成するためのファームウェアが搭載されている。
【0093】
これらファームウェアやアプリケーションプログラムは、ICカード等に格納された各種の情報を読み出したり、ICカード等に情報を書き込むために利用される。そのため、これらファームウェアやアプリケーションプログラムの改竄を高いレベルで防止する必要がある。多くの場合、ICカード等の内部では、ファームウェアやアプリケーションプログラムの改竄を防止するためにプログラム認証が行われる。しかし、レーザ照射等のタンパリング攻撃が行われると、ICカード等の内部で実行される認証処理が無効化されてしまう。そこで、ファームウェアやアプリケーションプログラムの認証処理に本実施形態の技術を適用し、耐タンパ性を高めることが重要になる。
【0094】
例えば、実行対象のアプリケーションプログラムの認証処理と、そのアプリケーションプログラムの実行環境を形成するために用いるファームウェアの認証処理とを続けて行い、その際に本実施形態の技術を適用する。このような方法を用いることで、レーザ照射等のタンパリング攻撃によりプログラム認証を無効化しつつ、不正なアプリケーションプログラムが実行されることを効果的に防止することができる。このように、本実施形態に係る技術は、外部機器との間で相互に実行される認証処理のみならず、機器内部で実行される認証処理にも大きな効果を発揮する。
【符号の説明】
【0095】
10 ICカード利用者端末
12 入力デバイス
14 表示デバイス
16 演算装置
18 読み書き装置
20 ICカード
22 ICチップ
102 通信部
104 乱数取得部
106 乱数生成部
108 記憶部
110 暗号化部
112 共通鍵生成部
114 復号部
202 通信部
204 第1乱数生成部
206 記憶部
208 復号部
210 PIN確認部
212 乱数確認部
214 第2乱数生成部
216 暗号化部
218 共通鍵生成部
220 MPU
222 フラグレジスタ

【特許請求の範囲】
【請求項1】
互いに異なる第1又は第2のビット値が格納されるレジスタと、
入力情報と当該入力情報に対応する認証情報とが一致するか否かを判定して、当該判定結果が真の場合に前記レジスタに第1のビット値を格納し、偽の場合に前記レジスタに第2のビット値を格納するm個(1≦m≦N−1、N≧2)の第1の判定処理部と、
入力情報と当該入力情報に対応する認証情報とが不一致であるか否かを判定して、当該判定結果が真の場合に前記レジスタに第1のビット値を格納し、偽の場合に前記レジスタに第2のビット値を格納する(N−m)個の第2の判定処理部と、
全ての前記第1の判定処理部による判定処理で前記レジスタに第1のビット値が格納され、全ての前記各第2の判定処理部による判定処理で前記レジスタに第2のビット値が格納された場合に認証成立と判定する認証判定部と、
を備える、認証装置。
【請求項2】
判定処理の実行命令と当該実行命令に対する入力データが入力された場合に、当該入力データを用いて前記実行命令を実行した結果が真の場合に前記レジスタに第1のビット値を格納し、偽の場合に前記第2のビット値を格納する演算処理回路を備え、
前記第1の判定処理部は、前記演算処理回路に対し、2つの入力データに対する一致判定処理の実行命令と、当該入力データとして前記入力情報及び当該入力情報に対応する認証情報とを入力することで前記レジスタに前記第1又は第2のビット値を格納し、
前記第2の判定処理部は、前記演算処理回路に対し、2つの入力データに対する不一致判定処理の実行命令と、当該入力データとして前記入力情報及び当該入力情報に対応する認証情報とを入力することで前記レジスタに前記第1又は第2のビット値を格納する、請求項1に記載の認証装置。
【請求項3】
アプリケーションプログラムの実行環境を形成するための第1のプログラムを認証するために用いる第1の認証情報と、前記アプリケーションプログラムの認証に用いる第2の認証情報とが格納された記憶部をさらに備え、
前記第1の判定処理部は、実行対象の前記第1のプログラムから前記入力情報として得られる認証用の情報と前記記憶部に格納された第1の認証情報とが一致するか否かを判定して前記レジスタに第1又は第2のビット値を格納し、
前記第2の判定処理部は、実行対象の前記第2のプログラムから前記入力情報として得られる認証用の情報と前記記憶部に格納された第2の認証情報とが不一致であるか否かを判定して前記レジスタに第1又は第2のビット値を格納する、請求項1又は2に記載の認証装置。
【請求項4】
アプリケーションプログラムの実行環境を形成するための第1のプログラムを認証するために用いる第1の認証情報と、前記アプリケーションプログラムの認証に用いる第2の認証情報とが格納された記憶部をさらに備え、
前記第2の判定処理部は、実行対象の前記第1のプログラムから前記入力情報として得られる認証用の情報と前記記憶部に格納された第1の認証情報とが不一致であるか否かを判定して前記レジスタに第1又は第2のビット値を格納し、
前記第1の判定処理部は、実行対象の前記第2のプログラムから前記入力情報として得られる認証用の情報と前記記憶部に格納された第2の認証情報とが一致するか否かを判定して前記レジスタに第1又は第2のビット値を格納する、請求項1又は2に記載の認証装置。
【請求項5】
外部機器との間の認証処理に利用する第1の認証情報と、前記外部機器を介したユーザ認証に利用する第2の認証情報とが格納される記憶部をさらに備え、
前記第1の判定処理部は、前記外部機器から入力された入力情報と前記記憶部に格納された第1の認証情報とが一致するか否かを判定して前記レジスタに第1又は第2のビット値を格納し、
前記第2の判定処理部は、前記外部機器を介してユーザにより入力された入力情報と前記記憶部に格納された第2の認証情報とが不一致であるか否かを判定して前記レジスタに第1又は第2のビット値を格納する、請求項1又は2に記載の認証装置。
【請求項6】
外部機器との間の認証処理に利用する第1の認証情報と、前記外部機器を介したユーザ認証に利用する第2の認証情報とが格納される記憶部をさらに備え、
前記第1の判定処理部は、前記外部機器を介してユーザにより入力された入力情報と前記記憶部に格納された第2の認証情報とが一致するか否かを判定して前記レジスタに第1又は第2のビット値を格納し、
前記第2の判定処理部は、前記外部機器から入力された入力情報と前記記憶部に格納された第1の認証情報とが不一致であるか否かを判定して前記レジスタに第1又は第2のビット値を格納する、請求項1又は2に記載の認証装置。
【請求項7】
入力情報と当該入力情報に対応する認証情報とが一致するか否かを判定して、互いに異なる第1又は第2のビット値が格納されるレジスタに対し、当該判定結果が真の場合に第1のビット値を格納し、偽の場合に前記レジスタに第2のビット値を格納する第1の判定処理ステップをm回(1≦m≦N−1、N≧2)実行するステップと、
入力情報と当該入力情報に対応する認証情報とが不一致であるか否かを判定し、当該判定結果が真の場合に前記レジスタに第1のビット値を格納し、偽の場合に前記レジスタに第2のビット値を格納する第2の判定処理ステップを(N−m)回実行するステップと、
全ての前記第1の判定処理ステップによる判定処理で前記レジスタに第1のビット値が格納され、全ての前記各第2の判定処理部による判定処理で前記レジスタに第2のビット値が格納された場合に認証成立と判定する認証判定ステップと、
を含む、認証処理方法。
【請求項8】
入力情報と当該入力情報に対応する認証情報とが一致するか否かを判定して、互いに異なる第1又は第2のビット値が格納されるレジスタに対し、当該判定結果が真の場合に第1のビット値を格納し、偽の場合に前記レジスタに第2のビット値を格納する第1の判定処理ステップをm回(1≦m≦N−1、N≧2)実行するステップと、
入力情報と当該入力情報に対応する認証情報とが不一致であるか否かを判定し、当該判定結果が真の場合に前記レジスタに第1のビット値を格納し、偽の場合に前記レジスタに第2のビット値を格納する第2の判定処理ステップを(N−m)回実行するステップと、
全ての前記第1の判定処理ステップによる判定処理で前記レジスタに第1のビット値が格納され、全ての前記各第2の判定処理部による判定処理で前記レジスタに第2のビット値が格納された場合に認証成立と判定する認証判定ステップと、
をコンピュータに実現させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6A】
image rotate

【図6B】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−250374(P2010−250374A)
【公開日】平成22年11月4日(2010.11.4)
【国際特許分類】
【出願番号】特願2009−96196(P2009−96196)
【出願日】平成21年4月10日(2009.4.10)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】