ABE с политикой шифротекста (CP-ABE)
Изучите CP-ABE, в котором шифрующая сторона встраивает политику доступа, а для расшифрования требуются атрибуты, соответствующие этой политике.
«ABE с политикой шифротекста (CP-ABE)» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.
Основная идея CP-ABE
В CP-ABE шифрующая сторона встраивает политику доступа непосредственно в шифротекст. Пользователь хранит секретный ключ, кодирующий его набор атрибутов. Расшифрование выполняется тогда и только тогда, когда атрибуты пользователя удовлетворяют политике доступа, встроенной в шифротекст. Шифрующая сторона управляет тем, кто может расшифровать данные, задавая политику во время шифрования.
Политики доступа в CP-ABE
Политики доступа в CP-ABE выражаются монотонными булевыми формулами над атрибутами и обычно представляются схемами линейного разделения секрета (LSSS) или деревьями доступа. Политика может включать логические элементы AND, OR и пороговые элементы. Элемент AND требует все перечисленные атрибуты; элемент OR — любой один из них; пороговый элемент t-of-n требует как минимум t из n перечисленных атрибутов. Эти элементы можно вкладывать друг в друга, чтобы выражать сложные структуры доступа.
Пример политики CP-ABE
Рассмотрим информационную систему больницы. Медицинский отчёт может быть зашифрован с политикой: (роль=Врач AND отделение=Кардиология) OR роль=Администратор. Кардиолог имеет атрибуты {роль=Врач, отделение=Кардиология} и может расшифровать данные. Рентгенолог имеет атрибуты {роль=Врач, отделение=Рентгенология} и не может расшифровать данные, поскольку атрибут отделение=Кардиология отсутствует. Администратор имеет {роль=Администратор} и всегда может расшифровать данные. Политика обеспечивается криптографически, а не только списками управления доступом.
Конструкция CP-ABE Waters (2011)
Наиболее влиятельная практическая конструкция CP-ABE предложена Waters (2011) и основана на билинейных спариваниях на эллиптических кривых. В этой конструкции центр управления ключами создаёт главный секрет и открытый ключ. Секретные ключи пользователей создаются для определённых наборов атрибутов. Шифрование включает создание шифротекста, кодирующего политику доступа с помощью схемы линейного разделения секрета. Безопасность доказывается в предположении о сложности задачи DBDH.
Малая и большая вселенные
Схемы CP-ABE различаются способом обработки множества атрибутов. Конструкции для малой вселенной требуют заранее зафиксировать полный набор возможных атрибутов на этапе настройки, что ограничивает гибкость, но позволяет создавать более эффективные схемы. Конструкции для большой вселенной (Rouselakis-Waters, 2013; Attrapadung, 2014) допускают атрибуты из экспоненциально большого множества без фиксации на этапе настройки, благодаря чему можно использовать такие атрибуты, как идентификаторы пользователей или метки времени, не объявляя заранее все возможные значения.
Делегирование ключей и иерархия
CP-ABE поддерживает делегирование ключей: центр управления ключами может выдать подчинённой стороне ключ для подмножества атрибутов, а та может дополнительно ограничить возможности ключа, но не расширить их. Это обеспечивает иерархическое управление атрибутами: централизованный орган компании выдаёт ключи уровня отделов, а органы отделов — ключи сотрудников. Это свойство называют безопасностью делегирования ключей: делегированный ключ нельзя использовать для расшифрования данных, которые не мог бы расшифровать делегирующий.
Библиотеки для CP-ABE
Практические реализации CP-ABE доступны в библиотеке криптографии на основе спаривания Java (jpbc) и в среде Python charm-crypto, предназначенной для создания прототипов. Библиотека OpenABE (Zeutro) представляет собой реализацию на C++, поддерживающую CP-ABE и KP-ABE и подходящую для производственного применения. RABE — реализация CP-ABE на Rust. Эти библиотеки реализуют операции на основе спаривания на кривых BN-256 и BLS12-381.
CP-ABE для облачного хранилища
Классическое применение CP-ABE — детализированный контроль доступа в облачном хранилище. Владелец файла шифрует документ с заданной политикой перед загрузкой. Любой пользователь, чьи атрибуты удовлетворяют политике, может скачать и расшифровать документ, при этом облачному провайдеру не нужно знать, кто получит к нему доступ, или поддерживать списки управления доступом. Облачный провайдер предоставляет шифротексты всем, кто их запрашивает; политика обеспечивается самим шифротекстом.
Характеристики производительности CP-ABE
Операции CP-ABE включают вычисления билинейных спариваний, которые значительно медленнее симметричного шифрования. На современном CPU одна операция спаривания на BN-256 занимает примерно 1–3 мс. Стоимость расшифрования растёт линейно с числом удовлетворённых атрибутов. Для политик с 10–20 атрибутами расшифрование занимает 10–60 мс: это приемлемо для приложений, ориентированных на пользователя, но слишком медленно для автоматизированных систем с высокой частотой операций.
Скрытие атрибутов в CP-ABE
Стандартный CP-ABE раскрывает политику доступа каждому, кто видит шифротекст, — политика не зашифрована. CP-ABE со скрытой политикой (или частично скрытой политикой) скрывает некоторые или все атрибуты политики от неавторизованных сторон, обеспечивая дополнительную конфиденциальность. Полное скрытие политики требует более сложных конструкций и значительно увеличивает накладные расходы. В большинстве практических систем используется стандартный CP-ABE с видимой политикой, поскольку раскрытие политики доступа считается приемлемым.
Проблема отзыва ключей в CP-ABE
Отзыв ключей в CP-ABE представляет собой серьёзную практическую проблему. Если атрибуты пользователя изменились (например, он покинул отдел или его учётные данные были отозваны), повторное шифрование всех шифротекстов, зашифрованных для прежних атрибутов, требует больших затрат. Практические подходы включают версионирование атрибутов (увеличение номера версии каждого атрибута), использование прокси-перешифрования для обновления шифротекстов или объединение CP-ABE с атрибутами на основе времени и периодическим обновлением ключа через центр управления ключами.
Викторина о политике CP-ABE
Где в CP-ABE встраивается политика доступа?
Повторение CP-ABE
CP-ABE встраивает политики доступа в шифротексты, а ключи пользователей кодируют наборы атрибутов. Расшифрование выполняется, когда атрибуты удовлетворяют политике, содержащей элементы AND, OR и пороговые элементы. Waters 2011 — основополагающая практическая конструкция на основе билинейных спариваний. Варианты для большой вселенной поддерживают динамические пространства атрибутов. CP-ABE применяется в облачном хранилище для детализированного контроля доступа без серверных списков управления доступом. Отзыв ключей остаётся практической проблемой; для её решения используют версионирование атрибутов или прокси-перешифрование.
Изучай Cryptology Academy с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 67
- Уроки
- 261
Часто задаваемые вопросы
Урок «ABE с политикой шифротекста (CP-ABE)» бесплатный?
Да — полный текст урока «ABE с политикой шифротекста (CP-ABE)» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.
Чему я научусь в уроке «ABE с политикой шифротекста (CP-ABE)»?
Изучите CP-ABE, в котором шифрующая сторона встраивает политику доступа, а для расшифрования требуются атрибуты, соответствующие этой политике. Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cryptology Academy?
Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «ABE с политикой шифротекста (CP-ABE)»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cryptology Academy?
Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- За пределами криптографии с открытым ключом: функциональное шифрование
- ABE с политикой шифротекста (CP-ABE)
- ABE с политикой ключа (KP-ABE) и сравнение
- Практическое применение ABE