JP6328333B2 - 公開鍵暗号化システム - Google Patents

公開鍵暗号化システム Download PDF

Info

Publication number
JP6328333B2
JP6328333B2 JP2017516105A JP2017516105A JP6328333B2 JP 6328333 B2 JP6328333 B2 JP 6328333B2 JP 2017516105 A JP2017516105 A JP 2017516105A JP 2017516105 A JP2017516105 A JP 2017516105A JP 6328333 B2 JP6328333 B2 JP 6328333B2
Authority
JP
Japan
Prior art keywords
public
polynomial
key
univariate
secret
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2017516105A
Other languages
English (en)
Other versions
JP2017532598A (ja
Inventor
ロナルド リートマン
ロナルド リートマン
モーション オスカー ガルシア
モーション オスカー ガルシア
ルドヴィクス マリヌス ジェラルダス マリア トルフィツェン
ルドヴィクス マリヌス ジェラルダス マリア トルフィツェン
デル ポゾ サントス メリノ
デル ポゾ サントス メリノ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips NV filed Critical Koninklijke Philips NV
Publication of JP2017532598A publication Critical patent/JP2017532598A/ja
Application granted granted Critical
Publication of JP6328333B2 publication Critical patent/JP6328333B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明は、鍵生成デバイスを含む公開鍵暗号化システムに関する。鍵生成デバイスは、公開鍵暗号化デバイスにおける使用のための公開鍵と、秘密鍵復号化デバイスにおける使用のための対応する秘密鍵とを生成する。鍵生成デバイスは、秘密乱数値を電子形式で取得する。
公開鍵暗号化は、2つの別箇の鍵(そのうちの1つは、秘密(プライベート)鍵であり、そのうちの1つは、公開鍵と呼ばれる)を使用する暗号作成法の一分野である。鍵対の2つの部分は異なるが、数学的に関連付けられている。1つの鍵が、プレーンテキストをロック又は暗号化して、暗号テキストが取得される。もう1つの鍵が、暗号テキストをロック解除又は復号化して、プレーンテキストが再び取得される。公開鍵は、秘密鍵なしでは復号化機能を行うことはできない。公開鍵は、公開さえもされるが、攻撃者が暗号テキストを復号化する助けにはならない。公開鍵暗号化は、非対称暗号化とも知られている。
公開鍵暗号作成法に使用される既知のアルゴリズムは、整数因数分解及び離散対数問題といった数学的関係に基づいている。対象となる受信者にとって、公開鍵及び秘密鍵を生成し、秘密鍵を用いてメッセージを復号化することと、送信者にとって、公開鍵を用いてメッセージを暗号化することとは、計算的に簡単ではあるが、公開鍵の知識だけに基づいて秘密鍵を導出することは誰にでも難しい。後者は、復号化鍵が、それらの対応する暗号化鍵に等しいか、又は、対応する暗号化鍵から容易に導出可能である対称暗号化とは異なる。
公開鍵暗号作成法は、広く使用されている。公開鍵暗号作成法は、多くの暗号アルゴリズム及び暗号システムによって使用されるアプローチである。
既知の公開鍵暗号化システムが基づいている問題は、資源集約的である。例えば既知の公開鍵暗号化システムであるRSA暗号化は、鍵生成のために、2つの大きい素数p及びqが生成されることを必要とする。復号化は、同様のサイズの数のべき乗を必要とする。
Delphine Boucher他による論文「Key Exchange and Encryption Schemes Based on Non-commutative Skew Polynomials」を参照する。当該論文は、いわゆる非可変歪多項式に基づいた鍵交換アルゴリズムに関連する。
更に、Yagisawa Masahiroによる論文「Key Agreement Protocols Based on Multivariate Polynomials over Fq」を参照する。当該論文は、評価されていない多変数多項式に基づく鍵合意プロトコルに関連する。
現在の公開鍵暗号化(PKE)方法は、重い数学演算を必要とし、したがって、当該方法は、計算的に制約のあるセンサといった埋め込みシステムにはあまり適していない。メッセージの公開鍵暗号化の改良型システムがあることが有利であろう。
本発明の一態様は、メッセージを暗号化するシステムに関する。当該システムは、鍵生成デバイスと、公開鍵暗号化デバイスと、好適には、秘密鍵復号化デバイスとを含む。鍵生成デバイスは、公開鍵暗号化デバイスにおける使用のための公開鍵と、秘密鍵復号化デバイスにおける使用のための対応する秘密鍵とを生成する。公開鍵暗号化デバイスは、公開鍵を使用して、電子メッセージを暗号化する。秘密鍵復号化デバイスは、復号化情報及び秘密鍵を使用して、暗号化されたメッセージを復号化する。
PKEでは、各関係者が、2つの鍵、即ち、公開鍵及び秘密鍵を保持する。公開鍵は、例えば中央当局によって公開される。しかし、各関係者は、その秘密鍵を、当該特定の関係者への通信を読んでもよいように信頼されていない任意の他の関係者には秘密にする。
システム内のデバイスによって提供される公開鍵暗号化は、効率的な実施を可能にし、また、資源制約のあるデバイスに適している。システムのデバイスについて、以下に更に説明する。
公開鍵暗号化は、例えば安全な通信を必要とする照明ネットワークに使用されてよい。一般に、本発明は、デバイスの対間で安全な通信を必要とする任意のタイプの通信ネットワークに適用可能である。
鍵生成デバイス、公開鍵暗号化デバイス及び秘密鍵復号化デバイスは、電子デバイスである。これらは、例えばモバイルフォン、セットトップボックス、コンピュータ等といったモバイル電子デバイスであってよい。鍵生成デバイス、公開鍵暗号化デバイス及び秘密鍵復号化デバイスは、例えばセンサ、照明デバイス、LEDランプ、スマートカード、RFIDタグ等といったように資源制約的であってよい。
本発明の一態様は、公開鍵暗号化デバイスにおける使用のための公開鍵と、秘密鍵復号化デバイスにおける使用のための対応する秘密鍵とを生成する鍵生成デバイスに関する。鍵生成デバイスは、秘密鍵生成器と、公開鍵生成器とを含む。秘密鍵生成器は、秘密乱数値を電子形式で取得し、当該秘密乱数値を含む秘密鍵を生成する。公開鍵生成器は、二変数多項式の公開セットを電子形式で取得し、秘密乱数値を公開セットの多項式に代入することによって取得される一変数多項式を合計することによって、公開一変数多項式を計算し、公開一変数多項式及び公開セットを含む公開鍵を生成する。
鍵生成デバイスの一実施形態では、二変数多項式の公開セットは、対称二変数多項式しか含まない。
鍵生成デバイスの一実施形態では、二変数多項式の公開セットは、少なくとも2つの異なる二変数多項式を含む。
上記システムは、2つの二変数多項式が同じである場合にも、それらの基礎となっている環(例えば局所簡約化整数)が異なるならば、使用されてもよい。
鍵生成デバイスの一実施形態では、公開セットの少なくとも1つの多項式が、上記少なくとも1つの多項式の2つの変数のうちの1つの変数において、少なくとも2の次数を有する。
鍵生成デバイスの一実施形態では、公開一変数多項式は、公開一変数多項式の係数のリストとして正準形で表される。
鍵生成デバイスの一実施形態では、異なる可換環が、二変数多項式の公開セットの各多項式と関連付けられ、また、秘密乱数値を公開セットの特定の多項式に代入することによって取得される一変数多項式は、当該特定の一変数多項式と関連付けられる可換環において正準形に簡約化される。
鍵生成デバイスの一実施形態では、公開グローバル簡約化整数が、公開セットと関連付けられ、公開個別簡約化整数が、公開セットの各多項式と関連付けられ、秘密乱数値は、整数であり、公開セットにおける各多項式は、整数係数を有する二変数多項式であり、公開一変数多項式は、整数係数を有する一変数多項式である。公開個別簡約化整数は、局所簡約化整数とも呼ばれる。
公開個別簡約化整数が、すべて異なっていることが有益である。これは、それらのうちの2つが等しい場合、公開セットは、より少ない多項式を有するように簡易化が可能だからである。しかしながら、公開個別簡約化整数の幾つか又はすべてが等しい場合、システムは正しく機能するが、安全性は、より少ない多項式を有するより小型システムから期待されるような安全性である。
公開一変数多項式を計算することは、公開セットの各多項式について、秘密乱数値を、多項式に代入し、当該多項式に関連付けられている公開個別簡約化整数を法として簡約化することによって一変数多項式のセットを取得することと、一変数多項式のセットを合計し、グローバル簡約化整数を法として簡約化することとを含む。
鍵生成デバイスの一実施形態では、公開グローバル簡約化整数は、2(α+2)b−1よりも大きく、及び/又は、2(α+2)bよりも小さい奇数であり、ここで、αは、公開セットにおける多項式の2つの変数のうちの1つの変数における最高次数を表し、bは、鍵長を表し、各公開個別簡約化整数について、公開グローバル簡約化整数から公開個別簡約化整数を減算したものは、2の鍵長乗の倍数(q=N−β、1β )であり、かつ、2の2倍の鍵長乗未満であり、対称鍵を計算することは更に、2の鍵長乗を法として簡約化することを含む。鍵生成デバイスの一実施形態では、公開グローバル簡約化整数は、2(α+2)b−1よりも大きく、かつ、2(α+2)bよりも小さい奇数である。
本発明の一態様は、公開鍵を使用して電子メッセージを暗号化する公開鍵暗号化デバイスに関する。公開鍵は、公開一変数多項式と、二変数多項式の公開セットとを含む。公開鍵暗号化デバイスは、対称鍵取得器と、復号化情報生成器と、暗号化ユニットとを含む。
対称鍵取得器は、暗号化乱数値を電子形式で取得し、暗号化乱数値を公開一変数多項式に代入することによって、対称鍵を計算する。対称鍵取得器は、多項式を評価するだけでなく、b個の最下位ビットを取ってもよい。
復号化情報生成器は、暗号化乱数値を、公開セットの多項式に代入することによって取得される一変数多項式を合計することによって、復号化一変数多項式を計算し、復号化一変数多項式を含む復号化情報を生成する。
暗号化ユニットは、対称鍵で、メッセージを暗号化し、暗号化されたメッセージを復号化情報と関連付ける。
公開鍵暗号化デバイスの一実施形態では、二変数多項式の公開セットは、対称二変数多項式しか含まない。
公開鍵暗号化デバイスの一実施形態では、二変数多項式の公開セットは、少なくとも2つの異なる二変数多項式を含む。
公開鍵暗号化デバイスの一実施形態では、公開セットの少なくとも1つの多項式が、上記少なくとも1つの多項式の2つの変数のうちの1つの変数において、少なくとも2の次数を有する。
公開鍵暗号化デバイスの一実施形態では、公開一変数多項式は、公開一変数多項式の係数のリストとして正準形で表され、及び/又は、復号化一変数多項式は、復号化一変数多項式の係数のリストとして正準形で表される。
公開鍵暗号化デバイスの一実施形態では、異なる可換環が、二変数多項式の公開セットの各多項式と関連付けられ、秘密乱数値を公開セットの特定の多項式に代入することによって取得される一変数多項式は、当該特定の一変数多項式と関連付けられる可換環において正準形に簡約化され、また、暗号化乱数値を公開セットの特定の多項式に代入することによって取得される一変数多項式は、当該特定の一変数多項式と関連付けられる可換環において正準形に簡約化される。
公開鍵暗号化デバイスの一実施形態では、公開グローバル簡約化整数が、公開セットと関連付けられ、公開個別簡約化整数が、公開セットの各多項式と関連付けられ、秘密乱数値は、整数であり、公開セットにおける各多項式は、整数係数を有する二変数多項式であり、公開一変数多項式及び復号化一変数多項式は、整数係数を有する一変数多項式である。
対称鍵を計算することは、暗号化乱数値を、公開一変数多項式に代入し、グローバル簡約化整数を法として簡約化することを含む。対称鍵を計算することは、結果のb個のビット、例えばb個の最下位ビットを取ることも含む。
復号化一変数多項式を計算することは、公開セットの各多項式について、秘密乱数値を、多項式に代入し、当該多項式に関連付けられている公開個別簡約化整数を法として簡約化することによって一変数多項式のセットを取得することと、一変数多項式のセットを合計し、グローバル簡約化整数を法として簡約化することとを含む。
公開鍵暗号化デバイスの一実施形態では、公開グローバル簡約化整数は、2(α+2)b−1よりも大きく、及び/又は、2(α+2)bよりも小さい奇数であり、ここで、αは、公開セットにおける多項式の2つの変数のうちの1つの変数における最高次数を表し、bは、鍵長を表し、また、各公開個別簡約化整数について、公開グローバル簡約化整数から上記公開個別簡約化整数を減算したものは、2の鍵長乗の倍数(q=N−β、1β )であり、かつ、2の2倍の鍵長乗未満である。対称鍵を計算することは更に、2の鍵長乗を法として簡約化することを含む。公開鍵暗号化デバイスの一実施形態では、公開グローバル簡約化整数は、2(α+2)b−1よりも大きく、かつ、2(α+2)bよりも小さい奇数である。
公開鍵暗号化デバイスの一実施形態では、復号化情報を生成することは、対称鍵から、再構成された鍵が対称鍵に等しいかどうかを確認するための鍵確認データを計算することを含み、復号化情報は、鍵確認データを含む。
本発明の一態様は、復号化情報と、秘密鍵とを使用して、暗号化されたメッセージを復号化する秘密鍵復号化デバイスに関する。復号化情報は、復号化一変数多項式を含み、秘密鍵は、秘密乱数値を含む。秘密鍵復号化デバイスは、対象鍵取得器と、復号化ユニットとを含む。
対称鍵取得器は、秘密乱数値を、復号化一変数多項式に代入することによって、対称鍵を再構成する。対称鍵を再構成することは、出力のb個のビット、例えばb個の最下位ビットを、鍵Kとして取ることを含んでもよい。
復号化ユニットは、再構成された対称鍵で、暗号化されたメッセージを復号化する。対称鍵は、「K」とも呼ばれる。
秘密鍵復号化デバイスの一実施形態では、復号化情報は、鍵生成デバイスによって生成される公開鍵を使用して、公開鍵暗号化デバイスによって取得されている。
秘密鍵暗号化デバイスの一実施形態では、復号化一変数多項式は、復号化一変数多項式の係数のリストとして正準形で表される。
秘密鍵復号化デバイスの一実施形態では、秘密乱数値は、整数である。復号化一変数多項式は、公開グローバル簡約化整数を法として簡約化された整数係数を有する一変数多項式である。対称鍵の再構成は、秘密乱数値を、復号化一変数多項式に代入し、公開グローバル簡約化整数を法として簡約化することを含む。
秘密鍵復号化デバイスの一実施形態では、公開グローバル簡約化整数は、2(α+2)b−1よりも大きく、及び/又は、2(α+2)bよりも小さい奇数であり、ここで、αは、公開セットにおける多項式の2つの変数のうちの1つの変数における最高次数を表し、bは、鍵長を表す。秘密鍵復号化デバイスの一実施形態では、公開グローバル簡約化整数は、2(α+2)b−1よりも大きく、かつ、2(α+2)bよりも小さい奇数である。
対称鍵を計算することは更に、2の鍵長乗を法として簡約化することを含む。
秘密鍵復号化デバイスの一実施形態では、対称鍵を再構成することは、秘密乱数値を、復号化一変数多項式に代入し、公開グローバル簡約化整数を法として簡約化したことの結果から、第1の再構成された鍵を導出し、鍵確認データから、第1の再構成された鍵が対称鍵に等しいかどうかを決定し、等しくない場合に、第1の再構成された鍵から、更なる再構成された鍵を導出することを含む。
秘密鍵復号化デバイスの一実施形態では、更なる再構成された鍵を導出することは、公開グローバル簡約化整数又は複数の公開グローバル簡約化整数を、第1の再構成された鍵に追加し、2の鍵長乗を法として簡約化することを含む。
暗号化システムの一実施形態は、多項式環を使用する。
鍵生成デバイスの一実施形態では、公開グローバル簡約化多項式が、公開セットと関連付けられ、公開個別簡約化多項式が、公開セットの各多項式と関連付けられ、秘密乱数値は、多項式であり、公開セットにおける各特定の多項式は、当該特定の多項式と関連付けられる公開個別簡約化多項式を法とする多項式環から取られる係数を有する二変数多項式であり、公開一変数多項式及び復号化一変数多項式は、多項式係数を有する。
公開鍵暗号化デバイスの一実施形態では、公開グローバル簡約化多項式が、公開セットと関連付けられ、公開個別簡約化多項式が、公開セットの各多項式と関連付けられ、暗号化乱数値は、多項式であり、公開セットにおける各特定の多項式は、当該特定の多項式と関連付けられる公開個別簡約化多項式を法とする多項式環から取られる係数を有する二変数多項式であり、公開一変数多項式及び復号化一変数多項式は、多項式係数を有する。
秘密鍵復号化デバイスの一実施形態では、秘密乱数値は、多項式であり、復号化一変数多項式は、多項式係数を有する。
本発明の一態様は、公開鍵暗号化方法における使用のための公開鍵と、秘密鍵復号化方法における使用のための対応する秘密鍵とを生成する鍵生成方法に関する。
本発明の一態様は、公開鍵を使用して電子メッセージを暗号化する公開鍵暗号化方法に関する。
本発明の一態様は、復号化情報及び秘密鍵を使用して、暗号化されたメッセージを復号化する秘密鍵復号化方法に関する。
本発明による方法は、コンピュータ実施方法として、コンピュータ上で実施されるか、専用ハードウェアにおいて実施されるか、又は、これらの組み合わせで実施されてよい。本発明による方法の実行可能なコードは、コンピュータプログラムプロダクトに記憶されてよい。コンピュータプログラムプロダクトの例として、メモリデバイス、光学記憶デバイス、集積回路、サーバ、オンラインソフトウェア等が挙げられる。好適には、コンピュータプログラムプロダクトは、コンピュータ上で実行された場合に、本発明による方法を行うための非一時的プログラムコード手段がコンピュータ可読媒体に記憶されている。
好適な実施形態では、コンピュータプログラムは、当該コンピュータプログラムがコンピュータ上で実行されると、本発明による方法のすべてのステップを行うように適応されたコンピュータプログラムコード手段を含む。好適には、コンピュータプログラムは、コンピュータ可読媒体に具現化されている。
本発明のこれらの及び他の態様は、以下に説明される実施形態から明らかとなり、以下に説明される実施形態を参照して説明される。
図1は、暗号化システム400の略ブロック図である。 図2は、暗号化システム430の略ブロック図である。 図3は、集積回路500の略ブロック図である。 図4は、メモリレイアウトの略ブロック図である。 図5は、暗号化システム600の略ブロック図である。 図6aは、鍵生成方法700の略フローチャートである。 図6bは、暗号化方法710の略フローチャートである。 図6cは、復号化方法730のフローチャートである。
なお、様々な図面において同じ参照符号を有するアイテムは、同じ構造上の特徴及び同じ機能を有するか又は同じ信号である。そのようなアイテムの機能及び/又は構造が既に説明されている場合、詳細な説明において、その説明を繰り返す必要はない。
本発明は、多くの異なる形式の実施形態を受け入れることが可能であるが、図面には、1つ以上の特定の実施形態が示され、また、本明細書では、本開示は本発明の原理の例示であって、本発明を図示され説明されている特定の実施形態に限定することを意図していないという理解に基づき、当該1つ以上の特定の実施形態が詳細に説明される。
図1は、暗号化システム400の略ブロック図である。暗号化システム400は、鍵生成デバイス100と、公開鍵暗号化デバイス200と、秘密鍵復号化デバイス300とを含む。公開鍵暗号化デバイス200は、暗号化デバイス200とも呼ばれる。秘密鍵復号化デバイス300は、復号化デバイス300とも呼ばれる。
鍵生成デバイス100は、暗号化デバイス200における使用のための公開鍵126と、復号化デバイス300における使用のための対応する秘密鍵114とを生成する。暗号化デバイス200は、公開鍵126を使用して、メッセージ410、即ち、復号化デバイス300向けのデータを暗号化して、暗号化されたメッセージ422が取得される。暗号化デバイス200は、暗号化されたメッセージ422に加えて、復号化情報424も生成する。復号化デバイス300は、秘密鍵114と、暗号化されたメッセージ422と、公開一変数多項式124とを使用して、復号化情報424を復号化して、メッセージ410が再び取得される。この暗号化及び復号化システムは、いわゆる非対称暗号化であり、公開−秘密鍵暗号化とも知られている。対称暗号化とは対照的に、公開鍵の知識が、秘密鍵の知識を意味するわけではない。これは、公開鍵へのアクセスを有するデバイスはどれでもメッセージを暗号化できるが、秘密鍵へのアクセスを有するデバイスのみが、メッセージを復号化できることを意味する。これは、翻って、公開及び秘密データに異なるセキュリティポリシーが適用できることを意味する。例えば幾つかの応用では、公開鍵は、当該鍵が秘密でないように公開される一方で、秘密鍵は秘密にされる。例えば秘密鍵は、暗号化デバイス300及び鍵生成デバイス100又は1つ以上の信頼できる関係者のみに知られていてよい。
「公開」及び「秘密」の形容詞の使用は、理解の助けになることを意図している。すべての公開データへのアクセスがあったとしても、秘密データを計算することはできず、少なくとも、応用の安全性を所与として、又は、鍵生成、暗号化及び復号化に必要な資源に比べて不当に高い資源なしでは計算することができない。しかし、「公開」とは、必ずしも、鍵生成デバイス100及び暗号化デバイス200以外の誰にでも、対応するデータが利用可能にされることを意味するとは限らない。特に、公開鍵及び他の公開データを、信頼できない関係者に秘密にすることは、安全性を高める。
鍵生成デバイス100、暗号化デバイス200及び復号化デバイス300は、暗号化システム400内のたった3つのエンティティであってよい。図2には、複数の秘密鍵復号化デバイスがある暗号化システム400の構成が示される。図2は、秘密鍵復号化デバイス300及び301を示し、もっとあってもよい。図2では、暗号化デバイス200が、鍵生成デバイス100から公開鍵126を受信し、復号化デバイス300が、秘密鍵114と、場合により、公開一変数多項式124といった他の公開データと、係数といったパラメータとを受信する。本明細書では、暗号化システムにおいて鍵を分配する他のやり方も示されるので、これは例示的な例に過ぎない。
図1を引き続き参照するに、鍵生成デバイス100は、秘密鍵生成器110と公開鍵生成器120とを含む。
秘密鍵生成器110は、sとも呼ばれる秘密乱数値112を電子形式で取得する。秘密乱数値112は、攻撃者にとってのその予測可能性が、所定の安全限界よりも低いという意味でランダムである。例えば秘密乱数値112は、鍵生成デバイス100に含まれる乱数生成器(個別には図示せず)を使用して、鍵生成デバイス100によって選択される。乱数生成器は、真乱数生成器であっても、疑似乱数生成器であってもよい。秘密鍵生成器110は、秘密乱数値112を使用して秘密鍵114を生成する。秘密鍵114は、秘密乱数値112を含む電子データである。例えば秘密鍵114は、秘密乱数値112を含むデータ構造である。秘密鍵114は、秘密鍵114の使用期限範囲、秘密鍵114の許容される使用等といった他のデータを含んでもよい。
鍵生成デバイス100によって使用される非対称暗号化スキームは、幾つかの他の非対称暗号作成法に比べて、秘密乱数値112に際立って少ない要件を課す。例えばRSA鍵生成は、その秘密鍵が、2つの素数を含むことを必要とするが、これらの素数は、計算するのに資源集約的である。
秘密乱数値112は、アイデンティティベースであってもよい。例えば鍵生成デバイス100は、秘密鍵を記憶する秘密鍵メモリ(図1には図示せず)を含む。秘密鍵は、何らかの非対称暗号化スキームの公開鍵か、又は、対称鍵であってよい。秘密鍵生成器110は、復号化デバイス300のアイデンティティ(例えば識別番号)を取得(例えば受信又は生成)し、当該アイデンティティを暗号化することによって、秘密乱数値112を取得する。識別番号を所与として、鍵生成デバイス100は、アイデンティティを再暗号化することによって、復号化デバイス300の秘密鍵を再生成することができる。このシステムは、例えば秘密鍵を紛失した又は復号化デバイス300においてアクセス不可である場合でも、デバイス300上のデータへのアクセスが、例えば製品リコール、科学捜査等のために、後から必要となるかもしれない状況に適している。例えば図2にあるように、複数の秘密鍵復号化デバイスがある場合、鍵生成デバイス100は、鍵のデータベースを記憶する必要なく、複数の復号化デバイスの秘密鍵を再構成することができる。デバイス300のアイデンティティは、公開鍵126及び/又は秘密鍵114内に含まれてよい。
公開鍵生成器120は、式でf( , )とも表される二変数多項式の公開セット122を電子形式で取得する。以下に説明される実施形態は、セット122におけるすべての二変数多項式が、対称であると仮定する。対称多項式を使用することは、幾つかの利点をもたらす。まず、対称多項式は、指定する係数の数が少なくて済み、したがって、使用する資源がより少ない。次に、対称多項式は、ブックキーピングを単純にする。非対称多項式では、鍵生成及び復号化は、代入のために多項式の2つの変数のうちの第1の変数を使用するが、暗号化は、代入のために多項式の2つの変数のうちの第2の変数を使用する。
対称二変数多項式は更に、プレースホルダとして2つの形式上の変数を有するf(x,y)とも記述される。対称二変数多項式は、f(x,y)=f(y,x)を満たす。この要件は、例えば単項式xの係数が、単項式xの係数に等しいという係数の要件になる。
公開セット122は、幾つかのやり方で取得される。例えば公開セット122は、例えば鍵生成デバイス100において使用される暗号化を決定する標準によって規定される。この場合、様々デバイスの公開鍵は、異なる秘密乱数値112を使用して生成されたことによってのみ異なる。固定の公開セット122を使用すると、復号化デバイス300における通信及び/又はストレージオーバヘッドを減少させる。
様々な復号化デバイス300に異なる公開セット122を使用すると、安全性が高まる。例えば公開セット122は、公開セット122における多項式の係数の乱数値を計算することによってランダムに生成される。公開セット122における多項式の数及び多項式の次数又は最大次数といった公開セット122の幾つかの特徴を規定することは都合がよい。例えばストレージ要件を減少させるために、多項式における係数の幾つかはゼロであると規定されてもよい。
公開セット122における多項式の数は、応用に応じて異なるように選択されてよい。公開セット122は、少なくとも1つの対称二変数多項式を含む。鍵生成デバイス100の一実施形態では、当該セットは、1つの多項式から成る。公開セット122に、1つの多項式しかないことは、複雑さ、ストレージ要件を減少させ、速度を増加させる。しかし、公開セット122に、1つの多項式しかないことは、公開セット122に2つ以上の多項式があることよりもあまり安全ではないと見なされる。これは、このような1多項式システムは、以下に説明される合計における追加の混合から恩恵を受けないからである。しかし、鍵生成、暗号化及び復号化は、正しく機能し、低値及び/又は安全性の低い応用には十分に安全であると考えられる。
以下において、公開セット122は、少なくとも2つの対称二変数多項式を含むと仮定する。一実施形態では、少なくとも2つ、又は、更にはすべての多項式は異なる。これは、システムの解析を相当に複雑にする。必須ではないが、公開セット122は、2つの等しい多項式を含んでよく、これらの2つの多項式が、異なる環に亘って評価される場合は、合計ステップにおける混合から依然として恩恵を受ける。この点について、以下に更に説明される。一実施形態では、公開セット122は、異なる環と関連付けられる少なくとも2つの等しい多項式を含む。2つ以上の等しい多項式を有すると、ストレージ要件が減少される。
公開セット122における多項式は、異なる次数の多項式であってよい。対称二変数多項式の次数とは、2つの変数のうちの1つの変数における多項式の次数を意味する。例えばx+2xy+1の次数は、2である。これは、xにおける次数が2だからである。公開セット122における多項式は、対称であるので、次数は、もう1つの変数において同じである。
公開セット122における多項式の次数は、応用に応じて異なるように選択される。公開セット122は、次数1以上の次数の少なくとも1つの対称二変数多項式を含む。一実施形態では、公開セット122は、次数1の多項式しか含まない。公開セット122に、線形多項式しかないことは、複雑さ、ストレージ要件を減少させ、速度を増加させる。しかし、公開セット122に、次数1の多項式しかないことは、公開セット122において、少なくとも1つの多項式の次数が少なくとも2である同じ数の多項式があることよりもあまり安全ではないと見なされる。これは、このようなシステムは、相当に線形ではないからである。一実施形態では、公開セット122は、次数2以上の少なくとも1つの、好適には2つの多項式を含む。しかし、鍵の生成、暗号化及び復号化は、次数1の多項式のみが使用される場合に、正しく機能し、また、少数の二変数多項式では、これらの多項式は、低値及び/又は低セキュリティ応用には十分に安全であると考えられる。しかし、公開セット122における複数の多項式が、異なる環に亘って評価される場合、結果として生じる暗号化は、公開セット122におけるすべての多項式が線形であっても、線形ではない。線形多項式は効率的に評価されるので、一実施形態では、公開セット122は、多数の線形多項式を含む。高値セキュリティ応用にも十分に安全であると依然として見なされる効率的なソリューションが達成される。
線形及び非線形多項式の両方と共に使用可能である更なる実施形態では、公開セット122は、様々な環において評価される1つの単項式を含む多数の二変数多項式を含む。これは、有利に、小さい公開鍵サイズを有し、効率的に評価される一方で、多項式の数で増減する十分な安全性を提供する。
公開セット122に、次数0の1つ以上の多項式を有することは、より高い次数の多項式が十分な安全性を提供する限り、システムに影響を与えない。
中間セキュリティ応用については、公開セット122は、次数2の2つの対称二変数多項式を含むか、又は更にはそれらから構成されてもよい。より高いセキュリティ応用については、公開セット122は、2つの対称二変数多項式を含むか、又は更にはそれらから構成されてもよいが、そのうちの1つの次数は2で、また、そのうちの1つの次数は2よりも高い、例えば次数3である。多項式の数及び/又は次数を増加することは、資源消費の増加を犠牲にして、安全性を更に高める。
公開鍵生成器120は、秘密乱数値112を公開セット122の多項式に代入することによって得られた一変数多項式を合計することによって、公開一変数多項式124を計算する。例えば公開鍵生成器120は、秘密乱数値112を、公開セット122における対称多項式のそれぞれに代入して、結果を簡約化する。秘密値112といった特定の値を対称二変数多項式の2つの変数のうちの1つに代入するが、もう1つの変数には特定の値を代入しないことによって、変数のうちの一方が除去され、一変数多項式が得られる。
公開セット122における代入後、結果を、正準形にすることが望ましい。例えば鍵生成デバイス100及び暗号化システム400全般内では、一変数多項式の正準形が使用される。良い選択は、代入の結果を、単項式の次数によって順序付けられる係数のリスト(例えばアレイ)として書くことである。値が複数の表現を有する場合、係数についても正準形の選択がされる。
公開一変数多項式124を取得する1つの方法は、次の通りである。
1.公開セット122における各多項式について、
a.2つの変数のうちの一方に対し、秘密乱数値112を多項式に代入する。
b.得られた結果を正準形にし、多項式に関連付けられている環において簡約化し、これにより、一変数多項式が取得される。
2.公開一変数多項式124を取得するために、更なる環において、1bで取得されたすべての一変数多項式を合計する。
これらのステップは、かなりの程度まで組み合わされてもよい。
また、公開一変数多項式124は、正準形に従った係数のリストとして表されてもよい。多くの応用に適した形式は、係数に関連付けられている単項式の次数によって順序付けられるアレイで係数をリストすることである。つまり、一変数多項式は、単項式に関連付けられている係数を有する単項式の合計と見なされる。ここでも、可能な式を含む例を以下に提供する。
公開鍵生成器120は更に、公開鍵126を生成する。公開鍵126は、公開一変数多項式124及び公開セット122の表現を含む。例えば公開鍵126は、公開セット122及び公開鍵126のデジタル表現を含む電子データ構造である。更に、公開鍵126は、上記秘密鍵と同様に、例えば対応する秘密鍵へのアクセスを有するデバイスのアイデンティティといった追加情報を含んでもよい。
鍵生成デバイス100は、秘密鍵114及び公開鍵126を生成した後、秘密鍵114を復号化デバイス300に、公開鍵126を、復号化デバイス300へのメッセージを暗号化するデバイス200に分配する。分配は、様々なやり方で行われてよく、そのうちの幾つかは、以下に更に説明されるか、又は、図2に示されている通りである。
一例として、鍵生成デバイス100は、例えば照明ユニットである、ある種の電子ユニットを製造する製造工場において使用され、鍵生成デバイス100は、例えば照明ユニットである各製造ユニットを、(任意選択の)異なる識別子及び異なる秘密鍵で構成する。電子ユニットに、復号化デバイス300が配置される。
例えば鍵生成デバイス100は、電子ユニットの秘密鍵に対応する公開鍵を、暗号化デバイス200を含む管理デバイス内に記憶する。管理デバイスは、適切な公開鍵で暗号化されている、例えばコマンドである技術的データを送信する。例えば管理デバイスは、ユニットに記憶される秘密鍵に対応する公開鍵で、当該ユニットへのコマンド(例えば「オンにする」コマンド)を暗号化する。結果として得られる暗号化されたメッセージ(例えば暗号化されたコマンド)は、例えば上記識別子でアドレスされる。管理デバイスが侵され、攻撃者が、管理デバイスに記憶されているすべての公開鍵へのアクセスを得たとしても、対応する秘密鍵を得ることはない。
上記例と組み合わされても組み合わされなくてもよい鍵生成デバイス100の別の応用は、公開−秘密鍵対を生成し、例えば照明ユニットである各製造ユニットを公開鍵で構成し、管理デバイスを秘密鍵で構成することである。電子ユニットには、暗号化デバイス200が配置される。照明ユニットといった電子ユニットは、そのデバイス200を使用して、管理デバイスに、例えばステータスメッセージといったメッセージを暗号化された形で送信可能である。多くの電子デバイスが、公開鍵へのアクセスを有するので、この鍵は漏れる可能性があり、攻撃者に何らかの方法でアクセス可能となる。しかし、データは公開データであるので、秘密鍵を得ることは可能にしない。管理デバイスに、復号化デバイス200が配置される。
図1の上部を参照するに、ボックス100、200及び300の上部において、公開鍵126の暗号化デバイス200への分配と、公開鍵126及び秘密鍵114の復号化デバイス300への分配が概略的に示される。
暗号化デバイス200は、公開一変数多項式と、対称二変数多項式の公開セットとを含む公開鍵126を使用して、電子メッセージ410を暗号化する。特に、暗号化デバイス200は、鍵生成デバイス100によって生成された公開鍵126を使用する。
暗号化デバイス200は、対称鍵取得器210と、暗号化ユニット230と、復号化情報生成器220とを含む。
対称鍵取得器210は、暗号化乱数値212を電子形式で取得する。暗号化乱数値212は、rとも称される。暗号化乱数値212は、暗号化されたメッセージの攻撃者にとってのその予測可能性が、安全限界よりも低いという意味でランダムである。各メッセージに異なる暗号化乱数値212を使用してもよいが、これは、必須ではない。複数のメッセージが、同じ暗号化乱数値212を使用して暗号化されてよい。対称鍵取得器210は、暗号化乱数値212を、公開鍵126から得られた公開一変数多項式124に代入することによって対称鍵124を取得する。対称鍵124は、Kとも称される。代入は、環において評価される。
暗号化乱数値212は、秘密である。即ち、メッセージ410の内容に関して信頼のない関係者に対して少なくとも秘密である。復号化デバイス300は、暗号化乱数値212を必要としない。暗号化デバイス200の一実施形態では、暗号化乱数値212は、暗号化されたメッセージ422及び復号化情報424を生成した後(例えば直後)に削除される。
暗号化されたメッセージ422及び復号化情報424は、これらをメッセージブロック420内で組み合わせることによって関連付けられてよい。暗号化されたメッセージ422及び復号化情報424は、別々に送信されてもよい。
新しい暗号化乱数値212が各メッセージに選択されたとしても、秘密鍵114及び公開鍵126は、複数のメッセージに亘って同じである可能性が高い。安全性要件に応じて、ある時点において、例えば所定数以上のメッセージが秘密鍵114で復号化された後、新しい鍵が分配される。復号化デバイス300は、当該所定数の復号化を使い果たした場合は、同じ秘密鍵114での追加の復号化を拒絶する。この手段は、復号化デバイス300が、特別に作成されたメッセージブロック420を復号化することによって、秘密乱数値112の情報を引き込もうとするまだ今のところ知られていない攻撃を防ぐ。このために、復号化デバイス300は、秘密鍵114で復号化されたメッセージの数を計数するカウンタと、当該カウンタが所定数を超えた場合に、秘密鍵114を使用した復号化を阻止する阻止ユニットとを含んでよい。例えば阻止ユニットは、復号化デバイス300から秘密鍵114を削除してもよい。
対称鍵214の取得には、他のステップも伴う。例えばハッシュ関数が対称鍵214に適用される。これは、対称鍵214におけるエントロピーを平滑化し、例えば暗号化乱数値212の分配が均一でない、又は、均一であることが分かっている場合に、安全性を高める。更に、対称鍵214は、ある鍵長に切り詰められてもよい。例えば代入の結果のb個の最下位ビットを取って切り詰めてもよい。
暗号化ユニット230は、暗号化されたメッセージ422を取得するために、対称鍵214でメッセージ410を暗号化する。暗号化ユニット230は、任意の対称暗号化アルゴリズムで構成されてよい。例えば暗号化ユニット230は、CBC又はCTRといった暗号化に適切な「動作モード」を使用するAES、CAST等といったブロック暗号を使用する。メッセージ410が、対称鍵214のビットサイズ以下のビットサイズを有することが分かっているならば、メッセージ410に対称鍵214を追加するか又は排他的論理和(XOR)をとってもよい。
復号化情報生成器220は、暗号化乱数値212を公開セット122の多項式に代入することによって取得される一変数多項式を合計することによって、復号化一変数多項式222を計算する。このステップは、秘密乱数値112の代わりに、暗号化乱数値212を使用すること以外は、公開一変数多項式124を計算するのと同じ実施態様を使用してよい。復号化情報生成器220は更に、復号化情報424を生成する。復号化情報は、復号化一変数多項式222を含む。復号化情報は、復号化一変数多項式222だけを含んでもよいが、送信者情報及び/又は電子署名といった追加情報を含んでもよい。
復号化情報生成器220は、復号化一変数多項式を、正準形の復号化一変数多項式の係数のリストとして表してもよい。公開一変数多項式124に使用された正準形のタイプと同じタイプを、復号化一変数多項式222に使用してよい。特に、復号化一変数多項式222は、多項式の次数によって仕分けられる復号化一変数多項式222の単項式の係数のリストとして表されてよい。復号化一変数多項式222又は公開一変数多項式124は、対のリストとして表されてもよく、各対は、単項式の係数及び次数を含む。この表現では、ゼロ係数を有する単項式は表される必要はない。後者の表現は、公開セット122における疎な多項式にも適している。
暗号化に加えて、暗号化ユニット230は更に、暗号化されたメッセージ422を復号化情報424に関連付ける。これは、幾つかのやり方で行われてよい。例えば暗号化されたメッセージ422及び復号化情報424は、例えば暗号化されたメッセージ422を復号化情報424で拡張することによって、これらを同じ単一のメッセージに埋め込むことによって一緒に関連付けられる。暗号化されたメッセージ422及び復号化情報424は、必ずしも同じメッセージの一部である必要はない。例えば暗号化されたメッセージ422及び復号化情報424は、それぞれ、同じ識別子を含むヘッダーと組み合わされてもよく、当該同じ識別子によって、2つのメッセージは関連付けられる。暗号化デバイス200は、復号化デバイス300に、暗号化されたメッセージ422を、復号化情報424よりも先に送信する。このようにすると、暗号化デバイス200は、メッセージ410を引き渡すが、まだ復号化デバイス300がメッセージ410を読むことは許可しない。後の時点において、暗号化デバイス200は、復号化情報424を復号化デバイス300に送信し、その内容を明らかにする。メッセージを、その内容をまだ明らかにすることなく引き渡すことは、基本的な暗号プリミティブであり、システムを、電子投票システムといった様々な暗号アルゴリズムに適用可能にする。興味深いことに、本明細書において説明される公開鍵暗号化システムは、暗号化デバイス200へのアクセスを有する関係者が、値を引き渡し、後に、復号化情報を送信することによって、当該値を明らかにするが、秘密鍵は明らかにしないことを可能にする。
図1の下部に示されるように、暗号化デバイス200は、入力としてメッセージ410を受信し、出力としてメッセージブロック420を生成してよい。これらの要素は、暗号化デバイス200及び復号化デバイス300の内部にも示されている。多くの場合、メッセージ410は、暗号化デバイス200の内部で、例えば自動生成メッセージ(例えばステータスメッセージ)として生成される。
暗号化デバイス200、例えば対称鍵取得器210は、復号化デバイス300によって再構成される対称鍵312(K’)が対称鍵214に等しいかどうかを検証するための鍵確認データを対称鍵214(K)から計算してよい。鍵確認データは、様々な形式を取ってよい。例えば鍵確認データは、例えば対称鍵214に亘るSHA−256である暗号学的ハッシュであってよい。再構成された鍵312が対称鍵214に等しいかどうかを検証するために、復号化デバイス300は、再構成された対称鍵312に亘るハッシュを計算し、ハッシュが同じであるかを検証する。鍵確認データは更に、入力に亘る暗号化を含んでもよい。再構成された鍵312が対称鍵214に等しいかどうかを検証するために、復号化デバイス300は、再構成された対称鍵312で入力を暗号化し、暗号化が同じであるかどうかを検証するか、又は、現在の入力を復号化して、それが入力に等しいかどうかを検証してもよい。入力は、鍵確認データの一部であってよい。例えば入力は、ノンスであるか、又は、更にはランダムであってよい。入力は固定されていてもよい。後者の場合、入力は、鍵確認データの一部である必要はない。鍵確認データは、復号化情報424に含まれていてもよい。
復号化デバイス300は、復号化情報424及び秘密鍵114を使用して、暗号化されたメッセージ422を復号化する。復号化デバイス300は、例えばグローバル係数である公開データの一部を必要とする。これに関するより多くの情報は、以下に提供する。例えば復号化デバイス300は、公開鍵126を受信するが、復号化デバイス300は、そのすべての部分が必要ではない。特に、復号化デバイス300は、復号化のために、公開セット122へのアクセスは必要としない。
復号化デバイス300によって使用される復号化情報424及び秘密鍵114は、暗号化デバイス200又は鍵生成デバイス100によってそれぞれ生成された通りであってよい。復号化情報424は、復号化一変数多項式222を含み、秘密鍵114は、秘密乱数値112を含む。
復号化デバイス300は、対称鍵取得器310及び復号化ユニット320を含む。
対称鍵取得器310は、再構成された対称鍵312を取得する。再構成された鍵312は、メッセージ410を暗号化するために使用された対称鍵214の復号化情報424に基づいた再構成である。復号化ユニット320は、再構成された対称鍵312で、暗号化されたメッセージを復号化する。復号化ユニット320は、メッセージ410を暗号化するために使用された暗号化アルゴリズムに対応する復号化アルゴリズムを使用する。例えばメッセージ410が、AESを使用して暗号化されているならば、復号化ユニット320は、AESを使用して復号化する。使用する暗号化及び復号化アルゴリズムは固定されていてもよい。例えば暗号化デバイス200及び復号化デバイス300は、常にAESを使用するように構成されていてもよい。使用する暗号化/復号化アルゴリズムは設定可能であってもよい。例えば復号化情報424は、メッセージ410を暗号化するために使用された暗号化アルゴリズムを示す情報を含んでいてもよい。復号化デバイス300は、当該指示に応じて、暗号化されたメッセージ422を復号化するための復号化アルゴリズムを選択することができる。
対称鍵取得器310は、秘密乱数値114(s)を復号化一変数多項式222に代入することによって、再構成された対称鍵312を再構成する。このステップは、暗号化鍵を生成する可能性が高い。残念なことに、対称鍵214は、秘密鍵114を復号化一変数多項式222に代入することから直接的に取得されることは保証されない。これの尤度は、公開セット122における多項式の数、それらの次数及び基礎となっている環に依存する。当該尤度は、秘密鍵114を、公開セット122を表す一般式に代入し、再構成された鍵312を歪める繰上り(carries)の尤度を計算することによって計算され、対称鍵214は、同じである。
当該尤度と応用とに応じて、鍵確認データの重要性は異なる。幾つかの応用は、偶然に、復号化デバイス300が、鍵を正しく再構成できなかったために、一部のメッセージを復号化できないことを容認する。必要であれば、復号化デバイス300は、暗号化デバイス200にメッセージを再送信することを要求してもよいが、メッセージは、異なる暗号化乱数値212で再度暗号化される。
しかし、復号化デバイス300は、複数の鍵を構成し、鍵確認データを使用して当該複数の鍵を検証することによって、当該複数の鍵から、再構成された対称鍵312を決定することもできる。当該複数の鍵からは、鍵確認データを使用して、多くても1つの鍵が正しく検証される。
構成された鍵の数と、システムのために行った選択、具体的には、公開セット122及び基礎となっている環のために行った選択とは、復号化鍵300が対称鍵214に等しい鍵を構成できない確率に影響を及ぼす。必要に応じて、当該確率をゼロに減少させうることを以下に説明する。
複数の構成された鍵の生成は、繰り返し行われることが好適である。例えば対称鍵取得器310は、次の通りに鍵検索するように構成される。
1.秘密乱数値(s)を、復号化一変数多項式に代入することによって得られた結果から、第1の再構成された鍵(K’)を導出し、
2.第1の再構成された鍵(K’)が対称鍵214(K)に等しいかどうか、鍵確認データから決定する。
3.等しい場合には、鍵検索を終了する
4.第1の再構成された鍵(K’)から、更なる再構成された鍵(K’)を生成する。
5.ステップ2に行く。
この鍵検索は、例えばフォーネクストループ(for-next loops)、ワイルループ(while loops)、ドゥアンティル(do-until)等といった様々なプログラミング手段を使用して行われてよい。ステップ3は、タイムアウトの場合にも終了する。
鍵生成デバイス100及び復号化デバイス300は、1つのデバイスにまとめられてもよく、これは、秘密乱数値112が、復号化デバイス300の範囲から決して出ることがないようにする。暗号化デバイス200及び復号化デバイス300は、例えば暗号化されたバックアップシステムにまとめられてもよい。鍵生成デバイス100、暗号化デバイス200及び復号化デバイス300は、場合によっては、地理的に分散されている異なるデバイスであってもよい。暗号化デバイス200及び復号化デバイス300は、通信ネットワークを介して、互いに通信してもよい。鍵生成デバイス100は、鍵情報を分配するために通信ネットワークを使用するが、例えば信頼のおける場所における有線接続、USBスティックといった携帯可能なメモリデバイスを使用する運搬等のアウトオブバウンド手段を使用してもよい。
興味深いことに、秘密鍵114、公開一変数多項式124、対称鍵214、復号化一変数多項式222及び再構成された対称鍵312の計算の基礎となっている計算システムは、幾つかの方法で選択される。例えば二変数及び一変数多項式の係数や、秘密乱数値112及び暗号化乱数値212を含む値は、いわゆる可換環から選択される。可換環は、一組の値が、加算及び乗算と組み合わされる数学的概念である。
公開セット122が複数の多項式を含む場合に、異なる可換環を、公開セット122の各多項式に関連付けることによって、向上された混合効果及び一方向性との両方が得られるということは、発明者の見識である。公開鍵生成器120及び復号化情報生成器220は、秘密乱数値112又は暗号化乱数値212を、それぞれ、公開セット122の各多項式に代入し、それに関連付けられている環における各多項式を簡約化する。好適には、各多項式も、正準形にされる。
式の形式では、これは、秘密乱数値112又は暗号化乱数値212について、それぞれ、Σ[f(s, )]Ri又はΣ[f(r, )]Riと表される。これらの式において、多項式f( , )は、環Rに関連付けられている。角括弧は、示されている環における正準形への簡約化を示す。合計自体は、グローバル環R(式には示さず)において行われてよい。更に、対称鍵214及び再構成された対称鍵312の計算も、グローバル環において行われてよい。場合によっては、ある鍵長(b)(ビット)に切り詰めるといった追加の処理が後続する。公開セット122の多項式に関連付けられている各局所環について、合計の前に、環の要素をグローバル環にマッピングするマッピング関数があってよい。多くの実施形態において、マッピングは、自然マッピングである。即ち、局所環における値を表すために使用されるビットパターンは、同じビットパターンを有するグローバル環の値にマッピングされる。即ち、マッピングをするために、実際の計算動作を行う必要がない。
公開セット122における多項式と関連付けられる環のうちの1つの環、又は、グローバル環として使用される環は、例えば次の通りにシステム400において実施される。環の値は、電子デバイス100、200及び300においてデジタル形式で表され、値の加算及び乗算演算は、デジタルアルゴリズムとして実施される。アルゴリズムは、ソフトウェア又はハードウェアで実施されてよい。これらの演算のハードウェア表現が、場合によってはソフトウェアと組み合わされて、しばしば使用される。環は、環の値を一意な形で表すために、正準化アルゴリズムを有してよい。
デジタル形式で表される多くの可換環がある。2つの重要な例は、多項式環及び整数環である。以下に、各RがZqi、即ち、qを法とする整数の可換環として選択され、また、RがZ、即ち、Nを法とする整数の可換環として選択される整数環に基づいた事例を与える。これらの環は、それらの値のデジタル表現を、デジタル表現される整数として、例えば、それぞれ、0乃至q−1又はN−1の整数として可能にする。多項式は、この形式で表現される値のアレイとして表現されてもよい。加算アルゴリズムは、係数を法とする簡約化のソフトウェア実施が後続する整数加算のハードウェア実施として実施されてよい。乗算は、係数を法とする簡約化のソフトウェア実施が後続する整数乗算のハードウェア実施として実施されてよい。多くの可換環及びデジタル表現自体は、当技術分野において知られている。しかし、上記されたようなやり方で、公開−秘密鍵暗号化システムを得るために、このようなデジタル表現を適用することは知られていない。
暗号化システム400の一実施形態では、公開グローバル簡約化整数(N)が、公開セットに関連付けられ、公開個別簡約化整数(q)が、公開セットの各多項式と関連付けられる。関連付けられた情報は、公開鍵126内に含められるか、又は、固定されていてよい。一実施形態では、公開グローバル簡約化整数は、固定されており、公開鍵に含められる必要はない。しかし、公開個別簡約化整数(q)は、固定されておらず、公開セット122と共に生成されてよい。これらの数は、ランダムに選択されても、安全性要件、正しい復号化の尤度等に依存して選択されてもよい。これらの数の可能な選択を以下に与える。公開個別簡約化整数の少なくとも2つは異なり、好適には、すべての公開個別簡約化整数が異なる。
秘密鍵生成器110は、秘密乱数値112を、0とグローバル公開グローバル簡約化整数(N)との間の整数として生成する。対称鍵取得器210は、暗号化乱数値212を、0とグローバル公開グローバル簡約化整数(N)との間の整数として生成する。
秘密鍵生成器110は、公開セット122における多項式を、整数係数を有する対称二変数多項式(f( , ))として取得する。公開セット122における多項式が、関連付けられる公開簡約化整数を法として簡約化された係数を有する必要はなく、例えば係数は、より大きくても、負数であってもよい。しかし、公開セット122の多項式が正準形(例えば0と、関連付けられる公開簡約化整数(q)−1との間(0も、q−1も含める)の係数を有する)であることが、実施のためには好都合である。
公開鍵生成器120は、公開一変数多項式を、整数係数を有する一変数多項式として生成する。復号化情報生成器220は、復号化一変数多項式を、整数係数を有する一変数多項式として生成する。
例えば公開鍵生成器120は、公開一変数多項式を次の通りに生成する。
1.一変数多項式のセットを、a.の通りに取得する。
2.公開セットの各多項式について、
a.秘密乱数整数(s)を、上記多項式(f(s, ))に代入し、当該多項式に関連付けられている公開個別簡約化整数(q)を法として簡約化する。
3.一変数多項式のセットを合計し、グローバル簡約化整数(N)を法として簡約化する。
復号化一変数多項式を生成するように復号化情報生成器220を構成することも同様に行われるが、ただし、秘密乱数値112の代わりに、暗号化乱数値212を使用する。
対称鍵取得器210は、暗号化乱数値(r)を、公開一変数多項式に代入し、グローバル簡約化整数(N)を法として簡約化し、結果のビットの最低限の鍵長の数(b)を取ることによって、対称鍵(K)を計算する。
一例として、公開グローバル簡約化整数(N)は、2(α+2)b−1よりも大きく、及び/又は、2(α+2)bよりも低い奇数として選択されてよい。ここで、αは、公開セットにおける多項式の2つの変数のうちの1つの変数における最も高い次数を表し、bは、鍵長を表す。各公開個別簡約化整数(q)について、公開グローバル簡約化整数(N)から当該公開個別簡約化整数(q)を引いたものは、2の鍵長乗の倍数(q=N−β、1β )であり、2の2倍の鍵長乗未満である。パラメータのこの特定の選択は、適切な混合と、復号化デバイスが鍵を再構成可能である高い確率との間のトレードオフである。他の選択も可能である。
この場合、対称鍵(K)を計算することは更に、2の鍵長乗(2)を法として簡約化することを含む。即ち、代入結果の最後のb個のビットのみを取るように切り詰める。
対称鍵取得器310は、秘密乱数値(s)を、復号化一変数多項式に代入し、公開グローバル簡約化整数(N)を法として簡約化し、また、2の鍵長乗(2)を法として簡約化することによって、対称鍵(K)を再構成する。
この実施形態では、代入ステップのみから得られる鍵が、対称鍵214とまだ等しくないことは可能である。再構成された鍵が、暗号化に使用された鍵に等しいかどうかの検出には、鍵確認データが使用される。鍵確認は暗示的であってもよい。例えばメッセージ410は、違う鍵で復号化される場合には得られない特定の形式であってよい。
鍵Kの鍵確認データ(例えばH(K))が、ハッシュ関数Hについて、H(K’)とは異なる場合でも、復号化デバイス300は、正しい鍵を計算し、依然として取得する。これをするためには、復号化デバイス300は、K’から、jの範囲について、値<K’+jN> bと、その鍵確認値(例えばハッシュ値)とを計算する。これらの鍵確認値の多くても1つが、鍵確認値、例えばハッシュ値H(K)に等しい。当該指数jが見つかると、復号化デバイス300は、jの当該値を使用して、Kを、<K’+jN> bとして計算する。山括弧は、モジュロ演算を示す。当該jが見つからない場合、復号化デバイス300は、データを復号化することができない。後者の場合、復号化デバイス300は、例えばエラーメッセージを生成する、違う暗号化乱数値212での再暗号化を要求する等の幾つかの選択肢を有する。興味深いことに、秘密乱数値112は、最初のK’を計算するためだけに必要であり、他の計算は、公開グローバル簡約化整数(N)を使用する。
次のアルゴリズムが使用されてよい。対称鍵取得器310は、次の通りに鍵検索をする。
1.秘密乱数整数(s)を、復号化一変数多項式に代入した結果から、第1の再構成された鍵(K’)を導出し、
2.第1の再構成された鍵(K’)が対称鍵214(K)に等しいかどうかを、鍵確認データから決定し、
3.等しい場合には、鍵検索を終了する
4.jの新しい非ゼロ値について、<K’+jN> bを計算することによって、第1の再構成された鍵(K’)から、更なる再構成された鍵(K’)を生成する。
5.ステップ2に行く。
ステップ3は、タイムアウトの場合にも終了する。例えば幾つかの資源に制約のあるデバイスでは、鍵の再構成にかけられ得る時間量は限られている。
通常、デバイス100、200及び300は、それぞれ、デバイスに記憶された適切なソフトウェアを実行するマイクロプロセッサ(図示せず)を含む。例えば当該ソフトウェアは、ダウンロードされて、デバイスの対応するメモリ、例えばRAM(図示せず)に記憶されていてよい。
以下に、システムの一実施形態の数学的な説明が与えられる。まず、安全性パラメータ、即ち、ビット長b、公開セットにおける多項式の数m、及び、公開セットにおける最大次数αが選択される。ビット長bは、対称暗号化における鍵長を決定する。他の2つのパラメータを増加させると、システムの複雑さが増加する。これらの3つのパラメータは、例えばシステム設計者によって決定されて固定されていても、又は、鍵生成デバイス100によって選択されてもよい。更に、鍵生成デバイス100は、区間(2(α+1)b,2(α+2)b)における奇数Nと、m個の整数q(形式q=N−βの1m、βは、1β<2を満たしている)と、次数αのm個の対称二変数多項式とを選択する。
対称性により、jkを有する(ffkのみが指定されればよい。鍵生成デバイス100は、範囲1s<2内の秘密整数s(112)を選択し、(α+1)の数
を計算することによって、公開一変数多項式125を計算する。
鍵生成デバイス100によって生成された公開鍵は、s以外の上記パラメータをすべて含む。この特定の実施形態では、鍵生成デバイス100は、ハッシュ関数Hも指定する。暗号化デバイス200は、範囲1r<2内の乱数整数rを選択し、(α+1)の数
だけでなく、数
、また、Kのハッシュ(H(K))といった鍵確認データを計算することによって、復号化一変数多項式222を計算する。暗号化デバイス200は、bだけでなく、H(K)及び数C=〈M+K〉 bも送信する。ここで、Mは、鍵生成デバイス100から復号化デバイス300に送信されるbビットのプレーンテキストメッセージである。Kを追加する代わりに、暗号化デバイス200は、KでMを暗号化することによってCを得るために、他の暗号化アルゴリズムを使用してもよい。
復号化デバイス300は、
と、ハッシュ値H=H(〈K’+jN〉 b)(−(3m+α+1)(3m+α+1について)とを計算する。
復号化デバイス300は、Hj’=H(K)であるようにj’を見つけ、Kを、〈K’+j’N〉 bとして取り出す。復号化デバイス300は、今度は、送信されたメッセージMを、M=〈C−K〉 bとして取り出す。Kを引く代わりに、復号化デバイス300は、KでMを復号化することによってMを得るために、暗号化アルゴリズムに対応する他の復号化アルゴリズムを使用してもよい。
スキームの安全性は、係数α及び(fjkを所与として、sを見つけることの難しさに依存する。m>1及びα>1について、これを行うやり方は、sのすべての可能な値を試みることである。これは、bが十分に大きければ実現不可能である。b=128以上の値は、大きいので、sのすべての可能な値を試みることは、実現不可能である。即ち、総当たり攻撃は除外される。しかし、幾つかの応用は、絶対的な実現不可能性を必要としない。その場合、b=48以上の値で既に十分である。
m=1について、係数αは、環Zq1におけるsにおける多項式である。このようなシステムは、場合によっては、求根アルゴリズムを適応させることによって攻撃される。これは、確かに簡単なタスクではないが、すべての安全性応用について、m>1を選択することが推奨される。
m>1及びα>1について、sを見つける別のアプローチは、スキームを、m及びαに比例する次元の特定の格子におけるいわゆる最近傍ベクトル問題にマッピングすることである。対称二変数多項式について、この次元は、二変数多項式が少なくとも(α+1)(α+2)/2異なる非ゼロの係数と、少なくとも(α+1)(α+1)の非ゼロ係数とを有する場合に達成される(m+1)(α+1)の上界と、すべての二変数多項式が、同じ次数における単項式である場合に、m+1の下界とを有する。最近傍ベクトル問題を解決するすべての既知のアルゴリズムは、格子次元と共に指数関数的に成長する時間量を取るか、又は、格子次元と共に指数関数的に成長可能であるエラーをする。大きい次元の格子における最近傍ベクトル問題は、実現不可能であることが分かっている。Stehleは、ほとんどの既知の解析アルゴリズムは、次元が180に到達すると機能しなくなり始めることを報告している。発明者は、非常に大きい次元(次元500がこの要件を満たすことが分かった)では、既存の解析アルゴリズムは、全く機能しないか、又は、実現不可能であるほどに低速であることを見出している。更なる利点として、最近傍ベクトル問題といった格子に基づいた問題は、素因数分解といった古典的な問題に基づいている既存の暗号アルゴリズムよりも、これから販売される量子コンピュータで解析することの方がより難しい。
本実施形態では、公開鍵を生成する鍵生成デバイス100のサイズは、b、m、α及びハッシュ関数の指定は除き、
である。
b、m、α及びハッシュ関数の指定は、例えばこれらが、システムにおいて固定されている場合には不要である。ハッシュ関数は、f個のビットを出力すると仮定して、bビットのメッセージMを送信するための暗号文暗号化されたメッセージ422は、
である。
上記実施形態において、K及びMを足すことは、暗号化として使用されている。これは、例えばシステムが、コマンドメッセージといった比較的短いメッセージに適用される場合は、適切な選択である。この構成は、第2の対称鍵を暗号化するためにも使用されてよい。第2の対称鍵は、次に、Mを暗号化するために使用される。上記構成は、例えばAES−128であるAESといった例えばブロック暗号である他の対称暗号化でも使用されてよい。
上記説明は、様々な方法で変更することができる。幾つかの可能な変形を以下に説明する。
例えば、すべての多項式係数(fjkがゼロであることを必要とする場合(j=k=αの場合を除く)、復号化情報424のサイズが大幅に縮小されてもよい。これは、公開鍵のサイズを縮小するが、より重要なことには、これは、暗号化デバイス200が、単一のb、即ち、bαを送信するだけでよく、したがって、暗号文のサイズが、(α+4)b個のビットに縮小することを意味する。
Kが所与である場合に、秘密鍵sを見つける問題は、今度は、単一の方程式
から、sを解くことに変換する。
これは、m>1、α>1である場合には、依然として難しい問題である。
Cを、〈M+K〉 bとして形成することは、Kの略均一な分布は、メッセージMが均一に分布されていなくても、Cが(略)均一に分布されることを確実にするので、良い選択である。他の可能な選択には、可逆関数の任意の1パラメータセットに対するC=F(M)及び
が含まれる。例えば、所与の奇数A、Bに対して、
である。F(M)=K・M、ここで、暗号化デバイス200は、この乱数rを、K(s,r)≠0であるように選ばなければならない。
(M)=K+M
暗号化システム400及びシステム430は、「環」における演算としても知られている乗算及び加算を行う別の計算システムで構成されてもよい。可換環がより望ましいと考えられる。環が一般に適用可能であるが、読み易さのために、以下の例は、多項式環について与えられる。多項式環は、整数環と同様に、可換環の例である。上記システムとの重要な相違点は、多項式の係数、暗号化乱数値及び秘密乱数値が、様々な多項式環からの要素であることである。使用されるすべての多項式環の形式的変数を示すために「t」を使用する。
多項式環自体は知られているため、以下に簡単な概要のみを与える。環Z[t]、即ち、Z=Z/(pZ);{0,1,…,p−1}における係数を有する変数tにおける多項式の環を検討する。この環の要素は、多項式
であり、すべてα∈Zであり、級数は終了する:k>Kについて、すべての係数α=0であるようなKがある。A(t)の次数(deg(A(t))と示される)は、すべてのk>Kについて、α≠0及びα=0であるようなKの値である。これは、零多項式を除き、Z[t]のすべての要素の次数を定義する。「0」の次数、即ち、零多項式は、定義されていない。
[t]における2つの多項式の加算は、
と定義される。ここで、〈・〉は、独立変数が、pを法として評価され、Zにあることを示す。なお、非零多項式A(t)及びB(t)(ただし、A(t)+B(t)≠0)について、deg(A(t)+B(t))<max(deg(A(t),deg(B(t)))が成り立つ。
[t]における2つの多項式の乗算は、
と定義される。なお、pが素数である場合、非零多項式A(t)及びB(t)について、deg(A(t)・B(t))=deg(A(t))+deg(B(t))が常に成り立つ。pが素数でない場合、これは必ずしも成り立つとは限らない。以下では、pは素数であると仮定する。
仮に、Q(t)を、(素数pについて)Z[t]における非零多項式であるとする。この場合、任意の多項式A(t)∈Z[t]が、A(t)=P(t)・Q(t)+R(t)(ただし、deg(R(t))<deg(Q(t)))と一意に表すことができる。ここでは、P(t)は、Q(t)によるA(t)の徐算の結果であり、R(t)は、剰余である。この剰余は、〈A(t)〉Q(t)、即ち、Q(t)を法として簡約化されたA(t)で示される。環R(Q(t),p):=Z[t]/(Q(t)Z[t])は、零多項式と、deg(Q(t))よりも小さい次数のZにおける係数を有するtにおけるすべての多項式とのセットとして定義される。2つのこのような多項式の加算は、Z[t]における加算と同じであり、乗算は、Z[t]における乗算と同じであり、その後に、Q(t)を法とする簡約化が続く。
非負整数とp変数多項式との間には、自然マッピングがある。多項式係数は、整数のp変数の展開における数字に対応し、したがって、多項式に対応する整数は、t=pを当該多項式に代入し、それを、
において評価することによって得られる。なお、このマッピングは、多項式Q(t)を法とする簡約化の、Qを法とする整数簡約化との等値を意味するものではない。例えば、Z[t]において、1+t=(1+t)(1+t)が成り立ち、したがって、〈1+t1+t=0であるが、〈1+21+2=〈5〉=2≠0である。
環R(Q(t),p)の要素のセットは、Q(t)の次数のみに依存する。これらの要素の加算は、pに依存する。これは、多項式係数がZにあるが、Q(t)とは無関係であるからである。その一方で、これらの乗算の結果は、p及びQ(t)に依存する。
環R(Q(t),p)において、定義された乗算及び加算を有することは、当該環における多項式を定義することを可能にする。これらの独立変数は、当該環の要素であり、要素は、環の値による係数(ring-valued coefficient)を有し、この環内の値をとる。R(Q(t),p)の次数αの二変数多項式F(・,・)は、したがって、
と表すことができ、ここで、(Z[t]の)合計は、モジュール簡易化演算の外でとることがきる。様々な環R(Q(t),p)、R(Q(t),p)、R(Q(t),p)における多項式を(Z[t]で)加算することもできる:
すべての以下の実施形態では、ビット指向のデバイス上で実施することがより簡単である、p=2を使用する。しかし、pの他の値、特に素数値も可能であるため、これは限定ではない。例えば251及び65521は、係数がそれぞれ1バイト及び2バイトでフィットするので適切な選択である。
暗号化システム400及び430と同じように、鍵生成デバイス100は、秘密鍵生成器110と公開鍵生成器120とを含む。公開鍵生成器120は、以下のパラメータを選択するか、又は、電子形式で、他の方法で取得する。即ち、
Mと示される、公開グローバル簡約化多項式次数;
鍵のサイズ(B個のビット)
整数α、好適には、α>1。
秘密乱数値及び暗号化乱数値のサイズを決定する安全性パラメータ「b」
整数m、好適には、m2;
パラメータMの良い選択は、M=2α(b?1)+B−1及びb=Bである。システム設計者が、これらのパラメータを選択して、これらを鍵生成デバイスに送信してよい。更に、公開鍵生成器120は、電子形式で、以下のパラメータを選択するか、他の方法で取得する:
公開グローバル簡約化多項式N(t)∈Z[t]。その次数deg(N(t))は、Mに等しい;
公開個別簡約化多項式Q(t)、…、Q(t)
その2つの変数それぞれにおける次数αの二変数多項式F( , )の公開セット。各R(Q(t),2)において、係数Fi,j,k(t)=Fi,k,j(t)(1m、0j、kα)を有する二変数多項式F(・,・)。
鍵のサイズ(B)とパラメータサイズ(b)とは、異なっていてもよい。これらを等しく選択することは任意選択である。
公開セットにおける各多項式と、公開個別簡約化多項式Q(t)が関連付けられ、またその反対もある。公開セットにおける各特定の多項式F( , )は、当該特定の多項式F( , )と関連付けられる公開個別簡約化多項式Q(t)を法とする多項式環から取られる係数Fi,j,k(t)を有する二変数多項式である。多項式は、
と示される。
公開個別簡約化多項式Q(t)を選択する良いやり方は、次の通りである。最初に、次数Bの多項式γ(t)∈Z[t]を選択する。次に、すべてが最大でもM−α(b−1)−Bに等しい次数を有し、かつ、少なくとも1つ(好適にはすべて)がM−2α(b−1)−Bより大きい次数を有する、m個の多項式β(t)、…、β(t)∈Z[t]を選択する。次に、m個の多項式Q(t)、…、Q(t)を定義し、ここで、Q(t)=N(t)+β(t)γ(t)である。簡約化多項式についてのこの選択は、秘密鍵復号化デバイスの対称鍵取得器が、公開鍵暗号化デバイスよって使用されたものと同じ対称鍵を、秘密乱数値を復号化一変数多項式に代入することから直接的に取得することを確実にする。なお、公開個別簡約化多項式の次数の下限は、−1として取られる。−1より大きい次数は、次数が少なくとも0であるべきことを意味する。次数は、その結果、最大でもα(b−1)−1に等しくなければならない。一実施形態では、公開個別簡約化多項式の少なくとも1つ、又は、すべてが、少なくとも2の次数を有する。
鍵生成デバイスは、秘密乱数値sを{0,1,…,2−1}において、電子形式で取得し、秘密乱数値(112、s)を、公開セットの多項式に代入することにより得られる一変数多項式を合計することにより、公開一変数多項式を計算する:
なお、非負整数とp変数(この場合は二進)多項式との間の自然マッピングを使用して、sがs(t)にマッピングされている。即ち、sの二進展開の係数をs(t)の係数とマッピングする。後者は、直接的に生成されることも可能である。
既に述べたように、公開鍵暗号化デバイスは、対称鍵取得器、復号化情報生成器及び暗号化ユニットを含む。
対称鍵取得器は、暗号化乱数値rを、{0,1,…,2−1}において、電子形式で取得する。暗号化乱数値は、公開一変数多項式に代入される。即ち、
ここで、結果は、公開グローバル簡約化多項式を法とし、次いで、γ(t)を法として簡約化される。この代入及び簡約化の結果は、形式的な変数(t)における多項式である。これから、対称鍵を様々な態様で取得することができる。例えば多項式は、自然マッピングを使用して、数に変換される。マッピングされた結果又は一連の係数を直接的にハッシュ処理してもよい。鍵の簡約化、拡張、エントロピー増幅等が必要に応じて適用されてよい。暗号化ユニットは、既に述べたように、メッセージを暗号化するために、対称鍵を使用する。
復号化情報生成器は、暗号化乱数値(r)を、公開セットの多項式(122、f(r, ))に代入することにより得られる一変数多項式を合計することによって、復号化一変数多項式を計算する。
秘密鍵復号化デバイスは、対称鍵取得器及び復号化ユニットを含む。
秘密鍵復号化デバイスは、
から、鍵k(r,s)を計算する。
興味深いことに、パラメータは、k(r,s)=k(s,r)を保証する。場合により、暗号化デバイスと同じ導出を使用するこの鍵は、暗号テキストを復号化するために使用される。この場合、更なる再構築された鍵を導出する必要はない。
二変数多項式F(・,・)は、対称二変数多項式として選択されてもよい。Aliceが公開する鍵の材料が、
であり、BobがAliceに送信する鍵材料が、
であるので、これは不要である。Alice及びBobは共に同じ鍵
を計算する。
図3は、集積回路500の略ブロック図である。集積回路500は、プロセッサ520と、メモリ530と、I/Oユニット540とを含む。集積回路500のこれらのユニットは、バスといった相互接続510を介して互いの間で通信することができる。プロセッサ520は、本明細書で説明されるような方法を実行するために、メモリ530に記憶されるソフトウェアを実行する。このようにして、集積回路500は、鍵生成デバイス100、暗号化デバイス200及び/又は復号化デバイス300として構成される。メモリ530の一部が、必要に応じて、公開鍵、秘密鍵、プレーンメッセージ及び/又は暗号化されたメッセージを記憶してよい。
I/Oユニット540は、デバイス100、200又は300といった他のデバイスと通信するために使用されてよく、例えば公開又は秘密鍵を受信したり、暗号化されたメッセージを送受信したりする。I/Oユニット540は、無線通信用のアンテナを含んでよい。I/Oユニット540は、有線通信用の電気的インターフェースを含んでよい。
集積回路500は、コンピュータ、モバイルフォンといったモバイル通信デバイス等に組み込まれてよい。集積回路500は更に、例えばLEDデバイスが配置されている照明デバイスに組み込まれてもよい。例えば復号化デバイス300として構成され、LEDといった照明ユニットが配置される集積回路500は、公開鍵で暗号化されたコマンドを受信する。復号化デバイス300だけが、コマンドを復号化し、実行することができる。例えば暗号化デバイス200として構成され、LEDといった照明ユニットが配置される集積回路500は、公開鍵で暗号化されたステータスメッセージといったメッセージを送信する。公開鍵に対応する秘密鍵へのアクセスを有する復号化デバイス300だけが、コマンドを復号化し、実行することができる。
多項式操作は、メモリ530に記憶される多項式操作ソフトウェアによって指示されるように、プロセッサ520によって行われるが、集積回路500がオプションの多項式操作デバイス550を有するように構成される場合、鍵生成、暗号化及び復号化のタスクがより速い。多項式操作デバイス550は、代入及び簡約化演算を実行するハードウェアユニットである。
図4は、集積回路500が鍵生成デバイス100として構成される場合に、メモリ530に使用されるメモリレイアウトの略ブロック図である。図4には、sといった秘密乱数整数562、Nといった公開グローバル簡約化整数564、fといった整数係数582〜586を有する対称二変数多項式、及び、qといった関連する公開簡約化整数592〜596が示される。更に、図4では、メモリの2つの部分が、公開鍵を計算するためのワーキングスペースとして確保されている。簡約化結果566を使用して、秘密乱数整数562を、対称二変数多項式の1つに代入し、公開簡約化整数を法として簡約化する。対称多項式のそれぞれについて、結果が、合計結果566に加算され、グローバル整数564を法として簡約化される。図4に示されるレイアウトは、m=3のシステムに適している。
図4は、整数環について説明されているが、多項式環から係数を取ることも可能である。必要とされるメモリは、対応して適応されるべきである。
図5は、暗号化システム600の略ブロック図である。図6は、鍵生成デバイス100及び復号化デバイス300で構成される受信ユニット610と、暗号化デバイス200で構成される送信ユニット640と、認証局620と、公開鍵データベース630とを示す。更に、図6は、送信ユニット640から受信ユニット610に送信される暗号化されたデータ650を示す。受信ユニット610及び送信ユニット640は、ネットワークの一部である。ネットワーク内の任意のデバイスが、対象受信者の公開鍵を使用してメッセージを暗号化することができる。対象受信者は、メッセージを復号化するための秘密鍵を所有している。
送信ユニット640と受信ユニット610との間の2者間通信は、次のように行われる。
(1)受信ユニット610は、本明細書において説明されたように、その鍵生成デバイス100を使用して、公開−秘密鍵対(e,d)を選択する。ここでは、eは、公開鍵を表し、dは、対応する秘密鍵を表す。
(2)次に、受信ユニット610は、暗号化鍵eを、送信ユニット640に送信するが、復号化鍵dは秘密にする。
(3)送信ユニット640は、c=E(m)(「暗号文」)を計算することによって、メッセージm(「プレーンテキスト」)を受信ユニット610に送信することができる。
(4)受信ユニット610は、cを受信すると、m=D(c)を計算することによって、元のメッセージを回収することができる。
ネットワーク暗号化システム600のより高度な実施形態は、公開鍵データベース630及び認証局620を使用する。
受信ユニット610は、その公開鍵eを、認証局620(CA)に送る。公開鍵データベース630は、受信ユニット610のユーザのアイデンティティを確認するが、これは厳密には必要ではない。認証局620は、認証局620の公開鍵を使用して、公開鍵に署名する。認証局620は、公開鍵データベース630内で、署名された公開鍵を、場合によっては、当該アイデンティティと共に発行する。送信ユニット640が、メッセージを、例えばアイデンティティで特定された受信ユニット610に送りたい場合、送信ユニット640は、公開鍵データベース630内の公開鍵を、場合によっては、当該アイデンティティを検索索引として使用して探す。送信ユニット640は、認証局620の署名を確認する。
公開セットにおける多項式を対称にすることは、実装を単純化する。公開鍵暗号化システム100の一実施形態では、公開セット122における二変数多項式の少なくとも1つは非対称である。一実施形態では、公開セット122におけるすべての多項式が非対称である。
鍵生成は、秘密乱数値112を、セット122の多項式の2つの変数のうちの特定の1つに代入するように鍵生成デバイスが構成されることを除いて、上述のように機能する。例えばf(x,y)が、セット122における二変数多項式のうちの1つであり、また、鍵生成デバイスは、2つの変数のうちの第1の変数を使用する場合、f(s,y)を計算する。合計ステップ(ある場合には)は上述の通りである。暗号化デバイスは、公開一変数多項式124を受信する。一変数多項式は、1つの変数しか有さないので、暗号化乱数値212をそこに代入することにおいて相違はない。しかし、復号化一変数多項式222を計算するために、暗号化デバイスは、暗号化乱数値212を、2つの変数のうちの第2の変数、即ち、鍵生成デバイスによって使用されたものとは異なる変数に代入する。上記の例に従うに、暗号化デバイスは、f(x,r)を計算することになる。最終的に、復号化デバイスは、一変数多項式を受信するので、代入に利用可能な変数は1つしかない。
非対称多項式を使用することは、公開一変数多項式124と復号化一変数多項式222とが異なる構造を有することを保証するので、安全性を高めることができる。
本明細書において与えられる、セット122における対称多項式を使用するすべての実施形態は、非対称多項式を使用するように変更されてもよい。必要とされる唯一の変更は、復号化一変数多項式222が、セット122における多項式の2つの変数のうちの一方の変数に代入することから取得される一方で、公開一変数多項式124が、セット122における多項式の2つの変数のうちの他方の変数に代入することから取得されることを確実にすることである。
図6aは、鍵生成方法700の略フローチャートである。方法700は、秘密乱数値を有する秘密鍵を生成するステップ702と、対称二変数多項式(f( , ))の公開セットを電子形式で取得するステップ704と、秘密乱数値(s)を公開セットの多項式に代入すること(f(s, ))によって取得される一変数多項式を合計することによって、公開一変数多項式を計算するステップ706と、公開一変数多項式及び公開セットを含む公開鍵を生成するステップ708とを含む。
図6bは、暗号化方法710の略フローチャートである。方法710は、暗号化乱数値(r)を電子形式で取得するステップ712と、暗号化乱数値(r)を公開一変数多項式に代入することによって、対称鍵(K)を計算するステップ714と、暗号化乱数値(r)を公開セットの多項式に代入すること(f(r, ))によって取得される一変数多項式を合計することによって、復号化一変数多項式を計算するステップ716と、再構成された鍵(K’)が、対称鍵(K)に等しいかどうかを検証するために、対称鍵(K)から鍵確認データを計算するステップ718と、復号化一変数多項式を含む復号化情報を生成するステップ720と、対称鍵でメッセージを暗号化し、当該暗号化されたメッセージを復号化情報に関連付けるステップ722とを含む。
図6cは、復号化方法730のフローチャートである。方法730は、秘密乱数値(s)を、復号化一変数多項式に代入することによって、第1の対称鍵(K)を再構成するステップ732と、再構成された鍵(K’)が、対称鍵(K)に等しいかどうかを、鍵確認データから決定するステップ734と、等しくない場合は、例えば公開グローバル簡略化整数(N)又は複数の公開グローバル簡約化整数(N)を、第1の再構成された鍵(K’)に加算して、2の鍵長乗(2)を法として簡約化することによって、第1の再構成された鍵(K’)から、更なる再構成された鍵を導出するステップ736とを含む。ステップ734において、鍵確認データから、第1の再構成された鍵(K’)は、対称鍵(K)に等しいと決定されると、対称鍵(K)を用いてメッセージが復号化される(ステップ738)。
当業者には明らかであるように、上記方法を実行する多くの異なるやり方が可能である。例えばステップの順番が変更可能であり、又は、幾つかのステップは、並列で実行されてもよい。更に、他の方法ステップが、ステップ間に挿入されてもよい。挿入されたステップは、本明細書に説明されたような方法の改良であってもよいし、又は、方法に関連していなくてもよい。
本発明による方法は、プロセッサシステムに、方法700、710及び730を行わせるための命令を含むソフトウェアを使用して実行されてよい。ソフトウェアは、システムの特定のサブエンティティによって行われるステップのみを含んでもよい。ソフトウェアは、ハードディスク、フロッピー(登録商標)、メモリ等といった適切な記憶媒体に記憶されてよい。ソフトウェアは、有線若しくは無線によって、又は、例えばインターネットであるデータネットワークを使用して、信号として送信されてもよい。ソフトウェアは、ダウンロード及び/又はサーバ上でのリモート使用のために利用可能にされてもよい。
当然のことながら、本発明は、コンピュータプログラム、特に本発明を実現するように適応される担体上又は担体内のコンピュータプログラムにも拡張される。プログラムは、部分的にコンパイルされた形式のソースコード、オブジェクトコード、コード中間ソース及びオブジェクトコードの形式、又は、本発明による方法の実施における使用に適した任意の他の形式であってよい。コンピュータプログラムプロダクトに関する一実施形態は、上記方法の少なくとも1つの方法の処理ステップのそれぞれに対応するコンピュータ実行可能命令を含む。これらの命令は、サブルーチンに細分されても、及び/又は、静的若しくは動的にリンクされる1つ以上のファイルに記憶されてもよい。コンピュータプログラムプロダクトに関する別の実施形態は、上記システム及び/又はプロダクトの少なくとも1つについての手段のそれぞれに対応するコンピュータ実行可能命令を含む。
なお、上記実施形態は、発明を例示するものであって、限定するものではない。当業者であれば、多くの代替実施形態をデザインすることができるであろう。
請求項において、括弧内に置かれる参照符号は、その請求項を限定するものと解釈されるべきではない。「含む」との動詞及びその活用形の使用は、請求項に記載された要素又はステップ以外の要素又はステップの存在を排除するものではない。ある要素に先行する「a」又は「an」との冠詞は、かかる要素が複数存在することを排除するものではない。本発明は、いくつかの別個の要素を含むハードウェアによって実現されてもよいし、適切にプログラミングされたコンピュータによって実現されてもよい。いくつかの手段を列挙した装置の請求項において、かかる手段の幾つかが、全く同一のハードウェアアイテムによって実現されてもよい。特定の手段が互いに異なる従属請求項に記載されているということだけで、これらの手段の組合せを、有利に用いることができないことを示すものではない。
好適な実施形態は、以下の通りにまとめることができる。
実施形態1
公開鍵暗号化デバイスにおける使用のための公開鍵126と、秘密鍵復号化デバイスにおける使用のための対応する秘密鍵114とを生成する鍵生成デバイス100であって、
秘密乱数値112、sを電子形式で取得し、
上記秘密乱数値112を含む上記秘密鍵114を生成する、秘密鍵生成器110と、
二変数多項式f( , )の公開セット122を電子形式で取得し、
上記秘密乱数値112、sを上記公開セット122の上記二変数多項式に代入する(f(s, ))ことによって取得される一変数多項式を合計することによって、公開一変数多項式124を計算し、
上記公開一変数多項式124及び上記公開セット122を含む上記公開鍵126を生成する、公開鍵生成器120と、
を含み、
異なる可換環が、二変数多項式の上記公開セットの各多項式に関連付けられ、
上記秘密乱数値sを上記公開セットの特定の多項式に代入すること(f(s, ))によって取得される上記一変数多項式は、上記特定の一変数多項式と関連付けられる上記可換環において正準形に簡約化される、鍵生成デバイス。
実施形態2
公開鍵を使用して電子メッセージ410を暗号化する公開鍵暗号化デバイス200であって、上記公開鍵は、公開一変数多項式と、二変数多項式f( , )の公開セットとを含み、異なる可換環が、二変数多項式の上記公開セットの各多項式に関連付けられ、上記公開鍵暗号化デバイスは、
暗号化乱数値212、rを電子形式で取得し、
上記暗号化乱数値212、rを上記公開一変数多項式に代入することによって、対称鍵214、Kを計算する、対称鍵取得器210と、
上記暗号化乱数値rを、上記公開セット122の上記二変数多項式に代入すること(f(r, ))によって取得される一変数多項式を合計することによって、復号化一変数多項式222を計算し、
上記復号化一変数多項式222を含む復号化情報424を生成する、復号化情報生成器220と、
上記対称鍵214で、上記電子メッセージ410を暗号化し、
暗号化された上記電子メッセージ422を上記復号化情報424と関連付ける、暗号化ユニット230と、
を含み、
上記暗号化乱数値rを、上記公開セットの特定の多項式に代入すること(f(r, ))によって取得される上記一変数多項式は、上記特定の一変数多項式と関連付けられる上記可換環において正準形に簡約化される、公開鍵暗号化デバイス。
実施形態3
実施形態2の上記公開鍵暗号化デバイスによって取得可能である復号化情報424と、秘密鍵114とを使用して、暗号化されたメッセージ422を復号化する秘密鍵復号化デバイス300であって、
上記復号化情報は、復号化一変数多項式222を含み、上記秘密鍵は、秘密乱数値112、sを含み、
上記秘密鍵復号化デバイスは、
上記秘密乱数値sを、上記復号化一変数多項式222に代入することによって、対称鍵312、K’を再構成する対称鍵取得器310と、
上記再構成された対称鍵312、K’で、上記暗号化されたメッセージを復号化する復号化ユニット320と、
を含む、秘密鍵復号化デバイス。
実施形態4
二変数多項式f( , )の上記公開セットは、対称二変数多項式しか含まないか、及び/又は、
二変数多項式(f( , ))の上記公開セットは、少なくとも2つの異なる二変数多項式を含むか、及び/又は、
上記公開セットの少なくとも1つの多項式は、上記少なくとも1つの多項式の2つの変数のうちの1つの変数において、少なくとも2の次数を有する、実施形態2に記載の公開鍵暗号化デバイス。
実施形態5
上記公開一変数多項式は、上記公開一変数多項式の係数のリストとして正準形で表され、
上記復号化一変数多項式は、上記復号化一変数多項式の係数のリストとして正準形で表される、実施形態2に記載の公開鍵暗号化デバイス。
実施形態6
公開グローバル簡約化整数Nが、上記公開セットと関連付けられ、公開個別簡約化整数qが、上記公開セットの各多項式と関連付けられ、
上記秘密乱数値及び上記暗号化乱数値rは、整数であり、上記公開セットにおける各多項式は、整数係数を有する二変数多項式f( , )であり、上記公開一変数多項式及び上記復号化一変数多項式は、整数係数を有する一変数多項式であり、
上記対称鍵kを計算することは、上記暗号化乱数値rを、上記公開一変数多項式に代入し、上記グローバル簡約化整数Nを法として簡約化することを含み、
上記復号化一変数多項式を計算することは、上記公開セットの各多項式について、上記暗号化秘密乱数値rを、上記多項式に代入f(r, ))し、上記多項式に関連付けられている上記公開個別簡約化整数qを法として簡約化することによって一変数多項式のセットを取得することと、一変数多項式の上記セットを合計し、上記グローバル簡約化整数Nを法として簡約化することとを含む、実施形態2に記載の公開鍵暗号化デバイス。
実施形態7
上記公開グローバル簡約化整数Nは、2(α+2)b−1よりも大きく、及び/又は、2(α+2)bよりも小さい奇数であり、ここで、αは、上記公開セットにおける上記多項式の2つの変数のうちの1つの変数における最高次数を表し、bは、鍵長を表し、
各公開個別簡約化整数qについて、上記公開グローバル簡約化整数Nから上記公開個別簡約化整数qを減算したものは、2の鍵長乗の倍数(q=N−β、1β )であり、かつ、2の2倍の鍵長乗未満であり、
上記対称鍵Kを計算することは更に、2の鍵長乗2を法として簡約化することを含む、実施形態6に記載の公開鍵暗号化デバイス。
実施形態8
上記復号化情報は、上記対称鍵Kから計算され、再構成された鍵K’が上記対称鍵Kに等しいかどうかを確認するための鍵確認データを含み、上記復号化情報は、上記鍵確認データを含み、
上記対称鍵Kを再構成することは、
上記秘密乱数値sを、上記復号化一変数多項式に代入し、上記公開グローバル簡約化整数Nを法として簡約化したことの結果から、第1の再構成された鍵K’を導出し、
上記鍵確認データから、上記第1の再構成された鍵K’が上記対称鍵Kに等しいかどうかを決定し、等しくない場合に、上記第1の再構成された鍵K’から、更なる再構成された鍵を導出することを含む、実施形態3に記載の秘密鍵復号化デバイス。
実施形態9
上記対称鍵Kを再構成することは、上記秘密乱数値sを、上記復号化一変数多項式に代入し、上記公開グローバル簡約化整数Nを法として簡約化することを含み、更なる再構成された鍵を導出することは、上記公開グローバル簡約化整数N又は複数の上記公開グローバル簡約化整数Nを、上記第1の再構成された鍵K’に追加し、2の鍵長乗2を法として簡約化することを含む、実施形態8に記載の秘密鍵復号化デバイス。
実施形態10
公開グローバル簡約化多項式N(t)が、上記公開セットと関連付けられ、公開個別簡約化多項式Q(t)が、上記公開セットの各多項式と関連付けられ、
上記秘密乱数値s(t)及び上記暗号化乱数値r(t)は、多項式であり、上記公開セットにおける各特定の多項式F( , )は、上記特定の多項式F( , )と関連付けられる上記公開個別簡約化多項式Q(t)を法とする上記多項式環から取られる係数Fi,j,k(t)を有する二変数多項式であり、
上記公開一変数多項式及び上記復号化一変数多項式は、多項式係数を有し、
上記対称鍵Kを計算することは、上記暗号化乱数値r(t)を、上記公開一変数多項式に代入し、上記グローバル簡約化多項式N(t)を法として簡約化することを含み、
上記復号化一変数多項式を計算することは、
上記公開セットの各多項式について、上記秘密乱数値r(t)を、上記多項式F( ,r)に代入し、上記多項式に関連付けられている上記公開個別簡約化多項式Q(t)を法として簡約化することによって一変数多項式のセットを取得し、一変数多項式の上記セットを合計することを含む、実施形態2に記載の公開鍵暗号化デバイス。
実施形態11
公開鍵暗号化方法における使用のための公開鍵と、秘密鍵復号化方法における使用のための対応する秘密鍵とを生成する鍵生成方法であって、
秘密乱数値sを電子形式で取得するステップと、
上記秘密乱数値を含む上記秘密鍵を生成するステップと、
二変数多項式f( , )の公開セットを電子形式で取得するステップと、
上記秘密乱数値s上記公開セットの上記二変数多項式に代入することf(s, )によって取得される一変数多項式を合計することによって、公開一変数多項式を計算するステップと、
上記公開一変数多項式及び上記公開セットを含む上記公開鍵を生成するステップと、
を含み、
異なる可換環が、二変数多項式の上記公開セットの各多項式と関連付けられ、
上記秘密乱数値sを上記公開セットの特定の多項式に代入することf(s, )によって取得される上記一変数多項式は、上記特定の一変数多項式と関連付けられる上記可換環において正準形に簡約化される、方法。
実施形態12
公開鍵を使用して電子メッセージを暗号化する公開鍵暗号化方法であって、上記公開鍵は、公開一変数多項式と、二変数多項式f( , )の公開セットとを含み、異なる可換環が、二変数多項式の上記公開セットの各多項式と関連付けられ、上記方法は、
暗号化乱数値rを電子形式で取得するステップと、
上記暗号化乱数値rを上記公開一変数多項式に代入することによって、対称鍵Kを計算するステップと、
上記暗号化乱数値rを、上記公開セットの上記多項式に代入することf(r, )によって取得される一変数多項式を合計することによって、復号化一変数多項式を計算するステップと、
上記復号化一変数多項式を含む復号化情報を生成するステップと、
上記対称鍵で、上記電子メッセージを暗号化するステップと、
暗号化された上記電子メッセージを上記復号化情報と関連付けるステップと、
を含み、
上記暗号化乱数値rを、上記公開セットの特定の多項式に代入することf(r, )によって取得される上記一変数多項式は、上記特定の一変数多項式と関連付けられる上記可換環において正準形に簡約化される、方法。
実施形態13
実施形態12の方法によって取得可能である復号化情報と、秘密鍵とを使用して、暗号化されたメッセージを復号化する秘密鍵復号化方法であって、
上記復号化情報は、復号化一変数多項式を含み、上記秘密鍵は、秘密乱数値sを含み、上記方法は、
上記秘密乱数値sを、上記復号化一変数多項式に代入することによって、対称鍵Kを再構成するステップと、
上記再構成された対称鍵Kで、上記暗号化されたメッセージを復号化するステップと、
を含む、方法。
実施形態14
コンピュータ上で実行された場合に、実施形態11乃至13の何れか一項の方法に記載のすべてのステップを行うコンピュータプログラムコード手段を含むコンピュータプログラム。
実施形態15
コンピュータ可読媒体上に具現化される実施形態14に記載のコンピュータプログラム。
図1乃至5における参照符号のリスト
100 鍵生成デバイス
110 秘密鍵生成器
112 秘密乱数値
114 秘密鍵
120 公開鍵生成器
122 二変数多項式の公開セット
124 公開一変数多項式
126 公開鍵
200 公開鍵暗号化デバイス
210 対称鍵取得器
212 暗号化乱数値
214 対称鍵
220 復号化情報生成器
222 復号化一変数多項式
230 暗号化ユニット
300 秘密鍵復号化デバイス
301 秘密鍵復号化デバイス
310 対称鍵取得器
312 再構成された対称鍵
320 復号化ユニット
400 暗号化システム
410 電子メッセージ
420 メッセージブロック
422 暗号化されたメッセージ
424 復号化情報
430 暗号化システム
500 集積回路
510 バス
520 プロセッサ
530 メモリ
540 I/Oユニット
550 多項式操作デバイス
562 秘密乱数整数
564 公開グローバル簡約化整数
566 簡約化結果
568 合計結果
582〜586 整数係数を有する対称二変数多項式
592〜596 公開簡約化整数
600 暗号化システム
610 受信ユニット
620 認証局
630 公開鍵データベース
640 送信ユニット
650 暗号化されたデータ

Claims (14)

  1. 公開鍵暗号化デバイスにおける使用のための公開鍵と、秘密鍵復号化デバイスにおける使用のための対応する秘密鍵とを生成する鍵生成デバイスであって、
    秘密乱数値を電子形式で取得し、
    前記秘密乱数値を含む前記秘密鍵を生成する、
    秘密鍵生成器と、
    二変数多項式の公開セットを電子形式で取得し、
    前記秘密乱数値を前記公開セットの前記二変数多項式に代入することによって取得される一変数多項式を合計することによって、公開一変数多項式を計算し、
    前記公開一変数多項式及び前記公開セットを含む前記公開鍵を生成する、
    公開鍵生成器と、
    を含み、
    異なる可換環が、二変数多項式の前記公開セットの各多項式に関連付けられ、
    前記秘密乱数値を前記公開セットの特定の多項式に代入することによって取得される前記一変数多項式は、前記特定の一変数多項式と関連付けられる前記可換環において正準形に簡約化される、鍵生成デバイス。
  2. 公開鍵を使用して電子メッセージを暗号化する公開鍵暗号化デバイスであって、前記公開鍵は、公開一変数多項式と、二変数多項式の公開セットとを含み、異なる可換環が、二変数多項式の前記公開セットの各多項式に関連付けられ、前記公開鍵暗号化デバイスは、
    暗号化乱数値を電子形式で取得し、
    前記暗号化乱数値を前記公開一変数多項式に代入することによって、対称鍵を計算する、
    対称鍵取得器と、
    前記暗号化乱数値を、前記公開セットの前記二変数多項式に代入することによって取得される一変数多項式を合計することによって、復号化一変数多項式を計算し、
    前記復号化一変数多項式を含む復号化情報を生成する、
    復号化情報生成器と、
    前記対称鍵で、前記電子メッセージを暗号化し、
    暗号化された前記電子メッセージを前記復号化情報と関連付ける、
    暗号化ユニットと、
    を含み、
    前記暗号化乱数値を、前記公開セットの特定の多項式に代入することによって取得される前記一変数多項式は、前記特定の一変数多項式と関連付けられる前記可換環において正準形に簡約化される、公開鍵暗号化デバイス。
  3. 二変数多項式の前記公開セットは、対称二変数多項式しか含まないか、及び/又は、
    二変数多項式の前記公開セットは、少なくとも2つの異なる二変数多項式を含むか、及び/又は、
    前記公開セットの少なくとも1つの多項式は、前記少なくとも1つの多項式の2つの変数のうちの1つの変数において、少なくとも2の次数を有する、請求項2に記載の公開鍵暗号化デバイス。
  4. 前記公開一変数多項式は、前記公開一変数多項式の係数のリストとして正準形で表され、
    前記復号化一変数多項式は、前記復号化一変数多項式の係数のリストとして正準形で表される、請求項2に記載の公開鍵暗号化デバイス。
  5. 公開グローバル簡約化整数が、前記公開セットと関連付けられ、公開個別簡約化整数が、前記公開セットの各多項式と関連付けられ、
    前記暗号化乱数値は、整数であり、前記公開セットにおける各多項式は、整数係数を有する二変数多項式であり、前記公開一変数多項式及び前記復号化一変数多項式は、整数係数を有する一変数多項式であり、
    前記対称鍵を計算することは、前記暗号化乱数値を、前記公開一変数多項式に代入し、前記公開グローバル簡約化整数を法として簡約化することを含み、
    前記復号化一変数多項式を計算することは、前記公開セットの各多項式について、前記暗号化乱数値を、前記多項式に代入し、前記多項式に関連付けられている前記公開個別簡約化整数を法として簡約化することによって一変数多項式のセットを取得することと、一変数多項式の前記セットを合計し、前記公開グローバル簡約化整数を法として簡約化することとを含む、請求項2に記載の公開鍵暗号化デバイス。
  6. 前記公開グローバル簡約化整数(N)は、2(α+2)b−1よりも大きく、及び/又は、2(α+2)bよりも小さい奇数であり、ここで、αは、前記公開セットにおける前記多項式の2つの変数のうちの1つの変数における最高次数を表し、bは、鍵長を表し、
    各公開個別簡約化整数(q)について、前記公開グローバル簡約化整数(N)から前記公開個別簡約化整数(q)を減算したものは、2の鍵長乗の倍数(q=N−β、1<β<2)であり、かつ、2の2倍の鍵長乗未満であり、
    前記対称鍵を計算することは更に、2の鍵長乗(2)を法として簡約化することを含む、請求項5に記載の公開鍵暗号化デバイス。
  7. 号化情報と、秘密鍵とを使用して、暗号化されたメッセージを復号化する秘密鍵復号化デバイスであって、
    前記復号化情報は、復号化一変数多項式を含み、前記秘密鍵は、秘密乱数値を含み、
    前記秘密鍵復号化デバイスは、
    前記秘密乱数値を、前記復号化一変数多項式に代入することによって、対称鍵を再構成する対称鍵取得器と、
    前記再構成された対称鍵で、前記暗号化されたメッセージを復号化する復号化ユニットと、を含み、
    前記復号化情報は、前記対称鍵から計算され、前記再構成された対称鍵が前記対称鍵に等しいかどうかを確認するための鍵確認データを含み、
    前記対称鍵を再構成することは、
    前記秘密乱数値を、前記復号化一変数多項式に代入し、公開グローバル簡約化整数を法として簡約化したことの結果から、第1の再構成された対称鍵を導出し、
    前記鍵確認データから、前記第1の再構成された対称鍵が前記対称鍵に等しいかどうかを決定し、等しくない場合に、前記第1の再構成された対称鍵から、更なる再構成された対称鍵を導出することを含む、秘密鍵復号化デバイス。
  8. 前記対称鍵を再構成することは、前記秘密乱数値を、前記復号化一変数多項式に代入し、前記公開グローバル簡約化整数を法として簡約化することを含み、前記更なる再構成された対称鍵を導出することは、前記公開グローバル簡約化整数又は複数の前記公開グローバル簡約化整数を、前記第1の再構成された対称鍵に追加し、2の鍵長乗を法として簡約化することを含む、請求項7に記載の秘密鍵復号化デバイス。
  9. 公開グローバル簡約化多項式が、前記公開セットと関連付けられ、公開個別簡約化多項式が、前記公開セットの各多項式と関連付けられ、
    前記暗号化乱数値は、多項式であり、前記公開セットにおける各特定の多項式は、前記特定の多項式と関連付けられる前記公開個別簡約化多項式を法とする多項式環から取られる係数を有する二変数多項式であり、
    前記公開一変数多項式及び前記復号化一変数多項式は、多項式係数を有し、
    前記対称鍵を計算することは、前記暗号化乱数値を、前記公開一変数多項式に代入し、前記公開グローバル簡約化多項式を法として簡約化することを含み、
    前記復号化一変数多項式を計算することは、
    前記公開セットの各多項式について、前記暗号化乱数値を、前記多項式に代入し、前記多項式に関連付けられている前記公開個別簡約化多項式を法として簡約化することによって一変数多項式のセットを取得し、一変数多項式の前記セットを合計することを含む、請求項2に記載の公開鍵暗号化デバイス。
  10. 公開鍵暗号化方法における使用のための公開鍵と、秘密鍵復号化方法における使用のための対応する秘密鍵とを生成する鍵生成デバイスとして機能するようにコンピュータを作動させる方法であって、
    秘密乱数値を電子形式で取得し、
    前記秘密乱数値を含む前記秘密鍵を生成する、
    秘密鍵生成手段、及び、
    二変数多項式の公開セットを電子形式で取得し、
    前記秘密乱数値を前記公開セットの前記二変数多項式に代入することによって取得される一変数多項式を合計することによって、公開一変数多項式を計算し、
    前記公開一変数多項式及び前記公開セットを含む前記公開鍵を生成する、
    公開鍵生成手段、
    としてコンピュータを機能させ、
    異なる可換環が、二変数多項式の前記公開セットの各多項式と関連付けられ、
    前記秘密乱数値を前記公開セットの特定の多項式に代入することによって取得される前記一変数多項式は、前記特定の一変数多項式と関連付けられる前記可換環において正準形に簡約化される、方法。
  11. 公開鍵を使用して電子メッセージを暗号化する公開鍵暗号化デバイスとして機能するようにコンピュータを作動させる方法であって、前記公開鍵は、公開一変数多項式と、二変数多項式の公開セットとを含み、異なる可換環が、二変数多項式の前記公開セットの各多項式と関連付けられ、前記方法は、
    暗号化乱数値を電子形式で取得し、
    前記暗号化乱数値を前記公開一変数多項式に代入することによって、対称鍵を計算する、
    対称鍵取得手段、
    前記暗号化乱数値を、前記公開セットの前記多項式に代入することによって取得される一変数多項式を合計することによって、復号化一変数多項式を計算し、
    前記復号化一変数多項式を含む復号化情報を生成する、
    復号化情報生成手段、及び、
    前記対称鍵で、前記電子メッセージを暗号化し、
    暗号化された前記電子メッセージを前記復号化情報と関連付ける、
    暗号化手段、
    としてコンピュータを機能させ、
    前記暗号化乱数値を、前記公開セットの特定の多項式に代入することによって取得される前記一変数多項式は、前記特定の一変数多項式と関連付けられる前記可換環において正準形に簡約化される、方法。
  12. 公開鍵暗号化方法における使用のための公開鍵と、秘密鍵復号化方法における使用のための対応する秘密鍵とを生成する鍵生成デバイスとしてコンピュータを機能させるためのコンピュータプログラムであって、
    秘密乱数値を電子形式で取得し、
    前記秘密乱数値を含む前記秘密鍵を生成する、
    秘密鍵生成手段、及び、
    二変数多項式の公開セットを電子形式で取得し、
    前記秘密乱数値を前記公開セットの前記二変数多項式に代入することによって取得される一変数多項式を合計することによって、公開一変数多項式を計算し、
    前記公開一変数多項式及び前記公開セットを含む前記公開鍵を生成する、
    公開鍵生成手段、
    としてコンピュータを機能させ、
    異なる可換環が、二変数多項式の前記公開セットの各多項式と関連付けられ、
    前記秘密乱数値を前記公開セットの特定の多項式に代入することによって取得される前記一変数多項式は、前記特定の一変数多項式と関連付けられる前記可換環において正準形に簡約化される、コンピュータプログラム。
  13. 公開鍵を使用して電子メッセージを暗号化する公開鍵暗号化デバイスとしてコンピュータを機能させるためのコンピュータプログラムであって、前記公開鍵は、公開一変数多項式と、二変数多項式の公開セットとを含み、異なる可換環が、二変数多項式の前記公開セットの各多項式と関連付けられ、前記コンピュータプログラムは、
    暗号化乱数値を電子形式で取得し、
    前記暗号化乱数値を前記公開一変数多項式に代入することによって、対称鍵を計算する、
    対称鍵取得手段、
    前記暗号化乱数値を、前記公開セットの前記多項式に代入することによって取得される一変数多項式を合計することによって、復号化一変数多項式を計算し、
    前記復号化一変数多項式を含む復号化情報を生成する、
    復号化情報生成手段、及び、
    前記対称鍵で、前記電子メッセージを暗号化し、
    暗号化された前記電子メッセージを前記復号化情報と関連付ける、
    暗号化手段、
    としてコンピュータを機能させ、
    前記暗号化乱数値を、前記公開セットの特定の多項式に代入することによって取得される前記一変数多項式は、前記特定の一変数多項式と関連付けられる前記可換環において正準形に簡約化される、コンピュータプログラム。
  14. コンピュータ可読媒体上に具現化される、請求項12又は13に記載のコンピュータプログラム。
JP2017516105A 2014-09-24 2015-09-22 公開鍵暗号化システム Expired - Fee Related JP6328333B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
NL2013520 2014-09-24
NL2013520A NL2013520B1 (en) 2014-09-24 2014-09-24 Public-key encryption system.
PCT/EP2015/071779 WO2016046227A1 (en) 2014-09-24 2015-09-22 Public-key encryption system

Publications (2)

Publication Number Publication Date
JP2017532598A JP2017532598A (ja) 2017-11-02
JP6328333B2 true JP6328333B2 (ja) 2018-05-23

Family

ID=51869008

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017516105A Expired - Fee Related JP6328333B2 (ja) 2014-09-24 2015-09-22 公開鍵暗号化システム

Country Status (6)

Country Link
US (1) US10374797B2 (ja)
EP (1) EP3198784B1 (ja)
JP (1) JP6328333B2 (ja)
CN (1) CN107078906A (ja)
NL (1) NL2013520B1 (ja)
WO (1) WO2016046227A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL2013944B1 (en) * 2014-12-09 2016-10-11 Koninklijke Philips Nv Public-key encryption system.
US10205598B2 (en) * 2015-05-03 2019-02-12 Ronald Francis Sulpizio, JR. Temporal key generation and PKI gateway
US10484186B2 (en) * 2016-09-30 2019-11-19 Intel Corporation Cascading multivariate quadratic identification schemes for chain of trust
US20180260868A1 (en) * 2017-03-07 2018-09-13 Vaughn Peterson Method of Product Transportation Device Delivery
US10333710B2 (en) * 2017-09-12 2019-06-25 Qed-It Systems Ltd. Method and system for determining desired size of private randomness using Tsallis entropy
US11431494B2 (en) * 2018-03-15 2022-08-30 Atakama LLC Passwordless security system for data-at-rest
US20210287573A1 (en) * 2018-05-25 2021-09-16 Nippon Telegraph And Telephone Corporation Secret batch approximation system, secure computation device, secret batch approximation method, and program
EP3624391A1 (en) * 2018-09-12 2020-03-18 Koninklijke Philips N.V. Public/private key system with decreased encrypted message size
DE102019101195A1 (de) * 2019-01-17 2020-07-23 Bundesdruckerei Gmbh Verfahren zum sicheren Übermitteln einer Datei
US10839060B1 (en) * 2019-08-27 2020-11-17 Capital One Services, Llc Techniques for multi-voice speech recognition commands
JP7273742B2 (ja) * 2020-02-07 2023-05-15 株式会社東芝 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム
JP7527866B2 (ja) * 2020-07-01 2024-08-05 キヤノン株式会社 プログラム、情報処理装置及び制御方法
JP7443217B2 (ja) * 2020-11-12 2024-03-05 株式会社東芝 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム
CN115189881B (zh) * 2022-09-07 2022-11-29 广东名阳信息科技有限公司 一种基于边缘计算的物联网数据接入及处理系统及方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0637749A (ja) 1992-07-16 1994-02-10 Nec Corp 暗号装置
JP3917507B2 (ja) * 2002-01-28 2007-05-23 株式会社東芝 コンテンツ提供側システム、ユーザ側システム、追跡システム、コンテンツ提供方法、暗号化コンテンツ復号方法、不正ユーザ特定方法、暗号化装置、復号装置及びプログラム
JP4630826B2 (ja) * 2006-01-27 2011-02-09 株式会社東芝 復号鍵生成方法、コンテンツ提供側システム、ユーザ側システム、追跡システム、コンテンツ提供方法、暗号化コンテンツ復号方法、プログラム、暗号化装置及び復号装置
US8098815B2 (en) * 2006-10-11 2012-01-17 Frank Rubin Device, system and method for cryptographic key exchange
JP2008203548A (ja) * 2007-02-20 2008-09-04 Oki Electric Ind Co Ltd 二次双曲線群を使用する鍵生成方法、復号方法、署名検証方法、鍵ストリーム生成方法および装置。
US8705744B2 (en) * 2007-04-05 2014-04-22 Koninklijke Philips N.V. Wireless sensor network key distribution
US8401179B2 (en) * 2008-01-18 2013-03-19 Mitsubishi Electric Corporation Encryption parameter setting apparatus, key generation apparatus, cryptographic system, program, encryption parameter setting method, and key generation method
US8837736B2 (en) * 2008-04-14 2014-09-16 Koninklijke Philips N.V. Method for distributing encryption means
WO2009128011A1 (en) * 2008-04-14 2009-10-22 Philips Intellectual Property & Standards Gmbh Method for distributed identification, a station in a network
JP2010011400A (ja) * 2008-06-30 2010-01-14 National Institute Of Advanced Industrial & Technology 共通鍵方式の暗号通信システム
US8707042B2 (en) * 2008-08-28 2014-04-22 Red Hat, Inc. Sharing keys between cooperating parties
KR101595994B1 (ko) 2008-09-17 2016-02-22 코닌클리케 필립스 엔.브이. 네트워크에서 통신하기 위한 방법, 통신 디바이스 및 그를 위한 시스템
CN102356597B (zh) * 2009-03-19 2015-05-27 皇家飞利浦电子股份有限公司 用于在网络中安全通信的方法、及其通信设备、网络
CN102064938B (zh) * 2010-12-30 2016-12-21 苏盛辉 一种基于多变量与不确定性的公钥加密方法
US8817974B2 (en) * 2011-05-11 2014-08-26 Nxp B.V. Finite field cryptographic arithmetic resistant to fault attacks
EP2667539A1 (en) * 2012-05-21 2013-11-27 Koninklijke Philips N.V. Key sharing methods, device and system for configuration thereof.
CN105027492B (zh) * 2013-02-28 2019-05-07 皇家飞利浦有限公司 用于确定共享密钥的设备、方法和系统

Also Published As

Publication number Publication date
EP3198784A1 (en) 2017-08-02
US20180034630A1 (en) 2018-02-01
US10374797B2 (en) 2019-08-06
WO2016046227A1 (en) 2016-03-31
EP3198784B1 (en) 2018-04-11
CN107078906A (zh) 2017-08-18
JP2017532598A (ja) 2017-11-02
NL2013520B1 (en) 2016-09-29

Similar Documents

Publication Publication Date Title
JP6328333B2 (ja) 公開鍵暗号化システム
JP6067932B2 (ja) 鍵共有デバイス及び方法
NL2013944B1 (en) Public-key encryption system.
JP6720424B1 (ja) 鍵共有デバイス及び方法
CN110383754B (zh) 基于椭圆曲线同源的密钥协商协议
US20160156470A1 (en) System for sharing a cryptographic key
CN108632031B (zh) 密钥生成装置及方法、加密装置及方法
US20160013933A1 (en) Order-preserving encryption system, device, method, and program
JP6059347B2 (ja) 復号装置、復号能力提供装置、それらの方法、およびプログラム
CN104158880A (zh) 一种用户端云数据共享解决方法
Patranabis et al. Dynamic key-aggregate cryptosystem on elliptic curves for online data sharing
Sandhia et al. Secure sharing of data in cloud using MA-CPABE with elliptic curve cryptography
WO2021062517A1 (en) Broadcasting in supersingular isogeny-based cryptosystems
Fatima et al. A Secure Framework for IoT Healthcare Data Using Hybrid Encryption
Pharkkavi et al. TIME COMPLEXITY ANALYSIS OF RSA AND ECC BASED SECURITY ALGORITHMS IN CLOUD DATA.
Sasikumar et al. Comprehensive Review and Analysis of Cryptography Techniques in Cloud Computing
Parida et al. Design and implementation of an efficient tool to verify integrity of files uploaded to cloud storage
JP2017038336A (ja) 復号方法
Ding et al. Ciphertext retrieval via attribute-based FHE in cloud computing
Sanchol et al. A lightweight mobile-cloud based access control scheme with fully outsourced CP-ABE decryption
Singh et al. Security of Data with 3DES & Watermarking Algorithm
Komazawa et al. Distributed attribute-based encryption with small ciphertext
Visalakshi et al. Secure Cloud-based Access Control Optimization (SCACO)
Mohamed et al. Cloud Computing Security Framework based on Elliptical Curve

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180319

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180417

R150 Certificate of patent or registration of utility model

Ref document number: 6328333

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees