(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-01
(54)【発明の名称】多要素指紋認証
(51)【国際特許分類】
G09C 1/00 20060101AFI20231124BHJP
G06F 21/32 20130101ALI20231124BHJP
H04L 9/32 20060101ALI20231124BHJP
G06T 7/00 20170101ALI20231124BHJP
G06V 40/12 20220101ALI20231124BHJP
【FI】
G09C1/00 610
G06F21/32
H04L9/32 100D
G06T7/00 530
G06V40/12
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023530074
(86)(22)【出願日】2021-10-13
(85)【翻訳文提出日】2023-05-17
(86)【国際出願番号】 CN2021123644
(87)【国際公開番号】W WO2022105486
(87)【国際公開日】2022-05-27
(32)【優先日】2020-11-18
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】100104880
【氏名又は名称】古部 次郎
(74)【復代理人】
【識別番号】100118108
【氏名又は名称】久保 洋之
(72)【発明者】
【氏名】レジエ、ダニエラ
(72)【発明者】
【氏名】カラサー、ヴィジャイ
(72)【発明者】
【氏名】オコナー、ジェームス、エー
(72)【発明者】
【氏名】コソウスキー、ジョン
(72)【発明者】
【氏名】ディ、トーレ、ビビアン
【テーマコード(参考)】
5B043
【Fターム(参考)】
5B043AA09
5B043BA02
5B043FA07
5B043HA20
(57)【要約】
クライアント側多要素パスワード生成のための技術は、ユーザの指紋画像の記録の1つまたは複数の特徴をランダムに取り除き、暗号化技術を使用してユーザ入力コードと記録を結合することにより指紋画像の歪んだ記録を作成することを含み、歪んだ記録はユーザ入力コードを使用して可逆である。歪んだ記録は、ユーザの認証のために登録される。
【特許請求の範囲】
【請求項1】
ユーザの指紋画像の記録の1つまたは複数の特徴をランダムに取り除くことと、
前記指紋画像の歪んだ記録を作成することであって、前記作成することは暗号化技術を使用して前記記録をユーザ入力コードと結合することを含み、前記歪んだ記録は前記ユーザ入力コードを使用して可逆である、作成することと、
前記歪んだ記録を前記ユーザの認証のために登録することと、を含むコンピュータ実装方法。
【請求項2】
前記指紋画像の前記歪んだ記録を作成することは、前記指紋画像の前記記録を文字列に変換することと、前記ユーザ入力コードを別の文字列にデジタル化することと、前記文字列を前記別の文字列に結合することと、をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記ユーザ入力コードは保存されておらず、
前記暗号化技術は、固定形式暗号化を含む、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記ユーザによる新しい指紋入力を受信することと、
前記歪んだ記録を前記新しい指紋の新しい歪んだ記録で更新することと、をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記歪んだ記録は、所定の間隔で、前記ユーザの新しい指紋の新しい歪んだ記録で自動的に更新される、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記ユーザによる新しい指紋入力と前記ユーザ入力コードとを受信することと、
前記歪んだ記録を取り出すことと、
文字列を生成するために前記指紋画像の前記歪んだ記録を前記ユーザ入力コードで復号化することと、
前記文字列を前記指紋画像の前記記録に変換し戻すことと、
前記指紋画像の前記記録と前記新しい指紋の新しい記録とを比較することと、をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記記録が前記新しい指紋の前記新しい記録と一致する場合に、認証が成功したと判断することと、
前記記録が前記新しい指紋の前記新しい記録と一致しない場合に、認証が失敗したと判断することと、をさらに含む、請求項6に記載のコンピュータ実装方法。
【請求項8】
コンピュータ可読命令を有するメモリと、
前記コンピュータ可読命令を実行するための1つまたは複数のプロセッサであって、前記コンピュータ可読命令は、前記1つまたは複数のプロセッサに動作を実行させるように制御する、1つまたは複数のプロセッサと、を含み、前記動作は、
ユーザの指紋画像の記録の1つまたは複数の特徴をランダムに取り除くことと、
前記指紋画像の歪んだ記録を作成することであって、前記作成することは暗号化技術を使用して前記記録をユーザ入力コードと結合することを含み、前記歪んだ記録は前記ユーザ入力コードを使用して可逆である、作成することと、
前記歪んだ記録を前記ユーザの認証のために登録することと、を含むシステム。
【請求項9】
前記指紋画像の前記歪んだ記録を作成することは、前記指紋画像の前記記録を文字列に変換することと、前記ユーザ入力コードを別の文字列にデジタル化することと、前記文字列を前記別の文字列に結合することと、をさらに含む、請求項8に記載のシステム。
【請求項10】
前記ユーザ入力コードは保存されておらず、
前記暗号化技術は、固定形式暗号化を含む、請求項8に記載のシステム。
【請求項11】
前記ユーザによる新しい指紋入力を受信することと、
前記歪んだ記録を前記新しい指紋の新しい歪んだ記録で更新することと、をさらに含む、請求項8に記載のシステム。
【請求項12】
前記歪んだ記録は、所定の間隔で、前記ユーザの新しい指紋の新しい歪んだ記録で自動的に更新される、請求項8に記載のシステム。
【請求項13】
前記ユーザによる新しい指紋入力と前記ユーザ入力コードを受信することと、
前記歪んだ記録を取り出すことと、
文字列を生成するために前記指紋画像の前記歪んだ記録を前記ユーザ入力コードで復号化することと、
前記文字列を前記指紋画像の前記記録に変換し戻すことと、
前記指紋画像の前記記録と前記新しい指紋の新しい記録とを比較することと、をさらに含む、請求項8に記載のシステム。
【請求項14】
前記記録が前記新しい指紋の前記新しい記録と一致する場合に、認証が成功したと判断することと、
前記記録が前記新しい指紋の前記新しい記録と一致しない場合に、認証が失敗したと判断することと、をさらに含む、請求項13に記載のシステム。
【請求項15】
プログラム命令を実装したコンピュータ可読記憶媒体を含むコンピュータプログラム製品であって、前記プログラム命令はプロセッサによって実行可能であり、前記プロセッサに、動作を実行させ、前記動作は、
ユーザの指紋画像の記録の1つまたは複数の特徴をランダムに取り除くことと、
前記指紋画像の歪んだ記録を作成することであって、前記作成することは暗号化技術を使用して前記記録をユーザ入力コードと結合することを含み、前記歪んだ記録は前記ユーザ入力コードを使用して可逆である、作成することと、
前記歪んだ記録を前記ユーザの認証のために登録することと、を含むコンピュータプログラム製品。
【請求項16】
前記指紋画像の前記歪んだ記録を作成することは、前記指紋画像の前記記録を文字列に変換することと、前記ユーザ入力コードを別の文字列にデジタル化することと、前記文字列を前記別の文字列に結合することと、をさらに含む、請求項15に記載のコンピュータプログラム製品。
【請求項17】
前記ユーザ入力コードは保存されておらず、
前記暗号化技術は、固定形式暗号化を含む、請求項15に記載のコンピュータプログラム製品。
【請求項18】
前記ユーザによる新しい指紋入力を受信することと、
前記歪んだ記録を前記新しい指紋の新しい歪んだ記録で更新することと、をさらに含む、請求項15に記載のコンピュータプログラム製品。
【請求項19】
前記歪んだ記録は、所定の間隔で、前記ユーザの新しい指紋の新しい歪んだ記録で自動的に更新される、請求項15に記載のコンピュータプログラム製品。
【請求項20】
前記ユーザによる新しい指紋入力と前記ユーザ入力コードとを受信することと、
前記歪んだ記録を取り出すことと、
文字列を生成するために前記指紋画像の前記歪んだ記録を前記ユーザ入力コードで復号化することと、
前記文字列を前記指紋画像の前記記録に変換し戻すことと、
前記指紋画像の前記記録と前記新しい指紋の新しい記録とを比較することと、をさらに含む、請求項15に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、コンピュータシステムに関し、より具体的には、多要素指紋認証器のためのコンピュータシステム、コンピュータ実装方法、およびコンピュータプログラム製品に関する。
【背景技術】
【0002】
指紋に基づく生体認証システムは、例えばパーソナルコンピューター(PC)のログオン、物理的なアクセス制御、携帯電話のログインなど、幅広いアプリケーションでユーザ認証を行うための最も効果的な技術の一つとして急速に受け入れられている。典型的な指紋照合システムには2つの段階がある。登録時には、ユーザの指紋を取得し、その特徴的な特徴を抽出してテンプレートとして保存する。検証時には、新しい指紋を取得し、保存されたテンプレートと比較して、ユーザが主張するアイデンティティを検証する。多くの指紋に基づくシステムで使用される特有な特徴量は、いわゆる「特徴点」と呼ばれる局所的な特徴量であり、指紋の付着状況に対して安定かつ頑丈なパターンである。異なる指紋に基づく認識システム間の相互運用性を実現する目的で、特徴点テンプレート表現の国際規格がISO/IEC19794-2として定義されている。
【発明の概要】
【0003】
本発明の実施形態は、多要素指紋認証器に向けられている。非限定的な例示的コンピュータ実装方法は、ユーザの指紋画像の記録の1つまたは複数の特徴をランダムに取り除き、指紋画像の歪んだ記録を作成することを含み、作成は、暗号化技術を使用して記録をユーザ入力コードと結合することを含み、歪んだ記録はユーザ入力コードを使用して可逆であることを含む。また、本方法は、ユーザの認証のために歪んだ記録を登録することを含む。
【0004】
本発明の他の実施形態は、上述した方法の特徴をコンピュータシステムおよびコンピュータプログラム製品に実装するものである。
【0005】
追加の技術的特徴および利点は、本発明の技術によって実現される。本発明の実施形態および態様は、本明細書で詳細に説明され、請求された主題の一部とみなされる。より良い理解のために、詳細な説明および図面を参照されたい。
【0006】
本明細書に記載された排他的権利の具体的内容は、明細書の結論にある特許請求の範囲に特に指摘され、明確に主張されている。本発明の実施形態の前述および他の特徴および利点は、添付の図面と併せて取られる以下の詳細な説明から明らかである。
【図面の簡単な説明】
【0007】
【
図1】本発明の1つまたは複数の実施形態と組み合わせて使用するための例示的なコンピュータシステムのブロック図である。
【
図2】本発明の1つまたは複数の実施形態による、ユーザのためのクライアント側多要素パスワード生成、認証、もしくは更新またはこれらの組み合わせのためのシステムのブロック図である。
【
図3】本発明の1つまたは複数の実施形態による、ユーザのためのクライアント側多要素パスワード生成のための処理のフローチャートを示す図である。
【
図4】本発明の1つまたは複数の実施形態による、ユーザのためのクライアント側多要素パスワード生成による認証のための処理のフローチャートを示す。
【
図5】本発明の1つまたは複数の実施形態による、ユーザに対するクライアント側多要素パスワード生成によるログイン/認証成功後の歪んだ指紋更新のためのプロセスのフローチャートを示す図である。
【
図6】本発明の1つまたは複数の実施形態による、指紋画像の分析に基づく指紋の特徴点の記録の例を示す図である。
【
図7】本発明の1つまたは複数の実施形態による、
図6の指紋の特徴点の記録における特徴点フィールドの一例を示す図である。
【
図8】本発明の1つまたは複数の実施形態による、ブロック矢印が、スクランブルのために選択され得るフィールドを強調する、例示的な指紋の特徴点の記録の部分図である。
【
図9】本発明の1つまたは複数の実施形態による、ブロック矢印が、スクランブルのために選択され得る特徴点フィールドを強調する、
図8の例示的なの特徴点の記録の部分図を示している。
【
図10】本発明の1つまたは複数の実施形態による、クライアント側多要素パスワード生成、認証、もしくは更新またはこれらの組み合わせのためのコンピュータ実装方法のフローチャートを示す。
【
図11】(A)は、本発明の1つまたは複数の実施形態による、指紋画像上の隆線及び谷を示す図である。(B)は、本発明の1つまたは複数の実施形態による、指紋画像における特異領域及びコアポイントを示す図である。
【
図12】本発明の1つまたは複数の実施形態による、指紋クラスの例を示す図である。
【
図13】(A)は、本発明の1つまたは複数の実施形態による、指紋画像を示す図である。(B)は、本発明の1つまたは複数の実施形態による、
図13(A)の指紋画像の方位画像(orientation image)を示す図である。(C)は、本発明の1つまたは複数の実施形態による、
図13(A)の指紋画像の周波数画像を示す図である。
【
図14】本発明の1つまたは複数の実施形態による、対応する方位画像にフェードインした指紋画像を示す図である。
【
図15】(A)は、本発明の1つまたは複数の実施形態による、終端特徴点を示す図である。(B)は、本発明の1つまたは複数の実施形態による、分岐特徴点を示す図である。(C)は、本発明の1つまたは複数の実施形態による、終端および分岐を示す図である。
【
図16】本発明の1つまたは複数の実施形態による、クラウドコンピューティング環境を示す図である
【
図17】本発明の1つまたは複数の実施形態による、抽象化モデルレイヤを示す図である。
【発明を実施するための形態】
【0008】
本発明の1つまたは複数の実施形態は、生体スキャン画像変換文字列をユーザ提供のユーザパスワードに組み込むことにより、ユーザ認証のためのロングパスワードを生成する。特に、本発明の1つまたは複数の実施形態は、生体情報とユーザパスワードの両方を、生体情報が容易に特定できないようにメッシュし、ユーザパスワードを紛失した場合、ユーザは、新しいロングパスワードを生成するために、同じ生体情報を用いて新しいユーザパスワードを作成することが可能である。その結果、長いパスワードは不正な複製に対して十分な長さを持ち、短いユーザパスワードはユーザパスワード部分(すなわち、短いユーザパスワード)だけを覚えていればよいので、覚えやすいという利点がある。
【0009】
より高性能なコンピュータが利用できるようになり、短い長さのパスワードが構成できるようになった。長いパスワードは覚えにくく、多くのユーザに敬遠されている。指紋情報などの生体情報は機密性が高く、一度紛失すると復元できない。パスワードマネージャーは役に立つが、パスワードマネージャーはアクセスするために従来のマスターパスワードが必要である。
【0010】
本発明の1つまたは複数の実施形態は、短いユーザパスワードを使用することによって、覚えやすい方法で、セキュリティを強化するための非常に長いパスワードを生成することができる。パスワードファイルを特定のユーザ装置に保存する必要がない。1つまたは複数の実施形態において、生体情報は、インターネットを通じて又はネットワークを介して伝送される必要がなく、生体スキャン画像(例えば、指紋)の元のフォーマットは、いずれの装置にも保存されない。さらに、1つまたは複数の実施形態は、指紋画像を得るために既存の指紋スキャン方法を使用することができ、指紋画像は文字列に変換される。次に、ユーザは、短いユーザパスワードであるユーザコード/ピン/パスワードの入力を促される。指紋画像を表す文字列と短いユーザパスワード(すなわち、ユーザによって入力されたユーザコード/ピン)は、結果として得られる文字列が元の部分を分離するために容易に復号できないように、アプリケーションで定義された方法を使用して一緒にメッシュ化されることができる。このように、生体情報もしくは短いユーザパスワードまたはこれらの組み合わせは、ローカル側もしくはサーバ側またはこれらの組み合わせに保存する必要がない。ユーザは、指紋部分ではなく、短いユーザパスワード部分を思い出すだけでよい。ユーザは、スキャナとこの機能をサポートするソフトウェアがあれば、どこでもログオンすることができる。また、短いパスワードを紛失した場合もしくは構成された場合またはその両方の場合、生体情報は不正アクセスを試みる者によって復元されにくくなっている。ユーザは、ユーザの短いパスワードを変更(ユーザコード/ピンの入力など)することで長いパスワードを変更し、変更したユーザの短いパスワードと指紋を使用して新しい長いパスワードを生成することが可能である。さらに、長いパスワードは、既存のあらゆるパスワードベースの暗号化で使用することができる。
【0011】
ここで
図1に目を向けると、本発明の1つまたは複数の実施形態に従ったコンピュータシステム100が一般的に示されている。コンピュータシステム100は、本明細書で説明するように、様々な通信技術を利用するコンピューティング装置及びネットワークの任意の数及び組合せを含む、もしくは採用またはその両方の電子的な、コンピュータフレームワークとすることができる。コンピュータシステム100は、異なるサービスに変更したり、いくつかの機能を他のものと独立して再構成したりする能力を有する、容易にスケーラブル、拡張可能、及びモジュール化可能であり得る。コンピュータシステム100は、例えば、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、又はスマートフォンであってもよい。いくつかの例では、コンピュータシステム100は、クラウドコンピューティングノードであってもよい。コンピュータシステム100は、プログラムモジュールなどのコンピュータシステム実行可能命令がコンピュータシステムによって実行されるという一般的な文脈で説明されてもよい。一般に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含んでもよい。コンピュータシステム100は、通信ネットワークを介してリンクされるリモート処理装置によってタスクが実行される分散型クラウドコンピューティング環境において実施されてもよい。分散型クラウドコンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカル及びリモートコンピュータシステム記憶媒体の両方に配置されてもよい。
【0012】
図1に示すように、コンピュータシステム100は、1つまたは複数の中央処理装置(CPU)101a、101b、101cなど(集合的にまたは一般的にプロセッサ101と呼ばれる)を有する。プロセッサ101は、シングルコアプロセッサ、マルチコアプロセッサ、コンピューティングクラスタ、または任意の数の他の構成とすることができる。プロセッサ101は、処理回路とも呼ばれ、システムバス102を介して、システムメモリ103および他の様々なコンポーネントに結合される。システムメモリ103は、リードオンリーメモリ(ROM)104とランダムアクセスメモリ(RAM)105を含むことができる。ROM104は、システムバス102に結合され、コンピュータシステム100の特定の基本機能を制御する基本入力/出力システム(BIOS)またはユニファイドエクステンシブルファームウェアインタフェース(UEFI)のようなその後継者を含むことができる。RAMは、プロセッサ101が使用するためにシステムバス102に結合された読み書き可能なメモリである。システムメモリ103は、動作中に前記命令の動作のための一時的なメモリ空間を提供する。システムメモリ103は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ、フラッシュメモリ、または他の任意の適切なメモリシステムを含むことができる。
【0013】
コンピュータシステム100は、システムバス102に結合された入力/出力(I/O)アダプタ106および通信アダプタ107から構成される。I/Oアダプタ106は、ハードディスク108もしくは他の類似のコンポーネントまたはその両方と通信する小型コンピュータシステムインタフェース(SCSI)アダプタであってよい。I/Oアダプタ106とハードディスク108は、本明細書では集合的に、大容量記憶装置110と呼ばれる。
【0014】
コンピュータシステム100で実行するためのソフトウェア111は、大容量記憶装置110に格納されてもよい。大容量記憶装置110は、プロセッサ101によって読み取り可能な有形記憶媒体の一例であり、ソフトウェア111は、様々な図に関して以下で説明するように、コンピュータシステム100を動作させるためにプロセッサ101によって実行するための命令として格納される。コンピュータプログラム製品の例およびそのような命令の実行は、本明細書においてより詳細に説明される。通信アダプタ107は、システムバス102を、外部のネットワークであってもよいネットワーク112と相互接続し、コンピュータシステム100が他のそのようなシステムと通信することを可能にする。一実施形態では、システムメモリ103の一部と大容量記憶装置110は、まとめてオペレーティングシステムを格納し、これは、
図1に示す様々なコンポーネントの機能を調整するための任意の適切なオペレーティングシステムであり得る。
【0015】
追加の入力/出力装置は、ディスプレイアダプタ115およびインタフェースアダプタ116を介してシステムバス102に接続されるように示されている。一実施形態では、アダプタ106、107、115、116は、中間バスブリッジ(図示せず)を介してシステムバス102に接続される1つまたは複数のI/Oバスに接続されてもよい。ディスプレイ119(例えば、スクリーンまたはディスプレイモニタ)は、ディスプレイアダプタ115によってシステムバス102に接続され、これは、グラフィックス集中型アプリケーションの性能を向上させるためのグラフィックスコントローラおよびビデオコントローラを含んでもよい。キーボード121、マウス122、スピーカー123、指紋スキャナ124などは、インタフェースアダプタ116を介してシステムバス102に相互接続することができ、例えば、複数の装置アダプタを単一の集積回路に統合したスーパーI/Oチップを含んでもよい。ハードディスクコントローラ、ネットワークアダプタ、及びグラフィックスアダプタなどの周辺装置を接続するための適切なI/Oバスは、典型的には、ペリフェラルコンポーネントインターコネクト(PCI)及びペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)などの共通プロトコルを含む。したがって、
図1に構成されるように、コンピュータシステム100は、プロセッサ101の形態の処理能力、および、システムメモリ103および大容量記憶装置110を含むストレージ能力、キーボード121およびマウス122などの入力手段、および、スピーカー123およびディスプレイ119を含む出力能力を含んでいる。
【0016】
いくつかの実施形態では、通信アダプタ107は、特にインターネット小型コンピュータシステムインタフェースなどの任意の適切なインタフェース又はプロトコルを使用してデータを送信することができる。ネットワーク112は、特に、セルラーネットワーク、無線ネットワーク、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、又はインターネットであってもよい。外部のコンピューティング装置は、ネットワーク112を介してコンピュータシステム100に接続してもよい。いくつかの例では、外部コンピューティング装置は、外部ウェブサーバ又はクラウドコンピューティングノードであってもよい。
【0017】
図1のブロック図は、コンピュータシステム100が
図1に示されるコンポーネントの全てを含むことを示すことを意図していないことを理解されたい。むしろ、コンピュータシステム100は、
図1に図示されていない任意の適切な少数または追加のコンポーネント(例えば、追加のメモリコンポーネント、組み込みコントローラ、モジュール、追加のネットワークインタフェースなど)を含むことができる。さらに、コンピュータシステム100に関して本明細書に記載された実施形態は、任意の適切なロジックで実装されてもよく、本明細書で言及されるロジックは、様々な実施形態において、任意の適切なハードウェア(例えば、プロセッサ、組み込みコントローラ、またはアプリケーション特定集積回路、その他)、ソフトウェア(例えば、アプリケーション、その他)、ファームウェア、またはハードウェア、ソフトウェア、およびファームウェアの任意の適切な組合せを含むことが可能である。
【0018】
図2は、本発明の1つまたは複数の実施形態による、ユーザのためのクライアント側多要素パスワード生成、認証、もしくは更新またはこれらの組み合わせのためのシステム200のブロック図である。
図2は、1つまたは複数の他の装置もしくはコンピュータシステムまたはこれらの組み合わせ270に結合されたコンピュータシステム202を描いている。コンピュータシステム202は、短いユーザパスワード及び生体情報に基づいてユーザのための長いパスワードを生成し、その後の入力時に長いパスワードを認証し、もしくは予め定められた時間に長いパスワードを更新またはこれらの組み合わせをするように構成される。認証後、コンピュータシステム202は、コンピュータシステム202、1つまたは複数の装置もしくはコンピュータシステムまたはこれらの組み合わせ270、ネットワークまたはこれらの組み合わせ等へのアクセスを許可するように構成されている。コンピュータシステム100の要素は、本明細書で議論されるように機能するために、装置もしくはコンピュータシステムまたはこれらの組み合わせ270と共にコンピュータシステム202で使用、もしくは統合またはこれらの組み合わせがされてもよい。1つまたは複数の実施形態において、コンピュータシステム202は、ネットワーク206の無線もしくは有線またはその両方の接続を介して装置もしくはコンピュータシステムまたはこれらの組み合わせ270と通信してよい。
【0019】
図3は、本発明の1つまたは複数の実施形態による、ユーザのためのクライアント側多要素パスワード生成のためのプロセス300を示すフローチャートである。
図3のプロセス300は、
図2を参照して説明される。ブロック302において、コンピュータシステム202上のソフトウェアアプリケーション204は、ユーザ210のユーザ入力コード/ピン及び指紋画像を要求もしくは受信またはその両方をするように構成される。ユーザ入力コード、例えば0486は、キーボード、マウス、タッチスクリーン、マイクロフォンなどを含む任意の入力装置を使用して入力することができる。生体認証スキャナ/変換器230は、指紋スキャナ124を介して指紋画像を得るためにユーザ210の指をスキャンするように構成される。生体認証スキャナ/変換器230は、コンピュータシステム202と統合、もしくはコンピュータシステム202に結合またはその両方がされてもよい。ブロック304において、ソフトウェアアプリケーション204は、短いユーザパスワードであるユーザ入力ユーザコードを、バイナリ表現として、0と1(例えば、0’s and 1’s)の文字列にデジタル化するように構成される。デジタル化された使用入力コードは、本明細書で説明するさらなる動作で使用される。ユーザ入力コードは、短いユーザパスワードとして使用される4桁のコードのような短いピンとすることができる。
【0020】
ブロック306において、コンピュータシステム202上のソフトウェアアプリケーション204は、受信した指紋画像を指紋画像の指紋特徴点記録220に変換するように構成される。指紋特徴点記録は、指紋特徴点テンプレート又は単にテンプレートとも呼ばれ得る。
図6は、指紋画像を解析し、特徴を抽出することに基づく指紋特徴点記録220の例である。指紋特徴点記録220は、ISO/IEC19794-2:2005に基づく規格を利用することができる。ソフトウェアアプリケーション204は、当業者によって理解されるように、指紋画像を分析し、指紋特徴点記録220のために特徴点を抽出するための1つまたは複数の適切なアルゴリズムを含み、もしくは採用またはその両方をすることができる。
【0021】
ブロック308において、コンピュータシステム202上のソフトウェアアプリケーション204は、最小特徴点閾値以上の特徴点の一部もしくは全てまたはその両方をランダムに取り除き、その後、指紋特徴点記録220をデジタル化するように構成される。質の高い指紋画像は、指紋スキャナの解像度及びセンサ上の指の配置に依存して、25~80個の特徴点を有することができる。2組の指紋の間の一致を宣言するために、ソフトウェアアプリケーション204は、12~20個の点(または特徴点)の間の一致を見つけうる。指紋特徴点記録220において、「n」は特徴点フィールドの数を示す。例えば、
図7は、指紋特徴点記録220における特徴点フィールドの一例である。
図7において、各特徴点(minutiae)には、Xフィールド、Yフィールド、方向(direction)、及び隆線のタイプ(ridge type)が含まれる。2組の指紋の一致は、例えば、12個の特徴点が一致したときに宣言され得る。説明のためであり限定するものではないが、指紋間の一致を宣言する前に12個の特徴点が共通であることが必要であり、例示的な最小特徴点閾値は22であると仮定してもよい。従って、ソフトウェアアプリケーション204は、指紋特徴点記録220から特徴点をランダムに取り除いた後、少なくとも22個の特徴点が比較のために(後で)残るように構成される。一例では、所定の指紋特徴点記録は25個の特徴点を有し、それに応じて、ソフトウェアアプリケーション204は、22個の特徴点という例示的な最小特徴点閾値を満たすために指紋特徴点記録から最大25-22=3の特徴点(又は特徴点値)をランダムに取り除いてもよい。特徴点がランダムに取り除かれると、ソフトウェアアプリケーション204は、残っている各特徴点の値を指紋特徴点記録220の0と1(0’s and 1’s)の文字列にデジタル化する。いくつかの情報を省略または変更することは、より多くの未知数を生成することによって、実データをさらにマスクする方法である。未知数が多ければ多いほど、不正なアクセスを行うことが難しくなる。指紋特徴点記録または指紋テンプレートがあり、最終的に後述の歪んだ指紋特徴点記録となり、それが連続的に変化することは、単一の保存された指紋テンプレートがある場合よりも不正アクセスを行うことがはるかに困難である。平均して1回の指紋スキャンにつき25個の特徴点があり、ソフトウェアアプリケーション204がランダムに3個の特徴点を省略または変更すると仮定すると、ソフトウェアアプリケーション204は25個のうち3個を選択して省略していることになる。従って、25個のうち3個の組み合わせの数(順序に関係なく)は:C=(N!)/[k!(N-k)!]=25!/[3!(22!)]=2300通りの組み合わせとなる。このように、2300は、指紋特徴点記録220を変更するために使用されるランダムな組み合わせの実質的な増加であり、これにより、新しい指紋スキャンの各々が固有であることを確実にすることができる。
【0022】
図3を参照すると、ブロック310において、コンピュータシステム202上のソフトウェアアプリケーション204は、指紋特徴点記録220(特徴点がランダムに取り除かれている)とデジタル化されたユーザコード(すなわち、ピンまたは短いパスワード)を結合することにより歪んだ指紋特徴点記録224を形成するように構成される。1つまたは複数の実施形態において、結合/スクランブルは、フォーマット保存暗号化(FPE)とも呼ばれる固定形式暗号化を用いて実行することができ、この場合、出力(例えば、暗号文)が入力(例えば、平文)と同じフォーマットであるように暗号化が実行される。これにより、すべての偽のパスコードは、歪んだ指紋特徴点記録/テンプレートを正規の指紋特徴点記録/テンプレートのように見えるものに解読するので、権限のない者が、どのパスコードが歪んだ指紋特徴点記録/テンプレートを元に戻して実際の指紋特徴点記録/テンプレートを生成するかを決定しようとしてブルートフォース技術(例えば、レインボーテーブル、山登り法など)を用いることがはるかに困難になる。1つまたは複数の特徴点フィールドは、指紋特徴点記録220が歪んだ指紋特徴点記録224になるように、ユーザコードを用いてスクランブルされる。特徴点フィールドは、スクランブルの前、後、もしくはスクランブル中またはこれらの組み合わせにランダムに省略されてもよいが、スクランブルの前にランダムに省略することがより効率的であり得ることが理解されよう。ソフトウェアアプリケーション204は、ユーザ入力コードを用いて特徴点の特定のフィールドをスクランブルするための様々なアルゴリズムまたは技術を含むもしくは採用またはその両方をすることができる。説明のための例として、入力ユーザコード(例えば、0486)に基づいて、特徴点フィールドの値(0~255)が修正され、認証中に逆転できる方法で、特徴点フィールドの異なる値0~255を生成することができる。入力コード0486(例えば、「48」を選択)および115の値を有する特徴点フィールドの場合、スクランブルは115+48=163となり得る。スクランブルされた値は、スクランブルされた値が255より大きい(>)とき、ラップバックされる。ソフトウェアアプリケーション204がより多くの特徴点を作成する場合、ソフトウェアアプリケーション204は、属性フィールドも入力するように構成される。さらに、もしくは代替的またはその両方において、xおよびyの特徴点位置フィールドは、入力コード(例えば、0486)に基づいて修正され、異なる有効位置を生成し、そして認証中に逆転させることができる方法で、生成される。例えば、x座標に0~512の値、y座標に0~512の値、および入力コード0486を使用し、xが213であれば86を加算してスクランブルx値299とし、yが24であれば68を加算してスクランブルy値102とする。ここでも、x値またはy値のいずれかが512より大きい(>)場合は、その値がラップされる。さらに、方向角特徴点位置フィールド(一般に値0から255まで変化する)は、入力ユーザコード(例えば、0486)に基づいて修正され、本明細書で論じた例に類似する異なる有効角度を生成することが可能である。加算を使用した簡単な修正について説明のために論じたが、より複雑な修正及び動作が企図され、使用することが可能である。さらに、他の指紋特徴点フィールドも同様に修正することができる。1つまたは複数の実施形態において、スクランブルは、各ユーザ装置(例えば、コンピュータシステム202)上でわずかに異なって実行され得る。すなわち、歪曲/スクランブルアルゴリズムは、特徴点値+ユーザ入力コード+ランダムシード=スクランブルされた特徴点値を用いて各装置を固有にし、スクランブルされる特徴点フィールドの要求値以上のオーバーフローがあるときにスクランブル値をラップするランダムシードを有する。装置は、上記と同様のアルゴリズムを用いるが、さらに、装置毎に装置固有フィールド(例えば、固有フィールド=7)を追加してもよい。例えば、固有フィールドを使用し、なおかつ例示的なユーザ入力コード0486を使用すると、スクランブルは、115+48+7=163+7=170となる。装置固有フィールドはランダムシードである。
【0023】
ブロック312及び314において、歪んだ指紋特徴点記録224は、将来の認証のために暗号化されて保存され、一方、元の指紋画像及び指紋特徴点記録は保存されない。ブロック310及び312は、別々にもしくは同時またはその両方で実行されてもよい。ブロック312は任意であってよい。例えば、暗号化アルゴリズム(例えば、固定形式暗号化など)は、暗号化プロセスにおいてユーザコードを組み込むことができ、それによって、指紋特徴点記録220中の特徴点のフィールドを同時に又はほぼ同時にスクランブルして歪んだ指紋特徴点記録224を形成し、歪んだ指紋特徴点記録224を暗号化することができる。ソフトウェアアプリケーション204は、ユーザ入力コードを使用して復号化することができる様々な暗号化アルゴリズムを含み、もしくは採用またはその両方をしてもよい。暗号化もしくはスクランブルまたはその両方のために役立ち得る例示的なアルゴリズムは、ハッシュ関数、対称暗号化アルゴリズム、非対称暗号化アルゴリズム、固定形式暗号化等を含む。歪んだ指紋特徴点記録224は、ユーザ210を代表する長いパスワードである一方、ユーザ210は短いパスワード(例えば、4桁のピン)であるユーザ入力コードを思い出すだけでよいことを理解されたい。長いパスワードは機械で生成され、指紋とユーザ入力コードの結果であり、どちらもコンピュータシステム202に保存されていない。
【0024】
図4は、本発明の1つまたは複数の実施形態による、ユーザのためのクライアント側多要素パスワード生成による認証のためのプロセス400のフローチャートを示す。ブロック402、404、406は、以前に論じたブロック302、304、306に類似しており、簡単に説明する。このシナリオでは、ユーザ210は、例えば、コンピュータシステム202、装置もしくはコンピュータシステムまたはこれらの組み合わせ270、ネットワーク206等へのアクセスを要求しており、アクセスが許可される前に認証される必要がある。ブロック402、404、406において、コンピュータシステム202上のソフトウェアアプリケーション204は、ユーザ入力コードとユーザ210の新しい指紋画像を受け取り、新しい指紋画像を新しい指紋特徴点記録240に変換し、ユーザ入力コードをデジタル化するように構成される。ユーザ入力コードは、以前に入力されたユーザ入力コード(例えば、0486)と同じであることが要求される。ブロック408において、コンピュータシステム202上のソフトウェアアプリケーション204は、ユーザ入力コードを用いて歪んだ指紋特徴点記録224を復号し、ブロック410においてスクランブルされた特徴点フィールドに対して行われた操作を逆にすることによって、ユーザ入力コードを用いて歪んだ指紋特徴点記録224の歪みを戻す/デスクランブル(undistort/descramble)するよう構成される。1つまたは複数の実施形態において、ブロック408及び410は、復号化技術/アルゴリズムが現在、歪んだ指紋特徴点記録224を復号化し、歪みを戻す/デスクランブルすることができるので、同時にもしくはほぼ同時またはその両方で実行されてもよい。コンピュータシステム202上のソフトウェアアプリケーション204は、歪んだ指紋特徴点記録224を使用して、以前にスキャンされたユーザ210の指紋画像280を再作成するように構成される。特徴点が指紋特徴点記録220からランダムに取り除かれたので、再作成された指紋画像280は、ブロック308で議論された最小特徴点閾値に、もしくはそれ以上またはその両方に特徴点を維持しつつ、以前に得られた元の指紋より少ない特徴点を有する。上述したように、2つの指紋間の一致は、12から20個の点/特徴点が一致したときに宣言することができ、例示的なシナリオでは、例示的な最小特徴点閾値は22である。従って、再作成された指紋画像280は、少なくとも22個の特徴点を有し、もしくは少なくとも22個の特徴点を用いて再作成されたまたはその両方である。ソフトウェアアプリケーション204は、当業者によって理解されるように、指紋特徴点記録のための指紋画像を再作成するために、より適切なアルゴリズム又は技術の1つを含むもしくは採用またはその両方であってよい。
【0025】
図4を参照すると、ブロック412において、コンピュータシステム202上のソフトウェアアプリケーション204は、新しい指紋画像もしくは新しい指紋特徴点記録240またはその両方を、それぞれ再作成された指紋画像280もしくは指紋特徴点記録220またはその両方と比較するよう構成されている。一致するものがあるとき、コンピュータシステム202上のソフトウェアアプリケーション204は、ブロック414において、ユーザ210が正常に認証され、アクセスを許可することを決定するように構成される。一致しないとき、コンピュータシステム202上のソフトウェアアプリケーション204は、失敗した認証があると判断し、ブロック416でアクセスを拒否するように構成される。
【0026】
図5は、本発明の1つまたは複数の実施形態による、ユーザに対するクライアント側多要素パスワード生成によるログイン/認証成功後の歪んだ指紋更新のためのプロセス500を示すフローチャートである。コンピュータシステム202上のソフトウェアアプリケーション204は、歪んだ指紋もしくは歪んだ指紋特徴点記録を定期的に更新するように構成される。1つまたは複数の実施形態において、歪んだ指紋もしくは歪んだ指紋特徴点記録またはその両方は、各成功したログインの際に更新され得る。同様に、ブロック308、310、312は、
図5のブロック508、510、512として、新しい指紋画像を用いて繰り返される。例えば、ユーザ210の認証が成功した後、コンピュータシステム202上のソフトウェアアプリケーション204は、ブロック508において、新しい指紋特徴点記録240から最小特徴点閾値以上の特徴点の一部もしくは全てまたはその両方をランダムに取り除き、その後、新しい指紋特徴点記録240をデジタル化するように構成される。ブロック510において、コンピュータシステム202上のソフトウェアアプリケーション204は、指紋特徴点記録240とデジタル化されたユーザコード(すなわち、ピンまたは短いパスワード)とを結合することによって、新しい歪んだ指紋特徴点記録244を形成するように構成され、ソフトウェアアプリケーション204は、ブロック512において、新しい歪んだ指紋特徴点記録244を暗号化する。ブロック514において、コンピュータシステム202上のソフトウェアアプリケーション204は、暗号化された新しい歪んだ指紋特徴点記録244を、古いバージョンの歪んだ指紋特徴点記録224の代わりに保存するように構成される。
【0027】
特徴点フィールドのスクランブルに関する更なる議論を以下に提供する。縦模様のブロック矢印は、
図8および
図9において、ユーザ入力コードを用いてスクランブル/歪曲することが可能な例示的な特徴点フィールドを説明するために利用される。本明細書で述べたように、スクランブルは、固定形式暗号化の一種であり得るが、他のタイプの暗号化が使用されてもよい。
図8は、縦模様のブロック矢印が、スクランブルのためにソフトウェアアプリケーション204によって選択され得る1つまたは複数のフィールドを強調する、例示的な指紋特徴点記録の部分図を示している。ソフトウェアアプリケーション204は、
図8においてスクランブルするために1つまたは複数のフィールドをランダムに選択することができる。
図9は、例示的な指紋特徴点記録におけるn個の特徴点フィールドの数から例示的な特徴点フィールドの部分図を描いており、縦模様のブロック矢印は、スクランブルのためにソフトウェアアプリケーション204によって選択され得る1つまたは複数の特徴点フィールドを再び強調している。同様に、ソフトウェアアプリケーション204は、
図9においてスクランブルするために1つまたは複数の特徴点フィールドをランダムに選択することができる。
【0028】
指紋特徴点記録及び指紋画像のその説明に含まれる更なる詳細に目を向けると、指紋は、指が平らな表面に押されたときに生じる指先の表皮の再現物である。指紋の主な構造的特徴は、
図11(A)に描かれているような、平行に走ることが多い隆線(稜線ともいう)と谷のパターンが交錯していることである。グローバルレベルでは、指紋パターンは通常、稜線が特定の形状をとる1つまたは複数の領域を示す(高い曲率、頻繁な終端などによって特徴づけられる)。これらの領域(特異点または特異領域と呼ばれる)は、
図11(B)に描かれているように、ループ、デルタ、および渦巻の3つのタイプに分類される場合がある。ループ型、デルタ型、渦巻型に属する特異領域は、通常、それぞれ∩型、Δ型、O型の形状を特徴とする。
図11(B)では、特異領域は白色のボックスで、コアポイントは指紋画像中の小さな円で図示されている。
図12に示すように、特異領域は、検索及びサーチを単純化する目的で、指紋分類、即ち、一連の異なるクラスの中のクラスに指紋を割り当てることに一般的に使用される。
図12は、ゴルトン-ヘンリー(Galton-Henry)分類スキームの5つの最も一般的なクラスを示す:アーチ、テント型アーチ、左ループ、右ループ、渦巻であり、特異点の位置が図式化されている。(1)アーチ型指紋は、片側から入った隆線が小さな段差になり、反対側に出ていく:特異点は存在しない。(2)テント型アーチの指紋は、いくつかの稜線が高い曲率を示し、ループとデルタ(通常は垂直に並ぶ)が1つずつある以外は、アーチと似ている。(3)左(右)ループ指紋は、左(右)側から入り、カーブして戻り、入った側と同じ側から出る一つ以上の稜線がある;ループとデルタの特異点が存在する:ループは通常、垂直軸に対してデルタの左側(右側)に位置する。(4)渦巻指紋は、2つのループ特異点(または、同じ場所にある2つの反対側のループと考えられる1つの渦巻)と2つのデルタ特異点を含む;渦巻クラスは最も複雑で、いくつかの分類スキームでは、さらにいくつかのサブクラスに分けられる。いくつかの指紋照合アルゴリズム(ソフトウェアアプリケーション204に含まれ、もしくはソフトウェアアプリケーション204またはその両方によって採用されてもよい)は、典型的には、
図11(B)に描かれているように、最北のループ特異点の位置として、又はアーチクラスに属する指紋の最大稜線曲率の点として定義される中心点(コア)に従って指紋画像を事前に整列させる。
【0029】
図13(A)の指紋から、稜線パターンは、
図13(B)に描かれているように、その要素が稜線の局所的な向きを示す離散行列である向き画像によって効果的に記述され得る。方位画像の汎用要素[x,y]は、
図14に描かれているように、画像の対応する局所近傍における指紋稜線の接線が水平軸と成す角度φ
xyとして定義される。同様に、局所的な稜線周波数(単位長さ当たりの隆線の数として定義される)は、
図13(C)に描かれるような周波数画像を用いることによって効果的に表現され得る。
図13(B)は、
図13(A)の指紋の方向画像であり、
図13(C)は、指紋の周波数画像であり、周波数画像中の明るいブロックは、より高い周波数を有する領域を示している。さらに細かいレベルでは、特徴点と呼ばれる他の重要な特徴を見つけることができる。特徴点とは稜線の不連続面のことで、終端、分岐、島、点、湖などいくつかの種類に分類することができる。通常、
図15(A)、15(B)、15(C)に描かれているように、2種類への粗い分類のみが採用され、その2種類の分類には、終端(隆線が突然終わる点)と分岐(隆線が2つの隆線に分かれる点)とが含まれる。特徴点ポイントは、
図15(A)及び15(B)に描かれているように、そのタイプ、x及びy座標、並びに方向θによって定義され得る。
図15(A)は、終端特徴点を示し、(x、y)は特徴点座標であり、θは、終端を囲む2つの谷の接線の平均方向として定義され、水平軸から右回りにますます測定される。
図15(B)は、分岐特徴点を示し、θは、終端谷を囲む2つの稜線の接線の平均方向として定義され、水平軸から右方向にますます反時計回りに測定される。
図15(C)は、サンプルの指紋における終端(白丸)と分岐(グレーの丸)を示す図である。
【0030】
ISO/IEC19794-2:2005規格は、特徴点に基づく指紋表現のデータ形式を規定し、1つまたは複数の指印象からの1つまたは複数のテンプレートを含むことができる汎用記録形式を定義している。ISO/IEC19794-2:2005規格は、自動指紋認識が関係する幅広いアプリケーションで使用されるように設計されている。この規格は、関連する用語を定義し、特徴点のタイプ、位置、および向きを決定する方法を説明し、データを保存するために採用すべき形式を規定している。この規格は、指紋画像の復元に使用される。指紋特徴点記録フォーマットでは、特徴点に基づく指紋の表現に使用される基本的なデータ要素と、隆線の数および特異点の位置などの追加データを含めるための任意の拡張データフォーマットが定義されている。表は記録の構造と主要なフィールド(指紋画像の再構成に関連するものをすべて含む)をまとめたものである。指紋特徴点記録は、一般的な情報(例えば、画像サイズ)と、表された指紋(フィンガービュー)の数を含む記録ヘッダーを含んでいる。各フィンガービューについて、対応する単一指記録は、特徴点データ(必須)および拡張データ(任意)を含む。各特徴点について、対応する指特徴点記録(6バイト)は特徴点タイプ(終端、分岐、またはその他)を含み、「その他」は、すべてのタイプと一致する可能性がある特徴点タイプとして定義される(したがって、未知のタイプまたは終端/分岐以外のタイプの両方を示すことができる)。指特徴点記録は、
図15(A)及び
図15(B)で測定した座標系に対する特徴点x及びy位置と特徴点方向θをピクセルで表し、1.40625(360/256)度の単位で1バイトとして記録されている。また、指特徴点記録には、1(最小品質)から100(最大品質)の範囲で特徴点品質が記録され、品質情報がない場合は0が記録される。拡張データは、照合アルゴリズムで使用される可能性のある追加情報を含むために設計されている。
【0031】
本発明の1つまたは複数の実施形態の多くの技術的利点及び長所には、クレジットカードで既に使用されている技術である固定形式の暗号化を活用し、全ての試行されたユーザ入力コードが歪んだ指紋テンプレートを正規の指紋特徴点記録と思われるものに解読するので、どのユーザ入力コードが歪んだ指紋特徴点記録を歪ませて実際の指紋特徴点記録を生成するかを発見しようとする際にブルートフォース技術を使って不正にアクセスするのをはるかに困難にする能力がある。完全なエンドツーエンドのシステムと方法は革新的である。ユーザ入力コードで歪められ、登録中に保存された、以前の指紋スキャンからの歪んだ指紋特徴点記録を自動的に取り消し、ランダムな時間もしくは毎回(例えば、所定の間隔)またはその両方で、新しい歪んだ指紋特徴点記録を有する新しくスキャンされた指紋と置き換えることにより、権限のない者が単にすべてのユーザ入力コードを通して実行し、次に結果を分析して最も可能性の高い実際の指紋特徴点記録を特定しようとすることははるかに困難となる。より固有でありながら有効な指紋画像を生成するために、いくつかの指紋特徴点を無作為に取り除く(または変更する)ことで、不正アクセスに対するロバストネスが向上する。
【0032】
図10は、本発明の1つまたは複数の実施形態による、クライアント側多要素パスワード生成、認証、および更新のためのコンピュータ実装方法1000のフローチャートである。ブロック1002において、コンピュータシステム202上のソフトウェアアプリケーション204は、ユーザ210の指紋画像の記録(例えば、指紋特徴点記録220)の1つまたは複数の特徴をランダムに取り除くように構成される。ブロック1004において、コンピュータシステム202上のソフトウェアアプリケーション204は、暗号化技術を使用して記録をユーザ入力コード(例えば、入力コード0486)と結合することによって指紋画像の歪んだ記録(例えば、歪んだ指紋特徴点記録224)を作成し、歪んだ記録はユーザ入力コードを使用して可逆であるように構成されている。ブロック1006において、コンピュータシステム202上のソフトウェアアプリケーション204は、ユーザ210の(後の)認証のために歪んだ記録を登録するように構成される。
【0033】
指紋画像の歪んだ記録を作成することは、指紋画像の記録を文字列に変換すること(例えば、指紋特徴点記録220のフィールドを文字列に変換することができる)、ユーザ入力コード(例えば、0486)を別の文字列にデジタル化すること、及び文字列を別の文字列に結合することを更に含む。ユーザ入力コードは、コンピュータシステム202にローカルに、もしくは他のコンピュータシステムにまたはその両方にリモートに保存されない。指紋画像は、コンピュータシステム202上にローカルに、もしくは他のコンピュータシステムにまたはその両方にリモートに保存されない。ユーザによる新しい指紋入力の受信に応答して、コンピュータシステム202上のソフトウェアアプリケーション204は、歪んだ記録(例えば、歪んだ指紋特徴点記録224)を新しい指紋の新しい歪んだ記録(例えば、新しい歪んだ指紋特徴点記録244)で更新するように構成される。歪んだ記録は、各認証成功後、所定数の認証成功後、定期的なカレンダーベース(例えば、毎週、毎月等)等の所定の間隔で、新しい指紋の新しい歪んだ記録で継続的/自動的に更新される。ユーザによる新しい指紋入力及びユーザ入力コードを受信することに応答して、ソフトウェアアプリケーション204は、歪んだ記録(例えば、歪んだ指紋特徴点記録224)を取得し、ユーザ入力コード(例えば、ユーザ入力コード0486)で指紋画像の歪んだ記録を復号して文字列をもたらし、文字列を指紋画像の記録に変換し戻し、指紋画像の記録を新しい指紋の記録と比較するように構成される。ソフトウェアアプリケーション204は、記録が新しい指紋の新しい記録と一致したとき、すなわち、(以前に保存された)指紋特徴点記録220が新しい指紋特徴点記録240と一致したときに認証が成功したと判断し、記録が新しい指紋の新しい記録と一致しないときに認証が失敗したと判断するように構成される。
【0034】
本開示は、クラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載された教示の実装は、クラウドコンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在知られている又は後に開発される任意の他のタイプのコンピューティング環境と組み合わせて実施することが可能である。
【0035】
クラウドコンピューティングは、設定可能なコンピューティングリソースの共有プール(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシンおよびサービス)へ、簡便かつオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルであり、リソースは、最小限の管理労力または最小限のサービスプロバイダとのやり取りによって速やかに準備(provision)およびリリースできるものである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの展開モデルを含むことがある。
【0036】
特性は以下の通りである。
【0037】
オンデマンド・セルフサービス:クラウドの消費者は、サービスプロバイダとの人的な対話を必要することなく、必要に応じて自動的に、サーバ時間やネットワークストレージなどのコンピューティング能力を一方的に準備することができる。
【0038】
ブロード・ネットワークアクセス:コンピューティング能力はネットワーク経由で利用可能であり、また、標準的なメカニズムを介してアクセスできる。それにより、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、PDA)による利用が促進される。
【0039】
リソースプーリング:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを利用して複数の消費者に提供される。様々な物理リソースおよび仮想リソースが、需要に応じて動的に割り当ておよび再割り当てされる。一般に消費者は、提供されたリソースの正確な位置を管理または把握していないため、位置非依存(location independence)の感覚がある。ただし消費者は、より高い抽象レベル(例えば、国、州、データセンタ)では場所を特定可能な場合がある。
【0040】
迅速な柔軟性(elasticity):コンピューティング能力は、迅速かつ柔軟に準備することができるため、場合によっては自動的に、直ちにスケールアウトし、また、速やかにリリースされて直ちにスケールインすることができる。消費者にとって、準備に利用可能なコンピューティング能力は無制限に見える場合が多く、任意の時間に任意の数量で購入することができる。
【0041】
測定されるサービス:クラウドシステムは、サービスの種類(例えば、ストレージ、処理、帯域幅、アクティブユーザアカウント)に適したある程度の抽象化レベルでの測定機能を活用して、リソースの使用を自動的に制御し最適化する。リソース使用量を監視、制御、および報告して、利用されるサービスのプロバイダおよび消費者の両方に透明性を提供することができる。
【0042】
サービスモデルは以下の通りである。
【0043】
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを利用できることである。当該そのアプリケーションは、ウェブブラウザ(例えばウェブメール)などのシンクライアントインタフェースを介して、各種のクライアント装置からアクセスできる。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージや、個別のアプリケーション機能さえも含めて、基礎となるクラウドインフラストラクチャの管理や制御は行わない。ただし、ユーザ固有の限られたアプリケーション構成の設定はその限りではない。
【0044】
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラム言語およびツールを用いて、消費者が作成または取得したアプリケーションを、クラウドインフラストラクチャに展開(deploy)することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、展開されたアプリケーションを制御でき、かつ場合によってはそのホスティング環境の構成も制御できる。
【0045】
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される機能は、オペレーティングシステムやアプリケーションを含む任意のソフトウェアを消費者が展開および実行可能な、プロセッサ、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを準備することである。消費者は、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、オペレーティングシステム、ストレージ、および展開されたアプリケーションを制御でき、かつ場合によっては一部のネットワークコンポーネント(例えばホストファイアウォール)を部分的に制御できる。
【0046】
展開モデルは以下の通りである。
【0047】
プライベートクラウド:このクラウドインフラストラクチャは、特定の組織専用で運用される。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
【0048】
コミュニティクラウド:このクラウドインフラストラクチャは、複数の組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス)を持つ特定のコミュニティをサポートする。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
【0049】
パブリッククラウド:このクラウドインフラストラクチャは、不特定多数の人々や大規模な業界団体に提供され、クラウドサービスを販売する組織によって所有される。
【0050】
ハイブリッドクラウド:このクラウドインフラストラクチャは、2つ以上のクラウドモデル(プライベート、コミュニティまたはパブリック)を組み合わせたものとなる。それぞれのモデル固有の実体は保持するが、標準または個別の技術によってバインドされ、データとアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースティング)を実現する。
【0051】
クラウドコンピューティング環境は、ステートレス性(statelessness)、低結合性(low coupling)、モジュール性(modularity)および意味論的相互運用性(semantic interoperability)に重点を置いたサービス指向型環境である。クラウドコンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0052】
ここで、
図16に例示的なクラウドコンピューティング環境50を示す。図示するように、クラウドコンピューティング環境50は1つ以上のクラウドコンピューティングノード10を含む。これらに対して、クラウド消費者が使用するローカルコンピュータ装置(例えば、PDAもしくは携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、もしくは自動車コンピュータシステム54Nまたはこれらの組み合わせなど)は通信を行うことができる。ノード10は互いに通信することができる。ノード10は、例えば、上述のプライベート、コミュニティ、パブリックもしくはハイブリッドクラウドまたはこれらの組み合わせなど、1つ以上のネットワークにおいて、物理的または仮想的にグループ化(不図示)することができる。これにより、クラウドコンピューティング環境50は、サービスとしてのインフラストラクチャ、プラットフォームもしくはソフトウェアまたはこれらの組み合わせを提供することができ、クラウド消費者はこれらについて、ローカルコンピュータ装置上にリソースを維持する必要がない。なお、
図16に示すコンピュータ装置54A~Nの種類は例示に過ぎず、コンピューティングノード10およびクラウドコンピューティング環境50は、任意の種類のネットワークもしくはネットワークアドレス指定可能接続(例えば、ウェブブラウザの使用)またはその両方を介して、任意の種類の電子装置と通信可能であることを理解されたい。
【0053】
ここで、クラウドコンピューティング環境50(
図16)によって提供される機能的抽象化レイヤのセットを
図17に示す。なお、
図17に示すコンポーネント、レイヤおよび機能は例示に過ぎず、本発明の実施形態はこれらに限定されないことをあらかじめ理解されたい。図示するように、以下のレイヤおよび対応する機能が提供される。
【0054】
ハードウェアおよびソフトウェアレイヤ60は、ハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム61、縮小命令セットコンピュータ(RISC)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶装置65、ならびにネットワークおよびネットワークコンポーネント66が含まれる。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
【0055】
仮想化レイヤ70は、抽象化レイヤを提供する。当該レイヤから、例えば以下の仮想エンティティを提供することができる:仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに仮想クライアント75。
【0056】
一例として、管理レイヤ80は以下の機能を提供することができる。リソース準備81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を可能にする。計量および価格設定82は、クラウドコンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費に対する請求またはインボイス送付を可能にする。一例として、これらのリソースはアプリケーションソフトウェアのライセンスを含んでよい。セキュリティは、データおよび他のリソースに対する保護のみならず、クラウド消費者およびタスクの識別確認を可能にする。ユーザポータル83は、消費者およびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されたサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を可能にする。サービス品質保証(SLA)の計画および履行85は、SLAに従って将来必要になると予想されるクラウドコンピューティングリソースの事前手配および調達を可能にする。
【0057】
ワークロードレイヤ90は、クラウドコンピューティング環境が利用可能な機能の例を提供する。このレイヤから提供可能なワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育の配信93、データ分析処理94、取引処理95、およびワークロードと機能に実装されるソフトウェアアプリケーション(例えば、ソフトウェアアプリケーション204、暗号化/復号アルゴリズム等)96が含まれる。
【0058】
本発明の様々な実施形態が、関連する図面を参照して本明細書に記載されている。本発明の代替的な実施形態は、本発明の範囲から逸脱することなく考案され得る。以下の説明および図面において、要素間の様々な接続および位置関係(例えば、上、下、隣接など)が規定されている。これらの連結もしくは位置関係またはその両方は、特に指定しない限り、直接的又は間接的であり得、本発明は、この点で限定することを意図していない。したがって、エンティティの結合は、直接的または間接的な結合のいずれかを指すことができ、エンティティ間の位置関係は、直接的または間接的な位置関係であり得る。さらに、本明細書に記載された様々なタスク及びプロセスステップは、本明細書に詳細に記載されていない追加のステップ又は機能性を有するより包括的な手順又はプロセスに組み込むことができる。
【0059】
本明細書に記載された方法の1つまたは複数は、各々当該技術分野において周知である、データ信号に論理機能を実装するための論理ゲートを有する離散論理回路、適切な組み合わせ論理ゲートを有する特定用途集積回路(ASIC)、プログラマブルゲートアレイ(PGA)、フィールドプログラマブルゲートアレイ(FPGA)などのいずれか又は組み合わせで実施することができる。
【0060】
簡潔さのために、本発明の態様の製造および使用に関連する従来技術は、本明細書において詳細に説明されてもよいし、されなくてもよい。特に、本明細書に記載された様々な技術的特徴を実装するためのコンピューティングシステムおよび特定のコンピュータプログラムの様々な態様は、よく知られている。したがって、簡潔さのために、多くの従来の実装の詳細は、本明細書で簡単に言及されるだけであるか、または周知のシステムもしくはプロセスまたはその両方の詳細を提供することなく完全に省略される。
【0061】
いくつかの実施形態では、様々な機能又は動作は、所与の場所で、もしくは1つまたは複数の装置又はシステムまたはこれらの組み合わせの動作に関連して行われ得る。いくつかの実施形態では、所定の機能または動作の一部は、第1の装置または場所で実行され得、機能または動作の残りは、1つまたは複数の追加の装置または場所で実行され得る。
【0062】
本明細書で使用される用語は、特定の実施形態を説明する目的のみのものであり、限定することを意図するものではない。本明細書で使用される場合、単数形「a」、「an」及び「the」は、文脈が明らかにそうでないことを示していない限り、複数形も含むように意図されている。本明細書で使用される場合、「含む(comprises)」という用語もしくは「含む(comprising)」という用語またはその両方は、記載された特徴、整数、ステップ、動作、要素、もしくは構成要素またはその組み合わせの存在を指定するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素コンポーネント、もしくはそれらのグループまたはその組み合わせの存在または追加を排除するものではない。
【0063】
以下の請求項におけるすべての手段またはステッププラスファンクション要素の対応する構造、材料、動作、および等価物は、具体的に請求された他の請求項の要素と組み合わせて機能を実行するための任意の構造、材料、または動作を含むことを意図している。本開示は、例示および説明のために提示されたが、網羅的であること、または開示された形態に限定されることは意図されていない。多くの修正および変形が、本開示の範囲から逸脱することなく、当業者には明らかであろう。実施形態は、本開示の原理及び実用化を最もよく説明するために、また、当業者が、企図される特定の用途に適するように様々な修正を加えた様々な実施形態について本開示を理解できるように、選択及び説明されたものである。
【0064】
本明細書に描かれた図は、例示的なものである。本開示の精神から逸脱することなく、図またはそこに記載されたステップ(または動作)に対して多くの変形があり得る。例えば、動作は異なる順序で実行することができ、又は動作は追加、削除又は修正することができる。また、「結合」という用語は、2つの要素間に信号経路を有することを説明し、その間に介在する要素/接続がない要素間の直接接続を意味するものではない。これらの変形例は、すべて本開示の一部とみなされる。
【0065】
以下の定義および略語は、特許請求の範囲および明細書の解釈のために使用されるものとする。本明細書で使用される場合、用語「含む(comprises)」、「含む(comprising)」、「含む(includes)」、「含む(including)」、「含む(has)」、「含む(having)」、「含む(contains)」、または「含む(containing)」、またはその他の変形は、非排他的な含有をカバーすることを意図している。例えば、要素のリストからなる組成物、混合物、プロセス、方法、製品、または装置は、必ずしもそれらの要素のみに限定されず、明示的にリストされていない他の要素またはかかる組成物、混合物、プロセス、方法、製品、または装置に固有の要素を含むことができる。
【0066】
さらに、「例示的」という用語は、本明細書において、「例、実例、または説明として機能する」ことを意味するために用いられる。本明細書で「例示的」として説明される任意の実施形態または設計は、必ずしも他の実施形態または設計よりも好ましいまたは有利であると解釈されるものではない。「少なくとも1つ」及び「1つまたは複数」という用語は、1以上の任意の整数、すなわち1、2、3、4などを含むと理解される。「複数」という用語は、2以上の任意の整数、すなわち、2、3、4、5などを含むと理解される。「接続」という用語は、間接的な「接続」及び直接的な「接続」を含むことができる。
【0067】
「約」、「実質的に」、「概算」という用語、及びそれらの変形は、出願時に利用可能な機器に基づく特定の量の測定に関連する誤差の程度を含むことを意図している。例えば、「約」は、所与の値の±8%、5%、または2%の範囲を含むことができる。
【0068】
本発明は、任意の可能な技術詳細レベルで統合されたシステム、方法もしくはコンピュータプログラム製品またはそれらの組み合せとすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を記憶したコンピュータ可読記憶媒体を含んでよい。
【0069】
コンピュータ可読記憶媒体は、命令実行装置によって使用される命令を保持し、記憶することができる有形の装置とすることができる。コンピュータ可読記憶媒体は、一例として、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置またはこれらの適切な組み合わせであってよい。コンピュータ可読記憶媒体のより具体的な一例としては、ポータブルコンピュータディスケット、ハードディスク、RAM、ROM、EPROM(またはフラッシュメモリ)、SRAM、CD-ROM、DVD、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化された装置、およびこれらの適切な組み合せが挙げられる。本明細書で使用されるコンピュータ可読記憶装置は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。
【0070】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピュータ装置/処理装置へダウンロード可能である。あるいは、ネットワーク(例えばインターネット、LAN、WANもしくはワイヤレスネットワークまたはこれらの組み合わせ)を介して、外部コンピュータまたは外部記憶装置へダウンロード可能である。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータもしくはエッジサーバまたはこれらの組み合わせを備えることができる。各コンピュータ装置/処理装置内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、各々のコンピュータ装置/処理装置におけるコンピュータ可読記憶媒体に記憶するために転送する。
【0071】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データ、または、スモールトークやC++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語や類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードもしくはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、スタンドアロン型ソフトウェアパッケージとして完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または、完全にリモートコンピュータもしくはサーバ上で実行可能である。後者の場合、リモートコンピュータは、LANやWANを含む任意の種類のネットワークを介してユーザのコンピュータに接続してもよいし、外部コンピュータに(例えば、インターネットサービスプロバイダを使用してインターネットを介して)接続してもよい。いくつかの実施形態において、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行する目的で当該電子回路をカスタマイズするために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
【0072】
本発明の実施形態は、本明細書において、本発明の実施形態に係る方法、装置(システム)、およびコンピュータプログラム製品のフローチャートもしくはブロック図またはその両方を参照して説明されている。フローチャートもしくはブロック図またはその両方における各ブロック、および、フローチャートもしくはブロック図またはその両方における複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実行可能である。
【0073】
上記のコンピュータ可読プログラム命令は、機械を生産するために、コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供してよい。これにより、かかるコンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行するための手段を創出する。上記のコンピュータ可読プログラム命令はさらに、コンピュータ、プログラマブルデータ処理装置もしくは他の装置またはこれらの組み合わせに対して特定の態様で機能するよう命令可能なコンピュータ可読記憶媒体に記憶してよい。これにより、命令が記憶された当該コンピュータ可読記憶媒体は、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作の態様を実行するための命令を含む製品を構成する。
【0074】
また、コンピュータ可読プログラム命令を、コンピュータ、他のプログラマブル装置、または他の装置にロードし、一連の動作ステップを当該コンピュータ、他のプログラマブル装置、または他の装置上で実行させることにより、コンピュータ実行プロセスを生成してもよい。これにより、当該コンピュータ、他のプログラマブル装置、または他の装置上で実行される命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行する。
【0075】
本開示の図面におけるフローチャートおよびブロック図は、本発明の種々の実施形態に係るシステム、方法およびコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示している。この点に関して、フローチャートまたはブロック図における各ブロックは、特定の論理機能を実行するための1つ以上の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表すことができる。他の一部の実装形態において、ブロック内に示した機能は、各図に示す順序とは異なる順序で実行してもよい。例えば、連続して示される2つのブロックは、実際には、関係する機能に応じて、同時もしくは略同時に実行してもよいし、または場合により逆順で実行してもよい。なお、ブロック図もしくはフローチャートまたはその両方における各ブロック、および、ブロック図もしくはフローチャートまたはその両方における複数のブロックの組み合わせは、特定の機能または動作を行う、または専用ハードウェアとコンピュータ命令との組み合わせを実行する専用ハードウェアベースのシステムによって、実行可能である。
【0076】
本発明の様々な実施形態の説明は、説明のために提示されたが、網羅的であること、または開示された実施形態に限定されることを意図するものではない。説明された実施形態の範囲及び精神から逸脱することなく、多くの修正及び変形が当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見出される技術に対する実用化または技術改善、または当業者が本明細書に記載される実施形態を理解することを可能にするために最もよく説明されるように選択されたものである。
【国際調査報告】