- PVSM.RU - https://www.pvsm.ru -

Дайджест последних достижений в области криптографии. Выпуск первый

Привет, %username%
Дайджест последних достижений в области криптографии. Выпуск первый - 1
Пришло время для свежей пачки криптоновостей, пока они еще не перестали быть новостями. В этом выпуске:

  • Новый рекорд вычисления дискретного логарифма
  • VPN сервер и клиент, использующие Noise протокол
  • Постквантовая криптография в Chrome уже сегодня!
  • Чего вы не знаете о новом E2E шифровании в Facebook
  • RLWE избавляется от R и это идет ему на пользу
  • Comodo хотел поиметь Let`s Encrypt, но сфейлил. А Let`s Encrypt с завтрашнего дня будет поддерживать ddns
  • Появились минимальные требования к реализациям алгоритмов RSA, DSA, DH, устойчивым к side-channel атакам

Предыдущий выпуск тут [1]

Рекорд вычисления дискретного логарифма

Группа исследователей из EPFL и Университета Лейпцига смогла посчитать [2] логарифм по основанию простого числа размером 768 бит. Для этого им понадобилось 200 ядер и время с февраля 2015 года. Использовали они вариант цифрового решета. Таким образом логарифмирование сравнялось с факторизацией где рекорд для обычных чисел тоже 768 бит [3]

Wireguard [4]. VPN, использующий самые модные криптоалгоритмы

Не успели опубликовать спеку по Noise protocol, как уже появилось решение на его основе.
Очень минималистичный VPN, в котором используются Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24 и HKDF. Работает в режиме ядра, но активно пилятся usermode версии на Go и Rust. Советую присмотреться, очень крутая штука.

Google добавил постквантовое шифрование в Chrome Canary

Подробнее тут [5]. Используется алгоритм New Hope, который основан на проблеме RLWE [6], которая в свою очередь является частным вариантом криптографии на решетках [7]. Это сравнительно молодая область криптографии, еще плохо изучена и поэтому её пока нельзя использовать в реальной жизни. Но в качестве эксперимента, почему бы и нет?

E2E шифрование в Facebook позволяет настучать на собеседника

Они назвали этот механизм Franking [8]. Он позволяет отправить Abuse report в случае необходимости. Реализуется следующим образом:

  1. Генерируется случайный ключ Nf
  2. Считается Tf = HMAC·SHA256(Nf, M)
  3. Nf конкатенируется с M и шифруется ключом получателя. На сервер отправляется Tf и шифротекст
  4. Сервер считает Rf= HMAC·SHA256(ключ фейсбука, Tf || метаданные (кто, кому,...))
  5. Получателю отправляется Rf, Tf, шифротекст
  6. Получатель расшифровывает шифротекст, считает HMAC(Nf, M) и сравнивает с Tf. Если сравнение не проходит, то выбрасывает сообщение
  7. Если получатель хочет пожаловаться фейсбуку, то отправляет ему расшифрованное сообщение, Rf, Nf
  8. Фейсбук убеждается, что это именно то сообщение, которое отправил отправитель и принимает соответствующие действия

Таким образом, отвертерться от обзывательства Васи козлом не получится.

RLWE без R

Итак, есть криптография на решетках. Хороша тем, что её в будущем не взломает квантовый компьютер. Но её параметры огромны, размеры ключей достигают мегабайтов. Есть частный её случай, называемый обучение с ошибками [9]. Так вот, обучение с ошибками хоть тоже очень круто, но тем не менее из-за ограничений на размер ключа и других было нереально использовать в продакшене. Поэтому к LWE добавили кольца и назвали это RLWE [6], который уже используется в Chrome Canary, т.е. там параметры стали уже более-менее человеческими по размерам.

К сожалению, степень изученности обратно пропорциональна навороченности алгоритма и добавление колец возможно ослабило LWE. Поэтому группа товарищей реализовала согласование ключей без колец и опубликовало на эту тему доку [10]. Размеры сообщений в каждую сторону находятся в пределах 12 кб, операция согласования ключей занимает около 1.3 мс. Это примерно в 5 раз больше по объему хэндшейка DH, а так же в 1.6 раз замедляет пропускную способность TLS сервера, но тем не менее это уже сравнимо с New Hope и можно использовать на практике. При этом структура получается более безопасной.

Comodo оборзел

И решил для нескольких своих сервисов зарегистрировать торговую марку Let’s Encrypt. Мало того, что торгуют воздухом, так еще и чужая слава покоя не дает. Но, сообщество собралось силами, надавало комоду по сусалам и отбило торговую марку. Подробности тут [11].

Кстати, после завтрашнего апдейта [12] можно будет прикручивать бесплатный TLS к dyndns хостам! Это суперкруто, все хомяки теперь будут с сертификатами.

Защищаемся от Side channel атак

Не секрет, что нынче информацию о ключах шифрования можно удаленно снимать чуть ли не через вентилятор. Поэтому, все большую популярность обретают constant-time алгоритмы, которые не зависят от входных данных. Немцы выпустили минимальные требования для реализаций, выполнение которых усложнит задачу получения секретных данных через побочные каналы данных. Интересный документ [13], советую ознакомиться.

На этом у меня всё, до новых встреч!

Автор: Scratch

Источник [14]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/vpn/155744

Ссылки в тексте:

[1] тут: https://habrahabr.ru/post/301180/

[2] смогла посчитать: https://listserv.nodak.edu/cgi-bin/wa.exe?A2=NMBRTHRY;a0c66b63.1606

[3] тоже 768 бит: https://en.wikipedia.org/wiki/Integer_factorization_records#Numbers_of_a_general_form

[4] Wireguard: https://www.wireguard.io/

[5] тут: https://security.googleblog.com/2016/07/experimenting-with-post-quantum.html

[6] RLWE: https://en.wikipedia.org/wiki/Ring_Learning_with_Errors

[7] криптографии на решетках: https://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F_%D0%BD%D0%B0_%D1%80%D0%B5%D1%88%D1%91%D1%82%D0%BA%D0%B0%D1%85

[8] Franking: https://fbnewsroomus.files.wordpress.com/2016/07/secret_conversations_whitepaper.pdf

[9] обучение с ошибками: https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0%D0%BC%D0%B8

[10] доку: http://eprint.iacr.org/2016/659

[11] тут: https://letsencrypt.org/2016/06/23/defending-our-brand.html

[12] апдейта: https://github.com/letsencrypt/boulder/pull/1969

[13] Интересный документ: https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Zertifizierung/Interpretationen/AIS_46_BSI_guidelines_SCA_RSA_V1_0_e_pdf.pdf

[14] Источник: https://habrahabr.ru/post/305572/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best