Рейтинг:1

Подпись низкоэнтропийных данных: можно ли их подделать?

флаг cn

Я работаю над приложением, в котором у меня есть физическая идентификационная этикетка продукта, содержащая блок публичный, низкоэнтропийные данные (~ 50 байт), такие как серийный номер и другая информация, все легко доступны прямо на этикетке. Я хотел бы использовать алгоритм подписи на основе хеша, чтобы обеспечить проверку подлинности продукта.

  1. Это разумная идея? Вызывают ли проблемы данные с низкой энтропией?
  2. Сколько таких этикеток нужно получить, чтобы получить секретный ключ?

РЕДАКТИРОВАТЬ: Может быть, лучше спросить, можно ли подделать эту подпись, не имея секретного ключа?

  1. Есть ли способ сделать это безопасно, используя всего 256 бит выходных данных?
poncho avatar
флаг my
"Есть ли способ сделать это безопасно, используя всего 256 бит выходных данных?"; вы имеете в виду «подписывать только 256 бит выходных данных» (не проблема) или иметь подпись длиной всего 256 бит (это сложно - BLS подходит ближе всего, однако для получения около 128-битного уровня безопасности по-прежнему требуется около 384-битных подписей )
флаг cn
Я имел в виду подпись длиной всего 256 бит. Я понимаю, что здесь я иду на компромисс безопасности, но я хотел бы понять, насколько плох этот компромисс.
poncho avatar
флаг my
Что ж, BLS, основанный на таких кривых, как BN256I или BN254N, будет иметь около 256-битных подписей и в настоящее время оценивается как обеспечивающий около 100-битную безопасность; следовательно, если вы не возражаете несколько уменьшить безопасность, это выглядит выполнимым...
poncho avatar
флаг my
Около 100-битной безопасности, вероятно, достаточно, если ваш противник не является действительно мотивированным TLA (никто другой не может скомпилировать даже близко столько вычислений; я не уверен насчет TLA); это просто меньший запас прочности, чем то, к чему мы привыкли. Конечно, BLS совсем не безопасен, если у противника есть квантовый компьютер...
Рейтинг:3
флаг my
  1. Это разумная идея?

Звучит хорошо, пока:

  • Вы используете надежный ключ RSA (например, не менее 2048 бит)

  • Вы используете хороший метод заполнения подписи RSA

  • Вы каким-то образом не позволяете злоумышленнику изменить открытый ключ RSA, который вы используете для проверки с помощью

Вызывают ли проблемы данные с низкой энтропией?

Нет, низкоэнтропийные данные не представляют проблемы.

  1. Сколько таких этикеток нужно получить, чтобы получить секретный ключ?

Неизвестно, как восстановить закрытый ключ RSA, даже если вы дадите злоумышленнику Oracle для подписи произвольного количества произвольных сообщений (что является гораздо более сильным сценарием атаки, чем то, что у вас есть).

fgrieu avatar
флаг ng
Дополнение: "хорошим методом заполнения подписи RSA" может быть [RSASSA-PSS of PKCS#1](https://pkcs1.grieu.fr/#page=27) или схема 2 или 3 ISO/IEC 9796-2 ( который имеет то преимущество, что с открытым ключом можно извлечь низкоэнтропийные данные из самой подписи) как с SHA-256, так и с MGF1+SHA-256. Вы можете обойтись [RSASSA-PKCS1-v1_5 of PKCS#1](https://pkcs1.grieu.fr/#page=31), в котором отсутствует снижение безопасности, но он не нарушен, или схема 1 ISO/IEC 9796-2. (который сломан, но практически не в данной ситуации), оба с SHA-256.
Рейтинг:0
флаг ng

Как сказано в другой ответ: да, это разумная идея, RSA позволяет безопасную подпись общедоступных данных с низкой энтропией, которая может быть открыто проверена на соответствие указанным данным, но не может быть сгенерирована без закрытого ключа.Примеры действительных подписей и открытого ключа не раскрывают закрытый ключ или способы создания других подписей. Несколько стандартизированных схем подписи делают это регулярно (но, конечно, ничто не препятствует копированию общедоступных данных и их подписи).

Теперь вопрос добавляет:

Есть ли способ сделать это безопасно, используя всего 256 бит выходных данных?

Не с РСА. 256-битная подпись RSA была бы небезопасной, потому что они (с точностью до нескольких бит) такие же широкие, как общедоступный модуль, а 256-битная слишком мала (384-битная уже была слишком маленькой в ​​1990-х годах, и был достигнут значительный прогресс). с тех пор см. это).

256-битная технология близка к грани, а скорее, с другой стороны того, что хорошо проверенные схемы подписи могут дать с высокой степенью безопасности. Я недавно спросил об этом, делая инвентаризацию того, что я знаю среди стандартизированный схем, причем не ниже 384 бит при 128-битном уровне безопасности, обычно рекомендуемом для обеспечения высокой безопасности в следующие десятилетия.

С другой стороны, если кто-то доволен 90-битной безопасностью (которая по-прежнему оценивает прогнозируемую стоимость атаки с использованием сегодняшних средств в миллиарды евро) и не нуждается в чем-то стандартизированном, можно использовать короткая подпись Шнорра (который номинально должен быть 270-битным) и несколько приемов, позволяющих обменять более длительное время генерации и/или проверки подписи на несколько меньших битов подписи. Могу уточнить, если нужно.

Другой вариант был бы подпись BLS например на кривой BN254 или BN256, что соответствует цели по размеру и будет, по крайней мере, сопоставимо безопасным в соответствии с эти Комментарии, но это вне моей зоны комфорта.

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

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