#author("2024-04-04T15:58:08+09:00;2024-04-04T15:53:28+09:00","default:tanopro","tanopro")
#author("2024-04-04T15:58:53+09:00;2024-04-04T15:53:28+09:00","default:tanopro","tanopro")
#html{{
<h1 style="color: red; background-color: #FFFFCC; padding: 20px;">
ストリーム暗号
</h1>

<div class="alert alert-warning" role="alert">
stream cipher
</div>
}}

// 概要
[[共通鍵暗号]]の一種。
データを1ビットずつ、または1バイトずつ処理し、逐次的に暗号化します。

//----------------------------------------
#contents
//----------------------------------------

*検索 [#b15e4d86]
-ストリーム暗号 - Google 検索
https://www.google.com/search?q=%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%A0%E6%9A%97%E5%8F%B7

*説明 [#gb97df61]
([[ネスペ教科書]] p.184 より)
[[無線LAN]]の[[WEP]]方式で利用されているストリーム暗号が[[RC4]]です。

----

- Geminiによる説明
https://gemini.google.com/app/10e6ee33dc0fbfa8
>ブロック暗号とストリーム暗号の相違点を教えてください。

** ブロック暗号とストリーム暗号の相違点 [#k5b93409]
ブロック暗号とストリーム暗号は、どちらもデータを暗号化するアルゴリズムですが、いくつかの重要な相違点があります。

*** 1. 処理するデータの単位 [#k46990a9]
- ブロック暗号: データを固定長のブロックに分割し、各ブロックを個別に暗号化します。一般的に、&color(red){ブロック長は64ビットや128ビット};です。
- ストリーム暗号: データを&color(red){1ビットずつ、または1バイトずつ};処理し、逐次的に暗号化します。

*** 2. 処理速度 [#x49f224a]
- ブロック暗号: ストリーム暗号よりも処理速度が遅くなります。これは、一度に処理するデータ量が大きいためです。
- ストリーム暗号: ブロック暗号よりも処理速度が速くなります。これは、1ビットずつ処理するため、処理に必要なデータ量が少なくて済むからです。

*** 3. 必要なメモリ [#u534d1f1]
- ブロック暗号: 処理するブロック分のメモリが必要です。
- ストリーム暗号: 処理するデータ量よりも少ないメモリで済みます。

*** 4. 適用範囲 [#va2a088c]
- ブロック暗号: &color(red){ファイルやディスクなどの静的なデータ};の暗号化に適しています。
- ストリーム暗号: &color(red){通信データなどの動的なデータ};の暗号化に適しています。

*** 5. 安全性 [#q6e35593]
- ブロック暗号: 適切なブロック長と暗号化アルゴリズムを選択すれば、非常に高い安全性を実現できます。
- ストリーム暗号: 適切な初期化ベクトルと暗号化アルゴリズムを選択すれば、高い安全性を実現できます。ただし、ブロック暗号と比べると、理論的に攻撃を受けやすいという指摘もあります。

*** 6. 代表的なアルゴリズム [#icd368ec]
- ブロック暗号: [[AES]]、[[DES]]、Camelliaなど
- ストリーム暗号: [[RC4]]、Salsa20、ChaCha20など

*** まとめ [#pac400b0]
ブロック暗号とストリーム暗号は、それぞれ異なる特徴を持つ暗号化アルゴリズムです。用途や目的に応じて、適切なアルゴリズムを選択することが重要です。

- 参考資料
-- ブロック暗号とは?概要、特徴やストリーム暗号との違いを解説! - ITトレンド: https://it-trend.jp/encryption/article/64-0066
-- ストリーム暗号とは?仕組みや安全性について詳しく解説! - ITトレンド: https://it-trend.jp/encryption/article/64-0060
-- ブロック暗号とストリーム暗号の違い - 「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典: https://wa3.i-3-i.info/diff890encryption.html

*参考 [#w9a8dca7]
-ストリーム暗号 - Wikipedia
https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%A0%E6%9A%97%E5%8F%B7
>ストリーム暗号(ストリームあんごう、stream cipher)とは、平文をビット単位やバイト単位で逐次暗号化する暗号である。
平文を64ビットや128ビットなどの固定長のブロックに分割して暗号化する[[ブロック暗号]]に対比した語である。
その構成上、入力が逐次追加されるデータであった場合、ブロック暗号は入力がブロックサイズに達するまで溜まらないと処理を進めることができないのに対し、ストリーム暗号はその必要がないのが特徴である。

*関連 [#g35f0f1b]
-[[共通鍵暗号]]
-[[ブロック暗号]]
-[[RC4]]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS