Рейтинг:2

Как проверить открытые ключи Curve448?

флаг cn

Выполнение расчета ECDH с недопустимым открытым ключом может привести к утечке информации о вашем личном ключе. При использовании кривых Вейерштрасса важно убедиться, что открытый ключ партнера является точкой на кривой, а не бесконечно удаленной точкой. (Видеть «Проверка открытых ключей эллиптических кривых», Antipa et al. §3, также Почему открытые ключи должны быть проверены?).

С Кривая25519, все 32-байтовые строки являются действительными открытыми ключами для ECDH. Однако некоторые значения должны быть отклонены в протоколах, которые хотят обеспечить совместное поведение. «Да пребудет с вами четвертый: микроархитектурная атака по побочному каналу на несколько реальных приложений Curve25519», написанная Genkin et al. также рекомендует отклонять эти точки, чтобы избежать побочного канала синхронизации в реализациях, в основном, но не полностью с постоянным временем.

А как насчет кривой 448? Нужно ли проверять открытые ключи Curve448 или допустима любая 56-байтовая строка? оригинальная бумага и RFC 7748 не упоминайте о такой необходимости, но, возможно, есть более новая мудрость по этой теме.

kelalaka avatar
флаг in
Разве это не то же самое, что [Curve25519] (https://crypto.stackexchange.com/a/87711/18298). Он имеет кофактор 4. Требуется только простая ответственность, чтобы избежать небольшой утечки информации. Кроме того, он защищен от твист-атак.
Gilles 'SO- stop being evil' avatar
флаг cn
cr.yp.to в данный момент недоступен, но я уверен, что он скоро снова заработает. А пока вы можете использовать https://web.archive.org/web/20210608014309/https://cr.yp.to/ecdh.html#validate.
Maarten Bodewes avatar
флаг in
Safecurves также оценивает кривую Curve448 (златовласка), поэтому мне было интересно, не будет ли здесь полезна часть о «лестницах» и «полноте».
kelalaka avatar
флаг in
Также Томас утверждает то же самое [Безопасность эллиптических кривых] (https://crypto.stackexchange.com/q/44337/18298)
Рейтинг:2
флаг in

Кривая448

Curve448 — это кривая Эдварда, определенная над простым числом Солинаса. $p = 2^{448} – 2^{224} – 1$ с уравнением $$x^2+y^2 = 1-39081x^2y^2$$

Базовая точка

Базовая точка $G$ of Curve448 имеет простой порядок как Curve25519. Он имеет кофактор $ч=4$ это значит, что $$h = \dfrac{|\#E|}{ord(G)}$$ Получатель чего-то $G$ является $$\small ord(G) = 2^{446} - 13818066809895115352007386748515426880336692474882178609894547503885$$

ECDH

Теперь обратимся к ECDH, в котором у Алисы есть закрытый ключ (целое число) $k_A$ и открытый ключ $[k_A]G$ (точка на кривой) и у Боба есть закрытый ключ $k_B$ и открытый ключ $[k_B]G$.

Что происходит, когда Алиса и Боб обмениваются открытыми ключами (не считая человека посередине)? Нижеприведенное;

$$[k_A k_B]G$$

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

$$[k_A]G = [k_A \bmod \operatorname{ord}(G)]G$$

$$[k_A k_B]G = [k_A k_B \bmod \operatorname{ord}(G)]G$$

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

Атака малой подгруппы

Как насчет того, чтобы Боб выполнил небольшую атаку подгруппы (Активные атаки Лима-Ли небольшими подгруппами)?

В атаке небольшой подгруппы атакующий Боб выбирает небольшой порядок $P$ как общедоступная точка, где дискретный логарифм легко.Во время протокола законный пользователь Алиса раскроет $[k_A]P$ к нападающему. Теперь, сколько информации может узнать злоумышленник о $k_A$ от $[K_A]P$?

  • Ответ дан в виде информации, раскрытой $[K_A]P$ самое большее $\lceil log_2 ч\rceil$ биты.

Поскольку кофактор равен 4, можно раскрыть не более двух битов закрытого ключа. Если вы опасаетесь, что потеря 2 бит из 224 опасна, проверьте, что $P$ нет порядка 2 или 4, проверив $[4]P \overset{?}{=}\mathcal{O}$

Твист Безопасность

Изюминка Curve448 $4$ в качестве кофактора, поэтому он безопасный поворот, тоже.


Примечание: в этой статье Оптимизированные архитектуры для криптографии на основе эллиптических кривых по сравнению с Curve448 упомянул, что

Кроме того, открытые ключи Curve448 достаточно короткие и не требуют проверки, если результирующий общий секрет не равен нулю.

и Майк Гамбург знал об этой статье до публикации, так как в Благодарности

Мы также благодарим Майка Гамбурга за его конструктивные комментарии.

kelalaka avatar
флаг in
Обратите внимание, что этот ответ в первую очередь для ECHE
Gilles 'SO- stop being evil' avatar
флаг cn
Конкретно, каковы x-координаты точек 4-го порядка? (https://cr.yp.to/ecdh.html#validate перечисляет 12 значений для Curve25519, которые соответствуют 5 x-координатам после редукции по модулю $P$). А как насчет побочного канала «Четвертое мая» — рискованные случаи также являются младшими точками для Curve448?
kelalaka avatar
флаг in
@Gilles'SO-stopbeevil' никогда их не видел, дайте мне немного времени, чтобы вычислить их.
kelalaka avatar
флаг in
@Gilles'SO-stopbeevil' Я в деле..

Ответить или комментировать

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