(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-19
(45)【発行日】2024-07-29
(54)【発明の名称】秘匿認証方法および秘匿認証システム
(51)【国際特許分類】
G09C 1/00 20060101AFI20240722BHJP
G06F 21/31 20130101ALI20240722BHJP
G06F 21/62 20130101ALI20240722BHJP
【FI】
G09C1/00 650Z
G06F21/31
G06F21/62 354
(21)【出願番号】P 2021551675
(86)(22)【出願日】2020-10-06
(86)【国際出願番号】 JP2020037925
(87)【国際公開番号】W WO2021070838
(87)【国際公開日】2021-04-15
【審査請求日】2023-07-24
(31)【優先権主張番号】P 2019187888
(32)【優先日】2019-10-11
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】514136668
【氏名又は名称】パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
【氏名又は名称原語表記】Panasonic Intellectual Property Corporation of America
(74)【代理人】
【識別番号】100109210
【氏名又は名称】新居 広守
(74)【代理人】
【識別番号】100137235
【氏名又は名称】寺谷 英作
(74)【代理人】
【識別番号】100131417
【氏名又は名称】道坂 伸一
(72)【発明者】
【氏名】西田 直央
(72)【発明者】
【氏名】大庭 達海
(72)【発明者】
【氏名】海上 勇二
(72)【発明者】
【氏名】照屋 唯紀
(72)【発明者】
【氏名】アッタラパドゥン ナッタポン
(72)【発明者】
【氏名】花岡 悟一郎
【審査官】金沢 史明
(56)【参考文献】
【文献】特開2019-121344(JP,A)
【文献】特開2016-071639(JP,A)
【文献】米国特許出願公開第2010/0281269(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
G06F 21/31
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
入力を秘匿したまま認証処理を行う
ための秘匿認証方法であり、装置が行う秘匿認証方法であって、
秘密分散法により分散された特徴量であり、ユーザに関するユーザ情報の特徴量である第1分散化特徴量と、LSH(Locality Sensitive Hashing)の秘密分散法により分散されたパラメータである分散化LSHパラメータとを入力として、前記入力を秘匿したまま前記LSHの処理を実行する秘匿LSHを用いて、分散されたLSH値である分散化LSH値を導出し、
導出された前記分散化LSH値と、一方向性関数の処理を実行するための鍵であって分散された鍵である分散鍵とを入力として、前記入力を秘匿のまま前記一方向性関数の処理を実行する秘匿一方向性関数を用いて、分散されたハッシュ値である分散化ハッシュ値を導出し、
導出された前記分散化ハッシュ値を、秘密分散法による分散が解除されたハッシュ値に復号し、
インデックスとしてのハッシュ値と、データ列としての分散化特徴量との複数の組が予め格納されたテーブルである秘匿ハッシュテーブルを用いて、前記複数の組のうち、復号された前記ハッシュ値と一致するハッシュ値を含む組を選択し、
選択された前記組に含まれる分散化特徴量と、前記第1分散化特徴量との類似度を秘匿したまま計算し、
計算された前記類似度に基づいて前記ユーザの認証結果を秘匿したまま導出し、
導出された前記認証結果を出力する、
秘匿認証方法。
【請求項2】
前記ユーザの前記認証結果の導出において、
選択された前記組に含まれる前記分散化特徴量のうち、前記第1分散化特徴量と最も類似度の高い分散化特徴量を第2分散化特徴量として抽出し、
抽出された前記第2分散化特徴量と前記第1分散化特徴量との類似度が閾値よりも高いか否かを判定し、
前記類似度が前記閾値よりも高いと判定された場合、前記ユーザの認証が成功したことを表す分散化された数値を前記認証結果として出力し、
前記類似度が前記閾値以下であると判定された場合、前記ユーザの認証が失敗したことを表す分散化された数値を前記認証結果として出力する、
請求項1に記載の秘匿認証方法。
【請求項3】
前記特徴量は、前記ユーザの身体的特徴に関する身体的特徴量、前記ユーザの行動的特徴に関する行動的特徴量、および、前記ユーザが保有している保有物の特徴に関する保有物特徴量のいずれかであり、
前記身体的特徴量は、網膜画像、虹彩画像、指紋画像、静脈画像、音声情報、耳の形状情報、DNA(deoxyribonucleic acid)情報、および、手のひらの画像のうちの少なくとも1つの情報の特徴量を含み、
前記行動的特徴量は、筆跡、キーストローク、歩容、および、行動履歴のうちの少なくとも1つの情報の特徴量を含み、
前記保有物特徴量は、前記ユーザが保有している文書情報、記憶、および、所有物のうちの少なくとも1つの情報の特徴量を含む
請求項1または2に記載の秘匿認証方法。
【請求項4】
前記第1分散化特徴量および前記分散化特徴量は、それぞれ、分散された複数種類の特徴量を含み、
選択された前記組に含まれる分散化特徴量と、前記第1分散化特徴量との前記類似度の計算において、前記複数種類の特徴量のそれぞれの類似度を計算する、
請求項1~3の何れか1項に記載の秘匿認証方法。
【請求項5】
前記分散化ハッシュ値は、ランダム性を有する、
請求項1~4の何れか1項に記載の秘匿認証方法。
【請求項6】
前記データ列は、さらに、分散されたユーザIDである分散化ユーザIDを含む、
請求項1~5の何れか1項に記載の秘匿認証方法。
【請求項7】
前記認証結果の出力において、導出された前記認証結果と、選択された前記組の前記データ列に含まれる前記分散化特徴量および前記ユーザIDの少なくとも1つと、を出力する、
請求項6に記載の秘匿認証方法。
【請求項8】
前記第1分散化特徴量は、センシングによって得られた前記ユーザ情報から前記特徴量を算出し、算出された前記特徴量を秘密分散法により分散することにより、
導出されたものである、
請求項1~7の何れか1項に記載の秘匿認証方法。
【請求項9】
センシングによって得られた前記ユーザ情報を
受信し、
前記ユーザ情報から前記特徴量を導出し、前記特徴量を秘密分散法により分散することにより前記第1分散化特徴量を導出する、
請求項1~7の何れか1項に記載の秘匿認証方法。
【請求項10】
前記LSHは、SimHashである、
請求項1~
9の何れか1項に記載の秘匿認証方法。
【請求項11】
前記LSHは、MinHashである、
請求項1~
9の何れか1項に記載の秘匿認証方法。
【請求項12】
前記一方向性関数は、AES(Advanced Encryption Standard)である、
請求項1~
11の何れか1項に記載の秘匿認証方法。
【請求項13】
前記一方向性関数は、SHA(Secure Hash Algorithm)またはMD5(Message Digest 5)である、
請求項1~
11の何れか1項に記載の秘匿認証方法。
【請求項14】
前記一方向性関数は、ElGamal暗号またはRSA(Rivest-Shamir-Adleman)暗号または楕円曲線暗号である、
請求項1~
11の何れか1項に記載の秘匿認証方法。
【請求項15】
入力を秘匿したまま認証処理を行う秘匿認証システムであって、
暗号化され、かつ、秘密分散法により分散された特徴量であり、ユーザに関するユーザ情報の特徴量である第1分散化特徴量と、LSHの暗号化されたパラメータである暗号化LSHパラメータとを入力として、前記入力を秘匿したまま前記LSHの処理を実行する秘匿LSHを用いて、暗号化され、かつ、分散されたLSH値である分散化LSH値を導出する分散化LSH値導出部と、
前記分散化LSH値導出部により導出された前記分散化LSH値と、一方向性関数の処理を実行するための鍵であって暗号化され、かつ、分散された鍵である分散鍵とを入力として、前記入力を秘匿のまま一方向性関数の処理を実行する秘匿一方向性関数を用いて暗号化され、かつ、分散されたハッシュ値である分散化ハッシュ値を導出する分散化ハッシュ値導出部と、
前記分散化ハッシュ値導出部により導出された前記分散化ハッシュ値を、秘密分散法による分散が解除されたハッシュ値に復号する復号部と、
インデックスとしてのハッシュ値と、データ列としての分散化特徴量との複数の組が予め格納されたテーブルである秘匿ハッシュテーブルを格納する秘匿ハッシュテーブル格納部と、
前記秘匿ハッシュテーブルを用いて、前記複数の組のうち、復号された前記ハッシュ値と一致するハッシュ値を含む組を選択し、選択された前記組に含まれる分散化特徴量と、前記第1分散化特徴量との類似度を秘匿したまま計算し、計算された前記類似度に基づいて前記ユーザの認証結果を秘匿したまま導出する分散化認証結果導出部と、
前記分散化認証結果導出部により導出された前記認証結果を出力する出力部と、
を備える、
秘匿認証システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ユーザ情報およびユーザ情報に関連する情報を秘匿したままユーザの認証を行う秘匿認証方法および秘匿認証システムに関する。
【背景技術】
【0002】
ディープニューラルネットワークを用いた画像認識性能の向上に伴い、例えばユーザの顔画像などを利用した認証(いわゆる、生体認証)の精度が向上している。近年、機械学習を用いた認証が多くの場面で活用されるようになっている。例えばコンビニエンスストアにおける決済、または、アミューズメント施設もしくはイベント会場への入場時の認証などに顔認証などの生体認証が用いられている。
【0003】
このような認証サービスをユーザが利用するためには、ユーザは、サーバに対してユーザ自身の情報(つまり、ユーザ情報)または当該情報から得られる特徴量を送信する必要がある。しかしながら、顔画像などのユーザ情報はプライバシ情報そのものであるため、保護されなければならない。また、ユーザ情報の特徴量から元のユーザ情報を推定する攻撃が知られているため、ユーザ情報だけでなく、特徴量も保護されなければならない。
【0004】
そのため、ユーザ情報およびユーザ情報に関連する情報(例えば、特徴量など)を秘匿したまま、ユーザの認証を行う技術が求められている。
【0005】
例えば、非特許文献1は、ユーザ端末装置で導出されたLSH(Locality Sensitive Hashing)値とユーザ情報の特徴量とを暗号化してサーバへ送信することにより、ユーザ情報およびユーザ情報に関連する情報を秘匿したままユーザの認証を行う技術を開示している。また、例えば、非特許文献2は、入力データ(例えば、ユーザ情報の特徴量およびLSHパラメータ)を秘匿したままLSH値の計算を複数回行い、得られるベクトルと乱数ベクトルとの内積をハッシュテーブルのインデックスとして利用する技術を開示している。
【先行技術文献】
【非特許文献】
【0006】
【文献】M. Sadegh Riazi、外4名、「Sub-Linear Privacy-Preserving Near-Neighbor Search with Untrusted Server on Large-Scale Datasets」(https://arxiv.org/abs/1612.01835)
【文献】Alexander J. Titus、外8名、「SIG-DB: leveraging homomorphic encryption to Securely Interrogate privately held Genomic DataBases」(https://doi.org/10.1371/journal.pcbi.1006454)
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、非特許文献1に記載の技術では、ユーザ情報およびユーザ情報に関連する情報を完全には秘匿できていないため、ユーザ情報が推測される可能性がある。また、非特許文献2に記載の技術では、LSHを複数回実行する必要があるため、計算量が膨大であり、効率が悪い。
【0008】
そこで、本開示では、ユーザ情報およびユーザ情報に関連する情報の秘匿性を向上させ、かつ、処理速度を向上させる秘匿認証方法および秘匿認証システムを提供する。
【課題を解決するための手段】
【0009】
上記課題を解決するため、本開示の秘匿認証方法の一様態は、入力を秘匿したまま認証処理を行うための秘匿認証方法であり、装置が行う秘匿認証方法であって、秘密分散法により分散された特徴量であり、ユーザに関するユーザ情報の特徴量である第1分散化特徴量と、LSH(Locality Sensitive Hashing)の秘密分散法により分散されたパラメータである分散化LSHパラメータとを入力として、前記入力を秘匿したまま前記LSHの処理を実行する秘匿LSHを用いて、分散されたLSH値である分散化LSH値を導出し、導出された前記分散化LSH値と、一方向性関数の処理を実行するための鍵であって分散された鍵である分散鍵とを入力として、前記入力を秘匿のまま前記一方向性関数の処理を実行する秘匿一方向性関数を用いて、分散されたハッシュ値である分散化ハッシュ値を導出し、導出された前記分散化ハッシュ値を、秘密分散法による分散が解除されたハッシュ値に復号し、インデックスとしてのハッシュ値と、データ列としての分散化特徴量との複数の組が予め格納されたテーブルである秘匿ハッシュテーブルを用いて、前記複数の組のうち、復号された前記ハッシュ値と一致するハッシュ値を含む組を選択し、選択された前記組に含まれる分散化特徴量と、前記第1分散化特徴量との類似度を秘匿したまま計算し、計算された前記類似度に基づいて前記ユーザの認証結果を秘匿したまま導出し、導出された前記認証結果を出力する。
【0010】
また、上記課題を解決するため、本開示の秘匿認証システムの一様態は、入力を秘匿したまま認証処理を行う秘匿認証システムであって、秘密分散法により分散された特徴量であり、ユーザに関するユーザ情報の特徴量である第1分散化特徴量と、LSHの分散化されたパラメータである分散化LSHパラメータとを入力として、前記入力を秘匿したまま前記LSHの処理を実行する秘匿LSHを用いて、分散されたLSH値である分散化LSH値を導出する分散化LSH値導出部と、前記分散化LSH値導出部により導出された前記分散化LSH値と、一方向性関数の処理を実行するための鍵であって分散された鍵である分散鍵とを入力として、前記入力を秘匿のまま一方向性関数の処理を実行する秘匿一方向性関数を用いて分散されたハッシュ値である分散化ハッシュ値を導出する分散化ハッシュ値導出部と、前記分散化ハッシュ値導出部により導出された前記分散化ハッシュ値を、秘密分散法による分散が解除されたハッシュ値に復号する復号部と、インデックスとしてのハッシュ値と、データ列としての分散化特徴量との複数の組が予め格納されたテーブルである秘匿ハッシュテーブルを格納する秘匿ハッシュテーブル格納部と、前記秘匿ハッシュテーブルを用いて、前記複数の組のうち、復号された前記ハッシュ値と一致するハッシュ値を含む組を選択し、選択された前記組に含まれる分散化特徴量と、前記第1分散化特徴量との類似度を秘匿したまま計算し、計算された前記類似度に基づいて前記ユーザの認証結果を秘匿したまま導出する分散化認証結果導出部と、前記分散化認証結果導出部により導出された前記認証結果を出力する出力部と、を備える。
【発明の効果】
【0011】
本開示の秘匿認証方法および秘匿認証システムによれば、ユーザ情報およびユーザ情報に関連する情報の秘匿性を向上させ、かつ、処理速度を向上させることができる。
【図面の簡単な説明】
【0012】
【
図1】
図1は、実施の形態に係る秘匿認証システムの全体構成の一例を示す図である。
【
図2】
図2は、実施の形態におけるユーザ端末装置の構成の一例を示す図である。
【
図3】
図3は、実施の形態におけるデータ提供装置の構成の一例を示す図である。
【
図4】
図4は、実施の形態におけるデータ演算装置の構成の一例を示す図である。
【
図5】
図5は、実施の形態における認証結果利用装置の構成一例を示す図である。
【
図6】
図6は、実施の形態に係る秘匿認証システムの初期化フェーズの動作の一例を示すシーケンス図である。
【
図7】
図7は、実施の形態に係る秘匿認証システムの登録フェーズの動作の一例を示すシーケンス図である。
【
図8】
図8は、
図7のステップS205における詳細な処理の一例を示すシーケンス図である。
【
図9】
図9は、実施の形態に係る秘匿認証システムの認証フェーズの動作の一例を示すシーケンス図である。
【
図10】
図10は、
図9のステップS405における詳細な処理の一例を示すシーケンス図である。
【
図11】
図11は、実施の形態におけるLSHパラメータの一例を示す図である。
【
図12】
図12は、実施の形態におけるLSH値の一例を示す図である。
【
図14】
図14は、実施の形態における分散化特徴量の一例を示す図である。
【
図15】
図15は、実施の形態における秘匿ハッシュテーブルの一例を示す図である。
【
図16】
図16は、本実施の形態に係る秘匿認証方法の一例を示すフローチャートである。
【発明を実施するための形態】
【0013】
(本開示に至った知見)
近年、機械学習を用いたユーザの認証(例えば、生体認証)が多くの場面で活用されるようになっている。例えば、生体認証には、ユーザの顔画像だけでなく、指紋画像、もしくは、虹彩画像などのユーザの身体的特徴に関する情報、歩容もしくは行動履歴などのユーザの行動的特徴に関する情報、または、ユーザが所持している文書情報などの所有物の特徴に関する情報を用いた認証をも含まれる。
【0014】
ユーザの認証には、1対1認証と1対N認証との2種類の認証方法が存在する。1対1認証とは、照合する本人のIDを例えばIDカードなどから読み出し、そのIDに紐づけられて登録されたユーザ情報と、センシングされたユーザ情報との同一性を判断することによりユーザを認証する方法である。一方、1対N認証は、複数のユーザのIDとそれらのIDのそれぞれに紐づけられたユーザ情報とを格納したデータベース(例えば、テーブル)の中から、センシングされたユーザ情報がどのIDに紐づけられたユーザ情報に対応するかを判定することにより、または、データベースに格納されたいずれのユーザ情報とも対応しないかを判定することにより、ユーザを認証する方法である。
【0015】
1つのユーザ情報との同一性のみを判定すれば良い1対1認証と比較して、データベースに予め登録された全てのユーザ情報との比較を行う必要がある1対N認証の方が処理量も多く、認証処理の難易度は高くなるが、ユーザがIDカード等を携帯および提示する必要がないため利便性に優れている。
【0016】
1対N認証を効率的に実現する方法として、最近傍探索を用いる方法がある。この方法では、事前にデータベースなどに登録された複数のユーザに関する情報(いわゆる、ユーザ情報)の特徴量と、認証用にカメラ、スキャナ、または、マイクなどのセンサでセンシングされたユーザ情報の特徴量(認証用のユーザ情報の特徴量ともいう)との類似度を計算し、認証用のユーザ情報の特徴量と最近傍の(つまり、最も類似している)特徴量をデータベースから探索する。この最近傍の特徴量と認証用のユーザ情報の特徴量との類似度が閾値以下であれば認証失敗とし、閾値より高ければ認証成功とする。
【0017】
最近傍探索手法として、Locality Sensitive Hashing(LSH)(非特許文献3:Piotr Indyk、外1名、「Approximate nearest neighbors: Towards removing the curse of dimensionality.」(https://www.cs.princeton.edu/courses/archive/spr04/cos598B/bib/IndykM-curse.pdf))と呼ばれる技術が用いられる。
【0018】
LSHは、近い入力値を同一のハッシュ値にマッピングする技術である。1対N認証でLSHを用いると、似ているユーザ情報の特徴量をLSHに入力すると同じハッシュ値(以下、LSH値と呼ぶ)が出力されるため、認証用にセンシングされたユーザ情報に似ているユーザ情報の特徴量群をデータベースから効率的に取り出すことができる。そして、取り出された特徴量群に含まれる全ての特徴量と、認証用にセンシングされたユーザ情報の特徴量との類似度を計算することにより、認証用のユーザ情報の特徴量と最近傍の特徴量を求めることが出来る。
【0019】
このような認証サービスをユーザが利用するためには、ユーザは、サーバに対してユーザ自身の情報(つまり、ユーザ情報)または当該情報から得られる特徴量を送信する必要がある。しかしながら、顔画像などのユーザ情報はプライバシ情報そのものであるため、保護されなければならない。また、ユーザ情報の特徴量から元のユーザ情報を推定する攻撃が知られているため、ユーザ情報だけでなく、特徴量などのユーザ情報に関連する情報も保護されなければならない。
【0020】
そのため、ユーザがユーザ情報およびユーザ情報に関連する情報を秘匿したまま、効率良くユーザの認証を行う技術が求められている。
【0021】
データを秘匿したまま計算を行うことが可能な手法として、秘密計算(非特許文献4:Takashi Nishide、外1名「Multiparty computation for interval, equality, and comparison without bitdecomposition protocol.」(https://www.iacr.org/archive/pkc2007/44500343/44500343.pdf))を用いて、認証処理を行う方法が考えられている。秘密計算は、データを保管する主体に対して計算過程と結果とを秘匿することができる技術である。
【0022】
秘密計算を用いると、例えば、クラウドサーバのような第三者が管理するサーバにデータを保管し、その保管しているデータに対してあらゆる演算を実行することができる。第三者には、入力データ、計算過程、および、計算結果を知られることがないため、個人情報のような機微な情報に対する分析処理をアウトソースすることができる。
【0023】
また、入力データを秘匿したままユーザの認証を行う方式として、例えば、非特許文献1は、ユーザ端末装置で導出されたLSH値とユーザ情報の特徴量とを暗号化してサーバへ送信することにより、ユーザ情報およびユーザ情報に関連する情報を秘匿したままユーザの認証を行う技術を開示している。しかしながら、この方法ではユーザ情報およびユーザ情報に関連する情報を完全には秘匿できていないため、ユーザ情報が推測される可能性がある。
【0024】
また、入力データを秘匿したままLSHを計算しデータベース検索を行う方式として、例えば、非特許文献2は、入力データ(例えば、ユーザ情報の特徴量およびLSHパラメータ)を秘匿したままLSH値の計算を複数回行い、得られるベクトルと乱数ベクトルとの内積をハッシュテーブルのインデックスとして利用する技術を開示している。しかしながら、この方法では、計算量が膨大であるため実用的ではない。
【0025】
そこで本発明者らは、上記課題を鑑み鋭意検討した結果、LSHと秘密分散法とを用い、さらに、LSHの計算により得られるLSH値を秘匿したまま一方向性関数で処理することにより、ユーザ情報の秘匿性を向上させ、かつ、処理速度を向上させることができることを見出した。これにより、LSH値を一方向性関数で処理したハッシュ値が漏洩しても、ハッシュ値から元のユーザ情報を推定することができない。また、LSHを用いることにより、1対N認証における計算量が低減される。さらに、秘密分散法を用いることにより、秘匿性および処理効率が向上される。
【0026】
したがって、本開示の秘匿認証方法および秘匿認証システムによれば、ユーザ情報およびユーザ情報に関連する情報の秘匿性を向上させ、かつ、処理速度を向上させることができる。
【0027】
本開示の一態様は以下の通りである。
【0028】
本開示の一様態に係る秘匿認証方法は、入力を秘匿したまま認証処理を行う秘匿認証方法であって、秘密分散法により分散された特徴量であり、ユーザに関するユーザ情報の特徴量である第1分散化特徴量と、LSH(Locality Sensitive Hashing)の暗号化されたパラメータである暗号化LSHパラメータとを入力として、前記入力を秘匿したまま前記LSHの処理を実行する秘匿LSHを用いて、暗号化され、かつ、分散されたLSH値である分散化LSH値を導出し、導出された前記分散化LSH値と、一方向性関数の処理を実行するための鍵であって暗号化され、かつ、分散された鍵である分散鍵とを入力として、前記入力を秘匿のまま前記一方向性関数の処理を実行する秘匿一方向性関数を用いて、暗号化され、かつ、分散されたハッシュ値である分散化ハッシュ値を導出し、導出された前記分散化ハッシュ値を、秘密分散法による分散が解除されたハッシュ値に復号し、インデックスとしてのハッシュ値と、データ列としての分散化特徴量との複数の組が予め格納されたテーブルである秘匿ハッシュテーブルを用いて、前記複数の組のうち、復号された前記ハッシュ値と一致するハッシュ値を含む組を選択し、選択された前記組に含まれる分散化特徴量と、前記第1分散化特徴量との類似度を秘匿したまま計算し、計算された前記類似度に基づいて前記ユーザの認証結果を秘匿したまま導出し、導出された前記認証結果を出力する。
【0029】
これにより、秘匿認証方法では、ハッシュ値以外の情報は秘密分散法により分散されているため、例えばLSH値および特徴量などのユーザ情報に関連する情報などの元のユーザ情報を推定可能な情報が一切公開されない。そのため、秘匿認証方法では、ユーザ情報およびユーザ情報に関連する情報の秘匿性が向上される。また、ハッシュ値を用いて秘匿ハッシュテーブルを参照することから、少ない計算コストで認証処理を行うことができる。したがって、秘匿認証方法によれば、ユーザ情報およびユーザ情報に関連する情報の秘匿性を向上させ、かつ、処理速度を向上させることができる。
【0030】
本開示の一様態に係る秘匿認証方法は、前記ユーザの前記認証結果の導出において、選択された前記組に含まれる前記分散化特徴量のうち、前記第1分散化特徴量と最も類似度の高い分散化特徴量を第2分散化特徴量として抽出し、抽出された前記第2分散化特徴量と前記第1分散化特徴量と類似度が閾値よりも高いか否かを判定し、前記類似度が前記閾値よりも高いと判定された場合、前記ユーザの認証が成功したことを表す分散化された数値を前記認証結果として出力し、前記類似度が前記閾値以下であると判定された場合、前記ユーザの認証が失敗したことを表す分散化された数値を前記認証結果として出力してもよい。
【0031】
これにより、秘匿認証方法では、認証用のユーザ情報の特徴量である第1分散化特徴量と最も類似度の高い分散化特徴量を抽出することができるため、計算量が削減される。また、秘匿認証方法では、閾値に基づいてユーザ本人であるか否かを判定するため、例えば、センシングの条件などにより特徴量に誤差が生じた場合でも、事前登録されたユーザ本人の特徴量と同じものであると判定することができる。
【0032】
本開示の一様態に係る秘匿認証方法では、前記特徴量は、前記ユーザの身体的特徴に関する身体的特徴量、前記ユーザの行動的特徴に関する行動的特徴量、および、前記ユーザが保有している保有物の特徴に関する保有物特徴量のいずれかであり、前記身体的特徴量は、網膜画像、虹彩画像、指紋画像、静脈画像、音声情報、耳の形状情報、DNA(deoxyribonucleic acid)情報、および、手のひらの画像のうちの少なくとも1つの情報の特徴量を含み、前記行動的特徴は、筆跡、キーストローク、歩容、および、行動履歴のうちの少なくとも1つの情報の特徴量を含み、前記保有物特徴量は、前記ユーザが保有している文書情報、記憶、および、所有物のうちの少なくとも1つの情報の特徴量を含んでもよい。
【0033】
これにより、秘匿認証方法では、設計に応じて、認証に使用される特徴量を適宜選択することができる。
【0034】
本開示の一様態に係る秘匿認証方法では、前記第1分散化特徴量および前記分散化特徴量は、それぞれ、分散された複数種類の特徴量を含み、選択された前記組に含まれる分散化特徴量と、前記第1分散化特徴量との前記類似度の計算において、前記複数種類の特徴量のそれぞれの類似度を計算してもよい。
【0035】
これにより、より高い精度で、かつ、応用性の高い認証が可能となる。
【0036】
本開示の一様態に係る秘匿認証方法では、前記分散化ハッシュ値は、ランダム性を有してもよい。
【0037】
LSHの取りうる値の範囲が小さい場合、全ての値のハッシュ値を計算することは容易であるため、出力から入力ランダム性を持たせることで、ハッシュ値から元のLSH値を計算するのが困難になる。そのため、秘匿認証方法によれば、LSH値およびユーザ情報の秘匿性(安全性ともいう)が向上する。
【0038】
本開示の一様態に係る秘匿認証方法では、前記データ列は、さらに、分散化されたユーザIDである分散化ユーザIDを含んでもよい。
【0039】
これにより、秘匿認証方法では、ユーザの認証とともにユーザIDの確認も可能となるため、汎用性が向上する。
【0040】
本開示の一様態に係る秘匿認証方法は、前記認証結果の出力において、導出された前記認証結果と、選択された前記組の前記データ列に含まれる前記分散化特徴量および前記ユーザIDの少なくとも1つを出力してもよい。
【0041】
これにより、秘匿認証方法は、認証結果を利用する際に、ユーザに関する様々な情報を用いることが出来るため、認証結果とともにユーザIDを表示するなどより高度なサービスの提供が可能になる。
【0042】
本開示の一様態に係る秘匿認証方法では、前記ユーザのユーザ端末は、センシングによって得られた前記ユーザ情報から前記特徴量を算出し、算出された前記特徴量を暗号下肢、かつ、秘密分散法により分散することにより、前記第1分散化特徴量を導出してもよい。
【0043】
これにより、秘匿認証方法では、ユーザがユーザ端末装置を用いてユーザ情報の特徴量を求めることができるため、例えば顔画像などのプライバシ情報そのものであるユーザ情報を外部に送信する必要がなくなる。そのため、秘匿認証方法によれば、ユーザ情報の安全性が向上する。
【0044】
本開示の一様態に係る秘匿認証方法では、前記ユーザのユーザ端末装置は、センシングによって得られた前記ユーザ情報を情報が漏洩しない信頼できるサーバに送信し、前記サーバは、前記ユーザ情報から前記特徴量を導出し、前記特徴量を秘密分散法により分散することにより前記第1分散化特徴量を導出してもよい。
【0045】
これにより、秘匿認証方法では、ユーザ端末装置が行う処理を削減することができるため、ユーザ端末装置に必要なリソースが少なくて済む。
【0046】
本開示の一様態に係る秘匿認証方法では、前記第1分散化特徴量は、前記ユーザの認証結果を導出する演算装置で導出され、前記ユーザのユーザ端末装置は、センシングによって得られた前記ユーザ情報を秘密分散法により分散した分散化ユーザ情報を前記演算装置に送信し、前記演算装置は、前記分散化ユーザ情報から前記第1分散化特徴量を導出してもよい。
【0047】
これにより、秘匿認証方法では、信頼できるサーバを用意する必要がなく、また、信頼できるサーバから情報が漏洩する危険性もないため、安全に特徴量を計算することが可能となる。
【0048】
本開示の一様態に係る秘匿認証方法では、前記分散化LSHパラメータは、前記ユーザの認証結果を導出する演算装置に送信され、前記演算装置は、前記第1分散化特徴量と、前記分散化LSHパラメータとを入力として、前記秘匿LSHを用いて前記分散化LSH値を導出してもよい。
【0049】
これにより、サービス提供者(例えば、データ提供装置を有する企業など)の資産であるLSHパラメータの漏洩も防ぐことが出来る。
【0050】
本開示の一様態に係る秘匿認証方法では、前記LSHは、SimHashであってもよい。
【0051】
本開示の一様態に係る秘匿認証方法では、前記LSHは、MinHashであってもよい。
【0052】
本開示の一様態に係る秘匿認証方法では、前記一方向性関数は、AES(Advanced Encryption Standard)であってもよい。
【0053】
本開示の一様態に係る秘匿認証方法では、前記一方向性関数は、SHA(Secure Hash Algorithm)またはMD5(Message Digest 5)であってもよい。
【0054】
本開示の一様態に係る秘匿認証方法では、前記一方向性関数は、ElGamal暗号またはRSA(Rivest-Shamir-Adleman)暗号または楕円曲線暗号であってもよい。
【0055】
本開示の一様態に係る秘匿認証システムは、入力を秘匿したまま認証処理を行う秘匿認証システムであって、秘密分散法により分散された特徴量であり、ユーザに関するユーザ情報の特徴量である第1分散化特徴量と、LSHの暗号化されたパラメータである暗号化LSHパラメータとを入力として、前記入力を秘匿したまま前記LSHの処理を実行する秘匿LSHを用いて、暗号化され、かつ、分散されたLSH値である分散化LSH値を導出する分散化LSH値導出部と、前記分散化LSH値導出部により導出された前記分散化LSH値と、一方向性関数の処理を実行するための鍵であって暗号化され、かつ、分散された鍵である分散鍵とを入力として、前記入力を秘匿のまま一方向性関数の処理を実行する秘匿一方向性関数を用いて暗号化され、かつ、分散されたハッシュ値である分散化ハッシュ値を導出する分散化ハッシュ値導出部と、前記分散化ハッシュ値導出部により導出された前記分散化ハッシュ値を、秘密分散法による分散が解除されたハッシュ値に復号する復号部と、インデックスとしてのハッシュ値と、データ列としての分散化特徴量との複数の組が予め格納されたテーブルである秘匿ハッシュテーブルを格納する秘匿ハッシュテーブル格納部と、前記秘匿ハッシュテーブルを用いて、前記複数の組のうち、復号された前記ハッシュ値と一致するハッシュ値を含む組を選択し、選択された前記組に含まれる分散化特徴量と、前記第1分散化特徴量との類似度を秘匿したまま計算し、計算された前記類似度に基づいて前記ユーザの認証結果を秘匿したまま導出する分散化認証結果導出部と、前記分散化認証結果導出部により導出された前記認証結果を出力する出力部と、を備える。
【0056】
これにより、秘匿認証システムでは、ハッシュ値以外の情報は秘密分散法により分散されているため、例えばLSH値および特徴量などのユーザ情報に関連する情報などの元のユーザ情報を推定可能な情報が一切公開されない。そのため、秘匿認証システムでは、ユーザ情報およびユーザ情報に関連する情報の秘匿性が向上される。また、ハッシュ値を用いて秘匿ハッシュテーブルを参照することから、少ない計算コストで認証処理を行うことができる。したがって、秘匿認証システムによれば、ユーザ情報およびユーザ情報に関連する情報の秘匿性を向上させ、かつ、処理速度を向上させることができる。
【0057】
なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、構成要素、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、各図は、必ずしも厳密に図示したものではない。各図において、実質的に同一の構成については同一の符号を付し、重複する説明は省略または簡略化することがある。
【0058】
また、本開示の主旨を逸脱しない限り、当業者が思いつく各種変形を実施の形態に施したものや、全ての実施の形態において、各々の実施の形態における一部の構成要素を組み合わせて構築される別の形態も、本開示の範囲に含まれる。
【0059】
(実施の形態)
以下、本実施の形態に係る秘匿認証方法および秘匿認証システムについて図面を用いて説明する。
【0060】
[1.秘匿認証システムの概要]
まず、本実施の形態に係る秘匿認証システムの概要について説明する。本実施の形態に係る秘匿認証システムは、ユーザ情報を秘匿したままユーザの認証処理を行うためのシステムである。より具体的には、秘匿認証システムは、ユーザ情報を秘匿したまま、近似最近傍探索手法の1つであるLSH(Locality Sensitive Hashing)を用いて、ハッシュテーブルに事前に登録された複数のユーザ情報の中から、認証対象のユーザ情報と同じハッシュ値のユーザ情報を抽出し、抽出されたユーザ情報と認証対象のユーザ情報との類似度に基づいてユーザの認証処理を行うためのシステムである。ここでは、秘匿または秘匿化とは、秘密分散法により分散されることをいい、以下、分散または分散化とも称する。また、暗号または暗号化とは、秘密分散法以外の何らかの暗号化技術により暗号化されることをいう。使用される暗号化技術は、特に限定されない。
【0061】
[1.1 秘匿認証システムの構成]
続いて、本実施の形態に係る秘匿認証システムの構成について
図1を参照しながら説明する。
【0062】
図1は、本実施の形態に係る秘匿認証システムの全体構成の一例を示す図である。
図1に示されるように、秘匿認証システム500は、例えば、ユーザ端末装置100と、データ提供装置200と、3つのデータ演算装置300、310、320と、認証結果利用装置400と、を備える。各装置間の通信は、有線のインターネット線、無線通信、専用通信等のいずれかであればよい。
【0063】
ユーザ端末装置100は、認証対象であるユーザが所有する端末装置である。データ提供装置200は、秘匿認証サービスを提供する企業または団体が所有する装置である。データ演算装置300、310、320は、ユーザ端末装置100から送信されたユーザ情報の特徴量と、データ提供装置200から送信された演算に必要なパラメータなどの情報とを取得して、取得した情報を秘匿したまま認証結果を導出するための演算処理を行う装置である。ここでは、データ演算装置300、310、320はそれぞれ、1つのクラウドサーバ、または、1つのクラウドサーバに含まれる装置である。認証結果利用装置400は、ユーザの認証結果を利用する企業または団体が所有する装置である。認証結果利用装置400は、例えば、ユーザが利用する施設の受付などに設置される。
【0064】
秘匿認証システム500では、例えば、データ提供装置200は、LSHパラメータと、一方向性関数を計算するために必要な鍵と、ユーザの認証処理(より具体的には、認証結果の導出処理)で用いる閾値とを、3つのクラウドサーバ、すなわち、データ演算装置300、310、320に送信する。なお、データ提供装置200は、上記の鍵を秘匿化してデータ演算装置300、310、320に送信する。上記のLSHパラメータおよび閾値は、秘密分散法により分散されて送信される。
【0065】
また、秘匿認証システム500では、例えば、ユーザ端末装置100は、ユーザが秘匿認証サービスを利用する際に、ユーザ情報の特徴量を秘匿して3つのクラウドサーバであるデータ演算装置300、310、320(以下、3つのクラウドサーバとも呼ぶ)に送信する。
【0066】
3つのクラウドサーバは互いに通信を行うことにより、それぞれのクラウドサーバが他のクラウドサーバで得られたデータを利用しながら、データを秘匿したまま認証結果を導出する。そして、3つのクラウドサーバはそれぞれ得られた認証結果を秘匿したまま認証結果利用装置400に送信する。
【0067】
なお、ユーザ端末装置100は1つ以上であってもよいし、データ提供装置200も1つ以上であってもよいし、認証結果利用装置400も1つ以上であってもよい。
【0068】
さらに、
図1に示す例では、秘匿認証システム500は、データ演算装置を3つ備えているが、データ演算装置を少なくとも2つ備えていればよい。理由を簡単に説明すると、本実施の形態で用いられる秘密分散法では、分散されたデータの秘密分散法による分散を解除して秘密分散法により分散される前のデータ(つまり、元のデータ)に復号するために、分散されたデータのうち少なくとも2つの分散されたデータが必要となる。つまり、秘密分散法では、1つの分散されたデータから元のデータを復号することができない。したがって、秘匿認証システム500は、データ演算装置を少なくとも2つ備えていれば、秘密分散法による分散を解除することができる。
【0069】
上述のように、秘密分散法により分散されたデータは、1つの分散されたデータだけでは元のデータを復号できないため、各データ演算装置で行われる処理もデータを秘匿したまま行われ、当該処理により導出された認証結果もまた、秘密分散法により秘匿された状態である。したがって、復号された認証結果を得るために、2つ以上の秘匿された認証結果が必要となる。
【0070】
なお、秘匿認証システム500を構成する各装置間の通信は、リアルタイムの通信でなくてもよい。例えば、ユーザ端末装置100はセンシングしたユーザ情報または秘匿認証処理の要求コマンドをある程度集めて、一時に、3つのデータ演算装置300、310、320に送信してもよい。
【0071】
以下、秘匿認証システム500の各構成について説明するが、
図1に示される秘匿認証システム500は一例であって、本開示の秘匿認証システムは、これに限定されない。
【0072】
[1.2 ユーザ端末装置]
図2は、本実施の形態におけるユーザ端末装置100の構成の一例を示す図である。ユーザ端末装置100は、例えば、センシング部101と、特徴量算出部102と、特徴量分散部103と、通信部104とを備える。ユーザ端末装置100は、例えば、認証対象であるユーザが所有する端末装置である。ユーザ端末装置100は、例えば、プロセッサ(マイクロプロセッサ)、メモリ、センサ、および、通信インタフェース等を備えるコンピュータまたは携帯端末に実装される。
【0073】
ユーザ端末装置100は、例えば、ユーザに関するユーザ情報をセンシングし、センシングされたユーザ情報の特徴量を算出し、算出された特徴量を秘密分散法により分散し、分散された特徴量(いわゆる、分散化特徴量)をデータ演算装置300、310、320に送信する。例えば、センシング部101は、ユーザ情報をセンシングし、特徴量算出部102は、センシングされたユーザ情報の特徴量を算出し、特徴量分散部103は、算出された特徴量を秘密分散法により分散し、通信部104は、分散された特徴量をデータ演算装置300、310、320へ送信する。
【0074】
そして、ユーザ端末装置100は、算出された特徴量に対応する認証結果をデータ演算装置300、310、320に要求し、秘匿された認証結果をデータ演算装置300、310、320から得て、秘匿認証システム500におけるサービスに利用してもよい。このとき、ユーザ端末装置100は、取得した認証結果を復号して利用する。
【0075】
[1.2.1 センシング部]
センシング部101は、ユーザを認証するために必要な情報をセンシングするためのセンサである測定装置を、1つ以上含んで構成される。ユーザを認証するために必要な情報は、言い換えると、ユーザを他のユーザから識別するための情報であり、例えば、ユーザそのものが有する特徴またはユーザの行動の特徴に関する情報(以下、ユーザの情報ともいう)である。
【0076】
センシング部101がセンシングする情報は、ユーザを認証するために用いられる。例えば、ユーザそのものが有する特徴に関する情報は、ユーザの身体的特徴に関する情報である。ユーザの身体的特徴に関する情報は、例えば、顔、耳、もしくは、手のひらなど身体の一部に関する情報、または、静脈、声紋、指紋、網膜、虹彩、もしくは、DNA(deoxyribonucleic acid)などの身体に一部に準ずる要素に関する情報でもよい。これらの情報は、画像データ、音声データ、または、数値などの文字列データである。例えば、ユーザの身体的特徴に関する情報は、顔画像、網膜画像、虹彩画像、指紋画像、静脈画像、音声情報、耳の形状情報、DNA情報、または、手のひらの画像などである。
【0077】
また、センシング部101がセンシングする情報は、ユーザの行動の特徴(以下、行動的特徴という)に関する情報であってもよい。例えば、ユーザの行動的特徴に関する情報は、筆跡、キーストローク、もしくは、歩容などのユーザの癖に関する情報、または、行動履歴に関する情報である。行動履歴に関する情報は、例えば、GPS(Global Positioning System)で得られる位置情報、ユーザが電気機器、もしくは、車両等の移動体を操作した履歴を示すログ情報、または、ユーザによる商品等の購入履歴情報等でもよい。
【0078】
ログ情報は、例えば、ユーザが車両を操作した場合、ステアリング操作、アクセル操作、ブレーキ操作、変速ギアの操作等に関連して取得または測定される各種情報であり、例えば、車両の移動の変位量、速度、または、加速度等を操作時刻と対応付けた情報であってもよい。
【0079】
なお、センシング部101がセンシングする情報は、例えばユーザが他人に知られたくない個人的な事柄であるプライバシデータであってもよい。例えば、プライバシデータは、ユーザが保有している文書情報、記憶、または、所有物に関する情報であってもよい。
【0080】
[1.2.2 特徴量算出部]
特徴量算出部102は、センシング部101で取得したユーザの情報(以下、ユーザ情報ともいう)から特徴量を算出する。特徴量算出部102によって算出される特徴量は、複数の成分を含むベクトルで表され得る。
【0081】
特徴量は、例えば、ユーザの身体的特徴に関する情報から算出される特徴量(以下、身体的特徴量ともいう)、ユーザの行動的特徴に関する情報から算出される特徴量(以下、行動的特徴量ともいう)、および、ユーザが保有している保有物の特徴に関する情報から算出される特徴量(以下、保有物特徴量ともいう)のいずれかである。
【0082】
例えば、身体的特徴量は、網膜画像、虹彩画像、指紋画像、静脈画像、音声情報、耳の形状情報、DNA情報、および、手のひらの画像のうちの少なくとも1つの情報の特徴量を含む。また、例えば、行動的特徴量は、筆跡、キーストローク、歩容、および、行動履歴のうちの少なくとも1つの情報の特徴量を含み、保有物特徴量は、ユーザが保有している文書情報、記憶、および、所有物のうちの少なくとも1つの情報の特徴量を含む。
【0083】
なお、特徴量は、例えば、ユーザ情報がユーザの顔画像である場合、顔画像における特徴的なパラメータの主成分である。当該特徴量は、例えば、ユーザの顔画像のある領域の位置、面積、または、幅等に関する特徴的なパラメータを含むベクトルで表されてもよい。また、特徴量は、例えば、ユーザ情報がユーザの行動履歴に関する情報である場合、当該履歴情報から、時間軸に対応した要素の傾向を(例えば多項式で表現した場合の各項の係数を)成分として含むベクトルで表されてもよい。
【0084】
なお、センシング部101で取得したユーザ情報から抽出された特徴量自体も、プライバシデータであり得る。特徴量は任意のd(ここで、dは自然数)に対して、d個の要素を持つベクトルであり、例えば{1,2,3,4,5}のようなデータである。
【0085】
[1.2.3 特徴量分散部]
特徴量分散部103は、特徴量算出部102により算出された特徴量を、あらかじめ定められた方法により分散して秘匿する。特徴量分散部103では、データ演算装置300、310、320において特徴量を分散された状態のまま使用して予測処理を行うことが可能な方法、例えば、Shamir(2,3)閾値秘密分散法(非特許文献5:Adi Shamir、「How to Share a Secret」(http://cs.jhu.edu/~sdoshi/crypto/papers/shamirturing.pdf))を用いて特徴量を分散させることにより、分散された特徴量(以下、分散化特徴量ともいう)を作成する。
【0086】
秘密分散法とは、秘密情報から複数の分散情報を生成する技術である。分散情報は予め定められた組み合わせからは秘密情報を復元できるが、それ以外の組み合わせからは秘密情報が復元できないように作られる。予め定められた組み合わせには様々な構造を取ることができ、その構造は、アクセス構造と呼ばれる。
【0087】
様々なアクセス構造があるが、代表的なアクセス構造として、ここでは閾値型アクセス構造について簡単に説明する。閾値型アクセス構造は、生成される分散情報の数nと、閾値t(t≦n)の2つのパラメータで表される。t個以上の分散情報からは秘密情報が復元できるが、t個未満の分散情報からは秘密情報が復元できない。
【0088】
閾値型アクセス構造を有する秘密分散法には、例えば、上記のShamir(2,3)閾値秘密分散法があり、秘密情報を入力として3個の分散情報を生成するための分散処理と、2個以上の分散情報から秘密情報を復元する復元処理とを含む。
【0089】
分散処理に用いる法pは、あらかじめシステムで決定され、特徴量分散部103で保持される。
図14は、本実施の形態における分散化特徴量の一例を示す図である。
【0090】
[1.2.4 通信部]
通信部104は、複数(例えば、3つ)のデータ演算装置300、310、320と通信を行う。通信部104は、特徴量分散部103で作成された分散された特徴量(いわゆる、分散化特徴量)をそれぞれデータ演算装置300、310、320に送信する。
【0091】
複数(例えば、3つ)のデータ演算装置300、310、320は、これらの分散化特徴量を受信した後、これらの分散化特徴量を秘匿された状態のまま使用して、事前登録処理および認証処理を実行する。詳細は、後述する。
【0092】
[1.3 データ提供装置]
続いて、データ提供装置200について説明する。データ提供装置200は、秘匿認証サービスを提供する企業または団体が所有する装置である。データ提供装置200は、例えば、LSHパラメータと、ユーザの認証処理に用いる閾値と、一方向性関数を計算するために必要な鍵とを、データ演算装置300、310、320に提供するための装置である。
【0093】
図3は、本実施の形態におけるデータ提供装置200の構成の一例を示す図である。データ提供装置200は、例えば、LSHパラメータ生成部201と、鍵生成部202と、鍵分散部203と、閾値設定部204、通信部205と、を備える。
【0094】
データ提供装置200は、精度よくユーザの認証を行うためのLSHパラメータを作成し、作成したLSHパラメータを秘密分散法により分散して3つのデータ演算装置300、310、320に送信する。LSHパラメータは、例えば、LSHを用いて同じ人の顔画像の特徴量から同じLSH値が導出されるように設定される。また、データ提供装置200は、ユーザ情報が漏洩しないような、一方向性関数の処理を実行するための鍵を生成し、生成した鍵を秘密分散法により分散させて、分散された暗号鍵(以下、分散鍵という)をそれぞれ3つのデータ演算装置300、310、320に送信する。
【0095】
[1.3.1 LSHパラメータ生成部]
LSHパラメータ生成部201は、LSHを用いた認証を行うために必要なLSHパラメータを生成し、通信部205に送信する。
【0096】
図11は、本実施の形態におけるLSHパラメータの一例を示す図である。
図12は、本実施の形態におけるSimHashを用いたLSH値の計算式、およびLSH値の一例である。
図12に示されるように、例えば、SimHashと呼ばれるハッシュ関数を利用するLSHの場合、特徴量のLSH値は、任意のn個のベクトルとの内積を計算し、それぞれの内積値が0以上であるかを確認する。内積値が0以上であれば1とし、0未満であれば0とすることで、m個の{0、1}つまりmビットの値が得られる。このmビットの値をLSH値とする。
図11に示されるLSHパラメータは、mを3としたときの、SimHashを利用するLSHにおけるベクトルである。
【0097】
[1.3.2 鍵生成部]
鍵生成部202では、一方向性関数の処理を実行するために用いられる鍵を生成する。例えば、一方向性関数としてAdvanced Encryption Standard(AES)(非特許文献6:Joan Daemen、Vincent Rijmen、「AES Proposal: Rijndael」(https://csrc.nist.gov/csrc/media/projects/cryptographic-standards-and-guidelines/documents/aes-development/rijndael-ammended.pdf))を用いる場合、鍵生成部202は、一方向性を安全に満たすために、128bit、192bitまたは256bitの値を暗号鍵として生成する。
【0098】
[1.3.3 鍵分散部]
鍵分散部203は、鍵生成部202で作成した暗号鍵を秘密分散法により分散し、通信部205へ送信する。
【0099】
[1.3.4 閾値設定部]
閾値設定部204では、ユーザの認証処理に用いる閾値を設定し、設定した閾値を秘密分散法により分散し、通信部205へ送信する。データ演算装置300、310、320がユーザの認証処理を行う際は、ユーザ情報の特徴量(第1分散化特徴量)と、サーバに事前に登録済みの分散化特徴量のうち、最も類似度が高い分散化特徴量との類似度が、閾値設定部204で設定した閾値以上であれば、事前に登録されたユーザであると判定して、ユーザを認証し、類似度が閾値以下であれば、事前に登録されたユーザではないと判定して、ユーザを否認する。
【0100】
[1.3.5 通信部]
通信部205は、データ演算装置300、310、320と通信を行う。通信部205は、LSHパラメータ生成部201で作成された分散化LSHパラメータと、鍵分散部203で作成された分散鍵と、閾値設定部204で設定された分散化閾値を複数(ここでは、3つ)のデータ演算装置300、310、320に送信する。
【0101】
[1.4 データ演算装置]
続いて、データ演算装置について説明する。データ演算装置300、310、320は、例えば、クラウドサーバである。秘匿認証システム500では、データ演算装置300は、2つ以上備えられていればよい。
【0102】
本実施の形態では、3つのデータ演算装置300、310、320はそれぞれ、互いに通信を行うことで、入力を秘匿したまま認証処理を行い、認証結果利用装置400へ送信する。
【0103】
より具体的には、データ演算装置300、310、320は、ユーザ情報の特徴量である第1分散化特徴量と、分散化されたLSHのパラメータである分散化LSHパラメータとを入力として、入力を秘匿したままLSHの処理を実行する秘匿LSHを用いて分散化LSH値を計算する。
【0104】
さらにデータ演算装置300、310、320は、分散化LSH値と分散鍵とを入力として、入力を秘匿のまま一方向性関数の処理を実行する秘匿一方向性関数を用いて、分散化ハッシュ値を計算し、分散化ハッシュ値を、秘密分散法による分散を解除されたハッシュ値に復号する。
【0105】
その後、データ演算装置300、310、320は、得られたハッシュ値をインデックスとして、秘匿ハッシュテーブル格納部306に格納されている秘匿ハッシュテーブルを参照する。秘匿ハッシュテーブルには、インデックスとしてのハッシュ値と、データ列としての分散化特徴量との複数の組が予め格納されている。
【0106】
データ演算装置300、310、320は、ユーザ情報の事前登録処理を行う際には、得られたハッシュ値をインデックスとして、秘匿ハッシュテーブルのデータ列にユーザ端末装置100から送信された分散化特徴量を格納する。
【0107】
また、データ演算装置300、310、320は、ユーザの認証処理を行う際には、秘匿ハッシュテーブルに格納されている複数の組のうち、復号されたハッシュ値と一致するハッシュ値を含む組を選択し、選択された組に含まれる分散化特徴量と、ユーザ端末装置100から送信されたユーザの分散化特徴量(いわゆる、第1分散化特徴量)との類似度を計算し、計算された類似度に基づいてユーザの認証結果を秘匿したまま導出する。例えば、データ演算装置300、310、320は、第1分散化特徴量との類似度が最も高い分散化特徴量を第2分散化特徴量として抽出する。そして、データ演算装置300、310、320は、抽出された第2分散化特徴量と第1分散化特徴量との類似度が閾値よりも高いか否かを判定し、類似度が閾値より高ければ事前登録されたユーザ本人であると認証し、類似度が閾値以下であれば事前登録されたユーザ本人ではないと拒否する。
【0108】
図4は、データ演算装置300の構成の一例を示す図である。データ演算装置300は、分散鍵格納部301と、LSHパラメータ格納部302と、分散化LSH値導出部303と、閾値格納部304と、分散化ハッシュ値導出部305と、秘匿ハッシュテーブル格納部306と、分散化認証結果導出部307と、通信部308と、分散化ハッシュ値復号部309と、を備える。
【0109】
データ演算装置310、320も、データ演算装置300と同じ構成である。
【0110】
[1.4.1 分散鍵格納部]
分散鍵格納部301は、データ提供装置200から送信された、秘密分散法により分散された分散鍵を受け取り格納する。
【0111】
[1.4.2 LSHパラメータ格納部]
LSHパラメータ格納部302は、データ提供装置200から送信された分散化LSHパラメータを受け取り格納する。
【0112】
[1.4.3 分散化LSH値導出部]
分散化LSH値導出部303は、ユーザ端末装置100から送信された分散化特徴量と、LSHパラメータ格納部302に格納された分散化LSHパラメータとを用いて、分散化特徴量を復号することなくLSHの処理を実行する秘匿LSHを用いて分散化特徴量のLSH値、つまり、分散化LSH値を導出する。分散化LSH値導出部303は、導出した分散化LSH値を分散化ハッシュ値導出部305に送信する。
【0113】
LSHの計算方法としては、SimHash(非特許文献7:Moses S. Charikar、「Similarity Estimation Techniques from Rounding Algorithms.」(https://www.cs.princeton.edu/courses/archive/spring04/cos598B/bib/CharikarEstim.pdf))、または、MinHash(非特許文献8:Ping Li、外1名、「b-Bit Minwise Hashing」(https://arxiv.org/pdf/0910.3349.pdf))を用いてもよい。上述したように、SimHashでは、LSHパラメータとして特徴量と同じ次元数の、値がランダムなベクトルをn個作成しておく。このn個のベクトルと特徴量との内積を計算し、内積値が0以上か否かを判定する。これによって得られたn個の{0,1}をLSH値として用いる。
【0114】
[1.4.4 閾値格納部]
閾値格納部304は、データ提供装置200から送信された、ユーザの認証処理で用いられる閾値を受け取り格納する。
【0115】
[1.4.5 分散化ハッシュ値導出部]
分散化ハッシュ値導出部305は、分散化LSH値導出部303で導出された分散化LSH値と、分散鍵格納部301に格納された分散鍵とを用いて、LSH値を秘匿したまま一方向性関数の処理を実行する秘匿一方向性関数を用いて分散化ハッシュ値を導出する。分散化ハッシュ値導出部305は、導出した分散化ハッシュ値を分散化ハッシュ値復号部309に送信する。復号し、復号されたハッシュ値を出力、秘匿ハッシュテーブル格納部306に送信する。
【0116】
一方向性関数としては、MD5、もしくは、Secure Hash Algorithm(SHA)などの暗号学的ハッシュ関数、べき乗関数(非特許文献9:Chao Ning、外1名、「Constant-Rounds, Linear Multi-party Computation for Exponentiation and Modulo Reduction with Perfect Security」(https://eprint.iacr.org/2011/069.pdf))、または、AES、または、ElGamal暗号、RSA暗号、楕円曲線暗号などの公開鍵暗号を用いてもよい。
【0117】
例えば、一方向性関数として、べき乗関数を用いる場合は、分散鍵をk、分散化LSH値をx、出力のハッシュ値をyとしたとき、y=k^x mod pを計算する。なお、pは秘密分散法における法と異なる値でも良いが、同じ値の方が、効率が良い。
【0118】
一方向性関数として、AESを用いる場合には、分散鍵は秘密分散法により分散されたAES鍵のことをさす。一方向性関数として、鍵の入力を必要としない方法を用いる場合には、分散鍵は空としてもよい。
【0119】
[1.4.6 分散化ハッシュ値復号部]
分散化ハッシュ値復号部309は、分散化ハッシュ値導出部305で導出した分散化ハッシュ値を、秘密分散法による分散が解除されたハッシュ値に復号し、復号されたハッシュ値を秘匿ハッシュテーブル格納部306に送信する。
【0120】
[1.4.7 秘匿ハッシュテーブル格納部]
秘匿ハッシュテーブル格納部306は、秘匿ハッシュテーブルを格納している。秘匿ハッシュテーブルは、ハッシュ値をインデックスとしてのハッシュ値と、データ列としての分散化特徴量との組が予め格納されたテーブルである。
【0121】
秘匿ハッシュテーブル格納部306は、ユーザ情報の事前登録処理の際には、分散化ハッシュ値復号部309で復号したハッシュ値を用いて秘匿ハッシュテーブルを参照し、ユーザ端末装置100から送信された分散化特徴量を格納する。例えば、秘匿ハッシュテーブル格納部306は、復号されたハッシュ値と同じハッシュ値をインデックスとするデータ列に、ユーザ端末装置100から送信された分散化特徴量を秘匿ハッシュテーブルに格納してもよい。また、例えば、秘匿ハッシュテーブル格納部306は、復号されたハッシュ値と、ユーザ端末装置100から送信された分散化特徴量とを紐づけて、つまり、組として、秘匿ハッシュテーブルに格納してもよい。
【0122】
秘匿ハッシュテーブル格納部306は、ユーザの認証処理の際には、分散化ハッシュ値復号部309で復号したハッシュ値を用いて秘匿ハッシュテーブルを参照し、復号されたハッシュ値と同じハッシュ値をインデックスとする行に格納されている分散化特徴量を全て読み出し、分散化認証結果導出部307に送信する。
【0123】
また、例えば、秘匿ハッシュテーブル格納部306は、ユーザの認証処理の際には、分散化ハッシュ値復号部309で復号したハッシュ値と一致するハッシュ値を含む組を秘匿ハッシュテーブルから選択し、選択された組を分散化認証結果導出部307に送信してもよいし、選択された組に含まれる分散化特徴量を全て分散化認証結果導出部307に送信してもよい。
【0124】
ここで、ハッシュテーブルについて具体的に説明する。
図13はハッシュテーブルの一例を示す図であり、
図15は本実施の形態における秘匿ハッシュテーブルの一例を示す図である。この例では、3人のユーザ情報が事前登録されている。
【0125】
図13に示されるハッシュテーブルは、平文のハッシュテーブルであり、インデックスとしてのLSH値と、データ列としての特徴量とが紐づけられて格納されている。平文のハッシュテーブルは、LSH値から元のユーザ情報を導出することができるため、ユーザ情報の安全性の観点から好ましくない。そこで、
図15に示されるように、本実施の形態では、秘匿一方向性関数を用いて分散化LSH値のハッシュ値である分散化ハッシュ値を導出し、導出された分散化ハッシュ値を復号して得られたハッシュ値をインデックスとすることにより、安全性を高めている。また、本実施の形態では、秘匿ハッシュテーブルには、インデックスとしてのハッシュ値にデータ列としての分散化特徴量が紐づけられて格納されている。
図15では、秘密分散法の法pは、例えば、65519である。
【0126】
[1.4.8 分散化認証結果導出部]
分散化認証結果導出部307は、例えば、秘匿ハッシュテーブル格納部306から送信された分散化特徴量を受け取り、受け取った分散化特徴量と認証対象のユーザの分散化特徴量(第1分散化特徴量)との類似度に基づいてユーザの認証結果を導出する。
【0127】
例えば、分散化認証結果導出部307は、ユーザの認証結果の導出において、選択された組に含まれる分散化特徴量のうち、ユーザ端末装置100から送信された第1分散化特徴量と最も類似度の高い分散化特徴量を第2分散化特徴量として抽出し、抽出された第2分散化特徴量と第1分散化特徴量との類似度が閾値よりも高いか否かを判定する。なお、分散化認証結果導出部307は、類似度を計算する際には、平文の類似度を求めてもよいし、秘密分散法により分散された類似度の分散値(分散化類似度ともいう)を求めてもよい。
【0128】
最後に、分散化認証結果導出部307は、計算された類似度が閾値よりも高ければ、ユーザを認証し、閾値よりも低ければユーザを否認する。
【0129】
類似度としては、2つの特徴量(ここでは、第1分散化特徴量と第2分散化特徴量)のユークリッド類似度、または、2乗ユークリッド類似度を類似度としてもよいし、コサイン類似度を類似度としてもよい。
【0130】
認証結果は、平文の認証結果であってもよいし、秘密分散法により分散された認証結果の分散値(分散化認証結果ともいう)であってもよい。
【0131】
分散化認証結果導出部307は、導出した認証結果を通信部308に送信する。送信された認証結果は、最終的に認証結果利用装置400に送信される。なお、認証結果はユーザ端末装置100に送信されてもよい。
【0132】
[1.4.9 通信部]
通信部308は、ユーザ端末装置100、および、データ提供装置200と通信を行う。例えば、通信部308は、データ提供装置200から分散化LSHパラメータと、認証処理で用いられる分散化閾値と、秘密分散法により分散された鍵とを受け取り、分散化LSHパラメータをLSHパラメータ格納部302に、分散化閾値を閾値格納部304に、分散鍵を分散鍵格納部301に送信する。
【0133】
また、通信部308は、ユーザ端末装置100から秘密分散法により分散された特徴量(いわゆる、分散化特徴量)を受け取り、分散化LSH値導出部303、および、分散化認証結果導出部307に送信する。
【0134】
[1.5 認証結果利用装置]
続いて、認証結果利用装置について説明する。認証結果利用装置400は、例えば、イベント会場等の受付に設置されている端末であり、プロセッサ(マイクロプロセッサ)、メモリ、センサ、通信インタフェース等を備えるコンピュータまたは携帯端末に実装される。秘匿認証システム500では、認証結果利用装置400は、1つ以上備えられてもよい。
【0135】
本実施の形態では、認証結果利用装置400は、3つのデータ演算装置300、310、320から分散された認証結果(分散化認証結果ともいう)を受け取り、秘密分散法による分散を解除して平文の認証結果に復号する。
【0136】
分散化認証結果は、例えば、受付担当者またはユーザに認証結果に関する情報を提示するために利用されてもよく、イベント会場への入退場ゲートを開錠するために利用されてもよい。
【0137】
図5は、認証結果利用装置400の構成の一例を示す図である。認証結果利用装置400は、分散化認証結果復号部401と、認証結果利用部402と、通信部403と、を備える。
【0138】
[1.5.1 分散化認証結果復号部]
分散化認証結果復号部401は、データ演算装置300、310、320から送信された分散化認証結果を復号する。例えば、分散化認証結果復号部401は、分散化認証結果の秘密分散法による分散を解除して、認証結果に復号してもよい。分散化認証結果復号部401は、復号された認証結果を認証結果利用部402に送信する。
【0139】
[1.5.2 認証結果利用部]
認証結果利用部402は、分散化認証結果復号部401で復号した分散化認証結果を利用する。分散化認証結果は、例えば、受付担当者またはユーザに認証結果に関する情報を提示するために利用される。認証結果利用部402は、例えばディスプレイ、音声出力装置、その他のユーザインタフェースを含んで実装されうる。
【0140】
認証結果の提示の例としては、例えば、認証結果利用装置400のディスプレイに認証結果に関する情報を表示すること等が挙げられる。認証結果に関する情報は、例えば、ユーザ本人であると認証された場合、「OK」、または、「認証されました」などのユーザが認証されたことを示す情報であってもよく、当該情報に加え、ユーザのIDなどのユーザに関するユーザ情報を含んでもよい。また、認証結果に関する情報は、例えば、ユーザが否認された場合、「NG」、または、「認証されませんでした」などの否認されたことを示す情報であってもよい。
【0141】
また、分散化認証結果は、例えば、イベント会場への入退場ゲートを開錠するために利用されてもよい。認証結果利用装置400は、例えば、イベント会場等への入退場ゲートと接続されていてもよい。その場合、分散化認証結果復号部401で復号された認証結果(いわゆる、認証結果)を受け取った認証結果利用部402は、ユーザが認証されていたら入退場ゲートを開ける等の操作に関する制御を行ってもよい。
【0142】
[1.5.3 通信部]
通信部403は、データ演算装置300、310、320と通信を行う。通信部403は、データ演算装置300、310、320から秘密分散法で分散された認証結果(いわゆる、分散化認証結果)を受け取り、分散化認証結果復号部401へ送信する。
【0143】
[2. 秘匿認証システムの動作(秘匿認証方法)]
続いて、本実施の形態に係る秘匿認証システム500の動作の一例について説明する。秘匿認証システム500の動作は、(1)データ提供装置200が秘密分散法により分散された鍵(いわゆる、分散鍵)と、分散化LSHパラメータと、ユーザの認証処理に用いられる閾値をデータ演算装置300、310、320に送信する初期化フェーズと、(2)ユーザが自身の情報(つまり、ユーザ情報)の特徴量を登録する登録フェーズと、(3)ユーザが現在取得したユーザ情報を用いて認証を行う認証フェーズと、を含む。
【0144】
[2.1 初期化フェーズ]
まず、秘匿認証システム500の初期化フェーズの動作について説明する。
図6は、本実施の形態に係る秘匿認証システム500の初期化フェーズの動作の一例を示すシーケンス図である。
【0145】
初期化フェーズでは、まず、データ提供装置200は、LSHパラメータ生成部201でLSHパラメータを生成し、閾値設定部204で認証に用いる閾値を設定する(S101)。
【0146】
続いて、データ提供装置200は、データ演算装置300、310、320にLSHパラメータと閾値とを送信する(S102)。
【0147】
続いて、データ演算装置300、310、320は、データ提供装置200から送信されたLSHパラメータと閾値とを受け取り、受け取ったLSHパラメータをLSHパラメータ格納部302に格納し、閾値を閾値格納部304に格納する(S103)。
【0148】
続いて、データ提供装置200は、鍵生成部202で一方向性関数の処理に用いる鍵を生成する(S104)。
【0149】
続いて、データ提供装置200は、ステップS104の処理で生成された鍵を鍵分散部203で秘密分散法により分散する(S105)。
【0150】
続いて、データ提供装置200は、ステップS105の処理で分散された鍵(いわゆる、分散鍵)をデータ演算装置300、310、320に送信する(S106)。
【0151】
続いては、データ演算装置300、310、320は、データ提供装置200から送信された分散鍵を受け取り、受け取った分散鍵を分散鍵格納部301に格納する(S107)。
【0152】
以上により、初期化フェーズでは、データ提供装置200は、LSHの処理で用いられるLSHパラメータを生成し、一方向性関数の処理で用いられる分散鍵を設定して、LSHパラメータおよび分散鍵をデータ演算装置300、310、320に送信する。これにより、データ演算装置300、310、320は、ユーザ端末装置100から分散化特徴量が送信された場合に、当該分散化特徴量を受け取り、ユーザの登録処理(以下の登録フェーズの動作)およびユーザの認証処理(以下の認証フェーズの動作)を行うことができる。
【0153】
[2.2 登録フェーズ]
次に、秘匿認証システム500の登録フェーズの動作について説明する。
図7は、本実施の形態に係る秘匿認証システム500の登録フェーズの動作の一例を示すシーケンス図である。
【0154】
登録フェーズでは、まず、ユーザ端末装置100は、センシング部101でユーザ情報をセンシングする(S201)。ステップS201では、例えば、顔認証のための顔画像を登録する場合、センシング部101はユーザの顔画像を撮影する。
【0155】
続いて、ユーザ端末装置100は、特徴量算出部102にて、ステップS201でセンシングされたユーザ情報から特徴量を算出する(S202)。ここで、特徴量を算出する方法は、サービス提供者により事前に決定され、全てのユーザ端末装置100に共有されているものとする。
【0156】
続いて、ユーザ端末装置100は、特徴量分散部103にて、ステップS202で算出された特徴量を秘密分散法によって分散し(S203)、分散された特徴量(いわゆる、分散化特徴量)をデータ演算装置300、310、320に送信する(S204)。
【0157】
続いて、データ演算装置300、310、320は、ユーザ端末装置100から分散化特徴量を取得すると、ユーザの登録処理を行う(S205)。
【0158】
以下、ユーザの登録処理について
図8を参照しながらより具体的に説明する。
図8は、
図7のステップS205における詳細な処理の一例を示すシーケンス図である。
【0159】
ステップS205の処理では、データ演算装置300、310、320は、分散化LSH値導出部303で特徴量の分散化LSH値を導出する(S301)。より具体的には、データ演算装置300、310、320は、それぞれ、ユーザ端末装置100から取得した分散化特徴量と、LSHパラメータ格納部302に格納されたLSHパラメータ(分散化パラメータ)と入力として、分散化LSH値導出部303にて、入力を秘匿したままLSHの処理を実行する秘匿LSHを用いて、特徴量の分散化LSH値を導出する。これにより、データ演算装置300、310、320は、得られた分散化特徴量の秘密分散法による分散を解除することなく、分散化LSH値を導出することができる。
【0160】
続いて、データ演算装置300、310、320は、LSH値の分散化ハッシュ値を導出する(S302)。より具体的には、データ演算装置300、310、320は、ステップS301で導出された分散化LSH値と、分散鍵格納部301に格納された分散鍵とを入力として、分散化ハッシュ値導出部305にて、入力を秘匿のまま一方向性関数の処理を実行する秘匿一方向性関数を用いて、LSH値の分散化ハッシュ値を導出する。これにより、データ演算装置300、310、320は、分散化LSH値の秘密分散法による分散を解除することなく、LSH値の分散化ハッシュ値を導出することができる。
【0161】
続いて、データ演算装置300、310、320は、分散化ハッシュ値を復号する(S303)。より具体的には、データ演算装置300、310、320は、ステップS302で導出された分散化ハッシュ値を、分散化ハッシュ値復号部309にて、秘密分散法による分散が解除されたハッシュ値に復号する。
【0162】
続いて、データ演算装置300、310、320は、ステップS303で得られたハッシュ値をインデックスとして、ユーザ端末装置100から取得した分散化特徴量を秘匿ハッシュテーブルに追加する(S304)。上述したように、秘匿ハッシュテーブルは、インデックスとしてのハッシュ値と、データ列としての分散化特徴量との組が予め格納されたテーブルである。データ演算装置300、310、320は、例えば、秘匿ハッシュテーブル格納部306にて、ステップS303で得られたハッシュ値をインデックスとして秘匿ハッシュテーブルを参照し、ハッシュ値が示す行のデータ列に、ユーザ端末装置100から送信された分散化特徴量を追加する。
【0163】
以上により、登録フェーズでは、データ演算装置300、310、320は、それぞれ、ユーザ端末装置100から送信された分散化特徴量のLSH値のハッシュ値を、秘密分散法による分散を解除せずに導出し、導出されたハッシュ値(つまり、分散化ハッシュ値)が示す行のデータ列にユーザ端末装置100から送信された分散化特徴量を追加することでユーザ登録処理を行う。
【0164】
[2.3 認証フェーズ]
次に、秘匿認証システム500の認証フェーズの動作について説明する。
図9は、本実施の形態に係る秘匿認証システム500の認証フェーズの動作の一例を示すシーケンス図である。
【0165】
認証フェーズでは、まず、ユーザ端末装置100は、センシング部101でユーザ情報をセンシングする(S401)。ステップS401では、例えば、登録フェーズのステップS201において顔認証のための顔画像を登録した場合、センシング部101はユーザの顔画像を撮影する。
【0166】
続いて、ユーザ端末装置100は、特徴量算出部102にて、ステップS401でセンシングされたユーザ情報から特徴量を算出する(S402)。なお、ステップS202と同様に、特徴量を算出する方法はサービス提供者により事前に決定され、全てのユーザ端末装置100に共有されているものとする。
【0167】
続いて、ユーザ端末装置100は、特徴量分散部103にて、ステップS402で算出された特徴量を秘密分散法によって分散し(S403)、分散された特徴量(いわゆる、分散化特徴量)をデータ演算装置300、310、320に送信する(S404)。
【0168】
続いて、データ演算装置300、310、320は、ユーザ端末装置100から分散化特徴量(以下、認証フェーズにおいて、第1分散化特徴量という)を取得すると、ユーザの認証処理を行う(S405)。ユーザの認証処理の詳細については、後述する。
【0169】
続いて、データ演算装置300、310、320は、ステップS405のユーザの認証処理で得られた分散化認証結果を認証結果利用装置400に送信する(S406)。
【0170】
続いて、認証結果利用装置400は、データ演算装置300、310、320から取得した分散化認証結果を復号する(S407)。より具体的には、認証結果利用装置400は、データ演算装置300、310、320から送信された分散化認証結果を取得すると、分散化認証結果復号部401にて分散化認証結果の秘密分散法による分散を解除して、平文の認証結果に復号する。
【0171】
続いて、認証結果利用装置400は、ステップS407で復号された認証結果を認証結果利用部402にて利用する(S408)。例えば、認証結果利用部402は、認証結果を受付担当者またはユーザに認証結果に関する情報を提示するために利用してもよく、イベント会場への入退場ゲートを会場するために利用してもよい。イベント会場の入退場ゲートだけでなく、例えば、建物または部屋などのドアであってもよい。
【0172】
以下、ユーザの認証処理について
図10を参照しながらより具体的に説明する。
図10は、
図9のステップS405における詳細な処理の一例を示すシーケンス図である。
【0173】
ステップS405の処理では、データ演算装置300、310、320は、分散化LSH値導出部303で特徴量の分散化LSH値を導出する(S501)。より具体的には、データ演算装置300、310、320は、それぞれ、ユーザ端末装置100から取得した分散化特徴量と、LSHパラメータ格納部302に格納されたLSHパラメータ(いわゆる、分散化LSHパラメータ)とを入力として、分散化LSH値導出部303にて、入力を秘匿したままLSHの処理を実行する秘匿LSHを用いて、特徴量の分散化LSH値を導出する。これにより、データ演算装置300、310、320は、得られた分散化特徴量の秘密分散法による分散を解除することなく、分散化LSH値を導出することができる。
【0174】
続いて、データ演算装置300、310、320は、LSH値の分散化ハッシュ値を導出する(S502)。より具体的には、データ演算装置300、310、320は、ステップS501で導出された分散化LSH値と、分散鍵格納部301に格納された分散鍵とを入力として、分散化ハッシュ値導出部305にて、入力を秘匿のまま一方向性関数の処理を実行する秘匿一方向性関数を用いて、LSH値の分散化ハッシュ値を導出する。これにより、データ演算装置300、310、320は、分散化LSH値の秘密分散法による分散を解除することなく、LSH値の分散化ハッシュ値を導出することができる。
【0175】
続いて、データ演算装置300、310、320は、分散化ハッシュ値を復号する(S503)。より具体的には、データ演算装置300、310、320は、ステップS502で導出された分散化ハッシュ値を、分散化ハッシュ値復号部309にて、秘密分散法による分散が解除されたハッシュ値に復号する。
【0176】
続いて、データ演算装置300、310、320は、分散化認証結果導出部307にて、ステップS503で得られたハッシュ値をインデックスとして秘匿ハッシュテーブルを参照し、ハッシュ値が示す行のデータ列に格納されている分散化特徴量群を取り出す(S504)。分散化特徴量群は、例えば、0個以上の分散化特徴量を含むリストである。なお、秘匿ハッシュテーブルは、インデックスとしてのハッシュ値と、データ列としての分散化特徴量との複数の組が予め格納されたテーブルであってもよい。この場合、データ演算装置300、310、320は、分散化認証結果導出部307にて、当該秘匿ハッシュテーブルを用いて、複数の組のうち、分散化ハッシュ値復号部309により復号されたハッシュ値と一致するハッシュ値を含む組を選択してもよい。
【0177】
続いて、データ演算装置300、310、320は、ステップS504で秘匿ハッシュテーブルから取り出された分散化特徴量群に含まれるすべての分散化特徴量と、ステップS404でユーザ端末装置100から送信された認証用の分散化特徴量(いわゆる、第1分散化特徴量)との分散化類似度(以下、類似度という)を計算する(S505)。例えば、データ演算装置300、310、320は、分散化認証結果導出部307にて、秘匿ハッシュテーブルから選択された組に含まれる分散化特徴量と、第1分散化特徴量との類似度を秘匿のまま計算してもよい。
【0178】
続いて、データ演算装置300、310、320は、ステップS505にて計算された類似度に基づいてユーザの認証結果を導出する。例えば、データ演算装置300、310、320は、分散化認証結果導出部307にて、分散化特徴量群の中で、認証用の分散化特徴量(つまり、第1分散化特徴量)と最も類似度の高い分散化特徴量を第2分散化特徴量として抽出し、抽出された第2分散化特徴量と第1分散化特徴量との類似度が閾値よりも高いか否かを判定し、認証結果を導出する(S506)。
【0179】
ステップS506では、例えば、データ演算装置300、310、320は、分散化認証結果導出部307にて、類似度が閾値よりも高いと判定された場合、ユーザの認証が成功したことを表す数値の分散値を認証結果として出力し、類似度が閾値以下であると判定された場合、ユーザの認証が失敗したこと(つまり、ユーザを否認したこと)を表す数値の分散値を認証結果として出力する。
【0180】
ユーザの認証が成功したことを表す数値と、ユーザの認証が失敗したことを表す数値とは、異なる数値であり、システムで決定されていればどのような数値であってもよい。例えば、ユーザの認証が成功したことを表す数値は1であり、ユーザを否認したことを表す数値は0であってもよい。
【0181】
以上により、認証フェーズでは、データ演算装置300、310、320は、秘匿LSHと秘匿一方向性関数とを用いて、ユーザが認証用に送信したユーザ情報、および、ユーザにより秘匿ハッシュテーブルに事前に登録されたユーザ情報を秘匿にしたまま、認証処理を行う。認証処理では、データ演算装置300、310、320は、認証用の分散化特徴量(いわゆる、第1分散化特徴量)と最も類似度の高い分散化特徴量を第2分散化特徴量として抽出することにより認証対象のユーザ情報と最も類似度の高いユーザ情報を効率的に検索することができる。そして、データ演算装置300、310、320は、抽出された第2分散化特徴量と第1分散化特徴量との類似度が閾値よりも高いか否かを判定し、認証が成功したか否かを表す数値の分散値を認証結果として出力する。
【0182】
以上、秘匿認証システム500の一例について説明したが、秘匿認証システム500は、少なくとも以下の構成を備えるシステムであってもよい。
【0183】
秘匿認証システム500は、例えば、分散化LSH値導出部303(
図4参照)と、分散化ハッシュ値導出部305(
図4参照)と、分散化ハッシュ値復号部309(
図4参照)と、秘匿ハッシュテーブル格納部306(
図4参照)と、分散化認証結果導出部307(
図4参照)と、出力部(
図4の通信部308に対応)と、を備えているとよい。各部については上述したためここでの説明を省略する。
【0184】
また、秘匿認証方法は、少なくとも以下の処理フローを含む方法であってもよい。
図16は、本実施の形態に係る秘匿認証方法の一例を示すフローチャートである。
図16に示されるように、秘匿認証システム500により実行される秘匿認証方法は、例えば、暗号化され、かつ、秘密分散法により分散された特徴量であり、ユーザに関するユーザ情報の特徴量である第1分散化特徴量と、LSHの暗号化されたパラメータである暗号化LSHパラメータとを入力として、入力を秘匿したままLSHの処理を実行する秘匿LSHを用いて、暗号化され、かつ、分散されたLSH値である分散化LSH値を導出し(S601)、導出された分散化LSH値と、一方向性関数の処理を実行するための鍵であって暗号化され、かつ、分散された鍵である分散鍵とを入力として、入力を秘匿のまま一方向性関数の処理を実行する秘匿一方向性関数を用いて、暗号化され、かつ、分散されたハッシュ値である分散化ハッシュ値を導出し(S602)、導出された分散化ハッシュ値を、秘密分散法による分散が解除されたハッシュ値に復号し(S603)、インデックスとしてのハッシュ値と、データ列としての分散化特徴量との複数の組が予め格納されたテーブルである秘匿ハッシュテーブルを用いて、複数の組のうち、復号されたハッシュ値と一致するハッシュ値を含む組を選択し(S604)、選択された組に含まれる分散化特徴量と、第1分散化特徴量との類似度を秘匿したまま計算し(S605)、計算された類似度に基づいてユーザの認証結果を秘匿したまま導出し(S606)、導出された認証結果を出力する(S607)。
【0185】
(他の実施の形態)
以上、本開示に係る秘匿認証システム、および、秘匿認証方法について、実施の形態に基づいて説明したが、本開示は、上記の実施の形態に限定されるものではない。本開示の主旨を逸脱しない限り、当業者が思いつく各種変形を実施の形態に施したものや、実施の形態における一部の構成要素を組み合わせて構築される別の形態も、本開示の範囲に含まれる。例えば、以下のような場合も本開示に含まれる。
【0186】
(1)上記実施の形態では、ユーザ情報の特徴量として例えば顔画像の特徴量を利用してユーザの認証を行っているが、網膜画像、虹彩画像、指紋画像、静脈画像、音声情報、耳の形状情報、DNA情報、もしくは、手のひらの画像といったユーザの身体的特徴の特徴量、筆跡、キーストローク、歩容、もしくは、行動履歴などのユーザの行動的特徴の特徴量、または、ユーザが所有している文書情報、ユーザの記憶、もしくは、ユーザが所持しているもの(所有物)などのユーザの所有物の特徴に関する特徴量をユーザの認証に利用してもよい。
【0187】
(2)上記実施の形態では、単一の特徴量(例えば、第1分散化特徴量)のみを用いてユーザの認証を行っているが、例えば上記(1)に示される複数種類の特徴量を組み合わせてユーザの認証を行ってもよい。例えば、指紋画像と虹彩画像とを用いてユーザの認証を行ってもよい。この場合、指紋画像を用いたユーザの認証が成功しても、虹彩画像を用いたユーザの認証が失敗した場合、ユーザは否認される。
【0188】
(3)上記実施の形態では、ユーザ端末装置100がユーザ情報から特徴量を算出しているが、データ演算装置300、310、320がユーザ情報から特徴量を算出ユーザ情報から特徴量を算出してもよい。この場合、データ演算装置300、310、320は、分散化ユーザ情報から分散化特徴量を算出する。例えば、ユーザ端末装置100は、ユーザ情報を分散した分散化ユーザ情報をデータ演算装置300、310、320に送信する。データ演算装置300、310、320は、分散化ユーザ情報を取得すると、ユーザ情報を秘匿したまま特徴量を算出する、つまり、分散化ユーザ情報から分散化特徴量を算出する。
【0189】
上記の実施の形態では、登録フェーズおよび認証フェーズで、ユーザ端末装置100が分散化特徴量をデータ演算装置300、310、320に送信しているが、データ演算装置300、310、320がユーザ端末装置100から送信された分散化ユーザ情報から分散化特徴量を算出してもよい。なお、登録フェーズおよび認証フェーズでは、特徴量の算出方法が同じであればよく、どのような算出方法を使ってもよい。
【0190】
(4)上記実施の形態では、ユーザ端末装置100がユーザ情報から特徴量を算出しているが、ユーザ端末装置100とは別に、特徴量の算出を行う特徴量算出装置を用意し、特徴量算出装置でユーザ情報の特徴量を算出してもよい。
【0191】
この場合、ユーザ端末装置100はユーザ情報を分散した分散化ユーザ情報を特徴量算出装置に送信し、特徴量算出装置がユーザ情報を秘匿したまま特徴量を算出してもよい。また、ユーザ端末装置100はユーザ情報を特徴量算出装置に送信し、特徴量算出装置がユーザ情報から特徴量を算出してもよい。
【0192】
なお、暗号化ユーザ情報を特徴量算出装置に送信する場合は、特徴量算出装置が信頼のおける装置であり、特徴量算出装置からユーザ情報が漏洩しないことが求められる。
【0193】
(5)上記実施の形態では、秘匿ハッシュテーブルのデータ列には分散化特徴量のみを含んでいるが、さらに、分散化ユーザIDなどの分散化されたユーザ情報を含んでもよい。秘匿ハッシュテーブルに格納されるユーザ情報はこれに限定されず、秘匿ハッシュテーブルのデータ列に分散化特徴量が含まれていればいかなるデータでも良い。この場合、データ演算装置300、310、320は、認証結果として認証が成功したか否かを表す数値に加え、秘匿ハッシュテーブルに格納されているユーザ情報を出力してもよい。
【0194】
(6)上記実施の形態では、データ演算装置300、310、320は、認証処理を行う際に、認証用の分散化特徴量(第1分散化特徴量)と最も類似度の高い分散化特徴量(第2分散化特徴量)との類似度と閾値とを比較して認証が成功したか否かを表す数値の分散値を認証結果として出力しているが、秘匿ハッシュテーブルから選択された分散化特徴量、および、それに対応する分散化ユーザIDなどの分散化ユーザ情報を認証結果利用装置400に出力してもよい。この場合、データ演算装置300、310、320から分散化特徴量、分散化ユーザID、または、その他の分散化ユーザ情報を受け取った認証結果利用装置400にて、認証対象のユーザ情報と、データ演算装置300、310、320から送信されたユーザ情報とを比較することでユーザの認証を行ってもよい。
【0195】
(7)上記実施の形態では、データ演算装置300、310、320は分散化認証結果を認証結果利用装置400に送信しているが、データ演算装置300、310、320が分散化認証結果を認証結果に復号してから認証結果を認証結果利用装置400に送信してもよい。これにより、認証結果利用装置400は分散化認証結果を平文の認証結果に復号する必要がないため、受け取った認証結果をそのまま利用することができる。
【0196】
(8)上記実施の形態では、データ演算装置300、310、320は分散化認証結果を認証結果利用装置400に送信しているが、分散化認証結果をユーザ端末装置100に送信してもよい。この場合、ユーザ端末装置100は、例えば、分散化認証結果復号部401および認証結果利用部402を備えており、取得した分散化認証結果を復号して利用してもよい。
【0197】
(9)上記実施の形態では、データ演算装置300、310、320は認証結果利用装置400に分散化認証結果を送信しているが、認証結果利用装置400およびユーザ端末装置100の両方に分散化認証結果を送信してもよい。
【0198】
(10)上記実施の形態では、一方向性関数としてAESを用いた例を説明したが、一方向性関数として、出力から入力を求められない関数であればいかなる関数を用いても良い。
【0199】
(11)上記(10)では、一方向性関数として、出力から入力を求められない関数であればいかなる関数でもよいとしているが、べき乗関数、または、SHAもしくはMD5などの暗号学的ハッシュ関数等、一方向性関数の計算にランダムな値を用いることで出力にランダム性を持たせることができる関数を用いることとしてもよい。
【0200】
このような関数を用いない場合、LSH値の取り得る全ての値を入力として一方向性関数の計算を実行することにより、入力と出力との対応表を作成することが可能となる。そのため、特にLSH値の取りうる値が少ない場合には、上記の対応表を容易に作成することができるため、対応表を用いて一方向性関数に入力したLSH値を容易に求めることができる。LSH値からユーザ情報を特定することができるため、ユーザ情報の安全性の観点で問題になる。しかしながら、(11)に例示した関数を用いることで、上記の対応表を作成することができなくなるため、一方向性関数の出力から入力を求めることが困難になる。そのため、ユーザ情報の安全性が向上される。
【0201】
(12)上記実施の形態では、一方向性関数としてAESを用いているが、ElGamal暗号やRSA暗号、楕円曲線暗号等の公開鍵暗号を用いてもよい。公開鍵暗号を用いる場合、鍵ペアを作成後に公開鍵を削除することで、AESよりも一方向性を強固にすることができる。
【0202】
(13)上記実施の形態では、一方向性関数で用いる鍵の一例としてAESの暗号鍵について言及しているが、一方向性関数を計算するために、入力データ以外に複数のデータが必要な場合は、それらをまとめて鍵としてもよい。また、鍵が複数の情報を表す場合、データ提供装置200の鍵分散部203は、それらすべての情報を分散する必要はなく、一方向性関数の出力から入力に関する情報を求めることが出来ない範囲で、それらの情報の一部を平文でデータ演算装置300、310、320へ送信してもよい。
【0203】
(14)上記実施の形態では、秘密分散法を用いて各データを秘匿しているが、準同型暗号(非特許文献10:Pascal Paillier、「Public-Key Cryptosystems Based on Composite Degree Residuosity Classes」(https://rd.springer.com/chapter/10.1007%2F3-540-48910-X_16))、完全準同型暗号(非特許文献11:Jung Hee Cheon、外3名、「Hommorphic Encryption for Arithmetic of Approximate Numbers.」(https://eprint.iacr.org/2016/421.pdf)、非特許文献12:Junfeng Fan、外1名、「Somewhat Practical Fully Homomorphic Encryption.」(https://eprint.iacr.org/2012/144.pdf))、または、GarbledCircuit(非特許文献13:Andrew Chi-Chih Yao、「How to generate and exchange secrets.」(https://ieeexplore.ieee.org/document/4568207?arnumber=4568207))を用いてもよい。
【0204】
(15)上記実施の形態では、LSHのハッシュ関数としてSimHashを用いているが、MinHashを用いてもよい。
【0205】
(16)上記実施の形態において、秘匿ハッシュテーブルから選択された組に含まれる分散化特徴量と第1分散化特徴量との類似度の計算は、ユークリッド距離、ユークリッド距離の2乗値、マンハッタン距離、ハミング距離、レーベンシュタイン距離、コサイン類似度、または、ピアソンの相関係数などを用いてもよい。ここで、類似度が高いとは、ユークリッド距離、ユークリッド距離の2乗値、マンハッタン距離、ハミング距離、もしくは、レーベンシュタイン距離が小さいこと、または、コサイン類似度、もしくは、ピアソンの相関係数が高いことを意味する。
【0206】
(17)上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ROM(Read Only Memory)、RAM(Random Access Memory)、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。RAMまたはハードディスクユニットには、コンピュータプログラムが記録されている。マイクロプロセッサが、上記コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【0207】
(18)上記の実施の形態における各装置は、構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されていてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。RAMには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。
【0208】
また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部または全てを含むように1チップ化されてもよい。
【0209】
また、ここでは、システムLSIとしたが、集積度の違いにより、IC(Integrated circuit)、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)、LSI内部の回路セルの接続または設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【0210】
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【0211】
(19)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。ICカードまたは前記モジュールは、上記の超多機能LSIを含んでいてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有してもよい。
【0212】
(20)本開示は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、上記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【0213】
また、本開示は、上記コンピュータプログラムまたは上記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO(Magneto-Optical disc)、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(登録商標)Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている上記デジタル信号であるとしてもよい。
【0214】
また、本開示は、上記コンピュータプログラムまたは上記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【0215】
また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、上記コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムに従って動作するとしてもよい。
【0216】
また、プログラムまたはデジタル信号を記録媒体に記録して移送することにより、または、プログラムもしくは上記デジタル信号を、ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【0217】
(21)上記実施の形態および上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【0218】
本開示は、ユーザの機微情報をデータ演算装置において平文で扱わず、プライバシを保護するシステム等に適用され得る。
【符号の説明】
【0219】
100 ユーザ端末装置
101 センシング部
102 特徴量算出部
103 特徴量分散部
104 通信部
200 データ提供装置
201 LSHパラメータ生成部
202 鍵生成部
203 鍵分散部
204 閾値設定部
205 通信部
300、310、320 データ演算装置
301 分散鍵格納部
302 LSHパラメータ格納部
303 分散化LSH値導出部
304 閾値格納部
305 分散化ハッシュ値導出部
306 秘匿ハッシュテーブル格納部
307 分散化認証結果導出部
308 通信部
309 分散化ハッシュ値復号部
400 認証結果利用装置
401 分散化認証結果復号部
402 認証結果利用部
403 通信部
500 秘匿認証システム