「暗号」と聞くと、難しい数学や専門用語が出てきそうで、ちょっと身構えてしまいますよね。
でも、実は私たちが毎日使っているインターネットの通信や SNS、ショッピングサイトの裏側でも、暗号技術はあたりまえのように使われています。
例えば
- LINEのトーク内容を第三者に見られないようにする
- クレジットカードの番号を安全に送る
- 学校の Wi-Fi の通信を盗み見られないようにする
こういった「情報を守る」ために欠かせないのが暗号のしくみです。
この記事では、暗号技術の中でも最も基本的な「共通暗号方式」について、ネコでもわかるように、やさしく解説していきます。
共通鍵暗号って何?
共通鍵暗号とは、暗号化と復号で同じ鍵を使う暗号方式のことです。
🔑 暗号化:人に見られたくないデータを「読めない形」にする
🔓 復号:暗号化されたデータを「もとの形」に戻すこと
共通鍵暗号の簡単な例をあげると、古代からある「シーザー暗号」です。
シーザー暗号は、アルファベットを何文字がずらす暗号です。
例)HELLO ⇒ IFMMP (1文字ずらす)
シーザー暗号では、この「ずらす文字数」が「鍵」です。上の例では鍵は1です。
共通鍵暗号のメリデメ
共通鍵暗号方式のメリット・デメリットをみていきましょう。
共通鍵暗号のメリット
共通鍵暗号は仕組みがシンプルな分、とても高速に暗号化・復号ができます。
そのため、動画や SNS などのインターネットでやりとりするデータなど、速度が重要なデータの暗号化には共通鍵暗号が使われています。
インターネット上では、たくさんのデータがやりとりされます。そのため、暗号の強さだけでなく、処理のスピードもとても重要なんです。
共通鍵暗号のデメリット
共通鍵暗号は、暗号化と復号で同じ鍵を使うため、通信を始める前に相手と「鍵」を共有しておかないといけません。
「この鍵を使ってね!」とメールやネットで送ったとします。すると、途中で悪意のあるユーザーに鍵を盗まれてしまうかもしれません。すると、どうなるか?盗まれた鍵で中身を簡単に復号(=解読)されてしまいます。
1番安全で確実な方法としては、インターネットを使わず、直接相手に「鍵」を渡して共有しておくことです。
🤔実際のインターネットの世界ではどうしてる?
現代の生活では、LINE、YouTube、Google 検索など、1日に何十~何百もの相手とやりとりをしています。そんな中、全ての相手と事前に鍵を共有しておくのは無理があります。
- 通信相手が多すぎる
- 相手ごとに鍵を管理することになり大変すぎる
そのため、現実のインターネットの世界では、「その場で使う鍵を、都度、安全に交換する」という仕組みが使われています。

誰でも使えるオープンなインターネットでどうやって鍵を共有するの?
その答えは「鍵交換(Key Exchange)」です。
鍵交換とは、インターネット上でも“安全に”共通鍵をやりとりする仕組みのこと。悪意のあるユーザーが鍵交換のデータのやりとりを盗み見ていたとしても、鍵を作ることはできません。
実際のインターネット上での通信では、始めに相手と「鍵交換」を行い、鍵を共有した後で暗号化して通信します。こうすれば、相手と鍵を事前に共有していなくても、共通鍵暗号を使って安全に通信ができるのです。
また、通信に使う鍵は通信時のみに一時的に使うものであり、通信が終わった後は鍵は削除します。これのような仕組みにより、通信相手ごとに鍵を管理する必要はなくなります。
よく使われる共通鍵暗号の種類🔑
代表的な共通鍵暗号をアルゴリズムを紹介します。
アルゴリズム名 | 鍵の長さ(bit) | 特徴 |
---|---|---|
AES | 128 / 192 / 256 | 現在もっとも広く使われている暗号方式。高速かつ高いセキュリティ。 |
DES | 56 | 古く、現在では脆弱性があるとされ非推奨。使用は避けられている。 |
3DES | 112 / 168 | DESを3回適用した強化版。より安全だが、処理が遅く、段階的に廃止中。 |
IDEA | 128 | スイスで開発された暗号方式。特許が切れたが、現在はあまり使われていない。 |
RC4 | 40~2048(一般的に128) | ストリーム暗号。かつては広く使われたが脆弱性が見つかり、現在は非推奨。 |
Blowfish | 32~448 | 高速で柔軟性があるが、鍵管理が難しい。AES登場後はあまり使われていない。 |
SKIPJACK | 80 | アメリカNSAが開発。信頼性に疑問があり、現在はほとんど使われていない。 |
CAST-128 | 40~128(推奨は128) | PGPなどで採用。高速で、鍵長によってセキュリティが変わる。 |
CAST-256 | 128 / 160 / 192 / 224 / 256 | AES候補にもなった暗号方式。CAST-128の拡張版で、より強力な構造。 |
それぞれの共通鍵暗号のアルゴリズムの仕組みを理解する必要はありません。
覚える必要があるのは、「使って安全かどうか」を把握しておくことです。使って安全かどうかは、各アルゴリズムのセキュリティ強度や、簡単に解読されてしまう弱点があるかどうか(=セキュリティの世界では「脆弱性がある」という表現が使われます)などの要素で決まります。
上の表をもう少しだけ、解像度を上げてみてみましょう。
AESが現在の主流!
- AES(Advanced Encryption Standard)は、現在もっとも広く使われている共通鍵暗号
- 高速、安全性が高い、標準化されている、の3拍子そろった暗号方式!
DESは古くて脆弱。使われていない
- 鍵長はたったの 56bit しかなく、現在のコンピューターでは簡単に解読されてしまう
- 非推奨なうえ、現在は実運用ではほぼ使われていない
3DESは少しだけ安全。でも廃止の流れ
- DESの暗号化の処理を3回繰り返して強化させたバージョン
- かつては使われていたが、処理が遅く、今は段階的に廃止されている
RC4・Blowfish・IDEAはかつて使われていた系
- RC4 は昔使われていたけれど、今は脆弱性が多く非推奨。
- Blowfish は早くて鍵の長さも自由に選べる。後継の Twofish や AES に取って代わられた。
- IDEA はスイス発の暗号方式。特許の関係で普及せず。
CAST や SKIPJACK はマイナー枠
- CAST-128 / CAST-256 はメールの暗号化で使われたこともある暗号化方式
- SKIPJACK は NSA が開発。情報が少なく、信頼性に不安あり
まとめると
まとめ
今回の記事のまとめです。
- 共通鍵暗号とは、「同じ鍵」を使って暗号化・復号を行う方式
- 処理が速いので、動画やファイル転送などの通信などにぴったり
- 「鍵の共有」が必要なので、インターネットでは問題が発生する
- この問題を解決する仕組みが「鍵交換」
次の記事では、これとは逆の考え方である「公開鍵暗号方式」を紹介します。「事前に鍵を共有しなくていいってどういうこと?」という疑問を一緒に解決していきましょう。
コメント