- PVSM.RU - https://www.pvsm.ru -
Привет!
Хотелось бы в одной статье вкратце рассказать о достижениях математиков, которыми мы уже пользуемся или скоро будем.
Начнем
Ни для кого не секрет, что грядут квантовые компьютеры. И как только они станут работать в полную силу, публичноключевой криптографии в современном её понимании придет конец. RSA, DSA, ECC, DH. Все современные популярные криптопримитивы для обмена ключами и подписей станут мусором. К счастью, есть свет в конце тоннеля и в последние годы идут активные исследования алгоритмов, устойчивых к взлому на квантовых компьютерах. Проводятся ежегодные конференции [1] на эту тему и уже есть первые рекомендации по алгоритмам, которые можно использовать для противодействия квантовым компьютерам.
Многие из этих алгоритмов давно существуют и хорошо изучены. McEliece, например, создан в 1978 году. Hash based signatures [2] (слайды об XMSS signatures [3], pdf) тоже родом из 80х. Единственное — размеры ключей, передаваемых данных, скорость работы и т.п. у асимметричных алгоритмов могут быть не такими удобными как сейчас.
Довольно старая штука, но про неё мало кто знает. В 2000 году была предложена схема, которая позволяла получить сообщение, состоящее из зашифрованных данных, незашифрованной служебной части, например, размера пакета, и некоего значения, зависящего от ключа, которое позволяло аутентифицировать всё сообщение целиком. Этот режим шифрования оказался настолько удобным, что в 2007 году NIST приняла одну из его реализаций — AES GCM [5] как стандарт. В современных процессорах intel даже инструкция специальная есть PCLMULQDQ [6] помимо AES-NI, которая позволяет реализовывать этот режим очень шустрым образом.
Проблема в том, что все AEAD алгоритмы обязательно требуют некое дополнительно значение nonce, которое обязано быть разным для разных сообщений, шифруемых одним ключом. Не обязательно случайным, просто разным. Иначе ваша криптография превратится в тыкву. Т.е. либо использовать счетчик какой-то и хранить состояние, либо использовать случайные nonce и надеяться, что они не совпадут. Буквально на днях группа исследователей опубликовала атаку на TLS [7], которая как раз эксплуатирует уязвимость nonce reuse. Там и Visa уязвима и еще половина всех серверов в интернете, довольно серьезная дырка.
Чтобы обезопасить таких вот криворуких реализаторщиков хороших алгоритмов, устроили крипто контест CAESAR, целью которого является найти лучший алгоритм AEAD, в том числе защищенный от атак типа nonce reuse/misuse.
Самыми перспективными считаются HS1-SIV [8] (PDF) и AES-GSM-SIV [9] (pdf)
Второму так вообще не нужно ничего нового, он использует уже существующие инструкции AES-NI и PCLMULQDQ, поэтому очень шустрый. Даже реализацию [10] запилили на гитхабе.
Если вы следите за новостями, то в курсе, что WhatsApp включил шифрование для всех по умолчанию. Используют они лучший, на мой взгляд, протокол Signal, но это не самое интересное в новости.
Создатель протокола Signal Trevor Perrin так же разработал легковесную замену TLS, noise protocol [11]. Это не просто протокол, это фреймворк для построения безопасных протоколов передачи данных. И WhatsApp используют его для сетевого уровня взаимодействия. Он гораздо проще TLS и гораздо более дуракоустойчив. Вот, даже видео сняли с объяснением того, как он работает
Реализации уже есть на C, Go, Haskell и Rust(от самого автора). Будет приятно увидеть реализацию у какого-нибудь гугла, вещь стоящая.
Я уже ранее писал [12] об этом memory hard алгоритме для получения хэшей паролей. Повторюсь — хватит использовать просто хэш(соль+пароль), используйте нормальные KDF вроде scrypt, bcrypt или превосходящий их по характеристикам ARGON2. Из нового — появились хорошие слайды [13] (pdf) с последней конференции, и не стоит забывать о коинах на его основе. Может получиться довольно перспективная валюта без asicов.
Интересный анализ новых российских алгоритмов шифрования и хеширования «Кузнечик», «Стрибог» и «Стрибоб» от Alex Biryukov, Leo Perrin, Aleksei Udovenko показывает, что ключевой элемент — таблица замены размером 16x16 была сгенерирована не случайным образом, как утверждают разработчики, а с помощью скрытого алгоритма (pdf [14])
Довольно интересный результат, который наводит на подозрения о скрытом бекдоре. Иначе, зачем врать?
На этом у меня всё, увидимся в новых дайджестах!
Автор: Scratch
Источник [15]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/121164
Ссылки в тексте:
[1] конференции: https://pqcrypto2016.jp/
[2] Hash based signatures: https://en.wikipedia.org/wiki/Merkle_signature_scheme
[3] слайды об XMSS signatures: https://www.ietf.org/proceedings/interim/2016/05/12/cfrg/slides/slides-interim-2016-cfrg-1-3.pdf
[4] AEAD-режим блочного шифрования: https://ru.wikipedia.org/wiki/AEAD-%D1%80%D0%B5%D0%B6%D0%B8%D0%BC_%D0%B1%D0%BB%D0%BE%D1%87%D0%BD%D0%BE%D0%B3%D0%BE_%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F
[5] AES GCM: https://en.wikipedia.org/wiki/Galois/Counter_Mode
[6] PCLMULQDQ: https://en.wikipedia.org/wiki/CLMUL_instruction_set
[7] опубликовала атаку на TLS: https://github.com/nonce-disrespect/nonce-disrespect
[8] HS1-SIV: https://competitions.cr.yp.to/round2/hs1sivv2.pdf
[9] AES-GSM-SIV: https://www.ietf.org/proceedings/interim/2016/05/12/cfrg/slides/slides-interim-2016-cfrg-1-7.pdf
[10] реализацию: https://github.com/Shay-Gueron/AES-GCM-SIV
[11] noise protocol: http://noiseprotocol.org/index.html
[12] писал: https://habrahabr.ru/post/281569/
[13] хорошие слайды: https://www.ietf.org/proceedings/interim/2016/05/12/cfrg/slides/slides-interim-2016-cfrg-1-6.pdf
[14] pdf: https://eprint.iacr.org/2016/071.pdf
[15] Источник: https://habrahabr.ru/post/301180/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.