Мне поручили создать сайт Web Assembly, реализующий E2EE. Я думал использовать шифрование Эль-Гамаля для шифрования сообщения и Диффи-Хеллмана для установки ключа. После дальнейших исследований у меня возникли проблемы с пониманием практических вариантов использования ElGamal против Diffie-Hellman.
Если я правильно понимаю. И Диффи-Хеллман, и Эль-Гамаль полагаются на задачу дискретного журнала, что делает их идеальными. Диффи-Хеллман только устанавливает ключ между двумя хостами, затем для отправки сообщения используется симметричная криптографическая система. Эль-Гамаль шифрует сообщение один раз, используя тот же метод, что и Диффи-Хеллман, а затем его необходимо каждый раз регенерировать, что является медленным и трудоемким процессом. Поэтому я думаю, что Diffie-Hellman лучше всего подходит для сценария, когда пользователи часто общаются, а ElGamal для однократной передачи файлов.
Поэтому я обсуждаю, какое использование в моем веб-приложении. Сначала я думал использовать как Диффи-Хеллмана, так и Эль-Гамаля. Теперь я думаю использовать Диффи-Хеллмана для установления ключа между двумя сторонами, а затем использовать схему симметричного шифрования, такую как AES.
Одна статья, которую я нашел особенно полезной, была https://www.commonlounge.com/discussion/2be4d294aa9e44d4b67f6644cd9b5ced
В частности, Рубрика "Практическое использование и приложения"
Если бы я использовал Diffie-Hellman и AES, как часто нужно было бы восстанавливать ключ?
Я надеюсь, что кто-то может подтвердить, правильно ли я понимаю практическое использование, и помочь заполнить любые пробелы в моем понимании.
Спасибо!