(57)【要約】【課題】認証サーバに対して生体情報を秘匿できる情報処理プログラム、情報処理装置および情報処理方法を提供する。【解決手段】情報処理プログラムは、コンピュータに、ユーザの生体情報に基づく特徴情報を生成し、生成された特徴情報と乱数との論理演算により、第１の暗号文を算出する処理を実行させる。また、情報処理プログラムは、コンピュータに、第１の暗号文を、暗号化した状態でハミング距離を算出可能な暗号アルゴリズムを用いて、第２の暗号文に暗号化する処理を実行させる。【選択図】図２
2015139014.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
ユーザの生体情報に基づく特徴情報を生成し、
生成された前記特徴情報と乱数との論理演算により、第１の暗号文を算出し、
前記第１の暗号文を、暗号化した状態でハミング距離を算出可能な暗号アルゴリズムを用いて、第２の暗号文に暗号化する
処理を実行させることを特徴とする情報処理プログラム。
【請求項２】
前記暗号化する処理は、前記暗号アルゴリズムとして準同型暗号を用いて、前記第１の暗号文を、前記第２の暗号文に暗号化することを特徴とする請求項１に記載の情報処理プログラム。
【請求項３】
前記算出する処理は、前記乱数として前記ユーザに固有の乱数を用いて、前記第１の暗号文を算出することを特徴とする請求項１または２に記載の情報処理プログラム。
【請求項４】
前記コンピュータに、
さらに、前記特徴情報の登録時および照合時と、前記登録時と、前記照合時とのうち、いずれかの場合に、前記暗号化する処理を実行するかを制御する処理を実行させることを特徴とする請求項１〜３のいずれか１項に記載の情報処理プログラム。
【請求項５】
ユーザの生体情報に基づく特徴情報を生成する生成部と、
生成された前記特徴情報と乱数との論理演算により、第１の暗号文を算出する算出部と、
前記第１の暗号文を、暗号化した状態でハミング距離を算出可能な暗号アルゴリズムを用いて、第２の暗号文に暗号化する暗号化部と
を有することを特徴とする情報処理装置。
【請求項６】
コンピュータが、
ユーザの生体情報に基づく特徴情報の登録時に、前記特徴情報を生成し、生成された前記特徴情報と乱数との論理演算により、第１の暗号文を算出し、前記第１の暗号文を、暗号化した状態でハミング距離を算出可能な暗号アルゴリズムを用いて、第２の暗号文に暗号化し、
前記特徴情報の照合時に、前記特徴情報を生成し、生成された前記特徴情報と前記乱数との論理演算により、第１の暗号文を算出し、前記第１の暗号文を、暗号化した状態でハミング距離を算出可能な暗号アルゴリズムを用いて、第２の暗号文に暗号化する
処理を実行することを特徴とする情報処理方法。
【請求項７】
コンピュータが、
ユーザの生体情報に基づく特徴情報の登録時に、前記特徴情報を生成し、生成された前記特徴情報と乱数との論理演算により、第１の暗号文を算出し、前記第１の暗号文を、暗号化した状態でハミング距離を算出可能な暗号アルゴリズムを用いて、第２の暗号文に暗号化し、
前記特徴情報の照合時に、前記特徴情報を生成し、生成された前記特徴情報と前記乱数との論理演算により、第１の暗号文を算出する
処理を実行することを特徴とする情報処理方法。
【請求項８】
コンピュータが、
ユーザの生体情報に基づく特徴情報の登録時に、前記特徴情報を生成し、生成された前記特徴情報と乱数との論理演算により、第１の暗号文を算出し、
前記特徴情報の照合時に、前記特徴情報を生成し、生成された前記特徴情報と前記乱数との論理演算により、第１の暗号文を算出し、前記第１の暗号文を、暗号化した状態でハミング距離を算出可能な暗号アルゴリズムを用いて、第２の暗号文に暗号化する
処理を実行することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理プログラム、情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
近年、指紋認証や静脈認証などの生体認証を用いて、例えば銀行のＡＴＭ（Automated  Teller  Machine）で本人認証を行う認証システムが知られている。生体認証は、ユーザの身体的、行動的特徴である生体情報を利用した認証技術である。認証に用いるユーザの生体情報は、忘却や紛失の恐れはないが、ユーザの終生に渡って不変であるため、万一漏洩してしまうと取り返しが付かなくなる。このため、ユーザの生体情報を乱数付加、暗号化等によって保護した状態で認証を行うことが提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１１／０５２０５６号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ユーザの生体情報を端末装置で公開鍵暗号を用いて暗号化したとしても、秘密鍵を有する認証サーバは暗号を復号可能であるので、認証サーバのセキュリティが破られるとユーザの生体情報が漏洩することになる。従って、漏洩したユーザの生体情報は、今後用いることができなくなる。すなわち、生体情報を暗号化するのみでは、認証サーバのセキュリティが破られると、認証システム自体が破綻することになる。
【０００５】
一つの側面では、本発明は、認証サーバに対して生体情報を秘匿できる情報処理プログラム、情報処理装置および情報処理方法を提供することにある。
【課題を解決するための手段】
【０００６】
一つの態様では、情報処理プログラムは、コンピュータに、ユーザの生体情報に基づく特徴情報を生成し、生成された前記特徴情報と乱数との論理演算により、第１の暗号文を算出する処理を実行させる。また、情報処理プログラムは、コンピュータに、前記第１の暗号文を、暗号化した状態でハミング距離を算出可能な暗号アルゴリズムを用いて、第２の暗号文に暗号化する処理を実行させる。
【発明の効果】
【０００７】
認証サーバに対して生体情報を秘匿できる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施例１の認証システムの概要を説明する説明図である。
【図２】図２は、実施例１の認証システムの構成の一例を示すブロック図である。
【図３】図３は、実施例１の認証システムの登録時の動作の一例を示すシーケンス図である。
【図４】図４は、実施例１の認証システムの照合時の動作の一例を示すシーケンス図である。
【図５】図５は、実施例２の認証システムの概要を説明する説明図である。
【図６】図６は、実施例２の認証システムの構成の一例を示すブロック図である。
【図７】図７は、実施例２の認証システムの登録時の動作の一例を示すシーケンス図である。
【図８】図８は、実施例２の認証システムの照合時の動作の一例を示すシーケンス図である。
【図９】図９は、実施例３の認証システムの概要を説明する説明図である。
【図１０】図１０は、実施例３の認証システムの構成の一例を示すブロック図である。
【図１１】図１１は、実施例３の認証システムの登録時の動作の一例を示すシーケンス図である。
【図１２】図１２は、実施例３の認証システムの照合時の動作の一例を示すシーケンス図である。
【図１３】図１３は、情報処理プログラムを実行するコンピュータの一例を示す説明図である。
【発明を実施するための形態】
【０００９】
以下、図面に基づいて、本願の開示する情報処理プログラム、情報処理装置および情報処理方法の実施例を詳細に説明する。なお、本実施例により、開示技術が限定されるものではない。また、以下の実施例は、矛盾しない範囲で適宜組みあわせてもよい。
【実施例１】
【００１０】
まず、図１を用いて、実施例１の認証システムの概要について説明する。図１は、実施例１の認証システムの概要を説明する説明図である。図１に示す認証システム１は、端末装置１０と、計算サーバ１００と、認証サーバ２００とを有する。端末装置１０、計算サーバ１００および認証サーバ２００は、相互に通信可能に接続されている。
【００１１】
端末装置１０は、情報処理装置であり、認証システム１において、ユーザの生体情報の登録および照合を行う端末装置である。端末装置１０は、生体情報の登録および照合を行う場合に、ユーザの生体情報を取得して、取得した生体情報をＸＯＲ（exclusive  or；排他的論理和）と準同型暗号との２段階で暗号化して計算サーバ１００に送信する。
【００１２】
生体情報の登録時は、例えば、端末装置１０の図示しないセンサによりユーザの生体情報を取得し、取得した生体情報に基づいて、特徴情報として特徴ベクトルＡを生成する（ステップＳ３１ａ）。端末装置１０は、特徴ベクトルＡと、ユーザが指定したパスワード等に基づいて生成されたユーザ固有の乱数Ｒとの排他的論理和を算出して、ＸＯＲ暗号化を行って第１の暗号文を算出する（ステップＳ３２ａ）。
［文字１］
2015139014.tif 000003
は、排他的論理和を示し、以下、ｘｏｒとも表現する。
【００１３】
端末装置１０は、さらに、第１の暗号文を、暗号化した状態でハミング距離（秘匿距離）を算出可能なアルゴリズム、例えば、準同型暗号の公開鍵を用いて第２の暗号文に暗号化し、第２の暗号文を計算サーバ１００に送信する（ステップＳ３３ａ）。計算サーバ１００は、端末装置１０から第２の暗号文を受信すると、第２の暗号文を登録情報として記憶する（ステップＳ３４ａ）。
【００１４】
また、生体情報の照合時は、登録時と同様に取得した生体情報に基づいて、特徴情報として特徴ベクトルＢを生成する（ステップＳ４１ａ）。端末装置１０は、特徴ベクトルＢと、ユーザが指定したパスワード等に基づいて生成されたユーザ固有の乱数Ｒとの排他的論理和を算出して、ＸＯＲ暗号化を行って第１の暗号文を算出する（ステップＳ４２ａ）。
【００１５】
端末装置１０は、さらに、第１の暗号文を、暗号化した状態でハミング距離（秘匿距離）を算出可能なアルゴリズム、例えば、準同型暗号の公開鍵を用いて第２の暗号文に暗号化し、第２の暗号文を計算サーバ１００に送信する（ステップＳ４３ａ）。計算サーバ１００は、端末装置１０から第２の暗号文を受信すると、当該第２の暗号文と、登録時に登録情報として記憶された第２の暗号文との間で暗号化された状態でハミング距離を算出する。計算サーバ１００は、算出したハミング距離を認証サーバ２００に送信する（ステップＳ４４ａ）。認証サーバ２００は、ハミング距離を受信すると、準同型暗号の秘密鍵を用いて復号し、平文となったハミング距離が所定値未満である場合に、照合結果としてＯＫ、つまり認証可とする照合結果を端末装置１０に送信する。また、認証サーバ２００は、平文となったハミング距離が所定値以上である場合に、照合結果としてＮＧ、つまり認証不可とする照合結果を端末装置１０に送信する（ステップＳ４５ａ）。
【００１６】
このとき、準同型暗号の秘密鍵は、認証サーバ２００のみが有する。つまり、認証サーバ２００は、計算サーバ１００の第２の暗号文を復号可能である。しかし、認証サーバ２００は、第２の暗号文を復号したとしても、ＸＯＲ暗号化された第１の暗号文を得ることができるのみで、乱数Ｒを知らないので特徴ベクトルＡまたはＢについては、復号することができない。これにより、端末装置１０を操作するユーザは、認証サーバ２００に対して生体情報を秘匿することができる。
【００１７】
次に、図２を用いて、実施例１の認証システム１の構成について説明する。図２は、実施例１の認証システムの構成の一例を示すブロック図である。図２に示す認証システム１は、端末装置１０と、計算サーバ１００と、認証サーバ２００とを有する。なお、図２には、システムが１つの端末装置１０を有する場合を示したが、端末装置１０の数は限定されず、認証システム１は、任意の数の端末装置１０を有してもよい。
【００１８】
端末装置１０、計算サーバ１００および認証サーバ２００の間は、ネットワークＮを介して相互に通信可能に接続される。かかるネットワークＮには、有線または無線を問わず、インターネット（Internet）を始め、ＬＡＮ（Local  Area  Network）やＶＰＮ（Virtual  Private  Network）などの任意の種類の通信網を採用できる。
【００１９】
端末装置１０は、通信部１１と、記憶部１２と、取得部１３と、制御部１４とを有する。なお、端末装置１０は、図２に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
【００２０】
通信部１１は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。通信部１１は、ネットワークＮを介して計算サーバ１００および認証サーバ２００と有線または無線で接続され、計算サーバ１００および認証サーバ２００との間で情報の通信を司る通信インタフェースである。通信部１１は、ユーザの生体情報に基づく特徴情報の登録時に、制御部１４から入力された二重に暗号化された第２の暗号文を計算サーバ１００に送信する。また、通信部１１は、ユーザの生体情報に基づく特徴情報の照合時に、制御部１４から入力された二重に暗号化された第２の暗号文を計算サーバ１００に送信し、認証サーバ２００から照合結果を受信する。通信部１１は、受信した照合結果を制御部１４に出力する。
【００２１】
記憶部１２は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部１２は、制御部１４での処理に用いる情報を記憶する。
【００２２】
取得部１３は、ユーザの生体情報を取得する。取得部１３は、例えば、撮像センサ等によって指紋、網膜、虹彩、顔、血管等の画像を撮像し、撮像した画像の画像データを、生体情報として制御部１４に出力する。なお、取得部１３は、生体情報として画像データを取得することに限られず、音声、筆跡等を生体情報として取得するようにしてもよい。また、取得部１３は、ユーザからのパスワードの入力を受け付けてパスワードを取得する。取得部１３は、取得したパスワードを制御部１４に出力する。
【００２３】
制御部１４は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部１４は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されるようにしてもよい。制御部１４は、生成部１５と、算出部１６と、暗号化部１７とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部１４の内部構成は、図２に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部１４は、通信部１１から照合結果が入力されると、照合結果に応じた処理を実行する。さらに、制御部１４は、特徴情報の登録時および照合時と、登録時と、照合時とのうち、いずれかの場合に、暗号化部１７の暗号化する処理を実行するかを制御する処理を実行するようにしてもよい。
【００２４】
生成部１５は、取得部１３からユーザの生体情報が入力されると、生体情報から特徴を抽出して特徴情報を生成する。特徴情報は、例えば血管画像であれば、血管の詰まり具合（密度）、色の濃さ等に基づく情報とすることができる。また、特徴情報は、例えば指紋画像であれば、紋の分岐点等を特徴点として抽出した情報とすることができる。なお、特徴情報は、以下の説明では特徴ベクトルともいう。生成部１５は、例えば、特徴情報の登録時の特徴ベクトルを特徴ベクトルＡとし、特徴情報の照合時の特徴ベクトルを特徴ベクトルＢとして、算出部１６に出力する。
【００２５】
算出部１６は、特徴情報と乱数との排他的論理和により、第１の暗号文を算出する。算出部１６は、生成部１５から特徴情報として特徴ベクトルＡまたは特徴ベクトルＢが入力される。算出部１６は、特徴ベクトルＡと乱数Ｒとの排他的論理和により第１の暗号文を算出する。また、算出部１６は、特徴ベクトルＢと乱数Ｒとの排他的論理和により第１の暗号文を算出する。なお、以下の説明では、特徴情報の登録時と照合時の第１の暗号文を区別する場合には、例えば、登録時における特徴ベクトルＡと乱数Ｒとの排他的論理和により算出された第１の暗号文を第３の暗号文として説明する。また、当該場合には、例えば、照合時における特徴ベクトルＢと乱数Ｒとの排他的論理和により算出された第１の暗号文を第４の暗号文として説明する。
【００２６】
ここで、算出部１６は、例えば、取得部１３から入力されたパスワードをシードとして乱数Ｒを生成する。乱数Ｒの生成は、既知の乱数生成方法によって行う。乱数Ｒは、例えば、ＩＳＯ／ＩＥＣ  １８０３１、ＡＮＳ  Ｘ９．８２，ＮＩＳＴ  ＳＰ８００−９０等に規定される方法によって生成することができる。なお、乱数Ｒは、シードが同じであれば、異なる端末装置であっても同一の乱数Ｒとなる。また、乱数Ｒのシードは、パスワードを予めＩＣ（Integrated  Circuit）カードに記憶させ、図示しないＩＣカードリーダを用いて取得してもよいし、ユーザ固有の値であれば、パスワード以外の情報を用いてもよい。また、上記の排他的論理和は、二進数のビットごとの排他的論理和である。算出部１６は、算出した第３の暗号文または第４の暗号文を暗号化部１７に出力する。
【００２７】
暗号化部１７は、ＸＯＲ暗号化された第１の暗号文を、暗号化した状態でハミング距離を算出可能な暗号アルゴリズム、例えば、準同型暗号を用いて、第２の暗号文に暗号化する。詳しく説明すると、例えば、暗号化部１７は、第１の暗号文として、算出部１６から第３の暗号文または第４の暗号文が入力される。暗号化部１７は、第３の暗号文を、準同型暗号の公開鍵を用いて当該第３の暗号文に対応する第２の暗号文に暗号化する。以下の説明では、当該第３の暗号文に対応する第２の暗号文を区別する場合には、第５の暗号文として説明する。また、暗号化部１７は、第４の暗号文を、準同型暗号の公開鍵を用いて当該第４の暗号文に対応する第２の暗号文に暗号化する。以下の説明では、当該第４の暗号文に対応する第２の暗号文を区別する場合には、第６の暗号文として説明する。暗号化部１７は、暗号化を行うアルゴリズムとして、例えば、Ｉｄｅａｌ  ｌａｔｔｉｃｅｓ、Ｒｉｎｇ−ＬＷＥ（Learning  With  Errors）等の格子ベース準同型暗号を用いることができる。なお、準同型暗号の公開鍵は、予め認証サーバ２００から配信された公開鍵を用いる。
【００２８】
暗号化部１７は、暗号化された第２の暗号文を、通信部１１を介して計算サーバ１００に送信する。すなわち、暗号化部１７は、ユーザの生体情報に基づく特徴情報の登録時には、第５の暗号文を通信部１１を介して計算サーバ１００に送信し、ユーザの生体情報に基づく特徴情報の照合時には、第６の暗号文を通信部１１を介して計算サーバ１００に送信する。
【００２９】
計算サーバ１００は、通信部１１０と、記憶部１２０と、制御部１３０とを有する。なお、計算サーバ１００は、図２に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
【００３０】
通信部１１０は、例えば、ＮＩＣ等によって実現される。通信部１１０は、ネットワークＮを介して端末装置１０および認証サーバ２００と有線または無線で接続され、端末装置１０および認証サーバ２００との間で情報の通信を司る通信インタフェースである。通信部１１０は、端末装置１０から第２の暗号文を受信する。通信部１１０は、例えば、ユーザの生体情報に基づく特徴情報の登録時には、第２の暗号文として第５の暗号文を受信する。また、通信部１１０は、例えば、ユーザの生体情報に基づく特徴情報の照合時には、第２の暗号文として第６の暗号文を受信する。通信部１１０は、受信した第２の暗号文を制御部１３０に出力する。また、通信部１１０は、制御部１３０からハミング距離が入力されると、当該ハミング距離を認証サーバ２００に送信する。
【００３１】
記憶部１２０は、例えば、ＲＡＭ、フラッシュメモリ等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部１２０は、登録情報記憶部１２１を有する。また、記憶部１２０は、制御部１３０での処理に用いる情報を記憶する。
【００３２】
登録情報記憶部１２１は、端末装置１０から受信した第２の暗号文を、各ユーザが識別可能なように、例えば、ユーザＩＤ（IDentifier）と対応付けて記憶する。すなわち、登録情報記憶部１２１は、例えば、第２の暗号文として第５の暗号文を、各ユーザが識別可能なように、例えば、ユーザＩＤと対応付けて記憶する。
【００３３】
制御部１３０は、例えば、ＣＰＵやＭＰＵ等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部１３０は、例えば、ＡＳＩＣやＦＰＧＡ等の集積回路により実現されるようにしてもよい。制御部１３０は、算出部１３１を有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部１３０の内部構成は、図２に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【００３４】
算出部１３１は、通信部１１０から第２の暗号文として第５の暗号文が入力されると、第５の暗号文を登録情報記憶部１２１に記憶する。算出部１３１は、通信部１１０から第２の暗号文として第６の暗号文が入力されると、登録情報記憶部１２１から第６の暗号文のユーザに対応する第５の暗号文を読みだして、第５の暗号文と第６の暗号文とのハミング距離を算出する。ハミング距離ＨＷは、第５の暗号文の特徴ベクトルをＡ、第６暗号文の特徴ベクトルをＢ、公開鍵をｐｋとすると、下記の式（１）で表すことができる。なお、Ｅは暗号文であることを示す。
【００３５】
【数１】
2015139014.tif 000004
【００３６】
式（１）の左辺は、準同型暗号の加算演算、および乗算（二乗算）を用いて、下記の式（２）のように算出できる。なお、式（２）では、式（１）の左辺をｃと表す。また、以下の説明では、算出されたハミング距離をベクトルの引き算として、｜Ａ−Ｂ｜とも表す。
【００３７】
【数２】
2015139014.tif 000005
【００３８】
式（１）に示すように、ハミング距離ＨＷ（ＡｘｏｒＢ）は、乱数Ｒが消滅するので、計算サーバ１００は、乱数Ｒを知らずともハミング距離を算出することができる。算出部１３１は、算出したハミング距離を、通信部１１０を介して認証サーバ２００に送信する。
【００３９】
ここで、ハミング距離の算出は、特願２０１２−２８６２５１号に示す方法を用いることで高速化できる。当該方法は、格子ベース準同型暗号を利用したハミング距離（秘匿距離）計算において、特徴ベクトル（暗号ベクトルデータ）のサイズとハミング距離の算出時間との両方を削減できる。当該方法は、特徴ベクトルを多項式に変換し、変換多項式を１つの暗号文として秘匿する。当該方法は、ハミング距離の算出として、下記の式（３）に示すような格子準同型暗号が持つ多項式演算の暗号操作を利用する。つまり、ハミング距離は、暗号乗算１回＋暗号加算２回＋暗号減算１回＋暗号スカラー１回で算出できる。これにより、当該方法では、ハミング距離の暗号文のデータサイズと、ハミング距離の算出時間との大幅な削減が可能となる。なお、当該方法は、処理の高速化のために、照合時に用いる乱数は、登録時の乱数Ｒのビットの並びを逆順にしたものを用いる。
【００４０】
【数３】
2015139014.tif 000006
【００４１】
ハミング距離の暗号文のデータサイズは、例えば２０４８次元の場合、従来は(E(a1),・・・，E(a2048))より、２０４８個の暗号文となるが、当該方法では、E(a(x))より、１個の暗号文となり、データサイズを２０４８分の１に削減できる。また、ハミング距離の算出時間は、従来は下記の式（４）に示す算出時間ｔｈ１のように、２０４８回の暗号乗算が必要であったのに対して、当該方法では、下記の式（５）に示す算出時間ｔｈ２のように、１回の暗号乗算となる。つまり、当該方法では、従来に比べ２０４８倍高速化できる。例えば、当該方法では、２０４８次元（２０４８ビット）に対して数ミリ秒で照合できる。すなわち、当該方法では、実用的な時間で照合処理が可能となる。
【００４２】
【数４】
2015139014.tif 000007
【００４３】
【数５】
2015139014.tif 000008
【００４４】
認証サーバ２００は、通信部２１０と、記憶部２２０と、制御部２３０とを有する。なお、認証サーバ２００は、図２に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
【００４５】
通信部２１０は、例えば、ＮＩＣ等によって実現される。通信部２１０は、ネットワークＮを介して端末装置１０および計算サーバ１００と有線または無線で接続され、端末装置１０および計算サーバ１００との間で情報の通信を司る通信インタフェースである。通信部２１０は、計算サーバ１００からハミング距離を受信する。通信部２１０は、受信したハミング距離を制御部２３０に出力する。また、通信部２１０は、制御部２３０から照合結果が入力されると、当該照合結果を端末装置１０に送信する。
【００４６】
記憶部２２０は、例えば、ＲＡＭ、フラッシュメモリ等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部２２０は、制御部２３０での処理に用いる情報を記憶する。
【００４７】
制御部２３０は、例えば、ＣＰＵやＭＰＵ等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部２３０は、例えば、ＡＳＩＣやＦＰＧＡ等の集積回路により実現されるようにしてもよい。制御部２３０は、判定部２３１を有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部２３０の内部構成は、図２に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部２３０は、準同型暗号の公開鍵および秘密鍵を管理し、公開鍵を通信部２１０を介して認証システム１に属する端末装置１０に配信する。
【００４８】
判定部２３１は、通信部２１０からハミング距離が入力されると、ハミング距離を準同型暗号の秘密鍵で復号する。判定部２３１は、復号された平文のハミング距離が所定値未満であるか否かを判定する。判定部２３１は、復号された平文のハミング距離が所定値未満である場合には、認証可（ＯＫ）と判定する。判定部２３１は、復号された平文のハミング距離が所定値以上である場合には、認証不可（ＮＧ）と判定する。判定部２３１は、所定値として、概ねハミング距離のビット列の半分程度、例えば、ハミング距離が２０４８次元のビット列であるときには、１０２４ビットとすることができる。判定部２３１は、判定内容を照合結果として、通信部２１０を介して端末装置１０に送信する。
【００４９】
次に、実施例１の認証システム１の動作について説明する。
【００５０】
まず、ユーザの生体情報ａを認証システム１に登録する場合を説明する。図３は、実施例１の認証システムの登録時の動作の一例を示すシーケンス図である。なお、以下の説明では、乱数Ｒはユーザが入力したパスワードをシードとして生成する場合を一例として説明する。端末装置１０の取得部１３は、ユーザの生体情報ａを取得して制御部１４に出力する（ステップＳ１）。制御部１４の生成部１５は、取得部１３からユーザの生体情報ａが入力されると、生体情報ａから特徴を抽出して特徴情報Ａ（特徴ベクトルＡ）を生成する（ステップＳ２）。生成部１５は、生成した特徴情報Ａを算出部１６に出力する。
【００５１】
また、取得部１３は、ユーザによって入力されたパスワードを取得して制御部１４に出力する（ステップＳ３）。制御部１４の算出部１６は、入力されたパスワードをシードとして乱数Ｒを生成する（ステップＳ４）。
【００５２】
算出部１６は、生成部１５から特徴情報Ａが入力されると、特徴情報Ａと乱数Ｒとの排他的論理和により第１の暗号文として第３の暗号文を算出する（ステップＳ５）。算出部１６は、算出した第３の暗号文を暗号化部１７に出力する。
【００５３】
暗号化部１７は、算出部１６から第３の暗号文が入力されると、認証サーバ２００から配信された準同型暗号の公開鍵を用いて準同型暗号化処理を実行する。暗号化部１７は、第３の暗号文を、当該第３の暗号文に対応する第２の暗号文として第５の暗号文に暗号化する（ステップＳ６）。暗号化部１７は、暗号化された第５の暗号文を、通信部１１を介して計算サーバ１００に送信する（ステップＳ７）。
【００５４】
計算サーバ１００の通信部１１０は、端末装置１０から第５の暗号文を受信して、当該第５の暗号文を制御部１３０に出力する（ステップＳ８）。制御部１３０の算出部１３１は、通信部１１０から第５の暗号文が入力されると、第５の暗号文を登録情報記憶部１２１に記憶する（ステップＳ９）。これにより、認証システム１に当該ユーザの生体情報ａに基づく特徴情報Ａを登録することができる。
【００５５】
次に、ユーザの生体情報ｂを認証システム１を用いて認証する場合を説明する。図４は、実施例１の認証システムの照合時の動作の一例を示すシーケンス図である。なお、以下の説明では、登録時と同様に、乱数Ｒはユーザが入力したパスワードをシードとして生成する場合を一例として説明する。端末装置１０の取得部１３は、ユーザの生体情報ｂを取得して制御部１４に出力する（ステップＳ１１）。制御部１４の生成部１５は、取得部１３からユーザの生体情報ｂが入力されると、生体情報ｂから特徴を抽出して特徴情報Ｂ（特徴ベクトルＢ）を生成する（ステップＳ１２）。生成部１５は、生成した特徴情報Ｂを算出部１６に出力する。
【００５６】
また、取得部１３は、ユーザによって入力されたパスワードを取得して制御部１４に出力する（ステップＳ１３）。制御部１４の算出部１６は、入力されたパスワードをシードとして乱数Ｒを生成する（ステップＳ１４）。なお、乱数Ｒは、登録時と同じパスワードが入力されれば、登録時と照合時とで同一の乱数Ｒとなる。
【００５７】
算出部１６は、生成部１５から特徴情報Ｂが入力されると、特徴情報Ｂと乱数Ｒとの排他的論理和により第１の暗号文として第４の暗号文を算出する（ステップＳ１５）。算出部１６は、算出した第４の暗号文を暗号化部１７に出力する。
【００５８】
暗号化部１７は、算出部１６から第４の暗号文が入力されると、認証サーバ２００から配信された準同型暗号の公開鍵を用いて準同型暗号化処理を実行する。暗号化部１７は、第４の暗号文を、当該第４の暗号文に対応する第２の暗号文として第６の暗号文に暗号化する（ステップＳ１６）。暗号化部１７は、暗号化された第６の暗号文を、通信部１１を介して計算サーバ１００に送信する（ステップＳ１７）。
【００５９】
計算サーバ１００の通信部１１０は、端末装置１０から第６の暗号文を受信して、当該第６の暗号文を制御部１３０に出力する（ステップＳ１８）。制御部１３０の算出部１３１は、通信部１１０から第６の暗号文が入力されると、登録情報記憶部１２１から第６の暗号文のユーザに対応する第５の暗号文を読みだして、第５の暗号文と第６の暗号文とのハミング距離を算出する（ステップＳ１９）。算出部１３１は、算出したハミング距離を、通信部１１０を介して認証サーバ２００に送信する（ステップＳ２０）。
【００６０】
認証サーバ２００の通信部２１０は、計算サーバ１００からハミング距離を受信する（ステップＳ２１）。通信部２１０は、受信したハミング距離を制御部２３０に出力する。制御部２３０の判定部２３１は、通信部２１０からハミング距離が入力されると、ハミング距離を準同型暗号の秘密鍵で復号する（ステップＳ２２）。判定部２３１は、復号された平文のハミング距離と所定値とを照合する（ステップＳ２３）。すなわち、判定部２３１は、復号された平文のハミング距離が所定値未満であるか否かを判定する。判定部２３１は、復号された平文のハミング距離が所定値未満である場合には、認証可（ＯＫ）と判定する。判定部２３１は、復号された平文のハミング距離が所定値以上である場合には、認証不可（ＮＧ）と判定する。判定部２３１は、判定内容を照合結果として、通信部２１０を介して端末装置１０に送信する（ステップＳ２４）。
【００６１】
端末装置１０の通信部１１は、認証サーバ２００から照合結果を受信して、受信した照合結果を制御部１４に出力する（ステップＳ２５）。制御部１４は、通信部１１から照合結果が入力されると、照合結果に応じた処理を実行する。これにより、認証システム１に登録された当該ユーザの特徴情報Ａと、新たに入力された特徴情報Ｂとを照合することができる。
【００６２】
このように、端末装置１０は、ユーザの生体情報に基づく特徴情報を生成する。また、端末装置１０は、生成された特徴情報と、乱数との排他的論理和により、第１の暗号文を算出する。また、端末装置１０は、第１の暗号文を、暗号化した状態でハミング距離を算出可能な暗号アルゴリズムを用いて、第２の暗号文に暗号化する。その結果、認証サーバ２００に対して生体情報を秘匿できる。
【００６３】
また、端末装置１０は、暗号アルゴリズムとして準同型暗号を用いて、第１の暗号文を、第２の暗号文に暗号化する。その結果、ユーザの生体情報に係る特徴情報を暗号化した状態でハミング距離を算出できる。
【００６４】
また、端末装置１０は、乱数としてユーザに固有の乱数を用いて、第１の暗号文を算出する。その結果、セキュリティ強度を向上させることができる。
【００６５】
また、端末装置１０は、ユーザの生体情報に基づく特徴情報の登録時に、特徴情報を生成し、生成された特徴情報と乱数との排他的論理和により、第１の暗号文を算出する。また、端末装置１０は、第１の暗号文を、暗号化した状態でハミング距離を算出可能な暗号アルゴリズムを用いて、第２の暗号文に暗号化する。また、端末装置１０は、特徴情報の照合時に、特徴情報を生成し、生成された特徴情報と乱数との排他的論理和により、第１の暗号文を算出し、第１の暗号文を、暗号化した状態でハミング距離を算出可能な暗号アルゴリズムを用いて、第２の暗号文に暗号化する。その結果、特徴情報の登録時および照合時において二重に暗号化するので、認証サーバ２００に対してより強固に生体情報を秘匿できる。
【００６６】
また、上記実施例１では、ユーザの生体情報に係る特徴情報について、端末装置１０で登録時および照合時について準同型暗号化を行ったが、これに限定されない。例えば、端末装置１０に、さらに、暗号化する処理の実行を制御する処理を実行させ、例えば、照合時には、ユーザの生体情報に係る特徴情報について準同型暗号化を省略し、排他的論理和を算出するＸＯＲ暗号化のみを行ってもよい。
【実施例２】
【００６７】
照合時に、ユーザの生体情報に係る特徴情報について準同型暗号化を省略し、排他的論理和を算出するＸＯＲ暗号化のみを行う実施の形態につき、実施例２として以下に説明する。なお、上記実施例１の端末装置１０および計算サーバ１００と同一の構成には、それぞれ同一の符号を付すことで、その重複する構成および動作の説明については省略する。実施例２の端末装置２０が実施例１の端末装置１０と異なるところは、照合時に、ユーザの生体情報に係る特徴情報について準同型暗号化を省略し、排他的論理和を算出するＸＯＲ暗号化のみを行う点にある。
【００６８】
まず、図５を用いて、実施例２の認証システムの概要について説明する。図５は、実施例２の認証システムの概要を説明する説明図である。図５に示す実施例２の認証システム２は、実施例１の認証システム１と比べてステップＳ４３ａに相当する準同型暗号化処理が省略され、端末装置２０が第１の暗号文として第４の暗号文を計算サーバ１５０に送信する点が異なる（ステップＳ４２ｂ）。また、実施例２の認証システム２は、実施例１の認証システム１と比べて第４の暗号文と第５の暗号文とでハミング距離を算出する点が異なる（ステップＳ４４ｂ）。
【００６９】
端末装置２０は、認証システム２において、ユーザの生体情報の登録および照合を行う端末装置である。端末装置２０は、生体情報の登録を行う場合に、ユーザの生体情報を取得して、取得した生体情報をＸＯＲと準同型暗号との２段階で暗号化して計算サーバ１５０に送信する。また、端末装置２０は、生体情報の照合を行う場合に、ユーザの生体情報を取得して、取得した生体情報をＸＯＲの１段階のみ暗号化して計算サーバ１５０に送信する。
【００７０】
生体情報の登録時の動作であるステップＳ３１ｂ〜Ｓ３４ｂは、実施例１の認証システム１のステップＳ３１ａ〜Ｓ３４ａと、それぞれ同様の処理であるので、その説明を省略する。また、生体情報の照合時の動作であるステップＳ４１ｂ、Ｓ４５ｂは、実施例１の認証システム１のステップＳ４１ａ、Ｓ４５ａと同様の処理であるので、その説明を省略する。端末装置２０は、特徴ベクトルＢと、ユーザが指定したパスワード等に基づいて生成されたユーザ固有の乱数Ｒとの排他的論理和を算出して、ＸＯＲ暗号化を行って第４の暗号文を算出し、算出した第４の暗号文を計算サーバ１５０に送信する（ステップＳ４２ｂ）。
【００７１】
計算サーバ１５０は、端末装置２０から第４の暗号文を受信すると、第４の暗号文と登録情報として記憶された第５の暗号文との間で暗号化された状態でハミング距離を算出し、算出したハミング距離を認証サーバ２００に送信する（ステップＳ４４ｂ）。認証サーバ２００の動作は、実施例１の認証サーバ２００と同様であるので、その説明を省略する。実施例２では、照合時の特徴情報がＸＯＲ暗号化のみであるので、照合時の暗号化、および、ハミング距離の算出を高速化できる。
【００７２】
次に、図６を用いて、実施例２の認証システム２の構成について説明する。実施例２の認証システム２は、実施例１の認証システム１の端末装置１０に代えて端末装置２０を有する。また、実施例２の端末装置２０は、実施例１の端末装置１０と比べ、暗号化部１７に代えて暗号化部２７を有する点、および、通信部１１が介する暗号文が異なる。
【００７３】
さらに、実施例２の認証システム２は、実施例１の認証システム１の計算サーバ１００に代えて計算サーバ１５０を有する。また、実施例２の計算サーバ１５０は、実施例１の計算サーバ１００と比べ、算出部１３１に代えて算出部１３６を有する点、および、通信部１１０が介する暗号文が異なる。なお、端末装置２０の通信部１１、および、計算サーバ１５０の通信部１１０は、暗号文が暗号化部２７および算出部１３６に応じて変化するのみであるので、その説明は省略する。
【００７４】
端末装置２０の暗号化部２７は、算出部１６から第１の暗号文として第３の暗号文または第４の暗号文が入力される。暗号化部２７は、第３の暗号文を、準同型暗号の公開鍵を用いて当該第３の暗号文に対応する第２の暗号文として第５の暗号文に暗号化する。暗号化部２７は、暗号化を行うアルゴリズムとして、例えば、Ｉｄｅａｌ  ｌａｔｔｉｃｅｓ、Ｒｉｎｇ−ＬＷＥ等の格子ベース準同型暗号を用いることができる。なお、準同型暗号の公開鍵は、予め認証サーバ２００から配信された公開鍵を用いる。暗号化部２７は、第４の暗号文が入力された場合には、準同型暗号化処理を行わない。
【００７５】
暗号化部２７は、暗号化された第５の暗号文、または、入力された第４の暗号文そのままを、通信部１１を介して計算サーバ１５０に送信する。すなわち、暗号化部２７は、ユーザの生体情報に基づく特徴情報の登録時には、第２の暗号文として第５の暗号文を通信部１１を介して計算サーバ１５０に送信する。また、暗号化部２７は、ユーザの生体情報に基づく特徴情報の照合時には、第１の暗号文として第４の暗号文を通信部１１を介して計算サーバ１５０に送信する。
【００７６】
計算サーバ１５０の算出部１３６は、通信部１１０から第５の暗号文が入力されると、第５の暗号文を登録情報記憶部１２１に記憶する。算出部１３６は、通信部１１０から第４の暗号文が入力されると、登録情報記憶部１２１から第４の暗号文のユーザに対応する第５の暗号文を読みだして、第４の暗号文と第５の暗号文とのハミング距離を算出する。
【００７７】
ここで、ハミング距離の算出時間の高速化について説明する。まず、暗号化は、平文ｍの暗号文を下記の式（６）としたとき、下記の式（７）および式（８）で表すことができる。ここで、ｕ、ｇ、ｆは、暗号化時の乱数を示し、ｔは、平文空間のmodulusを示し、ｑは、暗号文空間のmodulusを示す。また、ｉｎ  Ｒｑは、素数ｑを法とした多項式環の集合を示す。
【００７８】
【数６】
2015139014.tif 000009
【００７９】
【数７】
2015139014.tif 000010
【００８０】
【数８】
2015139014.tif 000011
【００８１】
ただし、秘密鍵ｓｋ１＝ｓ、公開鍵ｐｋ１＝（ａ０，ａ１）とすると、ａ０は下記の式（９）で表すことができる。なお、ａ１、ｅは、鍵生成時の乱数を示す。
【００８２】
【数９】
2015139014.tif 000012
【００８３】
通常の暗号文処理、つまりハミング距離の算出では、平文ｍ＝ＡｘｏｒＲ、ｍ’＝ＢｘｏｒＲに対する暗号文の乗算処理は、下記の式（１０）に示すように、多項式×多項式を４回行うことになる。
【００８４】
【数１０】
2015139014.tif 000013
【００８５】
これに対し、実施例２の暗号文処理、つまりハミング距離の算出では、下記の式（１１）に示すように、多項式×定数を２回行うので、式（１０）に比べて処理コストを大幅に削減できる。例えば、実施例２では、実施例１と比較して、計算サーバ１５０の処理時間は数十倍程度高速化できる。なお、（ＢｘｏｒＲ）は、第２の暗号文のｃ０、ｃ１に比べて遥かに小さい多項式である。
【００８６】
【数１１】
2015139014.tif 000014
【００８７】
算出部１３６は、算出したハミング距離を、通信部１１０を介して認証サーバ２００に送信する。
【００８８】
次に、実施例２の認証システム２の動作について説明する。
【００８９】
まず、ユーザの生体情報ａを認証システム２に登録する場合を説明する。図７は、実施例２の認証システムの登録時の動作の一例を示すシーケンス図である。なお、以下の説明では、乱数Ｒはユーザが入力したパスワードをシードとして生成する場合を一例として説明する。端末装置２０の取得部１３は、ユーザの生体情報ａを取得して制御部１４に出力する（ステップＳ５１）。制御部１４の生成部１５は、取得部１３からユーザの生体情報ａが入力されると、生体情報ａから特徴を抽出して特徴情報Ａ（特徴ベクトルＡ）を生成する（ステップＳ５２）。生成部１５は、生成した特徴情報Ａを算出部１６に出力する。
【００９０】
また、取得部１３は、ユーザによって入力されたパスワードを取得して制御部１４に出力する（ステップＳ５３）。制御部１４の算出部１６は、入力されたパスワードをシードとして乱数Ｒを生成する（ステップＳ５４）。
【００９１】
算出部１６は、生成部１５から特徴情報Ａが入力されると、特徴情報Ａと乱数Ｒとの排他的論理和により第１の暗号文として第３の暗号文を算出する（ステップＳ５５）。算出部１６は、算出した第３の暗号文を暗号化部２７に出力する。
【００９２】
暗号化部２７は、算出部１６から第３の暗号文が入力されると、認証サーバ２００から配信された準同型暗号の公開鍵を用いて準同型暗号化処理を実行する。暗号化部２７は、第３の暗号文を、当該第３の暗号文に対応する第２の暗号文として第５の暗号文に暗号化する（ステップＳ５６）。暗号化部２７は、暗号化された第５の暗号文を、通信部１１を介して計算サーバ１５０に送信する（ステップＳ５７）。
【００９３】
計算サーバ１５０の通信部１１０は、端末装置２０から第５の暗号文を受信して、当該第５の暗号文を制御部１３０に出力する（ステップＳ５８）。制御部１３０の算出部１３１は、通信部１１０から第５の暗号文が入力されると、第５の暗号文を登録情報記憶部１２１に記憶する（ステップＳ５９）。これにより、認証システム２に当該ユーザの生体情報ａに基づく特徴情報Ａを登録することができる。
【００９４】
次に、ユーザの生体情報ｂを認証システム２を用いて認証する場合を説明する。図８は、実施例２の認証システムの照合時の動作の一例を示すシーケンス図である。なお、以下の説明では、登録時と同様に、乱数Ｒはユーザが入力したパスワードをシードとして生成する場合を一例として説明する。端末装置２０の取得部１３は、ユーザの生体情報ｂを取得して制御部１４に出力する（ステップＳ７１）。制御部１４の生成部１５は、取得部１３からユーザの生体情報ｂが入力されると、生体情報ｂから特徴を抽出して特徴情報Ｂ（特徴ベクトルＢ）を生成する（ステップＳ７２）。生成部１５は、生成した特徴情報Ｂを算出部１６に出力する。
【００９５】
また、取得部１３は、ユーザによって入力されたパスワードを取得して制御部１４に出力する（ステップＳ７３）。制御部１４の算出部１６は、入力されたパスワードをシードとして乱数Ｒを生成する（ステップＳ７４）。なお、乱数Ｒは、登録時と同じパスワードが入力されれば、登録時と照合時とで同一の乱数Ｒとなる。
【００９６】
算出部１６は、生成部１５から特徴情報Ｂが入力されると、特徴情報Ｂと乱数Ｒとの排他的論理和により第１の暗号文として第４の暗号文を算出する（ステップＳ７５）。算出部１６は、算出した第４の暗号文を暗号化部２７に出力する。
【００９７】
暗号化部２７は、算出部１６から第４の暗号文が入力されると、入力された第４の暗号文を、そのまま通信部１１を介して計算サーバ１５０に送信する（ステップＳ７６）。
【００９８】
計算サーバ１５０の通信部１１０は、端末装置２０から第４の暗号文を受信して、当該第４の暗号文を制御部１３０に出力する（ステップＳ７７）。制御部１３０の算出部１３６は、通信部１１０から第４の暗号文が入力されると、登録情報記憶部１２１から第４の暗号文のユーザに対応する第５の暗号文を読みだして、第４の暗号文と第５の暗号文とのハミング距離を算出する（ステップＳ７８）。算出部１３６は、算出したハミング距離を、通信部１１０を介して認証サーバ２００に送信する（ステップＳ７９）。
【００９９】
認証サーバ２００の通信部２１０は、計算サーバ１５０からハミング距離を受信する（ステップＳ８０）。通信部２１０は、受信したハミング距離を制御部２３０に出力する。制御部２３０の判定部２３１は、通信部２１０からハミング距離が入力されると、ハミング距離を準同型暗号の秘密鍵で復号する（ステップＳ８１）。判定部２３１は、復号された平文のハミング距離と所定値とを照合する（ステップＳ８２）。すなわち、判定部２３１は、復号された平文のハミング距離が所定値未満であるか否かを判定する。判定部２３１は、復号された平文のハミング距離が所定値未満である場合には、認証可（ＯＫ）と判定する。判定部２３１は、復号された平文のハミング距離が所定値以上である場合には、認証不可（ＮＧ）と判定する。判定部２３１は、判定内容を照合結果として、通信部２１０を介して端末装置２０に送信する（ステップＳ８３）。
【０１００】
端末装置２０の通信部１１は、認証サーバ２００から照合結果を受信して、受信した照合結果を制御部１４に出力する（ステップＳ８４）。制御部１４は、通信部１１から照合結果が入力されると、照合結果に応じた処理を実行する。これにより、認証システム２に登録された当該ユーザの特徴情報Ａと、新たに入力された特徴情報Ｂとを、より高速に照合することができる。
【０１０１】
このように、端末装置２０は、ユーザの生体情報に基づく特徴情報の登録時に、特徴情報を生成し、生成された特徴情報と乱数との排他的論理和により、第１の暗号文を算出する。また、端末装置２０は、第１の暗号文を、暗号化した状態でハミング距離を算出可能な暗号アルゴリズムを用いて、第２の暗号文に暗号化する。また、端末装置２０は、特徴情報の照合時に、特徴情報を生成し、生成された特徴情報と乱数との排他的論理和により、第１の暗号文を算出する。その結果、より高速に生体情報を照合でき、かつ、認証サーバに対して生体情報を秘匿できる。
【０１０２】
また、上記実施例１では、ユーザの生体情報に係る特徴情報について、端末装置１０で登録時および照合時について準同型暗号化を行ったが、これに限定されない。また、上記実施例２では、ユーザの生体情報に係る特徴情報について、端末装置２０で登録時について準同型暗号化を行ったが、これに限定されない。例えば、端末装置１０に、さらに、暗号化する処理の実行を制御する処理を実行させ、例えば、登録時には、ユーザの生体情報に係る特徴情報について準同型暗号化を省略し、排他的論理和を算出するＸＯＲ暗号化のみを行ってもよい。
【実施例３】
【０１０３】
登録時に、ユーザの生体情報に係る特徴情報について準同型暗号化を省略し、排他的論理和を算出するＸＯＲ暗号化のみを行う実施の形態につき、実施例３として以下に説明する。なお、上記実施例１の端末装置１０および計算サーバ１００と同一の構成には、それぞれ同一の符号を付すことで、その重複する構成および動作の説明については省略する。実施例３の端末装置３０が実施例１の端末装置１０と異なるところは、登録時に、ユーザの生体情報に係る特徴情報について準同型暗号化を省略し、排他的論理和を算出するＸＯＲ暗号化のみを行う点にある。
【０１０４】
まず、図９を用いて、実施例３の認証システムの概要について説明する。図９は、実施例３の認証システムの概要を説明する説明図である。図９に示す実施例３の認証システム３は、実施例１の認証システム１と比べてステップＳ３３ａに相当する準同型暗号化処理が省略され、端末装置３０が第１の暗号文として第３の暗号文を計算サーバ１７０に送信する点が異なる（ステップＳ３２ｃ）。また、実施例３の認証システム３は、実施例１の認証システム１と比べて第３の暗号文と第６の暗号文とでハミング距離を算出する点が異なる（ステップＳ４４ｃ）。
【０１０５】
端末装置３０は、認証システム３において、ユーザの生体情報の登録および照合を行う端末装置である。端末装置３０は、生体情報の登録を行う場合に、ユーザの生体情報を取得して、取得した生体情報をＸＯＲの１段階のみ暗号化して計算サーバ１７０に送信する。また、端末装置３０は、生体情報の照合を行う場合に、ユーザの生体情報を取得して、取得した生体情報をＸＯＲと準同型暗号との２段階で暗号化して計算サーバ１７０に送信する。
【０１０６】
生体情報の登録時の動作であるステップＳ３１ｃは、実施例１の認証システム１のステップＳ３１ａと同様の処理であるので、その説明を省略する。また、生体情報の照合時の動作であるステップＳ４１ｃ〜Ｓ４３ｃ、Ｓ４５ｃは、実施例１の認証システム１のステップＳ４１ａ〜Ｓ４３ａ、Ｓ４５ａと、それぞれ同様の処理であるので、その説明を省略する。端末装置３０は、特徴ベクトルＡと、ユーザが指定したパスワード等に基づいて生成されたユーザ固有の乱数Ｒとの排他的論理和を算出して、ＸＯＲ暗号化を行って第３の暗号文を算出し、算出した第３の暗号文を計算サーバ１７０に送信する（ステップＳ３２ｃ）。計算サーバ１７０は、端末装置３０から第３の暗号文を受信すると、第３の暗号文を登録情報として記憶する（ステップＳ３４ｃ）。
【０１０７】
計算サーバ１７０は、端末装置３０から第２の暗号文として第６の暗号文を受信すると、第６の暗号文と登録情報として記憶された第３の暗号文との間で暗号化された状態でハミング距離を算出する。計算サーバ１７０は、算出したハミング距離を認証サーバ２００に送信する（ステップＳ４４ｃ）。認証サーバ２００の動作は、実施例１の認証サーバ２００と同様であるので、その説明を省略する。実施例３では、登録時の特徴情報がＸＯＲ暗号化のみであるので、登録時の暗号化、および、ハミング距離の算出を高速化できる。
【０１０８】
次に、図１０を用いて、実施例３の認証システム３の構成について説明する。実施例３の認証システム３は、実施例１の認証システム１の端末装置１０に代えて端末装置３０を有する。また、実施例１の端末装置３０は、実施例１の端末装置１０と比べ、暗号化部１７に代えて暗号化部３７を有する点、および、通信部１１が介する暗号文が異なる。
【０１０９】
さらに、実施例３の認証システム３は、実施例１の認証システム１の計算サーバ１００に代えて計算サーバ１７０を有する。また、実施例３の計算サーバ１７０は、実施例１の計算サーバ１００と比べ、算出部１３１に代えて算出部１４１を有する点、および、通信部１１０が介する暗号文が異なる。なお、端末装置３０の通信部１１、および、計算サーバ１７０の通信部１１０は、暗号文が暗号化部３７および算出部１４１に応じて変化するのみであるので、その説明は省略する。
【０１１０】
端末装置３０の暗号化部３７は、算出部１６から第１の暗号文として第３の暗号文または第４の暗号文が入力される。暗号化部３７は、第３の暗号文が入力された場合には、準同型暗号化処理を行わない。暗号化部３７は、第４の暗号文を、準同型暗号の公開鍵を用いて当該第４の暗号文に対応する第２の暗号文として第６の暗号文に暗号化する。暗号化部３７は、暗号化を行うアルゴリズムとして、例えば、Ｉｄｅａｌ  ｌａｔｔｉｃｅｓ、Ｒｉｎｇ−ＬＷＥ等の格子ベース準同型暗号を用いることができる。なお、準同型暗号の公開鍵は、予め認証サーバ２００から配信された公開鍵を用いる。
【０１１１】
暗号化部３７は、入力された第３の暗号文そのまま、または、暗号化された第６の暗号文を、通信部１１を介して計算サーバ１７０に送信する。すなわち、暗号化部３７は、ユーザの生体情報に基づく特徴情報の登録時には、第１の暗号文として第３の暗号文を通信部１１を介して計算サーバ１７０に送信する。また、暗号化部３７は、ユーザの生体情報に基づく特徴情報の照合時には、第２の暗号文として第６の暗号文を通信部１１を介して計算サーバ１７０に送信する。
【０１１２】
計算サーバ１７０の算出部１４１は、通信部１１０から第３の暗号文が入力されると、第３の暗号文を登録情報記憶部１２１に記憶する。算出部１４１は、通信部１１０から第６の暗号文が入力されると、登録情報記憶部１２１から第６の暗号文のユーザに対応する第３の暗号文を読みだして、第３の暗号文と第６の暗号文とのハミング距離を算出する。なお、ハミング距離の算出は、実施例２と同様に算出できる。算出部１４１は、算出したハミング距離を、通信部１１０を介して認証サーバ２００に送信する。
【０１１３】
次に、実施例３の認証システム３の動作について説明する。
【０１１４】
まず、ユーザの生体情報ａを認証システム３に登録する場合を説明する。図１１は、実施例３の認証システムの登録時の動作の一例を示すシーケンス図である。なお、以下の説明では、乱数Ｒはユーザが入力したパスワードをシードとして生成する場合を一例として説明する。端末装置３０の取得部１３は、ユーザの生体情報ａを取得して制御部１４に出力する（ステップＳ１０１）。制御部１４の生成部１５は、取得部１３からユーザの生体情報ａが入力されると、生体情報ａから特徴を抽出して特徴情報Ａ（特徴ベクトルＡ）を生成する（ステップＳ１０２）。生成部１５は、生成した特徴情報Ａを算出部１６に出力する。
【０１１５】
また、取得部１３は、ユーザによって入力されたパスワードを取得して制御部１４に出力する（ステップＳ１０３）。制御部１４の算出部１６は、入力されたパスワードをシードとして乱数Ｒを生成する（ステップＳ１０４）。
【０１１６】
算出部１６は、生成部１５から特徴情報Ａが入力されると、特徴情報Ａと乱数Ｒとの排他的論理和により第１の暗号文として第３の暗号文を算出する（ステップＳ１０５）。算出部１６は、算出した第３の暗号文を暗号化部３７に出力する。
【０１１７】
暗号化部３７は、算出部１６から第３の暗号文が入力されると、入力された第３の暗号文を、そのまま通信部１１を介して計算サーバ１７０に送信する（ステップＳ１０６）。
【０１１８】
計算サーバ１７０の通信部１１０は、端末装置３０から第３の暗号文を受信して、当該第３の暗号文を制御部１３０に出力する（ステップＳ１０７）。制御部１３０の算出部１４１は、通信部１１０から第３の暗号文が入力されると、第３の暗号文を登録情報記憶部１２１に記憶する（ステップＳ１０８）。これにより、認証システム３に当該ユーザの生体情報ａに基づく特徴情報Ａを登録することができる。
【０１１９】
次に、ユーザの生体情報ｂを認証システム３を用いて認証する場合を説明する。図１２は、実施例３の認証システムの照合時の動作の一例を示すシーケンス図である。なお、以下の説明では、登録時と同様に、乱数Ｒはユーザが入力したパスワードをシードとして生成する場合を一例として説明する。端末装置３０の取得部１３は、ユーザの生体情報ｂを取得して制御部１４に出力する（ステップＳ１１１）。制御部１４の生成部１５は、取得部１３からユーザの生体情報ｂが入力されると、生体情報ｂから特徴を抽出して特徴情報Ｂ（特徴ベクトルＢ）を生成する（ステップＳ１１２）。生成部１５は、生成した特徴情報Ｂを算出部１６に出力する。
【０１２０】
また、取得部１３は、ユーザによって入力されたパスワードを取得して制御部１４に出力する（ステップＳ１１３）。制御部１４の算出部１６は、入力されたパスワードをシードとして乱数Ｒを生成する（ステップＳ１１４）。なお、乱数Ｒは、登録時と同じパスワードが入力されれば、登録時と照合時とで同一の乱数Ｒとなる。
【０１２１】
算出部１６は、生成部１５から特徴情報Ｂが入力されると、特徴情報Ｂと乱数Ｒとの排他的論理和により第１の暗号文として第４の暗号文を算出する（ステップＳ１１５）。算出部１６は、算出した第４の暗号文を暗号化部３７に出力する。
【０１２２】
暗号化部３７は、算出部１６から第４の暗号文が入力されると、認証サーバ２００から配信された準同型暗号の公開鍵を用いて準同型暗号化処理を実行し、第４の暗号文を、当該第４の暗号文に対応する第２の暗号文として第６の暗号文に暗号化する（ステップＳ１１６）。暗号化部３７は、暗号化された第６の暗号文を、通信部１１を介して計算サーバ１７０に送信する（ステップＳ１１７）。
【０１２３】
計算サーバ１７０の通信部１１０は、端末装置３０から第６の暗号文を受信して、当該第６の暗号文を制御部１３０に出力する（ステップＳ１１８）。制御部１３０の算出部１４１は、通信部１１０から第６の暗号文が入力されると、登録情報記憶部１２１から第６の暗号文のユーザに対応する第３の暗号文を読みだして、第３の暗号文と第６の暗号文とのハミング距離を算出する（ステップＳ１１９）。算出部１４１は、算出したハミング距離を、通信部１１０を介して認証サーバ２００に送信する（ステップＳ１２０）。
【０１２４】
認証サーバ２００の通信部２１０は、計算サーバ１７０からハミング距離を受信する（ステップＳ１２１）。通信部２１０は、受信したハミング距離を制御部２３０に出力する。制御部２３０の判定部２３１は、通信部２１０からハミング距離が入力されると、ハミング距離を準同型暗号の秘密鍵で復号する（ステップＳ１２２）。判定部２３１は、復号された平文のハミング距離と所定値とを照合する（ステップＳ１２３）。すなわち、判定部２３１は、復号された平文のハミング距離が所定値未満であるか否かを判定する。判定部２３１は、復号された平文のハミング距離が所定値未満である場合には、認証可（ＯＫ）と判定する。判定部２３１は、復号された平文のハミング距離が所定値以上である場合には、認証不可（ＮＧ）と判定する。判定部２３１は、判定内容を照合結果として、通信部２１０を介して端末装置３０に送信する（ステップＳ１２４）。
【０１２５】
端末装置３０の通信部１１は、認証サーバ２００から照合結果を受信して、受信した照合結果を制御部１４に出力する（ステップＳ１２５）。制御部１４は、通信部１１から照合結果が入力されると、照合結果に応じた処理を実行する。これにより、認証システム３に登録された当該ユーザの特徴情報Ａと、新たに入力された特徴情報Ｂとを照合することができる。
【０１２６】
このように、端末装置３０は、ユーザの生体情報に基づく特徴情報の登録時に、特徴情報を生成し、生成された特徴情報と乱数との排他的論理和により、第１の暗号文を算出する。また、端末装置３０は、特徴情報の照合時に、特徴情報を生成し、生成された特徴情報と乱数との排他的論理和により、第１の暗号文を算出する。また、端末装置３０は、第１の暗号文を、暗号化した状態でハミング距離を算出可能な暗号アルゴリズムを用いて、第２の暗号文に暗号化する。その結果、より高速に生体情報を登録でき、かつ、認証サーバ２００に対して生体情報を秘匿できる。
【０１２７】
また、上記の各実施例では、ユーザが操作する端末である端末装置１０、２０、３０と、認証サーバ２００とを分散して配置したが、これに限定されない。例えば、端末装置１０、２０、３０に、ユーザ自身が管理する秘密鍵を格納したＩＣカード等を読み込ませて、認証サーバ２００の代わりにハミング距離を照合するようにしてもよい。これにより、秘密鍵を認証サーバ２００にさえ知らせることなく、生体認証を行うことができる。
【０１２８】
また、上記の各実施例では、ハミング距離を計算するために、計算サーバ１００、１５０、１７０を設けたが、これに限定されない。例えば、クラウド上に計算サーバを設ける構成としてもよい。これにより、認証システム１、２、３をより柔軟に構成することができる。
【０１２９】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、上記の各実施例の算出部１６と暗号化部１７、２７、３７とのそれぞれを統合してもよい。
【０１３０】
さらに、各装置で行われる各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。
【０１３１】
ところで、上記の実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図１３は、情報処理プログラムを実行するコンピュータの一例を示す説明図である。
【０１３２】
図１３が示すように、コンピュータ３００は、各種演算処理を実行するＣＰＵ３０１と、データ入力を受け付ける入力装置３０２と、モニタ３０３とを有する。また、コンピュータ３００は、記憶媒体からプログラム等を読み取る媒体読取装置３０４と、各種装置と接続するためのインタフェース装置３０５と、他の装置と有線または無線により接続するための通信装置３０６とを有する。また、コンピュータ３００は、各種情報を一時記憶するＲＡＭ３０７と、ハードディスク装置３０８とを有する。また、各装置３０１〜３０８は、バス３０９に接続される。
【０１３３】
ハードディスク装置３０８には、図２、６、１０に示した生成部１５、算出部１６、および、暗号化部１７、２７または３７の各処理部と同様の機能を有する情報処理プログラムが記憶される。また、ハードディスク装置３０８には、情報処理プログラムを実現するための各種データが記憶される。入力装置３０２は、例えばユーザからパスワードの入力を受け付けたり、コンピュータ３００の管理者から管理情報の入力を受け付ける。モニタ３０３は、例えば認証のためのパスワード入力画面を表示したり、コンピュータ３００の管理者がメンテナンス等を行う場合に各種情報を表示する。インタフェース装置３０５は、例えば印刷装置等が接続される。通信装置３０６は、ネットワークＮに接続され、例えば、ハミング距離計算を行う計算サーバや、ハミング距離を照合する認証サーバと各種情報をやりとりする。
【０１３４】
ＣＰＵ３０１は、ハードディスク装置３０８に記憶された各プログラムを読み出して、ＲＡＭ３０７に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ３００を図２、６、１０に示した生成部１５、算出部１６、および、暗号化部１７、２７または３７として機能させることができる。
【０１３５】
なお、上記の情報処理プログラムは、必ずしもハードディスク装置３０８に記憶されている必要はない。例えば、コンピュータ３００が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ３００が読み出して実行するようにしてもよい。コンピュータ３００が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）等に接続された装置にこの情報処理プログラムを記憶させておき、コンピュータ３００がこれらから情報処理プログラムを読み出して実行するようにしてもよい。
【０１３６】
以上、本実施例を含む実施の形態に関し、さらに以下の付記を開示する。
【０１３７】
（付記１）コンピュータに、
ユーザの生体情報に基づく特徴情報を生成し、
生成された前記特徴情報と乱数との論理演算により、第１の暗号文を算出し、
前記第１の暗号文を、暗号化した状態でハミング距離を算出可能な暗号アルゴリズムを用いて、第２の暗号文に暗号化する
処理を実行させることを特徴とする情報処理プログラム。
【０１３８】
（付記２）前記算出する処理は、前記論理演算として排他的論理和により前記第１の暗号文を算出することを特徴とする付記１に記載の情報処理プログラム。
【０１３９】
（付記３）前記暗号化する処理は、前記暗号アルゴリズムとして準同型暗号を用いて、前記第１の暗号文を、前記第２の暗号文に暗号化することを特徴とする付記１または２に記載の情報処理プログラム。
【０１４０】
（付記４）前記算出する処理は、前記乱数として前記ユーザに固有の乱数を用いて、前記第１の暗号文を算出することを特徴とする付記１〜３のいずれか１つに記載の情報処理プログラム。
【０１４１】
（付記５）前記コンピュータに、
さらに、前記特徴情報の登録時および照合時と、前記登録時と、前記照合時とのうち、いずれかの場合に、前記暗号化する処理を実行するかを制御する処理を実行させることを特徴とする付記１〜４のいずれか１つに記載の情報処理プログラム。
【０１４２】
（付記６）ユーザの生体情報に基づく特徴情報を生成する生成部と、
生成された前記特徴情報と乱数との論理演算により、第１の暗号文を算出する算出部と、
前記第１の暗号文を、暗号化した状態でハミング距離を算出可能な暗号アルゴリズムを用いて、第２の暗号文に暗号化する暗号化部と
を有することを特徴とする情報処理装置。
【０１４３】
（付記７）前記算出部は、前記論理演算として排他的論理和により前記第１の暗号文を算出することを特徴とする付記６に記載の情報処理装置。
【０１４４】
（付記８）コンピュータが、
ユーザの生体情報に基づく特徴情報の登録時に、前記特徴情報を生成し、生成された前記特徴情報と乱数との論理演算により、第１の暗号文を算出し、前記第１の暗号文を、暗号化した状態でハミング距離を算出可能な暗号アルゴリズムを用いて、第２の暗号文に暗号化し、
前記特徴情報の照合時に、前記特徴情報を生成し、生成された前記特徴情報と前記乱数との論理演算により、第１の暗号文を算出し、前記第１の暗号文を、暗号化した状態でハミング距離を算出可能な暗号アルゴリズムを用いて、第２の暗号文に暗号化する
処理を実行することを特徴とする情報処理方法。
【０１４５】
（付記９）前記第１の暗号文の算出は、前記論理演算として排他的論理和により前記第１の暗号文を算出することを特徴とする付記８に記載の情報処理方法。
【０１４６】
（付記１０）コンピュータが、
ユーザの生体情報に基づく特徴情報の登録時に、前記特徴情報を生成し、生成された前記特徴情報と乱数との論理演算により、第１の暗号文を算出し、前記第１の暗号文を、暗号化した状態でハミング距離を算出可能な暗号アルゴリズムを用いて、第２の暗号文に暗号化し、
前記特徴情報の照合時に、前記特徴情報を生成し、生成された前記特徴情報と前記乱数との論理演算により、第１の暗号文を算出する
処理を実行することを特徴とする情報処理方法。
【０１４７】
（付記１１）前記第１の暗号文の算出は、前記論理演算として排他的論理和により前記第１の暗号文を算出することを特徴とする付記１０に記載の情報処理方法。
【０１４８】
（付記１２）コンピュータが、
ユーザの生体情報に基づく特徴情報の登録時に、前記特徴情報を生成し、生成された前記特徴情報と乱数との論理演算により、第１の暗号文を算出し、
前記特徴情報の照合時に、前記特徴情報を生成し、生成された前記特徴情報と前記乱数との論理演算により、第１の暗号文を算出し、前記第１の暗号文を、暗号化した状態でハミング距離を算出可能な暗号アルゴリズムを用いて、第２の暗号文に暗号化する
処理を実行することを特徴とする情報処理方法。
【０１４９】
（付記１３）前記第１の暗号文の算出は、前記論理演算として排他的論理和により前記第１の暗号文を算出することを特徴とする付記１２に記載の情報処理方法。
【０１５０】
（付記１４）情報処理装置と、計算サーバと、認証サーバとを有する情報処理システムであって、
前記情報処理装置は、
ユーザの生体情報に基づく特徴情報を生成する生成部と、
生成された前記特徴情報と乱数との論理演算により、第１の暗号文を算出する算出部と、
前記第１の暗号文を、暗号化した状態でハミング距離を算出可能な暗号アルゴリズムを用いて、第２の暗号文に暗号化する暗号化部と、
前記第１の暗号文および前記第２の暗号文のうち１つ以上の暗号文を前記計算サーバに送信し、前記認証サーバから照合結果を受信する通信部と、を有し、
前記計算サーバは、
前記情報処理装置から前記第１の暗号文および前記第２の暗号文のうち１つ以上の暗号文を受信し、算出されたハミング距離を前記認証サーバに送信する通信部と、
前記第１の暗号文を登録情報として記憶する記憶部と、
記憶部に記憶された前記第１の暗号文と、受信した前記第１の暗号文および前記第２の暗号文とのハミング距離を算出する算出部と、を有し、
前記認証サーバは、
前記計算サーバから前記ハミング距離を受信し、前記情報処理装置に照合結果を送信する通信部と、
前記ハミング距離が所定値未満である場合に、照合結果として認証可と判定し、前記ハミング距離が所定値以上である場合に、照合結果として認証不可と判定する判定部と
を有することを特徴とする情報処理システム。
【０１５１】
（付記１５）前記情報処理装置の前記算出部は、前記論理演算として排他的論理和により前記第１の暗号文を算出することを特徴とする付記１４に記載の情報処理システム。
【符号の説明】
【０１５２】
１，２，３  認証システム
１０，２０，３０  端末装置
１１  通信部
１２  記憶部
１３  取得部
１４  制御部
１５  生成部
１６  算出部
１７，２７，３７  暗号化部
１００，１５０，１７０  計算サーバ
１１０  通信部
１２０  記憶部
１２１  登録情報記憶部
１３０  制御部
１３１，１３６，１４１  算出部
２００  認証サーバ
２１０  通信部
２２０  記憶部
２３０  制御部
２３１  判定部
Ｎ  ネットワーク
【図１】
2015139014.tif 000015
【図２】
2015139014.tif 000016
【図３】
2015139014.tif 000017
【図４】
2015139014.tif 000018
【図５】
2015139014.tif 000019
【図６】
2015139014.tif 000020
【図７】
2015139014.tif 000021
【図８】
2015139014.tif 000022
【図９】
2015139014.tif 000023
【図１０】
2015139014.tif 000024
【図１１】
2015139014.tif 000025
【図１２】
2015139014.tif 000026
【図１３】
2015139014.tif 000027