(57)【要約】      （修正有）【課題】生体認証システムで安全、強力なプライバシー保証を実現する。【解決手段】ユーザーは誤り訂正符号及び行列を含む初期化データを送信し、変換された登録生体情報テンプレート、登録ユーザー識別子、及びハッシュ化された登録コードを含む登録データを受け取る。変換された登録生体情報テンプレートは、誤り訂正符号から選択された登録コードワードに基づいて求められ、ハッシュ化された登録コードワードは、行列を使用して登録コードワードをハッシュ化することにより求められ、登録ユーザー識別子は、変換された登録生体情報テンプレートによって表されたユーザーと関連付けられる。【選択図】図１Ａ
2015226323.tif 000002
【特許請求の範囲】
【請求項１】
誤り訂正符号及び行列を含む初期化データを送信し、
変換された登録生体情報テンプレート、登録ユーザー識別子、及びハッシュ化された登録コードワードのうちの一つまたは複数を含む登録データを受け取る、
ことを含む方法であって、
前記変換された登録生体情報テンプレートは、前記誤り訂正符号から選択された登録コードワードに基づいて求められ、
前記ハッシュ化された登録コードワードは、前記行列を使用して前記登録コードワードをハッシュ化することにより求められ、
前記登録ユーザー識別子は、前記変換された登録生体情報テンプレートによって表された第１のユーザーと関連付けられている、方法。
【請求項２】
前記誤り訂正符号は、線形誤り訂正符号を有する請求項１に記載の方法。
【請求項３】
前記行列は、前記ハッシュ化された登録コードワードの決定に使用するために構成された最大階数(0,1)行列を有する請求項１に記載の方法。
【請求項４】
前記変換された登録生体情報テンプレートは、前記第１のユーザーの生体情報データを表す登録生体情報テンプレートのワンタイムパッドを有する請求項１に記載の方法。
【請求項５】
変換された認証生体情報テンプレート、認証ユーザー識別子、及びハッシュ化された認証コードワードのうちの一つまたは複数を含む認証データを受け取ることをさらに含み、
前記変換された認証生体情報テンプレートは、前記誤り訂正符号から選択された認証コードワードに基づいて求め、
前記ハッシュ化された認証コードワードは、前記行列を使用して前記認証コードワードをハッシュ化することにより求められ、
前記認証ユーザー識別子は、前記変換された認証生体情報テンプレートによって表された第２のユーザーと関連付けられており、且つ、前記認証ユーザー識別子は、前記第２のユーザーが前記第１のユーザーであると称していることを示す、請求項１に記載の方法。
【請求項６】
前記認証ユーザー識別子を使用して前記登録データのコンポーネントを取得し、
前記登録データの前記取得したコンポーネント及び前記認証データのコンポーネントを分析して前記登録データの前記取得したコンポーネントと前記認証データの前記コンポーネント間の一致度合を判定し、
前記登録データの前記取得したコンポーネントが、前記認証データの前記コンポーネントと略一致するかどうかに基づいて認証するか否かを判定する、
ことをさらに含む請求項５に記載の方法。
【請求項７】
システムであって、
プロセッサと、
前記プロセッサに通信可能に結合されると共に命令を保存するメモリであって、
前記命令は、前記プロセッサによって実行された際に、前記システムに、
誤り訂正符号及び行列を含む初期化データを送信させ、
変換された登録生体情報テンプレート、登録ユーザー識別子、及びハッシュ化された登録コードワードのうちの一つまたは複数を含む登録データを受け取らせる、メモリと、
を有し、
前記変換された登録生体情報テンプレートは、前記誤り訂正符号から選択された登録コードワードに基づいて求められ、
前記ハッシュ化された登録コードワードは、前記行列を使用して前記登録コードワードをハッシュ化することにより求められ、
前記登録ユーザー識別子は、変換された登録生体情報テンプレートによって表された第１のユーザーと関連付けられている、システム。
【請求項８】
前記誤り訂正符号は、線形誤り訂正符号を有する請求項７に記載のシステム。
【請求項９】
前記行列は、前記ハッシュ化された登録コードワードを求めるための使用のために構成された最大階数(0,1)行列を有する請求項７に記載のシステム。
【請求項１０】
前記変換された登録生体情報テンプレートは、前記第１のユーザーの生体情報データを表す登録生体情報テンプレートのワンタイムパッドを有する請求項７に記載のシステム。
【請求項１１】
前記メモリは、前記プロセッサによって実行された際に、前記システムに、
変換された認証生体情報テンプレート、認証ユーザー識別子、及びハッシュ化された認証コードワードのうちの一つまたは複数を含む認証データを受け取らせる命令をさらに保存し、
前記変換された認証生体情報テンプレートは、前記誤り訂正符号から選択された認証コードワードに基づいて求められ、
前記ハッシュ化された認証コードワードは、前記行列を使用して前記認証コードワードをハッシュ化することにより求められ、
前記認証ユーザー識別子は、前記変換された認証生体情報テンプレートによって表された第２のユーザーと関連付けられており、且つ、前記認証ユーザー識別子は、前記第２のユーザーが前記第１のユーザーであると称していることを示す、請求項７に記載のシステム。
【請求項１２】
前記メモリは、前記プロセッサによって実行された際に、前記システムに、
前記認証ユーザー識別子を使用して前記登録データのコンポーネントを取得させ、
前記登録データの前記取得したコンポーネントと前記認証データのコンポーネントを分析して前記登録データの前記取得したコンポーネントと前記認証データの前記コンポーネント間の一致度合を判定させ、
前記登録データの前記取得したコンポーネントが、前記認証データの前記コンポーネントと略一致するかどうかに基づいて認証するか否かを判定させる命令をさらに保存する請求項１１に記載のシステム。
【請求項１３】
誤り訂正符号及び行列を含む初期化データを受け取り、
登録生体情報テンプレートと登録ユーザー識別子のうちの一つまたは複数を含む登録入力を受け取り、前記登録生体情報テンプレートは、前記登録ユーザー識別子によって識別された第１のユーザーの一つまたは複数の一意の特徴を表し、
前記誤り訂正符号に基づいて登録コードワードを求め、
前記登録生体情報テンプレート及び前記登録コードワードに基づいて変換された登録生体情報テンプレートを求め、
前記行列を使用して前記登録コードワードをハッシュ化して、ハッシュ化された登録コードワードを形成する、
ことを含む方法。
【請求項１４】
前記変換された登録生体情報テンプレート、前記ハッシュ化された登録コードワード、及び前記登録ユーザー識別子のうちの一つまたは複数を含む登録データを送信することをさらに含む、請求項１３に記載の方法。
【請求項１５】
前記誤り訂正符号は、線形誤り訂正符号を有する請求項１３に記載の方法。
【請求項１６】
前記変換された登録生体情報テンプレートは、前記第１のユーザーの生体情報データを表す前記登録生体情報テンプレートのワンタイムパッドを有する請求項１３に記載の方法。
【請求項１７】
認証生体情報テンプレートと認証ユーザー識別子のうちの一つまたは複数を含む認証入力を受け取り、前記登録生体情報テンプレートは、前記認証ユーザー識別子によって識別された第２のユーザーの一つまたは複数の一意の特徴を表し、前記認証ユーザー識別子は、前記第２のユーザーが前記第１のユーザーであると称していることを示し、
前記誤り訂正符号に基づいて認証コードワードを求め、
前記認証生体情報テンプレート及び前記認証コードワードに基づいて変換された認証生体情報テンプレートを求め、
前記行列を使用して前記認証コードワードをハッシュ化して、ハッシュ化された認証コードワードを形成する、
ことをさらに含む、請求項１３に記載の方法。
【請求項１８】
前記変換された認証生体情報テンプレート、前記ハッシュ化された認証コードワード、及び前記認証ユーザー識別子のうちの一つまたは複数を含む認証データを送信することをさらに含む、請求項１７に記載の方法。
【請求項１９】
前記行列は、前記ハッシュ化された登録コードワード及び前記ハッシュ化された認証コードワードを求めるように構成された最大階数(0,1)行列を有する請求項１７に記載の方法。
【請求項２０】
前記変換された認証生体情報テンプレートは、前記第２のユーザーの生体情報データを表す前記認証生体情報テンプレートのワンタイムパッドを有する、請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に記述されている実施形態は、誤り訂正符号に基づいたプライバシーを保護する生体認証に関する。
【背景技術】
【０００２】
電子装置及びサービスにとってセキュリティが重要になっている。セキュリティの重要性の増大に伴って、革新的な人々は、新しいまたは異なる形態の認証に注目している。生体認証が、認証の一形態に含まれよう。生体認証は、一意の生体情報特徴を介してユーザーの身元を計測及び認証することを含んでもよい。一意の生体情報特徴は、ユーザーの指紋、虹彩、静脈、ＤＮＡなどのうちの一つまたは複数を含んでもよい。生体認証は、パスワードを記憶する必要性なしにユーザーの認証が可能になるという利点を有している。
【発明の概要】
【課題を解決するための手段】
【０００３】
一実施形態の一態様によれば、方法は、誤り訂正符号及び行列を含む初期化データを送信することを含む。また、方法は、変換された登録生体情報テンプレート、登録ユーザー識別子、及びハッシュ化された登録コードのうちの一つまたは複数を含む登録データを受け取ることも含む。変換された登録生体情報テンプレートは、誤り訂正符号から選択された登録コードワードに基づいて求められてもよい。ハッシュ化された登録コードワードは、行列を使用して登録コードワードをハッシュ化することにより求められてもよい。登録ユーザー識別子は、変換された登録生体情報テンプレートによって表された第１のユーザーと関連付けられていてもよい。
【０００４】
実施形態の目的及び利点は、少なくとも、請求項において具体的に指摘されている要素、特徴、及び組合せにより、実現及び達成されることになる。
【０００５】
上述の一般的な説明と以下の詳細な説明は、いずれも、例示及び説明を目的としたものであり、且つ、特許請求されている本発明を限定するためのものではないことを理解されたい。
【０００６】
添付図面を使用し、例示用の実施形態についてさらなる具体性及び詳細を伴って記述及び説明することとする。
【図面の簡単な説明】
【０００７】
【図１Ａ】例示の生体認証システムのブロックダイアグラムである。
【図１Ｂ】ユーザー認証に使用される例示のデータのブロックダイアグラムである。
【図１Ｃ】例示の生体認証システムによって提供される例示の認証規則及びプライバシー保証のブロックダイアグラムである。
【図１Ｄ】クライアントモジュールまたは認証モジュールを実装して誤り訂正符号に基づく生体認証を提供しうる例示の稼働環境のブロックダイアグラムである。
【図２】誤り訂正符号に基づいて生体認証を提供する例示のシステムのブロックダイアグラムである。
【図３】誤り訂正符号に基づく生体認証のためにユーザーを登録する方法の例示のフローチャートである。
【図４】誤り訂正符号に基づいてユーザーの生体認証を提供する方法の例示のフローチャートである。
【発明を実施するための形態】
【０００８】
本明細書に記述されている実施形態は、誤り訂正符号に基づいた生体認証の提供に関する。
【０００９】
生体認証において、ユーザーは、ユーザーの生体情報特徴を変更することができないであろう。例えば、ユーザーは、ユーザーの一つまたは複数の一意の特徴（例えば、指紋や虹彩パターンなど）を表す生体情報データ(biometric data)を含む生体情報テンプレート(biometric template)を登録してもよい。その生体情報テンプレートが危険に晒され、且つ、ユーザーがその生体情報テンプレートによって表されている一意の特徴を変更できない場合には、生体認証は、そのユーザーにとって効果のないものとなろう。この理由から、生体認証システムは、強力なプライバシー保証を必要としている。
【００１０】
生体認証システム用の強力なプライバシー保証の提供を試みているシステムは存在する。残念ながら、これらのシステムは、多数の欠点を有する。
【００１１】
このようなシステムの一つは、「特徴変換方式」と呼ばれることがある。このシステムは、クライアント固有のキーまたはパスワードを使用して生体情報データをランダムデータに変換する。但し、このアプローチは、クライアント固有のキーが危険に晒された場合に、安全ではないであろう。
【００１２】
別のシステムは、「生体情報暗号システム方式」と呼ばれることがある。この方式は、ファジーボールト及びファジーコミットメント方式を使用する。また、セキュアスケッチを使用する方式も存在する。これらのシステムは、オリジナルの生体情報テンプレートに関する情報を漏洩しない変換された生体情報テンプレートをもたらすことになる。但し、これらのシステムは、真にプライベートなものではなく、その理由は、ユーザーが、認証プロセスにおいて、自身の未変換の生体情報テンプレートを認証サーバーに送信する必要があり、この結果、未変換の生体情報テンプレートが危険に晒された状態に留まっているからである。
【００１３】
最後のシステムは、「準同型暗号方式」と呼ばれることがある。このアプローチは、準同型暗号を使用したユーザーの生体情報テンプレートの保護を試みる。但し、これらのシステムは、欠点を有する場合があり、その理由は、生体情報テンプレートが、認証者のパブリックキーを使用して暗号化される場合があるからである。この結果、未加工生体情報テンプレートが認証サーバーに漏洩することになる。
【００１４】
これらの及びその他のシステムの欠点は、誤り訂正符号に基づいた生体認証を使用することにより克服される。図１Ａを参照してさらに詳細に後述するように、生体認証システムは、クライアントと認証サーバーとを含んでもよい。認証サーバーは、生体認証サービスを提供してもよい。認証サーバーは、クライアントのユーザーが認証サーバーによって提供される生体認証サービスにアクセス可能となるように、そのユーザーが認証サーバーに登録する登録プロセスを開始してもよい。誤り訂正符号（Error Correction Code:ECC）及び行列が、ユーザーが操作しているクライアント装置に提供されてもよい。ECCは、線形誤り訂正符号方式または任意の他の誤り訂正符号方式であってもよい。ユーザーのクライアント装置がECC及び行列を受け取る。クライアントのユーザーが、生体情報テンプレート及びユーザー識別子についての登録入力をクライアントに提供する。
【００１５】
添付図面を参照し、本発明の実施形態について説明する。
【００１６】
図１Ａは、本明細書に記述されている少なくとも一つの実施形態に従って構成された例示の生体認証システム１００のブロックダイアグラムである。生体認証システム１００は、クライアント１０２と認証サーバー１４０とを含んでもよい。クライアント１０２は、一つまたは複数のユーザー１０６Ａ、１０６Ｂ（集合的に「一つまたは複数のユーザー１０６」と呼ばれ、個別に「一つのユーザー１０６Ａまたは一つのユーザー１０６Ｂ」と呼ばれる）によってアクセス可能であってもよい。ユーザー１０６は、クライアント１０２の人間のユーザーまたは生体情報特徴を有する非人間のユーザーを含んでもよい。ユーザー１０６は、クライアント１０２を使用して認証サーバー１４０にアクセスしてもよい。例えば、ユーザー１０６Ａは、クライアント１０２を使用して、認証サーバー１４０の認証モジュール１０８によって提供される生体認証サービスにアクセスしてもよい。ユーザー１０６は、異なる時点においてクライアント１０２にアクセスする同一の人間または異なる人間を含んでもよい。後述するように、認証サーバー１４０は、生体認証サービスを提供してもよい。生体認証サービスを使用し、ユーザー１０６が同一人物であるか、または異なる人物であるかを判定してもよい。
【００１７】
認証サーバー１４０は、プロセッサに基づいた演算装置を含んでもよい。例えば、認証サーバー１４０は、ハードウェアサーバー装置を含んでもよく、あるいは、サーバーとして機能するように構成された任意の他のプロセッサに基づいた演算装置を含んでもよい。
【００１８】
認証サーバー１４０は、認証モジュール１０８を含む。認証モジュール１０８は、生体認証サービスを提供するように構成されたコード及びルーチンを含んでもよい。認証モジュール１４０は、認証サーバー１４０の、あるいは、認証サーバーからアクセス可能である、メモリまたは他のコンピュータ可読媒体に保存されてもよい。認証モジュール１４０は、本明細書に記述されている動作のうちの一つまたは複数を実行するべく、認証サーバー１４０のプロセッサによって実行可能であってもよい。認証モジュール１０８については、図１Ａ〜図４を参照してさらに詳細に後述することとする。
【００１９】
クライアント１０２は、プロセッサに基づいた演算装置を含んでもよい。例えば、クライアント１０２は、携帯電話機、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、セットトップボックス、または接続された装置（例えば、スマートウォッチ、スマート眼鏡、スマート歩数計、または任意の他の接続された装置）を含んでもよい。
【００２０】
クライアント１０２は、クライアントモジュール１１０と、一つまたは複数のセンサ１９８とを含んでもよい。センサ１９８は、クライアント１０２に通信可能に結合されたハードウェア装置を含んでもよい。あるいは、センサ１９８は、クライアント１０２のコンポーネントを含んでもよい。クライアントモジュール１１０は、クライアント１０２の、あるいは、クライアント１０２からアクセス可能である、メモリまたは他のコンピュータ可読媒体に保存されたコード及びルーチンを含んでもよい。クライアントモジュール１１０は、本明細書に記述されている動作のうちの一つまたは複数を実行するべく、クライアント１０２のプロセッサによって実行可能であってもよい。
【００２１】
いくつかの実施形態においては、認証モジュール１０８は、クライアントモジュール１１０の機能のうちの幾つか、または全てを提供するように構成されている。いくつかの実施形態においては、認証モジュール１０８またはクライアントモジュール１１０は、フィールドプログラム可能ゲートアレイ（Field-Programmable Gate Array:FPGA）またはアプリケーション固有集積回路（Application-Specific Integrated Circuit:ASIC）を含むハードウェアを使用して実装されてもよい。いくつかの他の例においては、認証モジュール１０８またはクライアントモジュール１１０は、ハードウェア及びソフトウェアの組合せを使用して実装されてもよい。従って、認証モジュール１０８またはクライアントモジュール１１０は、ハードウェア装置として実装されてもよい。
【００２２】
クライアント１０２は、センサ１９８を含んでもよい。図１Ａには、一つのセンサ１９８しか示されていないが、より一般的には、クライアント１０２は、一つまたは複数のセンサ１９８を含んでもよい。センサ１９８は、ユーザー１０６の一つまたは複数の生体情報特徴を計測するように構成されたハードウェア装置を含んでもよい。計測値は、生体情報計測値を含んでもよい。生体情報計測値は、ユーザー１０６の一意の特徴を表し得る。例えば、センサ１９８は、指紋スキャナ、虹彩の画像をキャプチャするように構成されたカメラ、ユーザー１０６のＤＮＡを計測するように構成された装置、ユーザー１０６の心拍数をキャプチャするように構成された心拍数モニタ、ユーザー１０６の骨格筋によって生成される電気的活動をキャプチャするように構成された着用可能な筋電図センサ、またはユーザー１０６と関連付けられた生体情報計測値をキャプチャするように構成された任意の他のセンサ１９８を含んでもよい。
【００２３】
クライアントモジュール１１０は、センサから生体情報計測値を受け取ると共にユーザー１０６と関連付けられた生体情報テンプレートデータを判定するように構成されたコード及びルーチンを含んでもよい。生体情報テンプレートデータは、ユーザー１０６の一つまたは複数の一意の生体情報特徴を表す情報を含んでもよい。例えば、生体情報テンプレートデータは、生体情報計測値に含まれている一つまたは複数の一意の特徴のデジタル基準を含んでもよい。
【００２４】
認証モジュール１０８によって提供される生体認証サービスは、（１）登録プロセスと、（２）認証プロセスとを含んでもよい。以下、一実施形態に従って、認証モジュール１０８によって提供される生体認証サービスの登録プロセスについて説明する。
【００２５】
図１Ａの要素１８９及び１９７を参照すれば、認証モジュール１０８によって提供される生体認証サービスの登録プロセスが開始されてもよい。認証サーバー１４０は、初期化データ１９７を送信してもよい（１９９）。初期化データ１９７は、誤り訂正符号（ECC）と行列とを含んでもよい。
【００２６】
ECCは、線形誤り訂正方式を含んでもよい。ECCは、図１Ａのシンボル「C」によって表されてもよい。
【００２７】
行列は、図１Ａのシンボル「R」によって表されてもよい。行列は、任意の次元を有する最大階数行列を含んでもよい。例えば、行列は、次元「m×n」の任意の最大階数(0,1)行列を含んでもよく、ここで、「m<k」である。ここで、シンボル「m」は、行列の行を表してもよく、シンボル「n」は、行列の列を表してもよく、且つ、シンボル「k」は、行列と関連付けられた整数を表してもよい。行列は、射影行列を含んでもよい。
【００２８】
クライアント１０２は、初期化データ１９７を受け取ってもよい（１９９）。また、クライアント１０２は、ユーザー１０６から登録入力１９３を受け取ってもよい（１９５）。例えば、図１Ａは、ユーザー１０６Ａから登録入力１９３を受け取るクライアント１０２を示している。登録入力１９３は、ユーザー１０６の身元の指標を含んでもよい。登録プロセスにおいて受け取られた（１９５）ユーザー１０６の身元の指標は、「登録ユーザーＩＤ」と呼称されてもよい。また、登録入力１９３は、ユーザー１０６の一意の特徴と関連付けられた生体情報計測値を表す生体情報テンプレートを含んでもよい。登録プロセスにおいて受け取られた１９５生体情報テンプレートは、「登録生体情報テンプレート」と呼称されることがある。
【００２９】
クライアントモジュール１１０は、初期化データ１９７を使用して登録生体情報テンプレートを処理し、登録生体情報テンプレート、ECC、及び／または行列に基づいて変換された生体情報テンプレートを求めてもよい。例えば、クライアントモジュール１１０は、ＥＣＣからランダムコードワードを選択してもよい。少なくとも一つの実施形態においては、ユーザー１０６は、ECCからランダムコードワードを選択するべく、クライアントモジュール１１０に対して入力を提供してもよい。他の実施形態においては、ランダムコードワードは、クライアントモジュール１１０またはユーザー１０６によってECC方式から任意に選択されてもよい。ランダムコードワードは、図１Ａのシンボル「c」（例えば、要素１８９のシンボル「c」）によって表されてもよい。クライアントモジュール１１０は、ランダムコードワードを使用して変換された生体情報テンプレートを生成してもよい。例えば、クライアントモジュール１１０は、ランダムコードワードを使用し、登録入力１９３に含まれる登録生体情報テンプレートのワンタイムパッドを生成してもよい。この結果、生体認証サービスのためにユーザー１０６を登録するべく使用される登録生体情報テンプレートが暗号化されてもよく、且つ、ランダムコードワードについて知らないだれかによって発見不能とされてもよい。登録プロセスにおいてクライアントモジュール１１０によって生成される変換された生体情報テンプレートは、「変換された登録生体情報テンプレート」と呼称されることがある。
【００３０】
また、クライアントモジュール１１０は、行列を使用してランダムコードワードのハッシュを求めてもよい。例えば、行列は、射影行列であってもよく、且つ、クライアントモジュール１１０は、射影行列を使用してランダムコードワードのハッシュを求める。登録プロセスにおいて使用されるランダムコードワードのハッシュは、「ハッシュ化された登録コードワード」と呼称されることがある。
【００３１】
クライアント１０２は、登録データ１８９を認証サーバー１４０に送信してもよい（１９１）。登録データ１８９は、変換された登録生体情報テンプレート、登録ユーザーＩＤ、及びハッシュ化された登録コードワードのうちの一つまたは複数を含んでもよい。ランダムコードワードは、ハッシュ化されてもよく、且つ、変換された登録生体情報テンプレートは、登録生体情報テンプレートのワンタイムパッドであってもよいので、認証サーバー１４０は、ユーザー１０６Ａのランダムコードワードまたは登録生体情報テンプレートに関する情報をほとんど有していないであろう。ECCを使用した登録生体情報テンプレートのワンタイムパッドの生成は、生体情報データを収集する際にノイズ及び他の要因によって生成される誤りが低減されるというさらなる利益を含む。
【００３２】
認証モジュール１０８は、登録データ１８９を認証サーバー１４０のメモリに保存してもよい。例えば、変換された登録生体情報テンプレート及びハッシュ化された登録コードワードのうちの一つまたは複数が、登録ユーザーＩＤと関連付けられてもよく、且つ、認証サーバー１４０のメモリに保存されてもよい。
【００３３】
以下、一実施形態に従って、認証モジュール１０８によって提供される生体認証サービスの認証プロセスについて説明する。
【００３４】
クライアント１０２は、認証入力１８５を受け取ってもよい（１８７）。例えば、クライアント１０２は、ユーザー１０６Ａであると称しているユーザー１０６Ｂから認証入力１８５を受け取る（１８７）。ユーザー１０６Ａは、上述のように、認証モジュール１０８によって提供される認証サービスに登録されてもよい。生体認証サービスは、認証入力１８５と関連付けられているユーザー１０６Ｂが、登録入力１９３と関連付けられているユーザー１０６Ａと同一であるかどうかを判定するように構成されてもよい。
【００３５】
ユーザー１０６Ｂによって提供された認証入力１８５は、ユーザー１０６Ｂの身元の指標と、ユーザー１０６Ｂの一意の生体情報特徴を表す生体情報テンプレートとを含んでもよい。認証プロセスにおいて受け取られた（１８７）ユーザー１０６Ｂの身元の指標は、「認証ユーザーＩＤ」と呼称されてもよい。同様に、認証プロセスにおいて受け取られた（１８７）生体情報データは、「認証生体情報テンプレート」と呼ばれることがある。
【００３６】
クライアントモジュール１１０は、初期化データ１９７を使用して認証生体情報テンプレートを処理し、認証生体情報テンプレート、ECC、及び／または行列に基づいて変換された生体情報テンプレートを求めてもよい。例えば、クライアントモジュール１１０は、ECCからランダムコードワードを選択する。少なくとも一つの実施形態において、ユーザー１０６は、ECCからランダムコードワードを選択するべく、入力をクライアントモジュール１１０に提供してもよい。他の実施形態においては、ランダムコードワードは、クライアントモジュール１１０またはユーザー１０６によってECCから任意に選択されてもよい。認証プロセスにおいて選択されたランダムコードワードは、図１Ａのシンボル「c'」（例えば、要素１８１のシンボル「c'」）によって表されてもよい。クライアントモジュール１１０は、ランダムコードワードを使用して変換された生体情報テンプレートを生成してもよい。例えば、クライアントモジュール１１０は、ランダムコードワードを使用し、認証入力１８５に含まれる認証生体情報テンプレートのワンタイムパッドを生成してもよい。認証プロセスにおいてクライアントモジュール１１０によって生成された変換された生体情報テンプレートは、「変換された認証生体情報テンプレート」と呼称されることがある。また、クライアントモジュール１１０は、行列を使用してランダムコードワードのハッシュを求めてもよい。認証プロセスにおいて使用されるランダムコードワードのハッシュは、「ハッシュ化された認証コードワード」と呼称されることがある。
【００３７】
クライアント１０２は、認証データ１８１を認証サーバー１４０に送信してもよい（１８３）。認証データ１８１は、変換された認証生体情報テンプレート、認証ユーザーＩＤ、及びハッシュ化された認証コードワードのうちの一つまたは複数を含んでもよい。
【００３８】
認証モジュール１０８は、認証データ１８１を認証サーバー１４０のメモリ上に保存してもよい。認証モジュール１０８は、認証データ１８１を分析し、それが認証サーバー１４０によって保存されている登録データ１８９と一致または略一致するか否かを判定してもよい。
【００３９】
いくつかの実施形態においては、変換された認証生体情報テンプレートと変換された登録生体情報テンプレート間の一致は、認証入力１８５を提出したユーザー１０６を認証モジュール１０８が認証するために、完全なものである必要はない。例えば、認証モジュール１０８は、変換された認証生体情報テンプレートの一つまたは複数のコンポーネントが既定の許容範囲内において変換された登録生体情報テンプレートの一つまたは複数のコンポーネントと一致していることを必要とするように構成されてもよい。後程、図１Ｂを参照し、一例について説明する。
【００４０】
認証サーバー１４０は、認証決定１７７をクライアント１０２に送信し、これにより、ユーザー１０６Ｂが認証されたかどうかを通知してもよい（１７９）。
【００４１】
図１Ｂは、ユーザー認証に使用される例示のデータ１９０のブロックダイアグラムである。図１Ｂについては、図１Ａを参照して説明することとする。
【００４２】
要素１６９は、登録プロセスにおいて受け取られた登録生体情報テンプレートの一例とすることができる。例えば、クライアント１０２は、登録生体情報テンプレート１６９を含む登録入力１９３を受け取る（１９５）。
【００４３】
図１Ｂは、様々なシンボルを示している。いくつかの実装形態においては、シンボル「n」は、生体情報テンプレートの長さをビットを単位として表してもよい。シンボル「x」は、登録フェーズにおいて計測されたnビットの生体情報テンプレートを表してもよい。シンボル「x'」は、認証フェーズにおいて計測されたnビットの生体情報テンプレートを表してもよい。シンボル「h1」は、シンボル「c」によって表される任意のランダムコードワードを介してワンタイムパッドを適用した後の「x」の変換されたバージョンを表してもよい。シンボル「h2」は、シンボル「c」によって表されるランダムコードワードのハッシュを表してもよい。シンボル「m」は、シンボル「c」によって表されるランダムコードワードのハッシュのビット長を表してもよい。いくつかの実装形態においては、シンボル「h'1」は、シンボル「c'」によって表される任意のランダムコードワードを介してワンタイムパッドを適用した後の「x'」の変換されたバージョンを表してもよい。シンボル「h'2」は、シンボル「c'」によって表されるランダムコードワードのハッシュを表してもよい。
【００４４】
要素１６７は、変換された登録生体情報テンプレートの一例であってもよい。例えば、クライアントモジュール１１０は、初期化データ１９７において受け取られた（１９９）ECC及び行列のうちの一つまたは複数に基づいて変換された登録生体情報テンプレート１６７を求めている。クライアント１０２は、登録ユーザーＩＤと共に、変換された登録生体情報テンプレート１６７を認証サーバー１４０に送信してもよい（１９１）。認証サーバー１４０は、登録入力１９３を提出した（１９５）ユーザー１０６Ａに対応する関連付けられた登録ユーザーＩＤと共に、変換された登録生体情報テンプレート１６７を保存してもよい。要素１６５は、認証プロセスにおいて受け取られる認証生体情報テンプレート１６５の一例であってもよい。例えば、クライアント１０２は、認証生体情報テンプレート１６５を含む認証入力１８５を受け取る（１８７）。
【００４５】
要素１６３は、変換された認証生体情報テンプレートの一例であってもよい。例えば、クライアントモジュール１１０は、初期化データ１９７において受け取られた（１９９）ECC及び行列のうちの一つまたは複数に基づいて変換された登録生体情報テンプレート１６７を求める。クライアント１０２は、第１のユーザー１０６Ａであると称している第２のユーザー１０６Ｂの認証ユーザーＩＤと共に、変換された認証生体情報テンプレート１６３を認証サーバー１４０に送信してもよい（１８３）。
【００４６】
認証モジュール１０８は、ユーザー１０６Ｂの身元の認証を試みるべく、変換された認証生体情報テンプレート１６３を分析してもよい。例えば、認証モジュール１０８は、ストレージから要素１６１を取得してもよい。要素１６１は、変換された登録生体情報テンプレートのコンポーネントであってもよい。例えば、要素１６１は、登録されたユーザー１０６Ａと関連付けられていてもよい。認証モジュール１０８は、要素１６１及び変換された認証生体情報テンプレート１６３にアクセスして要素１５９を形成してもよい。要素１５９は、変換された登録生体情報テンプレート１６７及び変換された認証生体情報テンプレート１６３のコンポーネントを含んでもよい。認証モジュール１０８は、要素１５９を誤り訂正してコードワード１５７を求めてもよい。認証モジュール１０８は、認証閾値１５５が充足された場合に、変換された登録生体情報テンプレート１６７と関連付けられているユーザー１０６Ａであるとして、変換された認証生体情報テンプレート１６３と関連付けられているユーザー１０６Ｂを認証してもよい。
【００４７】
図１Ｃは、図１Ａの生体認証システム１００などの例示の生体認証システムによって提供される例示の認証規則及びプライバシー保証１８０のブロックダイアグラムである。要素１５３は、生体認証システムのユーザーを認証するべく認証モジュール１０８によって使用される認証規則の組１５３の一例を含む。要素１５１は、生体認証システムによって提供されるプライバシー保証の一例を含む。
【００４８】
図１Ｃは、様々なシンボルを示している。いくつかの実装形態においては、シンボル「ｎ」は、生体情報テンプレートの長さをビットを単位として表してもよい。シンボル「ｘ」は、登録フェーズにおいて計測されたｎビットの生体情報テンプレートを表してもよい。シンボル「(d-1)/2」は、登録及び認証におけるその生体情報テンプレートの間の距離が「(d-1)/2」未満である場合かつその場合に限りユーザーが認証される生体認証方式の閾値を表してもよい。シンボル「m」は、シンボル「c」によって表されるランダムコードワードのハッシュのビット長を表してもよい。
【００４９】
いくつかの実装形態においては、シンボル「(d-1)/2」は、「C」によって表される線形誤り訂正符号の誤り訂正能力であってもよい（文字「C」は、大文字であり、従って、小文字「c」によって表されるランダムコードとは区別される点に留意されたい）。いくつかの実装形態においては、「(d-1)」は、「C」によって表される線形誤り訂正符号の誤り検出能力を表してもよい。シンボル「k」は、「C」によって表される線形誤り訂正符号のパラメータを表してもよい。例えば、「C」によって表される線形誤り訂正符号のエンコーディング機能は、「k」ビットのメッセージを取得してもよく、且つ、「n」ビットのコードワード「c」を出力してもよい。
【００５０】
図１Ｄは、クライアントモジュールまたは認証モジュールが誤り訂正符号に基づいて生体認証を提供するように実装されうる例示の稼働環境１６０のブロックダイアグラムである。図示の稼働環境１６０は、クライアント１０２と、クライアントモジュール１１０と、ユーザー１０６と、認証サーバー１４０と、認証モジュール１０８と、ネットワーク１０７とを含む。
【００５１】
図１Ｄは、クライアント１０２及び認証サーバー１４０に通信可能に結合された一つのネットワーク１０７を示しているが、実際には、一つまたは複数のネットワーク１０７がこれらのエンティティに通信可能に結合されてもよい。
【００５２】
ネットワーク１０７は、従来タイプのネットワーク、即ち、有線または無線ネットワークを含んでもよく、且つ／または、星形構成、トークンリング構成、またはその他の構成を含む多数の異なる構成を有してもよい。さらには、ネットワーク１０７は、ローカルエリアネットワーク（Local Area Network:LAN）、ワイドエリアネットワーク（Wide Area Network:WAN）（例えば、インターネット）、及び／または複数の装置がそれにわたって通信しうるその他の相互接続されたデータ経路を含んでもよい。いくつかの例においては、ネットワーク１０７は、ピアツーピアネットワークを含んでもよい。また、ネットワーク１０７は、様々な異なる通信プロトコルにおいてデータを送信する通信ネットワークの各部分に結合されてもよく、あるいは、これらを含んでもよい。いくつかの例においては、ネットワーク１０７は、ショートメッセージングサービス（Short Messaging Service:SMS）、マルチメディアメッセージングサービス（Multimedia Messaging Service:MMS）、ハイパーテキスト転送プロトコル（HyperText Transfer Protocol:HTTP）、直接的データ接続、WAP、電子メールなどを介したものを含むデータを送受信するためのBluetooth（登録商標）通信ネットワークまたはセルラー通信ネットワークを含む。
【００５３】
クライアント１０２、クライアントモジュール１１０、ユーザー１０６、認証サーバー１４０、及び認証モジュール１０８は、図１Ａ、図１Ｂ、及び図１Ｃとの関係において説明したものと同一であってもよく、且つ、従って、これらの説明は、ここでは、省略することとする。図１Ａ〜図１Ｄを組み合わせて参照すれば、クライアント１０２は、登録データ１８９及び認証データ１８１を認証サーバー１４０にネットワーク１０７を介して送信してもよい。同様に、認証サーバー１４０は、初期化データ１９７及び認証決定１７７をクライアント１０２にネットワーク１０７を介して送信してもよい。
【００５４】
図２は、本明細書に記述されている少なくとも一つの実施形態に従って構成された誤り訂正符号に基づいて生体認証を提供する例示のシステム２００のブロックダイアグラムである。図２のシステム２００は、図１Ａ〜図１Ｄを参照して上述した認証サーバー１４０の一例であってもよい。
【００５５】
システム２００は、処理装置２０２と、ネットワークインターフェイス２０４と、メモリ２０６とを含んでもよい。システム２００の様々なコンポーネントは、互いにバス２２０を介して通信可能に結合されてもよい。
【００５６】
処理装置２０２は、算術論理ユニット、マイクロプロセッサ、汎用コントローラ、あるいは、演算を実行すると共に電子表示信号をディスプレイ装置に提供するなんらかのその他のプロセッサアレイを含んでもよい。処理装置２０２は、データ信号を処理し、且つ、CISC(Complex Instruction Set Computer)アーキテクチャ、RISC(Reduced Instruction Set Computer)アーキテクチャ、または命令セットの組合せを実装するアーキテクチャを含む様々な演算アーキテクチャを含んでもよい。図２は、単一の処理装置２０２しか含んでいないが、複数の処理装置２０２が含まれてもよい。その他のプロセッサ、オペレーティングシステム、センサ、ディスプレイ、及び物理的構成が可能である。
【００５７】
ネットワークインターフェイス２０４は、システム２００が図１Ｄのネットワーク１０７とともに、またはこれを通じて通信できるようにするためのハードウェアを含んでもよい。ネットワークインターフェイス２０４は、ネットワークインターフェイス２０４がその機能を提供できるように構成されたコード及びルーチンを含んでもよい。
【００５８】
メモリ２０６は、処理装置２０２によって実行されうる命令及び／またはデータを保存してもよい。命令及び／またはデータは、本明細書に記述されている技法を実行するためのコードを含んでもよい。メモリ２０６は、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory:DRAM)装置、スタティックランダムアクセスメモリ(Static Random Access Memory:SRAM)装置、フラッシュメモリ、またはなんらかのその他のメモリ装置を含んでもよい。また、いくつかの例においては、メモリ２０６は、ハードディスクドライブ、フロッピーディスクドライブ（登録商標）、CD-ROM装置、DVD-ROM装置、DVD-RAM装置、DVD-RW装置、フラッシュメモリ装置、または情報を相対的に永久的な方式で保存するなんらかのその他のマスストレージ装置を含む不揮発性メモリまたは類似の永久的ストレージ装置及び媒体をも含む。
【００５９】
図示の実施形態においては、メモリ２０６は、認証モジュール１０８と、初期化データ１９７と、登録データ１８９と、認証データ１８１と、認証決定データ１７７とを含んでもよい。システム２００のこれらのコンポーネントは、図１Ａ及び図１Ｂを参照して上述したものであり、且つ、従って、これらの説明は、ここでは、省略することとする。
【００６０】
図３は、本明細書に記述されている少なくとも一つの実施形態に従って構成された誤り訂正符号に基づいた生体認証のためにユーザーを登録する方法３００の例示のフローチャートである。いくつかの実施形態において、方法３００は、全体的にまたは部分的に、図１Ａの生体認証システム１００及び／または図２のシステム２００などのシステムにより実行されてもよい。例えば、図２の処理装置２０２は、図３の方法３００のブロックのうちの一つまたは複数で表されている機能及び動作を実行するべくメモリ２０６に保存されたコンピュータ命令を実行するように構成されてもよい。別個のブロックとして図示されているが、様々なブロックは、望ましい実装形態に応じて、さらなるブロックに分割されてもよく、さらに少ない数のブロックに組み合わせられてもよく、あるいは、省略されてもよい。方法３００については、図１Ａ、図１Ｂ、図１Ｄ、または図２を参照して説明することとする。
【００６１】
方法３００は、ブロック３０２において開始される。ブロック３０２において、初期化データが公開または送信されてもよい。例えば、認証モジュール１０８は、初期化データをクライアント１０２にネットワーク１０７を介して送信してもよい。ブロック３０４において、初期化データ１９７が受け取られてもよい。例えば、クライアント１０２が初期化データ１９７を受け取ってもよい。初期化データ１９７は、ECCと、行列とを含んでもよい。ブロック３０６において、登録入力１９３が受け取られてもよい。例えば、クライアントモジュール１１０がユーザー１０６Ａから登録入力１９３を受け取ってもよい。登録入力１９３は、登録生体情報テンプレートと、登録ユーザーＩＤとを含んでもよい。
【００６２】
ブロック３０８において、ワンタイムパッド及びコードワードプロジェクションが算出されてもよい。例えば、クライアントモジュール１１０は、登録生体情報テンプレート１６９のワンタイムパッドを求め、変換された登録生体情報テンプレート１６７を形成してもよい。また、クライアントモジュール１１０は、登録プロセスにおいて使用されたコードワードのハッシュを求めてもよい。クライアントモジュール１１０は、射影行列を使用してコードワードのハッシュを求め、ハッシュ化された登録コードワードを形成してもよい。
【００６３】
変換された登録生体情報テンプレート１６７及びハッシュ化された登録コードワードは、登録ユーザーＩＤと共に、登録データの組１８９に含まれてもよい。ブロック３１０において、登録データ１８９が送信されてもよい。例えば、登録データ１８９は、クライアントモジュール１１０によって送信されてもよい。ブロック３１２において、登録データ１８９が受け取られてもよい。例えば、認証モジュール１０８が登録データ１８９を受け取ってもよい。ブロック３１４において、登録データ１８９がメモリに保存されてもよい。例えば、認証モジュール１０８が登録データ１８９をメモリ２０６に保存してもよい。
【００６４】
本明細書に記述されているいくつかの実施形態は、図３のブロック３０２、３０４、３０６、３０８、３１０、３１２、または３１４によって示されている動作またはその変形などの図３の方法３００に含まれている動作のうちの一つまたは複数を実行するべく処理装置によって実行可能であるコンピュータ命令が保存された一時的ではないコンピュータ可読媒体を含む。一時的ではないコンピュータ可読媒体は、例えば、図２のメモリ２０６を含んでもよい。処理装置は、例えば、図２の処理装置２０２を含んでもよい。
【００６５】
図４は、本明細書に記述されている少なくとも一つの実施形態に従って構成された誤り訂正符号に基づいてユーザーの生体認証を提供する方法４００の例示のフローチャートである。ブロック４０２において、認証入力１８５が受け取られてもよい。例えば、クライアント１０２が、図１Ａに示されているように、ユーザー１０６Ａであると称しているユーザー１０６Ｂから認証入力１８５を受け取る。ユーザー１０６Ａは、例えば、図３について上述した方法３００に従って、認証モジュール１０８によって提供される認証サービスに登録されてもよい。図４の方法４００は、認証入力１８５と関連付けられているユーザー１０６Ｂが、登録入力１９３と関連付けられているユーザー１０６Ａと同一か否かを判定するように構成されてもよい。
【００６６】
ユーザー１０６Ｂによって提供された認証入力１８５は、認証ユーザーＩＤと、認証生体情報テンプレートとを含んでもよい。ブロック４０４において、ワンタイムパッド及びコードワードプロジェクションが算出される。例えば、クライアントモジュール１１０は、認証生体情報テンプレート１６５のワンタイムパッドを求め、変換された認証生体情報テンプレート１６３を形成する。また、クライアントモジュール１１０は、認証プロセスにおいて使用されるコードワードのハッシュを求めてもよい。クライアントモジュール１１０は、射影行列を使用してコードワードのハッシュを求め、ハッシュ化された認証コードワードを形成してもよい。
【００６７】
変換された認証生体情報テンプレート１６３及びハッシュ化された認証コードワードは、認証ユーザーＩＤと共に、認証データの組１８１に含まれてもよい。ブロック４０６において、認証データ１８１が送信されてもよい。例えば、認証データ１８１は、クライアントモジュール１１０によって送信されてもよい。ブロック４０８において、認証データ１８１が受け取られてもよい。例えば、認証モジュール１０８が認証データ１８１を受け取ってもよい。
【００６８】
ブロック４１０において、登録データ１８９がメモリから取得されてもよい。例えば、認証モジュール１０８が認証データ１８１から認証ユーザーＩＤを選択してもよい。認証ユーザーＩＤは、メモリ２０６に保存されている登録ユーザーＩＤに対応したものであってもよい。認証モジュール１０８は、メモリに保存されている登録ユーザーＩＤが認証ユーザーＩＤに対応するかどうかを判定してもよい。そして認証モジュール１０８は、認証ユーザーＩＤに対応する登録ユーザーＩＤと関連付けられている可能性のある登録データを取得してもよい。取得された登録データは、図１Ｂの要素１６１について上述したものなどの変換された登録生体情報テンプレートのコンポーネントを含んでもよい。
【００６９】
ブロック４１２において、ブロック４０８において受け取られた認証データとブロック４１２において取得された登録データ間において、一致度合が判定されてもよい。例えば、認証モジュール１０８が、図１Ｂを参照して上述したように認証閾値１５５が充足されているかどうか判定する。ブロック４１３において、ブロック４０８において受け取られた認証データとブロック４１２において取得された登録データ間で略一致するかどうかについて判定されてもよい。ブロック４１３の判定は、図１Ｃを参照して上述した認証規則１５３またはプライバシー保証１５１に従って認証モジュール１０８によって実施されてもよい。
【００７０】
ブロック４１３において略一致すると判定された場合には、ブロック４１４において、クライアントが認証されたという肯定的通知が送信されてもよい。例えば、認証モジュール１０８は、ユーザー１０６Ｂが認証されたことを通知する認証決定１７７を送信してもよい（１７９）。
【００７１】
ブロック４１３において略一致しないと判定された場合には、ブロック４１５において、クライアントが認証されないという否定的通知が送信されてもよい。例えば、認証モジュール１０８は、ユーザー１０６Ｂが認証されないことを通知する認証決定１７７を送信してもよい（１７９）。
【００７２】
本明細書に記述されている実施形態は、さらに詳細に後述するように、様々なコンピュータハードウェアまたはソフトウェアモージュールを含む特定目的または汎用のコンピュータの使用を含んでもよい。
【００７３】
本明細書に記述されている実施形態は、保存されたコンピュータ実行可能命令またはデータ構造を担持するまたは有するコンピュータ可読媒体を使用して実装されてもよい。このようなコンピュータ可読媒体は、汎用または特定目的コンピュータによってアクセスされうる任意の利用可能な媒体であってもよい。一例として、且つ、限定を伴うことなしに、このようなコンピュータ可読媒体は、ランダムアクセスメモリ（RAM）、読出し専用メモリ（ROM）、電子的消去可能プログラム可能読出し専用メモリ（Erasable Programmable Read-Only Memory:EEPROM）、CD-ROM（Compact Disc Read-Only Memory）、またはその他の光ディスクストレージ、磁気ディスクストレージまたはその他の磁気ストレージ装置、フラッシュメモリ装置（例えば、半導体メモリ装置）、またはコンピュータ実行可能命令またはデータ構造の形態で所望のプログラムコードを担持するまたは有するべく使用されうると共に汎用または特定目的コンピュータによってアクセスされうる任意のその他のストレージ媒体を含む一時的ではないコンピュータ可読ストレージ媒体を含んでもよい。また、上述の組合せも、コンピュータ可読媒体の範囲に含まれよう。
【００７４】
コンピュータ実行可能な命令は、例えば、汎用コンピュータ、特定目的コンピュータ、または特定目的処理装置（例えば、一つまたは複数のプロセッサ）に所定の機能または機能のグループを実行させる命令及びデータを有する。添付の請求項に定義されている主題は、構造的特徴及び／または方法的動作に固有の言語で記述されているが、主題は、必ずしも、上述の特定の特徴または動作に限定されるものではないことを理解されたい。むしろ、上述の特定の特徴及び動作は、請求項を実装する例示の形態として開示されたものである。
【００７５】
本明細書において使用されている「モジュール」または「コンポーネント」という用語は、演算システムの汎用ハードウェア（例えば、コンピュータ可読媒体や処理装置など）上において保存されうると共に／またはこれによって実行されうるモジュールまたはコンポーネント及び／またはソフトウェアオブジェクトまたはソフトウェアルーチンの動作を実行するように構成された特定のハードウェア実装を意味してもよい。いくつかの実施形態においては、本明細書に記述されている異なるコンポーネント、モジュール、エンジン、及びサービスは、演算システムにおいて稼働するオブジェクトまたはプロセスとして（例えば、別個のスレッドとして）実装されてもよい。本明細書に記述されているシステム及び方法のいくつかは、（汎用ハードウェアに保存されると共に／またはこれによって実行される）ソフトウェアとして実装されるものとして一般的に記述されているが、特定のハードウェア実装、あるいは、ソフトウェアと特定のハードウェア実装の組合せも可能であり、且つ、想定される。この説明においては、「演算エンティティ」は、本明細書において先程定義した任意の演算システムであってもよく、あるいは、演算システム上において稼働する任意のモジュールまたはモジュールの組合せであってもよい。
【００７６】
本明細書に記述されているすべての例及び条件に関する言語は、本発明と、本発明者によって当技術分野の発展に対して寄与された概念と、の読者による理解を支援するための教育的目的を意図したものであり、且つ、それらの具体的に記述されている例及び条件に対する限定を伴うものではないものと解釈することを要する。本発明の実施形態について詳細に説明したが、本発明の精神及び範囲を逸脱することなしに、これらに対して様々な変更、置換、及び変形を実施することができることを理解されたい。
【図１Ａ】
2015226323.tif 000003
【図１Ｂ】
2015226323.tif 000004
【図１Ｃ】
2015226323.tif 000005
【図１Ｄ】
2015226323.tif 000006
【図２】
2015226323.tif 000007
【図３】
2015226323.tif 000008
【図４】
2015226323.tif 000009