ブロック暗号 モード

ブロック暗号にはモードという概念があります。

ブロック暗号の代表としてAESなどがありますね。

 

●ブロック暗号??

共通鍵暗号方式にはブロック暗号とストリーム暗号という分類があります。

RC4などはストリーム暗号で上記したリンクで説明しているAESなどはブロック暗号です。

 

そしてブロック暗号にはモードという概念があります。

この「モード」とはブロック暗号のセキュリティに対して影響を与える大事な役目を持っているのです。

 

●ブロックで区切る

ブロック暗号がなぜブロックというのでしょうか?

名前から連想できますかねぇぇ?

 

例えば暗号化したい情報があり、その情報を暗号化する際にAESの場合は128ビットブロック長なので、128ビットのまとまりにします。

つまり、暗号化したい情報を128bitずつに区切るのです。

そしてこの区切られたのがブロックなわけですね。

 

図で書くと、

f:id:GufGuf:20170924203519p:plain

上図のように1つの暗号化したい情報を128bitずつに区切ります。

 

このブロックをどのように暗号化するかが「モードという概念にかかっている」わけです。

 

●主なモードの種類

 

●ECB

正式名 : Electric CodeBook

ECBは単純でブロックごとの暗号化結果をそのまま出力します。

つまり、各ブロックごとに暗号化処理をするわけです。

f:id:GufGuf:20170925092348p:plain

 

セキュリティ強度に関しては最も弱いとされています。

しかし、AES256であればある程度は。。。ですがやはりCBCなどを選択するべきでしょうね。

 

 

CBC

正式名 : Cipher block Chaining

 ECBとは違い少々ではありますが複雑化されています。

 

CBCでは1つ目のブロックの暗号化時に、初期化ベクトル(IV)とのXORを取ります。

また、暗号化済みの1つ目のブロックが2つ目のブロックの暗号化時のXORをとる相方となります。

f:id:GufGuf:20170925093405p:plain

どれか1ブロックでも欠けると復号化できなくなります。

また、復号化のルーチンは暗号化の逆を行います。

 

 

と、こんな感じでしょうか。

 

 

Remove all ads