Henry Case
7c32db8dd7
sm3: use less operations for ff1 and gg1
3 years ago
Henry Case
8474981cfc
SHA-3: speedups ( #47 )
* add function for one-off calculation
* sha3: simplifies Read function
* sha3: remove if from Read
4 years ago
Henry Case
45bc1a75f6
add function for one-off calculation ( #45 )
4 years ago
Henry Case
24408329a5
Use bits.RotateLeft64 whenever possible
4 years ago
Henry Case
820906b7c7
sha3: optimizations and cleanup ( #41 )
* complate reset of the SHA-3 code. Affects mostly the code in sha3.go
* fixes a bug which causes SHAKE implementation to crash
* implementation of Read()/Write() avoid unnecessary buffering as much
as possible
* NOTE: at some point I've done separated implementation for SumXXX,
functions, but after optimizing implementation of Read/Write/Sum, the
gain wasn't that big
Current speed on Initial speed on i7-8665U@1.90
BenchmarkPermutationFunction 1592787 736 ns/op 271.90 MB/s 0 B/op 0 allocs/op
BenchmarkSha3Chunk_x01/SHA-3/224 98752 11630 ns/op 176.02 MB/s 0 B/op 0 allocs/op
BenchmarkSha3Chunk_x01/SHA-3/256 92508 12447 ns/op 164.46 MB/s 0 B/op 0 allocs/op
BenchmarkSha3Chunk_x01/SHA-3/384 76765 15206 ns/op 134.62 MB/s 0 B/op 0 allocs/op
BenchmarkSha3Chunk_x01/SHA-3/512 54333 21932 ns/op 93.33 MB/s 0 B/op 0 allocs/op
BenchmarkSha3Chunk_x16/SHA-3/224 10000 102161 ns/op 160.37 MB/s 0 B/op 0 allocs/op
BenchmarkSha3Chunk_x16/SHA-3/256 10000 106531 ns/op 153.80 MB/s 0 B/op 0 allocs/op
BenchmarkSha3Chunk_x16/SHA-3/384 8641 137272 ns/op 119.35 MB/s 0 B/op 0 allocs/op
BenchmarkSha3Chunk_x16/SHA-3/512 6340 189124 ns/op 86.63 MB/s 0 B/op 0 allocs/op
BenchmarkShake_x01/SHAKE-128 167062 7149 ns/op 188.83 MB/s 0 B/op 0 allocs/op
BenchmarkShake_x01/SHAKE-256 151982 7748 ns/op 174.24 MB/s 0 B/op 0 allocs/op
BenchmarkShake_x16/SHAKE-128 12963 87770 ns/op 186.67 MB/s 0 B/op 0 allocs/op
BenchmarkShake_x16/SHAKE-256 10000 105554 ns/op 155.22 MB/s 0 B/op 0 allocs/op
BenchmarkCShake/cSHAKE-128 109148 10940 ns/op 187.11 MB/s 0 B/op 0 allocs/op
BenchmarkCShake/cSHAKE-256 90324 13211 ns/op 154.94 MB/s 0 B/op 0 allocs/op
PASS
4 years ago
Henry Case
7dcb72bf74
remove shake
4 years ago
Henry Case
ffd7590213
improve comment
Initial speed on i7-8665U
> go test -bench=. -test.cpu=1
goos: linux
goarch: amd64
pkg: github.com/henrydcase/nobs/hash/sha3
BenchmarkPermutationFunction 1634836 732 ns/op 273.18 MB/s
BenchmarkSha3_512_MTU 78438 15340 ns/op 88.00 MB/s
BenchmarkSha3_384_MTU 108807 11025 ns/op 122.45 MB/s
BenchmarkSha3_256_MTU 136902 8767 ns/op 153.98 MB/s
BenchmarkSha3_224_MTU 143377 8355 ns/op 161.57 MB/s
BenchmarkShake128_MTU 163569 7108 ns/op 189.94 MB/s
BenchmarkShake256_MTU 156534 7643 ns/op 176.64 MB/s
BenchmarkShake256_16x 10000 112109 ns/op 146.14 MB/s
BenchmarkShake256_1MiB 204 5877014 ns/op 178.42 MB/s
BenchmarkSha3_512_1MiB 100 10967026 ns/op 95.61 MB/s
PASS
ok github.com/henrydcase/nobs/hash/sha3 13.855s
4 years ago
Henry Case
516ea4f5e8
cleanup
4 years ago
Henry Case
68ba33e34f
sha3: remove s390
4 years ago
Henry Case
15f6ee16b9
SHA-3: Fixes crash when cloning Shake state
5 years ago
Henry Case
7298b650cc
Adds go.mod ( #21 )
* Reset Makefile after adding go.mod
* Remove ``build`` directory
* Simiplifies makefile
* shake: Make xorIn copyOut platform specific
5 years ago
Henry Case
49bf0db8fd
SHAKE: Don't use function pointers ( #20 )
* xorIn and copyOut function pointers cause input and output data
to be moved to heap. This degrades performance of calling code.
* This change removes usage of those function pointers. We will always
use unaligned implementation as it's faster (but may crash on some
systems)
* Benchmark compares generic vs unaligned xorIn and copyOut
benchmark old ns/op new ns/op delta
BenchmarkPermutationFunction-4 463 815 +76.03%
BenchmarkShake128_MTU-4 4443 8180 +84.11%
BenchmarkShake256_MTU-4 4739 9060 +91.18%
BenchmarkShake256_16x-4 71886 132629 +84.50%
BenchmarkShake256_1MiB-4 3695138 6649012 +79.94%
BenchmarkCShake128_448_16x-4 21210 24611 +16.03%
BenchmarkCShake128_1MiB-4 3009342 3396496 +12.87%
BenchmarkCShake256_448_16x-4 26034 27785 +6.73%
BenchmarkCShake256_1MiB-4 3654713 3829404 +4.78%
5 years ago
Henry Case
e6439f96ab
Adds cSHAKE with 0 alloc interface ( #19 )
5 years ago
Kris Kwiatkowski
ae57368c7b
License BS for sha3
6 years ago
Henry D. Case
bd9a3f2b6b
Temporarily change sha3 import location
6 years ago
Henry D. Case
4b06c1b314
go fmt
6 years ago
Henry Case
8cf7cfdc8d
SM3 and cSHAKE
6 years ago