アルゴリズム論特論(塩田) 2017年度教材 第10回
- 宿題の答え
- 答えは否。暗号化に必要な暗号化指数 e と法 p は公開しなければならないが、
e と p-1 を拡張ユークリッドアルゴリズムに入力することによって復号化指数 d が高速に求められるので、
d を秘密鍵とすることができないから。
- 授業内容
- 命題
     p, q : 異なる素数
     n = p×q
     m : p-1 と q-1 の公倍数(公倍数なら何でも良い)
     e, d : ed ≡ 1 ( mod m ) を満たす自然数
ならば、任意の整数 x に対して
     xed ≡ x ( mod n )
- RSA暗号 E : P → C, D : C → P とは:
- 平文集合 P = {0, 1, ..., n-1}
- 暗号文集合 C = {0, 1, ..., n-1}
- 暗号化関数 E(x) = xe % n
- 復号化関数 D(y) = yd % n
- 命題
n と e を知っている者にとって、次のことは計算量的に同値:
- n の素因数 p, q を知ること
- p-1 と q-1 の公倍数 m をひとつ知ること
- 復号化指数 d を知ること
- n, e を公開鍵、p, q, m, d を秘密鍵としてこれは公開鍵暗号になる。
- 高速べき乗法(反復2乗法)
- 破られ易い鍵
- 有名な素数を用いたもの
- p, q がほとんど同じビット数のもの(フェルマ法, H28年度、田中の卒業論文)
- p-1 が小さな素因数しか持たないもの(p-1法)
- p+1 が小さな素因数しか持たないもの(p+1法, H27年度、寺本の卒業論文)
- 有名な素数を用いたもの etc.
- ツボ
- RSA暗号の解読は、素因数分解と同程度に困難である。
- 暗号設計に必須な xe % n の計算は、2乗を巧みに使って高速化できる。
- RSA暗号と言えども、不用意に鍵を作ると危ない。
戻る