良く耳にする、ブロック暗号とは・・・

Team TripleFalcon. http://www.triplefalcon.com/

概要

 以下に有名なブロック暗号(block cipher) のアルゴリズムを列挙しました。ブロック暗号というのは、処理を固定長のブロック単位で処理する共通鍵暗号(symmetric cipher) の総称です。(参照→暗号共通鍵暗号公開鍵暗号)

 最近は、ブロック暗号に大きな動きがありました。AES の制定と NESSIE 等新しい暗号アルゴリズム評価の動きです。(参照→次世代暗号化標準

 ブロック暗号の構造の代表的なものには、Feistel型SPN型があります。(参照→Feistel構造SPN構造)もちろん他の構造もあります。このような分類は、研究者によって異なる場合が多いようで、あまりこだわらない方が良いかもしれません。

 現在のところ、推奨される暗号鍵の長さは 80 Bit 以上で、ブロック長は 64Bit か 128 Bit 程度でしょう。これくらいが安全として勧めることができるパラメタです。

 たいていブロック長はアルゴリズム固定なのですが、ブロック長が可変である RC5Rijndael のような特殊なものもあります。(鍵長さ、ブロック長の単位は bit) B長=ブロック長です。

名称 鍵長 B長 概要
DES アメリカ 56 64 旧アメリカ政府標準暗号
Triple-DES アメリカ 112,168 64 DES を 3回かけて安全性を向上
MARS アメリカ 128-1248 128 IBM製
Rijndael ベルギー 128,192,256 可変*1 アメリカ政府標準暗号(=AES)
MISTY 日本 128 64 三菱電機製 M.松井が設計
FEAL-NX 日本 64,128 64 NTT 製
IDEA スイス 128 64 Ascom社製
CAST カナダ 128 64 カナダ標準暗号
CAST256 カナダ 128,192,256 128 CAST を改良
GOST ロシア 256 64 ロシア標準暗号
Blowfish アメリカ 32-448 64 B.Schnier が設計
RC2 アメリカ 128 64 R.Rivest が設計
RC5 アメリカ 8-2048 可変*2 R.Rivest が設計
RC6 アメリカ 32-2040 可変*3 R.Rivest が設計
Twofish アメリカ 128,192,256 128 B.Schnier が設計
Serpent イギリス 128,192,256 128 ケンブリッジ大

 ブロックの長さは、たいてい 64Bit か 128 Bit です。鍵の長さは様々で、短いものでは 40Bit くらい、長いものでは 2000 Bit も使えたりします。一個のアルゴリズムで鍵の長さを変えられるものもあります。

 *1: Rijndael のブロック長は、128,192,256 の3段階。

 *2: RC5 のブロック長は、32,64,128 の3段階。鍵長は、8ビット毎にほぼ自由な値。

Team TripleFalcon. http://www.triplefalcon.com/

構造

 以下はブロック暗号(block cipher) によく利用される構造です。ブロック暗号は、通常はラウンド(round) 処理と鍵拡大(key expansion) 処理からなります。鍵拡大処理では、入力された暗号鍵の値を多くのビット長に拡大し、各ラウンド処理で利用できる様にラウンドごとに異なるラウンド鍵(round key) を生成します。各ラウンド処理では、鍵と入力データに変換をかけ、次のラウンドにデータを渡します。鍵の拡大処理を、鍵スケジュール(key scheduling) ともいいます。

 本来、短い鍵からいくら長いビットを生成しても鍵が長くなるわけではないのですが、ラウンド鍵同士の関連がわからない人から見れば、「長い鍵で暗号化された暗号」を解読しているかのような作業を必要とするわけです。 安全性評価では、各ラウンド鍵の値は互いに独立という仮定をすることも多くあります。(明らかに誤った仮定ですが、通常はそのように計算するということです。)

 初期のラウンド (round-1) の前や、最終ラウンド(round-N) の後に初期変換最終変換と呼ばれる変換が含まれることがあります。多くの場合、初期変換や最終変換は鍵に依存しない高速な処理を用います。初期変換や最終変換の扱いは暗号方式によって様々です。また、これらの変換は暗号の安全性評価からはずされる場合が多いようです。最近は、このような変換をラウンド関数の間にはさむような工夫したものも登場しています。

 ラウンド数 N は、暗号の方式によってまちまちです。しくみが違う暗号を比較しようとする場合は、ラウンド数の大小では強度を比較できません。同じ暗号では、通常はラウンド数が多いほど強度が高くなると考えることが出来ます。暗号方式によっては、ラウンド数を可変にしているものがあります。(AES、RC5、等) 固定のものもあります。(DES、Twofish、等)

 ラウンド関数の実装法によって、よく以下の様に分類されます。

構造 概要
Fiestel構造 最も多用される。左右分割して交互に暗号化。
type2-Fiestel Fiestelの変形その1
type3-Fiestel Fiestelの変形その2
一般 Fiestel Fiestelの変形その3
SPN構造 換字・転置を繰り返す。AESに使われています。
2round SPN SPN の変形版。

 上記の構造は、暗号を利用しようとする人にはあまり意味のないパラメタでしょう。分類にはあまりこだわらない方が良いともいえます。(例えば、Feistel構造で用いられる F関数が SPN構造を採用していることもあります。上記分類にそれほど強い意味があるわけではありません。)

 Feistel 構造系は、SPN 構造系よりも、通常はラウンド数を多く取ります。Feistel構造は、1ラウンドでデータ全体の一部しか暗号化できないからです。しかし、このことは、Feistel 構造が SPN 構造より遅いということも弱いということも意味していません。

 Feistel構造の代表的なブロック暗号は、DES、Twofish、FEAL、MISTY、などでしょう。(参照→Feistel構造DESTwofish、FEAL-N、MISTY)

 SPN構造の代表的なブロック暗号は、AES、Serpent、などでしょう。(参照→SPN構造AESRijndael、)

 FeistelにもSPNにも分類しにくいものは、RC5 などでしょう。(参照→RC5)

Team TripleFalcon. http://www.triplefalcon.com/

利用モード

 ブロック単位に処理する場合、各ブロックに平文の特徴が表れることがあるので、それを防ぐ工夫をします。(参照→ブロック暗号モード)

 以下、赤でマーキングしたモードは ISO/IEC 10116 に規定されたモード一覧です。

略号 名称
CBC 暗号文ブロック連鎖モード(Cipher Block Chaining)
OFB 出力フィードバックモード(Oftput Feed Back)
CFB 暗号フィードバックモード(Cipher Feed Back)
ECB 暗号ブックモード(Electric Code Book)
CTR カウンターモード
PCBC 平文暗号文連鎖モード(Plain Cipher Block Chining)

 上記4つのモードは、DES の利用モードとして考案されましたが、DES に限らず他のブロック暗号にも適用が可能です。この他にも、PCBC や Counter Method など新しい暗号利用モードも考案されています。

 平文が一致するかどうかわかっても、平文の中身が知られなければいいんでないの?と思われる方は読んでください。下の表を見てください。左の平文を右に暗号化しました。

平文 暗号文
阿井宇 英男 前科無し
柿久  啓子 前科無し
鎖師巣 清三 前科五犯
館   伝人 前科無し
6950723 4067482 1664372
5493732 8194620 1664372
4236950 7159621 9258431
7110296 8756712 1664372

 平文を見ると、暗号文中の第三行だけ他の人と値が違います。平文ブロックに”前科無し”がほとんどである場合、その行は重大な意味を持ちます。上から3番目が誰であるか推測できる人で、さらに右欄が犯罪暦であると知っている人であれば、この部分だけでかなりのことがわかります。もちろん平文は正確にはわかりませんが、少なくともここの値が "前科無し" ではないことはわかります。

 つまり、暗号文ブロックが他と違う(あるいは同じである)という事実、それだけで重大な意味を持つ場合があります。この欠点を克服するための主なモードには CBC,OFB,CFB 等があります。 工夫をしないでブロック処理をする場合、ECBモードと呼びます。

Team TripleFalcon. http://www.triplefalcon.com/

Team TripleFalcon. http://www.triplefalcon.com/

Team TripleFalcon. http://www.triplefalcon.com/

Team TripleFalcon. http://www.triplefalcon.com/

Team TripleFalcon. http://www.triplefalcon.com/

Team TripleFalcon. http://www.triplefalcon.com/

Team TripleFalcon. http://www.triplefalcon.com/

Team TripleFalcon. http://www.triplefalcon.com/

Team TripleFalcon. http://www.triplefalcon.com/

Team TripleFalcon. http://www.triplefalcon.com/

Team TripleFalcon. http://www.triplefalcon.com/

Team TripleFalcon. http://www.triplefalcon.com/


Team TRIPLE FALCON

アクション&シミュレーション ゲーミングとゲーム製作を真面目に考える 新進気鋭の研究者集団

   
 
用語集TOP

ブロック暗号(block cipher)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
あ-お か-こ さ-そ た-と な-の
は-ほ ま-も や-よ ら-ろ わ-ん

数学、哲学、工学を横断する事典です。よろしければ活用してください。 ゲーム, アクション,シューティング,シミュレーション,リアルタイム, 計量経済学,計量心理学, コンピュータ,用語集,計算機科学用語集,コンピュータ用語集, 3DCG, グラフィックス,ゲームグラフィックス,美少女, 光反射,鏡面反射,拡散反射,屈折,散乱,異方性反射,影, シェーディング,レンダリング,透視変換, 発光,爆発,爆炎,煙, 物理, 人物,表情,表現,運動,力学,流体, 計算幾何学, グラフ,アフィン変換,アフィン写像,凸包,超平面,3D,3Dの数理, コンピュータサイエンス,コンピュータ, 計算機科学, チューリングマシン,チューリング機械,線形有界オートマトン,プッシュダウンオートマトン,有限オートマトン, オートマトン,状態遷移,遷移関数,対角線論法,文字列,記号, FA,NFA,PDA,NPDA,LBA,NLBA,TM, 計算量,P,NP,PSPACE,NP完全,NP困難,P完全,PSPACE完全,PP,APX,APX完全, 確率チューリング機械,確率オートマトン, 音声, 音階,音量,音律,和音,和声,無限上昇音,MIDI, 色彩, 表色系,顕色系,混色系,RGB,CMY,YCbCr,YUV,YIQ,CIE,L*a*b*, 符号, 圧縮,符号化,情報源符号化, 符号,ブロック符号,ストリーム符号,符号理論, 離散数学, 集合,写像,関数,全単写,単写,全写,対応関係,関係,反射,反射推移閉包, 代数系, 群,環,体,モノイド,半群,準同型写像,同型写像, 形式言語, 言語,正則言語,文脈自由言語,文脈依存言語,確率言語, 文法,正則文法,文脈自由文法,文脈依存文法,確率文脈自由言語, 文字,文字列, 3型言語,2型言語,1型言語,0型言語, 信号処理, 変換,フィルタ,信号処理,DFT,DCT,DST,FFT,Wavelet,フーリエ変換, 離散,コサイン変換,サイン変換,ウェーブレット, 基礎数学, 数学,応用数学,基礎数学,フィボナッチ数列, 解析学, 位相空間,線形空間,距離空間,ベクトル空間,vector,バナッハ空間,Banach,ヒルベルト空間,Hilbert,ユークリッド空間,Euclid, ノルム,内積,可算濃度,非可算濃度, 情報理論, 情報源,情報量,エントロピー,相互情報量,記号,記号列, 複雑系, カオス,フラクタル,フラクタル幾何学,カオス写像, インターネット, セキュリティ,HTTP,SMTP,FTP,プロトコル, その他理論,理論, 紅茶,自転車通勤,備忘録, 暗号, モンゴメリ演算,高速計算法,素因数分解,離散対数問題, 暗号,ブロック暗号,ストリーム暗号,楕円暗号, 乱数,乱数生成,共通鍵暗号,公開鍵暗号,公開鍵署名,鍵共有,鍵交換, 線形攻撃,差分攻撃,補間攻撃,スライド攻撃,量子暗号, 依頼計算,ゼロ知識対話証明,ハッシュ,

AES,Rijndael,RSA,ElGamal,Twofish,Serpent,

RC6,MARS,CAST,IDEA,GOST,

MQV,DH,EC-DH,EC-ElGamal,

終了,

フィリピンパブ
アミューズメント企画はお任せ
資産運用はお任せ
メール お問い合わせ お問い合わせ メール メール メール メール メール メール