暗号技術 ~対称暗号方式の仕組み~ (2週目)

Slides:



Advertisements
Similar presentations
情報セキュリティ 第3回 現代暗号の基礎数理. 脅威と暗号技術 セキュリティに対する脅威 脅かされる特性 暗号技術 機密性 正真性 認証 否認不可能性 盗聴 (秘密が漏れる) 改竄 (情報が書き換えられる) なりすまし (正しい送信者のふりをする) 否認 (後から私じゃないと言う) 共通鍵暗号 公開鍵暗号.
Advertisements

効率的に計算可能な 加法的誤りの訂正可能性 安永 憲司 九州先端科学技術研究所 SITA 2012 @ 別府湾ロイヤルホテル
区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム
富山大学 公開講座 2008 「QRコードを作ろう!」 ~ QRコードを作ろう! ~.
2000年 3月 10日 日本電信電話株式会社 三菱電機株式会社
セキュアネットワーク符号化構成法に関する研究
情報工学科 06A2055 平塚 翔太 Hiratsuka Shota
黒澤 馨 (茨城大学) 情報セキュリティ特論(4) 黒澤 馨 (茨城大学) 2017/3/4 confidential.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
黒澤 馨 (茨城大学) 情報セキュリティ特論(6) 黒澤 馨 (茨城大学) 2017/3/13 confidential.
デジタル情報学概論 2009年10月22日 第4回資料 担当 重定 如彦.
第5章 情報セキュリティ(後半) [近代科学社刊]
パスワードをつけよう! ~ワード・エクセル・一太郎 ・その他(アタッシェケース)~
「まめだくん Ver.1.0」 特徴と利用方法.
第2章 第1節 情報通信の仕組み 4 暗号技術と情報の保護 5 コンピュータとネットワークの管理
情報化が社会に及ぼす影響 情報セキュリティの確保
2012年度 情報数理 ~ QRコードを作ろう!(1) ~.
2008年度 情報数理 ~ QRコードを作ろう!(1) ~.
数 学 の か た ち 第3講 暗号を作ろう 早苗 雅史 数学とソフトウエア
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
高山建志 五十嵐健夫 テクスチャ合成の新たな応用と展開 k 情報処理 vol.53 No.6 June 2012 pp
10.通信路符号化手法2 (誤り検出と誤り訂正符号)
黒澤 馨 (茨城大学) 情報セキュリティ特論(7) 黒澤 馨 (茨城大学)
2010年度 情報数理 ~ QRコードを作ろう!(1) ~.
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
暗号技術 ~公開鍵暗号方式の仕組み~ (3週目)
デジタル情報学概論 2008年10月16日 第4回資料 担当 重定 如彦.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第6章 連立方程式モデル ー 計量経済学 ー.
情報化が社会に及ぼす影響 情報セキュリティの確保
第10回 情報セキュリティ 伊藤 高廣 計算機リテラシーM 第10回 情報セキュリティ 伊藤 高廣
Q q 情報セキュリティ 第3回:2005年4月28日(金) q q.
Q q 情報セキュリティ 第3回:2005年4月22日(金) q q.
数学のかたち 暗号を作ろう Masashi Sanae.
Q q 情報セキュリティ 第5回:2005年5月13日(金) q q.
Q q 情報セキュリティ 第8回:2006年6月9日(金) q q.
Q q 情報セキュリティ 第4回:2007年5月11日(金) q q.
共通暗号方式 共通のキーで暗号化/復号化する方法 例) パスワードつきのZIPを送信して、後からパスワードを送る方法 A さん B さん
情報セキュリティ  第4回 メッセージ認証コード.
第二章 インターネットで やり取りする情報を守る
PGP インターネットで 広く使われている暗号技術
情報セキュリティ  第11回 デジタル署名.
Linux リテラシ 2006 第5回 SSH と SCP CIS RAT.
2章 暗号技術 FM15002 友池 絲子.
コンピュータの基本構成について 1E16M001-1 秋田梨紗 1E16M010-2 梅山桃香 1E16M013-3 大津智紗子
 情報の授業 アルゴリズムとプログラム(1) Go.Ota.
武藤研究室セキュリティー藩暗号犯メンバー 環境情報学部4年 櫻井 環境情報学部3年 秋本 環境情報学部3年 堀田 環境情報学部2年 卯野木
5.RSA暗号 素因数分解の困難性を利用した暗号.
Q q 情報セキュリティ 第8回:2005年6月3日(金) q q.
暗号技術 ~暗号技術の基本原理~ (1週目) 情報工学科  04A1004 石川 真悟.
Q q 情報セキュリティ 第4回:2005年5月12日(金) q q.
Intel SGXを用いた仮想マシンの 安全な監視機構
コミュニケーションと ネットワークを探索する
Cell/B.E.のSPE Isolationモードを用いた監視システム
自己組織化マップ Self-Organizing Map SOM
Diffie-Hellman 鍵共有 ElGamal 暗号 楕円曲線暗号,量子コンピュータ
暗号技術 ~JAVAプログラム②~ (6週目)
クローン検出ツールを用いた ソフトウェアシステムの類似度調査
分枝カット法に基づいた線形符号の復号法に関する一考察
ネット時代のセキュリティ3(暗号化) 2SK 情報機器工学.
確率的フィルタリングを用いた アンサンブル学習の統計力学 三好 誠司 岡田 真人 神 戸 高 専 東 大, 理 研
ネットワークプログラミング 05A1302 円田 優輝.
暗号技術・セキュリティ 情報工学科  04A1004 石川 真悟.
電子投票班 (電子オークション班) 後藤研究室 大木島 航.
データの改竄を防ぐ仕組み 2002/9/12 牧之内研究室「インターネット実習」Webページ
線形符号(10章).
Q q 情報セキュリティ 第7回:2005年5月27日(金) q q.
CSS符号を用いた量子鍵配送の安全性についての解析
創造都市研究科 都市情報学 情報基盤研究分野
Presentation transcript:

暗号技術 ~対称暗号方式の仕組み~ (2週目) 暗号技術 ~対称暗号方式の仕組み~ (2週目) 情報工学科  04A1004 石川 真悟

対称暗号(共通鍵暗号) ストリーム暗号 ブロック暗号 DES(米国標準の暗号技術) トリプルDES(DESを強化したもの) AES/Rijndael(DESに代わる新しい米国標準暗号技術)

ストリーム暗号(逐次暗号) 同じ鍵を使って平文を1ビット、または8ビット(1バイト)単位で逐次的に暗号化。 例えば、鍵の長さが32ビットあっても、暗号化処理の単位は1ビットまたは8ビット(1バイト)単位になる。 平文のデータがなくなるまで、8ビット単位で繰り返し処理が行われる。

ストリーム暗号の処理例(32ビット) 10101010 10101010 10101010 10101010 + + + + 8ビット 8ビット 8ビット 8ビット 平文 10101010 10101010 10101010 10101010 + + + + 鍵 11111111 11111111 11111111 11111111 処理1 処理1 処理2 処理3 処理4 01010101 01010101 01010101 01010101 暗号文

ストリーム暗号の特徴 同じ処理を繰り返すだけなので、平文と暗号文の対応関係から鍵の情報を解読することが、比較的容易にできる。⇒できるだけ頻繁に鍵を変える必要がある。 鍵を生成する際には、できるだけ複雑な乱数を生成する必要がある。 ストリーム暗号は乱数を使った鍵の生成が、とても高速に処理できる。⇒音声通話、データ通信の暗号化方式として多く用いられる。 ストリーム暗号の1つに、バーナム暗号がある。 バーナム暗号は、乱数を使って平文と同じ長さの鍵を生成し、この鍵は1回利用する毎に完全に使い捨てる。このため、バーナム暗号は理論的には解読不可能とされている。ただし、鍵の生成処理や鍵の受け渡し、鍵の保管など解決されていない多くの課題があるために実用化されていない。 近年のストリーム暗号は、特定の長さで鍵を生成するため、バーナム暗号に比べて暗号強度が低いものの、実用的な暗号化方式として一般に利用されている。

ブロック暗号 同じ鍵を使って平文を一定のビットのまとまりごとに暗号化する。この一定のビットのまとまりをブロックと呼び、1つのブロックの長さをブロック長と呼ぶ。 ストリーム暗号との違い⇒ストリーム暗号は同じ暗号化処理を行なうのに対しブロック暗号は、換字暗号や転置暗号と呼ばれる暗号化処理をブロック毎に複雑に組み合わせて暗号化処理を行なう。

ブロック暗号の処理例(64ビット) 101010・・・10 101010・・・10 101010・・・10 + + + 64ビット 64ビット 64ビット 平文 101010・・・10 101010・・・10 101010・・・10 + + + 鍵 111111・・・11 111111・・・11 11111・・・111 処理1(換字暗号) 処理2(転置暗号) 処理3(換字暗号) 010101・・・01 010101・・・01 010101・・・01 暗号文

ブロック暗号の特徴 ブロック毎に換字暗号や転置暗号といった異なった暗号化を複雑に組み合わせて処理を行なうため、一部のブロックの平文と暗号文の対応関係がわかったとしても、鍵の情報を簡単に解読できない。 最も暗号強度が高いブロック暗号は、平文の途中1ビットが正しく変換されなかった場合、このビット以降の暗号文全体に影響して、平文と暗号文の関係を見つけられなくする。 近年のブロック暗号は、これに近い暗号強度を持っているため、暗号解読は、現実的な時間内では困難。 しかし、近年のコンピュータの性能が飛躍的に向上しているので、解読処理にかかる時間が短縮されつつある。よって、コンピュータの性能が向上するにつれて、鍵の長さをさらに長くしたり、暗号化の組み合わせをさらに複雑にするといった対処が必要。

ブロック暗号はブロックごとに暗号化処理を行なうが、処理の順番や方法がいくつかある。この処理の方法をモードと呼ぶ。 ブロック暗号のモード ブロック暗号はブロックごとに暗号化処理を行なうが、処理の順番や方法がいくつかある。この処理の方法をモードと呼ぶ。 モード 名称 説明 ECBモード 電子符号表モード 平文ブロックを最初から順番にそのまま暗号化する。シンプルだが、弱点があるため、あまり使われていない。 CBCモード 暗号ブロック連鎖モード 1つ前の暗号文ブロックと平文ブロックの内容を混ぜ合わせてから暗号化を行なう。 CFBモード 暗号フィードバックモード 1つ前の暗号化ブロックを暗号アルゴリズムの入力に戻して暗号化し、平文ブロックの内容と混ぜ合わせる。 OFBモード 出力フィードバックモード 1つ前の暗号化の出力を暗号アルゴリズムの入力に戻して暗号化し、平文ブロックの内容と混ぜ合わせる。 CTRモード カウンタモード 1ずつ増加していくカウンタを暗号化して、鍵ストリームを作り出し、平文ブロックの内容と混ぜ合わせる。

ECBモード ECBモードの暗号化 ECBモードの復号化 平文 暗号文 平文 ブロック1 平文 ブロック2 平文 ブロック3 暗号文 ECBモードで暗号化すると平文ブロックと暗号文ブロックは一対一の関係の対応表ができる。このことから、ECBモードは電子符号表モードと呼ばれる。 平文ブロックを最初から順番に暗号化し最後の平文ブロックがブロック長に満たない場合、パディングと呼ばれるダミーのデータを埋め込み、暗号化処理が行なわれる。 ECBモードの暗号化 ECBモードの復号化 平文 暗号文 平文 ブロック1 平文 ブロック2 平文 ブロック3 暗号文 ブロック1 暗号文 ブロック2 暗号文 ブロック3 ・・・ ・・・ 暗号化 暗号化 暗号化 ・・・ 復号化 復号化 復号化 ・・・ 暗号文 平文 暗号文 ブロック1 暗号文 ブロック2 暗号文 ブロック3 平文 ブロック1 平文 ブロック2 平文 ブロック3 ・・・ ・・・ 弱点・・・どれか1つの平文ブロックと暗号文ブロックの関係を解析できてしまうと、ここから鍵の情報がわかってしまい、他のブロックも解読される。また、ブロックの長さがわかってしまうと、暗号文ブロックを入れ替えるだけで、巧妙に情報を改竄できる。暗号文ブロックを入れ替えると、復号化では正常に処理ができる。

CBCモード 1つ前の暗号文ブロックと平文ブロックの内容を混ぜ合わせてから、さらに暗号化を行なう。ブロックがチェーンのように連携していくため、暗号ブロック連鎖モードと呼ばれる。 最初の平文ブロックを暗号化するときには、1つ前の暗号化ブロックがないため、この暗号ブロックの代わりに、初期化ベクトルと呼ばれる特別なビット列のブロックを用意する必要がある。初期化ベクトルは、暗号化のたびに変化させることで暗号強度を高くすることができる。 CBCモードは、必ず1つ前の暗号文ブロックと平文ブロックの内容を混ぜ合わせてから、さらに暗号化するため、平文ブロック1と平文ブロック2の値が等しくても、暗号化ブロック1と暗号化ブロック2の値が等しくなるとは限らない。 また、途中のブロックだけ抜き出しても解読することはできない。例えば、暗号ブロック3を解読したい場合には、初期化ベクトルと解読を終えた平文ブロック1と平文ブロック2が必要になる。このため、CBCモードは解読が難しいのが特徴。

CBCモードの暗号化・復号化 CBCモードの暗号化 CBCモードの復号化 平文 暗号文 平文 ブロック1 平文 ブロック2 平文 ブロック3 ・・ ・・ 初期化 ベクトル XOR 処理 XOR 処理 XOR 処理 復号化 復号化 復号化 ・・ ・・・ XOR 処理 XOR 処理 XOR 処理 暗号化 暗号化 暗号化 ・・・ ・・ 暗号文 平文 暗号文 ブロック1 暗号文 ブロック2 暗号文 ブロック3 平文 ブロック1 平文 ブロック2 平文 ブロック3 ・・ ・・ 初期化 ベクトル

CFBモード 1つ前の暗号文ブロックを暗号アルゴリズムの入力に戻し、再度暗号化を行なった後、平文ブロックの内容と混ぜ合わせを行なう。 暗号ブロックを暗号アルゴリズムの入力に戻すため、暗号フィードバックモードと呼ばれる。 最初の平文を暗号化するときには、1つ前の暗号文ブロックがないため、この暗号文ブロックの代わりに、初期化ベクトルのブロックを用意する必要がある。 暗号アルゴリズムが生成するビット列を鍵ストリームという。 CFBモードでは、復号化を行なう時にも暗号化を行なう。 初期化ベクトルは、暗号化のたびに変化させることで暗号強度を高くすることができる。

CFBモードの暗号化・復号化 CFBモードの暗号化 CFBモードの復号化 平文 暗号文 平文 ブロック1 平文 ブロック2 平文 ブロック3  ・・ ・・ 初期化 ベクトル 暗号化 暗号化 暗号化 ・・ 暗号化 暗号化 暗号化 ・・・ XOR 処理 XOR 処理 XOR 処理 XOR 処理 XOR 処理 XOR 処理 ・・・ ・・ 暗号文 平文 暗号文 ブロック1 暗号文 ブロック2 暗号文 ブロック3 平文 ブロック1 平文 ブロック2 平文 ブロック3 ・・ ・・ 初期化 ベクトル

OFBモード 1つ前の暗号化の出力を暗号アルゴリズムの入力に戻し、再度暗号化を行なった後、平文ブロックの内容と混ぜ合わせる。暗号化の出力を暗号アルゴリズムの入力に戻すため、出力フィードバックモードと呼ばれる。 最初の平文を暗号化するときには、1つ前の暗号文ブロックがないため、この暗号文ブロックの代わりに、初期化ベクトルのブロックを用意する必要がある。 暗号アルゴリズムが生成するビット列を鍵ストリームという。 OFBモードでは、復号化を行なう時にも暗号化を行なう。 初期化ベクトルは、暗号化のたびに変化させることで暗号強度を高くすることができる。 この暗号アルゴリズムでの鍵の生成は、平文ブロックの処理とは無関係に処理できるため、事前に鍵を生成しておけば実際の平文の処理を高速に行なえる。

OFBモードの暗号化・復号化 OFBモードの暗号化 OFBモードの復号化 暗号化 暗号化 暗号化 ・・・ 暗号化 暗号化 暗号化 ・・・ 平文 暗号文 平文 ブロック1 平文 ブロック2 平文 ブロック3 暗号文 ブロック1 暗号文 ブロック2 暗号文 ブロック3 ・・ ・・ XOR 処理 XOR 処理 XOR 処理 XOR 処理 XOR 処理 XOR 処理 ・・ ・・ 初期化 ベクトル 初期化 ベクトル 暗号文 ブロック1 暗号文 ブロック2 暗号文 ブロック3 平文 ブロック1 平文 ブロック2 平文 ブロック3 平文 ・・ ・・ 暗号文

CTRモード 1つずつ増加していくカウンタを暗号化して、鍵ストリーム(暗号アルゴリズムが生成するビット列)を作りだし、平文ブロックの内容と混ぜ合わせる。 カウンタから鍵ストリームを生成するため、CTRモードはカウンタモードと呼ばれる。 CTRモードは、復号化を行なう時にも暗号化を行なう。 この暗号アルゴリズムでの鍵の生成は、平文ブロックの処理とは無関係に処理できるため、事前に鍵を生成しておけば実際の平文の処理を高速に行なえる。 カウンタの初期値は、ノンスと呼ばれる暗号化のたびに異なる値とカウントアップする値を組み合わせて生成する。 (例)カウンタの長さが128ビットの時、前半64ビットをノンス、後半64ビットをカウントアップ値として使用する。 CTRモードでは、このカウンタの値をさらに暗号化しているため、暗号強度はより高くなる。 11 22 33 44 55 66 77 88 00 00 00 00 00 00 00 01           ノンス                カウントアップ値

CTRモードの暗号化・復号化 CTRモードの暗号化 CTRモードの復号化 カウンタ カウンタ+1 カウンタ+2 ・ カウンタ カウンタ+1 ・・・ 暗号化 暗号化 暗号化 ・・・ 暗号化 暗号化 暗号化 ・・・ 暗号文 平文 平文 ブロック1 平文 ブロック2 平文 ブロック3 暗号文 ブロック1 暗号文 ブロック2 暗号文 ブロック3 ・・ ・・ XOR 処理 XOR 処理 XOR 処理 XOR 処理 XOR 処理 XOR 処理 ・・ ・・ 暗号文 暗号文 ブロック1 暗号文 ブロック2 暗号文 ブロック3 平文 ブロック1 平文 ブロック2 平文 ブロック3 平文 ・・ ・・

使い捨てパット(バーナム暗号) 代表的なストリーム暗号方式。 平文とランダムなビット列で生成した鍵でXOR(排他的論理和)の計算を行なう。シンプルな暗号方式だが、鍵の情報が外部に漏れない限り、解読することはできない。

使い捨てパットの特徴 解読することが不可能な暗号方式(あくまで、鍵の情報が外部に漏れないことが前提) 鍵の情報は、ランダムなビット列なため、あらゆるパターンが考えられる。解読する際、このすべてのパターンのビット列の鍵の中から本当の鍵を見つけなければならない。しかし、盗聴者は鍵の情報も平文の情報も知らないため、復号化した平文から本当の鍵を見つけることができない。 また、使い捨てパットは、平文と同じ長さのビット列の鍵を使って暗号化するという特徴がある。これが、さらに解読を難しくしている。

使い捨てパットの欠点 鍵の生成の問題 鍵の受け渡しの問題 鍵の保管の問題

鍵の生成の問題 使い捨てパットは、平文と同じ長さのビット列の鍵を、平文ごとに生成する必要がある。平文がまれに同じ長さであっても、鍵は作り替える必要がある。これは、同じ鍵を使って情報交換を続けることは、盗聴者に対して読解のパターンと機会を多く与えてしまうことになるから。このため、一度使った鍵は捨てる必要がある。 また、簡単に解読されないようにするため、コンピュータを使って生成した擬似的な乱数でなく、再現性のない真の乱数を使って鍵を生成する必要がある。この鍵の生成が手間のかかる作業になる。 ※擬似乱数とは、乱数列(乱数)のように見えるが、実際には確定的な計算によって求めている数列に含まれる数を指す。擬似乱数を生成する機器(やアルゴリズム)を擬似乱数生成器(や擬似乱数生成法)と呼ぶ。乱数は本来規則性も再現性も無いために予測は不可能だが、擬似乱数は計算によって作るので、作り方が分かれば理論的には予測可能であり、また内部の初期値(シード)が分かれば、先に計算しておくこともできる。 弱い擬似乱数・・・ 無作為性しか持たない 強い擬似乱数・・・ 無作為性、予測不可能性を持つ 真の乱数・・・ 3つすべての性質を持つ 無作為性・・・ 統計的な偏りがなく、でたらめな数列になっているという性質。 予測不可能性・・・ 過去の数列から次の数を予測できないという性質。 再現不可能性・・・ 同じ数列を再現できないという性質。再現するためには、数列そのものを保存しておくしかない。

鍵の受け渡しの問題 使い捨てパットは、平文と同じ長さのビット列の鍵を使って暗号化するため、復号化する際には、この同じ鍵を使う必要がある。 暗号文をネットワークを介して相手に送る際、鍵は別ルートで安全に受け渡す必要がある。 また、鍵は平文ごとに作り直す必要があるため、平文を送るたびに鍵も受け渡す必要がある。

鍵の保管の問題 情報を暗号化して保管する場合には、鍵も保管する必要がある。鍵を紛失すると暗号文を復号化できなくなる。 情報が100Mバイトのサイズがあると鍵の長さも100Mバイトになり、保管しなければならない情報のサイズが2倍になってしまう。また、同じ場所に保管していても意味がないため、保管場所を考慮する必要がある。