石川 真悟

Download Report

Transcript 石川 真悟

暗号技術
~暗号技術の基本原理~
(1週目)
情報工学科 04A1004
石川 真悟
はじめに
インターネットが普及した現在、情報の盗聴、情
報の改竄(かいざん)、なりすましなどのネット犯
罪が多発している。
このような犯罪から情報を守るための技術とし
て暗号技術が重要視されるようになった。
そこで、暗号技術について研究する。
暗号技術の基本原理
暗号技術の基本・・・第三者が情報を読むことができない
ようにすること(暗号化)。暗号化された情報を元の状態
に戻すことを復号化、暗号化する前の情報を平文、暗号
化した後の情報を暗号文という。暗号化するための様々
なルール(暗号化方式、暗号化アルゴリズム)がある。
近年の暗号化と復号化は、鍵と呼ばれる特殊な情報を
使って処理する。
※暗号化のルールを第三者が知らないこと、鍵を持っていないことが前提。第
三者が暗号化された情報を復元しようとする行為を暗号解読(暗号解析)という。
セキュリティの脅威と暗号技術の関係
セキュリティの脅威
情報の盗み見
(盗聴)
特性
暗号技術
暗号化方式
機密性
情報を読むことが
できないようにする
ための暗号技術
対称暗号
(共通鍵暗号)
公開鍵暗号
情報の破壊
(改竄)
他人のふり
(なりすまし)
正真性
完全性
情報が改竄されて
いないことを確認す
るための暗号技術
信頼性
情報を送った相手
を確認するための
暗号技術
一方向
ハッシュ関数
電子署名
暗号化方式の概要
☆対称暗号
・・・情報の暗号化を行うための技術。同じ鍵を使って送信側で暗
(共通鍵暗号) 号化、受信側で復号化を行う。同じ鍵を使うため、暗号化の変
換処理と対称的な逆変換処理を行えば、復号化できる。
☆公開鍵暗号 ・・・情報の暗号化を行うための技術。送信側で公開鍵を使って暗
号化を行い、受信側で秘密鍵を使って復号化を行う。秘密鍵は
本人しか持っていないことが原則のため、公開鍵を使って暗号
化された暗号文は、秘密鍵を持った本人しか復号化できない。
☆一方向ハッシュ関数・・・情報の改竄チェックを行うための技術。送信側で情報の
ハッシュ計算を行い、計算結果を情報に付加する。受信
側で再度ハッシュ計算を行い、送信側の計算結果と比較
し、一致していれば改竄されていないと判断。
☆電子署名
・・・情報の改竄と送信相手のチェックをするための技術。送信側で
秘密鍵を使ってハッシュ計算を行い、計算結果を情報に付加。
受信側で公開鍵を使ってハッシュ計算を行い、送信側の計算
結果と比較し、結果が合っていれば改竄されていない正しい相
手から送信された情報であると判断。
※公開鍵暗号と電子署名は、自分自身で秘密鍵を厳重に管理すれば、第三者に渡ることはない。
シーザー暗号
紀元前100年にローマに生まれた、ジュリアス・
シーザーが使った暗号技術。
ローマ文字(ラテン文字)の並び順をそのままの順
番で、ある一定文字ずらして暗号化する。この暗号
技術は、アルファベットや日本語にも適用できる。
暗号化のルールが単純なため、比較的簡単に解
読することができる。
※アルファベットの場合の鍵のパターン数=26
この鍵のパターン数のことを鍵空間という。
シーザー暗号の例
a b c d e f
g h i
j
d e f
c
j
m n o p q r
g h i
k l
暗号ルール→文字を右にずらす
鍵→ずらす文字数(ここでは3文字)
平文
hello
k l
m n o p q r
s t
s t
u v w x y
u v w x y
z a b
暗号ルール→文字を左にずらす
鍵→ずらす文字数(ここでは3文字)
暗号ルール
暗号文
暗号文
復号ルール
平文
文字を右にずらす
khoor
khoor
文字を左にずらす
hello
3文字
鍵
3文字
鍵
z
ブルート・フォース・アタック
シーザー暗号で生成された暗号文は、この方法
で解読できる。これは、暗号のルールが判明し
ている場合に、鍵の値を見つけ出す方法。
ブルート・フォース・アタックによる解読処理
暗号文
鍵
解読結果
khoor
0文字
khoor
khoor
1文字
jgnnq
khoor
2文字
ifmmp
khoor
3文字
hello
khoor
4文字
gdkkn
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
khoor
24文字
mjqqt
khoor
25文字
lipps
単一換字暗号
一対一の対応関係を持つ文字の変換表を作り、この変換表
を使って暗号化するもの。
変換表は、一対一の関係で、文字の順番をランダムに並べ
替えるようなイメージで作成する。この変換表に規則性はな
い。
※鍵空間=26x25x24x23x22x・・・・・・x1
=403291461126605635584000000
鍵空間が膨大なため、ブルート・フォース・アタックで解読するのは困難
平文
hello
暗号ルール
暗号文
暗号文
復号ルール
平文
変換表を使った
変換
favvu
favvu
変換表を使った
変換
hello
変換表
鍵
変換表
鍵
排他的論理和
文字コード、静止画像、音声、動画といった情
報は、ビット列で表現され、暗号化では、この
ビット列を変換する。暗号化処理では、よく排
他的論理和であるXORが使用される。
暗号化処理で、平文を鍵に相当するビット列
で排他的論理和を行い、暗号文を生成。復号
化処理で、生成した暗号文を暗号化と同じ鍵
に相当するビット列で排他的論理和を行うと、
元の平文に戻る。
排他的論理和には、このような性質が
あるため、暗号化した暗号文を元の平
文に戻さなければならない暗号処理の
一部として、多く使用される。
真理値表
1
1
0
0
1
0
1
0
0
1
1
0
※1が真、0が偽
例
①平文のビット列(7ビットASCIIの文字コードで表現)
H
e
l
l
o
01001000 01100101 01101100 01101100 01101111
②鍵のビット列(鍵に相当する40ビットのビット列を生成)
01000001 01101110 01100111 01101111 01110101
③暗号化のXOR計算(暗号化処理として、平文のビット列と鍵のビット列のXORの計算)
H
e
l
l
o
01001000 01100101 01101100 01101100 01101111 平文
XOR 01000001 01101110 01100111 01101111 01110101
00001001 00001011 00001011 00000011 00011010
鍵
暗号文
④復号化のXOR計算(復号化処理として、暗号文のビット列と鍵のビット列のXORの計算)
00001001 00001011 00001011 00000011 00011010
XOR 01000001 01101110 01100111 01101111 01110101
01001000 01100101 01101100 01101100 01101111
H
e
l
l
o
暗号文
鍵
平文