Безопасность схем подписи не требует шифрования сообщения. Алгоритм хеширования и параметры алгоритма подписи общеизвестны и являются единственным секретом ключ подписавшего должен все время храниться в секрете. Хеширование перед подписанием является частью схемы подписи, начиная с первой настоящей схемы подписи; Подпись Рабина схема.
В безопасности схем подписи у нас есть противник, фальсификатор, целью которого является подделка подписи сообщения, которое никогда не подписывалось ранее. Для простой игры можно считать, что фальсификатор получил $n$ пара $(\sigma_i,m_i)$ это пара сообщения и его подписи. Теперь, если фальсификатор может вывести новое сообщение $m \neq m_i$ за $i \in \{1,n\}$ с действительной подписью $(\сигма,м)$ мы называем это подделкой цифровой подписи с Экзистенциальная подделка.
Можно ли криптографически подписать сообщение закрытым ключом, сохраняя при этом общедоступным содержимое предварительного изображения?
Да. Пока сообщение не должно быть конфиденциальным, нет проблем с безопасными схемами подписи, такими как RSASSA-PSS, DSA, ECDSA, EdDSA, Schnoor и т. д. Сообщение может быть подписано в незашифрованном виде. Это распространено в цифровых медиа. Вы можете просмотреть содержимое и подпись PDF-файла, изображения, правительственных документов и т. д. и проверить подпись, если у вас есть настоящий открытый ключ подписавшего.
Имейте в виду, что если алгоритм хэширования не устойчив ко второму прообразу, подделка неизбежна. Используйте криптографическую функцию, устойчивую к столкновению, чтобы достичь как минимум Универсальная подделка (UF) при атаке с выбранным сообщением (CMA) UF-CMA, например SHA2, SHAKE of SHA3 и BLAKE2.
Если полагаться только на сопротивление второго прообраза SHA-1, то есть атаки на столкновение $\имя_оператора{SHA-1}$ нравиться;
- Алиса создает два сообщения с одинаковым значением SHA-1, $m_1$ это то, что Боб хочет подписать и $m_2$ это то, что Алиса имеет преимущество для своих.
- Алиса отправляет $m_1$ Бобу, и Боб читает и подписывает. $$(\sigma,m_1) = Sign(\operatorname{SHA-1}(m_1))$$
- Алиса отправляет $(\сигма,м_2)$ к Чарли.
- Чарли проверить знак, так как $\operatorname{SHA-1}(m_1) = \operatorname{SHA-1}(m_2)$
- Алисе выгодно.
Не устанавливайте безопасность на сломанных схемах, даже если они снижают текущие риски.