憂鬱な午後のひととき

1月28日_

BLS12

実装のために論文読んだり紙と鉛筆で確認したり. はやく対応したいな.

1月27日_

mcl-wasm

IDベース暗号デモで簡単なベンチマークを取れるようにした. 曲線も462-bit BN曲線まで対応した. ただiPhoneのiOSを11.2.5にしたら動かなくなった. emscriptenを見るとWebKitのバグらしいのだけど, なんか騒いでる人いない. あまり再現しないということ?

1月26日_

SCIS2018最終日

ソフトウェア実装の座長だったので緊張した. 私も早く128ビットセキュリティ対応の曲線をきちんと実装しよう. まあ終わって, 無事家に帰れてよかった.

1月25日_

SCIS2018 3日目

一歩も外に出られなくて体がむずむずしていたので青空が見えたときに昼御飯を食べに駅の方まで歩いてみた. そのに出るとめちゃくちゃ冷たい.

しかもすぐ天気が変わって吹くと向きも分からなくなる. でも, みな普通に自動車走ってるし人も歩いてる. 強いなあ.

1月24日_

SCIS2018 2日目

自分の発表は終わったので余裕を持って他人の話を聞ける.

今回はなるべくいろんな人と話すように努力した.

1月23日_

SCIS2018初日

新幹線は大丈夫か, 新潟に遅刻しないか心配だったけど正常運転. 雪国は東京と違って強いな(東京が天気に対して脆弱すぎるというべきか).

首がまだ痛くて動かないのでサポータをしていたら「また大変そうですね」と何人もの方に声を掛けていただいた. 去年に続いてご心配をおかけしてすいません.

ペアリングベースの効率的なレベル2準同型暗号の発表をした. 興味を持ってくれた人がいてよかった.

1月19日_

『あたたかい水の出るところ』(木地雅映子)

家族がうまくいってない高校生の女の子がお風呂屋さんの温泉に逃避する. なかなかフェイントな設定だけど, ツボにはまって楽しめた.

1月17日_

準備

SCIS2018のプレゼン資料の作成.

1月16日_

x86/x64最適化勉強会8

フィーバーしてしまった参加枠が埋まってしまった. 当日キャンセルどれぐらいになるかな. 心配事多し.

1月12日_

最適化勉強会の準備

今回は弊社の会場を使うことにしたのでいろいろ準備が大変. 他のところを借りた方が楽だなあ.

1月11日_

新人歓迎ランチ会

社長就任歓迎会も同時に行う. どうもよろしくお願いします. 平均年齢が結構下がった.

以前やった忘年会もそうだけど夜はいろいろ面倒, 遅くてしんどいのでお昼にするのはとても楽でいい.

1月10日_

mcl-wasm

travis-ciでテストを実行するようにした. カバレッジなどもおいおい追加したい.

すぐ捨てるメモリ確保はmod.Runtime.stackSave(), stackAlloc()を使っていたのだが, _malloc/_freeの方が何かと便利なのでそちらに全て移行した.

Commonクラスに必要なメソッドを作ったらコードが大分すっきりした. blsやsheにも適用していく.

1月9日_

standard.js

Node.jsのstandardにしたがったコーディングスタイルにしてみた. --fixオプションで簡単なものは自動修正してくれる.

1月8日_

serialize

mclのいろいろなクラスのserialize/deserializeをくくりだしてCRTPで実装した. コンパイルエラーなどが読みにくくなるのであんまし多用はしたくないのだけどC++じゃしかたないよな.

1月7日_

『独習C#新版』(山田祥寛)

一通り読み終えた. 私は去年mclやblsのC#バインディングを作るときに適当に調べながら初めてC#を触ったので抜けが多い. それでこういう本を頭から読むと基本的な概要が頭に入ってよい. まあ私はC#初心者だけどプログラミング初心者ではないのでまどろっこしく感じるところはあるけど(しかたない).

他の言語で慣れている部分は「Note」や「エキスパートに訊く」などを拾い読みするとC#特有の部分が分かってよい. あと, こういった本であまり見たことが無いのだが各章末に問題がついている. C#の文法の間違い探しは面白い.

個人的には当初の目的であったポインタやStructLayoutまわりの解説が無かったのは残念(まあこれもしかたない).

普段C++を使ってるのでオーバーフローをチェックするcheck, uncheckやパーシャルクラスpartialなどの機能はうらやましい.

typoやいくつか気になった点など:

1月6日_

Xbyak 5.60 for Icelake

気が早いがIce lake用のAVX-512命令(?)に対応した.

今までで一番命令長が長かったvaeskeygenassistを超える17文字のvgf2p8affineinvqb. その名の通り(?)バイト単位での有限体F28の逆元を求める命令.

CPUのマニュアルにGalois Fieldなんて言葉が出てくるとはなあ.

1月5日_

Re: Xbyak

vpopcnt, vpdpbusd, vpshufbitqmbなど追加.

あまりに首が痛くて気がついてなかったが頭痛もあるようだ. 参ったな.

1月4日_

Xbyak

developブランチにvpclmulqdqのAVX-512対応とvcompressb, vcompresswの追加.

首まだ痛い. もう1カ月経ってしまった.

1月3日_

事前計算テーブルの読み込み

準同型暗号の復号時に使うDLPのテーブルを事前に計算しておき, それを読めるようにする. 8MBのテーブルを持てばJavaScriptでも32bit整数は10数msecで, 手元のAndroid端末でも1秒未満で復号できるようになった.

1月2日_

G1, G2をGT経由で復号

Lifted-ElGamal暗号のG1, G2での復号はハッシュテーブルの検索時にアフィン座標にしないといけないのでGTでの検索より時間がかかる. ただG1, G2からGTにするにはペアリングをとらないといけないので初期コストが大きい. 簡単なベンチマークをとったところ数十~数百回程度テーブル引きをするなら一度GTに変換した方が速くなるとわかった.

小さいときはG1, G2のままでよいので選択できるようなAPIを追加しないと.

1月1日_

明けましておめでとうございます

今年の初ジョギングは慎重に始めた.


御意見は光成滋生<herumi@nifty.com>までお願いします