「ストリーム暗号」の版間の差分
削除された内容 追加された内容
混乱するので,先頭部の公開鍵暗号を削除.用字.用語.2文の交換.{{節stub}} |
|||
1行目:
'''ストリーム暗号'''(-あんごう、stream cipher)とは、平文をビット単位あるいはバイト単位などで逐次、[[暗号化]]する暗号である。
これに対して、平文を64ビットや128ビットなどの固定長のブロックに分割して暗号化する暗号は[[ブロック暗号]]という。ストリーム暗号とブロック暗号と
== 概要 ==
ストリーム暗号は、鍵ストリーム(key stream)を生成する鍵ストリーム生成部と、鍵ストリームと平文を結合する結合部から構成されることが多い。典型的な方式では、[[秘密鍵]]を
:<math>(m \oplus k) \oplus k = m \oplus (k \oplus k) = m</math>
ブロック暗号はブロック単位で暗号化するので、ブロックサイズ分のデータがそろうまで暗号化処理が開始できない。一方、ストリーム暗号の多くは、
しかし、[[暗号利用モード]]のOFB, CFB, CTRなどでブロック暗号を利用するとストリーム暗号が構成できるので、ストリーム暗号専用アルゴリズムは、ブロック暗号と比べて何かしらの点で特長(メリット)がなければ存在する意味がない。
一度の暗号化処理で
ストリーム暗号の安全性についての研究は、ブロック暗号に比べて遅れている。安全性の評価手法の研究には長い時間を要するので、ブロック暗号に基づくストリーム暗号を利用すべきとの意見もある。ブロック暗号をCTRモードで利用した場合、ブロック暗号が
== 構造 ==
鍵ストリーム生成部は、
鍵ストリーム生成の
フィードバックの構成方法に、暗号文を鍵ストリームにフィードバックする方式(同期式、外部同期)と、フィードバックしない方式(非同期式、自己同期)がある。暗号文がビットスリップしたときのエラーの伝播が異なる。
結合部は、典型的にはXORなどで平文と鍵ストリームを結合する。XOR以外に、加算や[[特別計算法|
鍵ストリーム生成部と結合部を別の装置に
== 種類 ==
=== LFSR型 ===
鍵ストリーム生成の方式として、[[線形帰還シフトレジスタ]] (LFSR; Linear Feedback Shift Register) を用いた方法が知られている。LFSRはハードウェアを用いて容易に実装することができる。しかし、LFSRは数学的に容易に解析可能であるため、そのまま暗号に使用することは推奨されない。相関攻撃 (Correlation attack) の餌食となる。非線形なFSRを使うものもある(NFSR
*コンバイナ型:複数のLFSRを非線形関数で結合した方式
*フィルタ型:LFSRの全状態をFilterに入れる方式。
: 例:よく研究対象にされている方式としてTOYOCRYPTがある。 *クロック制御型:LFSRを非連続的動作させる方式。一つのLFSR
: 例:ベス&パイパーによる stop-and-go generator (Beth and Piper, 1984)、[[GSM]]音声暗号化で使っている[[A5/1]]。 === 状態遷移型 ===
RC4やSEALのような、状態変数を逐次更新すること
=== カオス関数 ===
[[カオス]]暗号として知られている暗号もある。過去に多くの提案があったがその多くの安全性は厳密に評価されていない
<!-- 単にリストならば暗号理論のリストに記述すればよいか。
* LFSR型
69 ⟶ 71行目:
ストリーム暗号は、平文がいつ何バイト発生するか不確定なアプリケーションによく採用される。例えば、[[秘匿通信]](秘話)である。
[[ウェブブラウザ]]で使用される暗号化通信[[Secure Sockets Layer|SSL]]の暗号方式としてRC4が
== 標準 ==
暗号標準として採用
* OFB, CFB, CTR
* SNOW 2.0 ------ ISO/IEC_18033
* [[MUGI]] ---------- ISO/IEC_18033, [[CRYPTREC]]
* MULTI-SO1 ----- ISO/IEC_18033
* [[RC4]] ----------- RFC 2246 (TLS), WEP, WPA, CRYPTREC (128bit-RC4
== 安全性 ==
ストリーム暗号の安全性の条件として
* 統計的乱数性
* 非線形性
87 ⟶ 89行目:
* 長周期性
* 線形複雑度(linear complexity)
鍵ストリーム生成部は、通常、内部状態を記憶するレジスタがあり、レジスタ長が安全性の上限の一つとなる。レジスタの初期値を決める秘密鍵の
安全性の
* 鍵ストリームとして完全な
* 鍵ストリーム生成部にブロック暗号を部品として使用し、ストリーム暗号の安全性をブロック暗号の安全性に帰着させるものがある。
* ブロック暗号のCTRモードは、ブロック暗号が
== 歴史 ==
自己同期式のストリーム暗号は、ブレーズ・ド・ヴィジュネルが考案している。{{節stub}}
<!-- 乱数式ができたのはいつ?2005年には、ISOでの標準化もなされている。-->
== 参考文献 ==
* Thomas Beth, Fred Piper, "The Stop-and-Go Generator", EUROCRYPT'1984,
== 関連項目 ==
|