Home

ICF3 シミュレータ


2016年12月8日 シミュレータのソースコードをMITライセンスで公開

ダウンロードのページからダウンロード可能です。

ICF3シミュレータ

はじめに

当時、ICF3のRSA演算器のマイクロコードを開発するためにC言語のシミュレータを作成した。 C言語といっても論理的な動作をほぼ完全にシミュレート可能なものだった。 JavaScriptに変換してブラウザで実行できるようにしたものがICF3シミュレータです。

JavaScript変換

emscriptenを使ってJavaScriptに変換してWebサービスにしました。 videoconverter.jsのJavaScriptも流用させていただいます。

必要条件

Internet Explorer 11、FireFox 45、Google Chrome 50、Edge 25
Vivaldi 1.2、Opera 37
他のブラウザでも動作するかもしれません。
メモリ1~2GB以上



使い方

ソフト編を参考にしてマイクロコードのファイルを作成します。 既に作成済のべき乗剰余演算(奇数)べき乗剰余演算(偶数)を使うのもいいと思います。 この演算器は奇数と偶数で処理の方法が違います。ハード編に説明があります。
マイクロコードのファイルが準備できたら、このページの左上にある「実行」をクリックして、 ファイルをドラッグ&ドロップすればシミュレーションが実行されます。

シミュレーションが完了すると結果のファイルがダウンロードできるボタンが出現します。


その他の、作成済みのマイクロコードのファイル
中国人剰余定理ケース1    中国人剰余定理ケース2
中国人剰余定理ケース3    中国人剰余定理ケース4
楕円暗号スカラ倍


マイクロコードのファイルの作り方

シミュレータ特有の命令があります。
1つは16本の1024bitレジスタの設定。ファイルの先頭で
$R1 =
12345678
のようにします。レジスタはR0~R15ですが、必要なものだけで大丈夫です。
もう一つはレジスタの表示。演算が終わったところ、つまりEND命令のところで表示させたいレジスタを記述します。
END(0);@R14
のようにします。
シミュレータは先頭アドレスから実行を開始します。B命令で実行したい関数にジャンプさせます。 このとき注意しなければならないのは遅延分岐なのでB命令の次の命令も正しく記述しなければいけません。


デバッグについて

シミュレータ用の疑似命令、@にレジスタ名を追加した命令を利用すると、その命令実行時のレジスタが表示されます。
@I
とすればIレジスタの値がシミュレーション結果のファイルに出力されます。


サポート

ツイッターメールでお願いします。


免責事項

利用して、万が一、損害を被っても当サイトは一切責任を持ちません。