У меня есть общие вопросы о параметрах Диффи Хеллмана

В настоящее время я работаю над обменом ключами Диффи-Хеллмана и использую пары ключей для AES.

Q1) Когда я выбираю простое число для Diffie-Hellman из RFC 3526, например группы MODP 1536, 2048, 3072, является ли большее число безопаснее? не могли бы вы объяснить мне об этом?

Q2) Каждая группа имеет генератор 2, должен ли я всегда использовать 2 в качестве генератора, если я использую стандартную основную группу из RFC3526??

Q3) Я использую пары ключей от Diffie-Helman для AES. Я понимаю, что длина ключа AES может быть 128, 192 или 256 бит. Должен ли я выбрать конкретное простое число или генератор в Диффи-Хеллмане, чтобы соответствовать длине ключа 128, 192 или 256 бит для AES??

Извините, задайте три вопроса в одном посте, но я считаю, что все они связаны между собой. Спасибо!!


person Michael    schedule 27.04.2017    source источник


Ответы (1)


В RFC 3528 они отвечают на ваши вопросы в разделе 8, Вопросы безопасности. Я попытаюсь повторить/объяснить ответы здесь:

  1. Короче говоря, да, большее простое число «безопаснее». Предполагая, что алгоритм Диффи-Хеллмана принципиально не нарушен, сложность «взлома» обмена, т. е. выяснения общего ключа, установленного обменом, напрямую зависит от размера используемых простых чисел. Однако один дополнительный бит простого числа не равен одному дополнительному биту «надежности ключа» в терминах AES. Это потому, что просто не каждое число является простым. В AES-128, например, мы ожидаем, что ключ будет строкой из 128 случайных битов, что означает, что ключ может быть любым из 2^128 возможных вариантов. Тем не менее, мы бы никогда не стали использовать 128-битное простое число в алгоритме Диффи-Хеллмана (или RSA, или где-либо еще, где требуются простые числа) просто потому, что существует гораздо меньше 2^128 простых чисел длиной 128 бит. Таким образом, если бы мы использовали 128-битное простое число, злоумышленнику не пришлось бы пробовать все варианты 2^128, ему нужно было бы попробовать гораздо меньшее количество 128-битных простых чисел. Поэтому, чтобы сказать, что у нас такая же «сила ключа», как у AES-x, нам нужно использовать гораздо большие простые числа, чтобы у нас было число возможных простых чисел в диапазоне 2^x.
  2. Я бы сказал да. Если вы сомневаетесь, следуйте эталонной реализации; в этом случае используйте 2 в качестве генератора.
  3. Таблица в разделе 8 показывает «оценку силы» различных представленных групп простых чисел; Я всегда брал бы более низкую оценку их силы. Поэтому для AES-128 используйте как минимум 3072-битную группу; для AES-192 по крайней мере 8192-битная группа.
person F. Stephen Q    schedule 27.04.2017
comment
Спасибо Это действительно помогло мне ха! - person Michael; 28.04.2017
comment
Общий совет правильный, хотя аргументация, стоящая за ним, не так уж и верна. Разрушение DH не имеет ничего общего с количеством простых чисел до некоторого размера (мы знаем это число, кстати, оно дается теоремой о простых числах). Вместо этого его безопасность зависит от сложности взлома простого числа с помощью решета числового поля. . Время работы этого алгоритма составляет порядка e^[(1 + o(1))^(1,923 (Log p)^(1/3) * (Log Log p)^(2/3))]. Логарифмы естественны. Установка p порядка 2 ^ 3072 дает время работы около 2 ^ 128. - person TheGreatContini; 28.04.2017
comment
@TheGreatContini Могу я задать еще один вопрос? что именно означает оценка силы? как и для 3072-битной группы, оценка силы колеблется от 130 до 210 бит. Означает ли это, что 3072-битная группа рекомендуется для шифрования с использованием ключа в этом диапазоне?? - person Michael; 29.04.2017
comment
@Ф. Стивен В. Могу я задать еще один вопрос? что именно означает оценка силы? как и для 3072-битной группы, оценка силы колеблется от 130 до 210 бит. Означает ли это, что 3072-битная группа рекомендуется для шифрования с использованием ключа в этом диапазоне? - person Michael; 29.04.2017
comment
@ Майкл, да, это правильно. По сути, это журнал количества операций по его взлому. Таким образом, если в документе указано, что оценка прочности равна 130, то количество операций для разрушения этой группы DH составляет порядка 2 ^ 130. Концепция заключается в том, что оценка силы DH не должна быть меньше, чем усилия по взлому ключа, которым вы обмениваетесь. Для взлома 128-битного ключа AES требуется 2 ^ 128 усилий, поэтому в этом случае вы делаете все правильно, используя 3072-DH для обмена 128-битным AES, но вам не следует использовать его для обмена 256-битным AES. - person TheGreatContini; 29.04.2017