暗号技術・セキュリティ 情報工学科 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 復号化処理 暗号化実行例 暗号化実行例 復号化実行例 復号化実行例 まとめ 簡単な暗号化のプログラムは作れることはわ かったが、問題点がいくつか見つかった。 素数の値やテキストが膨大などの場合、ごく わずかだが処理に多少の時間がかかること。 文字コードによっては正しく暗号化できないも のもあった。 今後の課題として処理効率の向上などがあげ られる。
© Copyright 2024 ExpyDoc