暗号鍵の長さと暗号の強さについて

BACK TOP

暗号通信では通信されるデータがすべて暗号化されます。暗号化する際には、必ず暗号鍵を指定します。「暗号鍵」とは、具体的には、ある範囲の整数の中から選ばれた1個の整数です。暗号鍵(事前に指定されたある1個の整数値)がわからなければ、暗号を解くことはできません。ある範囲といっても、とてつもなく大きな範囲から選択されます。通常暗号鍵が選択される整数の範囲は、ビットという単位で表現します。例えば、128ビットの暗号鍵とは、0-2128から選ばれた1個の整数です。ちょっと2128の計算を試みてみられればわかると思いますが、とてつもなく大きな整数です。

暗号を解く方法には、大きく分けて2つあります。1つは暗号アルゴリズムの弱点をついて解く方法で、もう1つはすべての暗号鍵をしらみつぶしに調べる方法です。アルゴリズムが公開されてから長く利用されている暗号では大きな弱点が知られておらず、前者の方法で解くことは困難です。後者の方法では、理論的にはどんな暗号でも必ず解くことができます。ただし、しらみつぶしに調べるためには、時間がかかります。暗号鍵が選択される範囲が広ければ広いほど、しらみつぶしに調べるのに時間がかかります。しらみつぶしに調べるのに非常に長い時間(例えば100万年)かかるようであれば、「解けない」とみなしてもよいと思われます。表1、表2に各々100万ドルの専用ハードウエアとコンピュータで、しらみつぶしに調べた場合にかかる時間の予測値を示します。ハードウエアの処理能力が、5年で10倍になると仮定しています。128ビット暗号が40ビット暗号と比較にならないくらい強いということがおわかりいただけると思います。

表1 100万ドルの専用ハードウエアを利用して、しらみつぶしに暗号鍵を調べた場合に解くのに必要な時間(出展:E-Mailセキュリティ、ブルース・シュナイダー著、力武健次監訳、1995)
暗号鍵の長さ(ビット)
40 56 64 80 112 128
1995 0.2秒 3.6時間 38日 7000年 1013 1018
2000 0.02秒 21分 4日 700年 1012 1017
2005 2m秒 2分 9時間 70年 1011 1016
2010 0.2m秒 13秒 1時間 7年 1010 1015
2015 0.02m秒 1秒 5.5分 251日 109 1014
2020 2μ秒 0.1秒 31分 25日 108 1013
2025 0.2μ秒 0.01秒 3秒 2.5日 107 1012
2030 0.02μ秒 1m秒 0.3秒 6時間 106 1011

表2 100万ドルのコンピュータを利用して、しらみつぶしに暗号鍵を調べた場合に解くのに必要な時間(出展:E-Mailセキュリティ、ブルース・シュナイダー著、力武健次監訳、1995)
暗号鍵の長さ(ビット)
40 56 64 80 112 128
1995 33分 3年 1000年 107 1017 1022
2000 3.3分 115日 100年 106 1016 1021
2005 20秒 15日 10年 7000000年 1015 1020
2010 2秒 1.5日 1年 70000年 1014 1019
2015 0.2秒 3.6時間 38日 7000年 1013 1018
2020 0.02秒 21分 4日 700年 1012 1017
2025 2m秒 2分 9時間 70年 1011 1016
2030 0.2m秒 13秒 1時間 7年 1010 1015