Q q 情報セキュリティ 第5回:2006年5月19日(金) q q.

Slides:



Advertisements
Similar presentations
1 前回の練習問題 F 29 = {1, 2,…, 28} において, g = 11 が生成元であることを確 かめ, F 29 の元とその離散対数との関係を図示せよ. x = 1,..., 28 に対し, g x mod 29 を計算すればよい
Advertisements

香川大学工学部 富永浩之 情報数学1 第1-1章 除法定理と整除演算 香川大学工学部 富永浩之
香川大学工学部 富永浩之 情報数学1 第1-1章 除法定理と整除演算 香川大学工学部 富永浩之
情報工学科 06A2055 平塚 翔太 Hiratsuka Shota
黒澤 馨 (茨城大学) 情報セキュリティ特論(4) 黒澤 馨 (茨城大学) 2017/3/4 confidential.
香川大学工学部 富永浩之 情報数学1 第1-2章 最大公約数とユークリッドの互除法 香川大学工学部 富永浩之
Q q 情報セキュリティ 第6回:2005年5月20日(金) q q.
データ構造と アルゴリズム 理工学部 情報システム工学科 新田直也.
黒澤 馨 (茨城大学) 情報セキュリティ特論(6) 黒澤 馨 (茨城大学) 2017/3/13 confidential.
「まめだくん Ver.1.0」 特徴と利用方法.
データ構造と アルゴリズム 第二回 知能情報学部 新田直也.
香川大学工学部 富永浩之 情報数学1 第2-2章 合同式の逆元と応用 香川大学工学部 富永浩之
香川大学工学部 富永浩之 情報数学1 第2-1章 合同式の性質と計算 香川大学工学部 富永浩之
共通鍵と公開鍵 暗号のしくみ 情報、数学ハイブリッド版.
データ構造と アルゴリズム 知能情報学部 新田直也.
数 学 の か た ち 第3講 暗号を作ろう 早苗 雅史 数学とソフトウエア
黒澤 馨 (茨城大学) 情報セキュリティ特論(7) 黒澤 馨 (茨城大学)
Q q 情報セキュリティ 第14回:2006年7月21日(金) (2006年8月17日(木)改訂) q q.
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
暗号技術 ~公開鍵暗号方式の仕組み~ (3週目)
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
第10回 情報セキュリティ 伊藤 高廣 計算機リテラシーM 第10回 情報セキュリティ 伊藤 高廣
黒澤 馨 (茨城大学) 情報セキュリティ特論(5) 黒澤 馨 (茨城大学)
博士たちの愛する素数 徳山 豪 東北大学 Prime numbers that professors love
Q q 情報セキュリティ 第3回:2005年4月28日(金) q q.
Q q 情報セキュリティ 第3回:2005年4月22日(金) q q.
数学のかたち 暗号を作ろう Masashi Sanae.
Q q 情報セキュリティ 第12回:2006年7月7日(金) q q.
Q q 情報セキュリティ 第5回:2005年5月13日(金) q q.
Q q 情報セキュリティ 第14回:2005年7月15日(金) q q.
Q q 情報セキュリティ 第4回:2007年5月11日(金) q q.
情報セキュリティ  第4回 メッセージ認証コード.
第二章 インターネットで やり取りする情報を守る
実用的暗号通信ソフトウェア 「まめだくん」の開発 Shiota Laboratory
情報セキュリティ  第11回 デジタル署名.
情報セキュリティ  第8回 RSA暗号.
2章 暗号技術 FM15002 友池 絲子.
5.RSA暗号 素因数分解の困難性を利用した暗号.
計算機構成 第2回 ALUと組み合わせ回路の記述
Q q 情報セキュリティ 第8回:2005年6月3日(金) q q.
Q q 情報セキュリティ 第7回:2006年6月2日(金) q q.
Q q 情報セキュリティ 第7回:2007年6月1日(金) q q.
Q q 情報セキュリティ 第6回:2007年5月25日(金) q q.
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
9.通信路符号化手法1 (誤り検出と誤り訂正の原理)
Q q 情報セキュリティ 第4回:2005年5月12日(金) q q.
11.再帰と繰り返しの回数.
Q q 情報セキュリティ 第9回:2006年6月16日(金) q q.
「情報セキュリティ論」 2-4 公開鍵暗号の原理とRSA暗号
Q q 情報セキュリティ 第9回:2007年6月15日(金) q q.
香川大学創造工学部 富永浩之 情報数学1 第1-3章 素数と素因数分解 香川大学創造工学部 富永浩之
香川大学創造工学部 富永浩之 情報数学1 第1-2章 最大公約数とユークリッドの互除法 香川大学創造工学部 富永浩之
代数体上で定義された楕円曲線の 素因数分解への応用
補講:アルゴリズムと漸近的評価.
Diffie-Hellman 鍵共有 ElGamal 暗号 楕円曲線暗号,量子コンピュータ
香川大学工学部 富永浩之 情報数学1 第1-2章 最大公約数とユークリッドの互除法 香川大学工学部 富永浩之
Q q 情報セキュリティ 第12回:2004年6月25日(金) の補足 q q.
計算機プログラミングI 第4回 2002年10月31日(木) 問題解決とアルゴリズム クラスメソッドと手続きの抽象化 最大公約数
Q q 情報セキュリティ 第14回:2007年7月20日(金) q q.
香川大学創造工学部 富永浩之 情報数学1 第2-1章 合同式の性質と計算 香川大学創造工学部 富永浩之
情報処理Ⅱ 2006年11月24日(金).
情報処理Ⅱ 2005年10月28日(金).
Q q 情報セキュリティ 第6回:2005年5月26日(金) q q.
情報実習I (第1回) 木曜4・5限 担当:北川 晃.
Q q 情報セキュリティ 第8回:2004年5月28日(金) の補足 q q.
暗号技術・セキュリティ 情報工学科  04A1004 石川 真悟.
香川大学創造工学部 富永浩之 情報数学1 第2-2章 合同式の逆元と応用 香川大学創造工学部 富永浩之
Q q 情報セキュリティ 第7回:2005年5月27日(金) q q.
香川大学創造工学部 富永浩之 情報数学1 第3-3章 多進法での四則演算 香川大学創造工学部 富永浩之
創造都市研究科 都市情報学 情報基盤研究分野
Presentation transcript:

q q 情報セキュリティ 第5回:2006年5月19日(金) q q

本日学ぶこと 鍵の管理 公開鍵暗号 RSA暗号アルゴリズム

本日の授業で学ぶ語句 鍵配送問題,鍵の事前共有 公開鍵暗号,公開鍵,プライベート鍵,鍵ペア RSA 数論アルゴリズム,べき剰余,拡張ユークリッドの互除法 対称暗号で鍵の事前共有をすると,鍵の数は O(n2) 公開鍵暗号なら,O(n) RSAは暗号化も復号も,べき剰余

対称暗号をどう使う? 共通鍵暗号は,暗号化の鍵=復号の鍵 鍵はいくつ必要? 2人なら1個 3人ならそれぞれ2個,全体で3個 4人ならそれぞれ3個,全体で6個 n人ならそれぞれn-1個,全体でn(n-1)/2個 1000人ならそれぞれ999個,全体で約50万個 新規加入者は(それまでの)人数分の相異なる鍵を作って 配布しないといけない…できる??

公開鍵暗号の特徴(1) 管理すべき鍵の個数を減らせる n人ならそれぞれ1組,全体でn組

公開鍵暗号の特徴(2) 鍵一つあたりのビット長は長くなる 暗号アルゴリズム 種類 鍵長 ブロック長 DES 対称 56 64 トリプルDES 処理時間もかかる 暗号アルゴリズム 種類 鍵長 ブロック長 DES 対称 56 64 トリプルDES 112, 168 AES 128, 192, 256 128 RSA 公開鍵 512~2048 ≦鍵長 楕円曲線暗号 160~256

RSAを支えるもの アルゴリズム 安全性 暗号化・復号 鍵生成 整数に対する加減乗除,剰余,べき剰余 ユークリッドの互除法とその拡張 乱数生成 素数判定 安全性 素因数分解 離散対数問題 少し先 暗号化・復号 鍵生成 次回

アルゴリズムの書き方・読み方 「入力」「出力」「手順(アルゴリズム)」の順に書く. 代入と比較を区別する. このスライドでは「←」と「=」 C言語では「=」と「==」 手順では適切に番号を振り,「…へ進む」「…へ戻る」という形でジャンプ先を明記する. 処理を終えるときは「…を出力して終了する」と書く. 「…を出力する」のみだと,まだ終了しないと考える. 書く人は簡単に検証できる例を添えておく. 読む人は最低限,その例でうまくいくことを確認する.

整数に対する加減乗除と剰余 加算 減算 乗算 除算 剰余 注意点 入力:整数x, y 出力:x+y 出力:x-y 出力:x*y 入力:整数x, y (y>0) 出力:x/y (xをyで割った商) 剰余 入力:整数x, y (y>0) 出力:x%y (xをyで割った余り) 注意点 いずれも自明なのでアルゴリズムは省略 x, yがともにNビットのとき 加減算の結果は 最大N+1ビット 乗算の結果は最大2Nビット 除算と剰余の結果は 最大Nビット

modについて このスライドでは字数を減らすため,剰余の演算子には「%」を使用している. 「モッド」または「モジュロ」と読む. このスライド,および教科書では,もっぱら2項演算子として使用している. 2項関係としてmodを使う本も多い. 例: 5≡-1 (mod 2) 「5 合同 -1 モッド 2」または「5 合同 -1 モジュロ 2」と読む. この式は「5 % 2 = -1 % 2」,「5-(-1) が 2 で割り切れる」, 「5-(-1)=2k を満たす整数 k が存在する」と同値.

乗除算の注意 5を2で割ったとき,商は2,余りは1 -5 を2で割ったときの商と余りは? 商と剰余の基本要件 商と剰余の追加要件 候補1:商は-2,余りは-1 候補2:商は-3,余りは1 商と剰余の基本要件 aをbで割ったときの商が q,余りが r のとき,a = q * b + r 0≦|r|<|b| 商と剰余の追加要件 a = q * b + r ⇔ (-a) = (-q) * b + (-r).すなわち余りの符号は 除数と被除数に依存する. b>0 のときは 0≦r<b.すなわち余りは常に非負. RSAの計算では を採用 -6 -5 -4 -3 -2 -1 C処理系の多くで採用

べき乗(べき剰余の準備として) 入力:正整数a,非負整数b 出力:ab アルゴリズム 例 計算効率は? 「%2」と「/2」の計算は, ビット演算を使用する! 入力:正整数a,非負整数b 出力:ab アルゴリズム Step 1. r ← 1, s ← a, t ← b とする. Step 2. t=0 ならば,Step 5へ進む. Step 3. t%2=1 ならば,r ← r*s とする. Step 4. s ← s*s, t ← t / 2 とし,Step 2へ戻る. Step 5. r を出力して終了する. 例 a=3, b=10 のとき, ab= 38×32=59049 計算効率は? 乗算回数は最大で 2×(bのビット数)

べき剰余 入力:正整数a,非負整数b,正整数m 出力:ab % mとなる整数値 アルゴリズム 例 なぜこれでうまくいくのか? Step 1. r ← 1, s ← a, t ← b とする. Step 2. t=0 ならば,Step 5へ進む. Step 3. t%2=1 ならば,r ← r*s % m とする. Step 4. s ← s*s % m, t ← t / 2 とし,Step 2へ戻る. Step 5. r を出力して終了する. 例 a=225, b=29, m=323 のとき, ab % m=123 なぜこれでうまくいくのか? (x * y) % m = (x % m) * (y % m) % m だから

RSA暗号アルゴリズム 暗号化 復号 暗号化と復号の関係 平文: 整数M (0≦M<N) 公開鍵: 整数E,N 暗号化: C=ME%N 暗号文: 整数C (0≦C<N) プライベート鍵: 整数D,N 復号: M=CD%N 暗号化と復号の関係 任意の平文M (0≦M<N)に対して,(ME%N)D%N=M (MD%N)E%N=Mも成立し,ディジタル署名で利用される

最大公約数 「互助法」ではない 入力:正整数a, b 出力:最大公約数 gcd(a,b) アルゴリズム(ユークリッドの互除法) 例 Step 1. r←a%b とする. Step 2. r=0 ならば,Step 4へ進む. Step 3. a←b, b←r として,Step 1へ戻る. Step 4. bを出力して終了する. 例 a=144, b=5のとき,gcd(a,b)=1

最小公倍数 入力:正整数a, b 出力:最小公倍数 lcm(a,b) = a * b / gcd(a,b)

拡張ユークリッドの互除法 入力:正整数a, b 出力:a*x+b*y=gcd(a,b)を満たす整数x, y アルゴリズム 例 一般に無限個ある中の 1組 入力:正整数a, b 出力:a*x+b*y=gcd(a,b)を満たす整数x, y アルゴリズム Step 1. s←a, t←b, u←0, v←1 とする. Step 2. q←s/t, r←s%t(=s-q*t), w←u-q*v とする. Step 3. r=0ならば,Step 5へ進む. Step 4. s←t, t←r, u←v, v←w として,Step 2へ戻る. Step 5. (t-b*v)/a, v を出力して終了する. 例 a=1440, b=50のとき,x=-1, y=29.実際, 1440*(-1)+50*29 = 10 = gcd(1440,50) である. なぜこれでうまくいくのか? b*v % a = t % aだから s,t は常に正 q,r は非負 u,v,w は負も取り得る いずれも常に整数 gcd(a,b) = t y = v

拡張ユークリッドの互除法の応用 入力:正整数a, n 出力:a*b % n = 1, 0<b<n を満たす整数b アルゴリズム 「nを法とするaの逆数」ともいう.a, n から一意に定まる. 入力:正整数a, n 出力:a*b % n = 1, 0<b<n を満たす整数b アルゴリズム Step 1. gcd(a,n)>1ならば,「解なし」を出力して終了する. Step 2. a, nを入力として拡張ユークリッドの互除法を適用し,その出力をx, yに代入する. Step 3. x%n を出力して終了する. 例 a=5, n=144のとき,b=29.実際, 5*29 % 144 = 145 % 144 = 1である. Step 1では,a と n が 互いに素でない場合の 例外処理をしている. (互いに素 ⇔ gcd(a,n)=1)