数学において、ソリナス素数(ソリナスそすう、Solinas prime)または一般化メルセンヌ素数(いっぱんかメルセンヌそすう、Generalized Mersenne prime)とは、素数の形を持つものである。(は小さい整数係数を伴う低次の多項式とする[1][2]。)ソリナス素数は高速なモジュラー簡約(詳細は後述)に使えるため、暗号によく用いられる。

ソリナス素数はジェローム・ソリナスにちなんで名付けられた。

この素数は、以下の素数のカテゴリーの上位集合となっている。

  • メルセンヌ素数:
  • クランドール素数: (はある程度小さな奇数とする)[3]

モジュラー簡約

編集

 をすべての係数が (整数)のd次方程式とし、 はソナリス素数とする。この条件で、最大 ビットの数( )が与えられるとき、  で割ったあまりと合同でかつ と同じビット数となる数を求める操作について考える。

最初に  進数で表すと以下のようになる

 

次に、多項式 によって、 (整数)上に定義された線形帰還シフトレジスタ 回繰り返すことによって、 行列である を導き出す。 という 個の整数レジスタから開始し、右に1ずつシフトして左に0を代入。各ステップで出力値に を加算する。ここで、 はi番目のステップにおけるj番目のレジスタの整数値となるので、Xの最初の行は となることに着目し、式 を以下のように定義する。

 ,

これらの式より、以下のような式が導出できる。

 .

したがって、  と合同な ビットの整数だとわかる。

 を適切に調整することによって、このモジュラー簡約のアルゴリズムは加算・減算のみとなり元の式 よりもはるかに効率的になる(除算がないため)。

参考文献

編集
  1. ^ Solinas, Jerome A. (1999). Generalized Mersenne Numbers (PDF) (Technical report). Center for Applied Cryptographic Research, University of Waterloo. CORR-99-39。
  2. ^ 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. https://archive.org/details/encyclopediacryp00tilb_374 
  3. ^ 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.