Cyber Security Academy · レッスン

共通鍵暗号:AESとストリーム暗号

共通鍵暗号の仕組み、鍵長、ブロック暗号とストリーム暗号の違い、動作モードについて学びます。

レッスン 1/413 ステップ

「共通鍵暗号: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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 共通鍵暗号:AESとストリーム暗号
  2. 公開鍵暗号:RSAと楕円曲線
  3. ハッシュ関数:SHA-256とその先
  4. デジタル署名と証明書
← Cyber Security Academyに戻る