Добрый день. Сейчас делаю небольшой проект, в котором пользователи общаются через WebRTC. Нужно добавить шифрование непосредственно сообщений. Для шифрования решил использовать AES, а для обмена ключами алгоритм Диффи-Хеллмана, но возникла проблема. Если пользователь задает слишком большой приватный ключ (более 3 цифр), то js уже не может его посчитать. А иначе мастер-ключ получается слишком простой. Как по вашему лучше организовать асимметричное шифрование? Читал про RSA, но, как я понимаю, я не смогу в браузере одновременно сгенерировать приватный и публичный ключи, а проект требует максимальной простоты для пользователя (т.е. без открываний терминала и генерирования ключей через такие страшные консольные команды). Заранее спасибо.
Спасибо за Ваш ответ и информацию, а Вы случаем не встречались с проблемой, а точнее с решением безопасной передачи самого паблик-ключа, "дабы не угнали"...?
Темой шифрования занался "только что, впервые"
Шифрование защищает от перехвата и изменения(в случае с подписью) сообщений, только в случае, если ключи только у их владельцев. Хочу реализовать одну идею, но там сам сервер как бы уже MITM. Постоянного доверия нет, отсюда возникает необходимость очень безопасного обмена ключей между участниками, используя данный сервер
akdes, честно говоря, после завершения этого проекта особо такими вопросами больше не занимался, так что подсказать особо ничего не могу. Самое простое - это погуглить и посмотреть open source решения, что люди используют там. Я уверен, что какие-то алгоритмы должны существовать.
Серьёзно этим вопросом не интересовался, но думаю вам следует обратить внимание внимание на эллиптическую криптографию, где-то даже видел открытые реализации на js.