数論において、フェルマーの小定理は、 p が素数ならば、任意の整数aに対して、数a p − aはpの整数倍であると述べている。モジュラー算術の記法では、これは次のように表される。
例えば、a = 2、p = 7の場合、2 7 = 128となり、128 − 2 = 126 = 7 × 18は7の整数倍です。
aがpで割り切れない場合、つまりaがpと互いに素である場合、フェルマーの小定理は、a p − 1 − 1がpの整数倍であるという記述と同等であり、記号で表すと次のようになります。[ 1 ] [ 2 ]
例えば、a = 2、p = 7の場合、2 6 = 64となり、64 − 1 = 63 = 7 × 9は7の倍数です。
フェルマーの小定理はフェルマー素数判定法の基礎であり、初等整数論の基本的な結果の一つである。この定理は、1640年にそれを述べたピエール・ド・フェルマーにちなんで名付けられている。フェルマーの最終定理と区別するために「小定理」と呼ばれている。[ 3 ]

ピエール・ド・フェルマーは、1640年10月18日付の友人であり腹心の友であるフレニクル・ド・ベシー宛の手紙の中で、この定理を初めて述べた。彼の定式化は、次の式と同等である。[ 3 ]
pが素数で、a がpで割り切れない任意の整数である場合、a p − 1 − 1はpで割り切れます。
フェルマーの当初の主張は
最高の品質を誇示します。進行状況の進行状況、その他の説明は、最も重要な要素の 1 つ以上です。; et, après qu'on a trouvé la première puissance quiSatisfait à la question, toutes celles dont les exposants Sont multiples de l'exposant de la première Satisfont tout de même à la question.
これは、理解を容易にするために括弧内に説明と数式を追加して、次のように翻訳できます。
すべての素数 [ p ] は、任意の等比数列[ a , a 2 , a 3 , … ] のいずれかのべき乗から 1 を引いた数を必ず割り切ります[つまり、p がa t − 1を割り切るようなtが存在します]。また、このべき乗の指数 [ t ] は、与えられた素数から 1 を引いた数を割り切ります [ p − 1を割り切ります]。この条件を満たす最初のべき乗 [ t ]が見つかった後は、その指数の倍数であるすべてのべき乗も同様にこの条件を満たします [つまり、最初のtのすべての倍数は同じ性質を持ちます]。
フェルマーは、 aがpの倍数である場合を考慮せず、また彼の主張を証明せず、単に次のように述べているだけである。[ 4 ]
進行状況やプレミアの一般的な提案など。 de quoi je vous envoierois la démonstration、si je n'appréhendois d'être trop long。
(そしてこの命題は一般的にすべての数列[原文ママ]とすべての素数に当てはまります。長くなりすぎる恐れがなければ、その証明をお送りしたいところです。) [ 5 ]
オイラーは1736年にサンクトペテルブルク科学アカデミー紀要に掲載された「Theorematum Quorundam ad Numeros Primos Spectantium Demonstratio」(英語では「素数に関するいくつかの定理の証明」)という論文で最初の証明を発表したが[ 6 ] [ 7 ]、ライプニッツは1683年以前の未発表原稿でほぼ同じ証明を発表していた[ 3 ]。
「フェルマーの小定理」という用語は、おそらく1913年にクルト・ヘンゼルの『数論』で初めて印刷物で使用されたと思われる。[ 8 ]
Für jede endliche Gruppe besteht nun ein Fundamentalsatz、welcher der kleine Fermatsche Satz genannt zu werden pflegt、weil ein ganz spezieller Teil desselben zuerst von Fermat bewiesen worden ist。
(すべての有限群には、フェルマーが最初にその非常に特殊な部分を証明したことから、一般的にフェルマーの小定理と呼ばれる基本的な定理が存在する。)
英語での初期の使用例は、 AA AlbertのModern Higher Algebra (1937) の 206 ページで「いわゆる「小さな」フェルマーの定理」に言及している箇所に見られる。 [ 9 ]
一部の数学者は、 pが素数である場合に限り2 p ≡ 2 (mod p )が成り立つという関連仮説 (時として誤って中国仮説と呼ばれる) を独自に提唱した。実際、「もし」の部分は正しく、フェルマーの小定理の特殊な場合である。しかし、「もし」の部分は誤りである。例えば、2 341 ≡ 2 (mod 341)であるが、341 = 11 × 31 は2 を基数とする擬素数である。以下を参照。
オイラーの定理はフェルマーの小定理の一般化である。任意の法nとnと互いに素な任意の整数aに対して、次の式が成り立つ。
ここで、φ ( n )はオイラーのトーシェント関数(nと互いに素な1からnまでの整数の数を数える関数)を表します。フェルマーの小定理は確かに特殊なケースです。なぜなら、 nが素数の場合、φ ( n ) = n − 1となるからです。
オイラーの定理の系は次の通りである。任意の正の整数nに対して、整数a がnと互いに素である場合、 任意の整数xとyに対して。これはオイラーの定理から導かれる。なぜなら、すると、ある整数kに対してx = y + kφ ( n )となり、
nが素数の場合、これはフェルマーの小定理の系でもあります。これはモジュラー演算で広く用いられており、大きな指数を持つモジュラーべき乗をnより小さい指数に還元することを可能にします。
オイラーの定理は、公開鍵暗号、特にRSA暗号システムにおいて、nが素数でない場合に、 通常次のように使用されます。[ 10 ]y、e、nの値からx を取得するのは、 φ ( n )が分かっていれば簡単です。[ 11 ]実際、拡張ユークリッドアルゴリズムでは、 e の法φ ( n )のモジュラー逆数、つまり、次の条件を満たす 整数fを計算することができます。 したがって、
一方、n = pq が2 つの異なる素数の積である場合、φ ( n ) = ( p − 1)( q − 1)となります。この場合、nとeからf を求めることは、 φ ( n )を計算するのと同じくらい困難です(これは証明されていませんが、φ ( n )を知らずにfを計算するアルゴリズムは知られていません)。n だけがわかっている場合、φ ( n ) = ( p − 1)( q − 1)であり、逆に、因子 pとqは方程式x 2 − ( n − φ ( n ) + 1) x + n = 0の(整数) 解であるため、φ ( n ) の計算は本質的に n の因数分解と同じ困難さになります。
RSA暗号システムの基本的な考え方は次のとおりです。メッセージxがnとeの公開値を使用してy = x e (mod n )として暗号化されている場合、現在の知識では、 nの(秘密の)因子pとqを見つけない限り、復号化することはできません。
フェルマーの小定理は、カルマイケル関数やカルマイケルの定理、そして群論におけるラグランジュの定理とも関連している。
フェルマーの小定理の逆はカーマイケル数には当てはまらない。しかし、その逆のやや弱い変形としてレーマーの定理がある。
整数aが存在して、 また、 p − 1を 割り切る すべての素数qに対して、 するとpは素数である。
aとpが互いに素な数で、 a p −1 − 1がpで割り切れる場合、p は素数である必要はありません。そうでない場合、pはaを基数とする(フェルマー) 擬素数と呼ばれます。2 を基数とする最初の擬素数は、1820 年にピエール・フレデリック・サリュスによって発見されました。341 = 11 × 31 です。[ 12 ] [ 13 ]
基底aに対してフェルマー擬素数である数pを、 pと互いに素なすべての数 a に対して、カーマイケル数と呼ぶ。あるいは、等式を満たす任意の 数pは、 は素数かカーマイケル数のいずれかである。
ミラー・ラビン素数判定法は、フェルマーの小定理の次の拡張を使用する。[ 14 ]
pが奇素数で、 p − 1 = 2 s d (s > 0かつdが奇数 > 0)である場合、 pと互いに素なすべてのaに対して、a d ≡ 1 (mod p )または0 ≤ r < sかつa 2 r d ≡ −1 (mod p )となるようなr が存在する。
この結果は、p が奇素数である場合、pを法とする整数は有限体を形成し、その中で 1 はpを法とする 1 と −1の2 つの平方根を持つという事実から、フェルマーの小定理から導き出すことができる。
a ≡ 1 (mod p )の場合、 a d ≡ 1 (mod p )が自明に成り立つことに注意してください。これは、合同関係が指数法則と互換性があるためです。また、dが奇数であるため、 a ≡ −1 (mod p )の場合、 a d = a 2 0 d ≡ −1 (mod p )が自明に成り立ちます。これが、通常、 1 < a < p − 1の範囲でランダムなa を選択する理由です。
ミラー・ラビン判定法はこの性質を次のように利用します。素数判定が必要な奇数pが与えられたとき、 p − 1 = 2 s d ( s > 0、d は奇数 > 0) と書き、 1 < a < p − 1となるようなランダムなaを選びます。次に、b = a d mod pを計算します。b が 1 でも −1 でもない場合は、 −1 になるかs − 1回二乗するまで、pを法として繰り返し二乗します。b ≠ 1 で、二乗しても −1 が得られない場合、 pは合成数であり、a はpが合成数であることの証拠となります。そうでない場合、pはa を基数とする強い確率の素数です。つまり、素数である場合もそうでない場合もあります。p が合成数の場合、判定法がそれを強い確率の素数と宣言する確率は最大で 1/4 であり、その場合、pは強い擬似素数であり、aは強い嘘つきです。したがって、k 回の決定的なランダムテストの後、pが複合値である確率は最大で 4 − kであり、k を増やすことで望むだけ低くすることができます。
要約すると、このテストは、ある数が合成数であることを証明するか、素数であると主張するもので、誤りの確率は任意に低く設定できます。このテストは実装が非常に簡単で、既知のすべての決定論的テストよりも計算効率に優れています。そのため、一般的に素数性の証明を開始する前に使用されます。