ソリナス素数
From Wikipedia, the free encyclopedia
をすべての係数が
(整数)の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. https://archive.org/details/encyclopediacryp00tilb_374
- ↑ 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.
素数の分類 | |
|---|---|
| 生成式 |
|
| 漸化式 | |
| 各種の性質 | |
| 基数依存 | |
| 組 | |
| 桁数 | |
| 複素数 | |
| 合成数 | |
| 関連する話題 | |
| 最初の50個 | |
| 素数の一覧 | |