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