安全性の高い公開鍵暗号なら最強?運用にみる短所|DApps(ブロックチェーンを活用したアプリケーション)のことなら

TOP  コラム  安全性の高い公開鍵暗号なら最強?運用にみる短所

安全性の高い公開鍵暗号なら最強?運用にみる短所

2018.10.16

コラム

安全性の高い公開鍵暗号なら最強?運用にみる短所

共通鍵暗号より安全でインターネット環境に適する公開鍵暗号
今日、私たちの生活に欠かせないインフラとなっているインターネットは、高い利便性と可能性を有している反面、広く一般に開かれたネットワークであるため、そこには善意ばかりでなく悪意も存在すること、攻撃者も存在することを念頭に置いておく必要があります。

普段、何気なく利用しているたわいもないシーンでは忘れがちですが、やりとりされる情報に伴う価値や通信の秘密はきちんと守られるべきであり、とくに経済的価値に直結するフィンテック領域の取引やショッピング決済、機密性・秘匿性の高い重要な情報を取り扱うケースでは、さらに高い水準での安全性と正確性、互いが相手を本人と確認した上での確実なやりとりが遂行されなければなりません。

そのための工夫として暗号技術があり、コンピュータ向けのデータ処理における技術方式としては、主に共通鍵暗号と公開鍵暗号の2種類があります。

データの暗号化と復号(元に戻すこと)を同じ鍵で行う共通鍵暗号は、ごくシンプルな仕組みと発想によるものであり、やりとりをする2者間で、あらかじめ作成した鍵を共有していくものです。暗号化と復号に同一の鍵を用いるため、やりとりするペアごとに鍵を生成・配布共有する必要があるほか、鍵が他者の手に渡っては元も子もありませんから、鍵の受け渡しをいかに安全なやり方で行うかが大きな問題となります。

直接相手を確認して鍵を手渡すといった方法ならば確実ですが、実際の状況や手間を考えるとあまり現実的ではありません。相手が増えれば増えるほど、そうした1個1個の鍵の管理も煩雑となります。

そこで考え出されたのが公開鍵暗号で、この方式は暗号化と復号に公開鍵と秘密鍵という別々の鍵を用いる点に大きな特色があります。この2つの鍵を用いることで、共通鍵暗号の問題点を解消し、現在のインターネット環境に適した安全性の確保、情報セキュリティ面の環境改善を成し遂げた公開鍵暗号ですが、実はこの暗号技術にも、やはりデメリットとなる弱点があります。

そこで今回は、技術として活用していくなら、メリットだけでなく、事前にきちんと知っておきたい情報として、公開鍵暗号をそのデメリットの観点からみていきましょう。

複雑さをもつ分処理が重い!
公開鍵暗号の場合、元データの送信者は公開鍵で暗号化を行います。受信者はその公開鍵と特別な関係で対になっている秘密鍵を、自分だけのものとして安全に管理しておき、送信者から暗号化済みのデータを受け取ったら、その秘密鍵で復号してデータを得ます。

公開鍵と秘密鍵の生成には、高度な数学上の仕組みが用いられており、たとえば「RSA」と呼ばれる代表的な手法では、桁数の大きな合成数の素因数分解が利用されています。形成する素因数が判明していれば、その積を求める(=暗号化する)ことは簡単ですが、合成数だけから分解を行う(=復号)ことはきわめて困難で、ときに天文学的ともいえる膨大な計算を必要とします。

このように一方向からの計算は容易であるものの、逆算はきわめて困難という数学的特性を利用し、公開鍵と秘密鍵を関連付けて、暗号化に用いる公開鍵では復号できないが、秘密鍵では復号できるという仕組みにしているのが公開鍵暗号になります。

公開鍵を盗まれたり、コピーされたりしたとしても、復号不可能で元データを守ることができるこの仕組みは、鍵の受け渡しや管理に気を遣うことなく、高い安全性を確保できる点で優れています。

しかし、複雑な計算処理を必要とするため、その分だけ処理速度が落ちやすく、毎回のやりとりに大きな負荷がかかるというデメリットがあります。シンプルな手法の共通鍵暗号とは、裏表の関係にあるメリット・デメリットともいえるでしょう。

またもう1点、公開鍵が本当に正しいやりとりの相手本人のものであるか、これだけでは確証がもてないというデメリットもあります。誰にみられても問題のない鍵という性質であるために、誰でもコピーや市販品購入が簡単に可能なシャチハタ印だけしかない状態と似ています。

電子署名応用、鍵の受け渡しに使うケースも
公開鍵が正しく本人のものであることを確認する、なりすましリスクへの対応策としては、登録と第三者機関による認証を経た「電子証明書」の仕組みがあります。この電子証明書とセットで用いることにより、公開鍵暗号はより安全で正確な情報のやりとりや取引を支えるものとなります。

残る問題は、負荷が過大になる点、処理速度が低下してしまう点です。このデメリットは、大きなデータを取り扱う際に深刻さを増します。そこで共通鍵暗号の問題点であった鍵の受け渡し部分に公開鍵暗号方式を導入し、ハイブリッド暗号方式として処理する、両方の長所を活かした仕組みも生まれています。

この場合、まず送信者は共通鍵で暗号化を行います。次に作成した共通鍵を、あらかじめ用意しておいた受信者側の公開鍵で暗号化、公開鍵暗号方式の処理を進めます。この状態で、暗号化したデータと、公開鍵暗号方式で暗号化した共通鍵を受信者へと送信するのです。

受信者は、秘密鍵で暗号化された共通鍵の復号を行い、復号して取り出した共通鍵を用い、データ本体の復号を続けて実行します。これで安全、かつスムーズにデータをやりとりすることができました。

このハイブリッド暗号方式では、公開鍵暗号が共通鍵という比較的小さなデータにのみ用いられるため、処理負荷を最小限に抑えながら安全性のメリットを発揮させられ、シンプルな共通鍵暗号並みのスピーディな暗号化・復号処理を可能としています。HTPPS通信などは、この方式を導入しており、現場ではこうしたかたちで共通鍵暗号と公開鍵暗号が用いられているのです。

また公開鍵暗号方式は、逆方向で用いることにより、電子署名として機能するため、そのスタイルでも活用されています。電子署名の場合、送信者はハッシュ関数と呼ばれる特殊な関数でデータの圧縮を行い、結果として得られたデータの要約にあたるハッシュ値を秘密鍵で暗号化します。

この状態でデータと暗号化結果を送信し、受信者側は公開鍵でハッシュ値の復号を行います。また送られてきたデータファイルからハッシュ関数を使って、こちらでもハッシュ値を作成します。それぞれのハッシュ値を比較し、同一であれば改ざんもない正確なデータが保持されており、相手も本人と確認されることとなります。

これは、元データに少しでも違いがあれば、ハッシュ値がまったく異なるものとして出力されるハッシュ関数の特性と、公開鍵暗号の逆方向で成り立っており、秘密鍵をもってこのような処理が正しく行えるのは、署名にある本人だけだといえるから成立するものです。

この電子署名の暗号技術はブロックチェーンで重要な役割を果たしており、不特定多数の参加するオープンなネットワークでの本人確認と高い耐改ざん性を実現するもととなっています。

(画像は写真素材 足成より)