diff --git a/SM4性能优化.md b/SM4性能优化.md index d2567d6..5d9d507 100644 --- a/SM4性能优化.md +++ b/SM4性能优化.md @@ -9,4 +9,26 @@ Go语言的对称加密实现分离了加密模式和Block级别的加密,同时支持特定加密算法实现自己的优化版本。所以我们只实现了SM4的单Block的加解密(Block接口),就能使用CBC/CFB/OFB/CTR/GCM加密模式。 -关于SM4的优化实现,细粒度的并行可能性不大,大粒度的优化实现可以参考sm4ni,可多Blocks并行加解密的模式还是比较多的。 \ No newline at end of file +关于SM4的优化实现,细粒度的并行可能性不大,大粒度的优化实现可以参考sm4ni,可多Blocks并行加解密的模式还是比较多的。 + +# 未优化之前 + + goos: windows + goarch: amd64 + pkg: github.com/emmansun/gmsm/sm4 + BenchmarkSM4CBCEncrypt1K-6 42994 27766 ns/op 36.88 MB/s 0 B/op 0 allocs/op + BenchmarkSM4CBCDecrypt1K-6 42690 28103 ns/op 36.44 MB/s 0 B/op 0 allocs/op + BenchmarkSM4CFBEncrypt1K-6 42945 27759 ns/op 36.71 MB/s 0 B/op 0 allocs/op + BenchmarkSM4CFBDecrypt1K-6 42820 28493 ns/op 35.76 MB/s 0 B/op 0 allocs/op + BenchmarkSM4CFBDecrypt8K-6 5338 227642 ns/op 35.96 MB/s 0 B/op 0 allocs/op + BenchmarkSM4OFB1K-6 43754 27443 ns/op 37.13 MB/s 0 B/op 0 allocs/op + BenchmarkSM4CTR1K-6 43292 27392 ns/op 37.20 MB/s 0 B/op 0 allocs/op + BenchmarkSM4CTR8K-6 5338 220872 ns/op 37.07 MB/s 0 B/op 0 allocs/op + BenchmarkSM4GCMSeal1K-6 37594 31777 ns/op 32.22 MB/s 48 B/op 3 allocs/op + BenchmarkSM4GCMOpen1K-6 37029 31919 ns/op 32.08 MB/s 48 B/op 3 allocs/op + BenchmarkSM4GCMSign1K-6 315050 3882 ns/op 263.81 MB/s 48 B/op 3 allocs/op + BenchmarkSM4GCMSign8K-6 43905 26876 ns/op 304.81 MB/s 48 B/op 3 allocs/op + BenchmarkSM4GCMSeal8K-6 4917 250707 ns/op 32.68 MB/s 49 B/op 3 allocs/op + BenchmarkSM4GCMOpen8K-6 4722 248856 ns/op 32.92 MB/s 48 B/op 3 allocs/op + PASS + ok github.com/emmansun/gmsm/sm4 20.818s