NTRUE暗号化

NTRUEncrypt公開鍵暗号システムは NTRU 暗号化アルゴリズムとも呼ばれRSAおよび楕円曲線暗号(ECC)に代わるNTRU格子ベースの暗号であり、格子内の最短ベクトル問題に基づいています(量子コンピュータを使用して解読できることは知られていません)。

これは、切断多項式環内の特定の多項式を、非常に小さな係数を持つ2つの多項式の商に因数分解することが困難であると想定されていることに依拠しています。この暗号システムの解読は、特定の格子における格子縮約というアルゴリズムの問​​題と強く関連していますが、同等ではありません。公開されている攻撃を阻止するには、パラメータを慎重に選択する必要があります。

暗号化と復号化はどちらも単純な多項式乗算のみを使用するため、RSA、ElGamal楕円曲線暗号といった他の非対称暗号化方式と比較して非常に高速です。しかしながら、NTRUEncryptは、実用化段階では、まだ同等の量の暗号解析が行われていません。

関連するアルゴリズムとして、NTRUSign デジタル署名アルゴリズムがあります。

具体的には、NTRU 演算は畳み込み乗算を含む切り捨て多項式環内のオブジェクトに基づいており、環内のすべての多項式は整数係数と最大N -1 の次数を持ちます。

この環において、多項式に を乗じると、多項式の係数が回転するという効果があります。したがって、を固定した に対しての形の写像は、の非零係数の数と同じ数の の係数に依存する新しい多項式を生成します

NTRU には 3 つの整数パラメータ ( Npq ) があり、Nは多項式の次数境界、pは小係数、qは大係数と呼ばれます。 N素数qは常にpより (はるかに) 大きくpqは互いに素であると仮定します平文メッセージはp を法とする多項式ですが、暗号文メッセージはqを法とする多項式です。 具体的には、暗号文は平文メッセージとランダムに選択された公開鍵の倍数で構成されますが、公開鍵自体は小係数pの倍数と見なすことができ、秘密鍵の所有者は暗号文から平文を抽出できます。

歴史

NTRUEncrypt公開鍵暗号システムは比較的新しい暗号システムです。このシステムの最初のバージョンは、単にNTRUと呼ばれ、1996年頃に3人の数学者(ジェフリー・ホフスタインジル・ピファージョセフ・H・シルバーマン)によって開発されました。1996年、これらの数学者はダニエル・リーマンと共にNTRU Cryptosystems, Inc.を設立し、この暗号システムに関する特許[1](現在は失効)を取得しました。

過去10年間、人々は暗号システムの改良に取り組んできました。暗号システムが初めて発表されて以来、システムのパフォーマンスとセキュリティの両方を向上させるためにいくつかの変更が行われました。パフォーマンスの向上の大部分は、処理の高速化に重点が置かれていました。[詳細な説明が必要] 2005年まで、NTRUEncryptの復号失敗を説明する文献が見つかりました。[引用が必要]セキュリティに関しては、NTRUEncryptの最初のバージョン以降、現在[ 具体的に ] 知られているすべての攻撃に対して安全と思われる[ 説明が必要 ]新しいパラメータが導入され計算能力適度向上ました。[説明が必要]

現在、このシステムは、格子ベース公開鍵暗号( IEEE P1363.1 )の仕様に基づき、IEEE P1363規格に完全に準拠しています。NTRUEncrypt公開鍵暗号システムは、その高速性(ベンチマーク結果についてはhttp://bench.cr.yp.toを参照)とメモリ使用量の少なさ(下記参照)[疑わしい議論の余地あり]により、モバイルデバイスやスマートカードなどのアプリケーションで利用可能です。2011年4月、NTRUEncryptは金融サービス業界での使用を目的としたX9.98規格として承認されました。[2]

公開鍵生成

アリスからボブに秘密のメッセージを送信するには、公開鍵と秘密鍵を生成する必要があります。公開鍵はアリスとボブの両方が知っており、秘密鍵はボブのみが知っています。鍵のペアを生成するには、次数が最大で係数が {-1,0,1} である 2 つの多項式fgが必要です。これらは、Rを法とする多項式の留数クラスの表現と考えることができます。この多項式は、逆元 modulo qおよび modulo p (ユークリッド互除法) が存在するという追加要件も満たす必要があり、これは 、およびが成立する必要があることを意味します。そのため、選択したfが逆元でない場合、ボブは戻って別のfを試す必要があります。

f(および)ボブの秘密鍵である。公開鍵hは、以下の量を計算することで生成される 。

:この例では、パラメータ(Npq)はN = 11、p = 3、q = 32となり、多項式fgの次数は10以下となります。システムパラメータ(Npq)は誰もが知っています。多項式はランダムに選択されるため、次のように表されるとします。

ユークリッドの互除法を用いて、それぞれpを法とするfの逆関数qを法とする逆関数を計算する。

これはアリスとボブの両方に知られている公開鍵hを作成し、積を計算する。

暗号化

アリスはボブに秘密のメッセージを送りたいと考え、メッセージを係数が の多項式mの形で表現します。現代の暗号化アプリケーションでは、メッセージ多項式は2進数または3進数表現に変換できます。メッセージ多項式を作成した後、アリスはメッセージを隠蔽するために、小さな係数({-1,0,1}の集合に限定されない)を持つ 多項式rをランダムに選択します。

ボブの公開鍵hを使って暗号化されたメッセージeが計算されます。

この暗号文にはアリスのメッセージが隠されており、ボブに安全に送信できます。

: アリスが多項式で表せるメッセージを送信したいとします。

そしてランダムに選ばれた「ブラインド値」は次のように表される。

ボブへの暗号化されたメッセージを表す暗号文eは次のようになります。

復号化

rを知っている人なら誰でも、e - rhを評価することでメッセージmを計算できます。したがって、rはアリスによって漏洩されるべきではありません。公開されている情報に加えて、ボブは自身の秘密鍵も知っています。彼がmを取得する方法は次のとおりです。まず、暗号化されたメッセージeと秘密鍵fの一部を掛け合わせます。

多項式を書き直すと、この方程式は実際には次の計算を表します。

aの係数を0からq – 1の間で選ぶ代わりに、係数は区間[- q /2, q /2]内で選ばれます。これは、アリスがメッセージmの座標を区間[- p /2, p /2]内で選ぶため、元のメッセージが正しく復元されないのを防ぐためです。これは、多項式rgf 、 m 、および素数pの係数がqに比べて小さいため、 のすべての係数がすでに区間[- q /2, q /2]内にあることを意味します。これは、法として縮小する際にすべての係数が変更されず、元のメッセージが正しく復元される可能性が あることを意味します。

次のステップは、pを法としたaを計算することです。

なぜなら

bを知っているボブは、秘密鍵のもう一方の部分を使ってb

このプロパティは に必須であったためです

:アリスからボブへの暗号化されたメッセージeは多項式fで乗算されます

ここでボブは、元のメッセージが正しく復元されないことを防ぐために、多項式aの係数に区間[0, q – 1]ではなく区間[- q /2, q /2]を使用します。

pを法とするa係数を小さくすると、

これは と等しい

最後のステップでは、その結果をボブの秘密鍵と掛け合わせて元のメッセージmを得る。

それはまさにアリスがボブに送ったオリジナルのメッセージです。

攻撃

NTRU の提案以来、NTRUEncrypt 公開鍵暗号システムに対する攻撃がいくつか導入されています。ほとんどの攻撃は、メッセージmを復元するだけでなく、秘密鍵fを見つけて完全に解読することに重点が置かれています。f に非ゼロの係数がほとんどないことがわかっている場合、イヴはfのすべての値を試すことでブルート フォース攻撃を成功させることができます。イヴがが秘密鍵かどうか知りたい場合は、単に を計算します。係数が小さければ、それは秘密鍵fである可能性があり、イヴは自分で暗号化したメッセージを復号化することでが秘密鍵かどうかをテストできます。イヴはgの値を試して、 に小さな値があるかどうかをテストすること もできます

より強力な中間者攻撃を仕掛けることが可能です。この攻撃は探索時間を平方根分短縮できます。この攻撃は、 という性質に基づいています

イヴは、条件を満たす条件条件を満たす条件 を見つけたい。

f にd個の 1 とN - d個の 0がある場合、Eve は、長さが両方ともd /2である(つまり、fの最小係数最大係数をカバーする)可能性のあるすべてのと を作成します。次に、すべての を計算し、最初の k 個の座標に基づいてそれらをビンに並べます。その後、すべての を計算し、最初の k 個の座標だけでなく、最初の k 個の座標に 1 を加えた場合の結果に基づいてビンに並べます。次に、 と の両方を含むビンをチェックし特性が成り立つかどうかを確認します。

格子縮約攻撃は、NTRUEncryptを解読する最もよく知られた、そして最も実用的な方法の一つです。ある意味では、RSAにおける係数の因数分解に似ています。格子縮約攻撃に最もよく使われるアルゴリズムは、Lenstra-Lenstra-Lovászアルゴリズムです。公開鍵hにはfgの両方が含まれているため、 hからそれらを取得しようと試みることができます。しかし、NTRUEncryptのパラメータが十分に安全に選択されている場合、秘密鍵を見つけるのは非常に困難です。格子縮約攻撃は、格子の次元が大きくなり、最短ベクトルが長くなるにつれて困難になります。

選択暗号文攻撃もまた、秘密鍵fを復元することで暗号文を完全に破る手法です。この攻撃では、イヴは暗号文から自身のメッセージを取得し、それによって秘密鍵を入手しようとします。この攻撃では、イヴはボブと一切やり取りしません。

仕組み

まずイヴは、 かつとなる暗号文を作成します。イヴが e を解読する手順を書き留めると(f がわからないため、実際に値を計算することはありません)、 が見つかります

その ような

するとKは になります

pを法とするaの係数を減らすと、実際には の係数も減ります。 を掛け合わせると、イヴは次の式を得ます。

cはpの倍数として選択されたためmは次のように書ける。

つまり、

ここで、 fg が同じ因数で等しい係数をほとんど持たない場合、 K には非ゼロの係数がほとんどなく、したがって K は小さくなります。攻撃者はKの異なる値を試すことでfを復元できます

NTRUEncrypt に従ってメッセージを暗号化および復号化することにより、攻撃者は関数fが正しい秘密鍵であるかどうかを確認できます。

セキュリティとパフォーマンスの向上

最新の推奨パラメータ(下記参照)を使用することで、NTRUEncrypt公開鍵暗号システムはほとんどの攻撃に対して安全です。しかしながら、パフォーマンスとセキュリティの間で依然として葛藤が続いています。速度を低下させずにセキュリティを向上させることは困難であり、その逆もまた同様です。

アルゴリズムの有効性を損なうことなくプロセスを高速化する 1 つの方法は、秘密鍵fに何らかの変更を加えることです。まず、となるようにf を構築します。ここでFは小さな多項式 (つまり、係数 {-1,0, 1}) です。このようにf を構築することにより、 fはpを法として逆数になります 。実際、 となるため、ボブは実際に逆数を計算する必要がなく、復号化の 2 番目の手順を実行する必要がありません。したがって、このようにf を構築すると時間が大幅に節約されますが、見つけやすくなるだけでfを復元するのは依然として困難であるため、NTRUEncrypt のセキュリティには影響しません。この場合、pによる乗算のため、 fの係数は -1、0、または 1 以外になります。ただし、ボブはpを乗じて公開鍵h を生成し、後で暗号文をp を法として簡約するため、暗号化方法には影響しません。

第二に、fは複数の多項式の積として表すことができ、その多項式には多くの零係数が含まれます。これにより、計算回数が少なくなります。

2020年のNTRU NIST提出[3]によれば、以下のパラメータは安全であると考えられている。

表1: パラメータ

qp
128ビットのセキュリティマージン(NTRU-HPS)50920483
192 ビットのセキュリティ マージン (NTRU-HPS)67720483
256ビットのセキュリティマージン(NTRU-HPS)82140963
256ビットのセキュリティマージン(NTRU-HRSS)70181923

参考文献

  1. ^ 「米国特許6081597 – 公開鍵暗号システムの方法および装置」 – Google Patents経由。
  2. ^ 「Security InnovationのNTRUEncryptがデータ保護のX9標準に採用」(プレスリリース)。2011年4月11日。
  3. ^ "NIST-PQ-Submission-NTRU-20201016.tar.gz".
  • Jaulmes, E.、Joux, A. NTRUに対する選択暗号文攻撃。コンピュータサイエンス講義ノート、第1880巻。暗号技術の進歩に関する第20回国際暗号学会議議事録。pp. 20–35、2000年。
  • Jeffrey Hoffstein、Jill Pipher、Joseph H. Silverman. NTRU: リングベースの公開鍵暗号システム。Algorithmic Number Theory (ANTS III)、オレゴン州ポートランド、1998年6月、JP Buhler (編)、Lecture Notes in Computer Science 1423、Springer-Verlag、ベルリン、1998年、267-288ページ。
  • Howgrave-Graham, N.、Silverman, JH、および Whyte, W.、「NTRU 秘密キーに対する Meet-In-The-Middle 攻撃」
  • J. Hoffstein, J. Silverman. NTRUの最適化. 公開鍵暗号と計算数論(ワルシャワ、2000年9月11日~15日), DeGruyter, 近日掲載予定.
  • AC Atici、L. Batina、J. Fan、I. Verbauwhede。パーベイシブセキュリティのためのNTRUの低コスト実装。
  • NTRU技術ウェブサイト 2018年7月2日アーカイブWayback Machine
  • IEEE P1363ホームページ
  • セキュリティイノベーション(NTRU Cryptosystems, Inc. を買収)
  • NTRUEncrypt のオープンソース BSD ライセンス実装
  • NTRUEncrypt のオープンソース GPL v2 ライセンス
  • NTRUEncryptベースの鍵交換を使用したオープンソースIPsecソリューションstrongSwan
  • - NTRUを利用した暗号スイートを提供する組み込みSSL/TLSライブラリ(wolfSSL)
Retrieved from "https://en.wikipedia.org/w/index.php?title=NTRUEncrypt&oldid=1323971191"