暗号技術・セキュリティ

暗号技術・セキュリティ
情報工学科 04A1004
石川 真悟
はじめに
インターネットが普及した現在、情報の盗聴、情報の改
竄(かいざん)、なりすましなどのネット犯罪が多発して
いる。
このような犯罪から情報を守るための技術として暗号技
術が重要視されるようになった。
そこで、暗号技術について研究し簡単なJAVAプログラ
ムを作成する。
具体的にはテキストファイルを読み込み暗号化する。
セキュリティの脅威と暗号技術の関係
セキュリティの脅威
情報の盗み見
(盗聴)
特性
暗号技術
暗号化方式
機密性
情報を読むことが
できないようにする
ための暗号技術
対称鍵暗号
(共通鍵暗号)
公開鍵暗号
情報の破壊
(改竄)
他人のふり
(なりすまし)
正真性
完全性
情報が改竄されて
いないことを確認す
るための暗号技術
信頼性
情報を送った相手
を確認するための
暗号技術
一方向
ハッシュ関数
電子署名
RSAの暗号化処理
(公開鍵暗号でもっとも普及している)
平文の値を「E」回掛け合わせ、この結果の値を「N」で割り、余りの
値を求める。この計算結果が暗号文になる。「E」と「N」は公開鍵の
値になる。
暗号文=平文 Emod N
平文
暗号化処理
暗号文=平文E mod N
暗号文
公開鍵
E
N
例)平文12、E=5、N=221
5
暗号文=12 mod 221
暗号文=207
暗号化処理そのものは、
とてもシンプルだが、
秘密鍵の情報がわからない限り、
現実的な時間で解読するのは困難
RSAの復号化処理
暗号文の値を「D」回掛け合わせ、この結果の値を「N」で割り、余り
の値を求める。この計算結果が平文になる。「D」と「N」は秘密鍵の
値になる。
平文=暗号文 Dmod N
暗号文
暗号化処理
平文=暗号文D mod N
平文
秘密鍵
D
N
例)暗号文207、D=29、N=221
29
平文=207 mod 221
平文=12
暗号化処理同様、
復号化処理もとてもシンプルなため、
秘密鍵が他の人の手に渡ると
解読は簡単にできてしまうため、
秘密鍵は厳重に管理する必要がある。
キーペアの生成手順
公開鍵と秘密鍵は対(ペア)になっている必要があり、この
2つのキーのことをキーペアと呼ぶ。
PとQを使ってNを計算する
N=PxQ
PとQを使ってLを計算する
L=lcm(P-1,Q-1)
P-1とQ-1の最小公倍数
Lを使ってEを計算する
EとLを使ってDを計算する
1<E<L gcd(E,L)=1
EとLの最大公約数が1になるEを求める
E x D mod L =1
EとDを掛けmodLを計算した値が
1になるようにDを求める
キーペアの生成の具体例
まずPとQの2つの素数を用意(説明を簡単にするため小さい数字で行なう)
P=13、Q=17
N=PxQ=13x17=221
L=lcm(P-1,Q-1)=lcm(13-1,17-1)=lcm(12,16)
12と16の最小公倍数は48なのでL=48
1<E<L god(E,L)=1
Gcd(E,48)=1
Eと48の最大公約数が1になるようなEを求める。
E=5,7,11,13,17,19,23,25,29,31,35,37,41,43,47
この中から素数を1つを選ぶ。ただし、25、35は素数ではないので外す。
仮に5を選ぶ。
ExD mod L=1
5xD mod 48=1
D=29
アルゴリズム
暗号化アルゴリズム
復号化アルゴリズム
数字入力
素数判定
Yes
No
No
キー値入力
暗号化txt読み込み
素数が2つ
Yes
キーペア生成
暗号化処理
暗号化txt
復号化処理
暗号化実行例
暗号化実行例
復号化実行例
復号化実行例
まとめ
簡単な暗号化のプログラムは作れることはわ
かったが、問題点がいくつか見つかった。
素数の値やテキストが膨大などの場合、ごく
わずかだが処理に多少の時間がかかること。
文字コードによっては正しく暗号化できないも
のもあった。
今後の課題として処理効率の向上などがあげ
られる。