情報代数学 I 山内 博 ∗ 東京女子大学 数理科学科 2015 年度前期 ∗ http://www.math.twcu.ac.jp/~yamauchi 1 目次 1 ユークリッドの互除法 2 素数 11 3 合同式 13 4 オイラー関数 17 5 フェルマーの小定理 19 6 RSA 暗号 21 3 参考文献 楫 元,工科系のための初等整数論入門―公開鍵暗号をめざして,培風館 2 ユークリッドの互除法 1 定義 1.1. a, b ∈ Z, a ̸= 0 とする。b = ak となる k ∈ Z が存在するとき,a は b の約 数もしくは因数,b は a の倍数であるといい,記号で a | b と表す。これを式で書けば 次のようになる。 a | b ⇐⇒ ∃k ∈ Z s.t. b = ak 命題 1.2. 0 でない整数 a, b, c について次が成り立つ。 (1) 任意の整数 k について k | 0 (2) ±1 | a, ±a | a (3) a | b, b | a =⇒ a = ±b (4) a | b, b | c =⇒ a | c 【証明】 (1): 0 = 0 · k より k | 0 である。 (2): a = 1 · a = (−1) · (−a) より ±1 | a, ±a | a である。 (3): a | b, b | a とすれば a = bu, b = av (u, v ∈ Z) と表せる。このとき a = bu = (av)u = auv より a(1 − uv) = 0 である。a ̸= 0 なので 1 − uv = 0, すなわち uv = 1 である。これは u = v = ±1 のときのみ成り立つ。よって a = ±b である。 (4): a | b, b | c とすると,b = au, c = bv (u, v ∈ Z) と表せる。このとき c = bv = (au)v = a(uv) なので a | c である。 命題 1.3. a1 , . . . , ak , b ∈ Z, b ̸= 0 とする。各 1 ≤ i ≤ k について b | ai ならば任意の xi ∈ Z (1 ≤ i ≤ k) に対して b | (a1 x1 + · · · + ak xk ) である。 【証明】 b | ai とすると,ai = bti (ti ∈ Z) と表せる。このとき a1 x1 + · · · + ak xk = bt1 x1 + · · · btk xk = b(t1 x1 + · · · + tk xk ) となるから,a1 x1 + · · · + ak xk は b の倍数である。(他の証明として,まず k = 2 の場合 に主張を示し,帰納法を用いて k ≥ 3 の場合を示してもよい。) 命題 1.4. a, b ∈ Z, a > 0 とする。このとき b = aq + r, 0 ≤ r < a を満たす q, r ∈ Z がそれぞれ唯一つ存在する。 【証明】 まず条件を満たす q, r ∈ Z が存在することを示す。A = {b − aq | q ∈ Z} とし, A ∩ (N ∪ {0}) を考える。q ≪ 0 のとき b − aq > 0 となるので,A ∩ (N ∪ {0}) は空でない。 よって r = min A ∩ (N ∪ {0}) が存在する 1 。定義から r = b − aq と表せるので,b = aq + r 1 N ∪ {0} の空でない部分集合には最小元が存在します。 3 が成り立つ。もし r > a ならば r − a = b − a(q − 1) ∈ A ∩ (N ∪ {0}) となり,r の最 小性に矛盾する。よって 0 ≤ r < a である 2 。次に一意性を示す。b = aq + r = aq ′ + r′ , 0 ≤ r, r′ < a となったとする。このとき r −r′ = a(q ′ −q) は a の倍数である。0 ≤ r′ < a よ り −a < −r′ ≤ 0 であり,これと 0 ≤ r < a を合わせて −a < r −r′ < a が成り立つ。r −r′ は a の倍数であったので r − r′ = 0 でなければならない。このとき r − r′ = a(q − q ′ ) = 0 から q − q ′ = 0 でもある。よって条件を満たす q, r ∈ Z はそれぞれ唯一つである。 定義 1.5. 命題 1.4 で定まる q および r をそれぞれ b を a で割った商および余りと いう。また命題 1.4 を (整数における) 除法の原理という。 定義 1.6. a, b をともに 0 ではない整数とする。d ∈ Z が a も b も割り切るとき,a と b の公約数という。また m ∈ Z が a でも b でも割り切れるとき,a と b の 公倍 数という。これを式で表せば以下のとおりである。 d : a と b の公約数 ⇐⇒ d | a かつ d | b m : a と b の公倍数 ⇐⇒ a | m かつ b | m a と b の公約数のうち最大のものを a と b の最大公約数 (Greatest Common Divisor) といい,gcd(a, b) もしくは単に (a, b) と表す。a, b がともに 0 でないとき,a と b の 正の公倍数のうち最小のものを a と b の最小公約数 (Least Common Multiple) とい い,lcm(a, b) と表す。 注釈 1.7. a ̸= 0 のときは gcd(a, 0) = |a| であり,また lcm(a, 0) = 0 となる。便宜上, gcd(0, 0) = lcm(0, 0) = 0 と定める。 次の命題は今後よく使われる。 命題 1.8. 次が成り立つ。 (1) a | m, b | m =⇒ lcm(a, b) | m (2) n | a, n | b =⇒ n | gcd(a, b) 【証明】 (1): a | m, b | m とする。lcm(a, b) = ℓ とおく。m を ℓ で割った商を q, 余りを r とすれば,除法の原理より m = ℓq + r, 0 ≤ r < ℓ が成り立つ。ここで m, ℓ は a の倍数であるから,命題 1.3 より r = m − ℓq も a の倍数 である。同様に m, ℓ は b の倍数でもあるから,命題 1.3 より r = m − ℓq も b の倍数と なる。よって r は a, b の公倍数である。もし r ̸= 0 なら最小公倍数 ℓ の最小性に反し矛 盾が生じる。よって r = 0 であり,m は ℓ で割り切れる。 2 次のように示してもよい。a の倍数全体を考える。 . . . , −6a, −5a, −4a, −3a, −2a, −a, 0, a, 2a, 3a, 4a, 5a, 6a, . . . このとき qa ≤ b < (q + 1)a となる q ∈ Z が存在する。このような q に対し r = b − qa とおけば b = aq + r であり, 0 ≤ r < a を満たす。 4 (2): n | a, n | b とする。g = gcd(a, b) とおき,n と g の最小公倍数を L とする。a は n, g の両方で割り切れるので,これらの公倍数である。よって (1) より L | a である。同様に a も n, g の両方で割り切れるので,これらの公倍数であり,(1) より L | b である。よっ て L は a, b の公約数となる。このとき g の最大性から L ≤ g が成り立つ。一方,L は g の倍数であるから g ≤ L が成り立つ。よって L ≤ g ≤ L より L = g となる。L は n の倍数であるから,n | L = g が成り立つ。 gcd(a, b), lcm(a, b) のいずれか一方が分かればもう一方も次の命題から求まる。 命題 1.9. a, b ∈ N について ab = lcm(a, b) · gcd(a, b) が成り立つ。 【証明】 g = gcd(a, b), ℓ = lcm(a, b) とおく。ab は a, b の公倍数なので命題 1.8 (1) より ab = ℓk と表せる。ℓ は a, b の公倍数であるから ℓ = au = bv と表せるので, ab = ℓk = auk = bvk より b = uk, a = vk である。これより k は a, b の公約数である ことが分かり,命題 1.8 (2) から g = kn と表せる。一方,g は a および b を割り切るの ab b a で = a · = · b は a でも b でも割り切れる。よってふたたび命題 1.8 (1) から ℓ は g g g ab ℓk ℓ ℓ = = を割り切る。すなわち = ℓm となる m ∈ N が存在するが,このとき g kn n n ℓ(1 − mn) = 0 より mn = 1, これより m = n = 1 となり,g = kn = k である。よって ab = ℓk = ℓg が成り立つ。 定義 1.10. a, b ∈ Z は (a, b) = 1 のとき互いに素 (coprime) であるという。 命題 1.11. 整数 a, b, c について c | ab かつ (a, c) = 1 ならば c | b である。 【証明】 ab は a でも c 割り切れる。よって命題 1.8 (1) より ab は lcm(a, c) で割り切れ ac る。(a, c) = 1 なので命題 1.9 より lcm(a, c) = = ac であるから,b は c で割り切 (a, c) れる。 命題 1.12. d = (a, b) とすれば ( a d , b d ) = 1 が成り立つ。 a b 【証明】 正の整数 k について k が と の公約数であることと dk が a, b の公約数で d d あることと同値である。またこのとき d は a と b の最大公約数であるから,dk ≤ d であ a b る。よって k = 1 でなければならない。それゆえ と は互いに素である。 d d 命題 1.13. 任意の q ∈ Z について (a, b) = (a − bq, b) が成り立つ。 【証明】 k を a, b の公約数とすれば,命題 1.3 より k は a − bq も割り切る。逆に k を a − bq, b の公約数とすれば,同じく命題 1.3 より a = bq + (a − bq) は k で割り切れる。 以上から k が a, b の公約数であることと a, b − aq の公約数であることは同値である。特 に両者の最大公約数は一致する。 a, b を a > b なる 正の整数とする。a を b で割ったときの商および余りをそれぞれ q0 , 5 r0 とすると,次が成り立つ。 0 ≤ r0 < b a = bq0 + r0 , r0 ̸= 0 ならば b を r0 で割ったときの商および余りをそれぞれ q1 , r1 とすると, 0 ≤ r1 < r 0 b = r 0 q1 + r 0 , が成り立つ。r1 ̸= 0 ならば r0 を r1 で割ったときの商および余りをそれぞれ q2 , r2 とす ると r0 = r1 q2 + r2 , 0 ≤ r2 < r1 となる。これを繰り返し,ri+1 ̸= 0 のとき ri を ri+1 で割ったときの商および余りを qi+2 および ri+2 とすると,作り方から余りは b > r0 > r1 > r2 > r3 > · · · を満たすので,あ る k について rk+1 = 0 となる。 a = bq0 + r0 , 0 < r0 < b, b = r 0 q1 + r1 , 0 < r1 < r0 , r0 = r 1 q2 + r2 , 0 < r2 < r1 , r1 = r 2 q3 + r3 , 0 < r3 < r2 , r2 = r 3 q4 + r4 , 0 < r4 < r3 , r3 = r 4 q5 + r5 , 0 < r5 < r4 , .. . .. . rk−2 = rk−1 qk + rk , rk−1 = rk qk+1 + (1.1) 0. 0 < rk < rk−1 , (rk+1 = 0) 上の式において r−2 = a, r−1 = b とおけば −2 ≤ i ≤ k − 1 について ri = ri+1 qi+2 + ri+2 が成り立っている。このとき命題 1.13 より (ri , ri+1 ) = (ri+1 qi+2 + ri+2 , ri+1 ) = (ri+2 , ri+1 ) が成り立つ。よって最大公約数 (a, b) は (a, b) = (r−2 , r−1 ) = (r−1 , r0 ) = (r0 , r1 ) = (r1 , r2 ) = · · · · · · = (rk−1 , rk ) = (rk , rk+1 ) = (rk , 0) = rk となることが分かる。(1.1) にある一連の計算は a, b の最大公約数を求める手順を与えて いる。このアルゴリズムをユークリッドの互除法という。ユークリッドの互除法を応用す ると,次の定理が証明できる。 定理 1.14. 整数 a, b ∈ Z について ax + by = (a, b) を満たす x, y ∈ Z が存在する。 【証明】 (1.1) における余り ri (0 ≤ i ≤ k) について,ri = axi + byi を満たす xi , yi ∈ Z が 存在することを i に関する帰納法で示す。r0 については a = bq0 + r0 より r0 = a + (−q0 )b 6 と表せるので,主張は成り立つ。次に 0 ≤ j ≤ i について rj = axj + byj と表せたとする と,ri−1 = ri qi+1 + ri+1 を変形して ri+1 = ri−1 − qi+1 ri = (axi−1 + byi−1 ) − qi+1 (axi + byi ) = a(xi−1 − qi+1 xi ) + b(yi−1 − qi+1 yi ) と表せるので,ri+1 についても主張は成り立つ。よって i = 0, 1, 2, . . . に対してこの計算 を続けていけば (a, b) = rk も ax + by と表すことができる。 注釈 1.15. 上の証明では (1.1) における余り ri に対し,ri = axi + byi を満たす整数 xi , yi を順次計算する手続きが与えられている。この計算方法を拡張ユークリッドの互除法とい う。より理論的に,次のように定理 1.14 を示すこともできる。I = {ax+by ∈ Z | x, y ∈ Z} とおく。a = a · 1 + b · 0, b = a · 0 + b · 1 より a, b ∈ Z である。よって I ̸= ∅ であり,最小元 d = min I ∩ N がとれる。d = ax0 + by0 とする。勝手な m = ax + by ∈ I をとるとき,m を d で割ったときの商を q, 余りを n とすると,もし m が d で割り切れなければ m = dq +n, 0 < n < d が成り立つが,このとき n = m − dq = a(x − dx0 ) + b(y − dy0 ) ∈ I ∩ N とな り,d の最小性に矛盾する。よってすべての I の元は d で割り切れる。特に a, b ∈ I で あったから,d は a, b の公約数となる。それゆえ a, b の最大公約数を g とすれば,d | g である。一方,d = ax0 + by0 より,命題 1.3 から g | d でもある。よって d = g であり, a と b の最大公約数は I に属する。 定理 1.16. 整数 a, b ∈ Z について (a, b) = 1 であることと方程式 ax + by = 1 が整数 解を持つことは同値である。 【証明】 (a, b) = 1 ならば定理 1.14 より ax + by = 1 は整数解をもつ。逆にある整数 x, y について ax + by = 1 が成り立つとすれば,左辺は最大公約数 (a, b) の倍数なので,(a, b) は 1 を割り切る。よって (a, b) = 1 となる。 命題 1.17. 整数 a, b, c ∈ Z について (a, c) = (b, c) = 1 と (ab, c) = 1 は同値である。 【証明】 (a, c) = (b, c) = 1 とすると,定理 1.16 より as + ct = 1, bu + cv = 1 を満たす s, t, u, v ∈ Z が存在する。このとき 1 = (as + ct)(bu + cv) = absu + acsv + bctu + c2 tv = ab · su + c · (asv + btu + ctv) が成り立つので,定理 1.16 より (ab, c) = 1 である。逆に (ab, c) = 1 とすれば,ふたたび 定理 1.16 より abx + cy = 1 を満たす整数 x, y がとれる。このとき定理 1.16 より (a, c) = (b, c) = 1 となる。 系 1.18. 整数 a および m1 , . . . , mk について,(a, mi ) = 1 (1 ≤ i ≤ k) であることと (a, m1 m2 · · · mk ) = 1 は同値である。 【証明】 命題 1.17 を繰り返し用いればよい。 7 命題 1.19. 整数 a, b ∈ Z について,方程式 ax + by = c が整数解を持つための必要 十分条件は (a, b) | c である。 【証明】 g = (a, b) とおく。 (⇒) 整数 c が c = ax + by と表せたとすると,命題 1.3 より c は g の倍数となる。 (⇐) g | c とすると,c = gk, k ∈ Z, と表せる。定理 1.14 より g = ax0 + by0 となる x0 , y0 ∈ Z がとれる。この両辺を k 倍して c = gk = akx0 + bky0 を得る。よって方程式 ax + by = c は整数解を持つ。 注釈 1.20. 整数 a, b についての方程式 ax + by = c の整数解は以下のようにしてすべて 求められる。g = (a, b) とおくと,g̸ | c ならば ax + by = c は解を持たないので,c = c′ g と表せる場合のみ考えればよい。a = a′ g, b = b′ g と表し,ax + by = c の両辺を g で 割れば a′ x + b′ y = c′ が得られる。命題 1.12 より (a′ , b′ ) = 1 であるから,はじめから ax + by = c の両辺を (a, b) で割っておくことで (a, b) = 1 としてよい。以下,(a, b) = 1 の場合に ax + by = c の解法を与える。定理 1.14 より ax0 + by0 = 1 を満たす x0 , y0 ∈ Z がとれる。この式を c 倍し,ax + by = c との差をとることで次を得る。 a(x − cx0 ) + b(y − cy0 ) = 0 変形して a(x − cx0 ) = b(cy0 − y) を考えると,左辺は a の倍数であるから右辺は a で 割り切れる。仮定から (a, b) = 1 なので,命題 1.11 より a | cy0 − y が成り立つ。よって k ∈ Z を用いて cy0 − y = ak と表せる。このとき a(x − cx0 ) = b(cy0 − y) = abk より x − cx0 = bk である。以上から x = bk + cx0 , y = −ak + cy0 (k ∈ Z) が一般解となる。 ここまで二つの整数の約数・倍数を考えてきたが,三つ以上の場合も同様に考えること ができる。 定義 1.21. 0 でない整数 a1 , . . . , ak に対し,その公約数および公倍数を以下で定める。 d : a1 , . . . , ak の公約数 ⇐⇒ 1 ≤ i ≤ k について d | ai m : a1 , . . . , ak の公倍数 ⇐⇒ 1 ≤ i ≤ k について ai | m a1 , . . . , ak の公約数のうち,最大のものを a1 , . . . , ak の最大公約数といい,これを記号で gcd(a1 , . . . , ak ) と表す。また a1 , . . . , ak の正の公倍数のうち,最小のものを a1 , . . . , ak の最小公倍数といい,これを記号で lcm(a1 , . . . , ak ) と表す。gcd(a1 , . . . , ak ) = 1 が成 り立つとき,k 個の整数 a1 , . . . , ak は互いに素という。 注釈 1.22. k 個の整数 a1 , . . . , ak が互いに素であっても,その k − 1 個以下の整数が互い に素とは限らない。例えば,gcd(6, 10, 15) = 1 であるが,gcd(6, 10) = 2, gcd(6, 15) = 3, gcd(10, 15) = 5 である。 三つ以上の整数の最大公約数・最小公倍数の計算は二つの場合に帰着できる。 8 命題 1.23. 0 でない整数 a1 , . . . , ak (k ≥ 2) について以下が成り立つ。 (1) d | ai (1 ≤ i ≤ k) =⇒ d | gcd(a1 , . . . , ak ) (2) gcd(a1 , . . . , ak ) = gcd(gcd(a1 , . . . , ak−1 ), ak ) (3) ai | m (1 ≤ i ≤ k) =⇒ lcm(a1 , . . . , ak ) | m (4) lcm(a1 , . . . , ak ) = lcm(lcm(a1 , . . . , ak−1 ), ak ) 【証明】 k = 2 の場合,(1), (3) は命題 1.8 で示したことである。(1), (2) と (3), (4) を k に関する帰納法で同時に証明する。 (1),(2): k ≥ 3 として k − 1 個の整数に対して主張は正しいものとする。d を a1 , . . . , ak の 公約数とすると,d は a1 , . . . , ak−1 の公約数でもあるから,帰納法の仮定より d | gcd(a1 , . . . , ak−1 ) が成り立つ。よって命題 1.8 (2) より d | gcd(gcd(a1 , . . . , ak−1 ), ak ) (1.2) が成り立つ。特に d = gcd(a1 , . . . , ak ) として gcd(a1 , . . . , ak ) | gcd(gcd(a1 , . . . , ak−1 ), ak ) が成り立つ。約数の大きさを考えることで gcd(a1 , . . . , ak ) ≤ gcd(gcd(a1 , . . . , ak−1 ), ak ) (1.3) である。一方,命題 1.2 (4) より gcd(gcd(a1 , . . . , ak−1 ), ak ) は a1 , . . . , ak の公約数である から,最大性より gcd(gcd(a1 , . . . , ak−1 ), ak ) ≤ gcd(a1 , . . . , ak ) (1.4) が成り立つ。よって (1.3), (1.4) から gcd(a1 , . . . , ak ) ≤ gcd(gcd(a1 , . . . , ak−1 ), ak ) ≤ gcd(a1 , . . . , ak ) となり,これより gcd(a1 , . . . , ak ) = gcd(gcd(a1 , . . . , ak−1 ), ak ) が従う。このとき (1.2) よ り a1 , . . . , ak の公約数 d について d | gcd(a1 , . . . , ak ) = gcd(gcd(a1 , . . . , ak−1 ), ak ) が成り立つ。よって k 個の整数についても主張は成り立つので,数学的帰納法よりすべ ての k ≥ 2 について成り立つ。 (3), (4): k ≥ 3 として k − 1 個の整数に対して主張は正しいものとする。m を a1 , . . . , ak の公倍数とすると,m は a1 , . . . , ak−1 の公倍数でもあるから,帰納法の仮定より lcm(a1 , . . . , ak−1 ) | m が成り立つ。よって命題 1.8 (1) より lcm(lcm(a1 , . . . , ak−1 ), ak ) | m 9 (1.5) が成り立つ。特に m = lcm(a1 , . . . , ak ) として lcm(lcm(a1 , . . . , ak−1 ), ak ) | lcm(a1 , . . . , ak ) が成り立つ。約数の大きさを考えることで lcm(lcm(a1 , . . . , ak−1 ), ak ) ≤ lcm(a1 , . . . , ak ) (1.6) である。一方,命題 1.2 (4) より lcm(lcm(a1 , . . . , ak−1 ), ak ) は a1 , . . . , ak の公倍数である から,最小性より lcm(a1 , . . . , ak ) ≤ lcm(lcm(a1 , . . . , ak−1 ), ak ) (1.7) が成り立つ。よって (1.6), (1.7) から lcm(a1 , . . . , ak ) ≤ lcm(lcm(a1 , . . . , ak−1 ), ak ) ≤ lcm(a1 , . . . , ak ) となり,これより lcm(a1 , . . . , ak ) = lcm(lcm(a1 , . . . , ak−1 ), ak ) が従う。このとき (1.5) よ り a1 , . . . , ak の公倍数 m について lcm(lcm(a1 , . . . , ak−1 ), ak ) = lcm(a1 , . . . , ak ) | m が成り立つ。よって主張は k 個の整数についても成り立つので,数学的帰納法よりすべ ての k ≥ 2 について成り立つ。 注釈 1.24. 命題 1.9 は三つ以上の整数に対しては成立しない。実際,gcd(6, 10, 15) = 1, lcm(6, 10, 15) = 30 であるが,6 · 10 · 15 = 900 となってしまう。 定理 1.25. 0 でない整数 a1 , . . . , ak (k ≥ 2) について a1 x1 + · · · + ak xk = gcd(a1 , . . . , ak ) を満たす整数 x1 , . . . , xk が存在する。 【証明】 k に関する帰納法で証明する。k = 2 の場合は定理 1.14 で示したので,k ≥ 3 と して k − 1 個の整数について主張が成り立つものとする。すなわち a1 y1 + a2 y2 + · · · + ak−1 yk−1 = gcd(a1 , . . . , ak−1 ) (1.8) を満たす整数 y1 , . . . , yk−1 が存在するものとする。定理 1.14 と 命題 1.23 (2) から gcd(a1 , . . . , ak−1 )z + ak xk = gcd(gcd(a1 , . . . , ak−1 ), ak ) = gcd(a1 , . . . , ak ) (1.9) を満たす整数 z, xk が存在する。(1.8) を (1.9) に代入することで a1 y1 z + a2 y2 z + · · · ak−1 yk−1 z + ak xk = gcd(a1 , . . . , ak ) が成り立つ。よって x1 = y1 z, . . . , xk−1 = yk−1 z とすれば k 個の整数についても主張が成 り立つ。 10 素数 2 定義 2.1. (1) 2 以上の整数 p が素数であるとは,p の約数は ±1 および ±p に限る ことと定める。この条件を式で表せば以下のとおりである。 (∀a ∈ Z)(a | p =⇒ a = ±1 or a = ±p) (2) 素数でない 2 以上の整数 m を合成数という。これは次の条件と同値である。 ∃a, b ∈ Z s.t. 1 < a, b < m and m = ab 合成数 m に対して,このような約数 a, b を m の真の約数という。 定義から 1 は素数でも合成数でもないことに注意しよう。 補題 2.2. p を素数とするとき,任意の整数 a について (a, p) = 1 もしくは (a, p) = p である。 【証明】 g = (a, p) とすると,g | p より素数の定義から g = 1 もしくは g = p となる。 命題 2.3. 素数 p が m1 · · · mk を割り切るならば,ある mi について p | mi である。 【証明】 まず k = 2 の場合を示す。p | m1 m2 とする。素数の定義から (p, m1 ) = 1 もしく は (p, m1 ) = p のいずれかが成り立つ。後者の場合,m1 は p で割り切れるので,主張は 成り立つ。前者の場合,命題 1.11 から p | m2 が成り立ち,やはり主張は成り立つ。次に k > 2 の場合を考える。p | m1 m2 · · · mk とすると,m1 m2 · · · mk = m1 · (m2 · · · mk ) とみ ることで p | m1 もしくは p | m2 · · · mk が成り立つ。後者について数学的帰納法を適用す ればある mi について p | mi となる。よってすべての k ≥ 2 について主張が成り立つ。 定理 2.4. 2 以上の整数は素数の積に一意的に分解できる。 【証明】 まず 2 以上の整数 a について,a が素数の積に分解できることを a に関する帰 納法で示す。2 は素数なので,a = 2 の場合は主張は成り立つ。2 以上 a 未満の整数につ いて主張が成り立つとする。もし a が素数であれば主張は成り立っている。もし a が合 成数であれば a = bc, 1 < b, c < a と表せる。帰納法の仮定から b, c はそれぞれ素数の積 に分解する。よって a = bc も素数の積に分解する。以上から 2 以上の整数は素数の積に 分解できることが示せた。 次に分解の一意性を示す。a を 2 以上の整数として,その素因数分解 a = p1 p2 · · · pn に おける素数の個数 n に関する帰納法により分解の一意性を示す。n = 1 の場合は明らか であるから,n > 1 として a = p1 p2 · · · pn = q1 q2 · · · qm (2.1) と二通りの素数への分解があったとする。このとき m = n であり,適当に並べ替えるこ とにより pi = qi (1 ≤ i ≤ n) となることを示す。p1 | a より p1 | q1 · · · qm であるから,命 題 2.3 より p1 | qi となる qi がある。必要ならば番号をつけかえて,p1 | q1 としてよい。q1 11 は素数でありその正の約数は 1 と q1 のみである。p1 は 1 より大きいので p1 = q1 とな る。よって (2.2) の辺々を p1 で割って p2 · · · pn = q2 · · · qm (2.2) を得る。この左辺は n − 1 個の素数の積で表せるので,帰納法の仮定からその素因数分解 は一意的である。よって m = n で,適当に並べ替えることにより pi = qi (1 ≤ i ≤ n) と なる。以上から素因数分解の一意性も証明できた。 系 2.5. p1 , . . . , pk を相異なる素数とする。整数 n が n = pe11 · · · pekk と素因数分解さ れるならば,n の約数は ±pf11 · · · pfkk , 0 ≤ fi ≤ ei で尽くされる。 【証明】 a を n の約数とし,n = ab と分解したとする。a, b の素因数分解から n の素因 数分解が得られるが,定理 2.4 より素因数分解の一意性が成り立つので,a の素因素因数 の可能性は主張にあるものに限られる。 系 2.6. 正の整数 n が n = pe11 · · · pekk と素因数分解するとき,n のすべての正の約数 の和は次で与えられる。 (1 + p1 + · · · + pe11 )(1 + p2 + · · · + pe22 ) · · · (1 + pk + · · · + pekk ) = k ∏ pei +1 − 1 i i=1 pi − 1 【証明】 実際に展開してみればよい。 命題 2.7. a, b ∈ Z の素因数分解を a = pe11 · · · pekk , b = pf11 · · · pfkk , ei , f i ≥ 0 とするとき,a, b の最大公約数および最小公倍数は次で与えられる。 min(e1 ,f1 ) gcd(a, b) = p1 min(ek ,fk ) · · · pk max(e1 ,f1 ) , lcm(a, b) = p1 max(ek ,fk ) · · · pk 【証明】 整除関係 gcd(a, b) | a, gcd(a, b) | b および a | lcm(a, b), b | lcm(a, b) に系 2.5 を適用 すれば gcd(a, b) および lcm(a, b) の素因数分解が主張の通りに定まる。 定理 2.8. 素数は無限個存在する。 【証明】 色々な証明方法が知られているが,ここでは最も基本的な証明を与える。素数が 有限個だったとし,p1 , . . . , pn を相異なるすべての素数とする。N = p1 · · · pn + 1 とおく と,定理 2.4 より N は素数の積に分解できるが,各 pi について N を pi で割ると 1 余る ので,N は p1 , . . . , pn では割り切れず,有限個の素数 p1 , . . . , pn の積には分解できない。 これは矛盾である。よって相異なる素数の個数は有限にはなりえず,無限に存在する。 12 合同式 3 定義 3.1. n を 0 でない整数とする。a, b ∈ Z について,a − b が n で割り切れると き,a と b は n を法として合同であるといい,これを式で次のように表す。 a ≡ b mod n ⇐⇒ n | a − b ⇐⇒ ∃k ∈ Z s.t. a − b = kn 以下,mod n で合同式を考えるときは n は正の整数であるとする。合同式の定義から a ≡ 0 mod n は n | a と同値であることに注意する。 命題 3.2. 次が成り立つ。 (1) 任意の a ∈ Z について a ≡ a mod n (2) a ≡ b mod n =⇒ b ≡ a mod n (3) a ≡ b mod n かつ b ≡ c mod n =⇒ b ≡ a mod n 【証明】 (1): a − a = 0 = 0 · n より a ≡ a mod n が成り立つ。 (2): a ≡ b mod n とすると,ある k ∈ Z があって a − b = kn と書ける。このとき b − a = −kn であるから,b ≡ a mod n が成り立つ。 (3): a ≡ b mod n, b ≡ c mod n とすると,ある k, ℓ ∈ Z があって a − b = kn, b − c = ℓn と書ける 3 。このとき a − c = (a − b) + (b − c) = kn + ℓn = (k + ℓ)n となるので,a ≡ c mod n が成り立つ。 命題 3.3. a ≡ c mod n, b ≡ d mod n であるとき,次が成り立つ。 (1) a ± b ≡ c ± d mod n (2) ab ≡ cd mod n (3) ak ≡ ck mod n (k = 1, 2, 3, . . . ) 【証明】 a − c = kn, b − d = ℓn とする。 (1): (a ± b) − (c ± d) = (a − c) ± (b − d) = (k ± ℓ)n より a ± b ≡ c ± d mod n である。 (2): ab − cd = ab − cb + cb − cd = (a − c)b + c(b − d) = (bk + cℓ)n より ab ≡ cd mod n である。 (3): (2) を繰り返し用いればよい。 補題 3.4. a ∈ Z を n で割った余りを r とすれば,a ≡ r mod n である。 【証明】 a を n で割った商を q, 余りを r とすれば,a = nq + r より a − r = nq なので a ≡ r mod n である。 補題 3.5. 任意の a ∈ Z について a ≡ r mod n となる 0 ≤ r < n が唯一つ存在する。 【証明】 a を n で割った余りを r とすれば補題 3.4 より a ≡ r mod n, 0 ≤ r < n が 成り立つ。他に a ≡ r′ mod n となる 0 ≤ r′ < n があったとすると,命題 3.3 (1) よ り r − r′ ≡ a − a = 0 mod n となるので,r − r′ は n で割り切れる。0 ≤ r′ < n か 3 同じ k を用いて a − b = kn, b − c = kn となるとは限らないことに注意。 13 ら −n < −r′ ≤ 0 であり,これと 0 ≤ r < n を合わせると −n < r − r′ < n が成り立 つ。r − r′ は n の倍数であるから,r − r′ = nk とかける。このとき −n < nk < n より −1 < k < 1 であるから,k = 0 でなければならない。よって r − r′ = nk = n · 0 = 0 で あり,r = r′ となる。以上から a ≡ r mod n となる 0 ≤ r < n は唯一つである。 定義 3.6. 正整数 n を一つ固定する。a ∈ Z を n で割った余りを a と表し, } { } { Z/nZ := a a ∈ Z = 0, 1, . . . , n − 1 とおく。Z/nZ に和・差・積を a ± b := a ± b, a · b := a · b で定める。Z/nZ を n を法とした剰余環という。 注釈 3.7. 命題 3.2 (3) と補題 3.4 より a = b ⇐⇒ a ≡ b mod n である。また,n を法 としていることを明記したい場合には a = [a]n とも書く。 剰余環 Z/nZ では整数の集合 Z と同様に和・差・積が行える。では商 (割り算) につい てはどうであろうか。そのためにはまず Z/nZ における逆数を調べる必要がある。 命題 3.8. Z/nZ において ax = b が解をもつ ⇐⇒ (a, n) | b 【証明】 【証明】 Z/nZ において ax = b が解を持つ ⇐⇒ b − ax = 0 ⇐⇒ n | b − ax ⇐⇒ ある y ∈ Z が存在して b − ax = ny となる ⇐⇒ ax + ny = b が整数解を持つ ⇐⇒ (a, n) | b (命題 1.19)。よって主張の同値性が示された。 命題 3.9. Z/nZ において ax = 1 が解を持つための必要十分条件は (a, n) = 1 であ る。またこのとき解 x は Z/nZ において一意に定まる。 【証明】 命題 3.8 より ax = 1 が解を持つことと (a, n) = 1 は同値である。一意性につい ては ax = ax′ = 1 となったとすると,ax = 1 の両辺に x′ をかけて axx′ = x′ となるが, この左辺は axx′ = ax′ · x = ax′ · x = 1 · x = x であるから,x = x′ を得る。よって Z/nZ において 解は存在すれば一意である。 定義 3.10. a ∈ Z/nZ が可逆元 ⇐⇒ ある x ∈ Z/nZ が存在して ax = 1 可逆元のことを単数ともいう。次の系は命題 3.9 の言い換えである。 系 3.11. a が Z/nZ における可逆元 ⇐⇒ (a, n) = 1 14 定義 3.12. a ∈ Z/nZ が可逆元であるとき,ax = 1 を満たす x ∈ Z/nZ を a の (積 −1 に関する) 逆元といい,x = a と表す。また,Z/nZ における可逆元全体の集合を × (Z/nZ) と書き,これを Z/nZ の単数群という。 (Z/nZ)× = {a ∈ Z/nZ | (a, n) = 1} a を Z/nZ における可逆元とするとき,命題 3.8 の証明から逆元 a 式 ax + ny = 1 を解くことで得られることが分かる。 −1 は一次不定方程 補題 3.13. (a, n) = 1 のとき,Z/nZ における a の逆元 a −1 一つとるとき,a = x として得られる。 −1 は ax + ny = 1 の解を 【証明】 ax + ny = 1 とすると,両辺を法 n で考えることにより ax + ny = 1 となるが, −1 ax + ny = ax + n · y = ax + 0 · y = ax であるから,ax = 1 が成り立つ。よって x = a である。 命題 3.14. a, b ∈ (Z/nZ)× について,以下が成り立つ。 ( −1 )−1 −1 (1) a ∈ (Z/nZ)× (2) a =a (3) ab ∈ (Z/nZ)× −1 × (4) ab −1 =a −1 ·b −1 −1 【証明】 (1), (2): a ∈ (Z/nZ) より a · a = 1 が成り立つ。よって a も可逆元であ り,その逆元は a である。 −1 −1 −1 −1 (3), (4): ab · a · b = a · a · b · b = 1 · 1 = 1 より ab も可逆元であり,その逆元は −1 −1 a · b である。 命題 3.15. (a, n) = 1 のとき ab ≡ ac mod n =⇒ b ≡ c mod n 【証明】 注釈 3.7 にあるように,合同式 ab ≡ ac mod n は剰余環 Z/nZ において ab = ac −1 と同値である。(a, n) = 1 より系 3.11 から a ∈ (Z/nZ)× なので,ab = ac の両辺に a をかけることで b = c が得られる。これを合同式で表せば b ≡ c mod n となる。 定理 3.16. (m, n) = 1 のとき連立合同方程式 x≡a mod m x ≡ b mod n は mn を法として唯一つの解を持つ。 【証明】 (m, n) = 1 より定理 1.16 から mu + nv = 1 となる u, v ∈ Z が存在する。この とき 1 − nv = mu ≡ 0 mod m, 1 − mu = nv ≡ 0 mod n より 1 ≡ nv mod m 1 ≡ mu mod n 15 が成り立つ。ここで x = anv + bmu とおけば x = anv + bmu ≡ anv ≡ a · 1 = a mod m x = anv + bmu ≡ bmu ≡ b · 1 = b mod n となるので,x は与えられた連立合同方程式の解である。もし他に解 y があったとする。 すなわち { { x ≡ a mod m y ≡ a mod m x ≡ b mod n y ≡ b mod n が成り立つとする。このとき x ≡ y mod m, x ≡ y mod n より合同式の定義から x − y は m および n で割り切れるので,命題 1.8 (2) より x − y は m と n の最小公倍数で割 り切れる。仮定より (m, n) = 1 であったから,命題 1.9 より m と n の最小公倍数は mn である。よって x − y は mn で割り切れるので,x ≡ y mod mn が成り立つ。これより 与えられた連立方程式の整数解は mn を法として一意的である。 系 3.17. m1 , . . . , mk をどの二つも互いに素な正整数とするとき,連立合同方程式 x ≡ a1 .. . mod m1 .. . x ≡ ak mod mk は m1 · · · mk を法として唯一つの解を持つ。 【証明】 方程式の個数 k に関する帰納法で証明する。k = 2 の場合は定理 3.16 で示した。 k − 1 個の場合に主張が成り立つとすると,以下を満たす整数 b が存在する。 b ≡ a1 .. . mod m1 .. . b ≡ ak−1 mod mk−1 仮定より m1 , . . . , mk はどの二つも互いに素だから系 1.18 より (m1 . . . mk−1 , mk ) = 1 で ある。よって定理 3.16 より x ≡ b mod m1 · · · mk−1 x ≡ ak mod mk を満たす整数 x が存在する。このとき x − b は m1 · · · mk−1 で割り切れるので,特に 1 ≤ i ≤ k − 1 について x − b ≡ 0 mod mi が成り立つ。b ≡ ai mod mi であるから, x ≡ b ≡ ai mod mi (1 ≤ i ≤ k − 1) が成り立つ。よって x は与えられた k 個の連立合 同方程式の解である。一意性については他に解 y があったとすれば,x ≡ y mod mi が 1 ≤ i ≤ k について成り立つので,x − y は mi で割り切れる。よって x − y は m1 , . . . , mk の最小公倍数で割り切れる。m1 , . . . , mk はどの二つも互いに素であったから,命題 1.9 と命題 1.23 (4) を繰り返し使うことによりその最小公倍数は m1 · · · mk である。よって x ≡ y mod m1 · · · mk が成り立つ。これより与えられた連立方程式は m1 · · · mk を法と して唯一つの整数解を持つ。 16 オイラー関数 4 定義 4.1. 2 以上の整数 n に対し Z/nZ における可逆元の個数を φ(n) と表し,これ をオイラーの φ 関数という。有限集合 A の元の個数を |A| と表すとき,φ(n) は次の ように定められる。 φ(n) = (Z/nZ)× = |{a ∈ Z | 1 ≤ a ≤ n, (a, n) = 1}| また,n = 1 に対しては φ(1) = 1 と定める。 以下,φ(n) を求める公式を導出する。 命題 4.2. (m, n) = 1 =⇒ φ(mn) = φ(m)φ(n) 【証明】 1 ≤ x ≤ mn に対し組 ([x]m , [x]n ) を対応させ,以下の写像を考える。 f : Z/mnZ −→ (Z/mZ) × (Z/nZ) [x]mn 7−→ ([x]m , [x]n ) x ≡ y mod mn とすれば x − y は mn で割り切れるので,x − y は m でも n でも割り 切れる。よって x ≡ y mod m かつ x ≡ y mod n となるので,この写像は well-defined である。勝手な 1 ≤ a ≤ m と 1 ≤ b ≤ n に対して定理 3.16 より x ≡ a mod m かつ x ≡ b mod n となる x が mn を法として唯一つ存在するので,この写像は全射である。 また,f ([x]mn ) = f ([y]mn ) となったとすれば x ≡ y mod m かつ x ≡ y mod n となり, x − y は m と n の両方で割り切れる。よって命題 1.8 (1) より x − y は m, n の最小公 倍数で割り切れる。仮定より (m, n) = 1 であったから,命題 1.9 より m, n の最小公倍 数は mn である。よって x − y は mn で割り切れ,x ≡ y mod mn が成り立つ。これは Z/mnZ において [x]mn = [y]mn を意味するので,f は単射でもある。ここで命題 1.17 よ り (x, mn) = 1 と (x, m) = (x, n) = 1 は同値であるから,[x]mn が Z/mnZ の可逆元であ ることと,[x]m が Z/mZ の可逆元かつ [x]n が Z/nZ の可逆元であることは同値である。 これより f は Z/mZ の可逆元と Z/nZ の可逆元の組と Z/mnZ の可逆元との間の一対 一対応を与える。前者は φ(m)φ(n) 個の組があり,後者は φ(mn) 個あるので,求める等 式 φ(mn) = φ(m)φ(n) を得る。 命題 4.3. φ(p ) = p − p e e e−1 【証明】素因数分解を考えることで (i, p ) = 1 は (i, p) = 1 と同値である。よって 1 ≤ i ≤ p のうち p と互いに素なものの個数が φ(pe ) を与える。1 ≤ i ≤ pe のうち p の倍数は e e p, 2p, 3p, 4p, . . . , pe = pe−1 · p であり,このような整数は kp (1 ≤ k ≤ pe−1 ) という形で pe−1 個ある。よって 1 ≤ i ≤ pe のうち残りのものが p と互いに素になるので,φ(pe ) = pe − pe−1 である。 17 定理 4.4. n = pe11 · · · pekk と素因数分解するならば, φ(n) = k ∏ (pei i − pei i −1 ) i=1 ) ∏ ( 1 1− =n p p|n p:素数 が成り立つ。 【証明】 命題 4.2 と命題 4.3 から φ(n) = φ(pe11 ) · · · φ(pekk ) = (pe11 − p1e1 −1 ) · · · (pekk − pekk −1 ) である。ここで上の式の各因子を (pei i − pei i −1 ) = pei i ( ) 1 1− pi と変形すれば φ(n) = pe11 · · · pekk ( ) ( ) ) ∏ ( 1 1 1 · 1− ··· 1 − =n 1− p1 pk p p|n p:素数 が得られる。 18 フェルマーの小定理 5 定義 5.1. 複素数 a と非負整数 i に対して二項係数を以下で定める。 ( ) a a · (a − 1) · (a − 2) · · · (a − i + 1) := i i! 注釈 5.2. 整数 n と |x| > |y| なる複素数 x, y について ∞ ( ) ∑ n n−i i n (x + y) = x y i i=0 ( ) n が成り立つ。n が非負整数ならば n ≥ i のとき = n Ci ∈ Z であり,0 ≤ n < i のとき i ( ) n = 0 であるから,上の和は 0 ≤ i ≤ n の範囲に収まり,通常の二項定理と一致する。 i ( ) p 補題 5.3. p を素数とするとき,1 ≤ i ≤ p − 1 について ≡ 0 mod p が成り立つ。 i 【証明】 1 ≤ i ≤ p − 1 のとき i! = 1 × 2 × · · · × i は p で割り切れない。よって ( ) p p · (p − 1) · · · (p − i + 1) = i i! ( ) p において分子の p は約分されないので, ≡ 0 mod p が成り立つ。 i 命題 5.4. (a ± b)p ≡ ap ± bp mod p ( ) p 【証明】 補題 5.3 より 1 ≤ i ≤ p − 1 のとき ≡ 0 mod p なので i ( ) ( ) ( ) ( ) p p p p−1 p p 0 0 1 1 p−1 p (a ± b) = a (±b) + a (±b) + · · · + a (±b) + a (±b)p 0 i p−1 p ≡ ap + (±1)p bp mod p が成り立つ。p > 2 の場合,p は奇数であるから,(−1)p = −1 より (a ± b)p ≡ ap ± bp mod p である。p = 2 の場合,−1 ≡ 1 mod 2 であるから,この場合も (a ± b)p ≡ ap ± bp mod p は成り立つ。 定理 5.5. p を素数とするとき,任意の整数 a について a ≡ a mod p が成り立つ。 特に (a, p) = 1 ならば ap−1 ≡ 1 mod p が成り立つ。 p 【証明】 まず非負整数 a について a ≡ a mod p を証明する。a = 0 のときは成り立つ。 ap ≡ a mod p が成り立つとすると,補題 5.3 より ( ) ( ) p ( ) ∑ p p−i i p p 0 p 0 p p (a + 1) = a ·1 ≡ a ·1 + a · 1 = ap + 1 ≡ a + 1 mod p i 0 p i=0 p 19 となり,(a + 1)p ≡ a + 1 mod p も成り立つ。よって数学的帰納法よりすべての非負整数 に対して ap ≡ a mod p が成り立つ。次に a を正整数として (−a)p を考える。p > 2 の ときは p は奇素数であるから (−1)p = −1 である。よってこのときは (−a)p = (−1)p ap = −ap ≡ −a mod p である。p = 2 のときは −1 ≡ 1 mod 2 より −a ≡ a mod 2 なので (−a)p ≡ ap ≡ a ≡ −a mod p となり,やはり成り立つ。よってすべての整数 a につい て ap ≡ a mod p が成り立つ。(a, p) = 1 であるとき a は Z/pZ において可逆元なので, −1 ap = a の両辺に逆元 a をかけて ap−1 = 1 を得る。これを合同式で表せば ap−1 ≡ 1 mod p となる。 定理 5.5 は一般の n に対して次のように拡張できる。 定理 5.6. (a, n) = 1 =⇒ aφ(n) ≡ 1 mod n 【証明】 (a, n) = 1 とすると,Z/nZ において a は可逆元を与える。可逆元の集合を { } (Z/nZ)× = x1 , . . . , xφ(n) とするとき,命題 3.14 (3) より axi もまた (Z/nZ)× に属す る。ここで axi = axj とすると,両辺に a xi = a −1 −1 をかけることで · axi = a −1 · axj = xj より xi = xj となる。よって 1 ≤ i ≤ φ(n) について axi はすべて相異なる。これより { } { } (Z/nZ)× = x1 , . . . , xφ(n) = ax1 , . . . , axφ(n) が成り立つ。よって Z/nZ の可逆元すべての積として次の等式が成り立つ。 ∏ φ(n) i=1 ふたたび命題 3.14 (3) より φ(n) ∏ ∏ φ(n) xi = ∏ φ(n) axi = a φ(n) i=1 xi i=1 xi ∈ (Z/nZ)× となるので,上の式の両辺に i=1 ( φ(n) ∏ xi )−1 i=1 をかければ a φ(n) =1 が得られる。これを合同式でかけば aφ(n) ≡ 1 mod n となる。 系 5.7. (a, n) = 1 のとき一次方程式 ax ≡ b mod n の解は x ≡ aφ(n)−1 b mod n で 与えられる。 φ(n) 【証明】 定理 5.6 より (a, n) = 1 のとき a =a·a φ(n)−1 ≡ 1 mod n であるから, ax ≡ b mod n の両辺に aφ(n)−1 をかけることで x ≡ aφ(n)−1 b mod n となる。 20 RSA 暗号 6 RSA 暗号 4 では次の命題を用いる。 定理 6.1. p, q を相異なる素数として,n = pq と正整数 t について以下が成り立つ。 (1) t ≡ 1 mod p − 1, t ≡ 1 mod q − 1 =⇒ ∀a ∈ Z at ≡ a mod n (2) t ≡ 1 mod φ(n) =⇒ ∀a ∈ Z at ≡ a mod n 【証明】 (1): p | a のとき a − a = a(a − 1) は p で割り切れるので a ≡ a mod p であ る。(a, p) = 1 のときは定理 5.5 より ap−1 ≡ 1 mod p となる。仮定から t = (p − 1)k + 1 と表せるので, at = a(p−1)k+1 = (ap−1 )k · a ≡ 1k · a = a mod p t t−1 t が成り立つ。よっていずれの場合も at ≡ a mod p が成り立つ。p と q を入れ替えて同 様に議論することで at ≡ a mod q も成り立つ。よって at − a は p および q で割り切れ る。p, q は相異なる素数だから at − a は n = pq で割り切れる。よって at ≡ a mod n が 成り立つ。 (2): 定理 4.4 より φ(n) = φ(pq) = φ(p)φ(q) = (p − 1)(q − 1) であるから,t ≡ 1 mod φ(n) ならば t − 1 は p − 1 および q − 1 で割り切れるので t ≡ 1 mod p − 1 および t ≡ 1 mod q − 1 が成り立つ。よって (1) より任意の整数 a について at ≡ a mod n が 成り立つ。 鍵生成 RSA 暗号について解説しよう。以下の要領で自然数 n, e, d を用意する。 1◦ 相異なる二つの素数 p, q を用意し n = pq とおく。このとき φ(n) = (p − 1)(q − 1) である。 2◦ φ(n) と互いに素な e を 1 < e < φ(n) の範囲で一つとる。 3◦ 上の e に対し ed ≡ 1 mod φ(n) を満たす d を 1 < d < φ(n) の範囲で求める。 このように選んだ n, e を暗号化鍵もしくは公開鍵,d を復号化鍵もしくは秘密鍵という。 RSA 暗号では暗号化鍵である n および e は他人に公開してしまう。一方,復号化鍵 d は 秘密にしておかなければならない。 暗号化 送信を行う文を n を法として x < n を満たす自然数で表現する。この数 x を ひらぶん 平文という。 平文 x に対し y ≡ xe mod n を計算し,0 ≤ y < n を満たすようとった y を暗号 文とする。 4 R.L. Rivest, A. Shamir, L. Adleman の三人が提唱した暗号形式。 21 復号化 受け取った暗号文を以下の手順で解読する。 暗号文 y に対して z ≡ y d mod n を計算し,0 ≤ z < n を満たすように z をとる。 このとき次が成り立つ。 定理 6.2. (RSA 暗号) x=z 【証明】作り方から z ≡ y d ≡ (xe )d ≡ xed mod n であるが,ed ≡ 1 mod φ(n) なので t = ed, a = x として定理 6.1 を用いると xed ≡ x mod n が成り立つ。よって z ≡ x mod n である。取り方から 0 ≤ x, z < n より z = x となる。 何故暗号になるのか? RSA 暗号が暗号として機能する理由は次の計算量の非対称性による。 ( ) ( ) p と q から n = pq n を所与としてその素因数分解 1. ≪ を求める計算量 n = pq を求める計算量 ( ) ( ) x mod n から xe mod n e を所与として xe mod n から 2. ≪ を求める計算量 x を求める計算量 では,実際に具体例で計算してみよう。本来 RSA 暗号では n = pq を大きくとって平 文をまるごと暗号文に変換するが,以下の例では簡単のため一文字ずつ暗号化している。 例1:n = 34 = 2 × 17 この場合 φ(34) = φ(2 × 17) = (2 − 1)(17 − 1) = 16 である。 (e, 16) = 1 となる e として e = 3 の場合を考えよう。このとき 3u + 16v = 1 の整数解を 求めることで 3 · 11 ≡ 1 mod 16 となることが分かる。よってこの場合 d = 11 となる。 以上の準備のもとで文 MATH を暗号化してみよう。ここでは以下の対応表を用いることに する。(ただし 34 = 0 とし,35 以上は無視する。) 01 02 A B 21 22 U V 03 C 23 W 04 05 06 D E F 24 25 26 X Y Z 07 G 27 0 08 H 28 1 09 I 29 2 10 J 30 3 11 K 31 4 12 L 32 5 13 M 33 6 14 N 34 7 15 O 35 8 16 P 36 9 17 Q 37 ? 18 R 38 @ 19 S 39 Y = 20 T n = 34, e = 3 として暗号化を行う。まず MATH を数字の列に直すと 13 01 20 08 となる。 それぞれの数字を暗号化すると ⇝ 13 7−→ 133 ≡ 21 mod 34 A ⇝ 01 7−→ 13 ≡ 1 mod 34 T ⇝ 20 7−→ 203 ≡ 10 mod 34 H ⇝ 08 7−→ 83 ≡ 2 mod 34 より MATH ⇝ 13 01 20 08 7−→ 21 01 10 02 が暗号文となる。これを復号してみると 21 7−→ 2111 ≡ 13 mod 34 ⇝ M 01 7−→ 111 ≡ 1 mod 34 ⇝ A 10 7−→ 1011 ≡ 20 mod 34 ⇝ T 02 7−→ 211 ≡ 8 mod 34 ⇝ H M となり,確かに元の平文である MATH が解読できる。 22 例2:n = 39 = 3 × 13 この場合 φ(39) = φ(3 × 13) = (3 − 1)(13 − 1) = 24 である。 (e, 24) = 1 となる e として e = 7 の場合を考えよう。この場合 7u + 24v = 1 の整数解を 求めることで 7 · 7 ≡ 1 mod 24 より d = 7 となる。この場合,暗号文 03 24 33 33 08 08 を解読してみよう。 03 7−→ 37 ≡ 3 mod 39 33 7−→ 337 ≡ 6 mod 39 ⇝C ⇝F 24 7−→ 247 ≡ 15 mod 39 08 7−→ 87 ≡ 5 mod 39 ⇝O ⇝E より 03 24 33 33 08 08 7−→ 03 15 06 06 05 05 と解読でき,対応表から元の平文は COFFEE であることが分かる。(ただし上の対応表において 39 = 0 とする。) 問題1:n = 38 = 2 × 19 この場合 φ(38) = φ(2 × 19) = (2 − 1)(19 − 1) = 18 である。 (e, 18) = 1 となる e として e = 11 を考える。このとき d = あ である。また,暗号 文 20 03 32 14 03 を解読すると元の平文は 38 = 0 とし,39 は無視する。) い である。(ここでは上の対応表において 問題2 例2において公開鍵 e = 5 の場合に自分の学籍番号 (英数合わせて 7 or 8 桁) を 上の対応表を用いて暗号化せよ。また e = 5 とした場合の復号化鍵 d を求め,暗号化し た学籍番号を実際に復号せよ。 23
© Copyright 2024 ExpyDoc