暗号化とは?使われている方式・種類・メリットなど徹底解説|サイバーセキュリティ.com

暗号化とは?使われている方式・種類・メリットなど徹底解説



「暗号化」という言葉をご存じの方は多いのではないでしょうか。暗号化とはセキュリティの世界の言葉であり、データの機密性や完全性を維持するための技術として使われます。日常生活でもよく耳にする言葉ですが、正しい意味と仕組みを理解している人は少ないかもしれません。

今回は暗号化について理解を深めるために、仕組みや種類について解説します。

暗号化とは

「暗号化」とは元となるデータに対して、特別な処理を行うことで、別のデータに変換する処理のことをいいます。それに対し、暗号化されたデータを元のデータに戻す処理のことを「復号化」と言います。

暗号化を行う処理のことを「暗号アルゴリズム」といいます。暗号アルゴリズムにはいくつかの種類があり、暗号化の安全性(強度)や暗号化の処理にかかる時間が異なります。

また、暗号化や復号化の処理には暗号アルゴリズムに応じた「鍵」が必要になります。同じ暗号アルゴリズムを採用しても、処理に使う「鍵」が違っていると、処理の結果が変わります。暗号化や復号化には、暗号化アルゴリズムの選択と共に、鍵の管理方法についても課題となります。

暗号化の仕組み

暗号化と復号化の流れをイラストで表現したのが以下の図です。

「Hello」という文字列を暗号化することで、暗号データ「e3znb9sa」を得ることができました。ここで得られた暗号データは解説のための仮のデータです。そして暗号化されたデータは同じアルゴリズムを使って復号化できます。

暗号化や復号化においては鍵の管理が重要です。鍵とは暗号化や復号化を行う時に設定するパラメータのようなものです。鍵が無関係な第三者に知られてしまうと、暗号化されたデータが勝手に復号化されデータが読み取られてしまいます。暗号化は鍵の管理の仕方によって、「共通鍵暗号方式」と「公開鍵暗号方式」の2つに分類できます。

暗号化の種類

現代では暗号化の種類として「共通鍵暗号方式」と「公開鍵暗号方式」の2つが特に有名です。この2つの違いは、暗号化と復号化における鍵の管理方法です。

1. 共通鍵暗号方式

共通鍵暗号方式とは、暗号化と復号化の両方で同じ鍵を使う暗号化方式のことです。暗号化アルゴリズムとしては「DES」「RC4」「AES」などが有名です。

共通鍵暗号方式の処理速度は高速ですが、データをやり取りする人数が増えるにつれて、管理すべき鍵の数が膨れ上がってしまいます。例えばn人の間で管理すべき鍵の数はn(n-1)/2個必要になることが知られています。

共通鍵暗号方式では暗号化と復号化をする人物以外に鍵が知られないように管理する必要があります。このような性質のため、共通鍵暗号方式は秘密鍵暗号方式とも言われます。

2. 公開鍵暗号方式

公開鍵暗号方式とは、暗号化と復号化で異なる鍵を使う暗号化方式のことです。暗号化アルゴリズムとしては「RSA」「楕円曲線暗号」などが有名です。

公開鍵暗号方式は共通鍵暗号方式と比べて、処理速度は低速ですが管理する鍵の数が少なくてすむという特徴があります。例えばn人の間で管理すべき鍵の数は2n個になります。

この方式では「暗号化に使う鍵は公開されている鍵」を使い「復号化に使う鍵は秘密の鍵」を使います。つまり暗号化に使う鍵は公開されているため、誰でも暗号化できますが、復号化に使う鍵は暗号化されたデータの受信者しか所有していないため、復号化は受信者しか行うことができません。公開鍵暗号方式ではこのような方法で安全にデータをやり取りします。

公開鍵暗号方式は処理が低速であるため、単独で使うことよりも共通鍵暗号方式と組み合わせて使われることが多いです。データの暗号化・復号化には速度の速い共通鍵暗号方式を使い、配送する共通鍵そのものは公開鍵暗号方式を使用して暗号化・復号化されるといった使われ方です。このような方式をハイブリッド方式といいます。

3. ハッシュ化

暗号化と混同されやすい概念として「ハッシュ化」があげられます。ハッシュ化とは元のデータに対してハッシュ関数による処理を加えて、固定長のデータに変換する技術のことを言います。変換はできるのですが、元に戻すことはできません。つまりハッシュ化には「復号化」に相当する処理は存在しないことになっています。

ハッシュ化の利用目的はパスワードの管理やファイルのチェックなどです。パスワードをハッシュ化して保存することで、パスワードを生のまま管理する必要がなくなります。実際に認証するときは、入力されたパスワードをハッシュ化したものと、保存されているハッシュ化されたパスワードを比較すればよいのです。

また、インターネット上から大きなサイズのファイルをダウンロードした際に、サーバー上のファイルとダウンロードしたファイルを比較するときにもハッシュが使われます。大きなファイルをそのまま比較するのは大変なので、ハッシュ化して比較します。

ハッシュ関数には「MD5」、「SHA-1」、「SHA-256」などがあげられます。しかし、MD5には古くから脆弱性が指摘されていました。さきほどハッシュ化には「復号化」に相当する処理は存在しないと紹介しましたが、MD5には特定のハッシュ値を持つ、元のデータを計算されてしまう脆弱性があります。このような脆弱性を利用する攻撃を衝突攻撃と言います。そのため現在ではMD5を使うことは推奨されていません。

簡単に暗号化する方法

データを暗号化することで、データそのものが流出しても中身を読み取られることを防ぐことができます。暗号化の方法には様々なものがあります。その中でも簡単に使える方法を紹介します。

1. 暗号化ソフトを利用する

ファイルを暗号化する方法の一つに、ファイルをzip形式に圧縮してパスワードをかけるという方法があります。zipファイルとは複数のファイルやフォルダを一つのファイルに圧縮されたファイル形式です。zipファイルの機能にパスワード設定機能があり、それ利用するということです。パスワードと暗号化されたファイルの送受信では、別々のメールでやり取りする方法がよく使われます

なおzipファイルのパスワード設定に関する記事も公開しているので、よろしければご覧ください。

2. クラウドサービスを利用する

インターネット上のストレージにデータを保存できるクラウドサービスにも標準で暗号化に対応しているものがあります。代表的なものがDropboxです。

Dropboxでは保管中のファイルだけなく、パソコンとサーバー上で通信中のファイルも暗号化します。データの暗号化と復号化は、正規のユーザーには意識させることなく実行され、サービスの利便性を損なうことはありません。

クラウドサービスを利用することで、クライアントのパソコンの故障や破壊によってデータが失われても、復元できます。暗号化というメリットだけでなく、データの可用性の面でも信頼して使うことができるのがクラウドストレージです。

Sophos資料ダウンロードはこちらから

暗号化することのメリット

データを暗号化する最大のメリットは、知られたくない情報の漏洩を防げることです。現代では様々なものが電子的なデータで管理されるようになり、業務で使われる個人情報の保護には特に慎重さが求められています。

暗号化には複雑な処理が必要であり、アルゴリズムの実装には高度な数学的な知識が必要です。そこで暗号化や復号化を利用するときは、すでに知られている暗号化アルゴリズムやサービスを利用することになります。

インターネットを使う時に使われるSSLという技術は、様々な暗号化や技術が使われていますが、サーバーに証明書をインストールさえしておけば、利用者は一般的に公開されているブラウザを使うことで、特に意識することなく安全にデータのやり取りができます。現代がこのような状況になっていることも、暗号化を使う大きなメリットの一つであると言えるでしょう。

暗号化の注意点

暗号化によって情報漏洩が防げますが、決して万能ではありません。特にパスワードを設定して暗号化するタイプの方法の場合、パスワードが知られたり解析されたりすることで、不正に復号化され情報を読み取られることがあります。

パスワードの管理では桁数を増やしたり、使用する文字種を増やしたりする工夫が有効です。さらに同じパスワードを別のサービスで使いまわさないことも重要です。便利な暗号化を効果的に使うために、利用者は自分で出来ることをしっかりやるという意識を持つことが必要です。

まとめ

データの暗号化は正義の味方のように感じられますが、一概にそうとは言い切れません。昨年までに流行したランサムウェアは感染したパソコンのデータを勝手に暗号化し、復号化のために身代金を要求するという、これまでのマルウェアとは違った手口として注目を集めました。

また暗号化の歴史は古く、数千年の歴史を持つという意見もあります。他人には知られたくない情報を安全にやり取りする需要は昔からあったということですが、数学や技術の進歩によって、現在では暗号化されていることを意識させることなく、その恩恵を受けられるようになりました。

量子コンピュータの登場で、現在普及している暗号化が無力化するという話もありますが、さらにそれに対応した暗号化アルゴリズムなども考えられているようです。

セキュリティは正義と悪のいたちごっことよく言われます。暗号をめぐる技術の競争も例外ではないでしょう。そして、できればそれは正義が常に一歩リードしている状態を維持して欲しいと常々思います。

 


SNSでもご購読できます。