(1) fを単射の暗号化関数とする。f(m)と文字列Kが与えられたときに、Kがmに部分文字列として含まれているかどうかを効率的に判定できる方法の可能性を検討した。その結果、この判定の難しさはfの逆関数を計算する問題、及びKがmに何回出現するかを数え上げる問題に、それぞれ多項式時間Turing帰着性の意味で等価であることを証明した。これにより、少なくとも単射の暗号化関数については、暗号文中の特定文字列を探索することは事実上困難であることになり、単射の暗号化関数を用いた暗号系の安全性について、部分情報の安全性という観点から新たな知見を与えることができた。 (2) 素因数分解の困難さと離散対数問題を組み合わせた暗号系がいくつか提案されており、これらの暗号系のなかには単射でない暗号化関数を含むものがある。そこで、この暗号化関数についても(1)と同様の検討を行う準備として、まずその暗号系を破る本来の難しさを検討した。具体的には、長年未解決であったOkamoto-Tanakaの鍵共有方式を破る難しさについて、これを解決した。
|