目的
効率と性能を追求した画期的な暗号プロセッサSnakeCubeが2018年に僕が発明するまで発明できた人がいなかった理由についての考察。ネタバレ含む。
背景
RSA暗号は1977年に ロナルド・リベスト、アディ・シャミア、レオナルド・エーデルマンらによって発明されたらしいのです。その後、楕円曲線暗号が発明されRSA暗号より計算量が少ないために、多くの研究者がRSA暗号から離れていったことも一因であったように思いますが、これとは別に発明を難しくしている問題がありました。
考察
RSA暗号における署名は鍵長が大きくなるにつれて計算量が膨大になるアルゴリズムです。 暗号プロセッサSnakeCubeではRSA暗号の最大鍵長によって演算器のサイズが決まります。 そして無限にサイズを大きくしても鍵長に正比例させて性能を上げることが可能な発明です。 正比例については今回の本題ではないので詳しくはNOKIの法則を見てください。 ハードウェアの高速化の王道はパイプライン化ですが、暗号演算の場合、多くは逐次演算なので、そういう場合では、パイプライン化は性能を逆に低下させてしまいます。暗号の逐次演算の王道は1ループを1サイクルで演算してしまうことです。日立製作所の暗号装置 ICF2(1998年)、ICF3(1999年)のDES暗号で複数ループを1サイクルにする力業でIBM、富士通の数倍の性能を達成させた実績があります。ただ、これに囚われるとSnakeCubeの発明は出てきません。
SnakeCubeは一見、不利なパイプライン化によって制御信号が高速に伝達できるようになるのですが、これがまた、一見、できないように見えるのでSnakeCubeは誰も発明することができなかった。人間は、できないように見えたら、作業をそこで止めて、別の方向に行ってしまうのです。これが難しいところ。
詳しくは、昔のプレスリリースの最後のほうにある図の下にある中継FFで、大きな整数のキャリーが1サイクル遅れるところと、モンゴメリ乗算の右シフトで、1サイクル早く転送するところがあって、遅くすることはできても、早く演算することは、できない、ように見えるからです。
プレスリリース2022年06月14日 https://atpress.ne.jp/news/310208