Å amira slepenā koplietoÅ”anas shēma

Apsveriet situāciju, kad jums ir nepiecieÅ”ams nodroÅ”ināt bankas glabātuvi. Tas tiek uzskatÄ«ts par absolÅ«ti neieņemamu bez atslēgas, kas jums tiek izsniegta jau pirmajā darba dienā. JÅ«su mērÄ·is ir droÅ”i uzglabāt atslēgu.

Pieņemsim, ka nolemjat vienmēr paturēt atslēgu sev lÄ«dzi, nodroÅ”inot piekļuvi krātuvei pēc vajadzÄ«bas. Taču jÅ«s ātri sapratÄ«sit, ka Ŕāds risinājums praksē neder, jo jÅ«su fiziskā klātbÅ«tne ir nepiecieÅ”ama ikreiz, kad atverat krātuvi. Kā ar jums apsolÄ«tajām brÄ«vdienām? Turklāt jautājums ir vēl biedējoŔāks: kā bÅ«tu, ja pazaudētu savu vienÄ«go atslēgu?

Domājot par atvaļinājumu, jÅ«s nolemjat izgatavot atslēgas kopiju un uzticēt to citam darbiniekam. Tomēr jÅ«s saprotat, ka arÄ« tas nav ideāli. DivkārÅ”ojot atslēgu skaitu, jÅ«s arÄ« dubultojat atslēgu zādzÄ«bas iespējas.

Izmisumā jÅ«s iznÄ«cināt dublikātu un nolemjat sadalÄ«t sākotnējo atslēgu uz pusēm. Tagad jÅ«s domājat, ka diviem uzticamiem cilvēkiem ar atslēgu fragmentiem ir jābÅ«t fiziski klāt, lai savāktu atslēgu un atvērtu glabātuvi. Tas nozÄ«mē, ka zaglim ir jānozag divi gabali, kas ir divreiz grÅ«tāk nekā vienas atslēgas nozagÅ”ana. Taču drÄ«z vien saproti, ka Ŕī shēma nav daudz labāka par vienu atslēgu, jo, ja kāds pazaudē pusi atslēgas, pilnu atslēgu nevar atgÅ«t.

Problēmu var atrisināt ar papildu atslēgu un slēdzeņu sēriju, taču Ŕī pieeja ātri prasÄ«s Š¼Š½Š¾Š³Š¾ atslēgas un slēdzenes. JÅ«s nolemjat, ka ideāls dizains bÅ«tu koplietot atslēgu, lai droŔība nebÅ«tu pilnÄ«bā atkarÄ«ga tikai no vienas personas. JÅ«s arÄ« secināt, ka ir jābÅ«t kādam fragmentu skaita slieksnim, lai, ja kāds fragments tiek pazaudēts (vai ja cilvēks dodas atvaļinājumā), visa atslēga paliktu funkcionāla.

Kā dalīties noslēpumā

Par Ŕāda veida atslēgu pārvaldÄ«bas shēmu Adi Å amirs domāja 1979. gadā, kad viņŔ publicēja savu darbu "Kā dalÄ«ties noslēpumā". Rakstā Ä«si izskaidrots t.s Å amira slepenā koplietoÅ”anas shēma sliekŔņa shēma slepenas vērtÄ«bas (piemēram, kriptogrāfiskās atslēgas) efektÄ«vai sadalÄ«Å”anai Å amira slepenā koplietoÅ”anas shēma daļas. Tad, kad un tikai tad, kad vismaz Å amira slepenā koplietoÅ”anas shēma no Å amira slepenā koplietoÅ”anas shēma daļas ir samontētas, jÅ«s varat viegli atjaunot noslēpumu Å amira slepenā koplietoÅ”anas shēma.

No droŔības viedokļa svarÄ«ga Ŕīs shēmas Ä«paŔība ir tāda, ka uzbrucējam nav jāzina pilnÄ«gi nekas, ja vien viņam nav vismaz Å amira slepenā koplietoÅ”anas shēma daļas. Pat klātbÅ«tne Å amira slepenā koplietoÅ”anas shēma daļām nevajadzētu sniegt nekādu informāciju. Mēs to saucam par Ä«paÅ”umu semantiskā droŔība.

Polinomu interpolācija

Å amira sliekŔņa shēma Å amira slepenā koplietoÅ”anas shēma veidota ap koncepciju polinoma interpolācija. Ja jÅ«s neesat pazÄ«stams ar Å”o koncepciju, tas patiesÄ«bā ir diezgan vienkārÅ”i. PatiesÄ«bā, ja jÅ«s kādreiz esat zÄ«mējis punktus grafikā un pēc tam savienojis tos ar lÄ«nijām vai lÄ«knēm, jÅ«s to jau esat izmantojis!

Å amira slepenā koplietoÅ”anas shēma
Caur diviem punktiem var uzzÄ«mēt neierobežotu skaitu 2. pakāpes polinomu. Lai no tiem izvēlētos vienÄ«go, nepiecieÅ”ams treÅ”ais punkts. Ilustrācija: Wikipedia

Apsveriet polinomu ar pirmo pakāpi, Å amira slepenā koplietoÅ”anas shēma. Ja vēlaties attēlot Å”o funkciju grafikā, cik punktu jums ir nepiecieÅ”ams? Mēs zinām, ka Ŕī ir lineāra funkcija, kas veido lÄ«niju, un tāpēc tai ir nepiecieÅ”ami vismaz divi punkti. Pēc tam apsveriet polinoma funkciju ar otro pakāpi, Å amira slepenā koplietoÅ”anas shēma. Å Ä« ir kvadrātiskā funkcija, tāpēc, lai izveidotu grafiku, ir nepiecieÅ”ami vismaz trÄ«s punkti. Kā bÅ«tu ar polinomu ar treÅ”o pakāpi? Vismaz četri punkti. Un tā tālāk un tā tālāk.

PatieŔām forÅ”s Å”ajā Ä«paÅ”umā ir tas, ka, ņemot vērā polinoma funkcijas pakāpi un vismaz Å amira slepenā koplietoÅ”anas shēma punktu, mēs varam iegÅ«t papildu punktus Å”ai polinoma funkcijai. Mēs saucam par Å”o papildu punktu ekstrapolāciju polinoma interpolācija.

Noslēpuma izdomāŔana

JÅ«s, iespējams, jau esat sapratis, ka tieÅ”i Å”eit parādās Å amira gudrā shēma. Teiksim savu noslēpumu Å amira slepenā koplietoÅ”anas shēma -Å o Å amira slepenā koplietoÅ”anas shēma. Mēs varam pagriezties Å amira slepenā koplietoÅ”anas shēma lÄ«dz punktam grafikā Å amira slepenā koplietoÅ”anas shēma un izdomāt polinoma funkciju ar pakāpi Å amira slepenā koplietoÅ”anas shēma, kas atbilst Å”im punktam. Atgādināsim jums to Å amira slepenā koplietoÅ”anas shēma bÅ«s mÅ«su nepiecieÅ”amo fragmentu slieksnis, tādēļ, ja mēs iestatām slieksni uz trim fragmentiem, mums jāizvēlas polinoma funkcija ar otro pakāpi.

MÅ«su polinomam bÅ«s forma Å amira slepenā koplietoÅ”anas shēmaKur Å amira slepenā koplietoÅ”anas shēma Šø Å amira slepenā koplietoÅ”anas shēma ā€” nejauÅ”i izvēlēti pozitÄ«vi veseli skaitļi. Mēs tikai konstruējam polinomu ar pakāpi Å amira slepenā koplietoÅ”anas shēma, kur brÄ«vais koeficients Å amira slepenā koplietoÅ”anas shēma ā€“ Tas ir mÅ«su noslēpums Å amira slepenā koplietoÅ”anas shēma, un katram nākamajam Å amira slepenā koplietoÅ”anas shēma terminos ir nejauÅ”i izvēlēts pozitÄ«vs koeficients. Ja atgriezÄ«simies pie sākotnējā piemēra un pieņemam, ka Å amira slepenā koplietoÅ”anas shēma, tad mēs iegÅ«stam funkciju Å amira slepenā koplietoÅ”anas shēma.

Å ajā brÄ«dÄ« mēs varam Ä£enerēt fragmentus, savienojot Å amira slepenā koplietoÅ”anas shēma unikāli veseli skaitļi Å amira slepenā koplietoÅ”anas shēmaKur Å amira slepenā koplietoÅ”anas shēma (jo tas ir mÅ«su noslēpums). Å ajā piemērā mēs vēlamies izplatÄ«t četrus fragmentus ar trÄ«s slieksni, tāpēc mēs nejauÅ”i Ä£enerējam punktus Å amira slepenā koplietoÅ”anas shēma un nosÅ«tiet vienu punktu katram no četriem uzticamiem cilvēkiem, atslēgas glabātājiem. Mēs arÄ« darām to zināmu cilvēkiem Å amira slepenā koplietoÅ”anas shēma, jo tā tiek uzskatÄ«ta par publisku informāciju un ir nepiecieÅ”ama atkopÅ”anai Å amira slepenā koplietoÅ”anas shēma.

Noslēpuma atgÅ«Å”ana

Mēs jau esam apsprieduÅ”i polinoma interpolācijas jēdzienu un to, kā tas ir Å amira sliekŔņa shēmas pamatā. Å amira slepenā koplietoÅ”anas shēma. Kad kādi trÄ«s no četriem pilnvarotajiem vēlas atjaunot Å amira slepenā koplietoÅ”anas shēma, viņiem ir tikai jāinterpolē Å amira slepenā koplietoÅ”anas shēma ar saviem unikālajiem punktiem. Lai to izdarÄ«tu, viņi var noteikt savus punktus Å amira slepenā koplietoÅ”anas shēma un aprēķiniet Lagranža interpolācijas polinomu, izmantojot Ŕādu formulu. Ja programmÄ“Å”ana jums ir skaidrāka nekā matemātika, tad pi bÅ«tÄ«bā ir operators for, kas reizina visus rezultātus, un sigma ir for, kas visu saskaita.

Å amira slepenā koplietoÅ”anas shēma

Å amira slepenā koplietoÅ”anas shēma

Pie Å amira slepenā koplietoÅ”anas shēma mēs varam to atrisināt Ŕādi un atgriezt savu sākotnējo polinoma funkciju:

Å amira slepenā koplietoÅ”anas shēma

Jo mēs to zinām Å amira slepenā koplietoÅ”anas shēma, atveseļoÅ”anās Å amira slepenā koplietoÅ”anas shēma darÄ«ts vienkārÅ”i:

Å amira slepenā koplietoÅ”anas shēma

NedroÅ”as veselu skaitļu aritmētikas izmantoÅ”ana

Lai gan esam veiksmÄ«gi pielietojuÅ”i Å amira pamatideju Å amira slepenā koplietoÅ”anas shēma, mums ir radusies problēma, kuru lÄ«dz Å”im esam ignorējuÅ”i. MÅ«su polinoma funkcija izmanto nedroÅ”u veselu skaitļu aritmētiku. Ņemiet vērā, ka katram papildu punktam, ko uzbrucējs iegÅ«st mÅ«su funkcijas grafikā, citiem punktiem ir mazāk iespēju. To var redzēt savām acÄ«m, kad, izmantojot veselu skaitļu aritmētiku, uzzÄ«mējat arvien lielāku punktu skaitu polinoma funkcijai. Tas ir neproduktÄ«vs mÅ«su izvirzÄ«tajam droŔības mērÄ·im, jo ā€‹ā€‹uzbrucējam nevajadzētu zināt pilnÄ«gi neko, kamēr viņam tas ir vismaz Å amira slepenā koplietoÅ”anas shēma fragmenti.

Lai parādÄ«tu, cik vāja ir veselo skaitļu aritmētiskā ķēde, apsveriet scenāriju, kurā uzbrucējs ieguva divus punktus Å amira slepenā koplietoÅ”anas shēma un zina publisko informāciju, ka Å amira slepenā koplietoÅ”anas shēma. No Ŕīs informācijas viņŔ var secināt Å amira slepenā koplietoÅ”anas shēma, vienāds ar diviem, un pievienojiet zināmās vērtÄ«bas formulā Å amira slepenā koplietoÅ”anas shēma Šø Å amira slepenā koplietoÅ”anas shēma.

Å amira slepenā koplietoÅ”anas shēma

Pēc tam uzbrucējs var atrast Å amira slepenā koplietoÅ”anas shēma, skaitot Å amira slepenā koplietoÅ”anas shēma:

Å amira slepenā koplietoÅ”anas shēma

Tā kā mēs esam definējuÅ”i Å amira slepenā koplietoÅ”anas shēma kā nejauÅ”i atlasÄ«ti pozitÄ«vi veseli skaitļi, ir ierobežots skaits iespējamo Å amira slepenā koplietoÅ”anas shēma. Izmantojot Å”o informāciju, uzbrucējs var secināt Å amira slepenā koplietoÅ”anas shēma, jo derēs viss, kas lielāks par 5 Å amira slepenā koplietoÅ”anas shēma negatÄ«vs. Tas izrādās taisnÄ«ba, jo mēs esam noteikuÅ”i Å amira slepenā koplietoÅ”anas shēma

Pēc tam uzbrucējs var aprēķināt iespējamās vērtÄ«bas Å amira slepenā koplietoÅ”anas shēmaaizstājot Å amira slepenā koplietoÅ”anas shēma Š² Å amira slepenā koplietoÅ”anas shēma:

Å amira slepenā koplietoÅ”anas shēma

Ar ierobežotām iespējām priekÅ” Å amira slepenā koplietoÅ”anas shēma kļūst skaidrs, cik viegli ir izvēlēties un pārbaudÄ«t vērtÄ«bas Å amira slepenā koplietoÅ”anas shēma. Å eit ir tikai piecas iespējas.

Uzdevuma atrisināŔana ar nedroÅ”u veselu skaitļu aritmētiku

Lai novērstu Å”o ievainojamÄ«bu, Å amirs iesaka izmantot modulāro aritmētiku, aizstājot Å amira slepenā koplietoÅ”anas shēma par Å amira slepenā koplietoÅ”anas shēmaKur Å amira slepenā koplietoÅ”anas shēma Šø Å amira slepenā koplietoÅ”anas shēma ā€” visu pirmskaitļu kopa.

Ātri atcerēsimies, kā darbojas modulārā aritmētika. Pulkstenis ar rādÄ«jumiem ir pazÄ«stams jēdziens. Viņa izmanto pulksteni, kas ir Å amira slepenā koplietoÅ”anas shēma. TiklÄ«dz stundu rādÄ«tājs paiet divpadsmit, tas atgriežas pie viena. Interesanta Ŕīs sistēmas Ä«paŔība ir tāda, ka, vienkārÅ”i skatoties pulkstenÄ«, mēs nevaram izsecināt, cik apgriezienus ir veikusi stundu rādÄ«tājs. Tomēr, ja mēs zinām, ka stundu rādÄ«tājs ir pagājis 12 četras reizes, mēs varam pilnÄ«bā noteikt pagājuÅ”o stundu skaitu, izmantojot vienkārÅ”u formulu Å amira slepenā koplietoÅ”anas shēmaKur Å amira slepenā koplietoÅ”anas shēma ir mÅ«su dalÄ«tājs (Å”eit Å amira slepenā koplietoÅ”anas shēma), Å amira slepenā koplietoÅ”anas shēma ir koeficients (cik reizes dalÄ«tājs ieiet sākotnējā skaitļā bez atlikuma, Å”eit Å amira slepenā koplietoÅ”anas shēma) un Å amira slepenā koplietoÅ”anas shēma ir atlikums, kas parasti atgriež modulo operatora zvanu (Å”eit Å amira slepenā koplietoÅ”anas shēma). Zinot visas Ŕīs vērtÄ«bas, mēs varam atrisināt vienādojumu par Å amira slepenā koplietoÅ”anas shēma, bet, ja mēs palaidÄ«sim garām koeficientu, mēs nekad nevarēsim atjaunot sākotnējo vērtÄ«bu.

Mēs varam parādÄ«t, kā tas uzlabo mÅ«su shēmas droŔību, piemērojot shēmu mÅ«su iepriekŔējā piemērā un izmantojot Å amira slepenā koplietoÅ”anas shēma. MÅ«su jaunā polinoma funkcija Å amira slepenā koplietoÅ”anas shēma, un jaunie punkti Å amira slepenā koplietoÅ”anas shēma. Tagad atslēgu turētāji atkal var izmantot polinoma interpolāciju, lai rekonstruētu mÅ«su funkciju, tikai Å”oreiz saskaitÄ«Å”anas un reizināŔanas operācijām ir jāpievieno modulo samazināŔana Å amira slepenā koplietoÅ”anas shēma (piemēram, Å amira slepenā koplietoÅ”anas shēma).

Izmantojot Å”o jauno piemēru, pieņemsim, ka uzbrucējs uzzināja divus no Å”iem jaunajiem punktiem, Å amira slepenā koplietoÅ”anas shēmaun publisko informāciju Å amira slepenā koplietoÅ”anas shēma. Å oreiz uzbrucējs, pamatojoties uz visu viņa rÄ«cÄ«bā esoÅ”o informāciju, izvada Ŕādas funkcijas, kur Å amira slepenā koplietoÅ”anas shēma ir visu pozitÄ«vo veselo skaitļu kopa un Å amira slepenā koplietoÅ”anas shēma apzÄ«mē moduļa koeficientu Å amira slepenā koplietoÅ”anas shēma.

Å amira slepenā koplietoÅ”anas shēma

Tagad mÅ«su uzbrucējs atrod vēlreiz Å amira slepenā koplietoÅ”anas shēma, aprēķinot Å amira slepenā koplietoÅ”anas shēma:

Å amira slepenā koplietoÅ”anas shēma

Tad viņŔ mēģina vēlreiz Å amira slepenā koplietoÅ”anas shēmaaizstājot Å amira slepenā koplietoÅ”anas shēma Š² Å amira slepenā koplietoÅ”anas shēma:

Å amira slepenā koplietoÅ”anas shēma

Å oreiz viņam ir nopietna problēma. Formulā trÅ«kst vērtÄ«bu Å amira slepenā koplietoÅ”anas shēma, Å amira slepenā koplietoÅ”anas shēma Šø Å amira slepenā koplietoÅ”anas shēma. Tā kā ir bezgalÄ«gi daudz Å”o mainÄ«go kombināciju, viņŔ nevar iegÅ«t papildu informāciju.

DroŔības apsvērumi

Å amira slepenā koplietoÅ”anas shēma liecina droŔība no informācijas teorijas viedokļa. Tas nozÄ«mē, ka matemātika ir izturÄ«ga pat pret uzbrucēju ar neierobežotu skaitļoÅ”anas jaudu. Tomēr ķēdē joprojām ir vairākas zināmas problēmas.

Piemēram, Å amira shēma nerada fragmenti, kas jāpārbauda, tas ir, cilvēki var brÄ«vi uzrādÄ«t viltotus fragmentus un traucēt atgÅ«t pareizo noslēpumu. NaidÄ«gs fragmentu glabātājs ar pietiekamu informāciju var pat radÄ«t citu fragmentu, mainoties Å amira slepenā koplietoÅ”anas shēma pēc saviem ieskatiem. Å Ä« problēma tiek atrisināta, izmantojot pārbaudāmas slepenās koplietoÅ”anas shēmas, piemēram, Feldmana shēma.

Vēl viena problēma ir tāda, ka jebkura fragmenta garums ir vienāds ar atbilstoŔā noslēpuma garumu, tāpēc noslēpuma garumu ir viegli noteikt. Å o problēmu var atrisināt triviāli polsterējums noslēpums ar patvaļīgiem cipariem lÄ«dz noteiktam garumam.

Visbeidzot, ir svarÄ«gi atzÄ«mēt, ka mÅ«su bažas par droŔību var pārsniegt paÅ”u dizainu. Reālās pasaules kriptogrāfijas lietojumprogrammām bieži vien pastāv sānu kanālu uzbrukumu draudi, kad uzbrucējs mēģina iegÅ«t noderÄ«gu informāciju no lietojumprogrammas izpildes laika, keÅ”atmiņas, avārijām utt. Ja tas rada bažas, izstrādes laikā rÅ«pÄ«gi jāapsver, vai izmantot aizsardzÄ«bas pasākumus, piemēram, funkcijas un pastāvÄ«ga laika uzmeklÄ“Å”anu, nepieļaut atmiņas saglabāŔanu diskā un vairākus citus apsvērumus, kas neietilpst Ŕī raksta darbÄ«bas jomā.

Demo

uz Ŕī lapa Ir interaktÄ«va Å amira slepenās koplietoÅ”anas shēmas demonstrācija. Demonstrācija, pamatojoties uz bibliotēku ssss-js, kas pati par sevi ir populārās programmas JavaScript ports SSS. Ņemiet vērā, ka lielu vērtÄ«bu aprēķināŔana Å amira slepenā koplietoÅ”anas shēma, Å amira slepenā koplietoÅ”anas shēma Šø Å amira slepenā koplietoÅ”anas shēma var paiet kāds laiks.

Avots: www.habr.com

Pievieno komentāru