(57)【要約】  量子コンピュータなどの並列コンピューティング手段によるブルートフォース攻撃に対する抵抗性を高める、データを暗号化する方法が記載される。  データを暗号化するためにデータは複数のデータセグメントに分割され、各データセグメントは異なる暗号化キーを用いて暗号化される。暗号化データセグメントは、暗号化データセグメントの並列攻撃を妨げる方法で、暗号化データファイルとして構成される。例えば、暗号化データセグメントの長さは不均一であり得、および／または暗号化データファイル内の暗号化データセグメントの間隔は不均一であり得る。  各暗号化セグメントには次のセグメントへのポインタが含まれてもよい。したがって、認証受信者は暗号化データセグメントの長さや間隔を事前に知らずにデータファイルを順次解読できる。【選択図】図１
2020522205.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータセグメントを含むデータを暗号化する方法であって、
各データセグメントを暗号化して複数の暗号化データセグメントを提供することであり、異なる暗号化キーを使用して各データセグメントを暗号化することと、
暗号化データセグメントを含む暗号化データファイルを生成することであり、暗号化データセグメントの長さが不均一であり、および／または暗号化データファイル内の暗号化データセグメントの間隔が不均一であることとを含み、
各データセグメントが、暗号化データファイル内の次の暗号化データセグメントの位置や長さを識別するインジケータを含む、方法。
【請求項２】
前記暗号化キーに対応する解読キーのいずれも、いずれか他方の前記暗号化キーに対応する解読キーに基づいて計算できない、請求項１に記載の方法。
【請求項３】
前記暗号化データセグメントが、前記暗号化データファイル内に連続しない順序で保存される、請求項１または２に記載の方法。
【請求項４】
前記データセグメントが、楕円曲線暗号（ＥＣＣ）暗号化アルゴリズムを用いて暗号化される、請求項１から３のいずれか一項に記載の方法。
【請求項５】
各暗号化キーが、共通のシード値から生成される、請求項１から４のいずれか一項に記載の方法。
【請求項６】
各暗号化キーが、派生した物理的に複製不可能な機能（ＰＵＦ）から生成される、請求項１から５のいずれか一項に記載の方法。
【請求項７】
各データセグメントが、前記データセグメントの少なくとも一部の整合性を検証するためのメッセージ認証コードを含む、請求項１から６のいずれか一項に記載の方法。
【請求項８】
前記メッセージ認証コードが、先行データセグメントの少なくとも一部の整合性を検証するためのものでもある、請求項７に記載の方法。
【請求項９】
前記先行セグメントの一部が、前記先行セグメントのメッセージ認証コードを含む、請求項８に記載の方法。
【請求項１０】
前記データが生体認証データを含み、各データセグメントが、生体認証識別子の離散数の特徴点を定義するデータを表す、請求項１から９のいずれか一項に記載の方法。
【請求項１１】
各データセグメントが、前記生体認証識別子の単一の特徴点を定義するデータを表す、請求項１０に記載の方法。
【請求項１２】
複数の暗号化データセグメントを含む暗号化データファイルを解読する方法であって、前記暗号化データセグメントの長さが不均一であり、および／または前記暗号化データファイル内の前記暗号化データセグメントの間隔が不均一であり、
第１の暗号化データセグメントの位置を識別することと、
解読キーを用いて前記第１の暗号化データセグメントを解読することとを含み、
後続暗号化データセグメントごとに、
先行データセグメント内に含まれるインジケータに基づいて、前記後続暗号化データセグメントの位置を識別し、
以前に使用されたすべての解読キーとは異なる解読キーを用いて、前記後続暗号化データセグメントを解読する、方法。
【請求項１３】
前記第１の暗号化データセグメントの位置が、前記暗号化データファイルを解読する前に知られている、請求項１２に記載の方法。
【請求項１４】
前記第１の暗号化データセグメントの位置が、前記暗号化データファイル内に含まれる、請求項１２または１３に記載の方法。
【請求項１５】
前記暗号化データセグメントが、前記暗号化データファイル内に連続しない順序で保存される、請求項１２から１４のいずれか一項に記載の方法。
【請求項１６】
各解読キーが共通のシード値から生成され、前記共通のシード値が前記暗号化データファイル内に含まれていない、請求項１２から１５のいずれか一項に記載の方法。
【請求項１７】
各データセグメントが、前記データセグメントの少なくとも一部の整合性を検証するためのメッセージ認証コードを含む、請求項１２から１６のいずれか一項に記載の方法。
【請求項１８】
前記メッセージ認証コードが、先行データセグメントの少なくとも一部の整合性を検証するためのものでもある、請求項１７に記載の方法。
【請求項１９】
前記先行セグメントの一部が、前記先行セグメントのメッセージ認証コードを含む、請求項１８に記載の方法。
【請求項２０】
データセグメントごとにメッセージ認証コードを生成することと、生成されたメッセージ認証コードを前記暗号化データセグメントからのメッセージ認証コードと比較することとをさらに含む、請求項１７、１８または１９に記載の方法。
【請求項２１】
コンピュータプログラムまたはコンピュータプログラムを保存する有形のコンピュータ可読媒体であって、前記コンピュータプログラムが、プロセッサにより実行されると、請求項１から２０のいずれか一項に記載の方法をプロセッサに実行させるコンピュータ実行可能命令を含む、プログラム。
【請求項２２】
請求項１から１１のいずれか一項に記載の方法および／または請求項１２から２０のいずれか一項に記載の方法を実行するように構成された電子デバイス。
【請求項２３】
複数の暗号化データセグメントを含む暗号化データファイルであって、各暗号化データセグメントが異なる暗号化キーを用いて暗号化され、前記暗号化データセグメントの長さが不均一であり、および／または前記暗号化データファイル内の前記暗号化データセグメントの間隔が不均一であり、各データセグメントが、前記暗号化データファイル内の次の暗号化データセグメントの位置や長さを識別するインジケータを含む、暗号化データファイル。
【請求項２４】
前記暗号化キーに対応する解読キーのいずれも、いずれか他方の前記暗号化キーに対応する解読キーに基づいて計算できない、請求項２３に記載の暗号化データファイル。
【請求項２５】
前記暗号化データセグメントが前記暗号化データファイル内に連続しない順序で保存される、請求項２３または２４に記載の暗号化データファイル。
【請求項２６】
前記暗号化データセグメントが楕円曲線暗号（ＥＣＣ）暗号化アルゴリズムを用いて暗号化される、請求項２３から２５のいずれか一項に記載の暗号化データファイル。
【請求項２７】
各データセグメントが前記データセグメントの少なくとも一部の整合性を検証するための暗号化メッセージ認証コードを含む、請求項２３から２６のいずれか一項に記載の暗号化データファイル。
【請求項２８】
前記メッセージ認証コードが先行データセグメントの前記データセグメントの少なくとも一部の整合性を検証するためのものでもある、請求項２７に記載の暗号化データファイル。
【請求項２９】
前記先行データセグメントの一部が前記先行データセグメントのメッセージ認証コードを含む、請求項２８に記載の暗号化データファイル。
【請求項３０】
前記暗号化データファイルが暗号化生体認証データを含み、各データセグメントが生体認証識別子の離散数の特徴点を定義するデータを表す、請求項２３から２９のいずれか一項に記載の暗号化データファイル。
【請求項３１】
各データセグメントが前記生体認証識別子の単一の特徴点を定義するデータを表す、請求項３０に記載の暗号化データファイル。
【請求項３２】
請求項２３から３１のいずれか一項に記載の暗号化データファイルを保存するデータ記憶素子。
【請求項３３】
請求項３２に記載のデータ記憶素子を備える電子デバイス。
【請求項３４】
前記電子デバイスがスマートカードであり、好ましくは支払カードである、請求項３３に記載の電子デバイス。
【請求項３５】
前記電子デバイスが請求項１２から２０のいずれか一項に記載の方法を実行するように構成される、請求項３３または３４に記載の電子デバイス。
【請求項３６】
前記暗号化データファイルが暗号化生体認証データを含み、各データセグメントが前記生体認証識別子の離散数の特徴点を定義するデータを表す、請求項３５に記載の電子デバイス。
【請求項３７】
前記デバイスが、生体認証センサを備え、さらに、解読された生体認証データを、前記生体認証センサを用いてスキャンされた生体認証データと比較するように構成される、請求項３６に記載の電子デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを暗号化および解読する方法に関し、特に、データの異なる部分に対して異なるキーを用いてデータを暗号化および解読することに関する。
【背景技術】
【０００２】
決済業界では、例えば銀行口座番号、パスワード、請求先住所などの顧客の機密情報を常に安全に保持する必要があった。しかし、商人ネットワークまたはインターネットを通して機密データの転送を必要とするオンラインコマースへの移行を検討する場合、セキュリティは特に重要になる。
【０００３】
クレジットカードの４０年前の磁気ストリップを、インフィニオンによるＳＬＥ−７８セキュリティコントローラなどのマイクロコントローラベースの専用半導体支払チップに置き換えることへ向かう着実な進展があった。この種のチップは、プラスチック製のキャリアカードに埋め込まれると、金属製の接点板を備えるＥＭＶチップカードや非常に短い距離を介して接続して通信できるアンテナとして機能するようにプログラムできる。マイクロコントローラは、改ざん抵抗性であるように設計されているため、秘密情報（ＰＩＮまたは秘密暗号キーなど）をより安全にそのメモリ内に保存できる。この機能は、チップカード技術によりもたらされるセキュリティ上の利点を支える。
【０００４】
チップベースのクレジットカードは小さく、計算上の制限が厳しい。スモールフォームファクタ内にカプセル化できる処理能力、メモリ、セキュリティロジックには限りがある。さらに、非ガルバニック接触（または非接触）カード操作のみに依存するカードの場合、エネルギーはアンテナを介して「誘導」されるため、利用可能なエネルギーをさらに制限してカード内部の電子機器に給電するため、低レベルの電力／エネルギーのみがカードに供給できる。
【０００５】
最近の開発は、生体認証センサをＥＭＶカードに組み込むことである。このようなカードは、カードベアラの生体認証データ（指紋または他の生体認証ベースのテンプレートなど）を保存、送信、受信、および検証するように構成できる。生体認証識別子は変更できないため、ユーザの生体認証データを保護することは特に重要である。したがって、ユーザの生体認証データが無許可の第三者によって取得された場合、彼らはそのデータを無期限に利用できる。
【０００６】
通常、安全なデータは、安全な通信で一般に使用されるＲＳＡフレームワークなどの種々のアルゴリズム暗号化メカニズムによって保護されている。ＲＳＡは、非対称暗号アルゴリズムであり、暗号化と解読に各々派生した異種キーのペアを使用することを意味する。誰でも２つのキー（公開暗号化キーなど）の一方に関する情報を提供され、公開キーを適用してメッセージを暗号化できるが、秘密解読キーのベアラのみが合理的な時間でメッセージを効率的に解読できる。ＲＳＡ暗号システムのパワーとセキュリティは、「素因数分解問題」が難しいという前提に基づいている。すなわち、秘密解読キーを知らずにＲＳＡ暗号テキストを解読することは、大きな数を因数分解するための効率的なアルゴリズムがまだ存在しないため、実行不可能である。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
今日の計算能力により、意志が固いハッカーは、アルゴリズムが使い果たされるまでずっとデータを一度に大量処理することができる。さらに、量子コンピューティング（「ＱＣ」）の今後の導入により、一部のクラスの素因数分解が難しいという問題が、ますます素因数分解ＲＳＡキーなどのセキュリティ侵害に対して脆弱になる。したがって、第三者による生体認証データおよびその他のデータの介入、変更、および偽造から送信者と受信者を十分保護するために、ＱＣ導入を予測する必要がある。これは、機密個人情報−例えばスマートカードのプラットフォーム上の生体認証テンプレートなどの機密個人情報の安全な保存、ネットワークを介した安全なデータサーバーからの生体認証データの送信、送信されたデータに対する保存された生体認証テンプレートの認証を保護するためにさらなる意味がある。
【課題を解決するための手段】
【０００８】
第１の態様から見ると、本発明は、複数のデータセグメントを含むデータを暗号化する方法であって、各データセグメントを暗号化して複数の暗号化データセグメントを提供することであり、異なる暗号化キーを使用して各データセグメントを暗号化することと、暗号化データセグメントを含む暗号化データファイルを生成することであり、暗号化データセグメントの長さが不均一であり得、および／または暗号化データファイル内の暗号化データセグメントの間隔が不均一であり得ることとを含む方法を提供する。
【０００９】
この方法によれば、比較的小さなデータセグメントを暗号化するために多数のキーが使用され、ブルートフォース攻撃を用いて暗号化を無効にすることは困難である。さらに、暗号化データセグメントの長さが異なるか、データセグメントが暗号化データファイル内で不均等な間隔またはオフセットであるため、攻撃者は、各暗号化セグメントがどこで始まり、どこで終わるか知らないため、暗号化データファイルは、量子コンピュータによるような並列コンピューティング攻撃に対して抵抗力がある。したがって、多くの可能な連続した置換を攻撃する必要があるため、ファイルの暗号化全体を攻撃しようと試みることは困難である。
【００１０】
したがって、記載の方法は、大規模な並列処理攻撃に対して抵抗力がある非常に強力な暗号化を可能にするか、または代替的に、複数の暗号化キーと短い（可変長）データセグメントの使用により、比較的弱い暗号化アルゴリズムを用いて同等に強力な暗号化を実現でき、したがって、低電力デバイスでも高速処理が可能になる。
【００１１】
好ましくは、暗号化キーに対応する解読キーのいずれも、いずれか他方の暗号化キーに対応する解読キーに基づいて計算することができない。その結果、攻撃者が１つのデータセグメントで使用された暗号化を破り、その解読キーを決定した場合でも、攻撃者は任意の後続データセグメントの解読キーを決定できない。
【００１２】
各データセグメントは、好ましくは暗号化データファイル内の次の暗号化データセグメントの位置や長さを識別するためのインジケータを含む。インジケータは、次の暗号化データセグメントの位置や数値の長さを指示するポインタであり得る。代替的に、インジケータは、例えば暗号化および解読する当事者に知られている他のデータまたはプロセスと組み合わせて、位置や長さを導出するのに適したデータを含んでもよい。したがって、データセグメントは認証受信者によって順番に解読されるため、一連の次のデータセグメントにすぐにアクセスできる。しかし、上記のように、ファイルの無許可の受信者は、各データセグメントがどこで始まり、どこで終わるか知らないため、並列コンピューティング攻撃によりファイル全体を容易に攻撃することはできない。
【００１３】
暗号化データセグメントの不均一な間隔は、種々の方法で実現できる。例えば、特定のデータが暗号化データセグメントまたはランダムデータの暗号テキストの一部であるかどうかを検出できないように、ランダムな長さのランダムなデータをデータセグメント間に追加できる。
【００１４】
好ましくは、暗号化データセグメントは、連続しない順序で暗号化データファイル内に保存される。したがって、セグメントは、任意の順序であり得、使用可能な置換の数を増やすことができる。
【００１５】
データセグメントは、暗号化および解読する暗号化アルゴリズムを用いて暗号化できる。暗号化アルゴリズムは、ブロック暗号、すなわち、キーによって指定されるブロックと呼ばれる固定長のビット群に不変変換を適用する暗号化アルゴリズムであり得る。例示的な暗号化アルゴリズムには、例えば、高度暗号化標準（ＡＥＳ）アルゴリズムおよび楕円曲線暗号化（ＥＣＣ）アルゴリズムが含まれる。
【００１６】
ブロック暗号を使用する場合、不均一なデータセグメント長は、例えば、各セグメントで異なる数のブロックを使用することにより実現できる。代替的に、異なるデータセグメントに異なるブロック長を使用することも可能である。ブロック長の変更には、キー長の対応する変更も必要であることが理解されよう。
【００１７】
好ましくは、各暗号化キーは共通のシード値から生成される。したがって、単一のシード値のみが、すべての暗号化キー（すなわち対称キーアルゴリズムのための解読キー）を生成するために必要とされる。しかし、共通のシード値から暗号化キーを生成するアルゴリズムは、好ましくは、可逆的ではない、すなわち、暗号化キーの１つを見つけた攻撃者はシード値を決定するためにこれを使用できない。シード値は、例えば、製造中などに電子デバイスのセキュアメモリ内に保存された固有のコードであり得、および／または物理的に複製不可能な機能（ＰＵＦ）などにより、特定の電子デバイス内に固有の特性を測定することにより導出してもよい。ＰＵＦは、半導体集積回路の微細欠陥の固有の特性により生ずる固有の動作である。
【００１８】
各データセグメントは、データセグメントの少なくとも一部の整合性を検証するためのメッセージ認証コードを備えてもよい。メッセージ認証コード（ＭＡＣ）は、メッセージの認証すなわち、メッセージが指定された送信者からのものであり、データ送信中に変更されていないことを確認するために使用される短い情報である。ＭＡＣアルゴリズムは、入力として、秘密キーと認証される任意の長さのメッセージを受け入れ、ＭＡＣ（タグとも呼ばれる）を出力する。ＭＡＣを生成するためのアルゴリズムは多数あるが、キーを知らずに特定のメッセージに有効なＭＡＣを計算することは計算上実行不可能である。
【００１９】
メッセージ認証コードは、各データセグメントの暗号化キーを用いて生成できる。あるいは、メッセージ認証コードは、暗号化キーを生成するためのシード値に基づいて生成された秘密キーを用いて生成されてもよい。通常、メッセージ認証コードには、暗号ハッシュなど、メッセージ由来の情報が含まれる。
【００２０】
メッセージ認証コードは、好ましくは、先行データセグメントの少なくとも一部の整合性を検証するのにも適している。例えば、先行セグメントの一部には、先行セグメントのメッセージ認証コードが含まれる。したがって、後続メッセージ認証コードの再計算がさらに必要になるため、メッセージに対するどのような改ざんも困難である。
【００２１】
データは、生体認証データを含むことができ、各データセグメントは、生体認証識別子または生体認証テンプレートの離散数の特徴点を定義するデータを表す。一実施形態では、各データセグメントは、生体認証識別子または生体認証テンプレートの単一の特徴点を定義するデータを表してもよい。上記のように、個人の生体認証識別子は変更できないため、生体認証データを保護することは非常に重要である。
【００２２】
生体認証識別子は、例えば指紋であり得る。指紋の場合、特徴点としては、隆線の終端、隆線の分岐、短いまたは独立した隆線、島、隆線の囲い、拍車、交差または橋、デルタ、コアのいずれか１つ以上が挙げられてもよい。現在指紋の表示に使用されている最も一般的な特徴点は、隆線の終端と隆線の分岐である。他の生体認証特徴点には、特徴内の形状または他の指標が含まれてもよく、これには超音波法で解明されるような特徴の３次元表示が含まれてもよい。
【００２３】
通常、特徴点は、少なくとも位置（例えば、デカルト座標系または極座標系の）および特徴点角度により表され得る。しかし、特徴点はまた、または代替的に、相対座標系で隣接する特徴点の位置を定義することにより表されてもよい。データが隣接する特徴点を定義するデータを含み、異なる特徴点に異なる数の隣接する特徴点がある場合、データセグメントは結果として当然異なる長さであり得る。いくつかの実施形態では、生体認証データは三次元で表されてもよい。
【００２４】
第２の態様から見ると、本発明は、複数の暗号化データセグメントを含む暗号化データファイルを解読する方法も提供し、暗号化データセグメントの長さは不均一であり、および／または暗号化データファイル内の暗号化データセグメントの間隔は不均一であり、本方法は、第１の暗号化データセグメントの位置を識別することと、解読キーを用いて第１の暗号化データセグメントを解読することと、後続暗号化データセグメントごとに、後続暗号化データセグメントの位置を識別することと、以前に使用されたすべての解読キーとは異なる解読キーを用いて、後続暗号化データセグメントを解読することとを含む。
【００２５】
暗号化データファイルを解読する前に、第１の暗号化データセグメントの位置や長さを知ることができる。例えば、暗号化データファイルの第１のビットなど、第１の暗号化データセグメントの位置は事前に同意されてもよい。代替的または追加的に、第１の暗号化データセグメントの位置は、暗号化データファイル内に含まれてもよい。例えば、ファイルには、第１のデータビットの位置を示すメタデータが含まれてもよい。メタデータは、暗号化されていない形式でもよく、暗号化されてもよい。
【００２６】
後続暗号化データセグメントの位置および長さを識別することは、先行データセグメントに含まれる識別子から後続暗号化データセグメントの位置および長さを識別することを含んでもよい。例えば、暗号化データセグメントは、連続しない順序で暗号化データファイル内に保存されてもよい。
【００２７】
代替的に、暗号化データセグメントが暗号化データファイル内に連続順で保存される場合、データセグメントはデータセグメントの終わりを示す識別子を含んでもよい。したがって、後続暗号化データセグメントの位置を識別することは、先行暗号化データセグメントの終わりを識別することを含んでもよい。これは、好ましくは解読後にのみ可能である。したがって、攻撃者は、元の暗号化データファイルに基づいて各データセグメントの長さをまだ決定できない。
【００２８】
データセグメントは、データを暗号化および解読する暗号化アルゴリズムを用いて暗号化できる。データセグメントは、ブロック暗号化アルゴリズムを用いて暗号化できる。
【００２９】
各解読キーは、物理的に複製不可能な機能（ＰＵＦ）に由来し得る共通のシード値から生成されてもよい。共通のシード値は、好ましくは暗号化データファイルに含まれない。例えば、共通のシード値は、事前に同意された秘密値でもよく、または例えば公開キー暗号化を用いて、暗号化データファイルとは別に交換されてもよい。
【００３０】
各データセグメントは、データセグメントの少なくとも一部の整合性を検証するためのメッセージ認証コードを備えてもよい。メッセージ認証コードは、先行データセグメントの少なくとも一部の整合性を検証するためのものでもあり得る。先行セグメントの一部には、先行セグメントのメッセージ認証コードが含まれる。
【００３１】
本方法は、データセグメントごとにメッセージ認証コードを生成することと、生成されたメッセージ認証コードを暗号化データセグメントからのメッセージ認証コードと比較することとをさらに含む。
【００３２】
別の態様から見ると、本発明はまた、コンピュータプログラム製品、またはコンピュータプログラム製品を保存する有形のコンピュータ可読媒体を含んでもよく、コンピュータプログラム製品は、プロセッサにより実行されると、記載のオプション機能または好ましい機能のいずれかをオプションで含む上記方法のいずれかをプロセッサに実行させるコンピュータ実行可能命令を含む。
【００３３】
本発明は、記載のオプション機能または好ましい機能のいずれかをオプションで含む上記方法のいずれか１つ以上を実行するように構成された電子デバイスを提供してもよい。例えば、電子デバイスは、暗号化方法も解読方法も実行するように適合されてもよい。
【００３４】
電子デバイスは、例えば、コンピューティングデバイスであり得、スマートカードであり得る。
【００３５】
第３の態様から見ると、本発明は、複数の暗号化データセグメントを含む暗号化データファイルも提供し、各暗号化データセグメントは異なる暗号化キーで暗号化され、暗号化データセグメントの長さは不均一であり、および／または暗号化データファイル内の暗号化データセグメントの間隔は不均一である。
【００３６】
上記のように、提案された暗号化データファイルは、ブルートフォース攻撃を用いて無効にすることは困難であり、暗号化データセグメントの長さが異なったりデータセグメントが暗号化データファイル内で不均等な間隔であるため、並列コンピューティング攻撃に対して特に抵抗力があり、したがって、攻撃者はファイルを順次攻撃するか、並列技術を用いて暗号化を攻撃するためにさらに多くの置換を試みる必要があることを意味する。
【００３７】
好ましくは、暗号化キーに対応する解読キーのいずれも、いずれか他方の暗号化キーに対応する解読キーに基づいて計算できない。
【００３８】
暗号化データセグメントは、暗号化データファイル内に連続しない順序で保存されてもよい。各データセグメントは、暗号化データファイル内の次の暗号化データセグメントの位置や長さを識別するインジケータを備えてもよい。
【００３９】
暗号化データセグメントは、ＡＥＳアルゴリズムまたはＥＣＣアルゴリズムなど、データを暗号化および解読する暗号化アルゴリズムを用いて暗号化してもよい。
【００４０】
各データセグメントは、データセグメントの少なくとも一部の整合性を検証するための暗号化メッセージ認証コードを備えてもよい。メッセージ認証コードは、先行データセグメントの少なくとも一部の整合性を検証するためのものでもある。先行データセグメントの一部には、先行データセグメントのメッセージ認証コードが含まれる。
【００４１】
暗号化データファイルは、暗号化生体認証データを含んでもよく、各データセグメントは、生体認証識別子の離散数の特徴点を定義するデータを表してもよい。各データセグメントは、生体認証識別子の単一の特徴点を定義するデータを表してもよい。
【００４２】
暗号化データファイルは、第１の態様による方法によって生成されてもよく、その方法またはその好ましい態様に起因する任意の特徴を含んでもよいことが理解されるであろう。同様に、暗号化データファイルは、第２の態様による方法により解読可能であり得、その方法またはその好ましい態様での使用に必要などのようなものも含んでもよい。
【００４３】
さらなる態様から見ると、本発明は、上記のような暗号化データファイルを保存するデータ記憶素子を提供する。
【００４４】
本発明はまた、データ記憶素子を含む電子デバイスを提供してもよい。電子デバイスは、支払カードなどのスマートカードであり得る。
【００４５】
電子デバイスは、第２の態様に記載の任意のオプションの機能または好ましい機能をオプションで含む解読方法を実行するように構成される。
【００４６】
暗号化データファイルは暗号化生体認証データを含んでもよく、各データセグメントは生体認証識別子の離散数の特徴点を定義するデータを表し、デバイスは生体認証センサを含んでもよい。デバイスはさらに、解読された生体認証データを、生体認証センサを用いてスキャンされた生体認証データと比較するように構成されてもよい。
【００４７】
本発明の特定の好ましい実施形態を、例示のみを意図して添付の図面を参照して以下に、より詳細に説明する。
【図面の簡単な説明】
【００４８】
【図１】暗号化プロセスのステップを示す図である。
【図２】暗号化データファイルを生体認証されたスマートカードに送信するコンピューティングデバイスを示す図である。
【図３】受信した暗号化データファイルの構造と、スマートカードのセキュアメモリに保存された関連する秘密メタデータを示す図である。
【発明を実施するための形態】
【００４９】
以下の実施形態は、ｎ次元（各々が個々の生体特徴ベクトルを表す）を横切って情報を分割する並列コンピューティング抵抗性および量子コンピューティング抵抗性のデータ保護プロセスを説明する。データ要素は順次保存されるのではなく、各々記録ごとに異なるデータ属性（必ずしも区分された生体認証情報などの固定長データを含まない）がある個別要素に分割される。これらの記録は、次いで、連続的かつ漸進的なキー変換により変化する変異暗号化キーで保護される。
【００５０】
暗号化では、保存された情報の整合性をさらに保証するために、メッセージ認証コード（ＭＡＣ）に加えてセキュリティを向上させるために、暗号化キーを置換する静的キー（すべてのデータ要素に共通）とは異なり、継続的置換暗号化キー（下記のように種々の手法に基づいて置換可能）を使用すると、量子コンピュータによるようなものを含む並列コンピューティング攻撃だけでなくブルートフォース攻撃に十分抵抗するため、暗号化データの抽出の困難さが高まるであろう。
【００５１】
従来の（先行技術の）実施の複数のデータ記憶素子の処理は次のとおりである：
・送信者と受信者は、例えば、公開キー暗号化、公開キー交換（Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎキー交換など）を用いて、または事前交渉により、生体認証データを送信する前に使用される秘密キーに同意する。
【００５２】
・送信者は、秘密キーを用いて暗号化したデータを受信者に送信する。送信者はまた、送信されたデータと受信者にまた送信される秘密キーに基づいてメッセージ認証コードを生成する。
【００５３】
・相手側では、受信者は秘密キーを用いてデータを解読する。
【００５４】
・受信者は、データが相手側でそのまま受信されることを確認して、送信者が実際にデータを送信したことを保証したい。これを行うために、受信者は受信されたデータと秘密キーに基づいてメッセージ認証コードを生成し、その値を送信者からのメッセージで受信したメッセージ認証コードと比較する。
【００５５】
・計算された値が受信された値と異なる場合、途中でデータが改ざんされて、スマートカードは役立たないとみなすことができる。
【００５６】
・計算された値が受信された値と同じ場合、データは整合性と認証のテストに合格したとみなすことができる。
【００５７】
「ワンタイムキー」暗号化ベースのアプローチに類似した、より高いレベルのエントロピー情報保護の実現は、変異、自己有効化、本来ＱＣベースの開発に抵抗性の計算複雑性を追加するプログレッシブキー移行プロセスを導入することにより達成できる。追加的に置換暗号化キーを適用すると、保護が強化され、以前に暗号化された特徴点マップの再作成にエントロピー計算負荷も逐次計算負荷も追加される。
【００５８】
キーを置換するために、任意の再現可能な機能を使用してもよいが、機能は、好ましくは少なくとも不可逆的な機能である。キー置換プロセスを実行するための例示的な手法には、ワンタイムパスワードの生成として知られているものが含まれてもよい。好ましい実施形態では、キー置換プロセスは遺伝的変異アルゴリズムを使用する。いくつかの実施形態では、キー置換アルゴリズムは、キーが置換されるたびに生成されたキー長を変更することを許可してもよい。
【００５９】
キーの置換に適した遺伝子突然変異アルゴリズム手法の具体例は、以下の記事にある：
ＡＲＲＡＧ，Ｓｌｉｍａｎら、“Ｒｅｐｌａｃｅ  ＡＥＳ  Ｋｅｙ  Ｅｘｐａｎｓｉｏｎ  Ａｌｇｏｒｉｔｈｍ  ｂｙ  Ｍｏｄｉｆｉｅｄ  Ｇｅｎｅｔｉｃ  Ａｌｇｏｒｉｔｈｍ”、Ａｐｐｌｉｅｄ  Ｍａｔｈｅｍａｔｉｃａｌ  Ｓｃｉｅｎｃｅｓ、２０１３年、第７巻、第１４４号、７１６１−７１７１頁
ＤＥＶＩ，Ｓ．ら、“Ａ  Ｐｕｂｌｉｃ  Ｋｅｙ  Ｃｒｙｐｔｏｓｙｓｔｅｍ  ｕｓｉｎｇ  ＥＣＣ  ａｎｄ  Ｇｅｎｅｔｉｃ  Ａｌｇｏｒｉｔｈｍ”、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｊｏｕｒｎａｌ  ｏｆ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｒｅｓｅａｒｃｈ  ＆  Ｔｅｃｈｎｏｌｏｇｙ、２０１４年２月、第３巻、第２号
例示の実施形態による複数のデータ記憶素子の処理は次のとおりであり、図１にグラフで示す。
【００６０】
・送信者と受信者は、生体認証データを送信する前に使用される秘密キーシードに同意する。上記のように、これは公開キー暗号化、公開キー交換を用いて、または事前交渉により同意することができる。一実施形態では、秘密キーシードは、物理的に複製不可能な機能（ＰＵＦ）またはスマートカードなどのデバイスの他の固有の物理的に導出可能な特性から導出することができる。
【００６１】
・データは複数のデータセグメントに分割される。例えば、生体認証データの場合、各データセグメントは単一の特徴点を表してもよい。データセグメントは必ずしも同じ長さである必要はなく、オプションでデータセグメント間にランダムなデータを追加して、各データセグメントの開始ビット間に不均等な間隔を作成することができる。
【００６２】
・次に、データセグメントが暗号化される命令である暗号化命令が生成される。命令は、好ましくは、少なくとも非連続であり、ランダムまたは擬似ランダムであり得る。この命令は、暗号化デバイスに局所的に生成されてもよく、事前に構成する必要はない。しかし、受信者は暗号化命令の第１のデータセグメントを識別できる必要がある。例えば、第１のデータセグメントを識別するために、暗号化されていない形式にポインタを含めてもよい。または、第１のデータセグメントなどの開始データセグメントを受信者と事前に同意してもよい。
【００６３】
・次に、各データセグメント（最後のセグメントを除く）に、暗号化命令内の次のセグメントを示すポインタが追加される。
【００６４】
・次いで、データセグメントは、暗号化命令に記載の順に１つずつ暗号化される。各セグメントについての暗号化プロセスは次のとおりである：
ｏキーシードが変異する。例えば、キーシードは、第１の一方向関数により変更されてもよい。
【００６５】
ｏ次に、例えば、変異したキーシードに第２の異なる一方向関数を用いることにより、暗号化キーが生成される。異なる一方向関数を用いると、先行キーを使用して後続キーを計算することはできない。
【００６６】
ｏオプションのメッセージ認証コードを生成し、データセグメントに追加してもよい（下記のように）。
【００６７】
ｏデータセグメントは、生成された暗号化キーを用いて暗号化される。
【００６８】
したがって、各データセグメントには次のセグメントへのリンクが含まれ、置換キーシードから計算された異なる暗号化キーを用いて暗号化される。
【００６９】
この種の処理は、複数の暗号化キーが使用され、各キーが比較的小さな割合のデータのみを暗号化するため、ブルートフォース攻撃に対して非常に抵抗力がある。しかし、暗号化キーは比較的容易に計算できるため、暗号化および解読プロセスを大幅に遅らせることはない。
【００７０】
さらに、本処理は、量子コンピュータなどの超並列処理デバイスからの攻撃に対して特に抵抗力がある。これは、次のセグメントがファイル内のどこにあるかを知るために、先行セグメントを解読する必要があるためである。無許可の第三者がファイル全体を力ずくで解読しようとすると、コンピューティングデバイスは各暗号化セグメントの開始位置と終了位置を知らないため、テストが必要なことになる可能な置換の数が大幅に増加することになる。
【００７１】
オプションで、種々のデータセグメントを暗号化するために、種々のキー長や種々の暗号化アルゴリズムを使用してもよい。この場合、各データセグメントには、後続データブロックに使用されるキー長や暗号化アルゴリズムの表示が含まれてもよい。この場合、暗号化／解読キーの生成に使用される一方向関数は、適切なキーを生成するように、示されたキー長や暗号化アルゴリズムに基づいて選択されてもよい。
【００７２】
上記のように、メッセージ認証コード（ＭＡＣ）は、生体認証データと共存してセキュリティ層を追加してもよい。メッセージ認証は、データの真正性と整合性を検証するために暗号システムで使用される方法である。メッセージ認証の整合性の側面は、データが、意図された受信者に到達する前に何ら変更されないことを確認することに関係し、真正性の側面は、データが、受信者が由来すると期待しているエンティティに由来することを確認することに関係する。各ＭＡＣは先行ＭＡＣにリンクされており、検証要件の程度の差はあってもプログラムできる。ＭＡＣは可変長であり得、可変長は、データセグメントの長さを変化させることによりアルゴリズムのハッキングをより困難にするため、追加の利点を提供する。
【００７３】
暗号化データファイルには、任意のデータセグメントの破損によりファイルの残りが読み取れないため、強力なエラー訂正保護が含まれている必要がある。
【００７４】
暗号化データファイルを解読するために、本プロセスの暗号化部分は、次のとおり逆に実行される。
【００７５】
・送信者と受信者は、生体認証データを送信する前に使用される秘密キーシードに同意する。
【００７６】
・受信者は、上記のように暗号化した送信者から暗号化データファイルを受信する。
【００７７】
・受信者は、暗号化命令の第１のデータセグメントを識別する。例えば、上記のように、第１のデータセグメントを識別するために、暗号化されていない形式にポインタを含めてもよく、または開始データセグメントを送信者と事前に同意してもよい。
【００７８】
・次いで、データセグメントが、次のとおり１つずつ解読される：
ｏキーシードが変異する。例えば、キーシードは一方向関数により変更されてもよい。
【００７９】
ｏ次に、例えば、変異キーシード上の異なる一方向関数を用いることにより、暗号化／解読キーが生成される。
【００８０】
ｏデータセグメントが、生成された暗号化キーを用いて解読される。
【００８１】
ｏオプションで、メッセージ認証コードが生成され、データセグメントに含まれるメッセージ認証コードと比較される。
【００８２】
本アルゴリズムは、スマートカードなどの計算上制限された環境中だけでなくハードウェアおよびソフトウェア中に容易に実装されることが周知の対称アルゴリズムでも非対称アルゴリズムでも実現でき、種々の攻撃手法に対する優れた防御を提供する。対称アルゴリズムも非対称アルゴリズムも、置換キーを使用することが可能であり、スマートカードの制限されたコンピューティング環境で迅速かつ効率的に処理することが可能である。使用できる例示的な暗号化アルゴリズムを以下に記載する。
【００８３】
例えば、高度暗号化標準（「ＡＥＳ」）データ暗号化は、数学的に効率的な暗号化アルゴリズムであるが、その主な強みは、キー長のオプションにある。暗号化アルゴリズムを解読するために必要な時間は、通信を保護するために使用されるキー長に直接関係している。
【００８４】
ＡＥＳは、１２８ビット、１９２ビットおよび２５６ビットの暗号キーを用いて、１２８ビットのブロック内にデータを暗号化および解読する。１２８ビットキーには１０ラウンド、１９２ビットキーには１２ラウンド、２５６ビットキーには１４ラウンドがある。ラウンドは、入力された普通テキストの置換、転位、混合を含むいくつかの処理ステップからなり、それを暗号テキストの最終出力に変換する。
【００８５】
このアルゴリズムのキー拡張は、ＡＥＳに弱鍵がないことを保証するのに役立つ。弱鍵は、予測可能な方法で暗号のセキュリティを低下させるキーである。例えば、ＤＥＳには弱鍵があることが知られている。ＤＥＳの弱鍵は、１６ラウンドの各々に対して同一のラウンドキーを生成するものである。ＤＥＳのこの種の弱鍵により、すべてのラウンドキーが同一になり、今度は暗号化が自己反転する。すなわち、普通テキストは、暗号化し、次いで再度暗号化すると、同じ普通テキストに戻るであろう。これは、ＡＥＳまたは下記の楕円曲線暗号化では起こり得ない。
【００８６】
楕円曲線暗号化（「ＥＣＣ」）は、比較的短い暗号化キーを使用する効率的な暗号化アルゴリズムである。それは、ＲＳＡなどの他の第１世代暗号化公開キーアルゴリズムよりも高速で、必要な計算能力が小さいため、低電力で計算上制限された環境にとって望ましい。例えば、１６０ビットＥＣＣ暗号化キーは、１０２４ビットＲＳＡ暗号化キーと同じセキュリティを提供し、それが実施されるプラットフォームに応じて１５倍まで高速になり得る。
【００８７】
楕円曲線は、２つの軸が交差するループ線として表される。ＥＣＣは、線が軸と交差する点由来の数学群から作成された特定のタイプの方程式の特性に基づいている。曲線上の点に数値を掛けると、曲線に別の点が生成されるが、元の点と結果がわかっていても、使用された数値が何かを見つけることは非常に困難である。楕円曲線に基づく方程式には、暗号化目的にとって非常に価値のある特性がある。これらは比較的容易に実行できるが、元に戻すことは非常に困難である。
【００８８】
図２は、暗号化アルゴリズムを用いて、コンピューティングデバイス１００から生体認証により作動するスマートカード２０２に送信される生体認証データを保護する例示的な状況を示す。
【００８９】
スマートカード２０２は、オンボード指紋センサ２３０と、スマートカード２０２のベアラの指紋検証のための内部制御ユニット（図示せず）を含む。スマートカード２０２は、例えば、カードベアラの身元の確認後にのみアクセスまたは支払取引を許可するアクセスカードまたは支払カードであり得る。このようなデバイスは、国際公開第２０１６／０５５６６５号に記載のように当業者には知られており、本明細書では特定の詳細は記載されない。
【００９０】
例示の実施形態では、生体認証テンプレートは、中央コンピュータ１００に保存される。生体認証テンプレートは、隆線の終端と隆線の分岐などのユーザの指紋の複数の特徴点を表すデータから構成されている。各特徴点は、例えば、座標位置と特徴点角度として表されてもよい。各特徴点を表すデータは、各々の特徴点に隣接する他の特徴点の相対位置を定義するデータも含んでもよい。
【００９１】
ユーザに新たなスマートカード２０２が発行されると、ユーザの生体認証テンプレートをスマートカードに埋め込む必要がある。国際公開第２０１６／０５５６６５号のシステムにより、ユーザは、オンボード指紋センサ２３０を用いてスマートカードに直接登録することができる。しかし、無許可の個人が、彼らの生体認証データを傍受し、偽って登録するリスクがある。したがって、ユーザは、彼らの身元を検証できる銀行などの安全な位置に一度彼らの生体認証データを登録してもよく、この生体認証テンプレートをコンピューティングデバイス１００に保存してもよい。
【００９２】
したがって、生体認証テンプレートをスマートカード２０２に登録するには、生体認証テンプレートをスマートカード２０２に送信する必要がある。したがって、テンプレートは、傍受された場合、読み取ったり使用したりできないことを保証することが望ましい。したがって、生体認証テンプレートを暗号化する必要がある。
【００９３】
各スマートカード２０２は、固有の秘密キーを用いて事前にプログラムされる。これは、スマートカード２０２のセキュアメモリ２１０およびコンピュータ１００の安全なデータベースに保存される。
【００９４】
送信前に、生体認証テンプレートは、上記の手法を用い、かつ暗号化キーシードとしてスマートカード２０２の秘密キーを用いて最初に暗号化される。暗号化に使用される各データセグメントは、単一の特徴点を表し、キーは各セグメントに対して置換される。次いで、結果として生じる暗号化データファイルは、コンピューティングデバイス１００からスマートカード２０２に送信される。
【００９５】
図３に示すように、スマートカードメモリ２１０は、秘密キーを保存し、これを使用して暗号化データファイルを解読し、ＭＡＣを用いてデータファイルを検証し、次いで、スマートカード２０２のセキュアメモリ２１０内の生体認証テンプレートに対応する特徴点マップを再構築してもよい。
【００９６】
上記の実施形態は送信の文脈で記載されているが、記載の暗号化手法はデータの安全な保存にも使用できることが理解されよう。例えば、カード自体への生体認証登録の場合、生体認証テンプレートを送信する必要はない。好ましくは、テンプレートは、固有のＰＵＦ、またはデバイスに固有の同等のキーを用いて暗号化される。このように、暗号化テンプレートが取得されても、他のいかなるセンサ／スマートカードで使用することはできない。
【図１】
2020522205.tif 000003
【図２】
2020522205.tif 000004
【図３】
2020522205.tif 000005
【国際調査報告】
2020522205.tif 000006
2020522205.tif 000007
2020522205.tif 000008