確率的素数(PRP)とは
確率的
素数は
数論において、特定の条件を満たす
整数を指します。これらの
整数は全ての
素数が満たす特性を有し、
合成数には通常該当しません。場合によっては
合成数の中にも確率的
素数としての条件を満たすもの(
擬素数と呼ばれる)が存在することがありますが、それを避けるために条件は慎重に選択されます。
フェルマーの合成数判定法
確率的
素数の判定方法の一つに、
フェルマーの小定理を基にしたフェルマーの
合成数判定法があります。まず
整数nを与え、nの倍数ではないいくつかの
整数a(通常1 < a < n - 1の範囲内)を選びます。次に、an − 1をnで割った余りを計算します。もし結果が1でなければ、nは
合成数です。一方、結果が1ならば、nは
素数である可能性があります。この場合、nはaを底とする確率的
素数と呼ばれます。
確率的
素数は、底aに基づいて二つのタイプに分類されます。1つは「弱い確率的
素数」であり、これは確率的
素数であるが、強い確率的
素数ではないものを指します。同じ底aに対して多くの
合成数が確率的
素数として判定されるのは異常事態です。たとえば、最大数が
25 x 10^9の範囲において、
合成数の奇数は約
11,408,01
2,
59
5個存在しますが、底が
2の
擬素数はわずか
21,8
53個だけでした。
確率的素数の性質と応用
確率的
素数の性質は、効率的な
素数判定
アルゴリズムの基盤となります。これらの
アルゴリズムは多くの場合、確率的であり、特定の条件を満たす
合成数が存在することを仮定しています。任意の
合成数nについて、新たに底aを選定した場合、nがその底に対する
擬素数である確率は最大Pに制約され、ここでPは1未満の値です。この判定をk回繰り返すと、全てのaに対してnが
擬素数である確率は、Pkに依存します。この確率は指数関数的に減少し、必要なkの値は比較的少なくて済みます。
ただし、
カーマイケル数が存在するため、全ての確率的
素数に関して正確ではない場合があります。しかし、強い確率的
素数(例:ミラー・ラビン
素数判定法に基づく場合)やオイラー確率的
素数に対しては、この仮定は成り立つことが多いです。
確定的な
素数証明が必要な際でも、確率的
素数をまずは判定することが有効な初手となります。この方法により、多くの
合成数を迅速に除去することができます。
日本国内における確率的素数のバリエーション
底aを設定した場合のオイラー確率的
素数の概念も重要です。この場合、任意の
素数pに対して特定の条件を満たす
整数が確率的
素数とされます。特に底
2のオイラー・ヤコビ
擬素数に関しては、
合成数であるにも関わらず特定の性質を満たすものが存在します。例えば、
561という数は底
2のオイラー・ヤコビ
擬素数の最小値として知られています。
確率的素数の例:SPRP
強い確率的
素数の例として、
97の判定方法について解説します。まず、96をd·
2^sの形式に分解します。この過程で、dとsを見出し、次にaを選びます。最終的に、選択したaとdに基づいてモジュロ計算を行い、その結果を基に
97が確率的
素数であるかどうかを判断します。このような判定の過程によって、
97は底
2の強い確率的
素数であると確認されました。
このように、確率的
素数の概念は
数論の奥深い構造を持ち、
暗号理論などにも適用される重要なテーマとなっています。