Skip to content

Commit 205db05

Browse files
committed
make Feistel random
1 parent 6462274 commit 205db05

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

Feistel.cpp

+6-5
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22
#include "Feistel.h"
33
#include "blake3.h"
44
#include <stdexcept>
5+
#include <random>
56

6-
Feistel::Feistel(int64_t domain_size, int num_rounds)
7+
Feistel::Feistel(int64_t domain_size, int num_rounds): domain_size{domain_size}, num_rounds{num_rounds}
78
{
8-
this->domain_size = domain_size;
9-
this->base = (int)ceil(log2(domain_size) / 2);
10-
this->num_rounds = num_rounds;
9+
base = (int)ceil(log2(domain_size) / 2);
10+
std::random_device dev;
11+
seed = dev();
1112
}
1213

1314
int64_t Feistel::encrypt(int64_t input)
@@ -21,7 +22,7 @@ int64_t Feistel::encrypt(int64_t input)
2122
for (int i = 0; i < num_rounds; i++)
2223
{
2324
buffer[0] = r;
24-
buffer[1] = i;
25+
buffer[1] = i ^ seed;
2526
blake3_hasher_init(&hasher);
2627
blake3_hasher_update(&hasher, buffer, 2 * sizeof(int64_t));
2728
blake3_hasher_finalize(&hasher, (uint8_t *)buffer, 2 * sizeof(int64_t));

Feistel.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ class Feistel
1212

1313
private:
1414
int64_t domain_size;
15-
int base, num_rounds;
15+
int base, num_rounds, seed;
1616
int64_t encrypt(int64_t input);
1717
};

0 commit comments

Comments
 (0)