わざと計算が重たいアルゴリズムを使用することで、よりクラックされにくくする。
そう言う発想の暗号は存在しないわけではないが、今回話題になっているようなコンピュータ同士が使う暗号には、基本的には暗号は鍵長とアルゴリズムで安全性を担保するのが主流です。
そのまんま鍵の長さ。128とか256とか。組合せの数。これの数が多いほど、鍵になる文字のパターンが多くなる。総当たり攻撃(箸から順番に鍵を試してみる方法)に強くなっていく。
例えば、元々のDESは、56bitの鍵。これは組合せの数が少なく、総当たり攻撃でも1998年に当時のスパコンで23時間で破る事ができた。現在だとスマホクラスでもちょっと待てば破れてしまうだろう。
今問題になっているフェリカの旧タイプの暗号方式、3DESとは、簡単に言うとこのDESを3回かけることにより、鍵長を長くした暗号方式。168bitの鍵長を持っています。
56bitに対して一気に組合せが爆発して、総当たり攻撃で鍵を特定しようとしても現実的な時間で終わらなくなります。
例えば、仮に1秒間に1億回計算出来るチップが1億個あったとしても、10^16年(正確な数字は多少間違っているかもしれないが)かかる。これはこの太陽系の寿命よりも長い時間をかけないと計算が終わりません。
これを利用することによって、正しい鍵を知っている人は省エネで計算でき、知らない人は膨大な時間が必要と言う暗号方式ができあがっている。このような特性をもった方式が優秀とされ、色々な所で使われている。
また、この組合せ爆発の前には、人間が堪えられるレベルの暗号処理の重さはほぼ誤差です。そのため、複合化が軽い暗号化方法で、鍵長を長くするというのが主流というわけだ。
ではなぜこれだけの鍵長がある3DESが破られると言われているかというと、アルゴリズムに問題があるから。
3DESの脆弱性で、最も有名な奴は、暗号化の鍵の中で一部でも既知の部分があると、探索しなければならない鍵のパターンが大幅に少なくなると言う脆弱性がある。
これに、その他のクラック方法を組み合わせて、鍵の一部を入手する。
カードだったら、カードそのものから送信される電磁波や物理的な分解による情報の略取の試み(サイドチャネル攻撃)などを組合せて情報を得るなど。それにこの脆弱性を組み合わせる事により、組合せの数が減る。
コンピュータの性能は良くなっているので僅かな情報で強引に計算が可能になっている、と言うわけ。
フェリカはまだクラックされていないかったが、既にこの手法でクラックされたICカードが存在している。これもかなり前の話なので、今はもっとコンピュータの性能がよくなっているからどうかなー。
今回フェリカがこの方法で破られたかはわからないが、これ以外にも3DESは様々なセキュリティ関連の研究題材になっていて、色々なクラック方法が提案されており、もう安全とは言えないんだよね。これらは論文として公開されている。
だからネットではとっくの昔に非推奨になっていて、ネットの安全性を担保するために今使っている人はほぼいない。
ソニーもそれを認識していて、2011年にアップグレードをかけて移行していたと言う訳だ。
ちなみに、今次世代コンピュータと称して量子コンピュータというものが開発されているが、これを使うとこの組合せ爆発問題を現実的な時間で解けるようになってしまう。まぁ現実と行っても数ヶ月レベルではあるのだが、何らかの技術革新が起きると一気に進むレベル。
そのため、この組合せ爆発を利用した暗号化以外の方法が現在研究されていると言う流れがある。これを「耐量子暗号技術」という。
量子コンピュータで解けるようになるのは公開鍵暗号であって、AESのような共通鍵暗号は量子コンピュータでも難しいって話だと思ってたが
そこはたぶん、暗号化の連中は数十年単位でみてるから普通の人とは感覚が違うと思う。 あいつら天才だし。