Q q 情報セキュリティ 第6回:2005年5月20日(金) 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 線形代数学. 2 履修にあたって 電子情報システム学科 必修 2005 年度1セメスタ開講 担当 草苅良至 (電子情報システム学科) 教官室: G I 511 内線: 2095 質問等は上記のいずれかに行なうこと。 注意計算用のノートを準備すること。
香川大学工学部 富永浩之 情報数学1 第1-1章 除法定理と整除演算 香川大学工学部 富永浩之
香川大学工学部 富永浩之 情報数学1 第1-1章 除法定理と整除演算 香川大学工学部 富永浩之
演算、整数型と浮動小数点型 第3回目 [4月27日、H.16(‘04)] 本日のメニュー 1)前回の課題・宿題 2)ファイルサーバの利用
黒澤 馨 (茨城大学) 情報セキュリティ特論(4) 黒澤 馨 (茨城大学) 2017/3/4 confidential.
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公
コンパイラ 2011年10月17日
Problem J Tile Puzzle 原案:野田 担当:平野,吉田,泉,松本.
配列(2) 第10回[平成15年6月26日(木)]:PN03-10.ppt 今日の内容 1 素数を求める(教科書の例):復習
香川大学工学部 富永浩之 情報数学1 第1-2章 最大公約数とユークリッドの互除法 香川大学工学部 富永浩之
データ構造と アルゴリズム 理工学部 情報システム工学科 新田直也.
1. アルゴリズムと計算量.
データ構造と アルゴリズム 第二回 知能情報学部 新田直也.
香川大学工学部 富永浩之 情報数学1 第2-2章 合同式の逆元と応用 香川大学工学部 富永浩之
香川大学工学部 富永浩之 情報数学1 第2-1章 合同式の性質と計算 香川大学工学部 富永浩之
共通鍵と公開鍵 暗号のしくみ 情報、数学ハイブリッド版.
データ構造と アルゴリズム 知能情報学部 新田直也.
コンパイラ 2012年10月15日
Q q 情報セキュリティ 第14回:2006年7月21日(金) (2006年8月17日(木)改訂) q q.
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
暗号技術 ~公開鍵暗号方式の仕組み~ (3週目)
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
博士たちの愛する素数 徳山 豪 東北大学 Prime numbers that professors love
高速剰余算アルゴリズムとそのハードウェア実装についての研究
Q q 情報セキュリティ 第14回:2005年7月15日(金) q q.
電気・機械・情報概論 VBAプログラミング 第2回 2018年7月2日
情報セキュリティ  第4回 メッセージ認証コード.
情報セキュリティ  第11回 デジタル署名.
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
情報セキュリティ  第8回 RSA暗号.
トーリックイデアルの グレブナ基底を求める アルゴリズム – F4およびF5 –
5.RSA暗号 素因数分解の困難性を利用した暗号.
計算機構成 第2回 ALUと組み合わせ回路の記述
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Q q 情報セキュリティ 第8回:2005年6月3日(金) q q.
Q q 情報セキュリティ 第7回:2006年6月2日(金) q q.
Q q 情報セキュリティ 第6回:2007年5月25日(金) q q.
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
9.通信路符号化手法1 (誤り検出と誤り訂正の原理)
情報処理Ⅱ 第2回:2003年10月14日(火).
11.再帰と繰り返しの回数.
コンパイラ 2011年10月20日
生物情報ソフトウェア特論 (2)たたみ込みとハッシュに 基づくマッチング
香川大学創造工学部 富永浩之 情報数学1 第1-3章 素数と素因数分解 香川大学創造工学部 富永浩之
香川大学創造工学部 富永浩之 情報数学1 第1-2章 最大公約数とユークリッドの互除法 香川大学創造工学部 富永浩之
補講:アルゴリズムと漸近的評価.
Diffie-Hellman 鍵共有 ElGamal 暗号 楕円曲線暗号,量子コンピュータ
Q q 情報セキュリティ 第5回:2006年5月19日(金) q q.
香川大学工学部 富永浩之 情報数学1 第1-2章 最大公約数とユークリッドの互除法 香川大学工学部 富永浩之
計算機プログラミングI 第4回 2002年10月31日(木) 問題解決とアルゴリズム クラスメソッドと手続きの抽象化 最大公約数
香川大学創造工学部 富永浩之 情報数学1 第2-1章 合同式の性質と計算 香川大学創造工学部 富永浩之
情報処理Ⅱ 2006年11月24日(金).
情報処理Ⅱ 2005年10月28日(金).
Q q 情報セキュリティ 第6回:2005年5月26日(金) q q.
情報実習I (第1回) 木曜4・5限 担当:北川 晃.
コンパイラ 2012年10月11日
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
Q q 情報セキュリティ 第8回:2004年5月28日(金) の補足 q q.
香川大学創造工学部 富永浩之 情報数学1 第2-2章 合同式の逆元と応用 香川大学創造工学部 富永浩之
情報生命科学特別講義III (3)たたみ込みとハッシュに 基づくマッチング
情報処理Ⅱ 第2回 2004年10月12日(火).
情報処理Ⅱ 2005年11月25日(金).
Q q 情報セキュリティ 第7回:2005年5月27日(金) q q.
情報処理Ⅱ 小テスト 2005年2月1日(火).
香川大学創造工学部 富永浩之 情報数学1 第3-3章 多進法での四則演算 香川大学創造工学部 富永浩之
情報処理Ⅱ 第3回 2004年10月19日(火).
情報処理Ⅱ 2006年10月20日(金).
情報処理Ⅱ 2006年10月27日(金).
グラフの帯域幅連続多重彩色 を求めるアルゴリズム (Bandwidth Consective Multicolorings of Graphs) 西関研究室 西川和秀.
Presentation transcript:

q q 情報セキュリティ 第6回:2005年5月20日(金) q q

本日学ぶこと RSAのアルゴリズム RSAの安全性 暗号アルゴリズムのその他の話題 剰余演算,べき剰余 ユークリッドの互助法とその拡張 素数判定 RSAの安全性 素因数分解 離散対数問題 暗号アルゴリズムのその他の話題 ハイブリッド暗号 ブロック暗号モード 次回

本日のスライドで理解してほしいこと RSAの鍵生成に関するより詳細な計算方法 アルゴリズムの書き方 アルゴリズムを書く問題は試験に出さない アルゴリズムを適用して計算する問題は試験に出すかも

RSAに必要な計算 整数に対する加減乗除と剰余 べき剰余 最大公約数と最小公倍数 拡張ユークリッドの互助法 乱数生成…5月20日,27日の授業では扱わない 素数生成(素数判定)…5月27日の授業で解説

アルゴリズムの書き方・読み方 「入力」「出力」「手順(アルゴリズム)」の順に書く. 代入と比較を区別する. ここでは「←」と「=」 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 だから

最大公約数 入力:正整数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だから 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)

効率の良いアルゴリズム・悪いアルゴリズム 処理時間が,入力の値のビット数 L と適当な定数 C,k を 用いて C・Lk で抑えられるならば,効率が良い. 多項式時間アルゴリズムと呼ばれる. 処理時間が,入力の値に比例するならば,効率が悪い. 例1:a % m, a2 % m, …, ab % m の順にべき剰余を求める. 例2: a*b % n = 1 を満たす整数 b を,b←1, 2, … と順に 代入して求める. 入力の値のビット数を L とすると,2L に比例するため, 指数時間アルゴリズムと呼ばれる.