セキュリティの基礎知識『暗号アルゴリズム』について

暗号アルゴリズムとは

暗号アルゴリズムとは、情報を保護するために使われる技術で、平文(普通のテキスト)を暗号文(暗号化されたテキスト)に変換する手順のことを指します。また、逆に暗号文を平文に戻す手順を復号アルゴリズムと呼び、この二つを合わせて暗号アルゴリズムと呼びます。

暗号アルゴリズムは暗号強度(暗号の破られにくさ)に密接に関係しています。暗号化製品を選定する際、暗号方式として記載されているRSA、AESなどの文字が何を示しているか正確に理解できているでしょうか。本コラムでは、このような暗号アルゴリズムの基礎について分かりやすく解説していきます。

鍵とは

暗号化における鍵とは、暗号アルゴリズムに従ってデータを暗号化および復号するためのパラメータのことを指します。このパラメータはランダムかつ非常に大きな数値です。

また鍵のビット長が大きい、つまり鍵空間が大きいほど、考え得る鍵の候補が多くなり、ブルートフォース攻撃で発見されにくくなります。

鍵が漏洩したり予測されたりすると、暗号化されたデータのセキュリティが危険にさらされる可能性がありますので、鍵はデータそのものと同様に非常に重要なものです。また、鍵の強度は解読や暗号解読の攻撃に対する耐性を示します。より長くランダムな鍵を使用すると、解読に必要な計算量が増え、より強固なセキュリティを提供することができます。

共通鍵暗号(対称暗号)

暗号アルゴリズムには、共通鍵暗号と公開鍵暗号の2種類があります。

共通鍵暗号は、暗号化と復号に同じ鍵を使う方式です。データの送信者は共通鍵で平文を暗号文に変換し、受信者に対して暗号文と共通鍵を秘密に共有します。受信者は共有された鍵を使用して暗号文を平文に戻し、データを閲覧します。

共通鍵暗号の代表的なアルゴリズムには、DES、3DES、AESなどがありますが、どれを使用した製品を選定すればよいでしょうか。上記三つの中で選ぶべきはAESを使用している暗号化製品です。AESはNISTによって標準化され、広く信頼されている暗号アルゴリズムです。高速な処理が可能であること、また世界中で広く採用されているため、幅広いプラットフォームで使用することが可能です。

AESは電子政府推奨暗号リスト(CRYPTREC暗号リスト)※1 にも128ビットブロック暗号として掲載されています。電子政府推奨暗号リストに記載されている暗号アルゴリズムはCRYPTRECにより安全性や実装性能が確認されているので、セキュリティ担当者はこのリストを参考に製品選定を進めるべきでしょう。

最後に、共通鍵暗号の課題として、鍵配送問題があります。共通鍵暗号は送信者と受信者が同じ鍵を使うため、鍵を安全に共有する手段が必要です。また、通信する相手が増えるほど、鍵の管理が困難になる可能性があります。この鍵配送問題を解決したのが、次に紹介する公開鍵暗号の方式です。

公開鍵暗号(非対称暗号)

公開鍵暗号は、暗号化に使用する鍵と復号に使用する鍵が異なる方式です。共通鍵暗号とは異なり、公開鍵と秘密鍵の2種類の鍵を使用します。公開鍵は公開され、秘密鍵は所有者だけが保持するようになっています。

共通鍵暗号では暗号化と復号に同じ鍵を使うため、鍵配送問題がありました。しかし、公開鍵暗号は暗号化と復号に別の鍵を使うため、鍵を共有する必要がありません。

受信者は、事前に公開鍵を送信者に共有します。これはあくまで暗号化のための鍵なので、盗聴などで外部に漏れてしまっても特に問題ありません。送信者は公開鍵でデータを暗号化し、受信者へ送り返します。受信者は公開鍵のペアとなる秘密鍵でデータを復号します。

公開鍵暗号アルゴリズムで現在最も使われているのがRSAです。RSAもまた、AESと同様に電子政府推奨暗号リストに掲載されている信頼性の高いアルゴリズムです。

公開鍵暗号の課題として、公開鍵の認証の問題があります。送信者は受信者から入手した公開鍵が本当に正しい公開鍵であるかどうかを判断するため、公開鍵の証明書により認証を行う必要があります。また、共通鍵暗号に比べて処理速度が大幅に遅いという問題もあります。

ハイブリット暗号システム

ハイブリット暗号システムは、共通鍵暗号と公開鍵暗号を組み合わせた方法です。この方法では、共通鍵暗号の高速な処理性能と公開鍵暗号の強固なセキュリティ性を組み合わせることで、効率的かつ安全なシステムを実現します。

ハイブリット暗号システムでは、まずデータを高速処理が可能な共通鍵暗号で暗号化します。次に暗号化に使用した共通鍵を公開鍵で暗号化します。公開鍵暗号化は処理速度が遅いのがデメリットですが、データそのものではなく鍵のみを暗号化するのであれば、処理時間の遅さは問題ありません。このように、ハイブリッド暗号システムの利点は、高速処理が可能な共通鍵暗号と安全性の高い公開鍵暗号の利点を組み合わせることで、効率とセキュリティのバランスを実現する点です。

ハイブリッド暗号方式は、安全な通信やデータの保護に広く使用されており、一般的なセキュリティプロトコルやアプリケーションで採用されています。例えば、SSL/TLSプロトコル(HTTPS)やS/MIME(メールの暗号化)などがハイブリッド暗号方式を利用しています。

独自の暗号アルゴリズムの安全性

上記のように、広く一般的に公開されているアルゴリズムより、企業が独自に暗号アルゴリズムを開発し、そのアルゴリズムを秘密にしている方が安全性が高いと考える方もいると思いますが、実際はそうではありません。暗号アルゴリズムというのは、アルゴリズム自体は公開されていることで、世界中の研究者からそこに脆弱性等がないか研究され、それに耐えているということが信頼性に繋がります。独自の暗号アルゴリズムを使うということは、そのような研究の対象にならないということですので、そのアルゴリズムの信頼性はないということになってしまいます。

NISTやCRYPTRECのような政府系機関が推奨している暗号アルゴリズムを使用しているということが、その暗号化製品の信頼性を高めることになります。

DataClasysの暗号方式について

ファイル暗号化ソフト『DataClasys』の暗号方式は、共通鍵暗号方式と公開鍵暗号方式のハイブリットです。共通鍵としてAES、公開鍵としてRSAを採用しています。AES、RSA共に電子政府推奨暗号リストに記載の信頼性の高い暗号方式であり、十分な鍵のビット長を持つことで高いセキュリティを提供しています。

DataClasysはファイルをAESの共通鍵で暗号化し、共通鍵をRSAの公開鍵で暗号化しています。ペアとなる秘密鍵は専用のサーバで集中管理され、暗号化ファイルを閲覧するためにはサーバへアクセスし、ユーザや権限の認証を行った上で鍵が配信され、ファイルを開ける仕組みとなっています。

このような仕組みから、弊社の暗号化製品は、中央省庁や金融業、製造業など多くの企業や組織において、信頼性の高い暗号化製品として採用されています。弊社の暗号化製品を導入することで、機密情報の漏洩や不正アクセスから保護し、安全な情報管理を実現することができます。

参考

※1 CRYPTREC暗号リスト(電子政府推奨暗号リスト) | CRYPTREC