Меню
Главная
Форумы
Новые сообщения
Что нового?
Новые сообщения
Вход
Регистрация
Что нового?
Новые сообщения
Меню
Вход
Регистрация
Соцсети заблокировали! Простой способ обхода блокировки Twitter и Facebook
здесь
-----
Форум блокируют за
антивоенную статью
-----
В связи с преследованиями за инакомыслие, теперь можно
анонимно
отвечать в темах.
-----
Обновлен
скрипт для определения IP госорганов
-----
Наш реестр запрещенных сайтов
с широким функционалом.
Создаем свой генератор зеркал
для обхода блокировки.
Главная
Форумы
Противодействие интернет-цензуре
Софт и технологии для обхода цензуры
[Программа] Шифрование Диффи-Хеллмана на JavaScript
JavaScript отключён. Чтобы полноценно использовать наш сайт, включите JavaScript в своём браузере.
Ответить в теме
Сообщение
<p>[QUOTE="fxkonferenco, post: 7733, member: 1499"]</p><p>Всем привет!</p><p></p><p>Я переработал <strong>вторую страницу</strong>, ссылку на которую давал в предыдущем сообщении.</p><p></p><p>Кроме украшательства, была добавлена возможность генерировать открытый ключ двумя способами на выбор: 1) из парольной фразы или 2) совершенно случайным образом. Это было сделано из-за того, что стандартный генератор "случайных" чисел <em>Math.random</em> инициализируется таймером компьютера, чьей энтропии крайне мало для реального практического применения.</p><p></p><p>А теперь о том, как это работает. Парольная фраза инициализирует КСГПСЧ потокового шифра RC4, который генерирует гамму определённой в файле <em>consts*.js</em> длинны. Очевидно, что восстановить таким образом свой открытый ключ получится только в том случае, если используется тот же самый файл констант <em>consts*.js</em>. Также для экономии времени в этом же разделе интерфейса предусмотрена возможность восстановить из парольной фразы только секретную степень без дальнейшего подсчёта самого открытого ключа. Восстановление секретной степени из парольной фразы, безусловно, нарушает принцип <em>perfect forward secrecy</em>, однако может быть полезно для согласования общего ключа, когда получатель сообщения в момент его отправки не находится перед компьютером и не может согласовать общий одноразовый ключ. Делается это так: отправитель восстанавливает свою секретную степень (и, соответственно, свой долгосрочный открытый ключ) из своей парольной фразы, а для расчёта общего ключа шифрования использует долгосрочный открытый ключ получателя. В дальнейшем, когда получатель будет за компьютером, он сделает всё то же самое и точно так же посчитает общий ключ шифрования.</p><p></p><p>Действительно случайный способ генерирования секретной степени позволяет в полной мере использовать <em>perfect forward secrecy</em>, так как случайные числа получаются "оцифровыванием" <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile :)" data-shortname=":)" /> движений курсора мыши, что в дальнейшем никак повторить не удастся.</p><p></p><p>"Тревожная" кнопка уничтожает все переменные: парольную фразу, общий ключ, секретную степень, а также открытые ключи и затем перезагружает страницу. По сути это аналог Ctrl+F5, но мне так было удобнее, когда я ловил ошибки в своих функциях.</p><p></p><p>КСГПСЧ из потокового шифра RC4 был взят только потому, что он на мой взгляд самый простой для реализации в коде. Если захотите, можете заменить его любым другим генератором на свой вкус. Только учтите, что парольные фразы в таком случае будут восстанавливать уже другие гаммы и, соответственно, уже другие открытые ключи.</p><p></p><p>Ссылка на мою переделку: <a href="https://drive.google.com/open?id=0B2Mdz6DZW9qQSzNUX19MbUtrdUk">https://drive.google.com/open?id=0B2Mdz6DZW9qQSzNUX19MbUtrdUk</a> Сейчас она настроена на 2048-битный модуль и 384-битную секретную степень. Если вы используете другой файл констант <em>consts*.js</em>, то измените это в своей копии моей переделки. Также даю ссылку на минимальный набор дистрибутива (генератор констант, файл констант, ядро с длинной арифметикой и мой интерфейс): <a href="https://drive.google.com/file/d/0B2Mdz6DZW9qQX2pDV1U4STVYLVE/view">https://drive.google.com/file/d/0B2Mdz6DZW9qQX2pDV1U4STVYLVE/view</a> (дополнительно архив прикреплён к этому сообщению).</p><p></p><p>Надеюсь моя работа будет вам полезна.</p><p>[/QUOTE]</p>
[QUOTE="fxkonferenco, post: 7733, member: 1499"] Всем привет! Я переработал [B]вторую страницу[/B], ссылку на которую давал в предыдущем сообщении. Кроме украшательства, была добавлена возможность генерировать открытый ключ двумя способами на выбор: 1) из парольной фразы или 2) совершенно случайным образом. Это было сделано из-за того, что стандартный генератор "случайных" чисел [I]Math.random[/I] инициализируется таймером компьютера, чьей энтропии крайне мало для реального практического применения. А теперь о том, как это работает. Парольная фраза инициализирует КСГПСЧ потокового шифра RC4, который генерирует гамму определённой в файле [I]consts*.js[/I] длинны. Очевидно, что восстановить таким образом свой открытый ключ получится только в том случае, если используется тот же самый файл констант [I]consts*.js[/I]. Также для экономии времени в этом же разделе интерфейса предусмотрена возможность восстановить из парольной фразы только секретную степень без дальнейшего подсчёта самого открытого ключа. Восстановление секретной степени из парольной фразы, безусловно, нарушает принцип [I]perfect forward secrecy[/I], однако может быть полезно для согласования общего ключа, когда получатель сообщения в момент его отправки не находится перед компьютером и не может согласовать общий одноразовый ключ. Делается это так: отправитель восстанавливает свою секретную степень (и, соответственно, свой долгосрочный открытый ключ) из своей парольной фразы, а для расчёта общего ключа шифрования использует долгосрочный открытый ключ получателя. В дальнейшем, когда получатель будет за компьютером, он сделает всё то же самое и точно так же посчитает общий ключ шифрования. Действительно случайный способ генерирования секретной степени позволяет в полной мере использовать [I]perfect forward secrecy[/I], так как случайные числа получаются "оцифровыванием" :) движений курсора мыши, что в дальнейшем никак повторить не удастся. "Тревожная" кнопка уничтожает все переменные: парольную фразу, общий ключ, секретную степень, а также открытые ключи и затем перезагружает страницу. По сути это аналог Ctrl+F5, но мне так было удобнее, когда я ловил ошибки в своих функциях. КСГПСЧ из потокового шифра RC4 был взят только потому, что он на мой взгляд самый простой для реализации в коде. Если захотите, можете заменить его любым другим генератором на свой вкус. Только учтите, что парольные фразы в таком случае будут восстанавливать уже другие гаммы и, соответственно, уже другие открытые ключи. Ссылка на мою переделку: [URL]https://drive.google.com/open?id=0B2Mdz6DZW9qQSzNUX19MbUtrdUk[/URL] Сейчас она настроена на 2048-битный модуль и 384-битную секретную степень. Если вы используете другой файл констант [I]consts*.js[/I], то измените это в своей копии моей переделки. Также даю ссылку на минимальный набор дистрибутива (генератор констант, файл констант, ядро с длинной арифметикой и мой интерфейс): [URL]https://drive.google.com/file/d/0B2Mdz6DZW9qQX2pDV1U4STVYLVE/view[/URL] (дополнительно архив прикреплён к этому сообщению). Надеюсь моя работа будет вам полезна. [/QUOTE]
Предпросмотр
Имя
Проверка
Ответить
Главная
Форумы
Противодействие интернет-цензуре
Софт и технологии для обхода цензуры
[Программа] Шифрование Диффи-Хеллмана на JavaScript
Сверху