Рассмотрим следующее:
uint8_t message[15] = {
0x32, 0xdc, 0x21, 0x55, 0x3f, 0x87, 0xc8, 0x1e,
0x85, 0x10, 0x43, 0xf9, 0x93, 0x34, 0x1a
};
uint64_t num = 0xa1b2c33412;
Я хочу умножить вышеуказанную переменную num
на массив message[]
.Псевдокод для того, что мне нужно, выглядит следующим образом:
uint8_t message[15] = {
0x32, 0xdc, 0x21, 0x55, 0x3f, 0x87, 0xc8, 0x1e,
0x85, 0x10, 0x43, 0xf9, 0x93, 0x34, 0x1a
};
uint64_t num = 0xa1b2c33412;
uint64_t p = 0x31ba62ca3037;
uint64_t result = 0x00;
result = moduloMultiplication(message, num, p); // (message * num) (mod p)
Я ожидаю следующие результаты:
num * msg = num*msg mod p
num * msg = 0x2bf2d18cdf92 (Final result)
Есть ли способ умножить массив на значение типаuint64_t
?
Любая помощь по этому вопросу будет оценена ...