■トーシェント関数と非トーション(その55)
オイラーの関数φ(n)は1からn−1までの整数のうち,nと互いに素になるものの個数
φ(n)=#(Z/nZ)
として定義されます.たとえば,n=7の場合,1,2,3,4,5,6なのでφ(7)=6,n=10の場合1,3,7,9がそうなのでφ(10)=4となります.
1760年頃,オイラーは,数nが素因数p,q,r,・・・をもつときに,それらの重複度にかかわらず,
φ(n)=n(1−1/p)(1−1/q)(1−1/r)・・・
であることを示しました.この原理は「エラトステネスのふるい」によっているのですが,たとえば,10=2・5,44=2^2・11,100=2^2・5^2より,
φ(10)=10(1−1/2)(1−1/5)=4
φ(44)=44(1−1/2)(1−1/11)=20
φ(100)=100(1−1/2)(1−1/5)=40
また,任意の素数pに対して,
φ(p^n)=p^n(1−1/p)
したがって,
φ(p)=p(1−1/p)=p−1
となります.
===================================
φ(15)=φ(3)φ(5)=8=15(1-1/3)(1-1/5)=8
φ(63)=φ(7)φ(9)=36=63(1-1/3)(1-1/7)=36
===================================
φ(m)は,mと互いに素であり,mより小さい整数r,1≦r<mの個数として定義される.すなわち,φ(m)は1からm−1までの整数のうち,mと公約数をもたない数はいくつあるかを数えた数を表す.
m=9→1,2,4,5,7,8→φ(9)=6
m=10→1,3,7,9→φ(10)=4
φ(1)=1,φ(2)=1,φ(3)=2,φ(4)=2
φ(5)=4,φ(6)=2,φ(7)=6,φ(8)=4
φ(9)=6,φ(10)=4,
φ(p)=p−1
φ(p^a)=(p−1)p^(a-1)=p^a(1−1/p)
φ(m)=mΠ(1−1/pi)
φ(10)=10(1−1/2)(1−1/5)=4
===================================
【1】公開鍵暗号システム
公開鍵暗号システムにおいて、関係者全部の暗号化した鍵は公表されている(公開鍵)。
s氏に秘密の通信文を送りたい人は、S氏が公表した鍵を用いてそれを暗号化できる。
s氏は逆鍵(解読鍵)を持っていて、その通信文を解読できる。
しかし、公表した鍵が逆鍵に対する有効な手がかりを含んでいないので、ほかの人は誰も解読できない。
もし、鍵が大きな数の積である指数kと法mから成り立っているなら、逆指数k’は原理的には
k^{φ(φ(m))-1}
から計算できるが、φ(m)を計算するためにはmの因数を知る必要があるため、因数分解アルゴリズムを用いてもmからは容易に出てこないため、実際にはこのことは不可能である。
一方、mの因数を知っている人はすぐに答えを求めることができるというわけである。
===================================
二つの大きな数をかけるのは易しいが、大きな数を因数分解は難しい。そこで、
r=pq
(s,φ(r))=1である指数sを選ぶ
rを公表するのである。
===================================
[参]小島寛之「素数ほどステキな数はない」技術評論社
にしたがって解説すると
p=3,q=11
N=pq=33を公開鍵とする。
Nと組になる公開鍵をr=3とするが、その場合、秘密鍵はs=7となる。
「え」=14を暗号化する
14^r=5 (modN)
「5」を復号するためにsを用いる。
5^s=14 (modN)
===================================