IT系が苦しむ「暗号」についての理解
暗号について
IT系が苦しむ暗号についての理解です。
暗号とは、ある一定の法則(アルゴリズム)に基づいてデータを変換し、元のデータを第三者に知られない様子にする技術である。また、暗号技術によってできることは、秘匿(盗聴の防止)・認証(なりすまし防止)・完全性(情報の偽造防止)である。
現在使用されている暗号技術は主に、共通鍵暗号方式と公開鍵暗号方式の2つに大きく分けることができる。
共通暗号化方式
暗号化と復号化で同じ鍵を使う暗号方式。
扱いが簡単であり、処理速度が速い半面、相手先ごとに固有の鍵を作成しなければならないこと、あらかじめ安全な方法で相手に鍵を渡さなければならないことから、限られた特定の相手とのやり取りに向いている。
共通鍵暗号方式は、暗号化する際の「鍵」と復号化する際の「鍵」が同一の暗号化方式です。
「鍵」情報は、二者間(送信側と受信側)のみ共有されているので安全な通信といえます。
通信の流れとしては、
- 送信側が、データを「共通鍵」で暗号化し、受信側へ送信する
- 受信側が受け取ったデータを、同じ「共通鍵」で復号化し、データを取得する
共通鍵暗号方式の長所は,「処理が比較的高速である」共通鍵暗号方式のアルゴリズムには様々なので,大量データの暗号化に向いています。
短所となるのは,「鍵の管理」という点です。共通鍵暗号方式の仕組みを利用するには,受信者があらかじめ鍵を入手しておく必要があります。暗号化したデータ自体は,盗聴されても鍵がなければ中身はわかりません。暗号化したデータをメールに添付してインターネット経由で相手に送っても安全は確保できます。しかし,受信者が暗号鍵を知らないと復号できません。
しかし、「鍵は3文字」と記述したとき,伝送経路上で悪意のある第三者が盗聴したら,この鍵で暗号化したデータはすべて悪意のある第三者に筒抜けになってしまいます。
また,大勢で相互に共通鍵暗号方式を利用してデータをやり取りするとき,鍵の数が増えてしまい,管理が大変になるのも短所の一つです
n人の数で共通鍵暗号方式を使う場合、存在するメンバー数(ノード)の組み合わせ分だけ鍵が必要になります。メンバー数(ノード)をnとした場合に必要な鍵の数を式にすると
「n×(n−1)÷2」(個)
鍵が必要になります。
公開鍵暗号方式
公開鍵と秘密鍵の対になる2つの鍵を使ってデータの暗号化/復号化を行う暗号方式。
公開鍵暗号方式では、“暗号文を作り出す鍵”と“暗号文を元に戻す鍵”が異なる。暗号通信をしたい人は、まず独自に2つの鍵のペアを作成する。1つは暗号文を作り出す鍵で公開鍵と呼ばれ、通信相手に知らせる鍵としてインターネット上でもやりとりできる。だれでもこの公開鍵で暗号文を作成でき、鍵を公開している人に送ることができる。暗号文の受け手は、公開鍵とペアになっている、本人だけが分かるように厳重に管理された秘密鍵で復号する。
公開鍵暗号方式は、暗号化/復号化する際の「鍵」に、「公開鍵」と「秘密鍵」の二つを使います。
受信側が「公開鍵」と「秘密鍵」を持っていて、「公開鍵」は ”誰でも取得できる鍵”で、「秘密鍵」は ”受信側のみ保持している鍵” となります。
以下、通信の流れになります。
- 送信側は、受信側が公開している「公開鍵」を取得する。そして取得した「公開鍵」で、送信するデータを暗号化して送信する
- 受信側は、受け取ったデータを「(受信側のみ保持している)秘密鍵」で復号化して、データを取得する
公開鍵で暗号化したデータは,そのペアの個人鍵でしか復号できない。個人鍵で暗号化したデータは,そのペアの公開鍵でしか復号できない。(上記の例は秘匿の場合)
つまり、Aの公開鍵とAの秘密鍵、Aの秘密鍵とAの公開鍵、Bの公開鍵とBの秘密鍵、Bの秘密鍵とBの公開鍵の対になっている鍵でしか開けないということである。
公開鍵暗号は、鍵が、内側と外側で二重構造になっていて、内側の鍵は秘密にし、外側の鍵を後悔するという仕組みになっている。内側の鍵を秘密鍵または個人鍵と呼び、外側の鍵を公開鍵という。公開鍵の主な用途は認証・著名である。
共通暗号鍵方式と公開鍵暗号方式の特徴
用途・機能 種類 |
秘匿 |
認証 |
鍵管理・配送 |
応用 |
処理速度 |
◎ |
○ |
通信相手ごとに 全て必要 |
画像などの大容量 データの高速暗号化 |
高速 |
|
○ |
◎ |
秘密鍵のみ必要 相手の公開鍵認証は必要 |
低速 |