Кіріспе

Құпияны бірнеше тараптың оны қалпына келтіру үшін бірлесіп жұмыс істеуін қажет ететін тәсіл, барлық қатысушыларға құпияның толығымен белгілі болған жағдайларда. Құпияны бөлісу (немесе құпияны бөлу) – бұл құпияны топ арасында тарату әдістері, онда ешбір жеке тұлға құпия туралы түсінікті ақпаратқа ие болмайды, бірақ жеткілікті мөлшердегі тұлғалар өз үлестерін біріктіргенде құпияны қайта құру мүмкін болады. Қауіпсіз емес құпияны бөлісуде шабуылшы әрбір үлес арқылы көбірек ақпарат ала алады, ал қауіпсіз құпияны бөлісу «барлығы немесе ештеңе» принципіне негізделген (мұндағы «барлығы» – қажетті үлестер саны). Бір түріндегі құпияны бөлісу схемасында бір дилер және n ойыншы болады. Дилер ойыншыларға құпияның үлесін береді, бірақ ойыншылар өз үлестерінен құпияны қалпына келтіре алатыны белгілі бір шарттар орындалғанда ғана мүмкін. Дилер бұл шартты әр ойыншыға үлес беру арқылы қамтамасыз етеді, сонда t (шешімнің саны) немесе одан көп ойыншының кез келген тобы құпияны бірлесіп қайта құра алады, бірақ t-дан аз ойыншыдан тұратын топ мұны істей алмайды. Мұндай жүйе (t, n) шектік схемасы деп аталады (кейде (n, t) шектік схемасы түрінде де жазылады). Құпияны бөлісуді 1979 жылы Ади Шамир және Джордж Блэкли тәуелсіз түрде ойлап тапты.

Маңыздылық

Құпия бөлісу схемалары өте құпия және маңызды ақпаратты сақтауға өте ыңғайлы. Мысалдар: шифрлау кілттері, зымырандарды ұшыру кодтары және нөмірленген банк шоттары. Осы ақпараттың әрқайсысы жоғары құпиялылықта сақталуы керек, себебі олардың жария болуы катастрофалық салдарға әкелуі мүмкін; алайда, олардың жоғалмауы да өте маңызды. Шифрлаудың дәстүрлі әдістері жоғары құпиялылық пен сенімділікті бірдей қамтамасыз етуге қолайлы емес. Себебі шифрлау кілтін сақтағанда, максималды құпиялылық үшін кілттің бір ғана көшірмесін бір жерде сақтау немесе сенімділікті арттыру үшін кілттің бірнеше көшірмесін әртүрлі жерлерде сақтау арасында таңдау жасау қажет. Кілттің бірнеше көшірмесін сақтау арқылы сенімділікті арттыру құпиялылықты төмендетеді, өйткені шабуыл жасау мүмкіндіктері көбейеді; көшірме дұрыс қолға түсу ықтималдығы артады. Құпия бөлісу схемалары осы мәселені шешеді және кез келген деңгейдегі құпиялылық пен сенімділікті қамтамасыз етуге мүмкіндік береді. Құпия бөлісу сонымен қатар құпияны таратушыға топқа «жинақтап» сенуге мүмкіндік береді. Дәстүрлі түрде, құпияны топқа сақтау үшін таратушы топтың барлық мүшелеріне толық сенім білдіруі керек. Құпия бөлісу схемалары таратушыға топпен құпияны қауіпсіз сақтауға мүмкіндік береді, тіпті барлық мүшелерге әрдайым сенуге болмаса да. Сатқындардың саны құпияны қайта құру үшін қажетті шекті сандан аспаса, құпия қауіпсіз болады. Құпия бөлісу схемалары бұлттық есептеу орталарында маңызды. Осылайша, кілтті көптеген серверлерге шекті құпия бөлісу механизмі арқылы таратуға болады. Кілт қажет болған кезде қайта құралады. Құпия бөлісу сенсорлық желілер үшін де ұсынылған, онда байланыстар тыңдалуы мүмкін, деректерді бөліктерге бөліп жіберу арқылы тыңдаушының жұмысын қиындатуға болады. Мұндай ортадағы қауіпсіздікті бөліктерді құру тәсілін үнемі өзгерту арқылы арттыруға болады.

"Қауіпсіз" және "қауіпсіз" құпияларды бөлісу

Құпияны бөлісудің қауіпсіз схемасы үлестерді осылай таратады, яғни t-дан аз үлесі бар адам 0 үлесі бар адамнан құпия туралы артық ақпарат алмайды. Мысалы, құпия сөз тіркесі "password" дегені "pa––––––", "––ss––––", "––––wo––" және "––––––rd" үлестеріне бөлінетін құпия бөлісу схемасын қарастырайық. 0 үлесі бар адам парольдің сегіз әріптен тұратындығын ғана біледі, демек 268 = 208 миллиард мүмкін комбинациядан парольді табуға тырысуы керек. Бірақ бір үлесі бар адам 266 = 308 миллион комбинациядан тек алты әріпті ғана табуға тырысуы керек, және осылай, көбірек адамдар біріксе, оңайырақ болады. Осы себепті, бұл жүйе "қауіпсіз" құпияны бөлісу схемасы емес, себебі t-дан аз құпия үлесі бар адам, барлық қажетті үлестерді алудың қажеті болмай, ішкі құпияны табу мәселесін жеңілдете алады. Керісінше, X – бөлісуге тиіс құпия, Pi – ашық асимметриялық шифрлау кілті, ал Qi – оларға сәйкес жеке кілт болып табылатын құпия бөлісу схемасын қарастырайық. Әрбір ойыншы J {P1(P2( (PN(X)))), Qj} жиынымен қамтамасыз етіледі. Бұл схемада, 1 жеке кілті бар кез келген ойыншы шифрлаудың сыртқы қабатын жоюға, 1 және 2 кілті бар ойыншы бірінші және екінші қабаттарды жоюға және т.б. қабілетті. N-ден аз кілті бар ойыншы, жеке кілті жоқ шифрланған ашық кілт блогын шифрлау қажеттілігі болмай, құпия X-қа толық жете алмайды – бұл қазіргі уақытта есептеу жүйесімен шешілмейтін мәселе деп есептеледі. Сонымен қатар, егер пайдаланушыда барлық N жеке кілт болса, ол барлық сыртқы қабаттарды шифрлап, X құпиясын ала алады, демек бұл жүйе – қауіпсіз құпия тарату жүйесі болып табылады.

t = 1

t = 1 құпияны бөлісу өте оңай. Құпияны барлық n қатысушыға тікелей таратуға болады.

1 < t < n

Қиындық әлі де қауіпсіз болып қалатын, бірақ барлық n үлестерін қажет етпейтін схемаларды құруда. Егер жадты үнемдеу маңызды болмаса, тривиальды 1=t = n схемаларын пайдаланып, кез келген қажетті ойыншылар тобына құпияны ашуға болады, әр топ үшін схеманы қолдану арқылы. Мысалы, үш ойыншы – Алиса, Боб және Кэролдың кез келген екеуіне құпия s-ты ашу үшін, s үшін үш түрлі 1=t = n = 2 құпия үлесін жасап, екі үлестен үш жиынтықты Алиса мен Бобқа, Алиса мен Кэролға және Боб пен Кэролға беруге болады.

t {1, 2, ..., n} кез келген қажетті қосалқы жиынтығына жататын

Мысалы, бір компанияның директорлар кеңесі өзінің құпия формуласын қорғағысы келеді делік. Компания президенті қажет болған кезде формулаға қол жеткізе алады, бірақ төтенше жағдайда 12 директорлар кеңесінің кез келген 3 мүшесі бірлесіп құпия формуланың кілтін аша алады. Мұны жүзеге асырудың бір жолы – 1=t = 3 және 1=n = 12 болатын құпия бөлісу схемасын қолдану, онда 3 үлес президентке беріледі, ал әрбір директор кеңесінің мүшесіне бір үлес беріледі.

Құпияны тиімді бөлісу

Көзге түспейтін тәсіл, кіші топтардың саны артқан сайын жылдам түрде қолдануға келмейтін болады. Мысалы, 100 ойыншының ішінде кез келген 50-іне құпияны ашу үшін схемалар жасау қажет болады, және әр ойыншы әр схема үшін бөлек акциялар жиынтығын сақтауы тиіс. Ең жаман жағдайда, өсім экспоненциалды болады. Осы себепті, құпияларды белгілі бір сандағы ойыншылармен тиімді бөлісуге мүмкіндік беретін схемаларды іздеуге ұшырадық.

Шамирдің жоспары

Бұл схемада құпияны қалпына келтіру үшін n үлестің кез келген t-сі қолданылуы мүмкін. Жүйе, t-1 дәрежелі бірегей көпмүшелікке (полиномиалға) жататын кез келген t нүктенің жиынтығына сәйкес келетін идеяға негізделген. Түзу сызықты анықтау үшін екі нүкте, квадратты толық анықтау үшін үш нүкте, кубтық қисықты анықтау үшін төрт нүкте және т.б. қажет. Яғни, t-1 дәрежелі көпмүшелікті анықтау үшін t нүкте керек. Әдіс, құпияны бірінші коэффициент ретінде және қалған коэффициенттерді кездейсоқ таңдап, t-1 дәрежелі көпмүшелік құрудан тұрады. Содан кейін қисықта n нүкте тауып, әр ойыншыға бір-бірден беріледі. Егер n ойыншының кем дегенде t-і өздерінің нүктелерін ашса, оларға (t-1)-ші дәрежелі көпмүшелікке сәйкес келетін жеткілікті ақпарат болады, ал бірінші коэффициент – құпия болады.

Блэклидің схемасы

Бір жазықтықтағы екі параллель емес түзу дәл бір нүктеде қиылысады. Кеңістіктегі үш параллель емес жазықтық дәл бір нүктеде қиылысады. Жалпы алғанда, кез келген n параллель емес (n − 1) өлшемді гипержазықтар белгілі бір нүктеде қиылысады. Құпия қиылысу нүктесінің кез келген координатасы ретінде шифрлануы мүмкін. Егер құпия барлық координаталарды пайдаланып шифрланған болса, тіпті олар кездейсоқ болса да, ішкі тұлға (бір немесе бірнеше (n - 1) өлшемді гипержазықтарды иеленетін адам) құпия туралы ақпарат алады, өйткені ол оның өзінің жазықтығында жатқанын біледі. Егер ішкі тұлға сыртқы адамнан артық білім ала алса, онда жүйеде ақпараттық қауіпсіздік болмайды. Егер n координатаның тек біреуі қолданылса, онда ішкі тұлға сыртқы адамнан артық білмейді (яғни, құпия 2 өлшемді жүйе үшін x осінде болуы керек). Әр ойыншыға гипержазықты анықтау үшін жеткілікті ақпарат беріледі; құпия жазықтықтардың қиылысу нүктесін есептеу және содан кейін осы қиылыстың белгілі бір координатын алу арқылы қалпына келтіріледі. Блэклидің үш өлшемді схемасы: әр үлес – жазықтық, ал құпия – үш үлестің қиылысатын нүктесі. Екі үлес құпияны анықтау үшін жеткіліксіз, бірақ олар екі жазықтықтың қиылысатын түзуіне дейін шектеу үшін жеткілікті ақпарат береді. Блэклидің схемасы Шамирдің схемасына қарағанда кеңістікті тиімсіз пайдаланады; Шамирдің үлестері бастапқы құпия сияқты ғана болса, Блэклидің үлестері t есе үлкен, мұнда t – ойыншылардың шекті саны. Блэклидің схемасын, үлестер ретінде қолданылатын жазықтықтарға шектеулер қосу арқылы күшейтуге болады. Нәтижесінде алынған схема Шамирдің көпмүшелік жүйесімен тең.

Қытайдың қалдық теоремасын қолдану

Қытайдың қалдық теоремасы құпия бөлісуде де қолданылады, себебі ол бізге k бір-бірімен өзара жай сандар модулі бойынша S санын бірегей анықтауға мүмкіндік береді. Меньотттың және Асмут-Блумның схемалары – осы теореманы пайдаланатын екі құпия бөлісу схемасы. Бұл шекті құпия бөлісу схемалары, онда үлестер бүтін сандарды модуль бойынша азайту арқылы жасалады, ал құпия қытайлық қалдық теоремасын қолданып, конгруенциялар жүйесін шешу арқылы қалпына келтіріледі.

Құпияны белсенді түрде бөлісу

Егер ойыншылар өз үлестерін қауіпсіз емес компьютерлік серверлерде сақтаса, шабуылшы кіріп, үлестерді ұрлап алуы мүмкін. Егер құпияны өзгерту қиын болса, бұзылмаған (Шамир стиліндегі) үлестерді жаңаруға болады. Дилер тұрақты мүшесі нөлге тең болатын жаңа кездейсоқ көпмүшелік құрайды және қалған әр ойыншы үшін жаңа реттелген жұпты есептейді, онда ескі және жаңа жұптардың x-координаттары бірдей болады. Содан кейін әр ойыншы ескі және жаңа y-координаттарын қосып, нәтижені құпияның жаңа y-координаты ретінде сақтайды. Шабуылшы жинаған барлық жаңартылмаған үлестері қолданыссыз болып қалады. Шабуылшы құпияны тек қана шекті деңгейге жету үшін жеткілікті басқа жаңартылмаған үлестерді таба алса ғана қайта құра алады. Ойыншылар ескі үлестерін жойғандықтан, мұндай жағдай болмауы керек. Сонымен қатар, шабуылшы жаңарту файлдарынан бастапқы құпия туралы ешқандай ақпаратты қайта құра алмайды, себебі оларда тек кездейсоқ ақпарат бар. Дилер жаңартуларды тарата отырып, шекті санды өзгерте алады, бірақ ойыншылардың мерзімі өткен үлестерді сақтап қалмауына үнемі назар салуы керек.

Тексерілетін құпияны ортаға салу

Ойыншы басқа ойыншылардың үлестеріне қол жеткізу үшін өзінің үлесі туралы жалған мәлімдеме жасауы мүмкін. Тексерілетін құпия бөлісу (VSS) схемасы ойыншыларға басқа ойыншылардың үлестерінің мазмұны туралы жалған айтпағанына белгілі бір дәрежеде сенімді болуға мүмкіндік береді. Мұндай схемаларды дәстүрлі тәсілмен есептеу мүмкін емес; ойыншылар ешкім нақты не қосылып не көбейтіліп жатқанын білмей, сандарды бірлесіп қосу және көбейтуі керек. Тал Рабин мен Майкл Бен Ор ойыншыларға дилердің немесе шекті сандығы ойыншылардың үштен бір бөлігіне дейінгілердің адалдығын анықтауға мүмкіндік беретін көп тарапты есептеу (MPC) жүйесін жасады, тіпті егер бұл ойыншылар нақты ақпаратқа байланысты стратегияларын нақты уақыт режимінде өзгерте алатын "бейімделмелі" шабуылшымен келісімде болса да.

Есептеулік жағынан қауіпсіз құпияны ортақтастыру

Шартсыз қауіпсіз құпия бөлісу схемаларының кемшілігі – акцияларды сақтау және тарату үшін, құпияның мөлшері мен акциялар санына тең сақтау және өткізу қабілеті ресурстары қажеттігінде. Егер құпияның мөлшері маңызды болса, мысалы, 1 ГБ, ал акциялар саны 10 болса, акционерлер 10 ГБ дерек сақтауға тиіс. Құпия бөлісу схемаларының тиімділігін арттыру үшін, шартсыз қауіпсіздік талабынан бас тартатын балама әдістер ұсынылған. Осы әдістердің бірі, «қысқаша құпия бөлісу» деп аталады, ол Рабиннің ақпарат тарату алгоритмін (IDA) және Шамирдің құпия бөлісуін біріктіреді. Алдымен деректер симметриялық шифрлау алгоритмін қолдана отырып, кездейсоқ құрылған кілтпен шифрланады. Содан кейін бұл деректер Рабиннің IDA-сын қолдана отырып N бөлікке бөлінеді. Бұл IDA, құпия бөлісу схемаларындағыдай, шегімен конфигурацияланады, бірақ құпия бөлісу схемаларынан өзгеше, нәтижедегі деректердің көлемі (фрагменттер саны / шегі) есебімен өседі. Мысалы, егер шегі 10 болса және IDA жасаған фрагменттер саны 15 болса, барлық фрагменттердің жалпы көлемі (15/10), яғни бастапқы кірістің 1,5 есесіне тең болады. Бұл жағдайда, бұл схема Шамирдің схемасы тікелей деректерге қолданылғаннан 10 есе тиімді. «Қысқаша құпия бөлісу» схемасының соңғы қадамы – Shamir құпия бөлісуін пайдаланып, кездейсоқ құрылған симметриялық кілттің (әдетте 16–32 байт) үлестерін жасау, содан кейін әрбір акционерге бір үлес және бір фрагмент беру. Байланысты тәсіл, AONT RS деп аталады, IDA-ға дейінгі өңдеу қадамы ретінде деректерге «барлығы немесе ештеңе» түрлендіруін қолданады. «Барлығы немесе ештеңе» түрлендіруі, шегінен аз үлестердің деректерді шифрлау үшін жеткіліксіз екенін қамтамасыз етеді.

Басқа пайдаланулар мен қолданулар

Құпияны бөлісу схемасы бірнеше сервер арқылы құпияны қамтамасыз ете алады және бірнеше сервердің істен шығуына қарамастан, оны қалпына келтіруге мүмкіндік береді. Дилер бірнеше жеке қатысушы рөлінде әрекет ете алады, үлестерді қатысушылар арасында бөліп таратады. Әрбір үлес әртүрлі серверде сақталуы мүмкін, бірақ дилер кем дегенде t үлесті қалпына келтіре алса, бірнеше сервер бұзылған жағдайда да құпияны қалпына келтіре алады; алайда, егер әр серверде t үлестен кем сақталса, бір серверге бұзып кірген шабуылшылар құпияны білмейді. Бұл Вашингтон университетіндегі Vanish компьютерлік жобасының негізгі принциптерінің бірі, онда деректерді шифрлау үшін кездейсоқ кілт қолданылады және кілт P2P желісіндегі бірнеше түйіндерге құпия ретінде таратылады. Хабарды шифрлау үшін желідегі кем дегенде t түйінге қол жеткізу қажет; бұл жобаның негізгі қағидасы – желідегі құпияны бөлісетін түйіндердің саны уақыт өте келе табиғи түрде азаяды, демек құпия ақырында жоғалады. Дегенмен, желі Sybil шабуылына осал, сондықтан Vanish қауіпсіз емес. Кез келген акционер, кез келген уақытта мазмұнды шифрлау үшін жеткілікті ақпаратқа ие болса, X-тің көшірмесін алып, сақтай алады. Осылайша, Vanish сияқты құралдар мен техникалар белгілі бір уақыттан кейін өз жүйесінде деректерді қалпына келтіру мүмкін емес ете білсе де, зыянды пайдаланушы оны көргеннен кейін деректерді жоюға мәжбүрлеуге болмайды. Бұл – Цифрлық құқықтарды басқарудың маңызды мәселелерінің бірі. Дилер бастапқы құпияны қалпына келтіру үшін қажетті барлық t үлесті бір алушыға жібере алады. Шабуылшы құпияны қалпына келтіру үшін барлық t үлесті ұстап алуы керек, бұл бір файлды ұстап алудан қиын, әсіресе егер үлестер әртүрлі арналар арқылы жіберілсе (мысалы, кейбіреулері Интернет арқылы, ал кейбіреулері CD-де). Үлкен құпиялар үшін құпияны шифрлау, содан кейін кілтті құпияны бөлісу арқылы тарату тиімдірек болуы мүмкін. Құпияны бөлісу – көп тарапты есептеуді қамтамасыз ететін бірнеше протоколдардың маңызды құралы. Құпияны бөлісу жүйеде пайдаланушыны куәландыру үшін де қолданылуы мүмкін.