Как бороться с квантовым компьютером при помощи WebAssembly
Чем опасен квантовый компьютер
- Возможно одновременное выполнение множества операций
- Способность взламавать RSA шифрование
Что такое кубит и как это работает
Алгоритм RSA шифрования
Сложность вычисления простых множетелей т.е. взлома RSA шифра
Алгоритм Шора
Сокращение времени взлома до
RSA, DSA, ECDSA умрут
Текущее положение дел
2015 амриканское правительство начало переход на новые алгоритмы
Конференция PQCrypto
Нужно и нам задуматься
New Hope в Chrome
Существует ряд алгоритмов
SIDH, NTRU, McEliece, RLWE и прочие
Но они на C (((
Используем SIDH от Microsoft
Портируем их на WebAssembly и попробуем пообщяться с сервером
https://github.com/cyph/sidh.js
Это портирование не мое, но ребята сделали базовое портирование путем вынесения экспортов и просто компиляции WebAssembly кода с помощью Emscripten
Про что я тоже расскажу!
Процесс портирования и взаимодействия с библиотекой на C
Пример шифровки данных
fetch('sidh.wasm')
.then(response => response.arrayBuffer())
.then(bytes => instantiate(bytes, {}))
.then(instance => instance.exports.keyPair());
Получение пар ключей
Пример шифровки данных
fetch('sidh.wasm')
.then(response => response.arrayBuffer())
.then(bytes => instantiate(bytes, {}))
.then(instance => instance.exports.keyPair());
Получение пар ключей
Шифрование обычным AES с новыми ключами
https://github.com/ricmoo/aes-js
Но нужна поддержка и на сервере
Используем Nodejs и N-API для взаимодействия с SIDH
WebAssembly
By Vladimir
WebAssembly
- 102