→topに戻る →代数topに戻る

モジュラ算術 Modular arithmetic

■除法の一意性
整数aと自然数bの組を決めると、
    a=qb+r, 0≦r<b
を満たす整数q, rがただ一通り定まります。
このq, rをそれぞれaをbで割った商、余り(剰余)といいます。
rの範囲を0≦r<bに決めているからただ一通り定まるのです。
この範囲を外すと、
  53÷3=17余り2のところが
      53÷3=16余り5とか
      53÷3=18余り -1とか
勝手になんでも出てきてしまいます。

■「余りが同じ」すなわち「差が割り切れる」
aをmで割った余りをr
bをmで割った余りもrとします。
このとき、a-bはmで割り切れます。
証明
 a=km+r  (kは整数)
   b=lm+r  (lは整数)
より、
 a-b=(km+r)-(lm+r)
        =(k-l)m         ※k-lは整数
故にa-bはmで割り切れる。  (証明終わり)

a-bmで割り切れる = a, bmで割った余りが同じ


■余りの感覚
xをmで割った余りをx'で表すことにすると、
1. (a+b)'は、 a'+b'をmで割った余りに等しい
   (a+b)' = (a'+b')'
2. (ab)'は、a'b'をmで割った余りに等しい
   (ab)' = (a'b')'
証明
 a=km+r1  (kは整数、r1は自然数)
   b=lm+r2   (lは整数、r2は自然数)
とすると、a'=r1, b'=r2。
1.
  左辺:(a+b)' = (km+r1+lm+r2)'
                      = [(k+l)m+r1+r2]'
                      = (r1+r2)'
                      = (a'+b')'    (証明終わり)
2.
  左辺:(ab)' = [(km+r1)(lm+r2)]'
                    = (klm2+kr2m+r1lm+r1r2)'
                    = [(klm+kr2+r1l)m+r1r2]'
                    = (r1r2)'
                    = (a'b')'         (証明終わり)
※以上は大学への数学 1対1対応の演習 数学Ⅰ(東京出版)を参考にしています。

合同式の概念と合同式

合同式(モジュラ算術)

2つの整数a, bは、a-bmの倍数となるとき、mを法として合同であるといい、a≡b (mod m)と表す。
a-bmで割り切れる = a, bmで割った余りが同じ
                                        ↓
a, bは、mを法として合同である
                ↓
a ≡ b (mod m)
この式を合同式と呼びます。(mod m)は「mを法として」あるいは「モードmで」と読みます。
要するに、a≡b (mod m)は、「xをmで割ったときの余りをx'で表すやりかた」でいうと、
  a'=b'
ということです。

aの代表する類

aと合同な整数全体を「aの代表する類」といい、a (mod m)のようなの記号で表します。
これは、mで割った余りが、aをmで割った余りと等しい整数の集合です。
また、a (mod m)={a+km|k∈Z}です。Zは整数の集合を表す記号
  →(a+kmをmで割った余りと、aをmで割った余りは同じです)
もちろん、a≡b (mod m)ならば、a (mod m) = b (mod m)で、aの代表する類とbの代表する類は等しくなります。

mを法とする類の代表系

mで整数を割った余りは、0, 1, 2,…,m-2, m-1のm個で、どれもmを法として合同でないので、結局、mを法としてのすべての類は
  0 (mod m), 1 (mod m), 2 (mod m), …, (m-2) (mod m), (m-1) (mod m)
のm個の類で尽くされます。
一般に、a1, a2, a3, …, am-2, am-1の代表する類がすべてを尽くすとき、この系をmを法とする類の代表系といいます。
0, 1, 2,…,m-2, m-1は類の代表系の一つです。
これらm個の類の集合を、Z/mという記号で表します。

合同式の定理

  a≡b (mod m),  c≡d (mod m)
は、a-b=km, c-d=lmとなる整数k, lが存在するということですから、これから、
  (a±c)-(b±d)=(a-b)±(c-d)=(k±l)m
  ac-bd=ac-ad+ad-bd=a(c-d)+d(a-b)=(al+dk)m
となります。したがって、定義から、
<定理> a≡b (mod m),  c≡d (mod m)ならば、
  a±c≡b±d (mod m)----------------------------(1)
  ac≡bd (mod m)--------------------------------(2)
この定理の意味は、2数a, cの加減乗演算を、それぞれに対して合同な数b, dで置き換えて計算しても、結果はmを法として一定の類に入るということです。
つまり、類の代表をどのように選んでも、加減乗の結果として決まる類は一意的に決まるというわけです。
したがって、mを法とするm個の類の集合Z/mに、加減乗の2項演算を次のように定義することができます。

合同式の定義

<定義> a (mod m)±b (mod m)=(a±b) (mod m)
a (mod m)×b (mod m)=(a×b) (mod m)
aの代表する類とbの代表する類の間で加減乗を行った結果は、2数a, bの加減乗の結果の代表する類と等しい。
【例】m=7としたとき、3100を7で割った余りrはいくつか?
3100の計算はとてもできませんので、合同式の定義を利用して考えることになります。
すなわち、3100を小さな数字を乗じたものと考えます。
  100=10×10ですから、3100=(310)10としてみます。
  310=59049ですから、これを7で割った余りは4です。
合同式を使うと、310 (mod 7)=4 (mod 7)-------------------------------------------(3)
  3100 (mod 7)=310 (mod 7)×310 (mod 7)×…×310 (mod 7)
(3)を代入して、
  3100 (mod 7)=4 (mod 7)×4 (mod 7)×…×4 (mod 7)
410=1048576ですから、これを7で割った余りは4です。
合同式を使うと、410 (mod 7)=4 (mod 7)-------------------------------------------(4)
(3)を代入して、
  3100 (mod 7)=4 (mod 7)
  ∴3100≡4 (mod 7)
よって、余りr=4

※別解
32 (mod 7)=2 (mod 7)
33 (mod 7)=32 (mod 7)×3 (mod 7)=2 (mod 7)×3 (mod 7)=6 (mod 7)
34 (mod 7)=33 (mod 7)×3 (mod 7)=6 (mod 7)×3 (mod 7)=18 (mod 7)=4 (mod 7)
35 (mod 7)=34 (mod 7)×3 (mod 7)=4 (mod 7)×3 (mod 7)=12 (mod 7)=5 (mod 7)
36 (mod 7)=35 (mod 7)×3 (mod 7)=5 (mod 7)×3 (mod 7)=15 (mod 7)=1 (mod 7)
以上から、
3100 (mod 7)={(36)16×34 } (mod 7)=1 (mod 7)×4 (mod 7)=4 (mod 7)
∴3100≡4 (mod 7)
よって、余りr=4

RSAの数学解説

RSA暗号のところで出てきたモジュラ算術は、上の【例】同様に計算できます。
なんで
1123(mod 187)=[11(mod 187)×112(mod 187)×114(mod 187)×118(mod 187)×118(mod 187)](mod 187)
といえるのでしょうか。

xをkで割ったときの余りをx'で表すやりかたで書きかえると、
  (1123)'={(11)'(112)'(114)'(118)'(118)'}'
ということです。
つまり、すでに証明した前項の (ab)'=(a'b')' の文字が増えて(abcd…)'=(a'b'c'd'…)'になっただけです。
 (1123)'={(11)'(112)'(114)'(118)'(118)'}'
              =(11'×121'×14,641'×214,358,881'×214,358,881')'
              =(11×121×55×33×33)'
              =(79,720,245)'
              =88

ためしに 1123 = (116)3×115と考えても結果は同じです。、
   (1123)' = {(116)'(116)'(116)'(115)'}'
               =(1,771,561'×1,771,561'×1,771,561'×161,051')'
               =(1103×44)'
               =(58,564,000)'
               =88
となります。

1次の合同方程式

整数a, bに対して
  ax≡b (mod m)-----------(1)
のような方程式を、1次の合同方程式といいます。
 ※「aを何倍すればmで割ってb余るか」という意味です。
(1)を書き換えると、
  ax-b=my
となる整数x, yを見つけることと同じです。これはまた、
  ax-my=b------------------
(2)
の整数解を求めることですから、ユークリッドの互除法を使えます。
ユークリッドの互除法では、a, mの最大公約数をdとしていましたが、ここでは、bがdの倍数とします。
よって、a=a'd, m=m'd, b=b'dですから、
(2)をdで割って、
  a'x-m'y=b'

中国の余剰定理

→topに戻る →代数topに戻る
開始:2011年9月16日
更新:2013年5月22日
最終更新:2013年5月27日