出典: フリー百科事典『ウィキペディア(Wikipedia)』
数学 において、ソリナス素数 (ソリナスそすう、Solinas prime )または一般化メルセンヌ素数 (いっぱんかメルセンヌそすう、Generalized Mersenne prime )とは、素数 で
f
(
2
m
)
{\displaystyle f(2^{m})}
の形を持つものである。(
f
(
x
)
{\displaystyle f(x)}
は小さい整数係数を伴う低次の多項式とする[ 1] [ 2] 。)ソリナス素数は高速なモジュラー簡約(詳細は後述)に使えるため、暗号によく用いられる。
ソリナス素数はジェローム・ソリナス にちなんで名付けられた。
この素数は、以下の素数のカテゴリーの上位集合となっている。
メルセンヌ素数 :
2
k
−
1
{\displaystyle 2^{k}-1}
クランドール素数:
2
k
−
c
{\displaystyle 2^{k}-c}
(
c
{\displaystyle c}
はある程度小さな奇数 とする)[ 3]
f
(
t
)
=
t
d
−
c
d
−
1
t
d
−
1
−
.
.
.
−
c
0
{\displaystyle f(t)=t^{d}-c_{d-1}t^{d-1}-...-c_{0}}
をすべての係数が
Z
{\displaystyle \mathbb {Z} }
(整数 )のd次方程式 とし、
p
=
f
(
2
m
)
{\displaystyle p=f(2^{m})}
はソナリス素数とする。この条件で、最大
2
m
d
{\displaystyle 2md}
ビット の数(
n
<
p
2
{\displaystyle n<p^{2}}
)が与えられるとき、
n
{\displaystyle n}
を
p
{\displaystyle p}
で割ったあまりと合同 でかつ
p
{\displaystyle p}
と同じビット数となる数を求める操作について考える。
最初に
n
{\displaystyle n}
を
2
m
{\displaystyle 2^{m}}
進数で表すと以下のようになる
n
=
∑
j
=
0
2
d
−
1
A
j
2
m
j
{\displaystyle n=\sum _{j=0}^{2d-1}A_{j}2^{mj}}
次に、多項式
f
(
t
)
{\displaystyle f(t)}
によって、
Z
{\displaystyle \mathbb {Z} }
(整数)上に定義された線形帰還シフトレジスタ を
d
{\displaystyle d}
回繰り返すことによって、
d
×
d
{\displaystyle d\times d}
の行列 である
X
=
(
X
i
,
j
)
{\displaystyle X=(X_{i,j})}
を導き出す。
[
0
|
0
|
.
.
.
|
0
|
1
]
{\displaystyle [0|0|...|0|1]}
という
d
{\displaystyle d}
個の整数レジスタから開始し、右に1ずつシフトして左に0を代入。各ステップで出力値に
[
c
0
,
.
.
.
,
c
d
−
1
]
{\displaystyle [c_{0},...,c_{d-1}]}
を加算する。ここで、
X
i
,
j
{\displaystyle X_{i,j}}
はi番目のステップにおけるj番目のレジスタの整数値となるので、Xの最初の行は
(
X
0
,
j
)
=
[
c
0
,
.
.
.
,
c
d
−
1
]
{\displaystyle (X_{0,j})=[c_{0},...,c_{d-1}]}
となることに着目し、式
B
=
(
B
i
)
{\displaystyle B=(B_{i})}
を以下のように定義する。
(
B
0
.
.
.
B
d
−
1
)
=
(
A
0
.
.
.
A
d
−
1
)
+
(
A
d
.
.
.
A
2
d
−
1
)
X
{\displaystyle (B_{0}...B_{d-1})=(A_{0}...A_{d-1})+(A_{d}...A_{2d-1})X}
,
これらの式より、以下のような式が導出できる。
∑
j
=
0
d
−
1
B
j
2
m
j
≡
∑
j
=
0
2
d
−
1
A
j
2
m
j
mod
p
{\displaystyle \sum _{j=0}^{d-1}B_{j}2^{mj}\equiv \sum _{j=0}^{2d-1}A_{j}2^{mj}\mod p}
.
したがって、
B
{\displaystyle B}
は
n
{\displaystyle n}
と合同な
m
d
{\displaystyle md}
ビットの整数だとわかる。
f
{\displaystyle f}
を適切に調整することによって、このモジュラー簡約のアルゴリズムは加算・減算のみとなり元の式
n
−
p
⋅
(
n
/
p
)
{\displaystyle n-p\cdot (n/p)}
よりもはるかに効率的になる(除算がないため)。
^ 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.
生成式 漸化式 各種の性質 基数依存 組
互いに素
双子 (p , p + 2 )
Bi-twin chain (n − 1, n + 1, 2n − 1, 2n + 1, … )
三つ子 (p , p + 2 or p + 4, p + 6 )
四つ子 (p , p + 2, p + 6, p + 8 )
k −Tuple
いとこ (p , p + 4 )
セクシー (p , p + 6 )
陳
ソフィー・ジェルマン (p , 2p + 1 )
カニンガム鎖 (p , 2p ± 1, … )
安全 (p , (p − 1)/2 )
算術数列 (英語版 ) (p + an ; n = 0, 1, … )
平衡 (p − n , p , p + n )
桁数 複素数 合成数 関連する話題 最初の50個
素数の一覧