amazon で買い物をしたり、LINE やメールで友だちと会話したりなど、日ごろからインターネット上で通信を行うシステムを利用していると思います。何気なくインターネット上でデータのやり取りをしていますが、例えば、amazon で注文した品[…]
データの暗号化
データの「暗号化」とは、元となるデータにある特別な処理を行うことで、元データとは別のデータに変換することで、第三者が見てもデータの内容がわからないように隠ぺいすることができる技術です。
また、暗号化されたデータを元の状態に戻すことを「復号」とよびます。(「暗号化」の対比語は「復号化」ではなく「復号」です。)
コンピューターの世界において、データの暗号化と復号の処理は以下のようなイメージで行われます。
暗号化
暗号化を行うアルゴリズムに対し、元データと鍵をパラメータとして渡すと暗号化されたデータが生成されます。
復号
復号を行うアルゴリズムに対し、暗号化されたデータと鍵をパラメータとして渡すと元のデータが得られます。
“暗号化を行うアルゴリズム” と “復号を行うアルゴリズム” は数学的な関連性があり、これらをセットで “暗号化方式” となります。
現在使用されている暗号化方式のアルゴリズムの詳細は公開されており、誰でもどのような仕組みで暗号化されているのかを確認することはできますが、その暗号化方式で暗号化されたデータを復号するためには『鍵』が必要になります。
暗号化に使用される鍵と復号に使用される鍵はセットとなっており、暗号化を行った鍵とセットとなる鍵でしか、暗号化されたデータを復号することはできません。
つまり、暗号化されたデータを復号できるのは、正しい鍵を保持している人のみとなりますので、鍵を保持しない第三者には復号することができず、暗号化されたデータをインターネット上で送受信しても、内容を第三者が盗聴するリスクを防ぐことができます。
暗号化方式の種類として、大きく分けると “共通鍵暗号化方式” と “公開鍵暗号化方式“ の2つがあります。
暗号化方式の例:シーザー暗号
古代からある有名な暗号化方式の1つに、”シーザー暗号” と呼ばれるものがあります。
シーザー暗号の仕組みは、暗号化の対象となる文字列を、アルファベット順に一定の文字数のみずらすというものです。
例えば、ずらす文字数が “3” で、暗号化する対象のデータが “ABC” の場合、暗号化されたデータは各文字をアルファベット順に3 文字分先に進めた “DEF” となります。
また、元に戻す(復号)時は、各文字を 3 文字分逆戻りして “ABC” という元データを得ることができます。
この例で考えると、暗号化方式は “シーザー暗号“、鍵は “3” となります。
このように、どのような仕組みで暗号文を生成するのか決めたアルゴリズムが暗号化方式で、暗号文を算出するために必要なパラーメーターを鍵と呼びます。
インターネット上で通信を行う場合、通信相手同士で事前にどの暗号化方式を利用するかを決めておいて、鍵となるデータを共有しておけば、第三者がデータの内容を解読できないように送信することが可能です。
実際に使用されている暗号化方式は非常に複雑なアルゴリズムとなっているため、暗号化されたデータがどの暗号化方式で暗号化されているかわかっていたとしても、復号するための鍵がない限り、元データを算出するこはできません。
(逆に言うと、鍵がないにも関わらず元データを一部でも算出することができたら、それは脆弱のある暗号化方式とみなされます)
暗号化の仕組みのざっくりとしたイメージができたところで、次回は暗号化方式の 1 つである “共通鍵暗号化方式” について説明します。
前回の講座 [sitecard subtitle=PKI講座第2回 url=https://pkiwithadcs.com/data_encryption/ target=] 前回、データの暗号化の技術の概要について紹介しました。[…]