(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-27
(45)【発行日】2023-12-05
(54)【発明の名称】プライバシ保護生体認証のための方法およびシステム
(51)【国際特許分類】
G09C 1/00 20060101AFI20231128BHJP
H04L 9/32 20060101ALI20231128BHJP
G06F 21/32 20130101ALI20231128BHJP
G06F 21/60 20130101ALI20231128BHJP
【FI】
G09C1/00 650Z
H04L9/32 100D
G06F21/32
G06F21/60 320
(21)【出願番号】P 2021535257
(86)(22)【出願日】2019-12-13
(86)【国際出願番号】 IB2019060749
(87)【国際公開番号】W WO2020144510
(87)【国際公開日】2020-07-16
【審査請求日】2022-05-26
(32)【優先日】2019-01-10
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】ソセアヌ、オムリ
(72)【発明者】
【氏名】バーハム、ムハンマド
(72)【発明者】
【氏名】ヴィノフ、マイケル
(72)【発明者】
【氏名】ファーカシュ、アリエル
(72)【発明者】
【氏名】シュメルキン、ロン
【審査官】金沢 史明
(56)【参考文献】
【文献】特開2016-118984(JP,A)
【文献】米国特許出願公開第2018/0330179(US,A1)
【文献】特表2016-508323(JP,A)
【文献】特開2015-095877(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/00- 9/40
G06F 21/32,21/60
G09C 1/00
G06N 3/02, 7/00
(57)【特許請求の範囲】
【請求項1】
プロセッサが実行する生体認証のための方法であって、
ニューラル・ネットワーク分類器の複数の暗号化された訓練済みの重みを記憶することであり、前記重みが人物の少なくとも1つの生体特徴を表す生体情報を使用して訓練されている、前記記憶することと、
前記人物の少なくとも1つの生体特徴をサンプリングすることと前記サンプリングされた生体特徴を暗号化することとによって取得された、暗号化された生体情報を受信することと、
前記暗号化された訓練済みの重みを有する暗号化された訓練済みの前記ニューラル・ネットワーク分類器を使用して
、前記受信された暗号化された生体情報
と記憶された暗号化された生体情報と
が一致する確率を示す、一致スコアを取得すること
であって、
前記受信された暗号化された生体情報を前記暗号化された訓練済みのニューラル・ネットワーク分類器に供給して、暗号化された一致スコアを取得することと、
前記暗号化された一致スコアをクライアント・デバイスに送信することと、
前記クライアント・デバイスから復号された一致スコアを受信することと、
を含む、前記一致スコアを取得することと、
前記受信された暗号化された生体情報が、前記記憶された暗号化された生体情報と一致する前記確率が閾値を超える場合に、前記人物を認証することと、
を含む、方法。
【請求項2】
前記訓練済みの重みが準同型暗号化、マルチ・パーティ計算、またはこの2つの組合せを使用して暗号化される、請求項1に記載の方法。
【請求項3】
前記クライアントがゼロ知識証明を使用して前記一致スコアを正しく復号したことを判定することと、
前記
復号された一致スコアを前記閾値と比較することと、
を含む、
請求項1または請求項2に記載の方法。
【請求項4】
前記一致スコアを取得することが、
前記暗号化された訓練済みのニューラル・ネットワーク分類器を使用して暗号化された一致スコアを取得することと、
前記暗号化された一致スコアに第1の暗号化された秘密整数を乗算することと、
複数の追加の秘密整数を暗号化することと、
前記乗算された暗号化された一致スコア、および前記複数の暗号化された追加の秘密整数のうちの少なくとも一部をクライアント・デバイスに送信することと、
前記クライアント・デバイスから、復号された乗算された一致スコアおよび復号された追加の秘密整数を受信することと、
前記復号された追加の秘密整数の正しさを検証することと、
前記
復号された一致スコアを、前記第1の暗号化された秘密整数で除算して、前記一致スコアを取得することと、
を含む、
請求項1から請求項3のいずれか一項に記載の方法。
【請求項5】
前記乗算された暗号化された一致スコアおよび前記暗号化された追加の秘密整数が、秘密のランダムな順序で前記クライアント・デバイスに送信される、請求項4に記載の方法。
【請求項6】
前記暗号化された生体情報が、生体情報取得デバイスに通信可能に接続されたクライアント・デバイスから受信される、
請求項1から請求項5のいずれか一項に記載の方法。
【請求項7】
前記復号が、秘密鍵を使用して前記クライアント・デバイスで実行される、
請求項1から請求項6のいずれか一項に記載の方法。
【請求項8】
前記ニューラル・ネットワーク分類器の層のうちの一部が、一般に公開されている非プライベート生体情報を使用して訓練され、前記ニューラル・ネットワーク分類器の一部の層が、前記人物のプライベート生体情報を使用して再訓練された、請求項1
から請求項7のいずれか一項に記載の方法。
【請求項9】
生体認証のためのシステムであって、プロセッサ、前記プロセッサによってアクセス可能なメモリ、および前記メモリに記憶され前記プロセッサによって実行可能なコンピュータ・プログラム命令を備え、前記コンピュータ・プログラム命令が、請求項1から請求項8のいずれか一項に記載の方法を前記プロセッサに実行させる、システム。
【請求項10】
生体認証のためのコンピュータ・プログラムであって、請求項1から請求項8のいずれか一項に記載の方法をプロセッサに実行させる、コンピュータ・プログラム。
【請求項11】
生体認証のためのコンピュータ・プログラムを記録した記憶媒体であって、請求項1から請求項8のいずれか一項に記載の方法をプロセッサに実行させるためのコンピュータ・プログラムを記録した、記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、認識性能を劣化させることなく認証のために記憶および使用することができる暗号化された生体情報を提供する技法に関する。
【背景技術】
【0002】
確定的なパスワードとは異なり、生体特徴は、取得プロセスにおける変化(サンプリング・ノイズ、影、位置の変化など)または自然な理由(怪我、あごひげ、老齢など)などの要因によって絶えず変化している。したがって、パスワードとは対照的に、生体情報は、サンプリングされるたびに正確に一致することはなく、したがって、パスワードのように、記憶、ソルト、ハッシュなどの処理をすることができない。現在、生体情報を暗号化し、認証のためにその有用性を維持するための実用的な方法はない。例えば、この利用不可能の理由は、証明不可能なセキュリティ・クレームと相まった認識性能の許容できない劣化である。その結果、生体情報は、現在、攻撃に対して脆弱な様々なデータベースに記憶されている。
【0003】
したがって、認識性能を劣化させることなく認証のために記憶および使用することができる暗号化された生体情報を提供することができる技法の必要性が生じている。
【発明の概要】
【0004】
本システムおよび方法の実施形態は、認識性能を劣化させることなく認証のために記憶および使用することができる暗号化された生体情報を提供することができる。実施形態は、現在の技術を上回る利点を提供することができる。例えば、実施形態は、既知の受け入れられた暗号化モジュールを含むことができるため、実施形態は、対称法および非対称法などの現在の暗号化ソリューションに対して、測定することができるセキュリティ・クレームを提供することができる。さらに、認識性能率の劣化は、メモリおよび速度の要件とのトレードオフとして説明することができ、業界で受け入れ可能な性能要件の場合、実施形態は、両方を達成することができる。
【0005】
例えば、一実施形態では、プロセッサ、プロセッサによってアクセス可能なメモリ、およびメモリに記憶されプロセッサによって実行可能なコンピュータ・プログラム命令を含むコンピュータにおいて実施される生体認証のため方法は、ニューラル・ネットワーク分類器の複数の暗号化された訓練済みの重みを記憶することであって、重みが人物の少なくとも1つの生体特徴を表す生体情報を使用して訓練されている、前記記憶することと、人物の少なくとも1つの生体特徴をサンプリングすることとサンプリングされた生体特徴を暗号化することとによって取得された暗号化された生体情報を受信することと、暗号化された訓練済みのニューラル・ネットワーク分類器を使用して一致スコアを取得することであって、一致スコアが、受信された暗号化された生体情報が、記憶された暗号化された生体情報と一致する確率を示す、前記取得することと、受信された暗号化された生体情報が、記憶された暗号化された生体情報と一致する確率が閾値を超えた場合にその人物を認証することと、を含むことができる。
【0006】
実施形態では、訓練済みの重みは、準同型暗号化、マルチ・パーティ計算、またはこの2つの組合せを使用して暗号化されてもよい。一致スコアを取得することは、暗号化された訓練済みのニューラル・ネットワーク分類器を使用して、暗号化された一致スコアを取得することと、暗号化された一致スコアをクライアント・デバイスに送信することと、クライアント・デバイスから暗号化されていない一致スコアを受信することと、クライアントがゼロ知識証明を使用して、一致スコアを正しく復号したことを判定することと、暗号化されていない一致スコアを閾値と比較することと、を含むことができる。一致スコアを取得することは、暗号化された訓練済みのニューラル・ネットワーク分類器を使用して暗号化された一致スコアを取得することと、暗号化された一致スコアに第1の暗号化された秘密整数を乗算することと、複数の追加の秘密整数を暗号化することと、乗算された暗号化された一致スコア、および複数の暗号化された追加の秘密整数のうちの少なくとも一部をクライアント・デバイスに送信することと、クライアント・デバイスから、復号された乗算された一致スコアおよび復号された追加の秘密整数を受信することと、復号された追加の秘密整数の正しさを検証することと、暗号化されていない一致スコアを、第1の暗号化された秘密整数によって除算して、一致スコアを取得することと、を含むことができる。乗算された暗号化された一致スコアおよび暗号化された追加の秘密整数は、秘密のランダムな順序でクライアント・デバイスに送信されてもよい。暗号化された生体情報は、生体情報取得デバイスに通信可能に接続されたクライアント・デバイスから受信されてもよい。復号は、秘密鍵を使用してクライアント・デバイスで実行されてもよい。ニューラル・ネットワーク分類器の層のうちの一部は、一般に公開されている非プライベート生体認証情報を使用して訓練されてもよく、ニューラル・ネットワーク分類器の一部の層は、人物のプライベート生体認証情報を使用して再訓練されてもよい。
【0007】
一実施形態では、生体認証のためのシステムは、プロセッサ、プロセッサによってアクセス可能なメモリ、およびメモリに記憶されプロセッサによって実行可能なコンピュータ・プログラム命令を含み、ニューラル・ネットワーク分類器の複数の暗号化された訓練済みの重みを記憶することであって、重みが人物の少なくとも1つの生体特徴を表す生体情報を使用して訓練されている、前記記憶することと、人物の少なくとも1つの生体特徴をサンプリングすることとサンプリングされた生体特徴を暗号化することとによって取得された暗号化された生体情報を受信することと、暗号化された訓練済みのニューラル・ネットワーク分類器を使用して、一致スコアを取得することであって、一致スコアが、受信された暗号化された生体情報が、記憶された暗号化された生体情報と一致する確率を示す、前記取得することと、受信された暗号化された生体情報が、記憶された暗号化された生体情報と一致する確率が閾値を超えた場合に、その人物を認証することと、を実行することができる。
【0008】
一実施形態では、生体認証のためのコンピュータ・プログラム製品は、プログラム命令が具現化された非一過性のコンピュータ可読記憶装置を含み、コンピュータによって実行可能なプログラム命令が、コンピュータに、ニューラル・ネットワーク分類器の複数の暗号化された訓練済みの重みを記憶することであって、重みが人物の少なくとも1つの生体特徴を表す生体情報を使用して訓練されている、前記記憶することと、人物の少なくとも1つの生体特徴をサンプリングすることとサンプリングされた生体特徴を暗号化することとによって取得された暗号化された生体情報を受信することと、暗号化された訓練済みのニューラル・ネットワーク分類器を使用して、一致スコアを取得することであって、一致スコアが、受信された暗号化された生体情報が、記憶された暗号化された生体情報と一致する確率を示す、前記取得することと、受信された暗号化された生体情報が、記憶された暗号化された生体情報と一致する確率が閾値を超えた場合に、その人物を認証することと、を含む方法を実行させることができる。
【0009】
本発明の詳細は、その構造および動作の両方に関して、添付の図面を参照することによって最もよく理解することができ、図面では、同様の参照番号および記号表示は、同様の要素を指す。
【図面の簡単な説明】
【0010】
【
図1】本システムおよび方法の実施形態を実施することができる例示的なシステムである。
【
図2】本方法の実施形態を実施することができ、本システムの実施形態において実施することができるプロセスの例示的な流れ図である。
【
図3】本方法の実施形態を実施することができ、本システムの実施形態において実施することができるプロセスの例示的な流れ図である。
【
図4】本明細書に記載の実施形態に含まれるプロセスを実施することができるコンピュータ・システム/コンピューティング・デバイスの例示的なブロック図である。
【発明を実施するための形態】
【0011】
本システムおよび方法の実施形態は、認識性能を劣化させることなく認証のために記憶および使用することができる暗号化された生体情報を提供することができる。実施形態は、現在の技術を上回る利点を提供することができる。例えば、実施形態は、既知の受け入れられた暗号化モジュールを含むことができるため、実施形態は、対称法および非対称法などの現在の暗号化ソリューションに対して、測定することができるセキュリティ・クレームを提供することができる。さらに、認識性能率の劣化は、メモリおよび速度の要件とのトレードオフとして説明することができ、業界で受け入れ可能な性能要件の場合、実施形態は、両方を達成することができる。
【0012】
準同型暗号化における進歩を活用して、実施形態は、暗号化されたユーザ固有の分類器ニューラル・ネットワークを人ごとに記憶するシステムを含むことができる。サーバに送信される生体データは、暗号化されていてもよく、認証プロセス中に暗号化されたままであってもよい。認証プロセスが終了すると、サーバは、暗号化された一致スコアを有することができる。このスコアは、秘密鍵を保持しているユーザによってのみ復号することができ、次いで、秘密鍵が特定のプロトコルを介してサーバに伝達されてもよく、それによって、サーバは、ユーザを認証または拒否することができる。
【0013】
本システムおよび方法の実施形態を実施することができる例示的なシステム100が
図1に示されている。本例では、システム100は、サーバ102、クライアント・デバイス104、および生体情報取得デバイス106を含むことができる。サーバ102は、システムのユーザの登録および認証などの機能を実行することができ、複数の暗号化されたニューラル・ネットワーク108を含むことができる。クライアント・デバイス104は、ソフトウェア・プログラムを実行することができる任意のコンピューティング・デバイスであってもよく、パーソナル・コンピュータ、ラップトップ、スマートフォン、タブレット・コンピュータなどの汎用コンピューティング・デバイスを含むことができ、エントリ・デバイス、キオスク、ATMなどの標準デバイスまたは専有デバイスに含まれることがある組み込みプロセッサ、システム・オン・チップなどの専用コンピューティング・デバイスを含むことができる。クライアント・デバイス104は、1つまたは複数のクライアント・アプリケーション110を含み、実行することができる。生体情報取得デバイス106は、指紋、網膜スキャン、手のひら静脈、顔認識、DNA、掌紋、手の形状、虹彩認識、網膜、および匂い/香りなどの、生物学的、生理学的、または身体的生体情報、あるいはその組合せを取得することができる任意のデバイスであってもよい。サーバ102は、クライアント・デバイス104および生体情報取得デバイス106に通信可能に接続されていてもよい。クライアント・デバイス104は、通信可能にまたは物理的にあるいはその両方で生体情報取得デバイス106に接続されていてもよい。
【0014】
システム100の動作のプロセス200の例示的な流れ図が
図2に示されている。本図は、
図1と併せて見るのが最善である。本例では、プロセス200は、登録フェーズ202および検証フェーズ204の2つのフェーズを含むことができる。登録フェーズ202は、206から開始することができ、ここでは、生体情報取得デバイス106は、人物の1つまたは複数の生体特徴をサンプリングし、サンプルを、クライアント・デバイス104に送信(112)される生体情報に変換することができる。クライアント・デバイス104において、クライアント・アプリケーション110は、この生体情報を使用してその人物の生体特徴を識別するためにニューラル・ネットワーク分類器を訓練(208)することができる。実施形態では、ニューラル・ネットワーク分類器、またはニューラル・ネットワーク分類器の層のサブセットは、一般に公開されている非プライベート生体情報を使用して訓練されてもよく、ニューラル・ネットワーク分類器の他の層は、特定の個人のプライベート生体情報を使用して再訓練されてもよい。例えば、メモリおよび速度の要件を低減するために、ニューラル・ネットワーク・モデル全体を、一般に公開されている生体データ(いかなるプライバシの制約もない)を使用して訓練することができる。例えば、最初の数層の重みが固定または記憶されてもよく、次いで、登録中に、残りの層がプライベートな人物固有の生体認証データを使用して再訓練されてもよい。したがって、例えば、最後の数層のみを暗号化すればよい。検証中に、生体特徴は、最初に、暗号化されていないNN層に供給されてもよく、次いで、暗号化されて、暗号化されたモデルに送信されてもよい。訓練済みの重みは、例えば、準同型暗号化を使用して暗号化(210)されて、サーバ102に送信(114)されてもよく、サーバ102は、その人物のための暗号化されたニューラル・ネットワーク108を記憶することができる。準同型暗号化により、暗号化されたデータに対する計算が可能になり、その結果、暗号化されたデータに対する計算結果が復号されたときに、その結果が、暗号化されていないデータまたは平分データに対して計算が実行された場合と同じになる。
【0015】
検証フェーズ204は、212で開始することができ、ここでは、生体特徴が再びサンプリングされ、生体情報をクライアント・デバイス104に送信(116)することができる。クライアント・デバイス104は、生体情報を処理し、生体情報を暗号化して、暗号化された生体情報をサーバ102に送信(118)することができる。214において、サーバ102は、暗号化された重みおよび受信された生体情報特徴を使用して、ニューラル・ネットワークを用い、暗号化された一致スコアを取得することができる。ここで、サーバ102は、この一致スコアが閾値を超えているかどうかを知る必要がある。クライアント・デバイス104のみが一致スコアを復号することができるため、プロセス216を使用することができ、このプロセス216によって、クライアント・デバイス104は、秘密鍵を使用して一致スコアを復号し、これを信頼できる安全なやり方でサーバに伝達することができる。実施形態では、暗号化された一致スコアは、ゼロ知識証明を使用して、秘密鍵を保持するユーザによって復号されてもよい。同様に、信頼されていない可能性のあるユーザが、ゼロ知識証明を使用して一致スコアを正しく復号したことを検証することができる。このようなゼロ知識証明の例としては、後で加算することなく乗算を実行すること、他の一般的な関数f(secret_numberi)を使用すること、Vickeryオークションなどの技法が挙げられるが、これらに限定されない。Vickeryオークションまたは最高入札者オークションは、ゼロ知識である。例えば、2番目に高い入札者を閾値と見なすことができ、次いで、ゼロ知識証明として、所与のスコアを最高入札者とする。
【0016】
プロセス216の例示的な流れ図が
図3に示されている。本図は、
図1と併せて見るのが最善である。プロセス216は、302で開始することができ、ここで、サーバ102は、暗号化された一致スコアに暗号化された秘密整数R
1を乗算することができる。サーバ102はまた、N-1個の他の秘密整数R
2、…、R
Nを暗号化することができる。サーバ102は、乗算された暗号化された一致スコアおよび乗算された(暗号化された)数を含む、乗算された値をクライアント・デバイス104に送信(120)することができる。乗算された値は、秘密のランダムな順序で送信(120)されてもよい。クライアント・デバイス104は、乗算された値を復号することができる。クライアント・デバイス104は、復号された値をサーバ102に返送(122)することができ、サーバ102は、R
2、…、R
Nの正しさを検証することができる。残りの値については、その値をR
1で除算して、復号された一致スコアを取得することができる。次いで、サーバ102は、復号された一致スコアを閾値と比較して、一致があるかどうかを判定することができる。一致がある場合、その人物が認証され得る。
【0017】
本明細書に記載される実施形態に含まれるプロセスを実施することができる、コンピュータ・システム/コンピューティング・デバイス402の例示的なブロック図が
図4に示されている。コンピュータ・システム/コンピューティング・デバイス402は、組み込みプロセッサ、システム・オン・チップ、パーソナル・コンピュータ、ワークステーション、サーバ・システム、およびミニコンピュータもしくはメインフレーム・コンピュータなどの1つまたは複数のプログラムされた汎用コンピュータ・システム、ならびにスマートフォンもしくはタブレットなどのモバイル・デバイスを使用して、または分散ネットワーク・コンピューティング環境において実装することができる。コンピュータ・システム/コンピューティング・デバイス402は、1つまたは複数のプロセッサ(CPU)402A~402N、入力/出力回路404、ネットワーク・アダプタ406、およびメモリ408を含むことができる。CPU402A~402Nは、本通信システムおよび方法の機能を実行するためにプログラム命令を実行する。典型的には、CPU402A~402Nは、INTEL CORE(R)プロセッサもしくはARM(R)プロセッサなどの1つまたは複数のマイクロプロセッサである。
図4は、コンピュータ・システム/コンピューティング・デバイス402が単一のマルチ・プロセッサ・コンピュータ・システム/コンピューティング・デバイスとして実装され、複数のプロセッサ402A~402Nがメモリ408、入力/出力回路404、およびネットワーク・アダプタ406などのシステム・リソースを共有する実施形態を示す。しかしながら、本通信システムおよび方法はまた、コンピュータ・システム/コンピューティング・デバイス402が、シングル・プロセッサ・コンピュータ・システム/コンピューティング・デバイス、マルチ・プロセッサ・コンピュータ・システム/コンピューティング・デバイス、またはそれらの混合であってもよい、複数のネットワーク化されたコンピュータ・システムとして実装される実施形態を含む。
【0018】
入力/出力回路404は、コンピュータ・システム/コンピューティング・デバイス402にデータを入力する、またはコンピュータ・システム/コンピューティング・デバイス402からデータを出力する能力を提供する。例えば、入力/出力回路は、キーボード、マウス、タッチパッド、トラックボール、スキャナ、アナログ・デジタル・変換器などの入力デバイス、ビデオ・アダプタ、モニタ、プリンタ、生体情報取得デバイスなどの出力デバイス、およびモデムなどの入力/出力デバイスを含むことができる。ネットワーク・アダプタ406は、デバイス400をネットワーク410とインターフェースする。ネットワーク410は、インターネットを含むがこれらに限定されない、任意の公衆または専有のLANあるいはWANであってもよい。
【0019】
メモリ408は、コンピュータ・システム/コンピューティング・デバイス402の機能を実行するために、CPU402によって実行されるプログラム命令、ならびにCPU402によって使用および処理されるデータを記憶する。メモリ408は、例えば、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、プログラマブル読み取り専用メモリ(PROM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)、フラッシュ・メモリなどの電子メモリ・デバイス、および磁気ディスク・ドライブ、テープ・ドライブ、光ディスク・ドライブなどの電気機械メモリを含むことができ、これらは、統合ドライブ・エレクトロニクス(IDE)インターフェースまたはその変形もしくは拡張、例えば拡張IDE(EIDE)もしくはウルトラ・ダイレクト・メモリ・アクセス(UDMA)など、あるいは小型コンピュータ・システム・インターフェース(SCSI)ベースのインターフェースまたはその変形もしくは拡張、例えば高速SCSI、ワイドSCSI、高速およびワイドSCSIなど、あるいはシリアル・アドバンスト・テクノロジ・アタッチメント(SATA)またはその変形もしくは拡張、あるいはファイバ・チャネル調停ループ(FC-AL)インターフェースを使用することができる。
【0020】
メモリ408の内容は、コンピュータ・システム/コンピューティング・デバイス402が実行するようにプログラムされている機能に応じて様々であってもよい。
図4に示す例では、例示的なメモリ内容が示されており、上述したプロセスの実施形態のためのルーチンおよびデータを表している。しかしながら、当業者は、これらのルーチンが、これらのルーチンに関連するメモリ内容とともに、1つのシステムまたはデバイスに含まれていなくてもよく、むしろ、よく知られている工学的な考慮事項に基づいて、複数のシステムまたはデバイス間に分散されていてもよいことを認識するであろう。本通信システムおよび方法は、そのようなあらゆる構成を含むことができる。
【0021】
図4に示す例では、コンパクトにするために、メモリ408は、サーバ412のためのメモリ内容およびクライアント・デバイス414のためのメモリ内容を含むものとして示されているが、典型的には、コンピュータ・システム/コンピューティング・デバイス400は、そのようなメモリ内容を1つだけ含む。本例では、サーバ412は、登録ルーチン416、検証ルーチン418、および暗号化されたニューラル・ネットワーク・データ420を含むことができる。同様に、本例では、クライアント・デバイス414は、登録ルーチン422、検証ルーチン424、および検証データ426を含むことができる。登録ルーチン416は、上述したように、サーバ登録プロセスを実行するためのソフトウェア・ルーチンを含むことができる。検証ルーチン418は、上述したように、サーバ検証プロセスを実行するためのソフトウェア・ルーチンを含むことができる。暗号化されたニューラル・ネットワーク・データ420は、上述したように、訓練済みニューラル・ネットワークを表す暗号化されたデータを含むことができる。登録ルーチン422は、上述したように、クライアント・デバイス登録プロセスを実行するためのソフトウェア・ルーチンを含むことができる。検証ルーチン424は、上述したように、クライアント・デバイス検証プロセスを実行するためのソフトウェア・ルーチンを含むことができる。検証データ426は、上述したように、検証プロセス中にクライアント・デバイスによって使用される暗号化および復号されたデータを含むことができる。オペレーティング・システム428は、システム全体の機能を提供することができる。
【0022】
図4に示すように、本通信システムおよび方法は、マルチ・プロセッサ、マルチ・タスク、マルチ・プロセス、またはマルチ・スレッド・コンピューティング、あるいはその組合せを提供するシステム上での実装、ならびにシングル・プロセッサ、シングル・スレッド・コンピューティングのみを提供するシステム上での実装を含むことができる。マルチ・プロセッサ・コンピューティングは、2つ以上のプロセッサを使用してコンピューティングを実行することを含む。マルチ・タスク・コンピューティングは、2つ以上のオペレーティング・システム・タスクを使用してコンピューティングを実行することを含む。タスクは、実行されているプログラムとオペレーティング・システムによって使用されるブック・キーピング情報との組合せを指すオペレーティング・システムの概念である。プログラムが実行されるたびに、オペレーティング・システムは、そのプログラムための新しいタスクを作成する。タスクは、タスク番号でプログラムを識別し、他のブック・キーピング情報をそのプログラムに添付するという点で、プログラムの封筒のようなものである。Linux、UNIX(R)、OS/2(R)、およびWindows(R)を含む多くのオペレーティング・システムは、同時に多くのタスクを実行することができ、マルチ・タスク・オペレーティング・システムと呼ばれる。マルチ・タスクは、オペレーティング・システムが同時に2つ以上の実行ファイルを実行する機能である。各実行ファイルは、それ自体のアドレス空間で実行され、これは、実行ファイルには、それらのメモリを共有するやり方がないことを意味する。これは、どのプログラムも、システム上で実行されている他のいずれのプログラムの実行も損なうことが不可能であるため、利点を有する。しかしながら、プログラムには、オペレーティング・システムを介する(またはファイル・システムに記憶されているファイルを読み取ることによる)以外には情報を交換するやり方がない。マルチ・プロセス・コンピューティングは、タスクおよびプロセスという用語がしばしば交換可能に使用されるため、マルチ・タスク・コンピューティングに似ているが、一部のオペレーティング・システムでは2つを区別している。
【0023】
本発明は、任意の可能な技術的詳細レベルの統合におけるシステム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体を含むことができる。コンピュータ可読記憶媒体は、命令実行デバイスが使用するための命令を保持し、記憶することができる有形のデバイスとすることができる。
【0024】
コンピュータ可読記憶媒体は、例えば、限定されることなく、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または前述の任意の適切な組合せであってもよい。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、パンチ・カード、または命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、および前述の任意の適切な組合せが含まれる。本明細書で使用されるようなコンピュータ可読記憶媒体は、電波または他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を通って伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通して送信される電気信号などの、それ自体一過性の信号であると解釈されるべきではない。
【0025】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいはネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークまたはワイヤレス・ネットワークあるいはその組合せを介して外部コンピュータもしくは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組合せを含むことができる。各コンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令をそれぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するために転送する。
【0026】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、またはSmalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは同様のプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで記述されたソース・コードまたはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンド・アローンのソフトウェア・パッケージとして、部分的にユーザのコンピュータ上でおよび部分的に遠隔コンピュータ上で、あるいは完全に遠隔コンピュータまたはサーバ上で実行されてもよい。後者のシナリオでは、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、あるいは(例えばインターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに接続されてもよい。一部の実施形態では、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人専用にすることによって、コンピュータ可読プログラム命令を実行することができる。
【0027】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照して本明細書に記載されている。流れ図またはブロック図あるいはその両方の各ブロック、ならびに流れ図またはブロック図あるいはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実施することができることを理解されよう。
【0028】
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、専用コンピュータまたは他のプログラマブル・データ処理装置のプロセッサに提供されて、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、流れ図またはブロック図あるいはその両方のブロックにおいて指定された機能/行為を実施するための手段を作成するように、機械を生成することができる。これらのコンピュータ可読プログラム命令は、内部に命令が記憶されたコンピュータ可読記憶媒体が、流れ図またはブロック図あるいはその両方のブロックで指定された機能/行為の態様を実施する命令を含む製品を含むように、コンピュータ、プログラマブルなデータ処理装置、または他のデバイスあるいはその組合せを特定のやり方で機能させるように指示することができるコンピュータ可読記憶媒体にも記憶することができる。
【0029】
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、流れ図またはブロック図あるいはその両方のブロックで指定された機能/行為を実施するように、一連の動作ステップをコンピュータ、他のプログラマブル装置、または他のデバイス上で実行させてコンピュータ実施プロセスを生成することができる。
【0030】
図の流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施態様のアーキテクチャ、機能、および動作を示す。この点に関して、流れ図またはブロック図の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の一部を表すことができる。一部の代替の実施態様では、ブロックに記載された機能は、図に記載された順序とは異なって行われてもよい。例えば、連続して示されている2つのブロックは、実際には、実質的に同時に実行されることがあり、またはブロックは、関与する機能に応じて、時には逆の順序で実行されることがある。ブロック図または流れ図あるいはその両方の各ブロック、およびブロック図または流れ図あるいはその両方のブロックの組合せは、指定された機能または行為を実行する、あるいは専用ハードウェアおよびコンピュータ命令の組合せを実行する専用のハードウェア・ベースのシステムによって実施することができることにも留意されたい。
【0031】
本発明の具体的な実施形態を説明したが、当業者は、説明した実施形態と同等の他の実施形態があることを理解するであろう。したがって、本発明は、具体的な図示された実施形態によって限定されるべきではなく、添付の特許請求の範囲によってのみ限定されるべきであることを理解されたい。