Skip to content

Commit

Permalink
use secrets module instead of random for better security
Browse files Browse the repository at this point in the history
  • Loading branch information
PyryL committed Dec 12, 2023
1 parent ebd0837 commit f1bcc0e
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 8 deletions.
6 changes: 3 additions & 3 deletions kyber/ccakem.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from random import randbytes
from secrets import token_bytes
from kyber.encryption import generate_keys, Encrypt, Decrypt
from kyber.utils.pseudo_random import H, G, kdf
from kyber.constants import k, n, du, dv
Expand All @@ -9,7 +9,7 @@ def ccakem_generate_keys() -> tuple[bytes, bytes]:
:returns (private_key, public_key) tuple
"""

z = randbytes(32)
z = token_bytes(32)
sk, pk = generate_keys()
sk = sk + pk + H(pk) + z

Expand All @@ -29,7 +29,7 @@ def ccakem_encrypt(public_key: bytes, shared_secret_length: int = 32) -> tuple[b

assert len(public_key) == 12 * k * n//8 + 32

m = H(randbytes(32))
m = H(token_bytes(32))
Kr = G(m + H(public_key))
K, r = Kr[:32], Kr[32:]
c = Encrypt(public_key, m, r).encrypt()
Expand Down
6 changes: 3 additions & 3 deletions kyber/encryption/encrypt.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from random import randbytes
from secrets import token_bytes
import numpy as np
from kyber.utils.cbd import cbd
from kyber.utils.pseudo_random import prf
Expand All @@ -13,8 +13,8 @@
class Encrypt:
def __init__(self, public_key: bytes, m: bytes = None, r: bytes = None) -> None:
self._pk = public_key
self._m = m if m is not None else randbytes(32)
self._r = r if r is not None else randbytes(32)
self._m = m if m is not None else token_bytes(32)
self._r = r if r is not None else token_bytes(32)
assert len(self._m) == 32
assert len(self._r) == 32
if len(self._pk) != 12 * k * int(n/8) + 32:
Expand Down
4 changes: 2 additions & 2 deletions kyber/encryption/keygen.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from random import randbytes
from secrets import token_bytes
import numpy as np
from kyber.constants import k, eta1
from kyber.utils.pseudo_random import prf, G, xof
Expand All @@ -14,7 +14,7 @@ def generate_keys() -> tuple:
:returns (private_key, public_key)
"""

d = randbytes(32)
d = token_bytes(32)
rho, sigma = G(d)[:32], G(d)[32:]

A = np.empty((k, k), PolynomialRing)
Expand Down

0 comments on commit f1bcc0e

Please sign in to comment.