Краткая формулировка задачи:
У отправителя есть некий файл, например, файл типа *.doc или *.txt, и его нужно передать получателю так, чтобы получатель был уверен в принадлежности владельца, и в том, что текст не изменился по дороге.
Итак, опишем базовые термины.
Хеширование или Хэш-функция (иногда хэширование, англ. hashing) — преобразование входного массива данных произвольной длины в выходную битовую строку фиксированной длины. Такие преобразования также называются хеш-функциями или функциями свёртки, а их результаты называют хешем, хеш-кодом или дайджестом сообщения (англ. message digest). Подробнее в Википедии.
Криптографическая система с открытым ключом (или Асимметричное шифрование, Асимметричный шифр) — система шифрования и/или электронной цифровой подписи (ЭЦП), при которой открытый ключ передаётся по открытому (то есть незащищённому, доступному для наблюдения) каналу, и используется для проверки ЭЦП и для шифрования сообщения. Для генерации ЭЦП и для расшифрования сообщения используется секретный ключ. Криптографические системы с открытым ключом в настоящее время широко применяются в различных сетевых протоколах, в частности, в протоколах TLS и его предшественнике SSL (лежащих в основе HTTPS), в SSH. Также используется в PGP, S/MIME. Подробнее в википедии.
Действия отправителя:
- Регистрирует себя, как владельца открытого ключа, и получает свой закрытый ключ.
- Хеширует файл и получает хеш-код нашего текстового файла;
- Зашифровывает хеш-код закрытым ключом;
- Отправляет получателю текстовый файл, информацию о владельце открытого ключа и подпись (шифрованный хеш-код).
Действия получателя:
- Генерирует хеш-код полученного файла;
- По информации о владельце открытого ключа получает открытый ключ;
- Расшифровывает открытым ключом подпись и получает хеш-функцию.
- Сравниваются описания хеш-функций, полученных на 1-ом и 3-ем шагах.
Если описания хеш-функций совпадают, то мы можем гарантировать то, что передаваемый файл был зашифрован закрытым ключом именно того владельца, который был указан в качестве владельца открытого ключа, и текст по дороге никем не менялся.
Таким образом, задача решена.
Комментариев нет:
Отправить комментарий