Victor Wagner wrote:
чем плохо поступить так - заранее сгенерировать ключ (просто последовательность байт), далее приписываем этот ключ к сообщению и генерируем для пары сообщение+ключ хэш (тот же sha1). передаем сообщение + хэш - зная ключ мы легко можем проверить подлинность сообщения.Это частный случай MAC - message authentication code. Реально используемые MAC-и практически всегда базируются именно на хэшах. Называется HMAC. Рекомендую ознакомиться с описанием алгоритма HMAC, там сделано чуточку похитрее, чем просто дописывание ключа к сообщению. И в rfc2104 слегка объясняется почему делается именно так.
хорошо, ничего против HMAC не имею - по сложности реализации оно не отличается.
а с точки зрения криптостойкости - хуже этот вариант обычной подписиТем что секрет знают двое. Поэтому не обладает свойством неотрекаемости. Т.е. получатель сообщения не может предъявить третьему лицу (судье) это сообщение и утверждать, что подписал его именно отправитель. Ведь у негосамого была полная возможность это сообщение сгенерировать.
меня вполне устраивает то, что никто кроме этих двух не мог сгенерировать это сообщение
подводя итог - HMAC хороший выбор? или смотреть на что-то другое? на что тогда?