情報セキュリティにおけるブロック暗号とは?仕組みと特徴を徹底解説
ブロック暗号とは
ブロック暗号とは、平文をあらかじめ固定サイズの複数のブロックに分割し、ブロック単位で暗号化を行う暗号方式の一種です。基本的に、すべてのブロックは同じビット数のデータで構成されます。暗号化のプロセスでは、ある時点において必ず1つの平文ブロックだけを処理対象とし、暗号鍵を用いてそのブロックを暗号文ブロックへと変換します。
ブロックのサイズとパディング
各ブロックは同一のサイズ(例:64ビット)でなければなりません。たとえば、160ビットの平文を暗号化する場合、まず64ビットずつの2つのブロックに分割され、3つ目のブロックには残りの32ビットが格納されます。この3つ目のブロックは、他のブロックと同じ64ビットのサイズに揃えるため、余分な32ビットの「パディング」(埋め合わせデータ)が追加されます。
ストリーム暗号との違い
ブロック暗号は、ストリーム暗号のように1ビットずつ暗号化するのではなく、決定論的アルゴリズムと共通鍵(対称鍵)を組み合わせて、テキストのブロック全体をまとめて暗号化する手法です。この「処理単位の違い」が、両者を分ける最大のポイントです。
擬似ランダム順列(PRP)としての性質
ブロック暗号は、固定サイズのビットブロックを扱う「擬似ランダム順列(PRP:Pseudorandom Permutation)」に分類されます。PRPとは、完全にランダムな順列と事実上区別がつかない関数のことであり、その予測不可能性ゆえに、安全であるとみなされています。
可逆性と一意な変換
ブロック暗号は、nビットの平文ブロックを入力として受け取り、nビットの暗号文ブロックを出力します。平文ブロックは複数存在しうるため、復号を可能にするには、それぞれの平文ブロックが必ず一意の暗号文ブロックに対応していなければなりません。このような変換は「可逆変換」または「非特異変換」と呼ばれます。
運用モードと初期ベクトル(IV)
同一の平文ブロックが常に同じ方法で暗号化されてしまうリスクを排除するために、「ブロック暗号の運用モード(動作モード)」が考案されました。運用モードでは、直前に暗号化したブロックから得られた暗号文を、次のブロックの暗号化に活用することでセキュリティを強化します。
さらに、「初期ベクトル(IV:Initialization Vector)」と呼ばれるビットブロックも用いられます。IVを利用することで、同じ平文メッセージを何度暗号化しても、毎回異なる暗号文が生成されることが保証され、安全性が高まります。
具体例で見るブロック暗号とストリーム暗号
ブロック暗号は、テキストのブロックをアルゴリズムにかけて混ぜ合わせることで暗号化する方式です。たとえば、この記事全体を暗号化する場合、ブロック暗号ではまず最初の段落を丸ごと暗号化してから、次の段落へと処理を移します。この手順を繰り返すことで、記事全体の暗号化が完了します。
一方、ストリーム暗号では、最初の段落の1文字目から暗号化を開始し、同じ段落内の次の文字へと順番に進めていきます。この処理もまた、テキスト全体が暗号化されるまで繰り返されます。
暗号文と復号の仕組み
暗号によって暗号化されたテキストは「暗号文」と呼ばれます。暗号文をもとの状態(平文)に戻すには、対応する暗号アルゴリズムを用いて再度処理(復号)する必要があります。
-
現代ブロック暗号の構成要素とは?Dボックス・Sボックス・循環シフトを徹底解説
現代ブロック暗号とは現代のブロック暗号とは、mビットの平文ブロックを暗号化し、mビットの暗号文ブロックを復号する暗号方式です。暗号化および復号の処理にはKビットの鍵が使用され、復号アルゴリズムは暗号化アルゴリズムの逆操作として機能します。また、暗号化と復号の両方で同じ鍵が用いられます。ブロック暗号は、nビットの平文ブロックを入力としてnビットの暗号文ブロックを出力します。取り得る平文ブロックの組み合わせは複数存在するため、暗号化を可逆(=復号が可能)にするためには、それぞれの平文ブロックが一意の暗号文ブロックへ対応しなければなりません。このような変換は「可逆変換」または「非特異変換」と呼ばれま
-
情報セキュリティにおける多表式換字暗号(ポリアルファベット暗号)とは?
多表式換字暗号(ポリアルファベット暗号)とは、複数の換字アルファベットを用いた置換に基づく暗号方式の総称です。多表式換字暗号では、平文の各文字が、文中での位置に応じて異なる文字へと暗号化されます。各文字とその置換先の関係は一対一ではなく、一対多の関係になるのが大きな特徴です。例えば、「a」という文字は、文章の冒頭では「d」に、中盤では「n」に暗号化されることがあります。多表式暗号には、元の言語の文字頻度を隠せるという重要な利点があります。そのため、攻撃者が個々の文字の出現頻度統計を利用して暗号文を解読することが非常に困難になります。最初の多表式暗号:アルベルティ暗号歴史上最初の多表式暗号は、1