共通鍵暗号:AESとストリーム暗号
共通鍵暗号の仕組み、鍵長、ブロック暗号とストリーム暗号の違い、動作モードについて学びます。
「共通鍵暗号:AESとストリーム暗号」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
対称暗号とは何ですか
対称暗号は、暗号化と復号の両方に同じ鍵を使用します。高速で効率的なため、大量データの暗号化に適しています。鍵配送問題、つまり2者が鍵を安全に共有する方法が、主な課題です。
AES:Advanced Encryption Standard
AESは対称暗号の世界標準で、2001年にNISTによって採用されました。128ビットのブロックに対して動作し、鍵長は128、192、256ビットです。AESはTLS、ディスク暗号化、Wi-Fi(WPA2)、その他数え切れないほどのプロトコルで使用されています。
AESブロック暗号モード
ブロック暗号モードによって、AESが1ブロックを超えるデータを処理する方法が決まります:
- ECB — 各ブロックを独立して暗号化(安全ではなく、パターンが漏れます)
- CBC — 各ブロックを前の暗号文とXORする(IVが必要です)
- GCM — 認証付き暗号化。機密性と完全性の両方を提供します(推奨)
- CTR — ブロック暗号をストリーム暗号に変換します
GCMモードが推奨される理由
AES-GCMは関連データ付き認証暗号(AEAD)を提供します。暗号化と完全性チェックを1回の操作で行います。暗号文への改ざんはすべて検出されます。TLS 1.3や最新のプロトコルで使用されています。新しいシステムでは、常にCBCよりGCMを優先してください。
ストリーム暗号
ストリーム暗号は、平文にXORする擬似乱数キーストリームを使って、一度に1ビットまたは1バイトずつデータを暗号化します。例:RC4(破られている)、ChaCha20(最新の方式で、TLS 1.3で使用)。ストリーム暗号は、可変長データやハードウェアリソースに制約のある環境に適しています。
ChaCha20-Poly1305
ChaCha20-Poly1305 は、TLS 1.3 や WireGuard で使用される最新の AEAD 暗号です。ChaCha20 はストリーム暗号で、Poly1305 は認証タグを提供します。ハードウェア AES アクセラレーションを搭載していないデバイス(モバイル、IoT)では、AES より優れた性能を発揮します。
鍵配送問題
双方が同じ鍵を持つ必要がありますが、安全に交換するにはどうすればよいのでしょうか。選択肢は次のとおりです:
- 事前共有鍵(物理的な交換)
- 非対称暗号による鍵カプセル化
- 信頼できないチャネル上での Diffie-Hellman 鍵交換
AES の鍵長
AES-128 は、ほとんどの用途で十分な安全性を提供します。AES-256 は、最高機密データや耐量子性を考慮する場合に使用されます。ハードウェアアクセラレーション(AES-NI CPU 命令)がある場合、AES-128 と比較した AES-256 のオーバーヘッドはごくわずかです。
実運用における対称暗号
対称暗号の使用例:
# Encrypt a file with AES-256-CBC using OpenSSL:
openssl enc -aes-256-cbc -pbkdf2 -in file.txt -out file.enc
# Decrypt:
openssl enc -d -aes-256-cbc -pbkdf2 -in file.enc -out file.txtディスク暗号化
フルディスク暗号化(FDE)は、保存データを保護するために対称暗号を使用します:
- BitLocker(Windows)— AES-XTS-128 または 256
- FileVault 2(macOS)— AES-XTS-128
- LUKS(Linux)— 設定可能、通常は AES-XTS-256
避けるべき脆弱なアルゴリズム
新しいシステムでは、これらを決して使用しないでください:
- DES — 56 ビット鍵で、1999 年以降破られています
- 3DES — 低速で、TLS では非推奨です
- RC4 — 複数の脆弱性を持つストリーム暗号です
- ECB モード — データのパターンが漏れます(「ECB ペンギン」)
クイックチェック:対称暗号
機密性と完全性の両方(認証付き暗号化)を提供し、最新のプロトコルで推奨されている AES モードはどれですか。
レッスンのまとめ
対称暗号では、暗号化と復号に 1 つの鍵を使用します。AES が標準であり、認証付き暗号化には GCM モードが推奨されます。ChaCha20-Poly1305 は、リソースに制約のあるデバイス向けの最新の代替方式です。DES、3DES、RC4、ECB モードは避けてください。鍵配送には、非対称暗号または Diffie-Hellman が必要です。
AI チューターと学ぶ Cyber Security Academy — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 76
- レッスン
- 303
よくある質問
「共通鍵暗号:AESとストリーム暗号」レッスンは無料ですか?
はい。「共通鍵暗号:AESとストリーム暗号」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「共通鍵暗号:AESとストリーム暗号」で何を学びますか?
共通鍵暗号の仕組み、鍵長、ブロック暗号とストリーム暗号の違い、動作モードについて学びます。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「共通鍵暗号:AESとストリーム暗号」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 共通鍵暗号:AESとストリーム暗号
- 公開鍵暗号:RSAと楕円曲線
- ハッシュ関数:SHA-256とその先
- デジタル署名と証明書