企業のデータを情報漏えいや改ざんから防ぐ「暗号化」。
企業の社会的責任としてプライバシー・セキュリティ対策は必須要件となっていますが、暗号化には複数の方式があり、それぞれにメリットとセキュリティ・運用上の注意点が存在します。目的にあわせて適切なセキュリティ対策を行うためには、方式ごとの特徴や違いを理解することが必要です。
今回は暗号化の主な方式について、それぞれの特徴やアルゴリズム、活用例まで解説。また暗号化と混同されやすい「ハッシュ化」との違いも詳しく紹介します。
代表的な暗号化の方式は、データを暗号化・復号する際に使われる鍵の管理方法によって
の3つに分けられます。
まずはそれぞれの方式の特徴とアルゴリズムについて解説します。
共通鍵暗号方式とは、データを暗号化・復号する際に同じ鍵を使う方式のことです。具体的な暗号化の流れは、以下のとおりです。
共通鍵暗号方式の場合、共通鍵が漏えいすると簡単にデータを復号されてしまうため、セキュアな環境下でデータの送受信が必要なこと、共有相手ごとに共通鍵を作成しなければならないことなどが注意点として挙げられます。
その一方で暗号化にともなう計算がシンプルになり処理速度が比較的高速になるため、大量のデータを暗号化する際に用いられています。
共通鍵暗号方式にはいくつかの種類(=暗号アルゴリズム)があります。主なものは「DES」「RC4」「AES」などがあり、それぞれの特徴を紹介します。
(※)鍵の長さ:暗号鍵を構成するビット数で、ビット数が大きいほど暗号強度は増す
公開鍵暗号方式とは、データを暗号化・復号する際にそれぞれ異なる鍵を使う方式のことです。具体的な暗号化の流れは以下のとおりです。
公開鍵暗号方式の場合、インターネット上で公開されている公開鍵を使えば誰でも暗号化できるため、送信者の数にあわせて鍵を増やす必要がなく、復号に使う「秘密鍵」も受信者が作成するため、鍵の送付に伴う流出のリスクがないことが特徴です。
しかし、公開鍵暗号方式の場合、共通鍵暗号方式と比べて複雑な計算が必要で処理に時間がかかることが注意点として挙げられます。そのため、大量のデータを扱う場合には次に紹介するハイブリッド暗号方式のように共通鍵暗号方式と組み合わせて使用されます。
公開鍵暗号方式の主な暗号アルゴリズムには、「RSA」「楕円曲線暗号」があります。それぞれ特徴を紹介します。
ハイブリッド暗号方式は、共通鍵暗号方式と公開鍵暗号方式の特徴を組み合わせた方式のことです。具体的な暗号化の流れは、以下のとおりです。
「共通鍵の受け渡し」=公開鍵暗号方式
「暗号化データの送受信」=共通鍵暗号方式
ハイブリッド暗号方式は、共通鍵暗号方式の持つ鍵の受け渡しの課題を公開鍵暗号方式でカバーし、公開鍵暗号方式が持つ処理速度の遅さを共通鍵暗号方式でカバーしています。
ハッシュ化とは、データを不規則な文字列に変換する手法のことです。
変換されたデータはハッシュ値と呼ばれ、同じデータからは常に同じハッシュ値が生成されますが、少しでもデータの内容が異なるとハッシュ値は全く異なるものになります。
暗号化と混同されやすいハッシュ化ですが、暗号化の主な違いは「不可逆性(元に戻せない性質)」にあります。
暗号化の場合は暗号化されたデータを鍵で復号し、内容を確認することができますが、ハッシュ化はデータの変換ができるのみで、データを元に戻す(復号)ことはできません。
ハッシュ化は、不可逆性と呼ばれるこの性質を活かし、パスワード管理などに利用されています。
たとえば、ユーザーがパスワードを初期登録する際にハッシュ化によってパスワードが変換されハッシュ値が得られます。ログインをする際は、入力されたパスワードのハッシュ値と登録の際に保存されたハッシュ値を比較することで、ユーザーが同一であると認証できます。
また、この方法であれば仮にデータが漏えいした場合にも流出するのはハッシュ値のみとなり、パスワードを元に戻すことができないため不正利用の防止につながります。
それでは、暗号化方式が実際にどのような場面で活用されているか、具体例を用いて解説します。
電子署名(デジタル署名)とは、その文書が正式なもので、改ざんされていないと電子上で証明することです。書類に署名や押印をする場合は印影が残りますが、電子文書にはサインをしたり押印することはできないため、認証局と呼ばれる第三者機関が発行する「電子証明書」を使って正当性を保証します。この電子証明書の発行には、公開鍵暗号方式の「公開鍵と秘密鍵が常にペアとして機能する」という性質が活用されています。
電子署名は次の流れで行われます。
この際、2のように復号できれば「このデータを暗号化した(=電子署名をした)のは契約者本人である」との証明になります。
ただし、この証明はあくまで「秘密鍵を持つのは、契約者(署名者)本人のみである」ことが前提です。仮に秘密鍵が第三者の手に渡ってしまった場合は、本人確認の意味をなさなくなってしまうため、鍵の厳重な管理が必要です。
SSL(Secure Sockets Layer)/TLS(Transport Layer Security)とは、インターネット上でデータを安全に送受信するために暗号化する仕組みのことです。鍵を使って通信を暗号化するとともに、第三者機関が発行するサーバー証明書を使ってサーバー認証を行うことで、データの盗聴や改ざん、なりすましなどを防ぎます。
SSL/TLSは、公開鍵暗号方式と共通鍵暗号方式を組み合わせたハイブリッド暗号方式が使われています。具体的には、次の流れで行われます。
ハイブリッド暗号は、最初に公開鍵を使って共通鍵を作成し、その共通鍵でデータを暗号化します。これにより共通鍵暗号方式がもつ情報処理の速さと、公開鍵暗号方式が持つ利便性を両立することができます。
ただし、SSLは脆弱性が指摘されていることから、企業は常に最新の脆弱性情報・セキュリティ対策情報をチェックし、他のセキュリティ対策の検討や組織内のガバナンス強化に取り組むことも重要です。
SSL/TLSについては下記コラムにて詳しく解説しています
https://www.eaglys.co.jp/news/column/encryptnetwork
秘密計算とは、暗号化した状態で機密なデータを計算できる技術のことです。
従来の暗号はデータの通信・保管時のみ暗号化を行うことでデータを保護します。このため、解析等のデータ処理を行う際に一度暗号を解いて元の状態に戻さなければならず、処理中のセキュリティが脆弱になるリスクがありました。
秘密計算技術を使えば、通信・保管時だけでなくAIの学習時もデータを暗号化したままで処理できるため、データ漏えいや不正利用のリスク回避につながります。
この秘密計算の手法の一つである「準同型暗号方式」には公開鍵暗号方式の仕組みが応用されています。
準同型暗号方式では、データを暗号鍵を使って暗号化し、暗号化したままの状態で共有や計算、解析します。得られた解析結果は秘密鍵を使って復号するまで開示されない仕組みになっているため、複数の競合組織がデータを持ち寄り、互いに中身を見ないままに解析結果を得る場合などに活用されています。
※EAGLYS サービス紹介ページはこちら
https://www.eaglys.co.jp/service
準同型暗号方式は、現在では主に「格子」と呼ばれるものを使って鍵の解読難度を高めることで実現されています。
秘密鍵の元となるベクトルを格子上に作り、格子を任意の角度に傾けることで、秘密鍵のベクトルを組み合わせて公開鍵を作る際に誤差が生まれ、秘密鍵を割り出す計算を困難にする仕組みです。
この格子暗号は、何百次元もの複雑なベクトルを扱うことができ、格子の傾け方にも無数の可能性が存在します。そのため、これまでのコンピュータには難しかった高度な計算を可能にすると注目を集める「量子コンピュータ」が実現したとしても、その計算速度に耐え得る暗号であると言われています。
暗号化には主に「共通鍵暗号方式」「公開鍵暗号方式」「ハイブリッド暗号方式」の3方式があり、それぞれに異なる特徴があります。暗号化方式を選ぶ際は、方式ごとのメリットや懸念点、アルゴリズムの特徴を押さえたうえで、目的にあった方式を選ぶ必要があります。
EAGLYSでは、データベース暗号化ソフトウェアの「DataArmor Gate DB」をはじめ、秘密計算ソリューションを開発提供し、ユーザーニーズに最適な提案をおこなっています。
デモンストレーションやデータ秘匿性担保とデータ利活用の両立についてのディスカッションから対応していますので、お気軽にご相談ください。