Шифрование на основе личных данных и открытый исходный код

StackOverflow https://stackoverflow.com/questions/788844

Вопрос

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

Точно так же я считаю, что, если вы не сможете на самом деле распространять реализации с открытым исходным кодом там, где их может атаковать толпа черных шляп, они могут не иметь смысла?

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

(Редактировать:вот Статья в Википедии на основе шифрования на основе идентификатора.)

Это было полезно?

Решение

Мне не понятно, о чем вы пытаетесь спросить, поэтому я придумаю пару вопросов и отвечу на них.Дай мне знать, если мне станет тепло

Во-первых, «шифрование на основе идентификации» на самом деле является не столько схемой шифрования, сколько схемой управления ключами.В любом общедоступном/частном — или, технически, «асимметричном» — шифровании имеется два ключа.Один из них используется для шифрования, другой для расшифровки, и они обладают особым свойством: если вы знаете один из них, все равно экспоненциально сложно (или считается экспоненциально сложно) построить другой.Итак, я могу, например, зашифровать письмо вам, используя свой личный ключ;Я публикую свой открытый ключ.Если вы сможете расшифровать письмо с помощью открытого ключа, вы можете быть уверены, что именно я его действительно отправил.Это основная идея схем цифровой подписи.

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

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

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

Другими словами, это выглядит так:Алиса хочет отправить Бобу электронное письмо в зашифрованном виде.Они оба доверяют поставщику услуг Тому.

  • Алиса отправляет Тому запрос со своим адресом электронной почты «alice@example.com» и получает обратно закрытый ключ. п.Имеется соответствующий открытый ключ п, но Том никому это не отправляет.
  • Боб отправляет запрос Тому и получает от Тома главный открытый ключ м.
  • Алиса шифрует свое сообщение «x» своим секретным ключом, передавая {»x»}п.(Эта запись представляет собой просто «обернутое» сообщение «x» или шифрование с ключом п.) Затем Алиса отправляет это сообщение Бобу.
  • Бон использует свои знания об адресе электронной почты Алисы и главном ключе Тома. м, и вычисляет. р=f("alice@example.com", м).Теперь он применяет расшифровку decrypt({"x")P, p) и пуф, выходит сообщение Алисы.

Особенность этих схем в том, что они упрощают некоторые ключевые вопросы управления, но лишь незначительно.Вам все равно нужно сгенерировать ключи, и что еще хуже, вам придется Действительно доверяй Тому, потому что он все знает:он может сгенерировать ваш закрытый ключ и зашифровать с его помощью любое сообщение будет выглядеть так, как будто оно пришло от вас.Это означает, что создается встроенная схема условного депонирования ключей;ваш закрытый ключ можно узнать.

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

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

Другие советы

Чарли на правильном пути, но я хочу подчеркнуть еще несколько моментов.(Мои комментарии были написаны на основе более ранней, более короткой версии ответа Чарли.) IBE — это скорее схема управления ключами, чем подход к шифрованию, и его подход к управлению ключами скрывает важные проблемы.Попытка использовать личность в качестве основы чревата проблемами, поскольку ни у кого нет действительно хорошего решения для проверки личности в электронных приложениях, будь то в сети или в физическом мире.Без хорошего решения проблемы идентичности эти схемы IBE развалятся, как только вы подчеркнете идентичности, на которые они опираются.

Большинство систем IBE, о которых я видел какие-либо технические детали, на самом деле сводятся к «доверию провайдеру», которое не масштабируется и не обеспечивает реальной безопасности, когда вы действительно заботитесь об этом.Провайдер пытается установить личность в сети, а затем действует как доверенная третья сторона, хранящая ключи шифрования для всех.Опора на доверенную третью сторону имеет множество известных недостатков.

Современная криптография направлена ​​на поиск способов не полагаться на третью сторону.Сеть доверия — это один из подходов, основным недостатком которого является то, что управление ключами остается на усмотрение конечных пользователей, а управление ключами обходится дорого.Опираться на эмитентов сертификатов — это еще один подход, но здесь ясно, что эмитенты — это доверенные третьи стороны.Несколько лет назад одна из основных проблем, которой доверяли все браузеры, обанкротилась и была выкуплена игроком, который явно не заслуживал доверия, давая понять, что слабость этой схемы лежит в основе цепочек сертификатов. .

Шифрование на основе личных данных было бы сложно осуществить в проекте с открытым исходным кодом, особенно в таком, который не просто свободен, как свобода, но и свободен, как пиво.Как уже упоминалось, вся система полагается на выдачу ключей доверенной третьей стороне.Это требует инфраструктуры, как аппаратного, так и программного обеспечения, приобретение и обслуживание которой обходится дорого.Кроме того, это возлагает большую ответственность на сторону, выдающую ключи.Люди, использующие систему, будут ожидать, что эмитент возьмет на себя ответственность, если что-то пойдет не так (и так и будет);такая ответственность стоит недешево, и зачастую ее невозможно взять на себя проекту с открытым исходным кодом.

Вы имеете в виду какую-то конкретную схему?«Шифрование на основе личных данных» — довольно широкий термин.

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

Пытаться это.Хорошее и простое решение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top