ソリナス素数
数学において、ソリナス素数(ソリナスそすう、Solinas prime)または一般化メルセンヌ素数(いっぱんかメルセンヌそすう、Generalized Mersenne prime)とは、素数での形を持つものである。(は小さい整数係数を伴う低次の多項式とする[1][2]。)ソリナス素数は高速なモジュラー簡約(詳細は後述)に使えるため、暗号によく用いられる。
ソリナス素数はジェローム・ソリナスにちなんで名付けられた。
この素数は、以下の素数のカテゴリーの上位集合となっている。
モジュラー簡約
編集をすべての係数が (整数)のd次方程式とし、 はソナリス素数とする。この条件で、最大 ビットの数( )が与えられるとき、 を で割ったあまりと合同でかつ と同じビット数となる数を求める操作について考える。
最初に を 進数で表すと以下のようになる
次に、多項式 によって、 (整数)上に定義された線形帰還シフトレジスタを 回繰り返すことによって、 の行列である を導き出す。 という 個の整数レジスタから開始し、右に1ずつシフトして左に0を代入。各ステップで出力値に を加算する。ここで、 はi番目のステップにおけるj番目のレジスタの整数値となるので、Xの最初の行は となることに着目し、式 を以下のように定義する。
- ,
これらの式より、以下のような式が導出できる。
- .
したがって、 は と合同な ビットの整数だとわかる。
を適切に調整することによって、このモジュラー簡約のアルゴリズムは加算・減算のみとなり元の式 よりもはるかに効率的になる(除算がないため)。
参考文献
編集- ^ Solinas, Jerome A. (1999). Generalized Mersenne Numbers (PDF) (Technical report). Center for Applied Cryptographic Research, University of Waterloo. CORR-99-39。
- ^ Solinas, Jerome A. (2011). “Generalized Mersenne Prime”. Encyclopedia of Cryptography and Security. Springer US. pp. 509–510. doi:10.1007/978-1-4419-5906-5_32. ISBN 978-1-4419-5905-8
- ^ US patent 5159632, Richard E. Crandall, "Method and apparatus for public key exchange in a cryptographic system", issued 1992-10-27, assigned to NeXT Computer, Inc.