Home

新着情報

2024年2月20日 サイト移転 openicf3とURL共有(snakecubeの下にある独立したサイト)

2024年1月6日 サイト移転

2022年12月16日 更新、開発状況を非公開に

2020年9月15日 更新、ブログページ追加

2020年1月 9日 サイト公開

SnakeCubeとは

SnakeCubeは暗号演算半導体ICF3(1999年) の暗号プロセッサを改良して作られたアーキテクチャです。SnakeCubeは暗号プロセッサのARMのようなものです。 高性能かつ高効率であることが特長です。 2018年にICF3-Fという名前でプロジェクトをスタートさせましたが商用クローズドなのでSnakeCubeという名前に変更しました。 FPGAやASICなど、さまざまな半導体チップにSnakeCubeを実装することを想定しています。 2020年8月27日、XilinxのFPGA(XC7A35TICSG324-1L)を搭載したDIGILENTのボード Arty でRSA(decrypt CRT) 1回の演算時間 1.74[ms]を実測しました。 FPGA上の全ての乗算器90個を使って、乗算器を236MHzで動作させています。 スレッド数を増加させれば最大周波数の450MHz付近まで出せる可能性はありますが、 回路全体が収まらないことスレッド数を有効に使えるアルゴリズムでなければ効率は下がるため 236MHzとなっています。乗算器の利用率は74%。 乗算器を使っていないときもシフトレジスタとして使っているのでDSPの利用率としては、ほぼ100%です。


ICF3(1999年)の暗号プロセッサの開発時の名称は剰余演算器。 その後、四則演算が可能であることから暗号プロセッサと呼ぶようになっています。 その唯一の設計者(Naoki Hirayama)がICF3を改良してSnakeCubeを発明しています。 孤立無援、包囲されている最中に偶然、発明しました。SnakeCubeではモンゴメリ乗算を使っていますが、 モンゴメリ乗算のアルゴリズムは、乗算ループ中、前回の結果が確定しないと乗算ができないアルゴリズムです。 ただし最下位のn進数1桁だけ確定していれば、乗算を開始することができます。 このため従来研究では、巨大整数を分割して、最下位側から演算していくパイプライン化をする ものもありました。SnakeCubeでは巨大整数を分割することなく 全部を同時に並列実行できる方法を発明しました。 そして全部並列に実行しながら最下位側の演算だけを先に完了できる仕組みにより、 前述の従来研究のパイプライン化よりも高い周波数で動作することができて、 しかも全部同時に並列実行できるので従来研究よりも多数の乗算器を使って 効率的に演算できるため、発明と呼べる高性能かつ高効率を達成させています。 RSA暗号や楕円暗号の演算が可能なので様々な用途に利用できますが、 特にRSA暗号を使ったクレジットカードなどのICチップが有利な用途になります。
利権は全てNaoki Hirayamaが所有しています。



Xilinx Vivadoで論理合成に成功した図

図をマウスでクリックすると拡大されます


参考情報

暗号プロセッサSnakeCubeをマイコンに接続できる ソフトウェア「WZeta BIOS」を5月28日に提供開始