Есть ли какие-либо бесплатные реализации потоковых шифров, доступных для JavaScript?
Особенно интересует HC-128, Salsa20 / 12 или SOSEMANUK, так как они рекомендованы Проектом eSTREAM
Раздел D Симметричная криптография в Javascript относится к «реализации Javascript Salsa20 / 12», но я не могу найти реализацию в их github repo .
Мы сравнили Javascript AES с реализацией Javascript Salsa20 / 12 [20], один из самых быстрых шифров eSTREAM. Родной x86 реализация Salsa20 / 12 примерно в 5 раз быстрее нативной реализация 128-битной AES. Удивительно, но таблица VII показывает, что когда оба алгоритма реализованы в Javascript, сальса 20/12 сопоставимы по скорости с AES. Мы считаем, что это расхождение прежде всего из-за отсутствия в Javascript 128-битных инструкций SIMD или 64-битные регистры, а во-вторых, из-за большего состояния Salsa20 / 12 проливая в память.
Это версия Кевин Хакансон имел в виду: https://gist.github.com/dchest/4126510. Он имеет довольно приличную пропускную способность ввода / вывода (110 МБ / с) и, похоже, соответствует спецификации к букве. Я, однако, не проверял его, поскольку у меня нет ссылок на его тестирование, кроме того, что я смотрю на операции и сравниваю их с RFC ... так что используйте на свой страх и риск!
Я не уверен ни в каких реализациях этих JavaScript, но если у вас есть реализация на стороне сервера, вы можете подумать о том, чтобы отправить ее на ваш сервер с помощью ajax-запроса (через https) и получить результат в качестве ответа. :)