共通鍵暗号(Symmetric Key Cryptography)

共通鍵暗号(Symmetric Key Cryptography)とは、暗号化するときと元に戻すときで、同じ一つの鍵を使う暗号の方式のことです。「対称鍵暗号」「秘密鍵暗号」とも呼ばれ、暗号の最も基本的な形にあたります。

現実世界に例えると、共通鍵暗号は合鍵を渡してある宅配ボックスのようなものです。同じ鍵で閉めることも開けることもできます。速くて手軽な代わりに、その鍵をどうやって相手に渡すかが問題になります。

公開鍵暗号との違い

項目 共通鍵暗号 公開鍵暗号
鍵の数 1つ 2つで一組
処理の速さ 速い 遅い
鍵の受け渡し 難しい 公開してよい
向いている用途 大量のデータ 鍵そのものの受け渡し

とにかく速い

最大の長所がこれです。公開鍵暗号に比べて処理が桁違いに軽く、動画のような大きなデータでも実用的な速さで扱えます。この速さがあるからこそ、通信の中身そのものを暗号化する用途では、いまもこちらが使われています。

鍵をどう渡すかが難題

裏返しの弱点です。相手と同じ鍵を持たなければ始まりませんが、その鍵を通信で送れば、途中で盗まれるおそれがあります。安全に渡すために暗号を使いたいのに、そのための鍵を安全に渡せない。これが長く課題でした。

人数が増えると鍵も増える

もう一つの弱点があります。相手ごとに別の鍵が必要なため、やり取りする人数が増えると鍵の数が急激に膨らみます。十人が互いにやり取りするだけで四十五本の鍵が要ります。管理しきれなくなるのは目に見えています。しかも、どれか一本でも漏れれば、そのやり取りだけは丸ごと読まれてしまいます。

公開鍵暗号と組み合わせて使う

この二つの課題は、組み合わせで解決されました。まず公開鍵暗号を使って共通鍵を安全に相手へ渡し、そのあとの本番の通信は速い共通鍵暗号で行うという方式です。HTTPSをはじめ、いまの暗号通信はほぼこの形です。

代表的な方式

いま使われているものは限られます。標準として広く採用されているのがAESで、鍵の長さは128ビットか256ビットが一般的です。かつて使われたDESは鍵が短く、現在の計算機では破られるため、使ってはいけません。

鍵の長さと安全性

数字の意味を押さえておくと役立ちます。鍵が1ビット長くなると、総当たりで試す手間は倍になります。128ビットでも当面は現実的な時間で破れないとされますが、より長期の保管には256ビットが選ばれます。

実際に触れる場面

身近なところで使われています。パスワード付きの圧縮ファイル、無線LANの暗号化、ディスク全体の暗号化、そしてHTTPSでやり取りされる中身。意識せず使っている場面がほとんどですが、いずれも土台はこの方式です。速さが求められる場所では、いまも中心にあり続けています。

あわせて知っておきたい用語

  • 公開鍵暗号
    対になる二つの鍵を使い分ける方式です。
  • AES
    現在広く使われている共通鍵暗号の方式です。
  • 暗号化
    鍵を持つ人以外には読めない形に変えることです。
  • HTTPS
    Webの通信を暗号化してやり取りする方式です。

コメント

タイトルとURLをコピーしました