Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/emmansun/sm4bs
sm4 with bit slicing
https://github.com/emmansun/sm4bs
bitslicing sm4
Last synced: 3 days ago
JSON representation
sm4 with bit slicing
- Host: GitHub
- URL: https://github.com/emmansun/sm4bs
- Owner: emmansun
- License: mit
- Created: 2023-05-09T09:29:05.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-24T09:47:32.000Z (about 1 year ago)
- Last Synced: 2024-06-21T18:08:39.987Z (5 months ago)
- Topics: bitslicing, sm4
- Language: Assembly
- Homepage:
- Size: 362 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# sm4bs
实验性项目,通过比特切片等技术来实现sm4,验证性能。目前性能如下:
**64组**:
```
goos: windows
goarch: amd64
pkg: github.com/emmansun/sm4bs
cpu: Intel(R) Core(TM) i5-9500 CPU @ 3.00GHz
BenchmarkXorRK64-6 38663529 29.36 ns/op 0 B/op 0 allocs/op
BenchmarkSbox64-6 67601062 17.83 ns/op 0 B/op 0 allocs/op
BenchmarkTao64-6 14010654 82.90 ns/op 0 B/op 0 allocs/op
BenchmarkL64-6 54585649 22.99 ns/op 0 B/op 0 allocs/op
BenchmarkBS64TransposeAvx-6 4376485 274.2 ns/op 0 B/op 0 allocs/op
BenchmarkBS64TransposeRevAvx-6 4492495 267.5 ns/op 0 B/op 0 allocs/op
BenchmarkEncrypt64Blocks-6 298386 4686 ns/op 218.54 MB/s 1536 B/op 2 allocs/op
```**128组**:
```
goos: windows
goarch: amd64
pkg: github.com/emmansun/sm4bs
cpu: Intel(R) Core(TM) i5-9500 CPU @ 3.00GHz
BenchmarkXor32-6 84093679 13.37 ns/op
BenchmarkXorRK-6 37912296 31.48 ns/op
BenchmarkL128-6 52159624 22.68 ns/op 0 B/op 0 allocs/op
BenchmarkSbox128-6 68027982 17.27 ns/op 0 B/op 0 allocs/op
BenchmarkTao128-6 14089119 86.37 ns/op 0 B/op 0 allocs/op
BenchmarkBS128TransposeAvx-6 2279635 511.7 ns/op 0 B/op 0 allocs/op
BenchmarkBS128TransposeRevAvx-6 2365981 511.2 ns/op 0 B/op 0 allocs/op
BenchmarkEncrypt128Blocks-6 205614 5557 ns/op 368.55 MB/s 3072 B/op 2 allocs/op
```
**256组**:
```
goos: windows
goarch: amd64
pkg: github.com/emmansun/sm4bs
cpu: Intel(R) Core(TM) i5-9500 CPU @ 3.00GHz
BenchmarkSbox256-6 68508790 17.99 ns/op 0 B/op 0 allocs/op
BenchmarkTao256-6 13837366 88.67 ns/op 0 B/op 0 allocs/op
BenchmarkL256-6 50736309 22.45 ns/op 0 B/op 0 allocs/op
BenchmarkXorRK256-6 35646387 34.23 ns/op 0 B/op 0 allocs/op
BenchmarkXor32x256-6 54216703 21.92 ns/op 0 B/op 0 allocs/op
BenchmarkBS256TransposeAvx-6 1000000 1046 ns/op 0 B/op 0 allocs/op
BenchmarkBS256TransposeRevAvx-6 1000000 1020 ns/op 0 B/op 0 allocs/op
BenchmarkEncrypt256Blocks-6 167295 6869 ns/op 596.28 MB/s 6144 B/op 2 allocs/op
```**AES-NI + AVX2方案**:
```
goos: windows
goarch: amd64
cpu: Intel(R) Core(TM) i5-9500 CPU @ 3.00GHz
BenchmarkAESNIEncrypt64Blocks-6 613549 2019 ns/op 507.24 MB/s 0 B/op 0 allocs/op
BenchmarkAESNIEncrypt64Blocks-6 293706 3952 ns/op 518.16 MB/s 0 B/op 0 allocs/op
BenchmarkAESNIEncrypt64Blocks-6 149754 7921 ns/op 517.10 MB/s 0 B/op 0 allocs/op
```Detail:
- 128/256组:https://github.com/emmansun/sm4bs/issues/1Reference:
- https://github.com/emmansun/gmsm/discussions/116