誰もが知っていてほしい暗号化の基本知識

自分のパソコンから情報を別のパソコンへ送信すると情報はパケットに分割されてネットワークを経由して届けられます。

ネットワークに潜む危険性

この時送られるパケットが生の情報のままだと送信途中で盗聴や改ざん、なりすましが容易に可能となってしまいます。そこで大切な情報を他人から見られないようにするために暗号化電子署名といった方法が採用されています。

暗号化技術

暗号化は「盗聴」に対する対策で、情報を第3者には意味をとれない形へと変換して送信することを指します。

例えばAさんからBさんへ「おはよう」というメッセージを送ろうとした時に、各文字を1文字前のひらがなを使って暗号化して「えのゆい」という形で送信するといったイメージです。

暗号化をすることによって仮に第3者から通信内容を覗き見されても情報の意味はわからないため安心して情報を送信することができます。

暗号化

この時「ひらがなを1文字前にずらす」などの暗号化に使う情報をといい、情報の受け手は暗号化された情報をそのままでは解読できないので鍵を使い復号化することで情報を受け取ります。

暗号化は鍵の使い方の異なる共通鍵暗号方式公開鍵暗号方式という2つの暗号方式が代表的です。2つの暗号方式は暗号化の基本となる手法なのでしっかり押さえましょう。

メリットデメリット代表アルゴリズム
共通鍵暗号方式計算量が少ない鍵の配送や管理の手間が大きいAES
公開鍵暗号方式鍵管理が容易計算が複雑RSA

共通鍵暗号方式

共通鍵暗号方式は送り手と受け手が同一の鍵を用いる方式です。

後に登場する公開鍵暗号方式よりも暗号化・復号化の計算量は少ないというメリットがあります。一方で通信の際に事前に鍵(秘密鍵)を安全に相手に渡す必要があるためインターネットのような不特定多数を相手に通信する場合は無理が生じます。

共通鍵暗号方式

公開鍵暗号方式

公開暗号方式は暗号化と復号化で異なる鍵を用いる方式です。

特徴なのは誰でも手に入れられる鍵(公開鍵)をネットワーク上に公開しておくという点です。

情報の送り手は受信者が公開している公開鍵で使って暗号化します。そして届いた情報を受け手は自分だけが持つ秘密鍵で復号化することで中身を確認する手法です。

つまり公開鍵は情報の受け手がこれを使って暗号化してねとお願いしている鍵であり、受信時にはペアとなる秘密鍵を使って復号化することで情報を確認しています。

鍵を配送する手間がないメリットがある一方で、暗号化や復号化の処理が複雑であるために高速化が難しいというデメリットがあります。

公開鍵暗号方式

代表的なアルゴリズムとしてRSAという大きな素数の素因数分解の困難性を利用したものなどがあります。

RSA暗号は量子コンピュータの実現で暗号が解かれてしまうと騒がれているアルゴリズムです。素数を片っ端から割り算して素因数分解できたら暗号が解かれてしまうので、量子コンピュータのような超高速処理が可能なコンピュータにとっては容易に解決できる問題となってしまうのです。

公開鍵・秘密鍵を実際にどのように作成しているのかはこちらを参考にしてください。

電子署名

暗号化によって情報を覗き見られる心配はなくなりましたが「改ざん」や「なりすまし」の心配は依然として残っています。続いてこれらの対策として電子署名について紹介します。

電子署名は公開鍵暗号方式を応用して、送信者本人が送信したことを証明する技術です。

ディジタル署名

具体的には以下の手順でやり取りが行われます。

  1. 送り手は情報をハッシュ化してメッセージダイジェストという固定長のビット列に変換
  2. メッセージダイジェストを自身の秘密鍵で暗号化して電子署名を作成し、情報に添付
  3. 公開鍵暗号方式で受け手へ情報を送信
  4. 受け手は電子署名を送り手の公開鍵で複合し、得られるハッシュ値を受け取った情報の原文のハッシュ値と比較して一致するかを確認
  5. 2つのハッシュ値が一致する場合は改ざんがされてないことがわかる
電子署名

情報が改ざんされたりなりすましで送信されている場合は受け取った情報のハッシュ値と送り手の公開鍵で復号化したハッシュ値が異なるため正当な送信者からの情報かどうかを判定することができます。

ハッシュ関数

ハッシュ関数とは入力から出力を予想することが極めて難しい一方向性関数です。出力値(ハッシュ値)は関数により決まった固定長で、少しでも入力値が異なると異なるハッシュ値が生成されます。

代表的なハッシュ関数として以下の関数があります。

ハッシュ関数ハッシュ値のビット長
MD5128ビット
SHA-1160ビット
SHA-256256ビット

だけど電子署名だけでは足りない

電子署名を使うことで確かに署名の検証は可能となりますが、ここで疑問に思うのはそもそも検証する公開鍵は本物なのでしょうか?

公開鍵と秘密鍵は誰でも自由に作成することができます。

そのためペアの鍵を生成した人がすでに偽物である可能性が考えられます。そのため鍵の持ち主が本人であることを何らかの形で証明する必要があります。

一般的には電子認証局(CA)という第3者機関によって公開鍵の持ち主は管理されています。電子認証局はディジタル証明書の発行と作成を行っており、これを利用することで公開鍵の正当性を確認することができます。

コメント

タイトルとURLをコピーしました