Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Криптографическая подпись Фиат-Шамира

10K
17 января 2012 года
Frenzyk
41 / / 16.01.2009
В интернете много инфы по схема быстрой ЭЦП, основанная на алгоритме Фиата-Шамира, Протоколу Фиата — Шамира, но не по подписе.
Всё, что есть, это отскан какой-то методы:
http://www.tehnauk.ru/1/9
Проблемы начинаются с 2.79, ибо возведение в -1 степень - это дробное число меньше нуля, а остаток от деления только для целых чисел вроде.
И вот я никак не понимаю как b = (4^-1)^2 (mod123) = 100 (да, в методичке эквивалентность, а не равно, я знаю)
Кроме того что за функций счета, как работает 2.81 тоже не понятно.
Возможно что-то не так понимаю, объясните, пожалуйста, в чем загвоздка.
271
17 января 2012 года
MrXaK
721 / / 31.12.2002
запись вида b ≡ (a^(-1)) mod m означает b*a ≡ 1 mod m
ваша запись означает
100 * 4 * 4 = 1 mod 123
что верно, так как 100 * 4 * 4 = 1600
123 * 13 = 1599
1600 = 1 mod 123

в 2.81 тупо число единичек считается в объединённой записи μ и β, а вообще это хеш-функция, служит для проверки правильности расшифровки данных)) типа если хеш переданный (от исходного сообщения, который передаётся по другому каналу связи) и хеш, посчитанный от расшифрованного совпадают, то сообщения типа одинаковые (естественно в пределах переноса алфавита сообщений на алфавит хеш-функции).. тут она нифига не надёжная, да я хеш-функцией по строгому определению не является

а вообще гуглите подпись Диффи-Хеллмана, насколько я помню из своего курса криптографии, это либо совсем одно и то же, что Фиат-Шамира (всё равно вместе дядьки работали), либо отличаются минимально.. по данному словосочетанию, вроде, больше статей
10K
17 января 2012 года
Frenzyk
41 / / 16.01.2009
Ок. Написал алгоритм для вычисления b
Код:
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;
  }


А можно что-нить менее ресурсозатратное придумать?
Да, еще можно ли взять как-нибудь остаток от double, е приводя его к инту, ибо так компилятор ругается, мол с плавающей точкой ни-ни.
И вот я посчитал h для своей фразы(36 символов), получилось 143 = 0b10001111 т.е s0,...s7, в то время как в примере из методы последнее sn = sl-1 - что делать?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог