#author("2024-04-04T15:38:38+09:00;2024-04-04T15:27:27+09:00","default:tanopro","tanopro")
#author("2024-04-04T15:59:34+09:00;2024-04-04T15:27:27+09:00","default:tanopro","tanopro")
#html{{
<h1 style="color: red; background-color: #FFFFCC; padding: 20px;">
ブロック暗号
</h1>

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

// 概要
[[共通鍵暗号]]の一種。
データを固定長のブロックに分割し、各ブロックを個別に暗号化します。
一般的に、ブロック長は64ビットや128ビットです。

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

*検索 [#ub6722e3]
-ブロック暗号 - Google 検索
https://www.google.com/search?q=%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E6%9A%97%E5%8F%B7

*説明 [#c9efd3e3]
([[ネスペ教科書]] p.184 より)
[[無線LAN]]で、セキュリティーの高い[[WPA2]]や[[WPA3]]で利用されているブロック暗号が[[AES]]です。

----

- 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

*参考 [#ad6ba9d3]
-ブロック暗号 - Wikipedia
https://ja.wikipedia.org/wiki/%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E6%9A%97%E5%8F%B7
>ブロック暗号(ブロックあんごう、英語: Block cipher)とは、共通鍵暗号の一種で、固定長のデータ(ブロックと呼ぶ)を単位として処理する暗号の総称である。
これに対して、ビット単位やバイト単位で処理を行う暗号は[[ストリーム暗号]]と呼ばれる。
>用途
ブロック暗号は公開鍵暗号に比して高速であるため、公開鍵暗号と組み合わせたハイブリッド暗号では公開鍵暗号で暗号化されたセッション鍵を用いた本文の暗号化・復号に用いられる。
また、パスワードの保存のための一方向性関数として用いられたり (UNIXの/etc/passwd等) 、メッセージ認証コード (MAC) に用いられる。
擬似乱数列の生成にも用いられる。
>標準
暗号標準として採用(もしくは推奨)されているブロック暗号には次のものがある。
- 64bit
-- TDEA - ISO/IEC_18033, CRYPTREC
-- MISTY1 -ISO/IEC_18033, CRYPTREC, NESSIE
-- CAST-128 -ISO/IEC_18033
-- CIPHERUNICORN-E - CRYPTREC
-- Hierocrypt-L1 -CRYPTREC
-- MULTI2 - ARIB限定受信方式
-- KASUMI - 3GPP W-CDMAおよびGSM用の暗号
- 128bit
-- [[AES]] -ISO/IEC_18033, CRYPTREC, NESSIE
-- Camellia -ISO/IEC_18033, CRYPTREC, NESSIE
-- SEED -ISO/IEC_18033
-- CIPHERUNICORN-A - CRYPTREC
-- Hierocrypt-3 -CRYPTREC
-- SC2000 -CRYPTREC
- 256bit
-- SHACAL-2 -NESSIE

*関連 [#y85e25c7]
-[[共通鍵暗号]]
-[[ストリーム暗号]]
-[[AES]]
-[[DES]]

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