バーナム暗号が何ぞな人へ。
僕のプロフィールはこちら
バーナム暗号とは?
バーナム暗号とは、共通鍵暗号の中で最強の暗号です。
秘密鍵を使い捨てで用い、最高の安全性を誇るスーパーな暗号なのです。
ちなみに、バーナムさんが造ったので「バーナム暗号」と呼ばれています。
シャロンという人が理論的に解読不能だということを証明している暗号です。
バーナム暗号では何が用いられる?
バーナム暗号では「排他的論理和」が用いられます。
排他的論理和については省略。
バーナム暗号の式
まず、以下のように定義します。
m | 平文 |
---|---|
key | 鍵 |
c | 暗号文 |
m’ | 復号化された暗号文=平文 |
また、排他的論理和は「⊕」という記号で表現します。
暗号文は以下のようになる。
c = m ⊕ key
復号では以下のようになる。
m’ = c ⊕ key
バーナム暗号を簡単に使ってみるとこうなる
平文が「01010101」、鍵が「00001111」の場合
c = 01010101 ⊕ 00001111 = 01011010
となります。
バーナム暗号は解読できない?!
バーナム暗号を復号しようとすると、攻撃者は鍵の総当たりで暗号文を復号しようとします。
暗号文をひたすら復号すれば、いずれ元の平文と一致するものが現れますが、攻撃者はそれが正しい平文だということが分かりません。
暗号には、「暗号文」「平文」「鍵」の3要素がありますが、この内1つしか分からない場合、解読はできません。
攻撃者は基本的に暗号文しか分からないため、バーナム暗号の解読はできないということになります。
バーナム暗号の鍵の長さ
バーナム暗号の鍵の長さは、平文と同じです。
また、理論的に安全性を満たしている暗号は、平文の長さよりも鍵の長さを短くできないということが証明されています。
つまり、平文と鍵の長さが同じというのは最も効率が良いとされています。
バーナム暗号の欠点
鍵のランダム性
バーナム暗号では秘密鍵がランダムでなくてはなりません。
要は、真正乱数から生成されたビット列ではならないのでーす。
ビットの欠落
バーナム暗号は排他的論理和を使用するため、暗号文&秘密鍵ともに、1ビットでも欠落すると正しく復号できません。
鍵の配送問題
バーナム暗号は鍵が使い捨てであるという特徴があります。
そのため、一度使用した鍵は再利用ができません。
つまり、暗号化する度に秘密鍵を共有するという作業が必要になります。
最強なのにバーナム暗号が使われない理由は?
結論、上記の欠点で上げた通り、課題が多いためです。
効率性や利便性に欠けているため、限定的な場面でしか使用されません。
おすすめ書籍
この本、スーパー分かりやすくて超好き。
まとめ
バーナム暗号の仕組み自体は簡単ですけど、安全性の面では最強っていうのが面白いですね。
まあ、あんまり使われないみたいですけど。。
ではさいなら。
関連記事
以下の記事も合わせて読まれています。