0Pricing
Cryptology Academy · レッスン

ストリーム暗号の概念とPRNG

ストリーム暗号がシードからキーストリームを生成する仕組みを学びます。

「ストリーム暗号の概念とPRNG」はCoddyKit上の無料Cryptology Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCryptology Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cryptology Academyコースには全4レッスンが含まれています。

ようこそ

ストリーム暗号は、鍵から疑似乱数のキーストリームを生成し、バイト単位で暗号化します。このレッスンでは、キーストリームの仕組みと、ストリーム暗号を安全にする要件を理解します。

ストリーム暗号のモデル

KeyGen(K, Nonce) → keystream K1, K2, K3, ... Ci = Pi XOR Ki Pi = Ci XOR Ki 暗号化と復号は同一で、キーストリームとの XOR を取ります。キーストリームは疑似乱数でなければならず、決して再利用してはいけません。

PRNG と CSPRNG

PRNG(疑似乱数生成器):ランダムに見える決定論的な出力を生成します。暗号学的には安全ではありません。統計的テストには合格しても、十分なサンプルがあれば出力を予測できます。 CSPRNG:暗号学的に安全です。計算資源に制限がない場合でも、出力はランダムな出力と計算量的に区別できません。

安全性の要件

安全なストリーム暗号のキーストリームには、次の性質が必要です。 1. ランダムな出力と計算量的に区別できない 2. 鍵とノンスの各組で異なる 3. 出力の一部から予測できない 4. 逆算できない(キーストリームから鍵を導出できない)

線形合同法生成器(安全ではない)

LCG:s(n+1) = (a × s(n) + c) mod m。多くの rand() 実装で使用されています。暗号用途では完全に安全ではありません。いくつかの出力を知るだけで、将来と過去のすべての出力を数学的に明らかにできます。

シードサイズと安全性

ストリーム暗号のキーストリームの安全性は、シード(鍵)の安全性に依存します。128ビットの鍵は、どれだけ長いキーストリームを生成しても128ビットの安全性を提供します。シードがエントロピー源になります。

同期型と自己同期型

同期型:キーストリームは平文や暗号文から独立しています(RC4、ChaCha20)。自己同期型:キーストリームは直前の暗号文に依存します(CFB モード)。同期型暗号では、ビットが失われると同期がずれます。

キーストリーム生成の構造

現代のストリーム暗号の多くは、次の構造を使用します。 1. 鍵 + ノンス → 初期状態 2. 状態に置換関数を繰り返し適用 3. 状態の一部のビットをキーストリームとして出力 4. 次のブロックに備えてカウンタをインクリメント AES-CTR はこのパターンに従います。

eSTREAM プロジェクト

eSTREAM プロジェクト(2004~2008年)は、ストリーム暗号を標準化しました。ソフトウェア部門の最終候補は HC-128、Rabbit、Salsa20/12、SOSEMANUK でした。Salsa20 は ChaCha20 へと発展し、現在主流のストリーム暗号になっています。

キーストリームの再利用:致命的な欠陥

ストリーム暗号における最大の禁忌は、同じ(鍵、ノンス)を再利用することです。C1 XOR C2 = P1 XOR P2 となります。同じ IV(鍵とノンスの組に相当)を使った複数の WEP パケットによって、完全な復号が可能になりました。

CTR モードのストリーム暗号とブロック暗号

AES-CTR は、ストリーム暗号として使用するブロック暗号です。専用のストリーム暗号(ChaCha20)は、ソフトウェア上ではより高速なことがよくあります。適切に鍵とノンスを設定すれば、安全性の性質は類似しています。

確認問題

ストリーム暗号で同じ(鍵、ノンス)の組を再利用した場合、根本的にどのような脆弱性が生じますか?

まとめ

ストリーム暗号の基本を理解しました。次は RC4 の仕組みと、廃止に至った深刻な弱点について詳しく学びます。

よくある質問

「ストリーム暗号の概念とPRNG」レッスンは無料ですか?

はい。「ストリーム暗号の概念とPRNG」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cryptology Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cryptology Academyコースには全4レッスンが含まれています。

「ストリーム暗号の概念とPRNG」で何を学びますか?

ストリーム暗号がシードからキーストリームを生成する仕組みを学びます。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Cryptology Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCryptology Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「ストリーム暗号の概念とPRNG」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCryptology Academyレッスンでコードを書いて実行できますか?

はい。すべてのCryptology Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

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

  1. ストリーム暗号の概念とPRNG
  2. RC4:設計、脆弱性、WEP攻撃
  3. Salsa20とChaCha20の設計
  4. TLS 1.3におけるChaCha20-Poly1305 AEAD
← Cryptology Academyに戻る