暗号化とは
暗号化とは、第三者に不正に機密データを見られるのを防ぐために、データを解読できないように加工することです。一方、暗号化されたデータをもとに戻すことを復号と言います。
データを復号するには専用の鍵が必要です。正規のデータ受信者のみが復号鍵を所持しておくことで、安全なやり取りが実現します。
一般的には、暗号化はインターネット上でデータをやり取りする際に用いられます。メールやWebサイトにおけるデータの送受信がその代表で、メール暗号化やファイル暗号化などとも呼ばれます。そのほか、USBメモリやハードディスクに保存したデータを暗号化することで、第三者のアクセスを防ぐのにも使われます。
初心者が覚えるべき暗号化の関連用語
続いて、暗号化に関する用語を3つ紹介します。
平文
平文とは、暗号化を施す前のデータのことです。「ひらぶん」と読むのが一般的です。ただし、日本の国家基準であるJIS規格によると「へいぶん」と読むのも正しいとされています。
「文」とあるように、基本的にはテキストデータを指しますが、画像や音声データを指すケースもあります。平文と、暗号化や暗号文、復号との関係性は以下のとおりです。
- ■平文を暗号文に加工することが暗号化
- ■暗号文を平文に戻すのが復号
復号
復号とは暗号文を平文に戻すことです。「復号化」と表記されることもありますが、「復号」が正しいとされています。
暗号化はのちに復号することを前提に文章を加工する行為です。そのため、平文を適当な文字列に置き換えるのではなく、一定のルールに従って加工します。
たとえば、有名な「たぬき暗号」をイメージすると分かりやすいでしょう。平文に「た」の文字だけをいくつか加えて暗号化することです。逆に、暗号文から「た」を抜けば復号できます。
このように、暗号化のルールを踏まえて適切な暗号化処理を施すことで、平文を得るのが復号です。
暗号アルゴリズム
暗号アルゴリズムとは、暗号化のルールです。暗号化アルゴリズムとも呼ばれます。
暗号アルゴリズムは、暗号化方式と混同されがちです。どちらも暗号化の方法を示していますが、対象とする範囲が異なります。暗号アルゴリズムは、あくまでどのようにして暗号文を作るかを定めたものです。それに対して、暗号化方式には鍵の受け渡し方法なども含まれます。
たぬき暗号に例えると、平文に文字を加えて暗号化するのは暗号アルゴリズムです。一方、「暗号文にたぬきの絵を添える」のは復号方法の伝達(鍵の受け渡し)方法に該当するため、暗号化方式に含まれます。
暗号化・復号の仕組み
これまで紹介してきた用語を踏まえて、暗号化と復号の基本的な流れを見ていきましょう。
- 1.平文を暗号化する
- はじめに、データ送信者はデータを暗号化します。このとき、暗号化に使うデータを暗号鍵(暗号キー)と呼びます。たぬき暗号では人力で平文に「た」を加えれば良いですが、実際の暗号化では複雑な処理が行われるため、鍵を必要とします。
- 2.暗号文を復号する
- データ受信者は、自身が所有する復号鍵でデータを復号し、平文を得ます。万が一復号鍵を第三者に盗まれてしまうと、データを不正に解読されてしまいます。
上記の2ステップのほかに、鍵の受け渡しを行う段階があります。暗号化前に鍵を共有する方法を公開鍵暗号方式、暗号化後に受け渡しを行う方法を共通鍵暗号方式と呼びます。それぞれ次の項で見ていきましょう。
暗号化方式の種類
暗号化通信の方式は、鍵の受け渡し方法によって以下の2種類に大別されます。
共通鍵暗号方式
共通鍵暗号方式とは、暗号化と復号に同じ鍵を用いる暗号化方式です。したがって、データ送信者はデータ暗号化後、その鍵をデータ受信者に渡すことになります。
共通鍵暗号方式は、もう1つの公開鍵暗号方式よりも処理速度が速いのが特徴です。代表的な暗号アルゴリズムには、AESやRC4があります。
この方法の難点は、暗号鍵を渡す際の安全性を確保しづらいことです。さらに、正規のデータ受信者以外に復号されないよう、ユーザーごとに異なる鍵を用意しなければなりません。そのため、鍵の管理が大変な方法といえます。
鍵の受け渡し途中で第三者に鍵を盗まれるリスクも存在します。
公開鍵暗号方式
公開鍵暗号方式は、暗号化と復号に異なる鍵を用いる暗号化方式です。この方法では、まずデータ受信者が公開鍵を一般公開します。公開鍵は暗号鍵であり、このデータ受信者にデータを送信したい人は、全員その公開鍵を使ってデータを暗号化します。
一方、公開鍵と対になる復号鍵は公開せず、データ受信者だけが保持しておきます。このことから、復号鍵は秘密鍵とも呼ばれます。こうすることで、暗号化は誰でもできるが復号は正規の受信者にしかできない状況が生まれるのです。
公開鍵暗号方式は、処理速度の点では共通鍵暗号方式に劣ります。しかし、鍵は公開鍵と復号鍵の2種類だけを用意すればよいため、鍵管理が簡単です。また、復号鍵を送受信する必要がないため、暗号強度も高いといえます。
なお、「共通鍵暗号方式」と「公開鍵暗号方式」の長所を併せ持つ「ハイブリッド暗号方式」もあり、暗号の安全性と高速処理を両立します。
暗号化とハッシュ化の違い
暗号化と似たものにハッシュ化があります。ハッシュ化とは、元のデータを復元できない形に加工することです。のちに復号することを前提とした暗号化とは、その点で異なります。
ただし、ハッシュ化も一定のアルゴリズムに従って行われます。そのため、同じデータを同じアルゴリズムでハッシュ化した結果は常に同じです。
そのため、パスワードの確認などに用いられます。例えば、2人の人物が所有するパスワードが、互いに同一であることを確認する場合を考えましょう。
パスワードを直接見せあえば、それらが同一であることを確認できます。しかし、これでは第三者に盗み見られるかもしれません。
そこで、2人は同じアルゴリズムでパスワードをハッシュ化し、その結果を見せ合います。それらが一致すれば、両者が持つパスワードが同一だと確認されたことになるのです。この仕組みから、ハッシュ化はログインシステムなどに使われています。
暗号化の方法
次は、暗号化の実践的な方法を見ていきましょう。
暗号化ソフト・ツールを利用する
専用の暗号化ソフトや暗号化ツールを使うことで、データやファイルを簡単に暗号化できます。ただし、一口に暗号化ソフトといっても、その方式や暗号化対象は製品によってさまざまです。では、暗号化対象による分類を見ていきましょう。
- ファイル暗号化
- ファイル単位で暗号化を施す方法です。ファイルを開く際にパスワード入力が要求され、正しく認証された場合のみファイルが復号されるという形式が一般的です。
- フォルダ・ドライブ暗号化
- 複数のデータを一括して暗号化する方式です。そのフォルダやドライブ内のデータを操作する際は自動で暗号化・復号されることが多く、少ない手間で使えるのが特徴です。
- HDD・データベース暗号化
- ハードディスクやデータベース単位で暗号化する方法です。中身のデータが更新されるたびに自動で暗号化が行われるため、ユーザーは普段暗号化を意識せずに利用できます。
クラウドサービスを活用する
クラウドサービスには、預けたデータが暗号化されるものがあります。預けているデータそのものはもちろん、データを預ける際の通信も暗号化されるため、安全にやり取りすることが可能です。
クラウドサービスにデータを預けておけば、万が一パソコンやスマートフォンが壊れても、中のデータが失われずに済みます。また、クラウドサービスの中にはログ管理など、暗号化以外のセキュリティ機能を備えたものもあります。
暗号化する際に確認しておきたいポイント
データを暗号化する際には、どのような点に注意する必要があるのでしょうか。
通信経路も暗号化する
データそのものだけでなく、そのデータをやり取りする通信経路も暗号化しましょう。インターネット上でデータをやり取りする際は、SSL暗号化通信という暗号化の仕組みが用いられます。
SSLが使われているWebサイトは、URLがhttpではなくhttpsから始まっています。一昔前はログインや決済のページのみSSL化されていましたが、近年はその前のページもSSL化されているのが一般的です。
ブラウザとサーバ間の通信を暗号化し、第三者による傍受や改ざんを防ぎます。
アルゴリズムの情報を確認する
暗号の安全性は暗号アルゴリズムに左右されます。そのため、数ある暗号アルゴリズムの中から、安全性の高いものを選ぶことが大切です。
さらに、アルゴリズムは日々改善されています。どのようなアルゴリズムでも脆弱性が見つかることがあり、発見されるたびに修正が施されています。
現在利用しているアルゴリズムに脆弱性が残っていないか確認しましょう。
自身でもセキュリティチェックを継続して行う
暗号化さえ行えばデータの安全性が保証されるわけではありません。例えば、暗号化ファイルを復号するのに、パスワードの入力を必要とする場合を考えましょう。
この場合、どれほど暗号化のアルゴリズムが優れていても、パスワードを第三者に知られては意味がありません。そのため、複雑なパスワードを設定する、パスワードの管理体制を見直すなどの対策が求められます。
また、暗号鍵の変更も必要です。暗号鍵が同じ場合、同じ平文は常に同じ暗号文になります。これでは、第三者に平文を推測するヒントを与えることになるでしょう。
鍵を頻繁に変えれば暗号化結果は変わります。第三者は鍵が変わるたびに解読の手間を強いられるため、容易に解読されなくなるでしょう。
暗号化の仕組みや方法を理解し、セキュリティを高めよう
暗号化とは、平文を加工し、第三者に中身を解読されない状態にすることです。正しい方法を用いなければ、容易には復号できないため、企業の機密情報や個人情報などの重大な情報漏えいや盗聴、改ざんを防げます。暗号化の実践的な方法は以下のとおりです。
- ■専用ソフトやツールの利用
- ■クラウドサービスの活用
暗号化する際は以下の点に注意しましょう。
- ■通信経路の暗号化
- ■アルゴリズムの確認
- ■自身でのセキュリティチェック
以上を踏まえ、自社のセキュリティ環境を見直しましょう。