ナッカッシュ・シュテルン・ナップザック暗号は、1997年にデイヴィッド・ナッカッシュとジャック・シュテルンによって開発された、非典型的な公開鍵暗号です。この暗号システムは決定論的であるため、意味的に安全ではありません。 現在まで破られていませんが、このシステムは証明可能な安全性も欠いています
システムの概要
このシステムは、ナップサック問題の一種に基づいています。具体的には、整数c、n、p、v 0、…、v nが与えられたとき、次のベクトルを求めるという問題です 

ここでの考え方は、v i が互いに素で、法pよりもはるかに小さい場合、この問題は簡単に解けるというものです。この観察によって復号が可能になります。
鍵生成
公開鍵と秘密鍵のペアを生成するには
- 大きな素数係数pを選びます
- 正の整数nを選び、iが 0 からnまでの場合、p 0 = 2 から始めて、 となるi番目の素数にp iを設定します。

- gcd( p -1, s )=1となるような秘密の整数s < p -1を選択します。
- セット。
![{\displaystyle v_{i}={\sqrt[{s}]{p_{i}}}\mod p}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
公開鍵はp、n、v 0、...、v nです。秘密鍵はsです。
暗号化
nビット長のメッセージmを暗号化するには、次のように計算します

ここで、m iはメッセージmのi番目のビットです。
復号
メッセージcを復号化するには、計算します

これは分数であるため機能します

p i がc s mod pを割り切るかどうかによって 0 または 1 になります。
安全性
トラップドア関数の安全性は、次の乗法ナップサック問題の難しさに依存しています。与えられたものを復元します。マークル・ヘルマン暗号などの加法ナップサックベースの暗号システムとは異なり、ユークリッド格子縮約のような手法はこの問題には適用されません 

最もよく知られている一般的な攻撃は、離散対数問題を解いてからを復元することであり、これは古典コンピュータでは困難であると考えられています。しかし、ショアの量子アルゴリズムはこの問題を効率的に解決します。さらに、現在(2023年)では、ナカッシュ=シュテルン・ナップサックが離散対数問題に帰着するという証明はありません。 

最もよく知られている特定の攻撃(2018年)は、メッセージのハミング重みが非常に低いと仮定して、トラップドアを知らずに関数を部分的に反転する誕生日定理を使用するものである。[ 1 ]
参考文献
- ^ Anastasiadis, M.; Chatzis, N.; Draziotis, KA (2018年10月). 「ナカチェ・シュテルン・ナップザック暗号システムに対する誕生日型攻撃」. Information Processing Letters . 138 : 39–43 . doi : 10.1016/ j.ipl.2018.06.002
参照