働き方

2022年2月18日

2022年7月13日

暗号化の基礎知識|仕組みとアルゴリズムの種類、メリット・注意点

「暗号化」という言葉はよく耳にすると思います。クレジットカードのオンライン決済などで見かけることも増えました。では実際に、どのような仕組みで暗号化しているのかご存じでしょうか。ここでは暗号化を知る上で不可欠なアルゴリズムや、暗号化のメリットと注意点を解説します。

暗号化とは?

「暗号化」とは、元のデータ(平文)に処理を施し、別なデータに変換することです。ITの世界では、第三者に見られたくないファイルを暗号化したり、通信を盗み見られたときに情報が漏洩しないよう暗号化したりと、多くの場面で使われている技術です。逆に、変換されたデータを元に戻す作業のことを「復号化」といいます。

暗号化の仕組み

暗号化は、あるルールに沿って行われます。ルールがあるからこそ、復号化もできるのです。このルールを「アルゴリズム」といい、さまざまな種類があります。たとえば「一文字後ろにずらす」というアルゴリズムでは「あいうえお」という文字列が「いうえおか」と暗号化されます。アルゴリズムは暗号化と復号化で同じものが使われるため、受信者はこのアルゴリズムに則って「あいうえお」という文字列を得られるのです。
一方で、送信者と受信者以外の人も知っているアルゴリズムでは、第三者によって簡単に復号化されてしまい、暗号化の意味がありません。このため暗号化では、アルゴリズムのほかに「鍵」を使う方法が主流です。鍵を使った暗号化であれば、たとえアルゴリズムを知っていても、鍵がなければ復号化できないからです。

暗号化に用いるアルゴリズムの種類

暗号化に使われるアルゴリズムにはどのようなものがあるのでしょうか。まず暗号化には、「共通鍵暗号方式」「公開鍵暗号方式」の2つが主に使われています。この2つには、暗号化と復号化での鍵の扱い方に違いがあるのです。ここでは2つの暗号化方式と、それぞれに用いられるアルゴリズムを解説するとともに、2つの暗号化方式を組み合わせた方法についても解説します。

共通鍵暗号方式

共通鍵暗号方式は、暗号化と復号化に同じ鍵を使うものです。たとえば圧縮ファイルにパスワードをかけて圧縮し、送付相手にそのパスワードを教える場合のパスワードが鍵です。暗号化する側と復号化する側以外の第三者に鍵が漏れないように管理する必要があるため、秘密鍵暗号方式とも呼ばれます。

公開鍵暗号方式

公開鍵暗号方式は、暗号化と復号化に違う鍵を使います。暗号化には公開された鍵を使い、復号化では受信者がもつ秘密の鍵を使うのです。復号化する側=受信者の鍵さえ管理すればよいため、共通鍵暗号方式と比べて、鍵の漏洩リスクは少ないといえます。一方で、共通鍵暗号方式と比べると、暗号化、復号化ともに処理速度が遅いという難点もあります。

ハイブリッド暗号方式

処理が速いものの、鍵の管理が難しい共通鍵暗号方式と、処理が遅いものの鍵の管理が容易(=より安全)な公開鍵暗号方式、両方を組み合わせたのがハイブリッド暗号方式です。
まず送付したいデータを、処理の速い共通鍵暗号方式で暗号化します。暗号化に使った共通鍵は、公開鍵暗号方式で暗号化し、暗号化したデータとともに相手に送付します。受信者は、自分自身の鍵を使って共通鍵を復号化(公開鍵暗号方式)。その後、その共通鍵を使って、目的のデータを復号化する(共通鍵暗号方式)のです。
このハイブリッド暗号方式によって安全性と速度を損なうことなく、暗号化と復号化が行えるようになったのです。

暗号強度を決める要因

暗号強度とは、暗号の破られにくさのことで、暗号強度が高い=解読されにくいといえます。たとえば鍵をパスワードと考えた場合、3桁の数字と9桁の数字ではそれぞれ1,000通りと10億通りとなるため、3桁の数字より9桁の数字の方が解読しにくいといえるのです。
先に解説した暗号アルゴリズムそのものは、その加工方法や計算方法が公開されています。このため鍵のない暗号化では誰でも復号化できることになり、無意味であるといえるでしょう。暗号化は、アルゴリズムの公開と、鍵の使用を前提として成り立っているのです。
では暗号強度を決める要因は何でしょうか。暗号鍵=鍵はデータで、その使われ方はパスワードと同じと考えていいでしょう。したがってパスワードの例と同様に、鍵の長さこそが暗号強度を決める要因のひとつになるのです。
たとえば鍵の長さが、2進数32ビット(=桁)の場合、2の32乗=4,294,967,296通り(約42億通り)です。これが64ビットであれば、2の64乗=18,446,744,073,709,551,616通り(約1,844京通り)となります。
このように鍵の桁数を増やすことで解読は困難になりますが、これはアルゴリズムが同じである場合に限られます。アルゴリズムによっては、少ないビット数でも解読が難しいものもあるのです。

暗号化とハッシュ化の違い

暗号化と混同されがちなものにハッシュ化がありますが、この2つはまったく異なるものです。
まずハッシュ化とはどのようなものなのでしょうか。ハッシュ化とは、ハッシュ関数によってデータを変換することで、ここで作成される値をハッシュ値と呼びます。ハッシュ値はランダムのように見える文字列で、同じデータから作られるハッシュ値は常に同一のものです。

参考:▷タイムスタンプ・ハッシュ値のイメージ

暗号化に似ているように思えますが、復号化を前提としている暗号化とは異なります。暗号化は可逆性があり、複号化が可能ですが、ハッシュ値は非可逆性で、復号化できないのです。
一方で、同一データのハッシュ値は常に同じであるという特性を活かした比較が可能です。たとえばパスワードや重要書類といった、相手に渡せないデータをハッシュ化し、ハッシュ値だけを比較します。これによって秘匿性を保ったままログインができ、また、改ざんされていないことを確認できるのです。
認証のためにデータベースにパスワードを保存する場合、暗号化したデータは保存しません。これは復号化されてしまう可能性があるからです。このため多くのシステムでは、データベースにはハッシュ値などを保存し、認証の際に照合を行う方法が用いられているのです。

暗号化のメリットと注意点

では暗号化にはどのようなメリットがあるのでしょうか。ここではそのメリットと、注意点を解説します。

暗号化のメリット

暗号化にはさまざまなメリットがありますが、もっとも大きなメリットはセキュリティ対策として役立つことです。
まず通信そのものを盗み見られないようにするための対策です。ネットワークを用いた通信は、比較的簡単に傍受できてしまいますが、通信が暗号化されていれば、仮に傍受されたとしても、その内容が明るみに出ることはありません。こうした通信にはHTTPS通信などがあります。
つぎに、データを秘匿できることです。重要なデータを暗号化することで、社内ネットワークやコンピュータへ第三者が不正に侵入したとしても、その内容を確認することはできません。データを奪われたとしても、復号化できなければデータを守れます。なおPCのSSDやHDDといったストレージを、すべて暗号化する機能が、WindowsやMacに標準搭載されています。これはPCそのものや、ストレージを盗まれたとしても、暗号化によりデータを守るためのものです。

暗号化する際の注意点

暗号化と復号化には時間がかかります。これは通信の暗号化でも、データの暗号化でも同じです。通信の場合、暗号化していない状態と比べて速度は遅くなります。また、データの暗号化と復号化にも、時間がかかります。PCのストレージ全体を暗号化している場合は、PC全体のパフォーマンスが低下してしまうことを考慮しておく必要があるのです。
また、復号化するための鍵を紛失した場合などには、暗号化したデータが、復号化できなくなるといったことも起こり得ます。
そしてもっとも忘れてはならないポイントは、暗号化を過信してはならないということです。暗号化したからといって「絶対に安心」ではありません。たとえば復号化に必要なパスワードといった鍵を第三者に奪われてしまえば、暗号化は無力なのです。
また、鍵が流出していなかったとしても、暗号化されたデータを復号化することは不可能ではありません。鍵が単純であったため、総当たりなどの方法で解読されてしまうことや、暗号化したアルゴリズムに脆弱性があり、そこから解読されることもあるのです。
さらにもう一つ覚えておかなければならないのが、暗号化したファイルのセキュリティの問題です。暗号化されたファイルは、場合によってはアンチウイルスソフトでのスキャンができない事態を招いてしまいます。このため、暗号化されたファイルを復号化したらすぐにスキャンし、悪意のあるプログラムであれば、その動作をブロックするといったセキュリティ対策が必要です。

ファイルを暗号化する主な方法

ではここで、ファイルを暗号化する場合に、どのような方法があるのか解説します。

暗号化ソフトを使う

暗号化ソフトは、ファイルを暗号化してくれるもので、Windowsなどが標準搭載する圧縮ソフトや、サードパーティ製のソフトがあります。
よく勘違いされるのですが、ファイルの圧縮は暗号化とは違います。ファイルの圧縮とは、アルゴリズムに則ってファイルサイズを小さくするもので、暗号化のところで解説した通り、アルゴリズムを知っていれば誰でも復号化(解凍)できてしまいます。これに加えてパスワードなどの鍵を用いることで、暗号化された圧縮ファイルの作成が可能になるのです。よく知られているものにパスワード付きZIPファイルなどがあります。なおZIPファイルなどでは、非圧縮で暗号化のみを行うこともできます。このほか、先に挙げたようにストレージ全体を暗号化するソフトもあります。

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

ファイルの暗号化は、クラウドサービスでも可能です。主な特徴は、鍵の管理も同時に行ってくれる点です。暗号化には鍵の管理が重要ですから、まとめて管理できることで、より安心につながるといえます。
サービスによっては、利用者がファイルを暗号化・復号化していることを意識することなく利用できて、単純なファイルサーバのように使えるものもあります。

暗号化はあるアルゴリズムでデータを変換すること

暗号化はアルゴリズムに則ってデータを変換することです。鍵を使うことで、受信者のみが復号化できるようになります。一方で鍵が第三者に漏れてしまえば、誰でも復号化できてしまうため、管理には十分な注意が必要です。
暗号化はクラウドサービスにも取り入れられています。たとえば「電子印鑑GMOサイン」です。電子印鑑GMOサインは、電子書面や契約データを個別に暗号化してくれます。このため、仮に第三者から不正アクセスがあったとしても、情報を秘匿できるのです。また、保管されるすべてのデータは、常に暗号化された状態であるため、より安心して使うことができるのです。

電子サイン・電子契約ならGMOサイン
電子サイン・電子契約ならGMOサイン

関連記事

アバター

筆者

ハンコ脱出作戦 編集部

このライターの記事一覧を見る

電子サイン・電子契約ならGMOサイン
  • 電子印鑑GMOサインが選ばれる理由
  • 電子契約とは
  • 脱印鑑ブログ 公式Twitter

公式SNS

電子印鑑GMOサインのサービス情報や電子契約に関わる様々な情報を配信!

電子サイン・電子契約ならGMOサイン

「ハンコ脱出作戦」とは?

日本の脱印鑑文化を応援するブログメディアです。
電子印鑑GMOサインのサービス情報や電子印鑑、電子契約の最新情報をお伝えしています。

電子契約サービスを検討中の方向けに、
役立つ資料を提供しています。

電子契約サービスの基礎知識や選び方、導入ステップなどを分かりやすく紹介しています。
無料でダウンロードいただけます。ぜひご活用ください。

資料請求

印鑑の完全廃止に関するグループの取り組みと関連リンク集

印鑑の完全廃止に関するグループの取り組みと関連リンク集