コンテンツにスキップ

ソリナス素数

出典: フリー百科事典『ウィキペディア(Wikipedia)』

数学において、ソリナス素数(ソリナスそすう、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.