go言語によるed25519実装は2種類あるようですが、こちらにあるもので調べてみました。
GitHub - Bytom/bytom: Official Go implementation of the Bytom protocol
go言語では単体テストにベンチマーク機能が組み込まれており、簡単にベンチマークが取れるようになっています。 ed25519実装の単体テストにもベンチマーク機能が組み込まれているので、それを使って測定してみました。
~/go/src/github.com/bytom/crypto/ed25519
私の環境では上記の場所にソースがクローンされているので、そのフォルダに移動してから以下のコマンドを実行します。
$ go test -bench .
goos: darwin goarch: amd64 pkg: github.com/bytom/crypto/ed25519 BenchmarkKeyGeneration-4 30000 51601 ns/op BenchmarkSigning-4 30000 52517 ns/op BenchmarkVerification-4 10000 139791 ns/op PASS ok github.com/bytom/crypto/ed25519 5.633s
マシンスペックは以下です。
On MacBook Pro 2017 2.3Ghz Intel Core i5
キーペア生成が1メッセージあたり51usec(マイクロ秒)
ベリファイが1メッセージあたり139usec(マイクロ秒)
こちらによると、マシンスペックが違いますが、C++版が、
キーペア生成 88us
ベリファイ 228us
なので、同等のパフォーマンスがでているといってよさそうです。
プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
- 作者: Alan A.A. Donovan,Brian W. Kernighan,柴田芳樹
- 出版社/メーカー: 丸善出版
- 発売日: 2016/06/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る