(57)【特許請求の範囲】
【請求項１】
第１入力データを受付ける受付部と、
前記第１入力データに基づいて、第１出力データと、前記第１入力データとの誤差が予
め定められた第１範囲に含まれる第２入力データから前記第１出力データを計算するため
の第１補助データとを計算し、前記第１出力データおよび前記第１補助データのうち少な
くとも１つと、前記第１入力データとに基づいて、前記第１出力データから前記第１入力
データを計算するための第２補助データを計算する第１計算部と、
前記第２入力データと前記第１補助データとに基づいて前記第１出力データを計算する
第２計算部と、
前記第１出力データと前記第２補助データとに基づいて前記第１入力データを計算する
第３計算部と、
を備え、
前記第１計算部は、複数のハッシュ関数のうち、前記第１出力データおよび前記第１補
助データのうち少なくとも１つに応じて定められる前記ハッシュ関数を選択し、選択され
た前記ハッシュ関数と前記第１入力データとに基づいて前記第２補助データを計算し、
前記第３計算部は、複数の前記ハッシュ関数のうち、前記第１出力データおよび前記第
１補助データのうち少なくとも１つに応じて定められる前記ハッシュ関数を選択し、選択
されたハッシュ関数と前記第２補助データとに基づいて前記第１入力データを計算するこ
とを特徴とする情報処理装置。
【請求項２】
第１入力データを受付ける受付部と、
前記第１入力データに基づいて、第１出力データと、前記第１入力データとの誤差が予
め定められた第１範囲に含まれる第２入力データから前記第１出力データを計算するため
の第１補助データとを計算し、前記第１出力データおよび前記第１補助データのうち少な
くとも１つと、前記第１入力データとに基づいて、前記第１出力データから前記第１入力
データを計算するための第２補助データを計算する第１計算部と、
前記第２入力データと前記第１補助データとに基づいて前記第１出力データを計算する
第２計算部と、
前記第１出力データと前記第２補助データとに基づいて前記第１入力データを計算する
第３計算部と、
を備え、
前記第１計算部は、前記第１出力データおよび前記第１補助データのうち少なくとも１
つに基づいて、前記第１入力データを暗号化するための暗号化鍵を計算し、前記暗号化鍵
によって前記第１入力データを暗号化した前記第２補助データを計算し、
前記第３計算部は、前記第１出力データおよび前記第１補助データのうち少なくとも１
つに基づいて、前記第２補助データを復号するための復号鍵を計算し、前記復号鍵によっ
て前記第２補助データを復号した前記第１入力データを計算し、
さらに、
前記第１計算部は、前記第１出力データとの誤差が予め定められた第２範囲内の第３入
力データから前記第１入力データを計算するための第３補助データをさらに計算し、前記
第１出力データおよび前記第３補助データのうち少なくとも１つと、前記第１入力データ
とに基づいて前記第２補助データを計算し、
前記第３計算部は、前記第３入力データと前記第３補助データとから、前記第１出力デ
ータを計算し、計算した前記第１出力データと前記第２補助データとに基づいて前記第１
入力データを計算することを特徴とする情報処理装置。
【請求項３】
外部装置と接続された擬似乱数生成装置であって、
第１入力データを受付ける受付部と、
前記第１入力データに基づいて、第１出力データと、前記第１入力データとの誤差が予
め定められた第１範囲に含まれる第２入力データから前記第１出力データを計算するため
の第１補助データとを計算し、前記第１出力データおよび前記第１補助データのうち少な
くとも１つと、前記第１入力データとに基づいて、前記第１出力データから前記第１入力
データを計算するための第２補助データを計算する第１計算部と、
を備え、
前記外部装置は、
前記第２入力データと前記第１補助データとに基づいて前記第１出力データを計算する
第２計算部と、
前記第１出力データと前記第２補助データとに基づいて前記第１入力データを計算する
第３計算部と、を備え、
前記第１計算部は、複数のハッシュ関数のうち、前記第１出力データおよび前記第１補
助データのうち少なくとも１つに応じて定められる前記ハッシュ関数を選択し、選択され
た前記ハッシュ関数と前記第１入力データとに基づいて前記第２補助データを計算し、
前記第３計算部は、複数の前記ハッシュ関数のうち、前記第１出力データおよび前記第
１補助データのうち少なくとも１つに応じて定められる前記ハッシュ関数を選択し、選択
されたハッシュ関数と前記第２補助データとに基づいて前記第１入力データを計算するこ
とを特徴とする擬似乱数生成装置。
【請求項４】
外部装置と接続されたコンピュータを、
第１入力データを受付ける受付部と、
前記第１入力データに基づいて、第１出力データと、前記第１入力データとの誤差が予
め定められた第１範囲に含まれる第２入力データから前記第１出力データを計算するため
の第１補助データとを計算し、前記第１出力データおよび前記第１補助データのうち少な
くとも１つと、前記第１入力データとに基づいて、前記第１出力データから前記第１入力
データを計算するための第２補助データを計算する第１計算部
として機能させるためのプログラムであって、
前記外部装置は、
前記第２入力データと前記第１補助データとに基づいて前記第１出力データを計算する
第２計算部と、
前記第１出力データと前記第２補助データとに基づいて前記第１入力データを計算する
第３計算部と、を備え、
前記第１計算部は、複数のハッシュ関数のうち、前記第１出力データおよび前記第１補
助データのうち少なくとも１つに応じて定められる前記ハッシュ関数を選択し、選択され
た前記ハッシュ関数と前記第１入力データとに基づいて前記第２補助データを計算し、
前記第３計算部は、複数の前記ハッシュ関数のうち、前記第１出力データおよび前記第
１補助データのうち少なくとも１つに応じて定められる前記ハッシュ関数を選択し、選択
されたハッシュ関数と前記第２補助データとに基づいて前記第１入力データを計算するこ
とを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置、擬似乱数生成装置およびプログラムに関する。
【背景技術】
【０００２】
入力されたデータが誤差を含む場合がある認証システムでは、入力されたデータが所定の誤差範囲内であれば、認証に用いるための誤差のないデータ（認証データ）を計算することが要求される。
【０００３】
そのような計算を実現する技術として、ファジー・エクストラクタ（Ｆｕｚｚｙ  Ｅｘｔｒａｃｔｏｒ）とよばれる擬似乱数生成装置が知られている。
【０００４】
前述の入力されたデータが誤差を含む場合がある認証システムは、システム登録時に受け付けたデータを入力としてファジー・エクストラクタが出力する擬似乱数を認証データとする。そして、認証データを、ファジー・エクストラクタが擬似乱数と共に出力する補助データとともに記憶する。認証する際には、誤差を含む可能性がある入力データと補助データとをファジー・エクストラクタに入力して出力データを計算し、記憶した認証データと出力データとが一致する場合には認証要求を受理し、一致しない場合には棄却する。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Y.Dodis  et  al.，Fuzzy  Extractors:  How  to  Generate  Strong  Keys  from  Biometrics  and  Other  Noisy  Data.  SIAM  Journal  on  Computing  Volume  38，Number  1，97-139，2008.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、入力されたデータが誤差を含む場合がある認証システムにファジー・エクストラクタを用いる場合には、認証システムが記憶する出力データと補助データとから、入力データを復元することができないという問題がある。
【課題を解決するための手段】
【０００７】
実施形態の情報処理装置は、第１計算部、第２計算部および第３計算部を備える。第１計算部は、第１入力データに基づいて、第１出力データと、第１入力データとの誤差が第１範囲に含まれる第２入力データから第１出力データを計算するための第１補助データとを計算し、第１出力データおよび第１補助データのうち少なくとも１つと、第１入力データとに基づいて、第１出力データから第１入力データを計算するための第２補助データを計算する。第２計算部は、第２入力データと第１補助データとに基づいて第１出力データを計算する。第３計算部は、第１出力データと第２補助データとに基づいて第１入力データを計算する。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態にかかる情報処理装置のブロック図。
【図２】第１の実施形態における擬似乱数生成処理のフローチャート。
【図３】第１の実施形態における擬似乱数再現処理のフローチャート。
【図４】第１の実施形態における逆像計算処理のフローチャート。
【図５】第１の実施形態における擬似乱数生成処理のフローチャート。
【図６】第１の実施形態における逆像計算処理のフローチャート。
【図７】第２の実施形態にかかる情報処理装置のブロック図。
【図８】第２の実施形態における擬似乱数生成処理のフローチャート。
【図９】第２の実施形態における逆像計算処理のフローチャート。
【図１０】第３の実施形態における情報処理装置のブロック図。
【図１１】第３の実施形態における登録処理のフローチャート。
【図１２】第３の実施形態における認証処理のフローチャート。
【図１３】第３の実施形態における音声データ復元処理のフローチャート。
【図１４】第１から第３の実施形態にかかる情報処理装置のハードウェア構成図。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、この発明にかかる情報処理装置の好適な実施形態を詳細に説明する。
【００１０】
最初に、非特許文献１のファジー・エクストラクタの構成を説明する。ファジー・エクストラクタは、生成関数（非特許文献１の「Ｇｅｎ」）と再現関数（非特許文献１の「Ｒｅｐ」）の２つの関数からなる。生成関数は、第１入力データを受け付けて、出力データと補助データとを計算する関数である。再現関数は、第１入力データと第２入力データの誤差が所定の範囲内であるとき、第２入力データと補助データとを受け付けて、出力データを再現する関数である。
【００１１】
（第１の実施形態）
第１の実施形態では、生成関数Ｇｅｎと再現関数Ｒｅｐを利用して、擬似乱数の生成（生成部）、擬似乱数の再現（再現部）、および、入力データの復元（逆像計算部）を行う構成例を示す。非特許文献１の生成関数および再現関数と同等の機能を有する関数であれば、非特許文献１で開示されている生成関数および再現関数とは異なる関数を用いて本実施形態を構成しても良い。
【００１２】
図１は、第１の実施形態にかかる情報処理装置１００の構成の一例を示すブロック図である。図１に示すように、情報処理装置１００は、生成部１１０と、再現部１２０と、逆像計算部１３０とを備えている。生成部１１０、再現部１２０、および逆像計算部１３０は、別々の装置として構成されて、ネットワークを介して接続されても良いし、１つ以上の装置が同一の装置として構成されても良い。例えば、生成部１１０を、１つの擬似乱数生成装置として構成しても良い。
【００１３】
生成部１１０は、入出力部１１３と、第１計算部１１１とを備えている。入出力部１１３は、第１入力データを受け付ける受付部として機能し、さらに、第１出力データと第１補助データおよび第２補助データを出力する。
【００１４】
第１計算部１１１は、ファジー・エクストラクタの生成関数Ｇｅｎを計算するＧｅｎ計算部１１１ａと、第２補助データ計算部１１１ｂとを備えている。Ｇｅｎ計算部１１１ａは、第１入力データから、第１出力データと第１補助データとを計算する。第２補助データ計算部１１１ｂは、第１出力データおよび第１補助データのうち少なくとも１つと第１入力データとから、第２補助データを計算する。第２補助データ計算部１１１ｂは、暗号化関数Ｅｎｃを計算する機能を備える。暗号化関数Ｅｎｃ（ｋ，ｍ）は、ｋを暗号化鍵として利用し、平文ｍを暗号化処理する関数である。暗号化関数Ｅｎｃとしては、例えばＡＥＳ（Advanced  Encryption  Standard）やＨｉｅｒｏｃｒｙｐｔなどの共通鍵暗号の他に、ＲＳＡ暗号や楕円曲線暗号などを用いても良い。
【００１５】
再現部１２０は、入出力部１２２と、第２計算部１２１とを備えている。入出力部１２２は、第２入力データと第１補助データとを受け付け、第２出力データを出力する。第２計算部１２１は、ファジー・エクストラクタの再現関数Ｒｅｐを計算する機能を含み、第２入力データと第１補助データとから、第２出力データを計算する。
【００１６】
逆像計算部１３０は、入出力部１３２と、第３計算部１３１とを備えている。入出力部１３２は、第１出力データまたは第２出力データと、第２補助データとを受け付け、第３出力データを出力する。第３計算部１３１は、第１出力データまたは第２出力データと、第２補助データとから、第３出力データを計算する。第３計算部１３１は、生成部１１０の第２補助データ計算部１１１ｂが保持する暗号化関数Ｅｎｃに対応する復号関数Ｄｅｃを計算する機能を備える。
【００１７】
次に、このように構成された第１の実施形態にかかる情報処理装置１００による擬似乱数生成処理について図２を用いて説明する。図２は、第１の実施形態における擬似乱数生成処理の全体の流れを示すフローチャートである。
【００１８】
生成部１１０の入出力部１１３は、第１入力データｘ１を受け付ける（ステップＳ１０１）。次に、生成部１１０のＧｅｎ計算部１１１ａは、以下の（１）式に示すように、第１入力データｘ１を生成関数Ｇｅｎに入力し、第１出力データｙ１と第１補助データｗ１を計算する（ステップＳ１０２）。
（ｙ１，ｗ１）＝Ｇｅｎ（ｘ１）・・・（１）
【００１９】
生成部１１０の第２補助データ計算部１１１ｂは、第１入力データｘ１と、（ｙ１，ｗ１）のうち計算に必要な成分とを用いて、以下の手順で第２補助データｗ２を計算する。
【００２０】
第２補助データ計算部１１１ｂは、（ｙ１，ｗ１）の少なくとも１つから暗号化鍵ｋｅを計算する（ステップＳ１０３）。例えば、第２補助データ計算部１１１ｂは、第１出力データｙ１または第１補助データｗ１そのものであるビット列、第１出力データｙ１と第１補助データｗ１とを連結したビット列、または、第１出力データｙ１と第１補助データｗ１とを算術的に加算したビット列を求める。そして、暗号化関数が必要とする鍵長よりも求めたビット長が長い場合には、求めたビット列の部分列を暗号化鍵ｋｅとする。求めたビット列のビット長が鍵長よりも短い場合には０を付与するなどして必要な鍵長の暗号化鍵ｋｅを生成する。
【００２１】
第２補助データ計算部１１１ｂは、第１入力データｘ１と暗号化鍵ｋｅを暗号化関数Ｅｎｃに入力して暗号化処理を行い、第２補助データｗ２＝Ｅｎｃ（ｋｅ，ｘ１）を計算する（ステップＳ１０４）。入出力部１１３は、（ｙ１，ｗ１，ｗ２）を出力する（ステップＳ１０５）。
【００２２】
なお、後述する逆像計算部１３０が鍵ｋ３を保持する場合には、第２補助データ計算部１１１ｂが鍵ｋ３に対応する鍵ｋ２を保持するように構成しても良い。このとき、第２補助データ計算部１１１ｂは鍵ｋ２を暗号化鍵ｋｅとして用いても良い。このとき、暗号化関数Ｅｎｃが共通鍵暗号方式の関数である場合にはｋ２＝ｋ３であり、公開鍵暗号方式の関数である場合にはｋ２≠ｋ３となる。また、第２補助データ計算部１１１ｂは、鍵ｋ２と（ｙ１，ｗ１）の一部から暗号化鍵ｋｅを求めても良い。暗号化鍵ｋｅの計算に第１出力データｙ１と第１補助データｗ１の一方または両方を必要としない場合には、第２補助データ計算部１１１ｂには暗号化鍵ｋｅに必要な情報のみが入力されれば良い。
【００２３】
また、（ｙ１，ｗ１）の少なくとも１つから暗号化鍵ｋｅを計算する方法と、鍵ｋ２から暗号化鍵ｋｅを計算する方法とのうち、ユーザの指定などに応じて選択したいずれかの方法を用いて暗号化鍵ｋｅを計算するように構成しても良い。
【００２４】
次に、第１の実施形態にかかる情報処理装置１００による擬似乱数再現処理について図３を用いて説明する。図３は、第１の実施形態における擬似乱数再現処理の全体の流れを示すフローチャートである。
【００２５】
再現部１２０の入出力部１２２は、第２入力データｘ２と第１補助データｗ１を受け付ける（ステップＳ２０１）。次に、再現部１２０の第２計算部１２１は、第２入力データｘ２と第１補助データｗ１とを再現関数Ｒｅｐに入力して第２出力データｙ２＝Ｒｅｐ（ｘ２，ｗ１）を計算する（ステップＳ２０２）。最後に再現部１２０の入出力部１２２は、第２出力データｙ２を出力する（ステップＳ２０３）。
【００２６】
ここで、非特許文献１の生成関数Ｇｅｎと再現関数Ｒｅｐの性質から、第１入力データｘ１と第２入力データｘ２の誤差が所定の範囲（第１範囲）に収まるとき（所定の定数ｄに対して、第１入力データｘ１と第２入力データｘ２で異なるビットが高々ｄビットとなるなど）、第２出力データｙ２は第１出力データｙ１と等しい。
【００２７】
次に、第１の実施形態にかかる情報処理装置１００による逆像計算処理について図４を用いて説明する。図４は、第１の実施形態における逆像計算処理の全体の流れを示すフローチャートである。
【００２８】
逆像計算部１３０の入出力部１３２は、第１出力データｙ１と第１補助データｗ１と第２補助データｗ２とを受け付ける（ステップＳ３０１）。逆像計算部１３０の第３計算部１３１は、以下の手順で（ｙ１，ｗ１，ｗ２）から第３出力データｙ３を計算する。
【００２９】
第３計算部１３１は、（ｙ１，ｗ１，ｗ２）から復号鍵ｋｄを計算する（ステップＳ３０２）。なお、前述したように逆像計算部１３０が鍵ｋ３を保持する場合には、第３計算部１３１は、鍵ｋ３から復号鍵ｋｄを計算しても良い。復号鍵ｋｄの計算方法は、生成部１１０の第２補助データ計算部１１１ｂが暗号化鍵ｋｅを求める計算方法と同様である。次に、逆像計算部１３０の第３計算部１３１は、第３出力データｙ３＝Ｄｅｃ（ｋｄ，ｗ２）を計算する（ステップＳ３０３）。逆像計算部１３０の入出力部１３２は、第３出力データｙ３を出力する（ステップＳ３０４）。
【００３０】
ここで、（ｙ１，ｗ１，ｗ２）が生成部１１０により第１入力データｘ１から計算されたデータであるならば、第３出力データｙ３は第１入力データｘ１に一致する。
【００３１】
（変形例１）
変形例１の情報処理装置１００は、前述の第１の実施形態と同様に生成部１１０と再現部１２０と逆像計算部１３０とを備えるが、以下の点のみが第１の実施形態と異なる。
【００３２】
第１の実施形態では、生成部１１０の第２補助データ計算部１１１ｂは暗号化関数Ｅｎｃを計算する機能を備え、逆像計算部１３０の第３計算部１３１は復号関数Ｄｅｃを計算する機能を備えていた。
【００３３】
変形例１では、生成部１１０の第２補助データ計算部１１１ｂと逆像計算部１３０の第３計算部１３１は、ハッシュ関数（ハッシュ関数族）を保持する。
【００３４】
次に、このように構成された第１の実施形態の変形例１にかかる情報処理装置１００による擬似乱数生成処理について図５を用いて説明する。図５は、第１の実施形態における擬似乱数生成処理の全体の流れを示すフローチャートである。
【００３５】
ステップＳ４０１からステップＳ４０２までは図２のステップＳ１０１からステップＳ１０２までと同様であるため説明を省略する。
【００３６】
生成部１１０の第２補助データ計算部１１１ｂは、第１入力データｘ１と、（ｙ１，ｗ１）のうち計算に必要な成分とを用いて、以下の手順で第２補助データｗ２を計算する。
【００３７】
第２補助データ計算部１１１ｂは、（ｙ１，ｗ１）の少なくとも１つからハッシュ鍵ｋｈを計算する（ステップＳ４０３）。上述のように鍵ｋ３に対応する鍵ｋ２を保持する構成の場合は、鍵ｋ２からハッシュ鍵ｋｈを計算しても良い。第２補助データ計算部１１１ｂは、ハッシュ関数族に含まれる複数のハッシュ関数のうち、計算したハッシュ鍵ｋｈに対応するハッシュ関数Ｈを選択する（ステップＳ４０４）。
【００３８】
ハッシュ鍵の計算方法は、第１の実施形態における生成部１１０の暗号化鍵の計算方法と同様である。後述するように、第２補助データ計算部１１１ｂと逆像計算部１３０の第３計算部１３１とが予め同一のハッシュ関数Ｈを保持している場合には、ステップＳ４０３およびステップＳ４０４は省略されても良い。
【００３９】
第２補助データ計算部１１１ｂは、（ｙ１，ｗ１）の少なくとも１つをハッシュ関数Ｈ（・）に入力し、第１ハッシュデータｈ１を計算する（ステップＳ４０５）。後述するように、逆像計算部１３０が鍵ｋ５を保持する場合には、対応する鍵ｋ４から第１ハッシュデータｈ１を計算してもよい。次に、第２補助データ計算部１１１ｂは、第１入力データｘ１と第１ハッシュデータｈ１とから第２補助データｗ２＝ｈ１（＊）ｘ１を計算する（ステップＳ４０６）。ここで、（＊）は所定の二項演算であり、排他的論理和、または、第１ハッシュデータｈ１を暗号化鍵として第１入力データｘ１を暗号化する暗号演算などを用いる。
【００４０】
入出力部１１３は、（ｙ１，ｗ１，ｗ２）を出力する（ステップＳ４０７）。
【００４１】
次に、このように構成された第１の実施形態の変形例１にかかる情報処理装置１００による逆像計算処理について図６を用いて説明する。図６は、第１の実施形態における逆像計算処理の全体の流れを示すフローチャートである。
【００４２】
ステップＳ５０１は図４のステップＳ３０１と同様であるため説明を省略する。逆像計算部１３０の第３計算部１３１は、以下の手順で（ｙ１，ｗ１，ｗ２）から第３出力データｙ３を計算する。
【００４３】
第３計算部１３１は、（ｙ１，ｗ１）からハッシュ鍵ｋｈを計算する（ステップＳ５０２）。逆像計算部１３０が鍵ｋ３を保持する構成の場合には鍵ｋ３からハッシュ鍵ｋｈを計算しても良い。第３計算部１３１は、ハッシュ鍵ｋｈに基づきハッシュ関数Ｈを選択する（ステップＳ５０３）。ハッシュ鍵ｋｈの計算方法およびハッシュ関数Ｈの選択方法は、生成部１１０の第２補助データ計算部１１１ｂによるハッシュ鍵ｋｈの計算方法およびハッシュ関数Ｈの選択方法と同様である。
【００４４】
前述したとおり、逆像計算部１３０が予めハッシュ関数Ｈを保持している場合には、ステップＳ５０２およびステップＳ５０３は省略される。
【００４５】
次に、逆像計算部１３０の第３計算部１３１は、（ｙ１，ｗ１）の少なくとも１つをハッシュ関数Ｈ（・）に入力し、第２ハッシュデータｈ２を計算する（ステップＳ５０４）。逆像計算部１３０が鍵ｋ５を保持し、前述したとおりに生成部１１０が鍵ｋ４を用いて第１ハッシュデータｈ１を計算する場合には、逆像計算部１３０は、鍵ｋ５を用いて第２ハッシュデータ鍵ｈ２を計算してもよい。次に、第３計算部１３１は、第２補助データｗ２と第２ハッシュデータｈ２とから第３出力データｙ３＝ｈ２（＠）ｗ２を計算する（ステップＳ５０５）。
【００４６】
ここで、（＠）は前述の（＊）に対応する二項演算である。なお、（＠）は、（＊）の出力から（＊）の入力を演算するものであればどのような演算であっても良い。例えば、（＊）が排他的論理和演算の場合には（＠）も排他的論理和演算であり、（＊）が暗号化演算である場合には（＠）は復号演算である。
【００４７】
第３計算部１３１の入出力部１３２は、第３出力データｙ３を出力する（ステップＳ５０６）。
【００４８】
ここで、（ｙ１，ｗ１，ｗ２）が生成部１１０により第１入力データｘ１から計算されたデータであるならば、第３出力データｙ３は第１入力データｘ１に一致する。
【００４９】
このように、第１の実施形態にかかる情報処理装置では、擬似乱数（第１出力データ）を生成するときに入力データの復元に用いる補助データ（第２補助データ）を生成する。そして、逆像計算部により、第１出力データと第２補助データを入力として受け付けて第１入力データを復元することができる。
【００５０】
さらに、第１の実施形態にかかる情報処理装置では、（ｙ１，ｗ１）に依存して暗号化鍵ｋｅや第１ハッシュデータｈ１が計算され、入力ｘ１ごとに値が異なる。そのため、ある入力ｘ１に対応する暗号化鍵ｋｅや第１ハッシュデータｈ１の情報が漏えいしたとしても、異なる入力ｘ１’に対応する暗号化鍵ｋｅ’や第１ハッシュデータｈ１’の情報は漏えいせず、安全性は保たれる。一般には、入力ごとに異なる暗号化鍵を用意して記憶する。第１の実施形態にかかる情報処理装置では、（ｙ１，ｗ１）に依存して暗号化鍵ｋｅや第１ハッシュデータｈ１が計算することで暗号化鍵を個別に用意する必要がなく、記憶領域も削減することができる。
【００５１】
（第２の実施形態）
第１の実施形態に示した構成では、再現部１２０に入力される第２入力データが、第１入力データと所定の誤差の範囲にあるならば、再現部１２０は生成部１１０が出力する第１出力データを再現することができる。一方、逆像計算部１３０の入出力部１３２には第１出力データが入力されていた。
【００５２】
第２の実施形態では、逆像計算部の入出力部に与えられる入力が、生成部が出力する第１出力データと所定の誤差の範囲（第２範囲）にあるならば、生成部の入力を復元することを可能とする。
【００５３】
図７は、第２の実施形態にかかる情報処理装置２００の構成の一例を示すブロック図である。図７に示すように、情報処理装置２００は、生成部２１０と、再現部１２０と、逆像計算部２３０とを備えている。第１の実施形態と同様の機能を備える構成部は同一の符号を付し、ここでの説明は省略する。
【００５４】
第１の実施形態と同様に、生成部２１０、再現部１２０、および逆像計算部２３０の各部は別々の装置として構成されて、ネットワークを介して接続されても良いし、１つ以上の装置が同一の装置として構成されても良い。
【００５５】
生成部２１０は、入出力部２１３と、第１計算部２１１とを備えている。入出力部２１３は、第１入力データを受け付け、第１出力データと第１補助データと第２補助データと第３補助データとを出力する。
【００５６】
第１計算部２１１は、ファジー・エクストラクタの生成関数Ｇｅｎを計算するＧｅｎ計算部２１１ａと、第２補助データ計算部２１１ｂとを備えている。Ｇｅｎ計算部２１１ａは、第１入力データから、第１出力データと第１補助データとを計算する。さらに、Ｇｅｎ計算部２１１ａは、第１出力データおよび第１補助データの少なくとも１つから中間データ（以下、説明の便宜上、第３中間データという）と第３補助データとを計算する。
【００５７】
Ｇｅｎ計算部２１１ａは、異なる生成関数Ｇｅｎを２種類保持し、前述の２種類の計算をそれぞれ異なるＧｅｎで計算しても良い。以下では同一の生成関数Ｇｅｎを用いて計算する構成例を説明する。
【００５８】
第２補助データ計算部２１１ｂは、第１の実施形態と同様に暗号化関数Ｅｎｃを計算する機能を備え、第１入力データと第３中間データとから、第２補助データを計算する。
【００５９】
逆像計算部２３０は、入出力部２３２と、第３計算部２３１とを備えている。入出力部２３２は、第１出力データまたは第２出力データ、第２補助データ、および、第３補助データを受け付け、第３出力データを出力する。
【００６０】
第３計算部２３１は、Ｒｅｐ計算部２３１ａを備えている。Ｒｅｐ計算部２３１ａは、生成部２１０のＧｅｎ計算部２１１ａと同様の生成関数Ｇｅｎに対応する再現関数Ｒｅｐを計算する機能を含む。第３計算部２３１は、第１出力データまたは第２出力データ、第２補助データ、および第３補助データから、第３出力データを計算する。第３計算部２３１は、前述の生成部２１０の第２補助データ計算部２１１ｂが保持する暗号化関数Ｅｎｃに対応する復号関数Ｄｅｃを保持する。
【００６１】
次に、このように構成された第２の実施形態にかかる情報処理装置２００による擬似乱数生成処理について図８を用いて説明する。図８は、第２の実施形態における擬似乱数生成処理の全体の流れを示すフローチャートである。
【００６２】
ステップＳ６０１からステップＳ６０２までは、第１の実施形態にかかる情報処理装置１００におけるステップＳ１０１からステップＳ１０２までと同様の処理なので、その説明を省略する。
【００６３】
生成部２１０のＧｅｎ計算部２１１ａは、以下の（３）式に示すように、第１出力データｙ１を生成関数Ｇｅｎに入力し、第３中間データｚ３と第３補助データｗ３を計算する（ステップＳ６０３）。
（ｚ３，ｗ３）＝Ｇｅｎ（ｙ１）・・・（３）
【００６４】
第２補助データ計算部２１１ｂは、第１入力データｘ１と（ｚ３，ｗ１，ｗ３）のうち少なくとも第３中間データｚ３および第３補助データｗ３を含む成分を入力して、以下の手順で第２補助データｗ２を計算する。
【００６５】
第２補助データ計算部２１１ｂは、（ｚ３，ｗ１，ｗ３）のうち少なくとも第３中間データｚ３および第３補助データｗ３を含む成分から、第１の実施形態と同様に暗号化鍵ｋｅを計算する（ステップＳ６０４）。なお、鍵ｋ２を保持する構成の場合には鍵ｋ２から暗号化鍵ｋｅを計算しても良い。
【００６６】
第２補助データ計算部２１１ｂは、第１入力データｘ１と暗号化鍵ｋｅを暗号化関数Ｅｎｃに入力して暗号化処理を行い、第２補助データｗ２＝Ｅｎｃ（ｋｅ，ｘ１）を計算する（ステップＳ６０５）。入出力部２１３は、（ｙ１，ｗ１，ｗ２，ｗ３）を出力する（ステップＳ６０６）。
【００６７】
再現部１２０の処理手順は、第１の実施形態の図３と同様であるため、説明を省略する。
【００６８】
次に、このように構成された第２の実施形態にかかる情報処理装置２００による逆像計算処理について図９を用いて説明する。図９は、第２の実施形態における逆像計算処理の全体の流れを示すフローチャートである。
【００６９】
逆像計算部２３０の入出力部２３２は、第１出力データｙ１と所定の誤差の範囲（第２範囲）内であることが期待される第３入力データｘ３と第１補助データｗ１と第２補助データｗ２と第３補助データｗ３とを受け付ける（ステップＳ７０１）。逆像計算部２３０の第３計算部２３１は、以下の手順で（ｘ３，ｗ１，ｗ２，ｗ３）から第３出力データｙ３を計算する。
【００７０】
第３計算部２３１のＲｅｐ計算部２３１ａは、（ｘ３，ｗ３）を再現関数Ｒｅｐに入力して第４中間データｚ４＝Ｒｅｐ（ｘ３，ｗ３）を計算する（ステップＳ７０２）。第３入力データｘ３が第１出力データｙ１との所定の誤差の範囲内にあれば、第４中間データｚ４は第３中間データｚ３に一致する。
【００７１】
第３計算部２３１は、第１の実施形態と同様に（ｚ４，ｗ１，ｗ３）のうち少なくとも第４中間データｚ４および第３補助データｗ３を含む成分から、第１の実施形態と同様に復号鍵ｋｄを計算する（ステップＳ７０３）。なお、逆像計算部２３０が鍵ｋ３を保持する構成の場合には鍵ｋ３から復号鍵ｋｄを計算しても良い。
【００７２】
次に、第３計算部２３１は、第３出力データｙ３＝Ｄｅｃ（ｋｄ，ｗ２）を計算する（ステップＳ７０４）。入出力部２３２は、第３出力データｙ３を出力する（ステップＳ７０５）。
【００７３】
ここで、（ｙ１，ｗ１，ｗ２，ｗ３）が生成部２１０により第１入力データｘ１から計算されたデータであり、第３入力データｘ３が第１出力データｙ１と所定の誤差の範囲内にあるならば、第３出力データｙ３は第１入力データｘ１に一致する。
【００７４】
（変形例２）
第１の実施形態における変形例１と同様に、以下の変形例２を構成することができる。第２の実施形態における生成部２１０の第２補助データ計算部２１１ｂおよび逆像計算部２３０の第３計算部２３１が、暗号化関数および復号関数の代わりにハッシュ関数（族）を保持し、変形例１と同様の処理により第２補助データおよび第３出力データを計算する。
【００７５】
このように、第２の実施形態にかかる情報処理装置では、入力を復元するときに逆像計算部の入出力部に与えられる入力が、擬似乱数を生成するときに出力された出力データと所定の誤差の範囲にあれば、生成部の入力を復元することができる。
【００７６】
（第３の実施形態）
第３の実施形態では、第１の実施形態に示した構成の適用例として、音声認証システムの構成例を示す。前述した変形例１、第２の実施形態、変形例２を用いても、同様に音声認証システムを構成することができる。
【００７７】
図１０は、第３の実施形態の音声認証システムを実現する情報処理装置３００の構成の一例を示すブロック図である。図１０に示すように、情報処理装置３００は、登録処理部３１０と、認証処理部３２０と、音声復元部３３０と、入出力部３０１と、記憶部３４０と、を備えている。これらは、それぞれ個別の機器で構成されても良いし、１つ以上が同一の機器で構成されても良い。なお、第１の実施形態と同様の機能を備える構成部は同一の符号を付し、ここでの説明は省略する。
【００７８】
入出力部３０１は、登録用音声データ、認証用音声データ、登録要求、認証要求、および、音声復元要求を受け付け、登録結果、認証結果、および、登録音声を出力する。
【００７９】
登録処理部３１０は、第１の実施形態に示す生成部１１０を内部に保持し、登録用音声データを受け付けて、第１出力データ、第１補助データおよび第２補助データを出力する。
【００８０】
認証処理部３２０は、第１の実施形態に示す再現部１２０を内部に保持し、認証用音声データ、第１出力データおよび第１補助データを入力として受け付け、認証結果を出力する。
【００８１】
音声復元部３３０は、第１の実施形態に示す逆像計算部１３０を内部に保持し、第１出力データ、第１補助データおよび第２補助データを入力として、第３出力データを出力する。正常に動作する場合には、第３出力データは対応する登録用音声データに一致する。
【００８２】
記憶部３４０は、第１出力データ、第１補助データおよび第２補助データを保持する。これらの情報は利用者の識別情報とともに保持されても良い。
【００８３】
次に、このように構成された第３の実施形態にかかる情報処理装置３００による登録処理について図１１を用いて説明する。登録処理とは、登録用音声データから擬似乱数を生成して認証用データベースとして機能する記憶部３４０に登録する処理である。図１１は、第３の実施形態における登録処理の全体の流れを示すフローチャートである。
【００８４】
情報処理装置３００の入出力部３０１は、登録要求と登録用音声データ（第１入力データｘ１）とを受け付ける（ステップＳ８０１）。登録処理部３１０は、登録用音声データを生成部１１０に入力し、第１出力データｙ１、第１補助データｗ１および第２補助データｗ２を計算する（ステップＳ８０２）。ステップＳ８０２の処理は、図２と同様の処理により実現できる。
【００８５】
登録処理部３１０は、記憶部３４０に第１出力データｙ１、第１補助データｗ１および第２補助データｗ２を記憶する（ステップＳ８０３）。ステップＳ８０１で利用者の識別情報が入力される場合には、ステップＳ８０３で識別情報を第１出力データｙ１などとともに記憶部３４０に保存しても良い。入出力部３０１は、登録完了通知を出力する（ステップＳ８０４）。
【００８６】
次に、このように構成された第３の実施形態にかかる情報処理装置３００による認証処理について図１２を用いて説明する。認証処理とは、認証用音声データおよび補助データから計算した出力データと、登録処理で記憶部３４０に保存した出力データ（第１出力データｙ１）とを比較することにより、認証用音声データを認証する処理である。図１２は、第３の実施形態における認証処理の全体の流れを示すフローチャートである。
【００８７】
情報処理装置３００の入出力部３０１は、認証要求と認証用音声データ（第１入力データｘ２）とを受け付ける（ステップＳ９０１）。認証処理部３２０は、記憶部３４０から第１出力データｙ１と第１補助データｗ１とを読み出す（ステップＳ９０２）。次に、認証処理部３２０は、認証用音声データと第１補助データｗ１とを再現部１２０に入力し、第２出力データｙ２を計算する（ステップＳ９０３）。認証処理部３２０は、第１出力データｙ１と第２出力データｙ２が一致するか否かを検査する（ステップＳ９０４）。
【００８８】
検査結果が一致する場合（ステップＳ９０４：Ｙｅｓ）、入出力部３０１は認証に合格したことを表す情報を出力する（ステップＳ９０５）。検査結果が一致しない場合（ステップＳ９０４：Ｎｏ）、入出力部３０１は認証に合格しなかったことを表す情報を出力する（ステップＳ９０６）。
【００８９】
次に、このように構成された第３の実施形態にかかる情報処理装置３００による音声データ復元処理について図１３を用いて説明する。音声データ復元処理とは、登録処理で出力されたデータ（第１出力データ等）から、登録用音声データを復元する処理である。図１３は、第３の実施形態における音声データ復元処理の全体の流れを示すフローチャートである。
【００９０】
情報処理装置３００の入出力部３０１は、音声復元要求を受け付ける（ステップＳ１００１）。音声復元部３３０は、記憶部３４０から第１出力データｙ１、第１補助データｗ１および第２補助データｗ２を読み出す（ステップＳ１００２）。次に、音声復元部３３０は、第１出力データｙ１、第１補助データｗ１および第２補助データｗ２を逆像計算部１３０に入力し、第３出力データｙ３を計算する（ステップＳ１００３）。入出力部３０１は、第３出力データｙ３を出力する（ステップＳ１００４）。
【００９１】
認証用データベース（記憶部３４０）に保持されるデータは、第１出力データ、第１補助データおよび第２補助データである。音声復元部３３０は、これらのデータから登録用音声データを復元することができる。しかし、音声復元部３３０を備えない機器は、これらのデータから登録用音声データを復元することはできない。そのため、記憶部３４０の管理者の不注意や、記憶部３４０に不正アクセスが試みられた場合に、記憶部３４０の保持するデータが漏洩したとしても、登録用音声データは保護される。したがって、登録用音声データに関わるキーフレーズや声紋の情報は保護される。
【００９２】
このように、第３の実施形態では、上記実施形態に示した構成を適用した音声認証システムを実現することができる。
【００９３】
以上説明したとおり、第１から第３の実施形態によれば、擬似乱数を生成するときに、出力データから入力データを計算（復元）するためのデータ（第２補助データ）を計算し、第２補助データと出力データとから入力データを計算することができる。これにより、擬似乱数を生成したときの入力データを復元することが可能となる。例えば、上記各実施形態の情報処理装置を、ファジー・エクストラクタを用いた認証システムに適用すれば、認証システムが記憶する生体情報に固有なデータから、生体情報を復元することができるようになる。
【００９４】
第１から第３の実施形態に係る発明が適用される場面の一例を説明する。生体情報を用いた認証システムは、上述のとおり、生体情報を読み込み、生体情報に特徴的なデータを計算して認証処理を行う。このとき、以下の２点が要求される。
（１）例えば、生体情報として発話を用いる場合には、発話の速度や声の大小などが一定ではないことや周囲の雑音などにより、読み込まれる生体情報に誤差が含まれる。そのため、生体情報を用いた認証システムでは、入力された生体情報が所定の誤差範囲内であれば、生体情報に固有のデータを出力することが要求される。
（２）生体情報には、発話のほかにも、指紋や虹彩など人間固有の情報が用いられる。しかし、生体情報には、他者の生体情報と類似する点も多く含まれる。一方、認証に用いる生体情報に特徴的なデータは、誤認証を減らすためにも、生体情報に対して一様に定められることが望ましい。理想的には、生体情報に特徴的なデータとしては、生体情報ごとに異なるデータを用いることが望ましい。
生体情報を用いた認証システムにファジー・エクストラクタを用いる場合には、認証システムが記憶する生体情報に固有なデータと補助データとから、生体情報を復元することができない。例えば、発話を用いた認証システムでは、利用者が発話内容や話し方を忘れたとき、認証システムが記憶する情報からそれらを復元することはできない。しかし、第１から第３の実施形態の方法によれば、認証システムが記憶する生体情報に固有なデータから、生体情報を復元することができる。したがって、例えば、発話を用いた認証システムにおいて、利用者が発話内容や話し方を忘れたとき、認証システムが記憶する情報からそれらを復元できるため、認証システムへの再登録や過去の登録状況の消去などが不要となる。
【００９５】
次に、第１から第３の実施形態にかかる情報処理装置のハードウェア構成について図１４を用いて説明する。図１４は、第１から第３の実施形態にかかる情報処理装置のハードウェア構成を示す説明図である。
【００９６】
第１から第３の実施形態にかかる情報処理装置は、ＣＰＵ（Central  Processing  Unit）５１などの制御装置と、ＲＯＭ（Read  Only  Memory）５２やＲＡＭ（Random  Access  Memory）５３などの記憶装置と、ネットワークに接続して通信を行う通信Ｉ／Ｆ５４と、各部を接続するバス６１を備えている。
【００９７】
第１から第３の実施形態にかかる情報処理装置で実行されるプログラムは、ＲＯＭ５２等に予め組み込まれて提供される。
【００９８】
第１から第３の実施形態にかかる情報処理装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅｃｏｒｄａｂｌｅ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成しても良い。
【００９９】
さらに、第１から第３の実施形態にかかる情報処理装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、第１から第３の実施形態にかかる情報処理装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【０１００】
第１から第３の実施形態にかかる情報処理装置で実行されるプログラムは、コンピュータを前述した情報処理装置の各部（生成部等）として機能させうる。このコンピュータは、ＣＰＵ５１がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【０１０１】
なお、本実施形態は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除しても良い。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
【符号の説明】
【０１０２】
１００、２００、３００  情報処理装置
１１０、２１０  生成部
１１１、２１１  第１計算部
１１１ａ、２１１ａ  Ｇｅｎ計算部
１１１ｂ、２１１ｂ  第２補助データ計算部
１１３、２１３  入出力部
１２０  再現部
１２１  第２計算部
１２２  入出力部
１３０、２３０  逆像計算部
１３１、２３１  第３計算部
１３２、２３２  入出力部
２３１ａ  Ｒｅｐ計算部
３０１  入出力部
３１０  登録処理部
３２０  認証処理部
３３０  音声復元部
３４０  記憶部
【図１】
0005559018.tif 000002
【図２】
0005559018.tif 000003
【図３】
0005559018.tif 000004
【図４】
0005559018.tif 000005
【図５】
0005559018.tif 000006
【図６】
0005559018.tif 000007
【図７】
0005559018.tif 000008
【図８】
0005559018.tif 000009
【図９】
0005559018.tif 000010
【図１０】
0005559018.tif 000011
【図１１】
0005559018.tif 000012
【図１２】
0005559018.tif 000013
【図１３】
0005559018.tif 000014
【図１４】
0005559018.tif 000015