Хеширование открытого текста для обеспечения целостности?

Я слышал, что в криптографии целостность может быть реализована с помощью хеширования сообщения, чтобы проверить, было ли сообщение изменено. Но как этот хеш отправляется другой стороне? Можно также изменить сообщение и хэш-значение, чтобы другая сторона увидела, что сообщение не было изменено !!


person Malintha    schedule 17.10.2013    source источник
comment
Ваш вопрос слишком общий. Похоже, вы беспокоитесь о распределении ключей. Возможно, информация из Википедии ответит на ваш вопрос. en.wikipedia.org/wiki/Key_distribution   -  person beyonddc    schedule 17.10.2013
comment
Если у вас есть общий ключ, вы можете использовать аутентифицированное шифрование, которое включает некоторую форму MAC, чтобы гарантировать, что сообщение не было изменено.   -  person CodesInChaos    schedule 17.10.2013


Ответы (2)


Вам всегда нужны какие-то общие данные, которые не были подделаны, чтобы обеспечить целостность или конфиденциальность. Эти общие данные обычно представляют собой общий секретный ключ или открытый ключ отправителя.

С общим секретным ключом вы должны использовать HMAC, то есть hmac(message, key).

Если у получателя есть открытый ключ отправителя, то отправитель может использовать свой закрытый ключ для подписи сообщения (множество возможных методов, DSA, RSA и т. д.), а получатель может использовать открытый ключ, чтобы определить, было ли сообщение отправлено отправителем.

person Thomas M. DuBuisson    schedule 17.10.2013

Сам по себе хеш не доказывает, что сообщение не было подделано, вы также должны подписать хеш, используя свой закрытый ключ, а затем получатель может проверить его, используя ваш открытый ключ. Или вы можете подписать его с помощью HMAC, если у вас обоих есть общий секрет. Его нельзя подделать, потому что ни у кого больше нет вашего закрытого/секретного ключа.

person Sean Burton    schedule 17.10.2013