Алгоритмы шифрования с открытым ключом разрабатывались для того, чтобы решить две наиболее трудные задачи, возникшие при использовании симметричного шифрования.
1 задача) шифрование с открытым ключом = возможность поддерживать всеобщую секретность при коммуникациях.
2 задача) механизмы, при использовании которых невозможно было бы подменить кого-либо из участников, т.е. нужна цифровая подпись.
В любое время участник может изменить свой закрытый ключ и опубликовать составляющий пару открытый ключ, заменив им старый открытый ключ.
Диффи и Хеллман описывают требования, которым должен удовлетворять алгоритм шифрования с открытым ключом. 1. легко создавать пару (открытый ключ , закрытый ключ )
2. легко, имея открытый ключ и незашифрованное сообщение М, создать соответствующее зашифрованное сообщение:
3. легко дешифровать сообщение, используя закрытый ключ:
4. невозможно, зная открытый ключ, определить закрытый.
5. невозможно, зная открытый ключ и зашифрованное сообщение, восстановить исходное сообщение.
Цифровая подпись:
1) вычислить хэш-функцию от текста, чем сложнее хэш, тем надежнее.
2) передать по защищенному от модиф-й каналу хэш-функцию и текст.
3) получатель вычисляет хэш от текста и сравнивает с присланной хэш-функцией.