データを送るとき,伝送路上での内容秘匿(ひとく)のために,データを暗号化して
送る方法がある。
ここでは,データから暗号化ファイルを作成するプログラムについて考える。
〔暗号化,復号及び鍵(かぎ)の説明〕
送り手と受け手が了解して決められた関数とその逆関数及びそれぞれに
与える鍵と呼ばれるパラメタを用い,データを変換する。送り手側の処理を
暗号化,受け手側での処理を復号という。
〔共通鍵暗号方式の説明〕
次のように暗号化と復号に同一の鍵を用いる方式である。この鍵を
“共通鍵”と呼び,送り手と受け手が共有する。
この方式を使うと暗号化及び復号の処理を比較的高速に行えるので,
このプログラムでは,通信文の暗号化に用いる。

〔非対称鍵暗号方式(公開鍵暗号方式)の説明〕
公開鍵と秘密鍵の一対の鍵を用いる方式である。ここでは,公開鍵で
暗号化されたデータは対応する秘密鍵でしか復号できず,秘密鍵で暗号化
されたデータは対応する公開鍵でしか復号できないものとする。
秘密鍵は,作成した本人だけが所有する。公開鍵は公開しているので,
だれでも入手が可能であり,改めて相互に受け渡す必要はない。
このプログラムでは,非対称鍵暗号方式を次のように用いる。
(1) 受け手の公開鍵を用いて通信文の暗号化に用いた共通鍵を暗号化する。
これによって,共通鍵を受け手に安全に渡すことができる。

(2) 送り手の秘密鍵を用いて送り手の名前などを暗号化する。受け手が
これを送り手の公開鍵で復号し,送り手の名前などが正しく復号できれば,
送り手の正当性が確認できる。

〔暗号化ファイルとモジュールの説明〕
暗号化ファイルの作成には,暗号化関連のセグメント(サブルーチン)を
利用する。暗号化ファイルの構成要素と各セグメントとの関係は,図 1 に
示すとおりである。

図1 暗号化ファイルの作成