BLS12
実装のために論文読んだり紙と鉛筆で確認したり. はやく対応したいな.
BLS12
実装のために論文読んだり紙と鉛筆で確認したり. はやく対応したいな.
mcl-wasm
IDベース暗号デモで簡単なベンチマークを取れるようにした. 曲線も462-bit BN曲線まで対応した. ただiPhoneのiOSを11.2.5にしたら動かなくなった. emscriptenを見るとWebKitのバグらしいのだけど, なんか騒いでる人いない. あまり再現しないということ?
SCIS2018最終日
ソフトウェア実装の座長だったので緊張した. 私も早く128ビットセキュリティ対応の曲線をきちんと実装しよう. まあ終わって, 無事家に帰れてよかった.
SCIS2018 3日目
一歩も外に出られなくて体がむずむずしていたので青空が見えたときに昼御飯を食べに駅の方まで歩いてみた. そのに出るとめちゃくちゃ冷たい.
しかもすぐ天気が変わって吹くと向きも分からなくなる. でも, みな普通に自動車走ってるし人も歩いてる. 強いなあ.
SCIS2018 2日目
自分の発表は終わったので余裕を持って他人の話を聞ける.
今回はなるべくいろんな人と話すように努力した.
SCIS2018初日
新幹線は大丈夫か, 新潟に遅刻しないか心配だったけど正常運転. 雪国は東京と違って強いな(東京が天気に対して脆弱すぎるというべきか).
首がまだ痛くて動かないのでサポータをしていたら「また大変そうですね」と何人もの方に声を掛けていただいた. 去年に続いてご心配をおかけしてすいません.
ペアリングベースの効率的なレベル2準同型暗号の発表をした. 興味を持ってくれた人がいてよかった.
『あたたかい水の出るところ』(木地雅映子)
家族がうまくいってない高校生の女の子がお風呂屋さんの温泉に逃避する. なかなかフェイントな設定だけど, ツボにはまって楽しめた.
準備
SCIS2018のプレゼン資料の作成.
フィーバーしてしまった参加枠が埋まってしまった. 当日キャンセルどれぐらいになるかな. 心配事多し.
最適化勉強会の準備
今回は弊社の会場を使うことにしたのでいろいろ準備が大変. 他のところを借りた方が楽だなあ.
新人歓迎ランチ会
社長就任歓迎会も同時に行う. どうもよろしくお願いします. 平均年齢が結構下がった.
以前やった忘年会もそうだけど夜はいろいろ面倒, 遅くてしんどいのでお昼にするのはとても楽でいい.
mcl-wasm
travis-ciでテストを実行するようにした. カバレッジなどもおいおい追加したい.
すぐ捨てるメモリ確保はmod.Runtime.stackSave(), stackAlloc()を使っていたのだが, _malloc/_freeの方が何かと便利なのでそちらに全て移行した.
Commonクラスに必要なメソッドを作ったらコードが大分すっきりした. blsやsheにも適用していく.
standard.js
Node.jsのstandardにしたがったコーディングスタイルにしてみた. --fixオプションで簡単なものは自動修正してくれる.
serialize
mclのいろいろなクラスのserialize/deserializeをくくりだしてCRTPで実装した. コンパイルエラーなどが読みにくくなるのであんまし多用はしたくないのだけどC++じゃしかたないよな.
『独習C#新版』(山田祥寛)
一通り読み終えた. 私は去年mclやblsのC#バインディングを作るときに適当に調べながら初めてC#を触ったので抜けが多い. それでこういう本を頭から読むと基本的な概要が頭に入ってよい. まあ私はC#初心者だけどプログラミング初心者ではないのでまどろっこしく感じるところはあるけど(しかたない).
他の言語で慣れている部分は「Note」や「エキスパートに訊く」などを拾い読みするとC#特有の部分が分かってよい. あと, こういった本であまり見たことが無いのだが各章末に問題がついている. C#の文法の間違い探しは面白い.
個人的には当初の目的であったポインタやStructLayoutまわりの解説が無かったのは残念(まあこれもしかたない).
普段C++を使ってるのでオーバーフローをチェックするcheck, uncheckやパーシャルクラスpartialなどの機能はうらやましい.
typoやいくつか気になった点など:
Xbyak 5.60 for Icelake
気が早いがIce lake用のAVX-512命令(?)に対応した.
今までで一番命令長が長かったvaeskeygenassistを超える17文字のvgf2p8affineinvqb. その名の通り(?)バイト単位での有限体F28の逆元を求める命令.
CPUのマニュアルにGalois Fieldなんて言葉が出てくるとはなあ.
Re: Xbyak
vpopcnt, vpdpbusd, vpshufbitqmbなど追加.
あまりに首が痛くて気がついてなかったが頭痛もあるようだ. 参ったな.
Xbyak
developブランチにvpclmulqdqのAVX-512対応とvcompressb, vcompresswの追加.
首まだ痛い. もう1カ月経ってしまった.
事前計算テーブルの読み込み
準同型暗号の復号時に使うDLPのテーブルを事前に計算しておき, それを読めるようにする. 8MBのテーブルを持てばJavaScriptでも32bit整数は10数msecで, 手元のAndroid端末でも1秒未満で復号できるようになった.
G1, G2をGT経由で復号
Lifted-ElGamal暗号のG1, G2での復号はハッシュテーブルの検索時にアフィン座標にしないといけないのでGTでの検索より時間がかかる. ただG1, G2からGTにするにはペアリングをとらないといけないので初期コストが大きい. 簡単なベンチマークをとったところ数十~数百回程度テーブル引きをするなら一度GTに変換した方が速くなるとわかった.
小さいときはG1, G2のままでよいので選択できるようなAPIを追加しないと.
明けましておめでとうございます
今年の初ジョギングは慎重に始めた.