Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
kyber-k2so
Kyber-K2SO
Commits
641535dd
Commit
641535dd
authored
Jul 31, 2020
by
Nadim Kobeissi
💾
Browse files
Further optimizations
parent
4ce4d114
Changes
3
Hide whitespace changes
Inline
Side-by-side
README.md
View file @
641535dd
...
...
@@ -69,17 +69,17 @@ ok github.com/symbolicsoft/kyber-k2so 1.140s
goos: linux
goarch: amd64
pkg: github.com/symbolicsoft/kyber-k2so
BenchmarkKemKeypair512-8 28
089
451
74
ns/op
BenchmarkKemKeypair768-8 15
427
69
50
5
ns/op
BenchmarkKemKeypair1024-8 10000 1
26179
ns/op
BenchmarkKemEncrypt512-8 2
0823
5
5941
ns/op
BenchmarkKemEncrypt768-8 1
4752
8741
3
ns/op
BenchmarkKemEncrypt1024-8 9
400
1
27322
ns/op
BenchmarkKemDecrypt512-8 17
2
60
71100
ns/op
BenchmarkKemDecrypt768-8 1
0000
100249
ns/op
BenchmarkKemDecrypt1024-8 8
785
14
4723
ns/op
BenchmarkKemKeypair512-8 28
116
4
1
51
9
ns/op
BenchmarkKemKeypair768-8 15
864
741
50 ns/op
BenchmarkKemKeypair1024-8 10000 1
05946
ns/op
BenchmarkKemEncrypt512-8 2
1409
5
6336
ns/op
BenchmarkKemEncrypt768-8 1
3629
87
5
41 ns/op
BenchmarkKemEncrypt1024-8 9
987
1
31054
ns/op
BenchmarkKemDecrypt512-8 176
5
0
65348
ns/op
BenchmarkKemDecrypt768-8 1
2352
99300
ns/op
BenchmarkKemDecrypt1024-8 8
913
14
0804
ns/op
PASS
ok github.com/symbolicsoft/kyber-k2so 1
5.215
s
ok github.com/symbolicsoft/kyber-k2so 1
6.180
s
```
# About Kyber-K2SO
...
...
indcpa.go
View file @
641535dd
...
...
@@ -185,7 +185,8 @@ func indcpaEncrypt(m []byte, publicKey []byte, coins []byte, paramsK int) ([]byt
v
=
polyInvNttToMont
(
v
)
polyvecAdd
(
bp
,
ep
,
paramsK
)
v
=
polyAdd
(
polyAdd
(
v
,
epp
),
k
)
return
indcpaPackCiphertext
(
polyvecReduce
(
bp
,
paramsK
),
polyReduce
(
v
),
paramsK
),
nil
polyvecReduce
(
bp
,
paramsK
)
return
indcpaPackCiphertext
(
bp
,
polyReduce
(
v
),
paramsK
),
nil
}
func
indcpaDecrypt
(
c
[]
byte
,
privateKey
[]
byte
,
paramsK
int
)
[]
byte
{
...
...
poly.go
View file @
641535dd
...
...
@@ -225,7 +225,7 @@ func polySub(a poly, b poly) poly {
func
polyvecCompress
(
a
polyvec
,
paramsK
int
)
[]
byte
{
var
r
[]
byte
a
=
polyvecCSubQ
(
a
,
paramsK
)
polyvecCSubQ
(
a
,
paramsK
)
rr
:=
0
switch
paramsK
{
case
2
:
...
...
@@ -335,18 +335,16 @@ func polyvecFromBytes(a []byte, paramsK int) polyvec {
return
r
}
func
polyvecNtt
(
r
polyvec
,
paramsK
int
)
polyvec
{
func
polyvecNtt
(
r
polyvec
,
paramsK
int
)
{
for
i
:=
0
;
i
<
paramsK
;
i
++
{
r
[
i
]
=
polyNtt
(
r
[
i
])
}
return
r
}
func
polyvecInvNttToMont
(
r
polyvec
,
paramsK
int
)
polyvec
{
func
polyvecInvNttToMont
(
r
polyvec
,
paramsK
int
)
{
for
i
:=
0
;
i
<
paramsK
;
i
++
{
r
[
i
]
=
polyInvNttToMont
(
r
[
i
])
}
return
r
}
func
polyvecPointWiseAccMontgomery
(
a
polyvec
,
b
polyvec
,
paramsK
int
)
poly
{
...
...
@@ -358,23 +356,20 @@ func polyvecPointWiseAccMontgomery(a polyvec, b polyvec, paramsK int) poly {
return
polyReduce
(
r
)
}
func
polyvecReduce
(
r
polyvec
,
paramsK
int
)
polyvec
{
func
polyvecReduce
(
r
polyvec
,
paramsK
int
)
{
for
i
:=
0
;
i
<
paramsK
;
i
++
{
r
[
i
]
=
polyReduce
(
r
[
i
])
}
return
r
}
func
polyvecCSubQ
(
r
polyvec
,
paramsK
int
)
polyvec
{
func
polyvecCSubQ
(
r
polyvec
,
paramsK
int
)
{
for
i
:=
0
;
i
<
paramsK
;
i
++
{
r
[
i
]
=
polyCSubQ
(
r
[
i
])
}
return
r
}
func
polyvecAdd
(
a
polyvec
,
b
polyvec
,
paramsK
int
)
polyvec
{
func
polyvecAdd
(
a
polyvec
,
b
polyvec
,
paramsK
int
)
{
for
i
:=
0
;
i
<
paramsK
;
i
++
{
a
[
i
]
=
polyAdd
(
a
[
i
],
b
[
i
])
}
return
a
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment