7.2 暗号化
7.2.1 暗号化の有効性

外部のネットワークと通信が行われる際に、そのデータが途中で捕捉され読まれてしまう危険性があります。特に機密情報を送信する場合には大きな問題となります。また、保管されているデータも不正にアクセスされたり、盗まれたりするなど、さまざまな危険性をもっています。

 「暗号化」された情報やデータは、目的としている受取り手以外にはまったく無意味なゴミに見えるように変換されています。暗号化された情報を表示して読めるようにするには、それを「復号」する必要があります。つまり、メッセージを元の形式に戻すということです。そして、それは意図した受取り手にしかできません。
 

コース (A  B  C  D  E)



7.2.2 暗号化のアルゴリズムと鍵


 

(1) アルゴリズムと暗号鍵
 暗号化にはアルゴリズムに加えて秘密の値を必要とします。この秘密の値は「鍵」と呼ばれます。「良い」暗号システムであれば、アルゴリズムを人に知られたとしても鍵の値を秘密にしておけば、その暗号を解読することができません。この鍵の概念は、組み合わせ鍵におけるダイヤルの組み合わせに類似しています。組み合わせ鍵の概念(正しい順序で秘密の数にダイヤルを合わせれば鍵が開く)は良く知られていますが、正しいダイヤルの組み合わせを知らなければ開くことはできません。
 
(2) 鍵の長さ

暗号アルゴリズムは、鍵がなければ破れないわけではありません。暗号解読者は、正しく復号できるまで、考えられる全ての鍵を順に試していくことも可能です。暗号のセキュリティは、解読者がそれを破るのにかかる仕事の量によって決定されます。もしもその暗号を破るのに100年かかるとしたら、それは極めて安全であるといえるでしょう。
 
一般的には、鍵の長さをより長くすることで、暗号強度を高めることができます。鍵の長さとは、鍵の数を示します。  例えば8ビット(256通り)の鍵を1ビット長くするだけで、解読者の仕事は2倍になります。 (考えられる鍵の数が2倍になります)
 

コース (A  B  C  D  E)



7.2.3 鍵暗号方式
 コンピュータ上の通信で利用される暗号化の仕組みには、共通鍵暗号方式と、公開鍵暗号方式があります。
 
(1) 共通鍵暗号方式

共通鍵暗号方式は、暗号化と復号に同じ鍵(共通鍵)を利用します。

暗号文の生成には主に下記の2つの方式が使われます。
@ ストリーム型暗号

 書かれた平文をビット単位の状態で排他的論理和をとり、平文がそのまま1ビットごとに暗号化されていく方式です。復号では暗号文と鍵のビットごとの排他的論理和をとったものが平文となります。
 
この方式はPPTP(Point to Point Tunneling Protocol)などの暗号化処理に使われているRC4で使用されています。
A ブロック型暗号
 平文をビット単位で1ブロックの集まりごとに区切り、鍵という数値をパラメータとし置換・転置などの暗号化を行う方式です。鍵を複数に増やし複数回の暗号化によって暗号化強度が進み安全性が向上します。現在、DES(Data Encryption Standard)をはじめとする多くの秘密鍵暗号が、この方式を採用しています。

共通鍵暗号方式の課題
共通鍵暗号方式
には主に二つの課題があります。
(a) 鍵の受け渡し
第三者にわかってはいけない鍵をどのようにして通信相手に渡すかが課題になります。近距離であれば、物理的なメディアを利用して手渡すことも可能ですが、遠距離の場合は、渡すまでの過程で第三者に知られてしまう可能性があります。
(b) 鍵の管理
すべての人と完全に安全な通信を行おうとした場合、通信相手の数だけ鍵が必要になります。100人と通信する場合には100個の鍵が必要となります。

 

(2) 公開鍵暗号方式

共通鍵暗号方式は動作速度も速く、より強固な暗号化が行えるのですが、送信する相手1人に対して1つの鍵が必要になるため、電子メールのように複数の相手と通信する場合、鍵の管理が非常に複雑になってしまいます。
 
この問題を解決するために生まれた暗号化方式が、公開鍵暗号方式です。

 公開鍵暗号方式は、暗号化と復号に使う鍵を別々に作成し、使用する方式です。

 受信側は、2つの鍵を準備します。1つは、自分宛にメッセージを送る側が使用する暗号化の鍵(公開鍵)で、文字通り公開しておきます。もう1つは、受信時に復号する時に使用する復号鍵(秘密鍵)です。
 送信側は、受信側が公開している暗号鍵(公開鍵)を入手し、これを利用して送信メッセージを暗号化して送ります。
 受信側では、秘密に保持している復号鍵(秘密鍵)を用いて受信メッセージを原文に戻します。
 

コース (A  B  C  D  E)