1 / 29

RSA 暗号の多変数化と 連立代数方程式

RSA 暗号の多変数化と 連立代数方程式. NTT : コミュニケーション科学基礎研究所 國廣 昇. 1. 概略. 暗号の例 RSA 暗号 Koyama 暗号 RSA 暗号の多変数化 多変数公開鍵暗号の定義 暗号の特徴付け 数論の問題の難しさ 提案されている多変数公開鍵暗号の紹介 多変数 RSA 暗号(その1,その2) Schwenk-Eisfields 暗号 良い暗号とは?. 2. RSA 暗号. 公開鍵: 合成数 n (= pq ), 自然数 e , ただし gcd( e , φ( n ))=1

stockton
Download Presentation

RSA 暗号の多変数化と 連立代数方程式

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. RSA暗号の多変数化と連立代数方程式 NTT: コミュニケーション科学基礎研究所 國廣 昇 1

  2. 概略 • 暗号の例 • RSA暗号 • Koyama暗号 • RSA暗号の多変数化 • 多変数公開鍵暗号の定義 • 暗号の特徴付け • 数論の問題の難しさ • 提案されている多変数公開鍵暗号の紹介 • 多変数RSA暗号(その1,その2) • Schwenk-Eisfields暗号 • 良い暗号とは? 2

  3. RSA暗号 公開鍵: 合成数 n (=pq), 自然数 e, ただし gcd(e, φ(n))=1 秘密鍵: 素数 p, q, 自然数 d, ed≡1 mod φ(n) 平文: 自然数 M (1< M< n) 暗号化: C=Me mod n 暗号文: C 復号: M=Cd mod n Eulerの定理: Med ≡M (mod n)に注意 3

  4. RSA暗号(つづき:攻撃法と別の復号法) 攻撃法1: n を素因数分解する. 攻撃法2: 方程式 xe ≡ C (mod n)を解く. Cの e 乗根を求めることは,n を素因数分解することと同程度難しいと強く予想されている. 別の復号法: 次の方程式を解く.簡単に可能. 4

  5. Koyama暗号 公開鍵: n (=pq), 自然数 e, gcd(e,φ(n))=1 秘密鍵:素数 p,q,自然数 d, ed ≡1 (mod φ(n)) 平文: (M1, M2) , 1 < M1, M2< n 暗号化: 暗号文: (C, a) 復号: 5

  6. Koyama暗号(つづき) 攻撃法1: n を素因数分解する. 攻撃法2: 連立代数方程式を解く. 攻撃法 3: Cのmod n における e 乗根を求める. 攻撃法2 と 3は同じ難しさであることが証明されている. 6

  7. 別の復号法 連立代数方程式を解く. どうやって解くか? Step1: edp ≡1 (mod p-1), edq≡1 (mod q-1) Step2: Cdp mod p, Cdq mod qを計算. Step3: (M1, M2) mod (p, q)を求める. Step4: 中国人剰余定理により (M1, M2)を求める 7

  8. 多変数公開鍵暗号の定義 公開鍵: 合成数 n, t 個の t 変数有理関数 f1(x1, ..., xt), f2(x1, ..., xt), ..., ft(x1, ..., xt) (f1, f2, ..., ft): S1 ⊆ (Z/nZ)t → S2 ⊆ (Z/nZ)t 秘密鍵: p, q 平文 (M1, M2, ..., Mt) ∈ S1 暗号化: 暗号文: (C1, ..., Ct) + 平文の識別子 8

  9. 多変数公開鍵暗号の定義(つづき) 復号:連立代数方程式を解く. mod p, mod qでの解を mod n の解にまとめる. 解が複数ある場合は,「識別子」を頼りに, 平文を求める. 9

  10. 暗号を特徴づけるのは? • 有理関数群 f1, f2, ..., ft をどのように設定するか? • 復号において,どのように連立代数方程式を解くか? • f1, f2, ..., ft は1対1の写像か?(識別子がいるか?) 例えば,Koyama暗号の場合, 10

  11. 攻撃法1: n を素因数分解する. 攻撃法2: 連立方程式をなんとかして解く. 暗号として意味を持つためには, 連立方程式が, • mod p, mod q で解けるが, • mod n では解けない. 11

  12. 数論の問題を解く計算量 • 大きい素数の積の素因数分解は難しい. • xe≡C (mod p)を解くことは,やさしい. • t 次の方程式を mod p 上で解くことは,t がlog pの多項式ならやさしい. • 2次以上の方程式を mod n で解くことは,n を素因数分解することと同じ位難しい. • 連立方程式 f(x)≡0, g(x)≡0 (mod n) が共通解をただ一つ持つならば,その共通解を求めることはやさしい. 12

  13. 数論の問題を解く計算量(つづき) • f(x)≡0 (mod n)を p,q を用いて解くには,一般に次の手順に従う. Step1: f(x)≡0 (mod p), f(x)≡0 (mod q) をそれぞれ解く. Step2: 中国人剰余定理により, mod nでの解を求める. • 一般に,連立代数方程式を解くには,Groebner基底や,終結式を使う.実時間で可能かどうかは,問題に依存する. 13

  14. 多変数RSA暗号その1 公開鍵: n, t 個のt 変数有理関数,ただし, f1(x1,..., xt)=(g(x1, ... ,xt))e, gcd(e,φ(n))=1 条件:与えれたu1, u2, ..., ut に対して,連立方程式 が解を持つならば, • 解は一意に定まる • 解は簡単に求めることができる. 14

  15. 多変数RSA暗号その1(つづき) 暗号化: Ci=fi (M1, M2, ..., Mt) mod n ( 1≦i≦t) 特に,C1=g(M1, ..., Mt)e mod n 復号:連立方程式 を解く. 15

  16. 多変数RSA暗号その1(つづき) 具体的には, Step1: ed≡1 (mod φ(n)) となる d を求める. Step2: C1d を求める. Step3: 連立方程式を解く. これは条件により,簡単に一意に解ける. 16

  17. M1, M2, M3, ..., Mt-1, Mt 簡単に計算可能 g, f2, f3, ..., ft u, C2, C3, ..., Ct-1, Ct できる/できない u を e 乗 C1 (=ue), C2, C3, ..., Ct-1, Ct 直感的に言うと... 17

  18. 多変数RSA暗号その1(つづき) 攻撃法1: 連立方程式 攻撃法2: 方程式 xe≡C1 (mod n) を解く. 攻撃法3: n を素因数分解する. 攻撃法1と2は同じ難しさである. 18

  19. 多変数RSA暗号その2 連立方程式 の解は一意に定まり,なおかつ (x1, ..., xt) = (h1(u1, ..., ut), ... , ht(u1,..., ut)) で表される.h1, ..., ht は有理関数で値の 評価が簡単にできる. 19

  20. 多変数RSA暗号その2 (つづき) 暗号化: Ci=fi (M1, M2, ..., Mt) mod n (1≦i≦t) 特に,C1=g(M1, ..., Mt)e mod n 復号: Step1: ed≡1 (mod φ(n)) となる d を求める. Step2: C1d mod n を計算. Step3: Mi=hi(C1d, C2, ..., Ct) mod n (1≦i≦t) 20

  21. Koyama暗号の場合は 21

  22. Schwenk-Eisfields暗号 暗号化関数 fi を次のように定義 fi(x1, ..., xt)=(異なる i 個のxj の積の和) たとえば,t=3 の時, f1(x1, x2, x3)=x1+x2+x3 f2(x1, x2, x3)=x2x3+x3x1+x1x2 f3(x1, x2, x3)=x1x2x3 22

  23. Schwenk-Eisfields暗号(つづき) 暗号化: C1= f1 (M1, M2, M3) = M1+M2+M3 mod n C2= f2 (M1, M2, M3) = M2M3+M3M1+M1M2 mod n C3= f3 (M1, M2, M3) = M1M2M3 mod n 暗号文: (C1, C2, C3) + 平文の識別子 復号: x2, x3を消去して x13-C1x12+C2x1-C3≡0 (mod p,q)を解く. 解は複数個あるので,識別子を用いて解を特定. 23

  24. 良い暗号とは? これまで提案されている全ての暗号は, 一変数の方程式を解く困難さに安全性の根拠を置いている. 暗号を2つに大別する. • RSA, Koyama, 多変数RSA暗号 • Schwenk-Eisfields暗号, (Rabin暗号) これは, • 識別子がいらないか/いるか? • 解く方程式がxe≡Cであるか/ないか? • 解が一意に決定するか/しないか? 24

  25. 識別子が無い方が良い. • どのように識別子を設定したらよいのか. • 識別子を送ることにより,解読されやすくなるかもしれない. • 解がたくさんあると解読されやすくなる. • 解を求めるのが面倒. 25

  26. いろいろな攻撃(その1) 部分情報に関する安全性 多変数 RSA暗号その2を例に 定理1: 平文の一部分(例えば,M1)が攻撃者に知られた時,平文は全て解読される. 証明のスケッチ: を解く.これは,簡単に解ける. • 多変数RSA暗号その1, Schwenk-Eisfields暗号の場合には,同様の攻撃はできないようである. 26

  27. いろいろな攻撃(その2) 定理2: 一回目に(M1, ..., Mt), 二回目に(M1’, ..., Mt’)を送ったとする.ただし,Mi=Mj’とする.攻撃者がこの事実を知っている時, 攻撃者は,全ての平文(M1, ..., Mt), (M1’, ... , Mt’) を求めることができる. 証明のスケッチ: 解くべき連立方程式は, 27

  28. 速度評価 多変数RSA暗号その2の場合 g(M1, ..., Mt), f2(M1, ..., Mt), ..., ft(M1, ..., Mt) の総計算時間を T1 e 乗演算に要する計算時間を T2 とする. 暗号化に要する計算時間は,T1+T2 RSA暗号を t 回実行する計算時間は, tT2 T1+T2 ≦t T2ならば,高速化が実現できる. 28

  29. まとめ f1, f2, ..., ft を決定する⇒ (形式的に) 暗号を一つ提案 最低条件: • 公開鍵から,秘密鍵は知られない. • 公開鍵と暗号文から平文が知られない. みたしてほしい条件 • 暗号化,復号が(少なくともRSAより)高速. • 色々な攻撃に対して強い. 29

More Related