情報セキュリティにおけるストリーム暗号とは?仕組みと種類を徹底解説
ストリーム暗号とは何か
ストリーム暗号とは、擬似ランダムに生成された暗号ビット列(鍵ストリーム)を平文のビット列と混合することで暗号化を行う方式です。この擬似ランダムなビット列は、平文の各ビットに対して1ビットずつ適用されます。1つの鍵から無限に近い量の擬似ランダムな暗号ビットを生成できる点が、この暗号化方式の大きな特徴です。
共通鍵暗号方式としての利用
ストリーム暗号は、暗号化と復号に同じ鍵を使用する共通鍵暗号方式として利用されます。鍵を必要とするアルゴリズムを用いて、任意の長さの平文を1ビットずつ暗号化していく仕組みです。
セキュリティを維持するための条件
この種の暗号方式の安全性を維持するためには、擬似ランダムな暗号ビット列が予測不可能であること、そして鍵を再利用しないことが不可欠です。擬似ランダムな暗号ビット列は、デジタルシフトレジスタを用いた複数のランダムなシード値から生成されます。
各ビットの暗号化は暗号の現在の状態に依存するため、この方式は「状態暗号(ステート暗号)」とも呼ばれます。RC4は、ソフトウェアで広く使用されてきた有名なストリーム暗号の代表例です。
ストリーム暗号の主な種類
自己同期型ストリーム暗号
ストリーム暗号には複数の種類が存在します。自己同期型ストリーム暗号では、鍵ストリームの各ビットを、直前のnビットの関数として計算します。「自己同期型」と呼ばれるのは、復号側がnビットの鍵ストリームのどの位置にいるかを把握していれば、暗号化処理と復号処理の同期を自動的に維持できるためです。
ただし、この方式には誤り伝播の問題があります。伝送中に1ビットが乱れると、受信側でnビットが乱れることになる点に注意が必要です。
同期型ストリーム暗号
同期型ストリーム暗号では、鍵ストリームをメッセージストリームから独立した形で生成し、送信側と受信側が同一の鍵ストリーム生成関数を使用します。同期型は伝送誤りを伝播させないという利点がある一方、鍵ストリームが本質的に周期的であるため、最終的に同じパターンが繰り返されるという性質を持っています。
ストリーム暗号の動作モードと相互変換
ストリーム暗号の基本タイプは、ストリーム暗号の動作モード(モード・オブ・オペレーション)として定義することもできます。これらのモードは、単純かつ一般的な構成によって相互に変換可能であることが示されているためです。同様に、ストリーム暗号から構成される各種の暗号プリミティブも、ストリーム暗号のサービスモードとして定義できます。
KGモード(鍵生成モード)の一部のストリーム暗号は、次状態関数を現在の平文ビットにも依存させることで、SCMモード(自己同期暗号モード)へと変換できます。この変換において重要なのは、平文の1ビットの変化が、その後の鍵ストリーム(暗号文)列にランダムに見える変化をもたらすこと、いわゆる前方伝播効果が得られる点です。
KGモードも同じ性質を満たす必要がありますが、これは初期状態ビットの変化に関してです。したがって、この変換は、平文ビットを内部状態ビットの1つ以上、特に前方伝播効果の大きいビットに加算することで、容易に実現できます。
-
現代ブロック暗号の構成要素とは?Dボックス・Sボックス・循環シフトを徹底解説
現代ブロック暗号とは現代のブロック暗号とは、mビットの平文ブロックを暗号化し、mビットの暗号文ブロックを復号する暗号方式です。暗号化および復号の処理にはKビットの鍵が使用され、復号アルゴリズムは暗号化アルゴリズムの逆操作として機能します。また、暗号化と復号の両方で同じ鍵が用いられます。ブロック暗号は、nビットの平文ブロックを入力としてnビットの暗号文ブロックを出力します。取り得る平文ブロックの組み合わせは複数存在するため、暗号化を可逆(=復号が可能)にするためには、それぞれの平文ブロックが一意の暗号文ブロックへ対応しなければなりません。このような変換は「可逆変換」または「非特異変換」と呼ばれま
-
情報セキュリティにおける単一換字暗号(モノアルファベット暗号)とは?仕組みと脆弱性を解説
換字暗号の基本概念換字暗号(Substitution Cipher)は、最も古い暗号アルゴリズムの一つです。平文メッセージの各文字を、暗号文では別の文字に置き換えることで暗号化を行います。この置き換え方式は決定論的かつ可逆であるため、正規の受信者は暗号文の文字を逆置換するだけで、元の平文を復元できます。単一換字暗号(モノアルファベット暗号)とは換字暗号の一種である「単一換字暗号(Monoalphabetic Substitution Cipher)」は、「単純換字暗号(Simple Substitution Cipher)」とも呼ばれます。この暗号は個別の鍵マッピング関数Kに基づいており、特定