"Недостаточно просто скрыть данные. Нужно разрешить над ними конкретные вычисления, не раскрывая больше ничего. Functional Encryption (FE), это та самая криптография, которая превращает шифрование из сейфа в вычислительного стража".
В криптографии последнего десятилетия произошёл сдвиг. Идея перестала быть чисто академической: в России, с её фокусом на 152-ФЗ и требованиями к обработке персональных данных, функциональное шифрование предлагает практический путь к безопасным вычислениям на зашифрованных данных без их полной расшифровки. Это уже не про «закрыть на ключ», а про то, какой именно ключ и что он разрешает увидеть.
От абстракции к практическим задачам
Классическое шифрование с открытым ключом работает по принципу «всё или ничего»: у кого есть секретный ключ, тот видит весь открытый текст. Functional Encryption заменяет единый секретный ключ на множество функциональных ключей (functional keys, или sk_f). Каждый такой ключ соответствует определённой функции f. Если зашифровать сообщение x, то владелец ключа sk_f сможет из шифртекста извлечь только результат вычисления f(x), но не сам x и не какую-либо другую информацию о нём.
Представьте, что вы отправляете зашифрованную медицинскую карту в облако для анализа. С помощью FE можно выдать врачу ключ, который позволяет вычислить, превышает ли уровень определённого показателя порог (функция сравнения), но не раскрывает сам показатель. Или ключ, который считает статистику по группе пациентов (функция агрегации), не показывая индивидуальные данные. Системный администратор, отвечающий за соответствие 152-ФЗ, получает инструмент для делегирования доступа с гранулярностью, недоступной традиционными средствами.
Иерар (или)хия выразительности: от простого к сложному
Мощность системы FE определяется тем, какой класс функций F она поддерживает. Конструкции выстраиваются в иерарÿхию, где каждая следующая ступень требует более сложных криптографических предположений и менее эффективна.
- FE для внутренних произведений (Inner Product FE, IPFE): Функция вычисляет скалярное произведение вектора сообщения
xи вектора, зашифрованного в функциональном ключеy. Результат — одно число «. Это основа для многих более сложных схем. IPFE относительно эффективна и строится на стандартных предположениях, например, на основе парной криптографии (pairings). На практике это может использоваться для вычисления взвешенных сумм или определённых статистик. - FE для булевых формул (или схем): Функция
fописывается булевой схемой (логическими вентилями И, ИЛИ, НЕ). Позволяет проверять сложные условия над зашифрованными битами данных. Например, «доступ разрешён, если (пользователь — сотрудник отдела А) И (уровень доступа > 3)». Конструкции часто используют инструменты вроде зашифрованных атрибутами схем (Attribute-Based Encryption, ABE), что сближает FE с известными в регуляторике моделями управления доступом. - FE для всех схем (т.е. для всех полиномиально вычислимых функций): Это «святой Грааль» — система, где функциональный ключ можно создать для любой вычислимой функции. Полнофункциональное FE (general FE) возможно, но долгое время строилось только на экзотических предположениях, вроде существования ин distinguisable obfuscation (iO), что ставило под сомнение практическую применимость. Прорывом стали конструкции из стандартных предположений.
Конструкции из стандартных предположений: как обойти экзотику
Долгое время путь к полнофункциональному FE лежал через «волшебные» примитивы вроде iO. Ситуация изменилась с появлением работ, которые свели задачу к более изученным и принимаемым сообществом основам. Ключевой стала концепция композиции (composition).
Один из плодотворных подходов — построение FE для булевых схем из FE для внутренних произведений и других стандартных компонентов. Идея в том, чтобы представить вычисление схемы как последовательность операций над её промежуточными значениями (wire values), которые можно закодировать в форму, подходящую для IPFE. Это многоэтапный процесс, часто использующий техники вроде «зашифрованного гаджета» (garbled circuit), но уже без reliance на iO.
Другой путь — использование линейно-секретного шифрования (linear secret-sharing schemes, LSSS) и предположений, связанных с решётками (lattice-based assumptions), таких как Learning With Errors (LWE). LWE считается стойким даже против квантовых атак, что добавляет таким конструкциям долгосрочную перспективу. Российские стандарты криптографии также движутся в сторону постквантовой стойкости, что делает lattice-based FE особенно актуальным направлением для исследований и потенциальной стандартизации.
Эти конструкции не просто теоретические. Они демонстрируют, что FE может быть реализован на предположениях, которые уже лежат в основе некоторых сертифицированных средств криптографической защиты информации (СКЗИ). Это мост от теории к индустрии.
Подводные камни и ограничения
Мощность FE не отменяет его сложностей. Практическое внедрение упирается в несколько барьеров.
- Эффективность: Полнофункциональные схемы из стандартных предположений всё ещё далеки от эффективности, приемлемой для высоконагруженных систем. Размер шифртекста и функциональных ключей, время вычисления могут быть большими.
- Модели безопасности: Базовая модель безопасности FE — защита от статического противника, который получает набор функциональных ключей до того, как увидит целевой шифртекст. Более сильные модели (адаптивная безопасность), где ключи можно запрашивать и после, сложнее в достижении и требуют дополнительных накладных расходов.
- Генерация ключей и доверие: Кто генерирует функциональные ключи? Обычно предполагается доверенный центр (Trusted Authority). Децентрализованные или многопользовательские схемы FE — отдельная сложная задача. В контексте российского регулирования этот центр должен соответствовать требованиям к удостоверяющим центрам и средствам ЭП.
- Функциональность против конфиденциальности: Неверный выбор класса функций может нечаянно раскрыть лишнее. Например, серия запросов на вычисление разных внутренних произведений с cleverly подобранными векторами может позволить восстановить исходные данные.
FE и российская регуляторика: точки соприкосновения
Требования ФСТЭК и 152-ФЗ часто формулируются на уровне политик и моделей доступа (ролевая, мандатная). FE предлагает криптографическую реализацию таких политик. Вместо того чтобы полагаться на корректность настройки СУБД или операционной системы, политика доступа вшивается в криптографические ключи.
Представьте сценарий аудита. Внешний аудитор должен проверить соответствие логированию политикам, не получая доступа к самим чувствительным логам. Ему можно выдать функциональный ключ, который проверяет шаблоны или агрегирует статистику по логам, сохраняя их содержание в тайне. Это прямой путь к снижению рисков при обработке ПДн.
Другая область — безопасные вычисления в распределённых или аутсорсинговых средах. Компания может зашифровать свои данные и отправить их для обработки, выдав контрагенту только ключи для нужных операций (например, расчёт определённых налоговых показателей). Это сложнее, чем просто использовать ГОСТ на шифрование, но даёт качественно иной уровень контроля.
Пока FE не описан в российских стандартах как готовый механизм. Однако, понимание его принципов и ограничений позволяет специалистам по информационной безопасности оценивать перспективные решения на рынке, которые могут использовать эти технологии под капотом, и формулировать требования к ним.
Что дальше?
Functional encryption из лабораторного curiosum превращается в семейство практически релевантных криптографических примитивов. Основные направления развития, это оптимизация эффективности для узких, но полезных классов функций (как IPFE), развитие стандартов и, что критически важно, создание открытых библиотек и эталонных реализаций. Для инженера в российской IT-индустрии знание FE перестаёт быть экзотикой. Это становится частью ландшафта инструментов для обеспечения конфиденциальности данных в условиях, когда простое шифрование «всё или ничего» уже не отвечает сложным бизнес- и регуляторным требованиям.