Уявімо ситуацію - вам потрібно забезпечити безпеку вмісту банківської комірки. Зі свого боку, банк уже зробив все можливе, щоб ніхто сторонній не зміг до неї дістатися. Тому і забезпечив вас єдиним ключем, що надає доступ до вмісту. Ось тільки цей ключ у вас можуть вкрасти, ви його можете втратити, а при неправильному носінні, наприклад - він може самостійно зіпсуватися. І доведеться проходити довгу процедуру відновлення доступу.
Не кажучи про те, що щоб отримати вміст в своє розпорядження, вам, як єдиному власнику ключа, доведеться кожного разу особисто бути присутнім при відвідуванні банку.
Можливий варіант - зробити копію ключа і передати її довіреній особі. Тепер шанс втрати доступу зменшується, але підвищується ризик в разі крадіжки. Теж не дуже гарне рішення.
Ще один варіант - розділити початковий ключ на 2 частини. Тепер злодію доведеться вкрасти обидві, щоб забезпечити собі доступ. Але при втраті будь-якої з цих частин - знову доведеться проходити процедуру відновлення доступу.
Тому оптимальний варіант - створити таку схему зберігання ключа або його фрагментів, щоб в разі недієздатності одного з учасників цієї схеми, не змінювалася її функціональність. Саме цю проблему і вирішує методика, яка називається «Поділ секрету Шаміра»
Що це таке?
Автор ідеї - ізраїльський криптограф Аді Шамір. У 1970 році ним була опублікована наукова робота «Як розділити секрет», в якій описувалася порогова схема, що дозволяє отримувати доступ до розділеної на n частин інформації, володіючи тільки k частинами. k само собою менше n. При цьому навіть наявність k-1 частин не дає жодного уявлення про ключ і не полегшує його підбір. Тобто - ще й семантична безпека.
У чому, власне, сенс. Знаючи координати двох точок на площині - можна побудувати через них пряму. Знаючи координати трьох точок в просторі - провести через них площину. Знаючи певну кількість точок - k, що описують графік складної функції - можна відтворити цю функцію.
Саме в ситуації з розподілом секрету Шаміра використовується так званий інтерполяційний многочлен Лагранжа. Він дозволяє визначити ту саме кількість точок k, яка потрібна для визначення всієї функції.
У практичному вигляді це виглядає так. Є дилер, який пропонує послуги зберігання інформації. Він же надає приватний ключ, який потім розбивається на деяку кількість частин. Кожна ця частина видається одному з учасників. Тепер для отримання доступу до інформації, k таких осіб повинні об'єднати свої зусилля. При цьому їм не обов'язково буті всім присутнім в одному місці - точка відмови буде створюватися дистанційно, після обміну інформацією.
Метод трохи нагадує мультісіг-гаманець (гаманець з кількома електронними підписами), але є і суттєві відмінності. ПСШ працює офлайн, а мультісіг - виключно в рамках працюючої мережі. Крім того, для мультісіг необхідний одночасний доступ учасників, а в ситуації ПСШ його можна розтягнути по часу. Вважається, що ПСШ зручніше для фізичних осіб, а гаманець з мультипідписом - для великих підприємств.
Конкретні переваги ПСШ
- Можливість багатомірного контролю доступу. Для кожної з окремих і самих по собі непотрібних частин секрету можна забезпечити контрольоване зберігання. Це позбавляє від необхідності довіряти конкретним людям.
- Даний спосіб підходить для зберігання абсолютно будь-якої інформації (приватні ключі, кореневі ключі серверів, різні сертифікати, типу PGP / GPG), в той час, як мультісіг в цьому плані більш обмежений.
- Можливість роботи з будь-якими блокчейнами. На жаль, система мультісіг підтримується не у всіх випадках, а за допомогою ПСШ можна спокійно розбивати на частини будь які сід-фрази. Крім того, відпадає необхідність в єдиній точці доступу (відмови).
- Збереження конфіденційності інформації навіть в разі потрапляння окремих фрагментів в руки зловмисників.
- Використовується тільки один приватний ключ, тому - менше операцій і пов'язаних з ними комісійних зборів.
- Спрощена зміна схеми доступу. Якщо один фрагмент виявиться скомпрометованим - ви просто створюєте таку ж кількість нових фрагментів і знову віддаєте їх довіреним особам, видаливши «старі».
- Підвищена стійкість з точки зору теорії інформації. Якщо у зловмисника немає всіх потрібних фрагментів, навіть необмежена обчислювальна потужність не дозволить йому підібрати ключ.
Проблеми ПСШ і їх рішення
- Стандартний розмір. Довжина будь-якого фрагмента секрету відповідає довжині самого секрету, так що, знаючи один фрагмент, можна робити деякі припущення про величину зашифрованих даних. Вирішується попереднім наповненням зашифрованої інформації довільними числами.
- Відсутність схем о перевірюються. По суті, знаючи один фрагмент секрету, зловмисник зможе апаратним шляхом відтворити аналогічні по довжині. Вони не дадуть права скористатися інформацією, але ускладнять відновлення правильного секрету. Тому дуже часто в даних алгоритмах використовують додаткові схеми поділу секрету що перевірюються, наприклад - схему Фельмана.
Поділ секрету Шаміра - вкрай зручний спосіб забезпечення доступу до захищеної інформації. Однак не варто забувати, що його краще поєднувати з додатковими методами захисту, такими, як перевірка постійного часу виконання, відсутність збереження введених даних на диску, раціональне зберігання кожного окремого фрагмента і багато чого ще.