共通鍵暗号(セキリュティを理解するために(2))
参考文献を文末に記載しています。
単語の確認
ブロック暗号
DES、AESとか、ヨクワカラン。特にS関数、F関数の特徴抽出に関しては下記の参考文献を参考にしてください。
- ブロック暗号の構造
平文をブロック(64~128bit)と言う単位に区切って暗号化する共通鍵暗号方式である。構造は、鍵スケジューラ部とデータ撹拌部からなる。暗号鍵を使い鍵スケジューラ部より拡大鍵を得た後、その拡大鍵を使って平文から暗号文を作成する。
- ブロック暗号のモード
- ECB(Electronic Code Book)モード:各ブロックを独立に暗号化/復号化する。欠点:同じ平文は同じ暗号文になる。
- CBC(Cipher Block Chaining)モード:暗号化したブロックの一部を次のブロックの暗号化に使用。
- OFB(Output FeedBack)モード:平文した一部と暗号化乱数を使い、次のブロックを暗号化する。以下のサイトの説明が非常に分かりやすい。(http://www.triplefalcon.com/Lexicon/Encryption-Block-Mode-1.htm)
- CFB(Cipher FeedBack)モード:暗号化された一部と暗号化乱数を使い、次のブロックを暗号化する。以下のサイトの説明が非常に分かりやすい。
- Triple-DES:米国連邦政府情報処理標準で定められた。DES(Data Encryption Standard)と呼ばれるブロック暗号を元に作られている。DESは鍵長が56bitしかないため、現在では安全でないとされている。違う鍵用いて、DESを暗号化→復号化→暗号化する方式をTriple-DESという。
- DES:DESは1ブロック、64ビットからなり、8ビットをパリティ(誤り検出符号)に残りの56ビットを鍵長とする。この56ビットを転置して、16回のFeistel関数で処理する。
- Feistel関数:
- 平文を半分にした32bitを拡大転置することで48bitにする。
- ラウンド鍵と上記の結果をXOR操作で結合する。
- 上記の結果を、6bitずつに区切り8個にわけてSボックスに入力する。
- Sボックスの出力である32bitに並び替えを施す。
- Feistel関数:
- DES:DESは1ブロック、64ビットからなり、8ビットをパリティ(誤り検出符号)に残りの56ビットを鍵長とする。この56ビットを転置して、16回のFeistel関数で処理する。
- AES:平文を行列形式にして、以下の方法を使うことによって暗号化する。
- AddRoundkey:行列表示された拡大鍵をバイトごとに排他的論理和する操作
- SubBytes:バイトごとに独立に置換表を参照して変換する操作
- ShiftRows:各行をバイト単位で回転シフトさせる操作
- MixColumns:定数行列をこの行列に左から掛ける操作
強度評価
- 暗号攻撃法の分類
- 選択暗号文攻撃:攻撃者が任意に選んだ暗号文に対して平文を入手できる。
- 選択平文攻撃:攻撃者が任意に選んだ平文に対して暗号文を入手できる。
- 既知平文攻撃:攻撃者は平文と暗号文の対を入手できる。
- 暗号文攻撃:攻撃者は暗号文のみを入手できる。
- 差分解読法:ある条件をもった2つの平文をとり、影響を及ぼす鍵のビット数を小さくする。平分ペアの条件は
- SBOXの差分特性の抽出
- F関数の差分特性の抽出
- 暗号系の差分特性の抽出
- 差分特性の具体例
- S関数の性質
- F関数の性質
- 暗号系の性質
- 鍵候補の絞り込み
- 線形解読法
ストリーム暗号
- ストリーム暗号の構造:送信者と受信者が共通の乱数生成メカニズムをもち、平文と排他論理和することによって暗号文を生成する方式である。
- バナーム暗号:平文と同じ長さの真性乱数を用いて暗号化を行うストリーム暗号を指す。
- シフトレジスタを用いたストリーム暗号
- 作者: 宮地充子,菊池浩明
- 出版社/メーカー: オーム社
- 発売日: 2003/10
- メディア: 単行本
- クリック: 3回
- この商品を含むブログ (2件) を見る