mirror of
https://github.com/monero-project/monero.git
synced 2025-08-06 19:54:20 -04:00
crypto: remove slight bias in key generation due to modulo
This commit is contained in:
parent
eed4dba880
commit
61caab8a8c
5 changed files with 77 additions and 10 deletions
|
@ -62,14 +62,13 @@ namespace rct {
|
|||
|
||||
//generates a random scalar which can be used as a secret key or mask
|
||||
void skGen(key &sk) {
|
||||
sk = crypto::rand<key>();
|
||||
sc_reduce32(sk.bytes);
|
||||
random32_unbiased(sk.bytes);
|
||||
}
|
||||
|
||||
//generates a random scalar which can be used as a secret key or mask
|
||||
key skGen() {
|
||||
key sk = crypto::rand<key>();
|
||||
sc_reduce32(sk.bytes);
|
||||
key sk;
|
||||
skGen(sk);
|
||||
return sk;
|
||||
}
|
||||
|
||||
|
@ -79,9 +78,8 @@ namespace rct {
|
|||
CHECK_AND_ASSERT_THROW_MES(rows > 0, "0 keys requested");
|
||||
keyV rv(rows);
|
||||
size_t i = 0;
|
||||
crypto::rand(rows * sizeof(key), (uint8_t*)&rv[0]);
|
||||
for (i = 0 ; i < rows ; i++) {
|
||||
sc_reduce32(rv[i].bytes);
|
||||
skGen(rv[i]);
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue