Нужно создать криптопротокол электронного голосования, используя php или js.
Посоветуйте, пожалуйста, как это лучше сделать, какую-нибудь литературу и примеры.
Заранее спасибо!)
Тема: "Реализация криптопротокола електронного голосования". Это лутше реализовать через SSL? или както по другому. Если через SSL еть какие нибудь примеры?
Надо определиться с начальными условиями задачи. Вот допустим, есть html-страница с javascript-голосовалкой. Сразу возникает два вопроса:
1) Насколько критично пользователю, попавшему на страницу, сохранить конфиденциальность загружаемой информации? Если критично: значит необходима реализация загрузки страницы через HTTPS протокол, то есть с использованием SSL.
2) Где обрабатываются результаты действия пользователя при голосовании? Этот же хост или сторонний? Если один и тот же, то установив использование HTTPS, можно решить сразу и предыдущий вопрос. Если отдельный хост, то необходимо на нём настроить SSL. Таким образом будет гарантироваться защита от атаки MitM, то есть от сниффинга.
На тему реализации SSL в http есть много информации в гугле. В частности, по настройке в nginx.
php же в данном случае пришить можно только на стороне хоста, принимающего данные по голосованию, то есть для агрегации результатов и к шифрованию при использованию SSL он никак не будет относиться.
Можно пойти конечно более извращенным путём без SSL, но так никто вроде не делает. Допустим сгенерировать пару публичный-приватный ключ. Потом на этапе загрузки html-страницы с голосовалкой передавать в javascript этот ключ. Тогда значение позиции выбора в голосовалке можно зашифровать через javascript (можно поискать библиотеки с реализацией к примеру RSA), а при обработке на серверной стороне в php расшифровать этим же алгоритмом.