【文献】
Information technology -- Security techniques -- Key management -- Part 2: Mechanisms using symmetric techniques,ISO/IEC 11770-2:1996,1996年 4月18日,pp. 1-5,[2006年9月11日検索],インターネット,URL,http://www.webstore.jsa.or.jp/webstore/Com/FlowControl.jsp?bunsyoId=ISO%2FIEC+11770-2%3A1996&dantaiCd=ISO&status=1&pageNo=0&lang=jp
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
以下、図面を参照して本発明の実施形態を説明する。
[第1実施形態]
まず、第1実施形態を説明する。
【0012】
<構成>
図1に例示するように、本形態の認証システム1はN個の認証装置11−1〜11−Nを有する。本形態のNは2以上の整数である。N個の認証装置11−1〜11−Nは、それぞれインターネット等のネットワーク12を通じて通信可能に構成されている。
【0013】
図2に例示するように、本形態の認証装置11−n(ただし、n∈{1,・・・,N})は、記憶部111−n、通信部112−n(入力部および出力部)、乱数生成部113−n、チャレンジ生成部114−n、レスポンス生成部115−n、復号部116−n、判定部117−n、認証成否判定部118−n、および制御部119−nを有する。認証装置11−nは、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)およびRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される装置である。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。また、1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。認証装置11−nは、制御部119−nの制御のもとで各処理を実行する。また、以下では説明を省略するが、通信部112−nに入力されたデータおよび各処理部で得られたデータは図示していない一時メモリに格納され、必要に応じて何れかの処理部に読み込まれて利用される。
【0014】
<事前処理>
事前処理として、各認証装置11−n(ただし、n∈{1,・・・,N})の記憶部111−n(
図2)に共通鍵暗号方式の共通鍵Kが格納される。この共通鍵暗号方式に限定はなく、例えば、AES(Advanced Encryption Standard)やCamellia(登録商標)等を利用できる。本形態の共通鍵暗号方式は、確率的暗号方式であってもよいし、確定的暗号方式であってもよい。確率的暗号方式は、暗号文がランダム性を持つ暗号方式であり、一つの平文に複数個の暗号文が対応し、暗号化の際にそれらの何れかが選択される方式である。確率的暗号方式の一例はCBCモードのAESである。確定的暗号方式は、暗号文がランダム性を持たない暗号方式であり、一つの平文に一つの暗号文が対応する方式である。また、各認証装置11−nには固有な識別子ID(n)(ただし、n∈{1,・・・,N})が割り当てられており、各認証装置11−nの記憶部111−nにはすべての識別子ID(1),・・・,ID(N)が格納される。
【0015】
<認証処理>
図3を用いて本形態の認証処理を説明する。以下では、1個の認証装置11−n(ただし、n∈{1,・・・,N})と1個の認証装置11−m(ただし、m∈{1,・・・,N})との間で認証処理が行われる例を説明する。ただし、他の認証装置の組が同じように認証処理を実行してもよい。また、認証装置11−nおよび認証装置11−mの処理は互いに対称であり、いずれが先に処理を行ってよいが、以下では説明の便宜上、特定の順序で説明を行う。
【0016】
認証装置11−nの乱数生成部113−nは、乱数r(n)(第1乱数)を生成し、それを記憶部111−nに格納するとともに、チャレンジ生成部114−nに送る(ステップS113−n)。
【0017】
認証装置11−mの乱数生成部113−mは、乱数r(m)(第2乱数)を生成し、それを記憶部111−mに格納するとともに、チャレンジ生成部114−mに送る(ステップS113−m)。
【0018】
チャレンジ生成部114−nは、乱数r(n)に対応するチャレンジ値C(n,m)(第1チャレンジ値)を生成する。チャレンジ値C(n,m)は、乱数r(n)そのものであってもよいし、乱数r(n)を含む情報であってもよいし、乱数r(n)の関数値であってもよいし、乱数r(n)を含む情報の関数値であってもよい。このようなチャレンジ値をC(n,m)=g
n(r(n))と表記する。またチャレンジ生成部114−nは、記憶部111−nから識別子ID(n),ID(m)を読み込む。さらにチャレンジ生成部114−nは、認証装置11−nから認証装置11−mへの認証要求Req(n,m)(第1認証要求)を生成する。認証要求Req(n,m)、チャレンジ値C(n,m)、および識別子ID(n),ID(m)は通信部112−nに送られ、通信部112−nは、認証要求Req(n,m)とともに、チャレンジ値C(n,m)および識別子ID(n),ID(m)を出力(送信)する(ステップS114−n)。
【0019】
チャレンジ生成部114−mは、乱数r(m)に対応するチャレンジ値C(m,n)(第2チャレンジ値)を生成する。チャレンジ値C(m,n)は、乱数r(m)そのものであってもよいし、乱数r(m)を含む情報であってもよいし、乱数r(m)の関数値であってもよいし、乱数r(m)を含む情報の関数値であってもよい。このようなチャレンジ値をC(m,n)=g
m(r(m))と表記する。またチャレンジ生成部114−mは、記憶部111−mから識別子ID(n),ID(m)を読み込む。さらにチャレンジ生成部114−mは、認証装置11−mから認証装置11−nへの認証要求Req(m,n)(第2認証要求)を生成する。認証要求Req(m,n)、チャレンジ値C(m,n)、および識別子ID(n),ID(m)は通信部112−mに送られ、通信部112−mは、認証要求Req(m,n)とともに、チャレンジ値C(m,n)および識別子ID(n),ID(m)を出力(送信)する(ステップS114−m)。
【0020】
認証装置11−mから送信された認証要求Req(m,n)、チャレンジ値C(m,n)、および識別子ID(n),ID(m)は、認証装置11−nの通信部112−nに入力され、レスポンス生成部115−nに送られる(ステップS1151−n)。レスポンス生成部115−nは、記憶部111−nから識別子ID(n),ID(m)(便宜上、「ID’(n),ID’(m)」と表記する)を読み込み、記憶部111−nから読み込んだ識別子ID’(n),ID’(m)と、認証装置11−mから送信された識別子ID(n),ID(m)とが、それぞれ等しいかが判定される(ステップS1152−n)。ここでID’(n)=ID(n)かつID’(m)=ID(m)であれば、ID(n),ID(m)が合格であるとしてステップS1153−nに進む。一方、ID’(n)≠ID(n)またはID’(m)≠ID(m)であれば、認証が失敗であるとして(ステップS1173−n)、ステップS1174−nに進む。ステップS1153−nでは、レスポンス生成部115−nが記憶部111−nから共通鍵Kを読み込む。レスポンス生成部115−nは、共通鍵Kを用いてチャレンジ値C(m,n)(第2チャレンジ値)に対応する値を前述の共通鍵暗号方式で暗号化してレスポンス値R(m,n)(第2レスポンス値)を得て出力する。チャレンジ値C(m,n)に対応する値は、チャレンジ値C(m,n)そのものであってもよいし、チャレンジ値C(m,n)を含む情報であってもよいし、チャレンジ値C(m,n)の関数値であってもよいし、チャレンジ値C(m,n)を含む情報の関数値であってもよい。このようなチャレンジ値C(m,n)に対応する値をf
n(C(m,n))と表記する。共通鍵Kを用いてf
n(C(m,n))を前述の共通鍵暗号方式で暗号化して得られる暗号文をE
K(f
n(C(m,n)))と表記すると、R(m,n)=E
K(f
n(C(m,n)))となる。レスポンス値R(m,n)は通信部112−nに送られ、通信部112−nはレスポンス値R(m,n)を出力(送信)する(ステップS1153−n)。
【0021】
同様に認証装置11−mでも、レスポンス生成部115−mが、記憶部111−mから識別子ID(n),ID(m)(便宜上、「ID”(n),ID”(m)」と表記する)を読み込み、記憶部111−mから読み込んだ識別子ID”(n),ID”(m)と、認証装置11−nから送信された識別子ID(n),ID(m)とが、それぞれ等しいかが判定される(ステップS1152−m)。ここでID’(n)=ID(n)かつID”(m)=ID(m)であれば、ID(n),ID(m)が合格であるとしてステップS1153−mに進む。一方、ID”(n)≠ID(n)またはID”(m)≠ID(m)であれば、認証が失敗であるとして(ステップS1173−m)、ステップS1174−mに進む。ステップS1153−mでは、レスポンス生成部115−mが記憶部111−mから共通鍵Kを読み込む。レスポンス生成部115−mは、共通鍵Kを用いてチャレンジ値C(n,m)(第1チャレンジ値)に対応する値を前述の共通鍵暗号方式で暗号化してレスポンス値R(n,m)(第1レスポンス値)を得て出力する。チャレンジ値C(n,m)に対応する値は、チャレンジ値C(n,m)そのものであってもよいし、チャレンジ値C(n,m)を含む情報であってもよいし、チャレンジ値C(n,m)の関数値であってもよいし、チャレンジ値C(n,m)を含む情報の関数値であってもよい。このようなチャレンジ値C(n,m)に対応する値をf
m(C(n,m))と表記する。共通鍵Kを用いてf
m(C(n,m))を前述の共通鍵暗号方式で暗号化して得られる暗号文をE
K(f
m(C(n,m)))と表記すると、R(n,m)=E
K(f
m(C(n,m)))となる。レスポンス値R(n,m)は通信部112−mに送られ、通信部112−mはレスポンス値R(n,m)を出力(送信)する(ステップS1153−m)。
【0022】
レスポンス値R(n,m)は、認証装置11−nの通信部112−nに入力され、復号部116−nに送られる(ステップS1154−n)。復号部116−nは、記憶部111−nから共通鍵Kを読み込み、当該共通鍵Kを用い、前述の共通鍵暗号方式に則って、レスポンス値R(n,m)を復号して復号結果D
K(R(n,m))(第1復号結果)を得て出力する。復号結果D
K(R(n,m))は判定部117−nに送られる(ステップS116−n)。判定部117−nは、記憶部111−nから乱数r(n)を読み込み、復号結果D
K(R(n,m))がC(n,m)=g
n(r(n))に対応する値f
m(C(n,m))と一致するか(すなわち、D
K(R(n,m))=f
m(C(n,m))を満たすか)を判定する。例えば、D
K(R(n,m))=C(n,m)であるかが判定される(ステップS1171−n)。ここで、レスポンス値R(n,m)が共通鍵Kを用いて正しく生成されたのであれば、D
K(R(n,m))=f
m(C(n,m)を満たす。一方、共通鍵Kを用いることなくD
K(R(n,m))=f
m(C(n,m)を満たすレスポンス値R(n,m)を生成できる確率は無視できるほど小さい。そのため、D
K(R(n,m))=f
m(C(n,m)を満たすか否かによって、レスポンス値R(n,m)が共通鍵Kを保持する正当な装置によって生成されたかを判定できる。これに基づき、D
K(R(n,m))=f
m(C(n,m))であれば、認証が成功であるとして(ステップS1172−n)、ステップS1174−nに進む。一方、D
K(R(n,m))≠f
m(C(n,m))であれば、認証が失敗であるとして(ステップS1173−n)、ステップS1174−nに進む。ステップS1174−nでは、判定部117−nが、認証が成功したか(T)、失敗したか(F)を表す認証成否情報D(n,m)∈{T,F}を認証成否判定部118−nおよび通信部112−nに送る。通信部112−nは認証成否情報D(n,m)を出力(送信)する(ステップS1174−n)。
【0023】
同様に、認証装置11−nから送られたレスポンス値R(m,n)は、認証装置11−mの通信部112−mに入力され、復号部116−mに送られる(ステップS1154−m)。復号部116−mは、記憶部111−mから共通鍵Kを読み込み、当該共通鍵Kを用い、前述の共通鍵暗号方式に則って、レスポンス値R(m,n)を復号して復号結果D
K(R(m,n))(第2復号結果)を得て出力する。復号結果D
K(R(m,n))は判定部117−nに送られる(ステップS116−n)。判定部117−nは、記憶部111−nから乱数r(m)を読み込み、復号結果D
K(R(m,n))がC(m,n)=g
m(r(m))に対応する値f
n(C(m,n))と一致するか(すなわち、D
K(R(m,n))=f
n(C(m,n))を満たすか)を判定する。例えば、D
K(R(m,n))=C(m,n)であるかが判定される(ステップS1171−m)。ここで、レスポンス値R(m,n)が共通鍵Kを用いて正しく生成されたのであれば、D
K(R(m,n))=f
n(C(m,n)を満たす。一方、共通鍵Kを用いることなくD
K(R(m,n))=f
n(C(m,n))を満たすレスポンス値R(m,n)を生成できる確率は無視できるほど小さい。そのため、D
K(R(m,n))=f
n(C(m,n))を満たすか否かによって、レスポンス値R(m,n)が共通鍵Kを保持する正当な装置によって生成されたかを判定できる。これに基づき、D
K(R(m,n))=f
n(C(m,n))であれば、認証が成功であるとして(ステップS1172−m)、ステップS1174−mに進む。一方、D
K(R(m,n))≠f
n(C(m,n))であれば、認証が失敗であるとして(ステップS1173−m)、ステップS1174−mに進む。ステップS1174−mでは、判定部117−mが、認証が成功したか(T)、失敗したか(F)を表す認証成否情報D(m,n)∈{T,F}を認証成否判定部118−mおよび通信部112−mに送る。通信部112−mは認証成否情報D(m,n)を出力(送信)する(ステップS1174−m)。
【0024】
認証装置11−mから送られた認証成否情報D(m,n)は認証装置11−nの通信部112−nに入力され、認証成否判定部118−nに送られる。認証成否判定部118−nは、認証成否情報D(n,m)およびD(m,n)が「認証が成功したこと(T)」を表すかを判定する(ステップS1181−n)。これらすべてが「認証が成功したこと(T)」を表す場合(D(n,m)=D(m,n)=T)、認証成否判定部118−nは、最終的に認証が成功した旨の情報を出力する(ステップS1182−n)。一方、認証成否情報D(n,m)およびD(m,n)の少なくとも一方が「認証が失敗したこと(F)」を表す場合(D(n,m)=FまたはD(m,n)=F)、認証成否判定部118−nは、最終的に認証が失敗した旨の情報を出力する(ステップS1183−n)。
【0025】
同様に、認証装置11−nから送られた認証成否情報D(n,m)は認証装置11−mの通信部112−mに入力され、認証成否判定部118−mに送られる。認証成否判定部118−mは、認証成否情報D(n,m)およびD(m,n)が「認証が成功したこと(T)」を表すかを判定する(ステップS1181−m)。これらすべてが「認証が成功したこと(T)」を表す場合(D(n,m)=D(m,n)=T)、認証成否判定部118−mは、最終的に認証が成功した旨の情報を出力する(ステップS1182−m)。一方、認証成否情報D(n,m)およびD(m,n)の少なくとも一方が「認証が失敗したこと(F)」を表す場合(D(n,m)=FまたはD(m,n)=F)、認証成否判定部118−mは、最終的に認証が失敗した旨の情報を出力する(ステップS1183−m)。
【0026】
<本形態の特徴>
本形態では、互いに対等な認証装置11−nと認証装置11−mとが、認証要求とともにチャレンジ値を送信して認証処理を開始し、互いに対称な認証処理を行う。そのため、それぞれが行う必要がある通信は、(1)認証要求およびチャレンジの出力、(2)それに対応するレスポンスの入力、および(3)認証結果の出力の3段であり、従来よりも通信段数を削減できる。
【0027】
また本形態では、すべての認証成否情報が「認証が成功したこと」を表す場合に最終的に認証が成功したとし、それ以外のときに最終的に認証が失敗したとする。これにより、通信相手の認証装置が正当であることを互いに確認できる。
【0028】
[第2実施形態]
第2実施形態では、3個以上の認証装置が互いに対称な認証処理を並行に行う。以下では、これまでに説明した事項との相違点を中心に説明し、既に説明した事項については同じ参照番号を流用して説明を簡略化する。
【0029】
<構成>
図1に例示するように、本形態の認証システム2はN個の認証装置21−1〜21−Nを有する。本形態のNは3以上の整数である。N個の認証装置21−1〜21−Nは、それぞれインターネット等のネットワーク12を通じて通信可能に構成されている。
【0030】
図2に例示するように、本形態の認証装置21−n(ただし、n∈{1,・・・,N})は、記憶部111−n、通信部212−n(入力部および出力部)、乱数生成部113−n、チャレンジ生成部214−n、レスポンス生成部215−n、復号部216−n、判定部217−n、認証成否判定部218−n、および制御部119−nを有する。認証装置21−nは、第1実施形態で説明したコンピュータが所定のプログラムを実行することで構成される装置であってもよいし、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。認証装置21−nは、制御部119−nの制御のもとで各処理を実行する。また、以下では説明を省略するが、通信部212−nに入力されたデータおよび各処理部で得られたデータは図示していない一時メモリに格納され、必要に応じて何れかの処理部に読み込まれて利用される。
【0031】
<事前処理>
第1実施形態と同じである。
【0032】
<認証処理>
図4を用いて本形態の認証処理を説明する。本形態では、各認証装置21−n(ただし、n∈{1,・・・,N})がその他の複数個(N−1個)の認証装置21−m(ただし、m∈{1,・・・,N}かつn≠m)との間で第1実施形態と同様な認証処理を並行に行う。ただし、第1実施形態では1対1の認証処理であったのに対し、本形態では、各認証装置21−nが1対多の認証処理を行う。具体的には、例えば、各認証装置21−n(ただし、n∈{1,・・・,N})が以下の処理を行う。
【0033】
各認証装置21−n(ただし、n∈{1,・・・,N})の乱数生成部113−nは、乱数r(n)(第1乱数)を生成し、それを記憶部111−nに格納するとともに、チャレンジ生成部214−nに送る(ステップS213−n)。
【0034】
各チャレンジ生成部214−nは、乱数r(n)に対応するN−1個のチャレンジ値C(n,m)=g
n(r(n))(第1チャレンジ値)(ただし、m∈{1,・・・,N}かつn≠m)を生成する。ただし、各mに対応するチャレンジ値C(n,m)は互いに同一であってもよいし、そうでなくてもよい。また各チャレンジ生成部214−nは、記憶部111−nから識別子ID(1),・・・,ID(N)を読み込む。さらに各チャレンジ生成部214−nは、認証装置21−nからN−1個の認証装置21−m(ただし、m∈{1,・・・,N}かつn≠m)への認証要求Req(n,m)(第1認証要求)を生成する。認証要求Req(n,m)、チャレンジ値C(n,m)、および識別子ID(1),・・・,ID(N)は通信部212−nに送られ、各通信部212−nは、認証要求Req(n,m)とともに、チャレンジ値C(n,m)および識別子ID(1),・・・,ID(N)を各認証装置21−m(ただし、m∈{1,・・・,N}かつn≠m)に出力(送信)する(ステップS214−n)。
【0035】
N−1個の認証装置21−m(ただし、m∈{1,・・・,N}かつn≠m)から送信された認証要求Req(m,n)、チャレンジ値C(m,n)、および識別子ID(1),・・・,ID(N)は、各認証装置21−nの通信部212−nに入力され、レスポンス生成部215−nに送られる(ステップS2151−n)。レスポンス生成部215−nは、記憶部111−nから識別子ID(1),・・・,ID(N)(便宜上、「ID’(1),・・・,ID’(N)」と表記する)を読み込み、記憶部111−nから読み込んだ識別子ID’(1),・・・,ID’(N)と、N−1個の認証装置21−mから送信された識別子ID(1),・・・,ID(N)とが、それぞれ等しいかが判定される(ステップS2152−n)。ここで、すべてのi∈{1,・・・,N}についてID’(i)=ID(i)であれば、ID(1),・・・,ID(N)が合格であるとしてステップS2153−nに進む。一方、何れかのiについてID’(i)≠ID(i)であれば、認証が失敗であるとして(ステップS2173−n)、ステップS2174−nに進む。ステップS2153−nでは、レスポンス生成部215−nが記憶部111−nから共通鍵Kを読み込む。レスポンス生成部215−nは、共通鍵Kを用いてN−1個のチャレンジ値C(m,n)(ただし、m∈{1,・・・,N}かつn≠m)(第2チャレンジ値)のそれぞれに対応する値f
n(C(m,n))を前述の共通鍵暗号方式で暗号化してN−1個のレスポンス値R(m,n)=E
K(f
n(C(m,n)))(第2レスポンス値)を得て出力する。レスポンス値R(m,n)は通信部212−nに送られ、通信部212−nはN−1個のレスポンス値R(m,n)を出力(送信)する(ステップS2153−n)。
【0036】
N−1個の認証装置21−m(ただし、m∈{1,・・・,N}かつn≠m)から送信されたN−1個のレスポンス値R(n,m)は、各認証装置21−nの通信部212−nに入力され、復号部216−nに送られる(ステップS2154−n)。各復号部216−nは、記憶部111−nから共通鍵Kを読み込み、当該共通鍵Kを用い、前述の共通鍵暗号方式に則って、レスポンス値R(n,m)を復号してN−1個の復号結果D
K(R(n,m))(第1復号結果)を得て出力する。N−1個の復号結果D
K(R(n,m))は判定部217−nに送られる(ステップS216−n)。判定部217−nは、記憶部111−nから乱数r(n)を読み込み、各復号結果D
K(R(n,m))がC(n,m)=g
n(r(n))に対応する値f
m(C(n,m))と一致するか(すなわち、D
K(R(n,m))=f
m(C(n,m))を満たすか)を判定する。例えば、D
K(R(n,m))=C(n,m)を満たすかが判定される(ステップS2171−n)。ここで、すべてのm(ただし、m∈{1,・・・,N}かつn≠m)についてD
K(R(n,m))=f
m(C(n,m))であれば、認証が成功であるとして(ステップS2172−n)、ステップS2174−nに進む。一方、何れかのmについてD
K(R(n,m))≠f
m(C(n,m))であれば、認証が失敗であるとして(ステップS2173−n)、ステップS2174−nに進む。ステップS2174−nでは、判定部217−nが、認証が成功したか(T)、失敗したか(F)を表す認証成否情報D(n,m)∈{T,F}を認証成否判定部218−nおよび通信部212−nに送る。通信部212−nは、認証成否情報D(n,m)をN−1個の認証装置21−m(ただし、m∈{1,・・・,N}かつn≠m)に出力(送信)する(ステップS2174−n)。
【0037】
N−1個の認証装置21−mから送られたN−1個の認証成否情報D(m,n)は認証装置21−nの通信部212−nに入力され、認証成否判定部218−nに送られる。各認証成否判定部218−nは、認証成否情報D(n,m)およびN−1個のD(m,n)(ただし、m∈{1,・・・,N}かつn≠m)が「認証が成功したこと(T)」を表すかを判定する(ステップS2181−n)。これらすべてが「認証が成功したこと(T)」を表す場合(D(n,m)=D(m,n)=T)、認証成否判定部218−nは、最終的に認証が成功した旨の情報を出力する(ステップS2182−n)。一方、何れかの認証成否情報D(n,m)およびD(m,n)が「認証が失敗したこと(F)」を表す場合、認証成否判定部218−nは、最終的に認証が失敗した旨の情報を出力する(ステップS2183−n)。
【0038】
<N=3の例>
図5Aおよび
図5Bを用いて、N=3の場合の認証装置21−1〜21−3間での情報のやり取りを例示する。
【0039】
≪ステップS213−1、S213−2、S213−3≫
図5Aに例示するように、ステップS213−1では、認証装置21−1が、認証装置21−2および認証装置21−3に対し、それぞれ(Req(1,2),C(1,2),ID(1),・・・,ID(N))および(Req(1,3),C(1,3),ID(1),・・・,ID(N))を送る。ステップS213−2では、認証装置21−2が、認証装置21−1および認証装置21−3に対し、それぞれ(Req(2,1),C(2,1),ID(1),・・・,ID(N))および(Req(2,3),C(2,3),ID(1),・・・,ID(N))を送る。ステップS213−3では、認証装置21−3が、認証装置21−1および認証装置21−2に対し、それぞれ(Req(3,1),C(3,1),ID(1),・・・,ID(N))および(Req(3,2),C(3,2),ID(1),・・・,ID(N))を送る。
【0040】
≪ステップS2153−1、S2153−2、S2153−3≫
図5Bに例示するように、ステップS2153−1では、認証装置21−1が、認証装置21−2および認証装置21−3に対し、それぞれR(2,1)およびR(3,1)を送る。ステップS2153−2では、認証装置21−2が、認証装置21−1および認証装置21−3に対し、それぞれR(1,2)およびR(3,2)を送る。ステップS2153−3では、認証装置21−3が、認証装置21−1および認証装置21−2に対し、それぞれR(2,3)およびR(1,3)を送る。
【0041】
≪ステップS2174−1、S2174−2、S2174−3≫
図5Bに例示するように、ステップS2174−1では、認証装置21−1が、認証装置21−2および認証装置21−3に対し、それぞれD(1,2)およびD(1,3)を送る。ステップS2174−2では、認証装置21−2が、認証装置21−1および認証装置21−3に対し、それぞれD(2,1)およびD(2,3)を送る。ステップS2174−3では、認証装置21−3が、認証装置21−1および認証装置21−2に対し、それぞれD(3,1)およびD(3,2)を送る。
【0042】
<本形態の特徴>
本形態では、互いに対等な認証装置11−nと複数個の認証装置11−m(ただし、m∈{1,・・・,N}かつn≠m)とが、認証要求とともにチャレンジ値を送信して認証処理を開始し、互いに対称な認証処理を並行して行う。この場合も、それぞれが行う必要がある通信は、(1)認証要求およびチャレンジの出力、(2)それに対応するレスポンスの入力、および(3)認証結果の出力の3段であり、従来よりも通信段数を削減できる。さらに、各認証装置11−nが複数個の認証装置11−mと1対多の認証処理を並行に実行するため、効率的に複数個の認証装置11−mとの間で認証処理を行うことができる。
【0043】
また本形態では、すべての認証成否情報が「認証が成功したこと」を表す場合に最終的に認証が成功したとし、それ以外のときに最終的に認証が失敗したとする。これにより、すべての認証装置が正当であることを互いに確認できる。
【0044】
[第3実施形態]
本形態は、第2実施形態の変形例である。本形態でも3個以上の認証装置が互いに対称な認証処理を並行に行う。第2実施形態との相違点は、共通鍵暗号方式を確率的暗号方式に限定し、N−1個の認証装置21−mから認証装置21−nに返されたレスポンス値R(m,n)の何れかが互いに同値となる場合にリトライする点である。
【0045】
<構成>
図1に例示するように、本形態の認証システム3はN個の認証装置21−1〜21−Nを有する。本形態のNは3以上の整数である。N個の認証装置31−1〜31−Nは、それぞれインターネット等のネットワーク12を通じて通信可能に構成されている。
【0046】
図2に例示するように、本形態の認証装置31−n(ただし、n∈{1,・・・,N})は、記憶部111−n、通信部212−n(入力部および出力部)、乱数生成部113−n、チャレンジ生成部214−n、レスポンス生成部215−n、復号部216−n、判定部217−n,317−n、認証成否判定部218−n、および制御部119−nを有する。認証装置31−nは、第1実施形態で説明したコンピュータが所定のプログラムを実行することで構成される装置であってもよいし、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。認証装置31−nは、制御部119−nの制御のもとで各処理を実行する。また、以下では説明を省略するが、通信部212−nに入力されたデータおよび各処理部で得られたデータは図示していない一時メモリに格納され、必要に応じて何れかの処理部に読み込まれて利用される。
【0047】
<事前処理>
第1実施形態と同じである。ただし、本形態で使用される共通鍵暗号方式は確率的暗号方式である。
【0048】
<認証処理>
図4を用いて本形態の認証処理を説明する。まず、第2実施形態で説明したステップS213−nからステップS2154−nまでの処理が実行される。ただし、認証装置21−nが認証装置31−nに置換され、認証装置21−mが認証装置31−mに置換される。また、N−1個の認証装置31−m(ただし、m∈{1,・・・,N}かつn≠m)から送信されたN−1個のレスポンス値R(n,m)は、各認証装置31−nの判定部317−nにも送られる。判定部317−nは、これらN−1個のレスポンス値R(n,m)(ただし、m∈{1,・・・,N}かつn≠m)を要素とする集合SETが互いに同一の要素を含むかを判定する。言い換えると、これらN−1個のレスポンス値R(n,m)のうち、互いに同値となるものが存在するかが判定される(ステップS3154−n)。ここで、集合SETが互いに同一の要素を含むと判定された場合には、不正が行われた可能性があるものとして処理をステップS213−nに戻し、最初から処理をやり直す(第1出力部の処理および第2入力部の処理をやり直す)。なお、このやり直し回数の上限を定め、その上限を超えるやり直しが生じた場合には認証処理をエラー終了させてもよい。一方、集合SETが互いに同一の要素を含まないと判定された場合には、第2実施形態で説明したステップS216−n以降の処理が実行される。
【0049】
<本形態の特徴>
レスポンスの生成に使用する共通鍵暗号方式を確率的暗号方式とした場合、認証装置31−nから出力されるN−1個のチャレンジ値C(n,m)が同値であったとしても、それに対してN−1個の認証装置31−mから認証装置31−nに返されたレスポンス値R(m,n)のいずれかが同値となる確率は低い。それにもかかわらず、レスポンス値R(m,n)のいずれかが同値となった場合には不正が行われた可能性がある。本形態では、このような場合に処理をやり直すため、何れかの認証装置31−mから出力されたレスポンス値R(m,n)を流用した成りすましを防止できる。その他、第2実施形態と同じ作用効果も得られる。
【0050】
[その他の変形例]
なお、本発明は上述の実施の形態に限定されるものではない。例えば、上述の各実施形態では、認証要求およびチャレンジ値とともに識別子ID(i)を送ることとしたが、識別子ID(i)が省略されてもよい。この場合にはステップS1152−n,S1152−m,S2152−nの処理が省略され、ステップS1151−n,S1151−m,S2151−nの後にステップS1153−n,S1153−m,S2153−nが実行される。
【0051】
例えば、各装置がネットワークを通じて情報をやり取りするのではなく、少なくとも一部の組の装置が可搬型記録媒体を介して情報をやり取りしてもよい。上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【0052】
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
【0053】
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0054】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
【0055】
上記実施形態では、コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されたが、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
【解決手段】認証装置は、第1認証要求とともに、乱数に対応する第1チャレンジ値を出力する。また、認証装置には第2認証要求とともに、第2チャレンジ値が入力され、認証装置は、共通鍵を用いて第2チャレンジ値に対応する値を共通鍵暗号方式で暗号化して得られる第2レスポンス値を出力する。さらに、当該認証装置には第1チャレンジ値に対する第1レスポンス値が入力され、共通鍵を用いて第1レスポンス値を復号して得られる復号結果と第1チャレンジ値に対応する値とが一致するかを判定する。