Схема падзелу сакрэту Шаміра

Разгледзім сцэнар, калі неабходна гарантаваць бяспеку банкаўскага сховішча. Яно лічыцца абсалютна непрыступным без ключа, які вам выдаюць у першы ж дзень працы. Ваша мэта - надзейна захаваць ключ.

Выкажам здагадку, вы вырашылі ўвесь час захоўваць ключ пры сабе, падаючы доступ да сховішча па меры неабходнасці. Але вы хутка зразумееце, што такое рашэнне на практыцы нармальна не маштабуецца, таму што кожны раз для адкрыцця сховішча патрабуецца ваша фізічная прысутнасць. А як наконт водпуску, якія вам абяцалі? Акрамя таго яшчэ больш палохае пытанне: а што, калі вы страцілі адзіны ключ?

З думкай аб водпуску вы вырашылі зрабіць копію ключа і даверыць яе іншаму супрацоўніку. Аднак вы разумееце, што гэта таксама не ідэальна. Падвойваючы колькасць ключоў, вы таксама падвоілі магчымасці крадзяжу ключа.

Страціўшы надзею, вы знішчаеце дублікат і вырашаеце падзяліць зыходны ключ напалову. Цяпер, вы думаеце, два давераных чалавека з фрагментамі ключоў павінны фізічна прысутнічаць, каб сабраць ключ і адкрыць сховішча. Гэта азначае, што злодзею неабходна выкрасці два фрагменты, што ўдвая цяжэй крадзяжы аднаго ключа. Аднак неўзабаве вы разумееце, што гэтая схема ненашмат лепш, чым проста адзін ключ, таму што калі нехта страціць палову ключа, поўны ключ нельга аднавіць.

Праблему можна вырашыць з дапамогай серыі дадатковых ключоў і замкаў, але пры такім падыходзе хутка запатрабуецца шмат ключоў і замкаў. Вы вырашаеце, што ў ідэальнай схеме трэба падзяліць ключ, каб бяспека не належыла цалкам на аднаго чалавека. Вы таксама складаеце, што павінен існаваць нейкі парог колькасці фрагментаў, каб пры страце аднаго фрагмента (ці калі чалавек сышоў у адпачынак) увесь ключ заставаўся функцыянальным.

Як падзяліць сакрэт

Аб такім тыпе схемы кіравання ключамі думаў Ады Шамір у 1979 году, калі апублікаваў сваю працу "Як падзяліць сакрэт". У артыкуле коратка тлумачыцца так званая Схема падзелу сакрэту Шаміра парогавая схема для эфектыўнага падзелу сакрэтнага значэння (напрыклад, крыптаграфічнага ключа) на Схема падзелу сакрэту Шаміра частак. Затым, калі і толькі калі хаця б Схема падзелу сакрэту Шаміра з Схема падзелу сакрэту Шаміра частак сабраны, можна лёгка аднавіць сакрэт Схема падзелу сакрэту Шаміра.

З пункту гледжання бяспекі важнай уласцівасцю гэтай схемы з'яўляецца тое, што зламыснік не павінен даведацца абсалютна нічога, калі ў яго няма хаця б Схема падзелу сакрэту Шаміра частак. Нават наяўнасць Схема падзелу сакрэту Шаміра частак не павінна даваць ніякай інфармацыі. Мы называем гэтую ўласцівасць семантычнай бяспекай.

Палінаміальная інтэрпаляцыя

Парогавая схема Шаміра Схема падзелу сакрэту Шаміра пабудавана вакол канцэпцыі паліномнай інтэрпаляцыі. Калі вы не знаёмыя з гэтай канцэпцыяй, яна насамрэч даволі простая. Наогул, калі вы калі-небудзь малявалі кропкі на графіцы, а затым злучалі іх лініямі ці крывымі, то ўжо выкарыстоўвалі яе!

Схема падзелу сакрэту Шаміра
Праз дзве кропкі можна правесці неабмежаваную колькасць паліномаў ступені 2. Каб выбраць з іх адзіны - патрэбна трэцяя кропка. Ілюстрацыя: Вікіпедыя

Разгледзім палінам са ступенню адзін, Схема падзелу сакрэту Шаміра. Калі вы хочаце пабудаваць гэтую функцыю на графіцы, колькі кропак вам трэба? Ну, мы ведаем, што гэта лінейная функцыя, якая ўтварае лінію і таму трэба па меншай меры дзве кропкі. Далей разгледзім паліномны функцыю са ступенню два, Схема падзелу сакрэту Шаміра. Гэта квадратычная функцыя, таму для пабудовы графіка патрабуецца не менш за тры кропкі. Як наконт мнагачлена са ступенню тры? Прынамсі, чатыры кропкі. І гэтак далей і да таго падобнае.

Сапраўды класная рэч у гэтай уласцівасці складаецца ў тым, што, улічваючы ступень паліномнай функцыі і, прынамсі, Схема падзелу сакрэту Шаміра кропак, мы можам вывесці дадатковыя кропкі для гэтай паліномны функцыі. Экстрапаляцыю гэтых дадатковых кропак мы называем паліномнай інтэрпаляцыяй.

Складанне сакрэту

Магчыма, вы ўжо зразумелі, што тут уступае ў гульню разумная схема Шаміра. Выкажам здагадку, што наш сакрэт Схема падзелу сакрэту Шаміра - Гэта Схема падзелу сакрэту Шаміра. Мы можам ператварыць Схема падзелу сакрэту Шаміра у кропку на графіцы Схема падзелу сакрэту Шаміра і прыдумаць паліномны функцыю са ступенню Схема падзелу сакрэту Шаміра, якая задавальняе гэтай кропцы. Нагадаем, што Схема падзелу сакрэту Шаміра будзе нашым парогам патрабаваных фрагментаў, таму калі мы ўсталяваць парог у тры фрагменты, то павінны абраць паліномны функцыю са ступенню два.

Наш паліном будзе мець форму Схема падзелу сакрэту Шаміра, Дзе Схема падзелу сакрэту Шаміра и Схема падзелу сакрэту Шаміра - Выпадковым чынам выбраныя станоўчыя цэлыя лікі. Мы ўсяго толькі які будуецца паліном са ступенню Схема падзелу сакрэту Шаміра, дзе вольны каэфіцыент Схема падзелу сакрэту Шаміра - гэта наш сакрэт Схема падзелу сакрэту Шаміра, а ў кожнага з наступных Схема падзелу сакрэту Шаміра чальцоў ёсць выпадковым чынам абраны дадатны каэфіцыент. Калі вярнуцца да першапачатковага прыкладу і выказаць здагадку, што Схема падзелу сакрэту Шаміра, то тады мы атрымаем функцыю Схема падзелу сакрэту Шаміра.

На гэтым этапе мы можам генераваць фрагменты, падлучыўшы Схема падзелу сакрэту Шаміра унікальных цэлых лікаў у Схема падзелу сакрэту Шаміра, Дзе Схема падзелу сакрэту Шаміра (Бо гэта наш сакрэт). У дадзеным прыкладзе мы хочам раздаць чатыры фрагменты з парогам тры, таму выпадковым чынам генеруем кропкі. Схема падзелу сакрэту Шаміра і адпраўляем па адной кропцы кожнаму з чатырох давераных чалавек, захавальнікаў ключа. Мы таксама паведамляем людзям, што Схема падзелу сакрэту Шаміра, так як гэта лічыцца публічнай інфармацыяй і неабходна для аднаўлення Схема падзелу сакрэту Шаміра.

Аднаўленне сакрэту

Мы ўжо абмяркоўвалі канцэпцыю паліномнай інтэрпаляцыі і тое, што яна ляжыць у аснове парогавай схемы Шаміра Схема падзелу сакрэту Шаміра. Калі любыя тры з чатырох давераных асоб хочуць аднавіць Схема падзелу сакрэту Шаміра, ім трэба толькі інтэрпаліраваць Схема падзелу сакрэту Шаміра са сваімі ўнікальнымі кропкамі. Для гэтага яны могуць вызначыць свае кропкі Схема падзелу сакрэту Шаміра і разлічыць інтэрпаляцыйны паліном Лагранжа, выкарыстоўваючы наступную формулу. Калі праграмаванне вам больш зразумела, чым матэматыка, то пі - гэта па сутнасці аператар for, Які памнажае ўсе вынікі, а сігма - гэта for, які ўсё складае.

Схема падзелу сакрэту Шаміра

Схема падзелу сакрэту Шаміра

Пры Схема падзелу сакрэту Шаміра мы можам гэта вырашыць наступным чынам і вярнуць нашу зыходную паліномны функцыю:

Схема падзелу сакрэту Шаміра

Бо мы ведаем, што Схема падзелу сакрэту Шаміра, аднаўленне Схема падзелу сакрэту Шаміра ажыццяўляецца проста:

Схема падзелу сакрэту Шаміра

Выкарыстанне небяспечнай цэлалікай арыфметыкі

Хоць мы паспяхова ўжылі асноўную ідэю Шаміра Схема падзелу сакрэту Шаміра, у нас застаецца праблема, якую мы ігнаравалі да цяперашняга моманту. Наша паліномны функцыя выкарыстоўвае небяспечную цэлалікавую арыфметыку. Улічыце, што для кожнай дадатковай кропкі, якую атакавалы атрымлівае на графіцы нашай функцыі, застаецца меншая колькасць магчымасцяў для іншых кропак. Вы можаце ўбачыць гэта на свае вочы, калі будуеце графік з павелічэннем колькасці кропак для паліномны функцыі з выкарыстаннем цэлалікай арыфметыкі. Гэта контрпрадуктыўна для нашай заяўленай мэты бяспекі, таму што зламыснік не павінен абсалютна нічога даведацца, пакуль у іх не будзе хаця б Схема падзелу сакрэту Шаміра фрагментаў.

Каб прадэманстраваць, наколькі слабая схема з цэлалікай арыфметыкай, разгледзім сцэнар, у якім зламыснік атрымаў дзве кропкі. Схема падзелу сакрэту Шаміра і ведае публічную інфармацыю, што Схема падзелу сакрэту Шаміра. З гэтай інфармацыі ён можа вывесці Схема падзелу сакрэту Шаміра, роўны двум, і падлучыць у формулу вядомыя значэння Схема падзелу сакрэту Шаміра и Схема падзелу сакрэту Шаміра.

Схема падзелу сакрэту Шаміра

Затым зламыснік можа знайсці Схема падзелу сакрэту Шаміра, палічыўшы Схема падзелу сакрэту Шаміра:

Схема падзелу сакрэту Шаміра

Паколькі мы вызначылі Схема падзелу сакрэту Шаміра як выпадкова выбраныя цэлыя станоўчыя лікі, ёсць абмежаваную колькасць магчымых Схема падзелу сакрэту Шаміра. З дапамогай гэтай інфармацыі зламыснік можа вывесці Схема падзелу сакрэту Шаміра, паколькі ўсё, што больш за 5, зробіць Схема падзелу сакрэту Шаміра адмоўным. Гэта аказваецца праўдай, паколькі мы вызначылі Схема падзелу сакрэту Шаміра

Затым зламыснік можа разлічыць магчымыя значэння Схема падзелу сакрэту Шаміра, замяніўшы Схема падзелу сакрэту Шаміра в Схема падзелу сакрэту Шаміра:

Схема падзелу сакрэту Шаміра

З абмежаваным наборам варыянтаў для Схема падзелу сакрэту Шаміра становіцца зразумела, наколькі лёгка падабраць і праверыць значэння Схема падзелу сакрэту Шаміра. Тут усяго пяць варыянтаў.

Рашэнне праблемы з небяспечнай цэлалікай арыфметыкай

Каб ухіліць гэтую ўразлівасць, Шамір прапануе выкарыстоўваць модульную арыфметыку, замяніўшы Схема падзелу сакрэту Шаміра на Схема падзелу сакрэту Шаміра, Дзе Схема падзелу сакрэту Шаміра и Схема падзелу сакрэту Шаміра - мноства ўсіх простых лікаў.

Хутка ўспомнім, як працуе модульная арыфметыка. Гадзіны са стрэлкамі - ужо знаёмая канцэпцыя. Яна выкарыстоўвае гадзіннік, якія з'яўляюцца Схема падзелу сакрэту Шаміра. Як толькі гадзіннікавая стрэлка праходзіць міма дванаццаці, яна вяртаецца да аднаго. Цікавай уласцівасцю гэтай сістэмы з'яўляецца тое, што проста паглядзеўшы на гадзіннік, мы не можам вывесці, колькі абарачэнняў зрабіла гадзіннікавая стрэлка. Аднак калі мы ведаем, што гадзіннікавая стрэлка чатыры разы абмінула 12, можна цалкам вызначыць колькасць мінулых гадзін з дапамогай простай формулы. Схема падзелу сакрэту Шаміра, Дзе Схема падзелу сакрэту Шаміра - гэта наш дзельнік (тут Схема падзелу сакрэту Шаміра), Схема падзелу сакрэту Шаміра - Гэта каэфіцыент (колькі разоў дзельнік без астатку пераходзіць у зыходны лік, тут Схема падзелу сакрэту Шаміра), А Схема падзелу сакрэту Шаміра – гэта рэштка, якая звычайна і вяртае выклік аператара па модулі (тут Схема падзелу сакрэту Шаміра). Веды ўсіх гэтых значэнняў дазваляе нам вырашыць раўнанне для Схема падзелу сакрэту Шаміра, Але калі мы прапусцім каэфіцыент, то ніколі не зможам аднавіць зыходнае значэнне.

Можна прадэманстраваць, як гэта паляпшае бяспеку нашай схемы, ужыўшы схему да нашага папярэдняга прыкладу і выкарыстоўваючы Схема падзелу сакрэту Шаміра. Наша новая паліномны функцыя Схема падзелу сакрэту Шаміра, а новыя кропкі Схема падзелу сакрэту Шаміра. Цяпер захавальнікі ключа могуць яшчэ раз выкарыстоўваць паліномны інтэрпаляцыю для аднаўлення нашай функцыі, толькі на гэты раз аперацыі складання і множання павінны суправаджацца скарачэннем па модулі Схема падзелу сакрэту Шаміра (Напрыклад, Схема падзелу сакрэту Шаміра).

Выкарыстоўваючы гэты новы прыклад, выкажам здагадку, што зламыснік даведаўся дзве з гэтых новых кропак, Схема падзелу сакрэту Шаміра, а публічная інфармацыя Схема падзелу сакрэту Шаміра. Гэтым разам атакавалы на аснове ўсёй наяўнай у яго інфармацыі выводзіць наступныя функцыі, дзе Схема падзелу сакрэту Шаміра - Набор усіх станоўчых цэлых лікаў, а Схема падзелу сакрэту Шаміра уяўляе каэфіцыент модуля Схема падзелу сакрэту Шаміра.

Схема падзелу сакрэту Шаміра

Цяпер наш зламыснік зноў знаходзіць Схема падзелу сакрэту Шаміра, вылічыўшы Схема падзелу сакрэту Шаміра:

Схема падзелу сакрэту Шаміра

Затым ён зноў спрабуе вывесці Схема падзелу сакрэту Шаміра, замяніўшы Схема падзелу сакрэту Шаміра в Схема падзелу сакрэту Шаміра:

Схема падзелу сакрэту Шаміра

На гэты раз у яго сур'ёзная праблема. У формуле адсутнічаюць значэнні Схема падзелу сакрэту Шаміра, Схема падзелу сакрэту Шаміра и Схема падзелу сакрэту Шаміра. Паколькі існуе бясконцая колькасць камбінацый гэтых зменных, ён не можа атрымаць ніякай дадатковай інфармацыі.

Меркаванні бяспекі

Схема падзелу сакрэту Шаміра прапануе бяспека з пункту гледжання тэорыі інфармацыі. Гэта значыць, што матэматыка з'яўляецца стойкай нават супраць зламысніка з неабмежаванай вылічальнай магутнасцю. Аднак схема па-ранейшаму змяшчае некалькі вядомых праблем.

Напрыклад, схема Шаміра не стварае правяраемых фрагментаў, гэта значыць людзі могуць свабодна прад'яўляць падробленыя фрагменты і перашкаджаць аднаўленню правільнага сакрэту. Варожы захавальнік фрагментаў з дастатковай інфармацыяй можа нават вырабіць іншы фрагмент, змяніўшы Схема падзелу сакрэту Шаміра на сваё меркаванне. Гэтая праблема вырашаецца з дапамогай правяраемых схем падзелу сакрэту, такіх як схема Фельдмана.

Іншая праблема заключаецца ў тым, што даўжыня любога фрагмента роўная даўжыні адпаведнага сакрэту, так што даўжыню сакрэту лёгка вызначыць. Гэтая праблема вырашаецца трывіяльнай набіўкай сакрэту адвольнымі лікамі да фіксаванай даўжыні.

Нарэшце, важна адзначыць, што нашыя асцярогі з нагоды бяспекі могуць выходзіць за рамкі самой схемы. Для рэальных крыптаграфічных прыкладанняў часта існуе пагроза нападаў па іншых каналах, калі зламыснік спрабуе атрымаць карысную інфармацыю з часу выканання прыкладання, кэшавання, збояў і г.д. Калі гэта выклікае заклапочанасць, варта падчас распрацоўкі старанна разгледзець выкарыстанне ахоўных мер, такіх як функцыі і пошук са сталым часам выканання, прадухіліць захаванне памяці на дыск і прадумаць шэраг іншых рэчаў, якія выходзяць за рамкі гэтага артыкула.

дэма

На гэтай старонцы ёсць інтэрактыўная дэманстрацыя cхема падзелу сакрэту Шаміра. Дэманстрацыя зроблена на базе бібліятэкі ssss-js, якая сама па сабе з'яўляецца JavaScript-портам папулярнай праграмы SSSS. Звярніце ўвагу, што вылічэнне вялікіх значэнняў Схема падзелу сакрэту Шаміра, Схема падзелу сакрэту Шаміра и Схема падзелу сакрэту Шаміра можа заняць некаторы час.

Крыніца: habr.com

Дадаць каментар