(57)【要約】  本発明は、公開鍵（ｐｋ）を生成するサブステップと、復号鍵（ｄｋ）を生成するサブステップと、導出鍵（ｔｋ）を生成するサブステップと、からなるサブステップを有する、鍵を生成するステップと、第１のエンティティについて、当該公開鍵（ｐｋ）および暗号（ｃ）を使用して当該メッセージ（ｍ）を暗号化するステップと、第２のエンティティについて、当該メッセージ（ｍ）を見つけ出すために暗号（ｃ）を復号するステップと、当該メッセージ（ｍ）に関連付けられたトラップドアを生成するステップであって、当該トラップドアは当該メッセージ（ｍ）特有の当該導出鍵の導出に対応する、トラップドアを生成するステップと、テスト暗号（ｃ’）について、テスト暗号（ｃ’）が当該公開鍵（ｐｋ）を使用した当該メッセージ（ｍ）の暗号化（ｃ）であるかを、当該メッセージ（ｍ）に関連付けられた当該トラップドアを使用してテストするステップと、を含む、メッセージ（ｍ）を暗号化／復号化するための方法に関する。【選択図】  図１
2009529714.tif 000002
【特許請求の範囲】
【請求項１】
−鍵を生成するステップであって、
・公開鍵（ｐｋ）を生成するサブステップと、
・前記公開鍵に関連付けられた復号鍵（ｄｋ）を生成するサブステップと、
・前記公開鍵に関連付けられた導出鍵（ｔｋ）を生成するサブステップと、
からなるサブステップを有する、複数の鍵を生成するステップと、
−第１のエンティティについて、前記公開鍵（ｐｋ）を使用してメッセージ（ｍ）を暗号（ｃ）に暗号化するステップと、
−第２のエンティティについて、前記メッセージ（ｍ）を見つけ出すために前記暗号（ｃ）を復号するステップと、
−前記メッセージ（ｍ）に関連付けられ、前記メッセージ（ｍ）に属する前記導出鍵の導出に対応するトラップドア（Ｔ（ｍ））を生成するステップと、
−テスト暗号（ｃ’）について、前記テスト暗号（ｃ’）が前記公開鍵（ｐｋ）を使用した前記メッセージ（ｍ）の暗号化（ｃ）であるか、前記メッセージ（ｍ）に関連付けられた前記トラップドア（Ｔ（ｍ））を使用してテストするステップと、
からなるステップを有する、メッセージ（ｍ）を暗号化／復号化するための方法。
【請求項２】
−鍵を生成するステップであって、
・公開鍵（ｐｋ）を生成するサブステップと、
・前記公開鍵に関連付けられた復号鍵（ｄｋ）を生成するサブステップと、
・前記公開鍵に関連付けられた導出鍵（ｔｋ）を生成するサブステップと、
からなるサブステップを有する、鍵を生成するステップを有し、
前記公開鍵（ｐｋ）は第１のサブキー（ｐｋK）および第２のサブキー（ｐｋＩ）を備え、
前記第１のサブキー（ｐｋK）は第１の鍵カプセル化メカニズム（ＫＥＭ）の公開カプセル化鍵であり、
前記復号鍵（ｔｋ）は前記第１のサブキー（ｐｋK）に関連付けられた秘密鍵（ｓｋK）であり、
前記第２のサブキーは、第２の識別ベースの鍵カプセル化メカニズム（ＩＤ−ＫＥＭ）の識別ベースの公開鍵であり、
前記導出鍵（ｔｋ）は前記第２のサブキー（ｐｋＩ）に関連付けられた秘密鍵（ｔｋＩ）であり、
−前記第１の鍵カプセル化メカニズム（ＫＥＭ）を適用するステップと、
−その識別パラメータは前記メッセージ（ｍ）である前記第２の識別ベースの鍵カプセル化メカニズム（ＩＤ−ＫＥＭ）を適用するステップと、
からなるステップを有する、メッセージ（ｍ）を暗号化／復号化するための方法。
【請求項３】
・前記鍵カプセル化メカニズム（ＫＥＭ）を実施する第１の処理ブロックを定義するステップと、
・前記第２の識別ベースの鍵カプセル化メカニズム（ＩＤ−ＫＥＭ）を実施する、第２の処理ブロックを定義するステップと、
・第３の処理ブロック（Ｅ１）を定義するステップと、
・第４の処理ブロック（Ｅ２）を定義するステップと、
・前記第１の処理ブロックの入力として、第１の入力パラメータ（ｒ）を提供するステップと、
・前記第１の処理ブロックの出力として、第１の対称セッション鍵（ｓ）に対応する第１の出力、および、前記第１のセッション鍵の第１の鍵暗号（ｃ１）に対応する第２の出力を、前記第１のサブキー（ｐｋK）を使用して生成するステップと、
・前記第１のセッション鍵を前記第３の処理ブロックの入力として提供するステップと、
・前記メッセージを前記第３のブロックの入力として提供するステップと、
・前記第１の対称セッション鍵および前記メッセージを使用して、第２のメッセージ（ｃ２）暗号を生成するステップと、
・前記第１のセッション鍵を前記第２の処理ブロックの入力として提供するステップと、
・前記メッセージを前記第２の処理ブロックの入力として提供するステップと、
・前記第２の処理ブロックの出力として、第２の対称セッション鍵（ｕ）に対応する第１の出力、および、前記第２のセッション鍵の第３の鍵暗号（ｃ３）に対応する第２の出力を、前記第２のサブキーおよび前記メッセージを使用して生成するステップと、
・前記第２のセッション鍵を前記第４の処理ブロックの入力として提供するステップと、
・前記第１の入力パラメータを前記第４の処理ブロックの入力として提供するステップと、
・前記第１の入力パラメータおよび前記第２のセッション鍵を使用して、第４のパラメータ暗号（ｃ４）を生成するステップと、
からなるステップを有し、
前記暗号は、前記第１の暗号、前記第２の暗号、前記第３の暗号、および前記第４の暗号を有する、
請求項２に記載の暗号化方法。
【請求項４】
−前記第１の暗号（ｃ１）および前記復号鍵から、前記第１の対称セッション鍵（ｓ）を見つけ出すステップと、
−前記第３の処理ブロックに関する前記対称セッション鍵（ｓ）を使用して、前記第２の暗号（ｃ２）を復号するステップと、
−前記メッセージ（ｍ）を見つけ出すステップと、
から成るステップを有する、請求項３に記載の暗号化されたメッセージを復号するための方法。
【請求項５】
・前記第２の識別ベースの鍵カプセル化メカニズム（ＩＤ−ＫＥＭ）を実施する、第５の処理ブロックを定義するステップと、
・前記鍵カプセル化メカニズム（ＫＥＭ）を実施する第６の処理ブロックを定義するステップと、
・第７の処理ブロック（Ｅ）を定義するステップと、
・前記第５の処理ブロックの入力として、第２の入力パラメータ（ｒ’）を提供するステップと、
・前記第５の処理ブロックの入力として、前記メッセージ（ｍ）を提供するステップと、
・前記第５の処理ブロックの出力として、第３の対称セッション鍵（ｕ’）に対応する第１の出力、および、前記第３のセッション鍵の第５の鍵暗号（ｃ５）に対応する第２の出力を、前記第２のサブキー（ｐｋＩ）および前記メッセージを使用して生成するステップと、
・前記第３の対称セッション鍵（ｕ’）を前記第６の処理ブロック（ＫＥＭ）に提供するステップと、
・前記第６の処理ブロック（ＫＥＭ）の出力として、第４の対称セッション鍵（ｓ’）に対応する第１の出力、および、前記第４のセッション鍵の第６の鍵暗号（ｃ６）に対応する第２の出力を、前記第１のサブキー（ｐｋK）を使用して生成するステップと、
・前記第７の処理ブロック（Ｅ）の入力として、前記第４のセッション鍵（ｓ’）を提供するステップと、
・前記第７の処理ブロックの入力として、前記第２の入力パラメータ（ｒ’）を提供するステップと、
・前記第７の処理ブロックの入力として、前記メッセージ（ｍ）を提供するステップと、
・前記第７の処理ブロックの出力として、前記メッセージ（ｍ）および前記第２のパラメータ（ｒ’）の暗号に対応する第７の暗号（ｃ７）を、前記第４のセッション鍵（ｓ’）によって生成するステップと、
からなるステップを有し、
前記暗号は、前記第５の暗号、前記第６の暗号、および前記第７の暗号を有する、
請求項２に記載の暗号化方法。
【請求項６】
−前記第６の暗号（ｃ６）および前記復号鍵から、前記第４の対称セッション鍵（ｓ’）を見つけ出すステップと、
−前記第７の処理ブロックに関する前記第４の対称セッション鍵（ｓ’）を使用して、前記第７の暗号（ｃ７）を復号するステップと、
−前記メッセージ（ｍ）を見つけ出すステップと、
から成るステップを有する、請求項５に記載の暗号化されたメッセージを復号するための方法。
【請求項７】
少なくとも１つのコンピュータによって読み取り可能なコードを備えるコンピュータプログラムであって、前記コードが、請求項１乃至６のいずれか一項に従った方法の諸ステップの、前記少なくとも１つのコンピュータによる実行を発生させる、コンピュータプログラム。
【請求項８】
−暗号鍵を生成するのに適した鍵生成ユニットであって、前記第１のユニットは、
・公開鍵（ｐｋ）を生成するのに適した第１のサブユニットと、
・前記公開鍵に関連付けられた復号鍵（ｄｋ）を生成するのに適した第２のサブユニットと、
・前記公開鍵に関連付けられた導出鍵（ｔｋ）を生成するのに適した第３のサブユニットと、
を備える鍵生成ユニットと、
−前記公開鍵（ｐｋ）を使用して前記メッセージ（ｍ）を暗号（ｃ）に暗号化するのに適した暗号化ユニットと、
−前記メッセージ（ｍ）を見つけ出すために前記暗号（ｃ）を復号するのに適した復号ユニットと、
−前記メッセージ（ｍ）に関連付けられ、前記メッセージ（ｍ）に属する前記導出鍵の導出に対応するトラップドア（Ｔ（ｍ））を生成するのに適したトラップドア生成ユニットと、
−テスト暗号（ｃ’）について、前記テスト暗号（ｃ’）が前記公開鍵（ｐｋ）を使用した前記メッセージ（ｍ）の暗号化（ｃ）であるかどうかをテストするための、前記メッセージ（ｍ）に関連付けられた前記トラップドア（Ｔ（ｍ））を使用するのに適したテストユニットと、
を備える、メッセージ（ｍ）を暗号化／復号化するための暗号化システム。
【請求項９】
−暗号鍵を生成するのに適した鍵生成ユニットであって、前記第１のユニットは、
・公開鍵（ｐｋ）を生成するのに適した第１のサブユニットと、
・前記公開鍵に関連付けられた復号鍵（ｄｋ）を生成するのに適した第２のサブユニットと、
・前記公開鍵に関連付けられた導出鍵（ｔｋ）を生成するのに適した第３のサブユニットと、
を備える、暗号化ユニットであって、
前記公開鍵（ｐｋ）は第１のサブキー（ｐｋK）および第２のサブキー（ｐｋＩ）を備え、
前記第１のサブキー（ｐｋK）は第１の鍵カプセル化メカニズム（ＫＥＭ）の公開カプセル化鍵であり、
前記復号鍵（ｄｋ）は前記第１のサブキー（ｐｋK）に関連付けられた秘密鍵（ｓｋK）であり、
前記第２のサブキー（ｐｋＩ）は、第２の識別ベースの鍵カプセル化メカニズム（ＩＤ−ＫＥＭ）の識別ベースの公開鍵であり、
前記導出鍵（ｔｋ）は前記第２のサブキーに関連付けられた秘密鍵（ｓｋＩ）であり、前記暗号化ユニットは、
−前記第１の鍵カプセル化メカニズム（ＫＥＭ）を適用するのに適した第１の鍵カプセル化サブユニットと、
−その識別パラメータは前記メッセージ（ｍ）である前記第２の識別ベースの鍵カプセル化メカニズム（ＩＤ−ＫＥＭ）を適用するのに適した第２の識別ベースの鍵カプセル化サブユニットと、
をさらに備える、暗号化ユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は暗号化の分野に関する。
とりわけ本発明は、暗号化されたキーワードの検索を可能にする暗号化方法の分野に関する。
【背景技術】
【０００２】
暗号化されたキーワードの検索を可能にするこうした暗号化方法は、従来技術、特に、Ｂｏｎｅｈ、Ｄｉ  Ｃｒｅｓｃｅｎｚｏ、Ｏｓｔｒｏｖｓｋｉ、およびＰｅｒｓｉａｎｏによる「Ｌｅｃｔｕｒｅ  ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  ｓｃｉｅｎｃｅ」の「Ｐｕｂｌｉｃ  ｋｅｙ  ｅｎｃｒｙｐｔｉｏｎ  ｗｉｔｈ  ｋｅｙｗｏｒｄ  ｓｅａｒｃｈ」ＥＵＲＯＣＲＹＰＴ  ２００４、Ｖｏｌｕｍｅ  ３０２７、５０６〜５２２ページで知られている。
【０００３】
ＰＥＫＳ（Ｐｕｂｌｉｃ−ｋｅｙ  Ｅｎｃｒｙｐｔｉｏｎ  ｗｉｔｈ  Ｋｅｙｗｏｒｄ  Ｓｅａｒｃｈ）として知られるこうした方法では、エンティティＡは、その秘密鍵から計算され、キーワードｍに関連付けられた検索トラップドア（trapdoor）Ｔｍを、ゲートウェイに提供する。エンティティＢは、対称暗号化方法を介してエンティティＡにメッセージを送信しようとする場合、暗号Ｃを取得するなどのために、エンティティＡの公開鍵ｐｋを使用してキーワードｍ’を暗号化し、この暗号Ｃがゲートウェイに送信される。ゲートウェイは、暗号Ｃが公開鍵ｐｋによるキーワードｍの暗号化に対応するか否かを判別するために、検索トラップドアＴｍを使用するテストＴＥＳＴ（Ｔｍ，Ｃ）を適用する。このようにしてゲートウェイは、暗号Ｃがキーワードｍの暗号化に対応するか否かを判別することができるが、当該キーワードまたはＣ内で暗号化されたキーワードｍ’にアクセスする必要はない。
【０００４】
暗号内のキーワード検索が可能な当該タイプの暗号化は、特にデータ伝送の分野で使用される。この場合、テストＴＥＳＴ（Ｔｍ，Ｃ）は識別力があるため、ゲートウェイはトラップドアＴｍに関連付けられたキーワードに従って、こうしたエンティティＡまたはこうしたエンティティＡの局、たとえば固定局、ポータブル・ラップトップ、携帯電話に向けてメッセージをルーティングする。
【０００５】
こうした方法では、メッセージのルーティングを実行するためにゲートウェイが受け取った暗号Ｃを復号できることは望ましくない。したがって、実際のキーワードによる検索が実行可能な暗号化方法では、復号ができないことが予測される。
【０００６】
しかしながら、受け取った暗号の検索可能な復号が実行できることは有利な場合がある。たとえば、加入者の公開鍵を使用してオペレータによって暗号化されて渡される通信レポートを定期的に受け取る電話交換手の加入者の場合、このレポートは、加入者の公開鍵を使用して順に暗号化される電話番号のリストである。したがって加入者は、その秘密復号鍵を使用してレポートを復号できる人物に限られるため、暗号化されたレポートは、インターネットなどの非機密通信チャネルを介して加入者に伝送することができる。しかしながら、従来の復号可能暗号化の場合、加入者の復号鍵は必然的にすべての暗号化された情報を復号する。ここで、第三者、たとえば司法または警察機関が、当該暗号化された情報にアクセスできることを望む可能性がある。従来技術からの暗号化方法では、こうした機関が、通信の機密性要件を損なう可能性のある、すべての番号を復号せずに特定の番号にアクセスできることは不可能である。
【０００７】
本発明は、特に、従来技術の当該欠点を克服することを意図する。
さらに、復号可能な非対称暗号化方法では、メッセージを暗号化するための公開鍵と、メッセージを復号するための公開鍵に関連付けられた秘密鍵とを生成することが望ましい。したがって、公開鍵ｐｋおよび所定のキーワードｍから暗号化された暗号Ｃから、公開鍵ｐｋに関連付けられた秘密鍵ｓｋを使用してｍを見つけ出すことが可能である。しかしながら、当該復号化は、前述の従来技術の場合などの検索メカニズムにおけるような検索ができないことに留意することが望ましい。
【０００８】
実際のところこうしたメカニズムでは、検索を実行するエンティティはキーワードｍを明確に知らない。したがって、たとえ復号鍵が提供された場合であっても、検索を実行するエンティティが単語ｍを有していないため、単語ｍ’への暗号Ｃの復号およびこの単語ｍ’と所定の単語ｍとの比較からなる検索を実行することができない。
したがって、知られている暗号化／復号化方法はキーワード検索を実行することができない。
【０００９】
本発明は、当該欠点を克服することも目的とする。
【非特許文献１】Ｂｏｎｅｈ、Ｄｉ  Ｃｒｅｓｃｅｎｚｏ、Ｏｓｔｒｏｖｓｋｉ、およびＰｅｒｓｉａｎｏによる「Ｌｅｃｔｕｒｅ  ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  ｓｃｉｅｎｃｅ」の「Ｐｕｂｌｉｃ  ｋｅｙ  ｅｎｃｒｙｐｔｉｏｎ  ｗｉｔｈ  ｋｅｙｗｏｒｄ  ｓｅａｒｃｈ」ＥＵＲＯＣＲＹＰＴ  ２００４、Ｖｏｌｕｍｅ  ３０２７、５０６〜５２２ページ
【発明の開示】
【発明が解決しようとする課題】
【００１０】
したがって、本発明の第１の目的は、キーワードの検索およびキーワードの復号を同時に実行できるようにする暗号方法を提供することである。
【課題を解決するための手段】
【００１１】
当該目的は、第一の態様により、
−複数の鍵を生成するステップであって、
・公開鍵を生成するサブステップと、
・当該公開鍵に関連付けられた復号鍵を生成するサブステップと、
・当該公開鍵に関連付けられた導出鍵（derivation key）を生成するサブステップと、
からなるサブステップを有する、複数の鍵を生成するステップと、
−第１のエンティティについて、当該公開鍵を使用してメッセージを暗号に暗号化するステップと、
−第２のエンティティについて、当該メッセージを見つけ出すために当該暗号を復号するステップと、
−当該メッセージに関連付けられ、当該メッセージに属する当該導出鍵の導出に対応するトラップドアを生成するステップと、
−テスト暗号について、当該テスト暗号が当該公開鍵を使用した当該メッセージの暗号化であるか、当該メッセージ（ｍ）に関連付けられた当該トラップドアを使用してテストするステップと、
からなるステップを有する、メッセージを暗号化／復号化するための方法に関する、本発明によって達成される。
【００１２】
前述の方法を使用して、復号鍵は、暗号化されたメッセージの復号を実行可能にする。さらに、導出鍵の導出を使用して定義されたトラップドアは、テスト暗号における検索テストを実行可能にする。
したがって、前述の電話番号リストの例では、検索トラップドアの生成を実行可能にする導出鍵が復号鍵とは異なることから、本発明に従った方法は、ある特定の電話番号に関連付けられた検索トラップドアの算出を可能にする。したがって、当該導出鍵が司法によって保留されている場合、司法は、警察によって求められる人物の電話番号に関連付けられた検索トラップドアを送出することができる。その後、当該検索トラップドアを使用して、潔白な番号の機密性を保持しながら、暗号化されたレポート内で当該番号の有無を検出することが可能である。
【００１３】
本発明は、
−鍵を生成するステップであって、
・公開鍵を生成するサブステップと、
・当該公開鍵に関連付けられた復号鍵を生成するサブステップと、
・当該公開鍵に関連付けられた導出鍵を生成するサブステップと、
からなるサブステップを有する、鍵を生成するステップを有し、
当該公開鍵は第１のサブキーおよび第２のサブキーを備え、当該第１のサブキーは第１の鍵カプセル化メカニズムをカプセル化するための公開鍵であり、
当該復号鍵は当該第１のサブキーに関連付けられた秘密鍵であり、
当該第２のサブキーは、第２の識別ベースの鍵カプセル化メカニズムの識別ベース公開鍵であり、
当該導出鍵は当該第２のサブキーに関連付けられた秘密鍵であり、当該方法は、
−当該第１の鍵カプセル化メカニズムを適用するステップと、
−その識別パラメータは当該メッセージである当該第２の識別ベースの鍵カプセル化メカニズムを適用するステップと、
からなるステップを有する、メッセージを暗号化するための方法にも関する。
【００１４】
したがって、鍵カプセル化メカニズム（またはＫＥＭ）が知られている。このメカニズムは、特に、セキュリティ・パラメータを入力として取り、公開鍵および秘密鍵を生成する、鍵生成メカニズムと、ランダム鍵を計算し、公開鍵および乱数を使用することによってこれを暗号内にカプセル化する、鍵カプセル化メカニズムと、暗号Ｃ、以前に生成された公開鍵、以前に生成された秘密鍵を入力として取り、暗号内にカプセル化されたランダム鍵を戻す、カプセル化解除メカニズムと、を備える。
【００１５】
したがって、識別ベースの鍵カプセル化メカニズム（またはＩＤ−ＫＥＭ）も知られている。このメカニズムは、特に、セキュリティ・パラメータとして入力を取り、さらに、公開鍵、ならびに、システムの公開パラメータ、マスタ導出鍵、および識別を入力として取り、識別に関連付けられた共通鍵を計算する、鍵導出マスタ共通鍵（secret key）を生成する、鍵生成メカニズムと、暗号内にカプセル化されたランダム鍵を生成するためにシステムの公開パラメータおよび識別を使用する、確率的（probabilistic）鍵カプセル化メカニズムと、暗号および識別に関連付けられた共通鍵を入力として取り、暗号内にカプセル化されたランダム鍵を戻す、鍵カプセル化解除メカニズムと、を備える。
したがって、前述の暗号化方法では、復号および検索の両方を実行可能にする生成された鍵は、当該２つのメカニズムによって生成された鍵に基づくものである。
【００１６】
特定の一実施形態によれば、前述の当該暗号化方法は、
・当該鍵カプセル化メカニズムを実施する第１の処理ブロックを定義するステップと、
・当該第２の識別ベースの鍵カプセル化メカニズムを実施する、第２の処理ブロックを定義するステップと、
・第３の処理ブロックを定義するステップと、
・第４の処理ブロックを定義するステップと、
・当該第１の処理ブロックの入力として、第１の入力パラメータを提供するステップと、
・当該第１の処理ブロックの出力として、第１の対称セッション鍵に対応する第１の出力、および、当該第１のセッション鍵の第１の鍵暗号に対応する第２の出力を、当該第１のサブキーを使用して生成するステップと、
・当該第１のセッション鍵を当該第３の処理ブロックの入力として提供するステップと、
・当該メッセージを当該第３のブロックの入力として提供するステップと、
・当該第１の対称セッション鍵および当該メッセージを使用して、第２のメッセージ暗号を生成するステップと、
・当該第１のセッション鍵を当該第２の処理ブロックの入力として提供するステップと、
・当該メッセージを当該第２の処理ブロックの入力として提供するステップと、
・当該第２の処理ブロックの出力として、第２の対称セッション鍵に対応する第１の出力、および、当該第２のセッション鍵の第３の鍵暗号に対応する第２の出力を、当該第２のサブキーおよび当該メッセージを使用して生成するステップと、
・当該第２のセッション鍵を当該第４の処理ブロックの入力として提供するステップと、
・当該第１の入力パラメータを当該第４の処理ブロックの入力として提供するステップと、
・当該第１の入力パラメータおよび当該第２のセッション鍵を使用して、第４のパラメータ暗号を生成するステップと、
からなるステップを有し、
当該暗号は、当該第１の暗号、当該第２の暗号、当該第３の暗号、および当該第４の暗号を有する。
【００１７】
本発明は、復号されることになるメッセージが前述の方法に従って暗号化される場合の復号方法にも関する。したがって当該復号方法は、
−当該第１の鍵および当該復号鍵から、当該第１の対称セッション鍵を見つけ出すステップと、
−当該第３の処理ブロックに関する当該対称セッション鍵を使用して、当該第２の暗号を復号するステップと、
−当該メッセージを見つけ出すステップと、
から成るステップを有する。
【００１８】
前述の暗号化方法の他の実施形態によれば、この方法は、
・当該第２の識別ベースの鍵カプセル化メカニズムを実施する、第５の処理ブロックを定義するステップと、
・当該鍵カプセル化メカニズムを実施する第６の処理ブロックを定義するステップと、
・第７の処理ブロックを定義するステップと、
・当該第５の処理ブロックの入力として、第２の入力パラメータを提供するステップと、
・当該第５の処理ブロックの入力として、当該メッセージを提供するステップと、
・当該第５の処理ブロックの出力として、第３の対称セッション鍵に対応する第１の出力、および、当該第３のセッション鍵の第５の鍵暗号に対応する第２の出力を、当該第２のサブキーおよび当該メッセージを使用して生成するステップと、
・当該第３の対称セッション鍵を当該第６の処理ブロックに提供するステップと、
・当該第６の処理ブロックの出力として、第４の対称セッション鍵に対応する第１の出力、および、当該第４のセッション鍵の第６の鍵暗号に対応する第２の出力を、当該第１のサブキーを使用して生成するステップと、
・当該第７の処理ブロックの入力として、当該第４のセッション鍵を提供するステップと、
・当該第７の処理ブロックの入力として、当該第２の入力パラメータを提供するステップと、
・当該第７の処理ブロックの入力として、当該メッセージを提供するステップと、
・当該第７の処理ブロックの出力として、当該メッセージおよび当該第２のパラメータの暗号に対応する第７の暗号を、当該第４のセッション鍵によって生成するステップと、
からなるステップを有し、
当該暗号は、当該第５の暗号、当該第６の暗号、および当該第７の暗号を有する。
【００１９】
当該実施形態では、暗号の復号は、
−当該第６の暗号および当該復号鍵から、当該第４の対称セッション鍵を見つけ出すステップと、
−当該第７の処理ブロックに関する当該第４の対称セッション鍵を使用して、当該第７の暗号を復号するステップと、
−当該メッセージを見つけ出すステップと、
から成るステップを有する。
本発明は、少なくとも１つのコンピュータによって読み取り可能なコードを備えるコンピュータプログラムにも関し、当該コードは、前述の方法の諸ステップの当該コンピュータによる実行を発生させる。
【００２０】
本発明は、メッセージを暗号化／復号化するための暗号化システムにも関し、当該暗号化システムは、
−暗号鍵を生成するのに適した鍵生成ユニットであって、当該第１のユニットは、
・公開鍵を生成するのに適した第１のサブユニットと、
・当該公開鍵に関連付けられた復号鍵を生成するのに適した第２のサブユニットと、
・当該公開鍵に関連付けられた導出鍵を生成するのに適した第３のサブユニットと、
を備える鍵生成ユニットと、
−当該公開鍵を使用して当該メッセージを暗号に暗号化するのに適した暗号化ユニットと、
−当該メッセージを見つけ出すために当該暗号を復号するのに適した復号ユニットと、
−当該メッセージに関連付けられ、当該メッセージに属する当該導出鍵の導出に対応するトラップドアを生成するのに適したトラップドア生成ユニットと、
−テスト暗号について、当該テスト暗号が当該公開鍵を使用した当該メッセージの暗号化であるかどうかを判別するのに適したテストユニットと、
を備える。
【００２１】
最終的に本発明は、
−暗号鍵を生成するのに適した鍵生成ユニットであって、当該第１のユニットは、
・公開鍵を生成するのに適した第１のサブユニットと、
・当該公開鍵に関連付けられた復号鍵を生成するのに適した第２のサブユニットと、
・当該公開鍵に関連付けられた導出鍵を生成するのに適した第３のサブユニットと、
を備える、
鍵生成ユニットを備える、暗号化ユニットに関し、
当該公開鍵は第１のサブキーおよび第２のサブキーを備え、
当該第１のサブキーは第１の鍵カプセル化メカニズムをカプセル化するための公開鍵であり、
当該復号鍵は当該第１のサブキーに関連付けられた秘密鍵であり、
当該第２のサブキーは、第２の識別ベースの鍵カプセル化メカニズムの識別ベース公開鍵であり、
当該導出鍵は当該第２のサブキーに関連付けられた秘密鍵であり、当該暗号化ユニットは、
−当該第１の鍵カプセル化メカニズムを適用するのに適した第１の鍵カプセル化サブユニットと、
−その識別パラメータは当該メッセージである当該第２の識別ベースの鍵カプセル化メカニズムを適用するのに適した第２の識別ベースの鍵カプセル化サブユニットと、
をさらに備える。
【００２２】
本発明については、添付の図面を参照しながら以下の詳細な説明に照らすことで、より良く理解されるであろう。
【発明を実施するための最良の形態】
【００２３】
図１および図２に示された実施形態によれば、本発明は鍵カプセル化メカニズムＫＥＭおよび識別ベースの鍵暗号化メカニズムＩＤ−ＫＥＭを実施する。
したがって、当該２つのタイプのメカニズムが知られる。次に、当該メカニズムの主な要素について説明する。
【００２４】
鍵カプセル化メカニズムＫＥＭは、セッション鍵の生成およびその交換のための、２つのエンティティに関する暗号化プリミティブである。これは、以下のメカニズムからなる。
−ＫｅｙＧｅｎＫＥＭ（１ｋ）：入力としてセキュリティ・パラメータｋを取り、公開鍵ｐｋKおよび秘密鍵ｓｋKを生成する、鍵生成メカニズム
−ＥｎｃＫＥＭ（ｐｋK，ｒ）：ランダム鍵ｓを計算し、公開鍵ｐｋKおよび乱数ｒを使用することによってこれを暗号ｃ内にカプセル化する、鍵カプセル化メカニズム
−ＫＤＫＥＭ（ｐｋK，ｓｋK，ｃ）：入力として暗号ｃ、公開鍵ｐｋK、秘密鍵ｓｋKを取り、暗号ｃ内にカプセル化されたランダム鍵ｓを戻す、カプセル化解除メカニズム。
識別ベースの鍵カプセル化メカニズムＩＤ−ＫＥＭそれ自体は、以下のメカニズムからなる。
【００２５】
−ＫｅｙＧｅｎＩＤ−ＫＥＭ（１ｋ）：入力としてセキュリティ・パラメータｋを取り、公開鍵ｐｋＩおよび鍵導出の共通鍵コントローラｔｋＩを生成する、鍵生成メカニズム
−ＫｅｙＤｅｒＩＤ−ＫＥＭ（ｔｋＩ，ｐｋＩ，ＩＤ）：入力として公開鍵ｐｋＩ、導出マスタ鍵ｔｋＩ、および識別ＩＤを取り、識別に関連付けられた共通鍵ｓｋＩＤを計算する、鍵導出メカニズム
−ＥｎｃＩＤ−ＫＥＭ（ｐｋＩ，ＩＤ，ｒ）：暗号ｃ内にカプセル化されたランダム鍵ｕを生成するために、公開鍵ｐｋＩ、識別ＩＤ、および乱数ｒを使用する、確率的鍵カプセル化メカニズム
−ＫＤＩＤ−ＫＥＭ（ｓｋＩＤ，ｃ）：入力として暗号ｃおよび識別に関連付けられた共通鍵ｓｋＩＤを取り、識別ＩＤの下で暗号内にカプセル化されたランダム鍵ｕを戻す、鍵カプセル化解除メカニズム
【００２６】
本発明によれば、キーワードｍ検索を実行可能にする、復号可能な非対称暗号化図が提供される。本発明に従ったこの図は、ＤＰＥＫＳ（キーワード検索を使用した復号可能公開鍵暗号化）にならったものであることに留意されたい。このため、第１に、入力としてセキュリティ・パラメータ１ｋを取り、公開鍵ｐｋ、復号鍵ｄｋ、およびトラップドア導出鍵ｔｋを生成する、鍵生成メカニズムＫｅｙＧｅｎDPEKS（１ｋ）が定義される。
【００２７】
本発明によれば、公開鍵ｐｋは、鍵カプセル化メカニズムＫＥＭの鍵生成メカニズムＫｅｙＧｅｎＫＥＭ（１ｋ）によって、および、識別ベースの鍵カプセル化メカニズムＩＤ−ＫＥＭの鍵生成メカニズムＫｅｙＧｅｎＩＤ−ＫＥＭ（１ｋ）によって生成される、公開鍵ｐｋKおよびｐｋＩからなるペアである。
【００２８】
復号鍵ｄｋは、鍵カプセル化メカニズムＫＥＭの鍵生成メカニズムＫｅｙＧｅｎＫＥＭ（１ｋ）によって生成される、秘密鍵ｓｋKに対応する。
トラップドア導出鍵ｔｋは、識別ベースの鍵カプセル化メカニズムＩＤ−ＫＥＭの鍵生成メカニズムＫｅｙＧｅｎＩＤ−ＫＥＭ（１ｋ）によって生成される、秘密鍵ｔｋＩに対応する。
【００２９】
本発明によれば、公開鍵ｐｋおよび乱数ｒを使用してキーワードｍを暗号ｃに暗号化する、暗号化メカニズムＥｎｃDPEKS（ｐｋ，ｍ，ｒ）も定義される。当該メカニズムは確率的である。
図１および図２は、ＫｅｙＧｅｎDPEKSメカニズムによって以前に生成されたような鍵を使用する、こうした暗号化メカニズムの２つの例を示す。
【００３０】
図１の例では、以前に定義されたような処理ブロックＫＥＭの入力として、乱数ｒが提供される。ブロックＫＥＭは、暗号ｃ１内にカプセル化された、セッション鍵ｓを生成する。当該セッション鍵ｓは、秘密鍵ｓｋKからのブロックＫＥＭのカプセル化解除メカニズムによって、ｃ１から取得される。次に当該セッション鍵ｓが、対称暗号化ブロックＥ１の入力として提供される。復号可能および検索可能な暗号化の発生元にしようとするメッセージｍも、Ｅ１の入力として提供される。Ｅ１の出力が第２の暗号ｃ２を生成する。入力変数としてのセッション鍵ｓおよび識別としてのメッセージｍも、処理ブロックＩＤ−ＫＥＭの入力として提供される。このようにして識別ｍの下で鍵ｕが生成され、これが第３の暗号ｃ３内にカプセル化される。その後、当該鍵ｕは、対称暗号化ブロックＥ２内に乱数ｒを暗号化するために使用される。
【００３１】
したがって、暗号化メカニズムＥｎｃDPEKS（ｐｋ，ｍ，ｒ）の結果として生じる暗号は４重項（ｃ１，ｃ２，ｃ３，ｃ４）である。
当該暗号化は、たとえば第１のエンティティによって発生し、このエンティティが取得された暗号を復号および検索のために第２のエンティティに伝送する。
【００３２】
次に、復号鍵ｄｋを使用して暗号ｃを復号する、復号メカニズムＤｅｃDPEKS（ｄｋ，ｃ）について説明する。
前述のように、本発明によれば、復号鍵はメカニズムＫＥＭによって生成される鍵ｓｋKである。
したがって、暗号ｃ＝（ｃ１，ｃ２，ｃ３，ｃ４）に基づき、暗号ｃ１および復号鍵ｓｋKは、ＫＥＭのカプセル化解除メカニズムによってセッション鍵ｓを見つけ出すことができる。次にｃ２が暗号化ブロックＥ１に対するセッション鍵ｓで復号され、これによって所望のメッセージｍを取得することができる。
【００３３】
暗号ｃ３およびｃ４の妥当性も検証される。このため、暗号ｃ３が実際に取得されることを検証するために、復号ｍおよびｓ中に取得された値が、メッセージＥｎｃＩＤ−ＫＥＭ（ｐｋＩ，ｍ，ｓ）に対応する識別のためにＩＤ−ＫＥＭカプセル化メカニズムに入力される。当該暗号ｃ３は、ＩＤ−ＫＥＭカプセル化解除メカニズム、および、メッセージｍに関してマスタ鍵ｔｋＩから導出された秘密鍵ｓｋｍを使用して、鍵ｕを取得できるようにする。したがって、変数ｒをブロックＥ２および鍵ｕから復号することができる。次に、変数ｒをＫＥＭの入力として提供すること、ならびにｃ１およびｓが実際に取得されることを検証することによって、暗号ｃの妥当性がチェックされる。
【００３４】
キーワード検索用に提供されるトラップドアＴ（ｍ）は、ＩＤ−ＫＥＭの鍵導出メカニズムを使用することによって、導出鍵およびメッセージｍから、Ｔ（ｍ）＝ＫｅｙＤｅｒＩＤ−ＫＥＭ（ｔｋＩ，ｐｋＩ，ｍ）＝ｓｋｍと定義される。
したがって、メッセージｍを見つけ出す責務を負ったエンティティは、提供された暗号（ｃ１，ｃ２，ｃ３，ｃ４）が実際にメッセージｍの暗号化と対応するかどうかを判別するために、公開鍵ｐｋ＝（ｐｋK，ｐｋＩ）を使用してテストを実行することができる。
【００３５】
ｃｉの以前の定義によれば、ｉ＝０から４であり、ｃ３およびＴ（ｍ）から、ＩＤ−ＫＥＭ鍵カプセル化解除メカニズム、ＫＤＩＤ−ＫＥＭ（ｓｋｍ，ｃ３）によって、鍵ｕが見つけ出される。したがって鍵ｕは、ブロックＥ２に対してｃ４を復号することができる。したがって入力変数ｒが取得される。当該変数ｒを使用して、ＥｎｃＫＥＭ（ｐｋK，ｒ）が開始される。暗号ｃ１＊および鍵ｓ＊が取得される。ｓ＊を使用して、ブロックＥ１に対してｃ２が復号され、ｍ＊が取得される。したがって、暗号ｃ３＊を取得するためにＥｎｃＩＤ−ＫＥＭ（ｐｋＩ，ｍ＊，ｓ＊）が開始される。
【００３６】
したがって本発明のメカニズムに従ったテストは、ＴｅｓｔDPEKS＝｛ｃ１＝ｃ１＊  ＆  ｃ３＝ｃ３＊  ＆  ｍ＝ｍ＊｝である。
このようにして、前述のようなメカニズムを介して、受け取った暗号を復号することと同時に、受け取った暗号が、固定公開鍵による暗号化の結果として生じる事前に定義されたキーワードに実際に対応するかどうかをテストすることが可能である。
【００３７】
次に、本発明との関連において使用可能な、鍵カプセル化メカニズムＫＥＭおよび識別ベースの鍵カプセル化メカニズムＩＤ−ＫＥＭについて説明する。
ＫＥＭの例は、暗号化ＥｌＧａｍａｌで使用されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎプロトコルに従った鍵交換である。
この場合、システムの公開パラメータは、１次ｑのグループＧ、当該グループの生成器ｇ、および要素ｙである。したがって共通鍵ｘは、基底ｇにおけるｙの離散的対数である。
【００３８】
カプセル化の場合、鍵は、ｓ＝ｙｒを計算することによって変数ｒから生成され、これがｃ＝ｇｒによって暗号ｃ内にカプセル化される。
暗号ｃ内にカプセル化された鍵のカプセル化解除は、ｓ＝ｃｘによって行われる。
ＩＤ−ＫＥＭの例は、たとえばそれ自体が、Ｂｏｎｅｈ、Ｄｉ  Ｃｒｅｓｃｅｎｚｏ、Ｏｓｔｒｏｖｓｋｉ、およびＰｅｒｓｉａｎｏによる出版物「Ｌｅｃｔｕｒｅ  ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  ｓｃｉｅｎｃｅ」の「Ｐｕｂｌｉｃ  ｋｅｙ  ｅｎｃｒｙｐｔｉｏｎ  ｗｉｔｈ  ｋｅｙｗｏｒｄ  ｓｅａｒｃｈ」  ＥＵＲＯＣＲＹＰＴ  ２００４、Ｖｏｌｕｍｅ  ３０２７、ページ５０６〜５２２において、関数ＰＥＫＳの構造体内に提供される。
【００３９】
さらに図１に示される図は、必要なセキュリティ・レベルに従って、他のハッシングまたは一方向の関数あるいは擬似乱数生成器またはその両方によって完了することができることを理解されよう。
【００４０】
次に、図２に示される復号可能および検索可能な暗号化図の第２の実施形態について説明する。
当該第２の実施形態によれば、前述のように復号可能および検索可能な暗号化を発生させるために、それぞれ、鍵カプセル化メカニズムＫＥＭの鍵生成メカニズムＫｅｙＧｅｎＫＥＭ（１ｋ）によって、および識別ベースの鍵カプセル化メカニズムＩＤ−ＫＥＭの鍵生成メカニズムＫｅｙＧｅｎＩＤ−ＫＥＭ（１ｋ）によって、公開鍵ｐｋKおよびｐｋＩからなる公開鍵ｐｋが生成される。
当該実施形態は、対称暗号化ブロックＥも含む。
【００４１】
メッセージｍの暗号化は、以下の様式で行われる。ＩＤ−ＫＥＭの入力として、乱数ｒ’およびメッセージｍが提供される。これが乱数ｕ’を生成し、次にこれが暗号ｃ５内にカプセル化される。次に当該鍵ｕ’は、ＫＥＭメカニズムへの入力変数として使用され、その結果鍵ｓ’が生成され、これが暗号ｃ６内にカプセル化される。最終的に、ペア（ｍ，ｒ）を暗号ｃ７へと暗号化するために、この鍵ｓ’が対称ブロックＥの入力として提供される。
したがって、戻される暗号ｃは３重項（ｃ５，ｃ６，ｃ７）である。
【００４２】
暗号（ｃ５，ｃ６，ｃ７）から復号を行うために、復号鍵ｓｋKは、第１に鍵ｓ’を見つけ出すことができる。次に当該鍵ｓ’は、ブロックＥに対して暗号ｃ７を復号することができる。これにより、メッセージｍおよび乱数ｒ’を見つけ出すことが可能となる。次に、ＩＤ−ＫＥＭ  ＥｎｃＩＤ−ＫＥＭ（ｐｋＩ，ｍ，ｒ’）のカプセル化メカニズムを開始することによって、および、ｃ５が実際に取得されることを検証することによって、残りの暗号の妥当性が検証される。ＩＤ−ＫＥＭのカプセル化メカニズムは鍵ｕ’も提供し、ｃ６およびｓ’が実際に取得されるかどうかを検証するために、ＥｎｃＫＥＭ（ｐｋｋ，ｕ’）が開始される。
【００４３】
前述の実施形態のように、キーワード検索ｍに使用されるトラップドアは、ＩＤ−ＫＥＭの鍵導出メカニズムを使用することによって、導出鍵ｔｋＩおよびメッセージｍから、Ｔ（ｍ）＝ＫｅｙＤｅｒＩＤ−ＫＥＭ（ｔｋＩ，ｐｋＩ，ｍ）＝ｓｋｍと定義される。
したがって、メッセージｍを見つけ出す責務を負ったエンティティは、提供された暗号（ｃ５，ｃ６，ｃ７）が実際にメッセージｍの暗号化と対応するかどうかを判別するために、公開鍵ｐｋ＝（ｐｋK，ｐｋＩ）を使用してテストを実行することができる。
【００４４】
このため、ｃ５およびトラップドアＴ（ｍ）を使用して、鍵ｕ’＊が見つけ出される。したがって、ＥｎｃＫＥＭ（ｐｋｋ，ｕ’ ＊）が開始され、鍵ｓ’＊および暗号ｃ６＊が取得される。したがって、Ｃ７は、ブロックＥに対して鍵ｓ’＊で復号され、これがペア（ｍ＊，ｒ’ ＊）を提供する。その後、ＩＤ−ＫＥＭの暗号化メカニズム、ＥｎｃＩＤ−ＫＥＭ（ｐｋＩ，ｍ ＊，ｒ）が開始され、暗号ｃ５＊が取得される。したがって使用されるテストは、
ＴｅｓｔDPEKS＝｛ｃ５＝ｃ５＊  ＆  ｃ６＝ｃ６＊  ＆  ｍ＝ｍ＊｝である。
【図面の簡単な説明】
【００４５】
【図１】本発明の第１の実施形態に従った暗号化方法を示す図である。
【図２】本発明の第２の実施形態に従った暗号化方法を示す図である。
【図１】
2009529714.tif 000003
【図２】
2009529714.tif 000004
【国際調査報告】
2009529714.tif 000005
2009529714.tif 000006
2009529714.tif 000007
2009529714.tif 000008
2009529714.tif 000009
2009529714.tif 000010