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

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年