ポイント

●共通鍵暗号方式は,暗号化に利用する鍵と復号に利用する鍵が同じになる。秘密鍵暗号方式,対称鍵暗号方式と呼ばれることもある
●共通鍵暗号方式の長所は,処理が比較的高速であること
●短所は,相手に鍵を安全に受け渡す方法を別に考えなければならないことと,複数の相手と暗号データをやり取りするときに鍵の本数が増えて管理が大変なことである

 情報セキュリティを確保する時に考えなければならない要件の中に「機密性」があります。ここで一番イメージしやすいのが,暗号化です。暗号化とは,情報を保存あるいは伝達する際に,万が一盗聴されても中身を理解できないようにしておくことです。これにより機密を確保できます。

 暗号方式は,「共通鍵暗号方式」と「公開鍵暗号方式」の2種類に分けて考えることができます。今回は,このうちの共通鍵暗号方式に焦点を当てて解説していきます。

共通鍵暗号方式とは

 暗号化されていないデータのことを平文(ひらぶん:Plane Text)と言います。そして平文に対して,鍵(Key)と暗号化のためのアルゴリズムを適用してデータを変換したものが暗号文(Cipher Text)になります。暗号文に鍵と復号のためのアルゴリズムを適用して変換すると,また元の平文に戻ります。

 ここで,暗号化する時と復号する時に同じ鍵を利用するのが共通鍵暗号方式です。対称鍵暗号方式と呼ばれる場合もあります。また,それぞれの鍵を秘密に管理する必要があるため,秘密鍵暗号方式と呼ばれる場合もあります。

 例えば図1で「ABC」という文字列が本来伝えたいデータ(平文),これをアルファベットの並び順に3文字ずらしたもの「DEF」を伝送経路に送信し,受け取った側で3文字戻して元のデータ「ABC」を読み取るとします。


図1 共通鍵暗号方式の簡単な例

 この場合,「3文字」の部分が鍵に相当します。暗号化のアルゴリズムは「ずらす」,復号のアルゴリズムは「戻す」です。送信者が本来伝えたい文字列は「ABC」ですが,アルファベットの並び順に3文字ずらした状態「DEF」が暗号化された状態になります。万が一,悪意のある第三者が盗聴に成功したとしても,入手できる文字列は「DEF」であり,正しい文字列「ABC」を得ることができません。しかし受信した側では,あらかじめ入手しておいた鍵(「3文字」という情報)を用いて3文字戻すことによって元の文字列「ABC」を得ることができます。

共通鍵暗号方式の特徴

 共通鍵暗号方式の長所は,「処理が比較的高速である」という点です。もちろん,共通鍵暗号方式のアルゴリズムにはいろいろありますので,共通鍵暗号方式のアルゴリズム間で比較すると差はあります。しかし,次回に解説する予定の公開鍵暗号方式と比べれば総じて高速であると言えます。このため,大量データの暗号化に向いています。

 逆に短所となるのは,「鍵の配送・管理に気を使わなければならない」という点です。共通鍵暗号方式の仕組みを利用するには,受信者があらかじめ鍵を入手しておく必要があります。暗号化したデータ自体は,盗聴されても鍵がなければ中身はわかりません。ですから,暗号化したデータをメールに添付してインターネット経由で相手に送っても安全は確保できます。しかし,受信者が暗号鍵を知らないと復号できません。

 そこで,平文のメールを送り,その中に「鍵は123456」などと記述しておいたとしましょう。このとき,伝送経路上で悪意のある第三者が盗聴したら,この鍵で暗号化したデータはすべて悪意のある第三者に筒抜けになってしまいます。

 また,大勢で相互に共通鍵暗号方式を利用してデータをやり取りするとき,鍵の数が増えてしまい,管理が大変になるのも短所の一つです(図2)。


図2 共通鍵暗号方式ではやり取りする相手の数が増えると鍵の数もどんどん増える

 2人でデータをやり取りするなら1個の鍵が済みますが,4人が相互にデータをやり取りするときは6種類,10人だと45種類,100人だと4950種類というように,存在するメンバー数(ノード)の組み合わせ分だけ鍵が必要になります。メンバー数(ノード)をnとした場合に必要な鍵の数を式にすると「n×(n−1)÷2」となり,メンバーの増加数と比較して鍵の種類の増加数の方が,はるかに多いのがわかります。

代表的なアルゴリズムを確認

 共通鍵暗号方式には,たくさんのアルゴリズムがあります。このうち,代表的なものをいくつか紹介しましょう(表1)。

◆DES 1970年代に米IBMが開発し,1977年以降は米国標準の暗号方式として使われてきました。ただ,最近はコンピュータの処理性能の増大などにより安全性が低下したため,徐々に使われなくなってきています。鍵の長さは56ビットです。
◆トリプルDES DESのアルゴリズムを暗号化→復号→暗号化と鍵を変えて3回繰り返すことにより,DESよりも強固な暗号化として使われています。鍵の長さは112ビット,または168ビットです。
◆FEAL

1987年にNTTが開発した暗号アルゴリズムで,64ビット,または128ビットの鍵を利用します(詳細情報)。
◆IDEA PGPというメールなどの暗号化を行うアプリケーションに使われている暗号アルゴリズムです。1992年にスイスの暗号学者James L.Massy氏とXuejia Lai氏によって発表されました。鍵の長さは128ビットです。
◆AES
(Advanced Encryption Standard)
米国国立標準技術研究所(NIST)が,より高速で強い共通鍵暗号方式を公募し,さまざまな候補の中から選ばれた暗号方式です。鍵の長さは,128ビット,192ビット,256ビットです。無線LANデータの暗号化(WPA2)などに使われています。
◆Camellia
(カメリア)
2000年にNTTと三菱電機が共同開発した暗号アルゴリズムです。鍵の長さは,128ビット,192ビット,256ビットです(詳細情報)。

 次回は,公開鍵暗号方式に焦点を当てて解説します。