【PKI 基礎】データの暗号化

前回、インターネット上に潜む脅威の一つに、通信でやりとりするデータを第三者に盗み見られる盗聴があるというお話をしました。

盗聴という脅威に対しては、送信するデータを暗号化することで対処することができます。

暗号という言葉からイメージがつく通り、送信するデータとは全く異なるデータに変換して、変換されたデータ(=暗号文)からは元のデータを読み解けないようにするための技術です。

データの暗号化の技術について、イメージがつくように概要を見ていきましょう。

データの暗号化

データの「暗号化」とは、元となるデータにある特別な処理を行うことで、元データとは別のデータに変換することで、第三者が見てもデータの内容がわからないように隠ぺいすることができる技術です。

また、暗号化されたデータを元の状態に戻すことを「復号」とよびます。(「暗号化」の対比語は「復号化」ではなく「復号」です。)

コンピューターの世界において、データの暗号化と復号の処理は以下のようなイメージで行われます。

 

暗号化

暗号化を行うアルゴリズムに対し、元データと鍵をパラメータとして渡すと暗号化されたデータが生成されます。

 

復号

復号を行うアルゴリズムに対し、暗号化されたデータと鍵をパラメータとして渡すと元のデータが得られます。

 

 

暗号化を行うアルゴリズムと復号を行うアルゴリズムは数学的な関連性があり、これらをセットで “暗号化方式” となります。

現在使用されている暗号化方式のアルゴリズムの詳細は公開されており、誰でもどのような仕組みで暗号化されているのかを

確認することはできますが、その暗号化方式で暗号化されたデータを復号するためには鍵が必要になります。

暗号化に使用される鍵と復号に使用される鍵はセットとなっており、暗号化を行った鍵とセットとなる鍵でしか、暗号化されたデータを復号することはできません。

つまり、暗号化されたデータを復号できるのは、正しい鍵を保持している人のみとなりますので、鍵を保持しない第三者には復号することができず、暗号化されたデータをインターネット上で送受信しても内容を第三者が盗聴するリスクを防ぐことができます。

暗号化方式の種類として、大きく分けると “共通鍵暗号化方式” と “公開鍵暗号化方式” の2つがあります。

 

暗号化方式の例:シーザー暗号

古代からある有名な暗号化方式の1つに、”シーザー暗号” と呼ばれるものがあります。

シーザー暗号の仕組みは、暗号化の対象となる文字列をアルファベット順に一定の文字数のみずらすというものです。

例えば、ずらす文字数が “3” で、暗号化する対象のデータが “ABC” の場合、暗号化されたデータは各文字をアルファベット順に3 文字分先に進めた “DEF” となります。

また、元に戻す(復号)時は、各文字を 3 文字分逆戻りして “ABC” という元データを得ることができます。

この例で考えると、暗号化方式は “シーザー暗号”、鍵は “3” となります。

このように、どのような仕組みで暗号文を生成するのか決めたアルゴリズムが暗号化方式で、暗号文を算出するために必要なパラーメーターを鍵と呼びます。

 

インターネット上で通信を行う場合、通信相手同士で事前にどの暗号化方式を利用するかを決めておいて、鍵となるデータを共有しておけば、第三者がデータの内容を解読できないように送信することが可能です。

 

実際に使用されている暗号化方式は非常に複雑なアルゴリズムとなっているため、暗号化されたデータがどの暗号化方式で暗号化されているかわかっていたとしても、復号するための鍵がない限り、元データを算出するこはできません。

(逆に言うと、鍵がないにも関わらず元データを一部でも算出することができたら、それは脆弱のある暗号化方式とみなされます)