unsigned int findBi(unsigned int a,unsigned int m)
{
double tmp;
int counter = 0;
a=a*a;
do
{
counter++;
tmp=a*counter;
if(tmp>4294967295)
return 0;
}while((unsigned int)tmp%m!=1);
return counter;
}
Криптографическая подпись Фиат-Шамира
Всё, что есть, это отскан какой-то методы:
http://www.tehnauk.ru/1/9
Проблемы начинаются с 2.79, ибо возведение в -1 степень - это дробное число меньше нуля, а остаток от деления только для целых чисел вроде.
И вот я никак не понимаю как b = (4^-1)^2 (mod123) = 100 (да, в методичке эквивалентность, а не равно, я знаю)
Кроме того что за функций счета, как работает 2.81 тоже не понятно.
Возможно что-то не так понимаю, объясните, пожалуйста, в чем загвоздка.
означает b*a ≡ 1 mod m
ваша запись означает
100 * 4 * 4 = 1 mod 123
что верно, так как 100 * 4 * 4 = 1600
123 * 13 = 1599
1600 = 1 mod 123
в 2.81 тупо число единичек считается в объединённой записи μ и β, а вообще это хеш-функция, служит для проверки правильности расшифровки данных)) типа если хеш переданный (от исходного сообщения, который передаётся по другому каналу связи) и хеш, посчитанный от расшифрованного совпадают, то сообщения типа одинаковые (естественно в пределах переноса алфавита сообщений на алфавит хеш-функции).. тут она нифига не надёжная, да я хеш-функцией по строгому определению не является
а вообще гуглите подпись Диффи-Хеллмана, насколько я помню из своего курса криптографии, это либо совсем одно и то же, что Фиат-Шамира (всё равно вместе дядьки работали), либо отличаются минимально.. по данному словосочетанию, вроде, больше статей
запись вида b ≡ (a^(-1)) mod m
ваша запись означает
100 * 4 * 4 = 1 mod 123
что верно, так как 100 * 4 * 4 = 1600
123 * 13 = 1599
1600 = 1 mod 123
в 2.81 тупо число единичек считается в объединённой записи μ и β, а вообще это хеш-функция, служит для проверки правильности расшифровки данных)) типа если хеш переданный (от исходного сообщения, который передаётся по другому каналу связи) и хеш, посчитанный от расшифрованного совпадают, то сообщения типа одинаковые (естественно в пределах переноса алфавита сообщений на алфавит хеш-функции).. тут она нифига не надёжная, да я хеш-функцией по строгому определению не является
а вообще гуглите подпись Диффи-Хеллмана, насколько я помню из своего курса криптографии, это либо совсем одно и то же, что Фиат-Шамира (всё равно вместе дядьки работали), либо отличаются минимально.. по данному словосочетанию, вроде, больше статей
Код:
А можно что-нить менее ресурсозатратное придумать?
Да, еще можно ли взять как-нибудь остаток от double, е приводя его к инту, ибо так компилятор ругается, мол с плавающей точкой ни-ни.
И вот я посчитал h для своей фразы(36 символов), получилось 143 = 0b10001111 т.е s0,...s7, в то время как в примере из методы последнее sn = sl-1 - что делать?