Queryable Encryption — це новітня технологія, яка виводить шифрування даних на новий рівень, особливо коли йдеться про великі дані та аналітичні бази даних. Оскільки кількість даних, які ми збираємо, продовжує зростати, користувачі вимагають як захисту конфіденційності, так і можливості швидко та ефективно отримувати дані. Як можна поєднати ці, здавалося б, суперечливі потреби? Ось тут і вступає в гру технологія шифрування, яке дозволяє виконувати запити.
Що таке Queryable Encryption і як це працює?
Більшість існуючих методів шифрування шифрують дані, коли вони зберігаються на диску або передаються по мережі. Однак, коли база даних зчитує дані в пам'ять, дані розшифровуються до їхнього оригінального, незашифрованого вигляду, щоб дозволити виконання запитів — що може загрожувати конфіденційності даних.
Фото: Towfiqu barbhuiya на Unsplash
У світі, де багато баз даних містять чутливу інформацію, таку як медичні, фінансові або особисті дані, будь-яка спроба отримати доступ до даних часто викликає серйозні проблеми з конфіденційністю. Технологія запитного шифрування дозволяє виконувати запити до даних без їх розкриття. Наприклад, уявімо, що у нас є список заробітних плат всіх працівників компанії. Як можна обчислити середню зарплату, не розкриваючи чутливу інформацію? Відповідь полягає у шифруванні даних таким чином, щоб дозволити виконувати складні запити, не розкриваючи їх вміст.
Розглянемо просту аналогію: уявімо, що ви поклали книгу в непрозору коробку (шифрування), що унеможливлює прочитання її вмісту. Але якщо ви хочете щось знайти в книзі, вам не потрібно відкривати коробку та переглядати вміст. Натомість, ви можете посилати "питання" до коробки, яка вміє повертати відповідь, не відкриваючи книгу, тобто без перегляду всієї книги та порушення конфіденційності даних.
Те ж саме з queryable encryption: це дозволяє виконувати пошук по зашифрованій базі даних, зберігаючи при цьому конфіденційність даних. Будь-який запит, виконуваний на зашифрованій базі даних, виконується так, що дані не розкриваються під час пошуку.
Тепер, коли ми зрозуміли загальну концепцію, давайте детальніше розглянемо механізм та розберемо, як працює ця технологія.
Крок 1: Шифрування даних
Щоб почати процес запитного шифрування, дані повинні бути перетворені на зашифрований стан, що робить інформацію нечитаємою для будь-кого без відповідного ключа. Вибір алгоритму шифрування залежить від кількох факторів, зокрема від вимог до рівня безпеки, типу даних та бажаної продуктивності. Зазвичай для шифрування даних використовуються симетричні алгоритми, такі як AES, в той час як для управління ключами використовуються асиметричні алгоритми, такі як RSA.
Крок 2: Створення можливості для пошуку
Щоб виконувати ефективні пошуки по даних без їх розкриття, необхідно створити механізм, який дозволяє порівнювати запит з зашифрованими даними. Існує два основних підходи для створення пошуку по зашифрованих даних:
- Використання зашифрованих індексів: Коли дані шифруються, створюється певний "індекс", унікальний ідентифікатор, який описує оригінальні дані. Однак цей індекс також зашифрований і тому не розкриває інформацію. Під час пошуку система не порівнює безпосередньо запит з зашифрованими даними, а шукає збіг між зашифрованим індексом даних та зашифрованим індексом запиту.
Якщо повернутися до аналогії з книгою в коробці, кожна коробка буде мати наклейку з унікальним ідентифікатором (індексом). Коли шукаєте конкретну книгу, ви перевіряєте, чи збігається ідентифікатор запиту з ідентифікатором на наклейці. Таким чином, ви можете знайти правильну коробку без відкриття жодної з них. - Використання гомоморфного шифрування: Хоча шифрування баз даних є звичною практикою, воно все ще має обмеження в своїх можливостях щодо запитів.
Прості запити на рівність підтримуються в більшості випадків, але діапазонні запити, порівняння більше/менше і т.д. не підтримуються при звичайному шифруванні. Це пов'язано з тим, що для їх виконання необхідний доступ до незашифрованих даних для оцінки відповідної інформації для отримання. У цьому випадку, використовуючи гомоморфне шифрування, дані шифруються таким чином, що математичні операції можна виконувати на них — порівняння, пошук або обчислення — без їх розшифровки. Система повертає лише дані, що відповідають математичній умові, зберігаючи їх зашифрованими.
Ви можете уявити це як людину, яка кладе числа в запечатані коробки з механізмом, який дозволяє дізнатися, чи є число більше за 100, не відкриваючи коробку. Таким чином, ви можете відфільтрувати коробки, не бачачи чисел всередині.
Крок 3: Виконання пошуків і повернення результатів
Тепер, коли інфраструктура налаштована (зашифровані дані та індекси), можна виконати фактичний пошук. Коли користувач вводить запит (наприклад, “знайти всіх котів на ім’я ‘Міттенс’”), система шифрує запит так само, як і дані. Під час пошуку система не порівнює текст "Міттенс" з оригінальними даними (які, звісно, зашифровані), а порівнює зашифровану версію "Міттенс" з зашифрованими індексами або зашифрованими властивостями даних, в залежності від вибраного алгоритму. Після виконання пошуку система повертає результати користувачеві. Все це відбувається без розкриття вмісту даних для тих, хто не має відповідного ключа.
Як це виглядає в реальному світі?
Системи великих даних потребують інноваційних рішень для захисту конфіденційності, особливо коли потрібно швидко отримати великі обсяги даних. Запитне шифрування стає корисним, коли потрібно зашифрувати дані, але при цьому дозволяти виконувати пошук і аналіз.
Уявіть велику медичну систему, яка зберігає медичну історію мільйонів пацієнтів. Система використовує запитне шифрування для захисту конфіденційності пацієнтів, і ми хочемо провести дослідження ефективності нового препарату:
- Зашифровані дані: Кожен запис пацієнта містить зашифровану інформацію про вік, стать, діагнози, отримані лікування та результати тестів.
- Запит: Дослідники хочуть перевірити ефективність нового препарату для лікування діабету 2 типу.
- Виконання запиту:
a. Шифрування запиту: Дослідники шифрують критерії пошуку (наприклад, “пацієнти старші 50 років з діагнозом діабет 2 типу, які отримали новий препарат”).
b. Пошук по індексах: Система шукає збіги між зашифрованим запитом та зашифрованими індексами медичних записів.
c. Зашифровані результати: Система повертає зашифровані записи, що відповідають критеріям, але без розкриття чутливої інформації, такої як імена чи номери медичних карток.
d. Статистичний аналіз: Дослідники можуть проводити статистичний аналіз зашифрованих результатів, щоб визначити ефективність препарату, не розкриваючи особистість пацієнтів.
Технологія запитного шифрування є важливим рішенням у світі, де кожен шматок інформації має бути захищений, але в той же час є потреба в швидкому та ефективному доступі до даних. Розвиток у галузі великих даних вимагає балансу між конфіденційністю та продуктивністю, і запитне шифрування робить можливим захист особистої інформації без компромісу у складних пошуках і швидкому реагуванні.
Перекладено з: Unveiling Data Without Exposing It: How Queryable Encryption Works