Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何计算c中数组元素对整数的模乘应用?_C_Arrays_Uint64 - Fatal编程技术网

如何计算c中数组元素对整数的模乘应用?

如何计算c中数组元素对整数的模乘应用?,c,arrays,uint64,C,Arrays,Uint64,考虑以下几点: uint8_t message[15] = { 0x32, 0xdc, 0x21, 0x55, 0x3f, 0x87, 0xc8, 0x1e, 0x85, 0x10, 0x43, 0xf9, 0x93, 0x34, 0x1a }; uint64_t num = 0xa1b2c33412; uint8_t message[15] = { 0x32, 0xdc, 0x21, 0x55, 0x3f, 0x87, 0xc8, 0x1e, 0x85

考虑以下几点:

uint8_t message[15] = {
     0x32, 0xdc, 0x21, 0x55, 0x3f, 0x87, 0xc8, 0x1e,
     0x85, 0x10, 0x43, 0xf9, 0x93, 0x34, 0x1a
};
uint64_t num = 0xa1b2c33412;
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
乘以数组
message[]
。我需要的伪代码如下:

uint8_t message[15] = {
     0x32, 0xdc, 0x21, 0x55, 0x3f, 0x87, 0xc8, 0x1e,
     0x85, 0x10, 0x43, 0xf9, 0x93, 0x34, 0x1a
};
uint64_t num = 0xa1b2c33412;
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\u t
类型的值相乘


如果您对此有任何帮助,我们将不胜感激……

假设存储在15字节数组中的数字是按大端顺序排列的,下面是一个简单的解决方案:

#包括
#包括
uint64模块乘法(常量uint8消息[15],大小,
uint64_t num,uint64_t p)
{
uint64_t res=0;
对于(大小i=0;i//假设“p<1”将提供一些您希望得到的结果的示例?我建议添加这样一个示例,使用易于手动计算的值。我的意思是,如果您计算例如
27*27 mod 1000
并得到729,会发生什么情况-您希望在结果中显示什么?我编辑问题以解释我的期望…在在您的示例中,当您的15字节消息与
num=0xa1b2c33412
相乘时,它应该等于带有许多尾随零的长数字。为什么?当我在Python中将它们相乘时,我得到了一个类似的数字,但不完全是那个数字。也许可以用一个简单的示例来解释它,用一个1字节的消息,或者用一个2字节的消息,一个一个更小的乘数?