Termins noslēpuma sadalīšana apzīmē procedūras, ar kuru palīdzību kāds slepens vērtības elements (piemēram, kriptogrāfiska atslēga, parole vai dokuments) tiek sadalīts vairākās daļās tā, ka katra persona saņem tikai daļu no noslēpuma. Tikai apvienojot noteiktu daļu saņēmēju iegūtās daļas, iespējams atjaunot oriģinālo noslēpumu; viena personas daļa pati par sevi ir nepietiekama. Šo ideju 1979. gadā neatkarīgi viens no otra formulēja Adi Šamirs un Džordžs Bleiklijs.
Kas ir sliekšņa (threshold) shēma?
Visizplatītākais noslēpumu sadalīšanas veids ir t-of-n sliekšņa shēma: noslēpums tiek sadalīts starp n dalībniekiem tā, ka jebkuras t daļas (t ≤ n) ļauj atjaunot noslēpumu, bet jebkuras mazāk nekā t daļas nedod nekādu informāciju par noslēpumu. Šāda shēma nodrošina elastību un drošību — pat ja tiek pazaudētas vai noplūst dažas daļas, noslēpums nav apdraudēts, ja nav sasniegts slieksnis t.
Šamira metode (Shamir's Secret Sharing)
Šamira noslēpumu sadalīšana ir viena no visplašāk izmantotajām t-of-n shēmām. Tā balstās uz polinomu interpolāciju galīgā laukā (finītā lauka matemātika). Galvenie principi:
- Noslēpumu S interpretē kā polinoma konstanti (sākotnējo koeficientu).
- Izvēlas nejaušu polinomu ar pakāpi t−1, kura konstante ir S.
- Aprēķina šī polinoma vērtības pie n dažādiem punktiem (parasti x = 1, 2, …, n). Katra no šīm vērtībām ir viena daļa (share).
- Lai atjaunotu S, nepieciešamas jebkuras t daļas — tās tiek apvienotas, izmantojot interpolāciju (piemēram, Lagrange interpolāciju), lai atjaunotu sākotnējo polinomu un tā konstanti S.
Šira metode ir informācijas teorētiski droša: zinot mazāk nekā t daļas, iegūtā informācija par S ir nulle (pie nosacījuma, ka polinoms ir pareizi ģenerēts un tiek izmantots piemērots galīgais lauks). Lai nodrošinātu drošību praktiskos pielietojumos, jāizvēlas lauks (piemēram, liels prāms cipars vai GF(2^k)) un jāizmanto drošs nejaušības avots polinoma koeficientiem.
Bleiklija pieeja un citi risinājumi
Džordžs Bleiklijs 1979. gadā piedāvāja alternatīvu ģeometrisku pieeju, kur katra daļa ir hiperslāņa (hyerplane) apraksts un noslēpums ir šo slāņu krustošanās punkts. Lai gan principiāli atšķirīga, mērķis ir līdzīgs — nepieciešamā daļu kombinācija ļauj atrast vienīgo krustpunkta koordinātu (noslēpumu).
Ir arī citas noslēpumu sadalīšanas metodes, piemēram, vienkāršā aditīvā sadalīšana (kur noslēpums S tiek sadalīts kā S = s1 + s2 + … + sn mod M), un sarežģītākas shēmas ar papildu īpašībām: verifikējama noslēpumu sadalīšana (VSS), proaktīvā atjaunošana (share refresh), un decentralizētas (dealerless) shēmas.
Drošības un praktiski apsvērumi
- Izmantojiet lielu galīgo lauku vai pietiekami garu bitu garumu, lai novērstu bruteforce uzbrukumus.
- Jānodrošina, ka nejaušie koeficienti tiek ģenerēti ar kvalitatīvu nejaušību.
- Verifikējama shēma (VSS) palīdz novērst ļaunprātīgu izplatītāju (dealer), kurš varētu izdalīt nederīgas daļas.
- Proaktīvās shēmas ļauj periodiski atsvaidzināt daļas bez noslēpuma atkārtotas izcelšanas, tādējādi aizsargājot pret ilgtermiņa daļu noplūdi.
- Fiziska un droša daļu uzglabāšana, autentifikācija un atgūšanas procedūras ir būtiskas praksē.
Pielietojumi
Noslēpumu sadalīšanu izmanto daudzās jomās, kur nepieciešama augsta aizsardzība un sadalīta atbildība:
- Kriptogrāfisko atslēgu rezerves kopijas un izplatīšana (piemēram, privāto atslēgu droša glabāšana vai atjaunošana).
- Sliekšņa paraksti (threshold signatures) — ļauj vairākām pusēm kolektīvi parakstīt bez visas atslēgas centralizētas glabāšanas.
- Bankas, korporatīva pieejas kontrole un drošības procedūras, kur lēmumam jāpiekrīt vairākiem dalībniekiem.
- Distribūtas sertifikātu glabātavas un drošības iestādes (piem., daļējas CA atslēgas).
- Blokķēžu sistēmas un kriptovalūtas, kur nepieciešama kopīga atbildība par līdzekļu izlietošanu.
- Droša daudzpusēja aprēķināšana (MPC), biometrisko datu uzglabāšana un piekļuves glābšanas mehānismi.
Viens no piemēriem, kur tiek izmantota noslēpuma koplietošana, ir RSA kriptosistēma. Tā izmanto slepeno atslēgu. Ja šī atslēga tiek sadalīta starp daudziem cilvēkiem, neviena persona nevar veikt parakstu. Pat ja viena cilvēka daļa tiek atklāta vai pazaudēta, vairāki no viņiem joprojām var veikt parakstu. To bieži izmanto jomās, kur drošība ir ļoti svarīga, piemēram, bankās vai armijā.
Vienkāršs piemērs (idejas līmenī)
Iedomāsimies, ka noslēpums S ir skaitlis. Izvēlamies slieksni t = 3 un n = 5. Izveidojam nejaušu polinomu pakāpes 2 (t−1 = 2): P(x) = S + a1·x + a2·x^2. Aprēķinām P(1), P(2), …, P(5) un izdalām šīs vērtības pieciem spēlētājiem. Lai atjaunotu S, nepieciešamas jebkuras trīs daļas — ar tām atjaunojot polinomu, iegūstam P(0) = S.
Secinājums
Noslēpumu sadalīšana ir spēcīgs instruments drošības un piekļuves pārvaldībā, kas nodrošina gan elastību, gan aizsardzību pret atsevišķu dalībnieku kompromitāciju. Šamira metode ir vienkārša, efektīva un informācijas teorētiski droša viena no populārākajām realizācijām, bet praktiskos risinājumos bieži izmanto papildu mehānismus (VSS, proaktīvā atjaunošana u.c.), lai tiktu galā ar reālajiem apdraudējumiem un ļaunprātīgu rīcību.
Pastāv dažādas drošas noslēpumu koplietošanas metodes, un izvēle starp tām atkarīga no konkrētajām drošības prasībām, infrastruktūras un operacionālajiem ierobežojumiem.
Dīleris nodod katram spēlētājam viņa noslēpuma daļu. Vieglākos gadījumos spēlētāju daļas var apvienot, lai izveidotu noslēpumu, bet katrai daļai ir papildu informācija. Teiksim, ka noslēpumam ir vajadzīgas piecas daļas, un trīs daļas ir zināmas. Šādā uzstādījumā uzminēt divas trūkstošās daļas būs vieglāk nekā uzminēt noslēpumu, ja nav zināmas neviena daļa. Citu uzstādījumu uzskata par drošu no informācijas teorijas viedokļa, jo, zinot daļu no vajadzīgā spēlētāju daļu skaita, nemainīsies tas, cik grūti ir uzminēt noslēpumu.