LINUX.ORG.RU

Набор патчей для ускорения шифрования/дешифрования AES-GCM

 , , ,

Набор патчей для ускорения шифрования/дешифрования AES-GCM

2

3

2 июня Эрик Биггерс (инженер из Google) представил новые реализации AES-XTS для гораздо более высокой производительности процессоров Intel/AMD с помощью новых наборов кода AES-NI + AVX, VAES + AVX2, VAES + AVX10/256 и VAES + AVX10/512.

Код AES-NI GCM заменяет собой предыдущий, написанный Intel, и устраняет существующие выявленные проблемы:

«Этот набор обновлений добавляет в VAES и AVX512/AVX10 реализацию AES-GCM (режим Galois/Counter), что повышает производительность AES-GCM до 162%. Кроме того, он заменяет старый код AES-NI GCM от Intel на новый. код, который немного быстрее и исправляет ряд проблем, включая огромный размер двоичного файла, превышающий 250 КБ. Подробности см. В исправлениях.

Конечным состоянием ассемблерного кода x86_64 AES-GCM является то, что мы получаем два ассемблерных файла: один генерирует код AES-NI с AVX или без него, а другой генерирует код VAES с AVX512/AVX10 с 256-битными или 512-битными векторами. В нём отсутствует поддержка одиночного VAES (без AVX512/AVX10). Это немного отличается от того, что я сделал с AES-XTS, где один файл генерирует код AVX и AVX512/AVX10, включая код, использующий только VAES (без AVX512/AVX10), а другой файл генерирует только код, отличный от AVX. Однако, на данный момент это кажется правильным выбором для каждого конкретного алгоритма, учитывая то, что ограничение до 16 SIMD-регистров и 128-битных векторов привело к некоторым существенно отличающимся конструктивным решениям в AES-GCM, но не настолько для AES-ХТС. Процессоры, поставляемые только с VAES, также кажутся временным явлением, поэтому нам, возможно, не следует слишком стараться поддерживать эту комбинацию».

>>> Подробности в официальной рассылке разработчиков ядра

★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 1)

Аппаратное шифрование несекурно - сами знаете почему :P + Когда был конкурс на выбор шифра в качестве AES (проведённый правительством США между прочим): этот Rijndael победил лишь благодаря чуть большей скорости чем у конкурентов, проигрывая некоторым из них по стойкости. Т.е. AES - решето, особенно аппаратное AES

SakuraKun ★★★★★
()
Последнее исправление: SakuraKun (всего исправлений: 3)
Ответ на: комментарий от SakuraKun

Аппаратное шифрование несекурно - сами знаете почему :P

Потому что сотрудник АНБ а ля Сноуден внедрит упрощение в аппаратную реализацию? Такое может случиться с любым алгоритмом.

этот Rijndael победил лишь благодаря чуть большей скорости чем у конкурентов, проигрывая некоторым из них по стойкости. Т.е. AES - решето, особенно аппаратное AES

нет, не «особенно». «Особенно» можно реализовать любой алгоритм аппаратно, и внедрить упрощение в реализацию. Если бы приняли более криптостойкий и более медленный алгоритм, можно было бы заявить: «смотрите, они специально приняли тормозной XYZ, чтобы его надо было аппаратно ускорять, и потом подсунуть нам ослабленную аппаратную реализацию».

seiken ★★★★★
()

Интересно, а AES в ядре в каких случаях используется? Почему патчи для ядра, а не для OpenSSL например?

maxcom ★★★★★
()
Ответ на: комментарий от maxcom

Интересно, а AES в ядре в каких случаях используется?

dm-crypt первый приходит на ум, там эти улучшения очень в тему

MaZy ★★★★★
()

для гораздо более высокой производительности

Ну наконец-то! Хоть что-то нивелирует эти тормоза от предыдущих мелтдаунов и прочих mitigations :D

Gonzo ★★★★★
()
Последнее исправление: Gonzo (всего исправлений: 1)
Ответ на: комментарий от Gonzo

Ну наконец-то! Хоть что-то нивелирует эти тормоза от предыдущих мелтдаунов и прочих mitigations :D

митигейшены работают всегда, а вот крипто - нет. Если не используется ни шифрование раздела, ни VPN, то как бы и не заметишь разницы.

seiken ★★★★★
()
Ответ на: комментарий от seiken

Такое может случиться с любым алгоритмом

Именно поэтому любое аппаратное шифрование, предоставляемое не открытым железом, лучше не использовать вообще - вне зависимости от алгоритма

Если бы приняли более криптостойкий и более медленный алгоритм

Тогда многие пользователи, не пользующиеся аппаратным шифрованием, оказались бы лучше защищены! Поэтому будет использована любая возможность пропихнуть им дырень; в данном случае: «дырявый алгоритм» x «аппаратная дырень» = дыра в квадрате ;-)

SakuraKun ★★★★★
()
Ответ на: комментарий от SakuraKun

Поэтому будет использована любая возможность пропихнуть им дырень; в данном случае: «дырявый алгоритм» x «аппаратная дырень» = дыра в квадрате ;-)

Таким образом, давление на коммьюнити аппаратно ускорить более медленный алгоритм будет выше. С другой стороны, если тебе не нравится AES, ты в любой момент можешь реализовать тот алгоритм, который считаешь более криптостойким, не обращая внимания на то, что творится с AES.

seiken ★★★★★
()
Ответ на: комментарий от seiken

*Эдвард Сноуден бвл действующим сотрудником Федеральной Службы Безопасности ещё на момент вступления в ANB

meganfox
()
Ответ на: комментарий от maxcom

Ядро умеет kTLS. И OpenSSL 3.0 умеет его использовать.

iliyap ★★★★★
()
Ответ на: комментарий от SakuraKun

Лучшая шапочка — из обычной чугунной фольги 10 мм. Discuss.

Smacker ★★★★★
()

Для ускорения дешифрования ???
Чтобы компания добра могла расшифровывать все подряд ?

kto_tama ★★★★★
()
Ответ на: комментарий от kto_tama

А что странного? При передаче через IPSec данные на одной стороне шифруются, а на другой дешифруются. Так что обе операции нужны и важны с т.з. производительности. Если это ускорит тот же StrongSwan - то и вообще супер.

DummyBoy ★★
()
Последнее исправление: DummyBoy (всего исправлений: 1)
Ответ на: комментарий от SakuraKun

Именно поэтому любое аппаратное шифрование, предоставляемое не открытым железом, лучше не использовать вообще - вне зависимости от алгоритма

Есть какие-то пруфы, что аппаратный AES (средствами CPU) упрощен? Сдается мне, что в этом случае быстро бы проявилась несовместимость, да и вообще всякие исследователи/хакеры давно бы обнаружили, что команды не соответствуют спецификации AES.

Тут если чего реально бояться, то того, что есть какие-то очень хитрые математические подвохи в самом официальном алгоритме AES. Секретные теоремы и тп.

praseodim ★★★★★
()

Опять проблемы с качественными лекарствами для комментируюших

One ★★★★★
()

С новыми багами и бекдорами, я надеюсь?

beastie ★★★★★
()

В Дебиане же уже однажды оптимизировали код, связанный с криптографией?

kss ★★★★★
()
Ответ на: комментарий от praseodim

Есть какие-то пруфы, что аппаратный AES (средствами CPU) упрощен?

Зачем вам какие-то пруфы, когда и без них всё очевидно.

Lucky ★★
()
Ответ на: комментарий от SakuraKun

любое аппаратное шифрование, предоставляемое не открытым железом, лучше не использовать вообще

Любой црушник боится только одного - слойки. Один алгоритм, любой алгоритм - семечки, а несколько разнообразных слоёв - пукан бомбирт. Ну так один из них может быть аппаратный, быстрее будет

DumLemming ★★
()
Ответ на: комментарий от sparkie

Он использовал новые наборы инструкций!

А нам теперь процессоры апрейдить… Или на эльбрусе нормально работает?

Shushundr ★★★
()

Шифрование должно иметь слои. Сначала по ГОСТ, потом по AES, и сверху по SAC/TC 260 для надёжности.

mogwai ★★★★★
()
Ответ на: комментарий от vromanov

Да, если внутреннее программноаппаратное устройство этих модулей скрывается от пользователя: ведь «security through obscurity» не работает, + там такого «нашаманить» могли... Именно поэтому, например, нужно дожидаться труЪ опенсорсных TPM а не пользоваться закрытыми проприетарными TPM которые всем сейчас впаривают

SakuraKun ★★★★★
()
Последнее исправление: SakuraKun (всего исправлений: 1)
Ответ на: комментарий от SakuraKun

Ну да, и квартиру закрывать не нужно, пока не появятся тру опенсорсные замки. И надеюсь, ты не пользуешся мобильным телефоном, ведь туда вставляется совсем не опенсорсная симка.

vromanov ★★★
()
Ответ на: комментарий от SakuraKun

И что можно ноломать в AES если он просто тестируется на стандартных тестовых векторах? Я бы понял, если бы речь шла про что-то вроде ECDSA, где играет качество генератора случайных чисел и предсказать (для тестов) результат генерации подписи нельзя

vromanov ★★★
()
Ответ на: комментарий от SakuraKun

В чём может быть вообще дыра в реализации (программной или аппаратной)? Что за бред?

Werenter ★★★
()
Последнее исправление: Werenter (всего исправлений: 1)
Ответ на: комментарий от SakuraKun

Т.е. AES - решето, особенно аппаратное AES

Это так не работает, не должно быть ни какой разницы между софтверной и хардверной реализацией, на одинаковую входную последовательность данных с одним и тем же колючем для шифрования, на выходе должна быть одинаковая зашифрованная последовательность, разница может быть только в скорости шифрования.

Hilbert
()
Ответ на: комментарий от Gonzo

Чтобы теперь вместо 10 раундов приходилось делать 1000 чтобы замедлить анализ?

fuggy
()
Ответ на: комментарий от SakuraKun

Почему именно аппаратное шифрование хуже? Чем же дыры в блобе безопаснее аппаратных дыр? Или Intel ME это уже аппаратная часть?

fuggy
()
Ответ на: комментарий от DumLemming

процессор а не штеуд

То был сарказм. И да, не штеуд, если что.

Gonzo ★★★★★
()
Ответ на: комментарий от FSBinyourx86

Привет, FSBinyourx86 ! Ты почти прав, только:
1) там предъява к программноаппаратному «бэкдору» AMD PSP, а не к блобу встроенной графики: графический блоб AtomBIOS достаточно хорошо разбирается утилитой AtomDis и закладок не обнаружено, + гвоздями-подписями не прибит и даже опенсорсную замену пытались разработать под названием OpenAtom (правда не доделали)
2) «бэкдор» AMD PSP внедрялся поэтапно в различные семейства процессоров: т.е. можно конечно условно сказать что «после 2013 года всё забэкдорено», но по факту есть некоторые более новые процы - например, Athlon 5370 середины 2014 года, который можно поставить в плату ASUS AM1I-A с опенсорсным БИОСом coreboot - не содержащие в себе PSP

SakuraKun ★★★★★
()
Ответ на: комментарий от fuggy

дыры программного шифрования ты можешь искать смотря исходники, а с аппаратным так не получится: только анализировать вход-выход этого чёрного ящика, который при определённых ситуациях может скрытно менять своё поведение...

SakuraKun ★★★★★
()
Ответ на: комментарий от SakuraKun

И опенсорсные замки и опенсорсные симки давным-давно существуют

А у кого есть опенсорсный замок? У Линуса? Столлман, вроде, нищеброд.

tiinn ★★★★★
()
Ответ на: комментарий от SakuraKun

Какие такие исходники ты будешь смотреть в закрытых бинарных блобах, дизассемблировать разве что, но это нарушение лицензии. Это тоже чёрный ящик. Скидывай тогда исходники Intel ME будем смотреть, там же точно не может быть закладок.

fuggy
()
Ответ на: комментарий от SakuraKun

Я не понимаю, какие дыры могут быть в реализации алгоритма? Если алгоритм неправильный, то дешифровка будет провальной, что будет заметно.

Werenter ★★★
()
Ответ на: комментарий от fuggy

нарушение лицензии

Это какой ещё лицензии? По законам РФ пользователь имеет право делать со своей копией программы что угодно, при условии, что не распространяет. С железом тем более.

Werenter ★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.