> разбавленный небольшими рандомнымиСудя по твоим комментам здесь, ты считаешь рандом способом уберечься от измерений. Но это же бред. Зырь сюда:
double gauss_random(double mean, double variance) {
double a = drand48(), b = drand48();
return sqrt(-2 * log(a)) * cos(2 * M_PI * b);
}
double add_noise(double secret, double variance) {
return secret + gauss_random(0, variance);
}
int main() {
#define LEN 4
double secrets[LEN] = {0.42, -0.15, 0.18, 0.99}; // впиши сюда любые числа в диапазоне -1..1;
// lets take N samples of secrets with added noise
int N = 100;
double sum[LEN] = { 0.0 };
for(int i = 0; i < N; i ++) {
for(int j = 0; j < LEN; j++) {
// Notice this: noise variance is larger than a signal by an order of magnitude
sum[j] += add_noise(secrets[j], 10);
}
}
double rebuilt_secrets[LEN];
for(int i = 0; i < LEN; i++) {
rebuilt_secrets[i] = sum[i] / N;
}
// выведи здесь красиво табличкой secrets, rebuilt_secrets и разницу между ними
}
Попробуй поменять N и посмотреть как при увеличении N растёт точность восстановления secret'а. Попробуй например выставить N=500 или 1000. Твой случайный шум -- это помеха, которая конечно же мешает атакующему, но не отменяет возможность атаки. Как мёртвому припарки.
Если твоя хомячья сущность требует комментировать разговоры умных дядей и сходу предлагать простое решение, которое конечно же всех спасёт, и о котором умные дяди почему-то молчат, то тебе нужен не случайный шум, а одно из этого:
1. надо отменить мораторий на смертную казнь (универсальный вариант, работает всегда)
2. задницу подрастающим поколениям драть, как нам драли (этот похуже, но как правило работает)
3. надо запретить шедулеру шедулить разные процессы на одно ядро.
Но с 3 надо быть осторожнее. Любое отклонение от классических 1 и 2 требует осторожности. Это не так просто как кажется, потому что у шедулера нет времени пускать слюни и думать что и куда шедулить, да ещё и один новый эдж-кейс обрабатывать, когда есть свободные логические процессоры, есть простаивающие процессы готовые их утилизировать, но надо всё оставить как есть. Теоретически можно отбрыкаться от излишне умных, аппелируя к теоретической возможности придумать какой-нибудь резкий алгоритм, который так сделает. Но несмотря на недостатки у 3 есть бонус: твоя _целевая_ аудитория не поймёт о чём речь.