いつまでたっても覚えられないのでメモしておく。
データの暗号化が必要な理由
ネットワークを利用すると遠隔地とのやりとりが便利になる反面、盗聴、改ざん、なりすましの危険がつきまとってしまいます。
- 盗聴:受信者にデータが届くが、その間で第三者に内容を盗み見られてしまう
- 改ざん:受信者に届く前に第三者に内容を書き換えられてしまう
- なりすまし:第三者が送信者になりすましデータを受信者におくることで、受信者は本人だと思って内容を理解してしまう
そのため、データを暗号化することで第三者からの盗聴、改ざん、なりすましを防ぐことが大切です。送信者はデータを平文で送付するのではなく、暗号文にして送付すべきです。
- 平文:暗号化をしていないオリジナル文のこと
- 暗号文:暗号化を施した文のこと
受信者は暗号化されたデータをそのままよむことはできないので、データを復号してデータ内容を読み取ります。
- 暗号化:平文を暗号文にすること
- 複合:暗号文を平文にすること
代表的な暗号化方式
データを暗号化、複合するために使われるのが鍵です。代表的な鍵に秘密鍵(共通鍵)方式と公開鍵方式があります。
秘密鍵方式
秘密鍵方式では、送信者と受信者が同じ鍵を使うため、秘密鍵を第三者に知られてしまわないようにする工夫が必要です。公開鍵方式に比べ暗号化、複合が単純で、時間がかからないメリットがあります。秘密鍵は共通のものを用いる必要があるので、データをやり取りする相手が増えるほど鍵の数が増えてしまい、鍵の管理、配布の問題が生じます。一般に、秘密鍵を交換する際には、公開鍵方式で暗号化して送付する手法が用いられています。
秘密鍵方式の暗号化にはDES(デス:Data Encryption Standard)と呼ばれる暗号化アルゴリズムが使われてきました。これは1977年にIBMによって開発された暗号化アルゴリズムです。64bit単位でデータを可能な限りかき混ぜます。しかし、総当り等で見破られてしまうことから、近年では3DES(トリプルデス)やAES(Adbanced Encryption Standard)という暗号化方式を使うことが一般的となっています。
参考:マスターIT/暗号技術:第2回 DES暗号化 - @IT
公開鍵方式
公開鍵方式では、送信者と受信者が異なる鍵を使います。受信者は、公開鍵と秘密鍵をペアで作成し、公開鍵を送信者に配布します。公開鍵で暗号化したものはペアとなる秘密鍵でしか復号化できません。そのため、第三者が、データを盗み見たとしても複合することができないため、安全にデータのやり取りができます。秘密鍵方式と比べ仕組みが複雑なので暗号化、複合に時間がかかってしまいますが、鍵の管理、配布の問題から解消されるメリットがあります。そのため、不特定多数の相手とやり取りする場合には、公開鍵方式が向いていると言えます。
一般に、公開鍵方式ではRSAと呼ばれる暗号化アルゴリズムが用いられます。ちなみにRSAという名前は、発明者であるロナルド・リベスト (Ron Rivest) 、アディ・シャミア (Adi Shamir) 、レオナルド・エーデルマン (Len Adleman) の頭文字の組み合わせです。この他にも楕円曲線暗号や、PGP(Pretty Good Privacy)が利用されている。
- RSA:素因数分解を用いた暗号化アルゴリズム
- 楕円曲線暗号:楕円曲線上の離散対数問題 (EC-DLP) を安全性の根拠とする暗号化アルゴリズム。
- PGP:1セッションごとに使い捨てのセッション鍵を生成してやり取りする。
理解が足りていなかったのは、公開鍵暗号化方式はあくまで一方向(共通鍵で暗号化→秘密鍵で復号化)のものであること。要注意です。