Շամիրի գաղտնի բաժանման սխեման

Պատկերացրեք մի իրավիճակ, երբ դուք պետք է ապահովեք բանկի պահոցը։ Այն համարվում է լիովին անթափանցելի առանց այն բանալու, որը ձեզ տրվում է աշխատանքի առաջին օրը։ Ձեր նպատակն է բանալին անվտանգ պահել։

Ենթադրենք, որ դուք որոշում եք բանալին միշտ ձեզ մոտ պահել՝ անհրաժեշտության դեպքում թույլ տալով մուտք գործել պահոց։ Սակայն դուք շուտով կհասկանաք, որ նման լուծումը գործնականում լավ չի գործում, քանի որ ամեն անգամ պահոցը բացելու համար անհրաժեշտ է ձեր ֆիզիկական ներկայությունը։ Իսկ ի՞նչ կասեք ձեզ խոստացված արձակուրդի մասին։ Եվ ավելի սարսափելի է հարցը. ի՞նչ կլինի, եթե կորցնեք ձեր միակ բանալին։

Հաշվի առնելով ձեր արձակուրդը՝ դուք որոշում եք պատճենահանել բանալուց և վստահել այն մեկ այլ աշխատակցի։ Սակայն դուք հասկանում եք, որ սա նույնպես իդեալական չէ։ Բանալիների քանակը կրկնապատկելով՝ դուք նաև կրկնապատկել եք բանալին գողանալու հավանականությունը։

Հուսահատության մեջ դուք ոչնչացնում եք կրկնօրինակը և որոշում եք կիսել բնօրինակ բանալին։ Հիմա, դուք կարծում եք, որ բանալին հավաքելու և պահոցը բացելու համար պետք է ֆիզիկապես ներկա լինեն երկու վստահելի մարդիկ, որոնք ունեն բանալու բեկորներ։ Սա նշանակում է, որ գողը պետք է գողանա երկու բեկոր, ինչը երկու անգամ ավելի դժվար է, քան մեկ բանալի գողանալը։ Սակայն շուտով դուք հասկանում եք, որ այս սխեման շատ ավելի լավ չէ, քան մեկ բանալի, քանի որ եթե մեկը կորցնի բանալու կեսը, ամբողջ բանալին չի կարող վերականգնվել։

Խնդիրը կարող է լուծվել մի շարք լրացուցիչ բանալիների և կողպեքների միջոցով, բայց այս մոտեցումը արագ կպահանջի շատ բանալիներ և կողպեքներ։ Դուք որոշում եք, որ իդեալական դիզայնը կլինի բանալին բաժանելը, որպեսզի անվտանգությունն ամբողջությամբ չկախվի մեկ անձից։ Դուք նաև եզրակացնում եք, որ պետք է որոշակի շեմ լինի բեկորների քանակի համար, որպեսզի եթե մեկ բեկոր կորչի (կամ եթե անձը գնա արձակուրդի), ամբողջ բանալին դեռևս գործունակ լինի։

Ինչպես կիսվել գաղտնիքով

Այս տեսակի բանալիների կառավարման սխեման մտածել է Ադի Շամիրը 1979 թվականին, երբ նա հրապարակել է իր աշխատանքը։ «Ինչպես կիսվել գաղտնիքով»Հոդվածում համառոտ բացատրվում է այսպես կոչվածը Շամիրի գաղտնի բաժանման սխեման շեմային սխեմա՝ գաղտնի արժեքը (օրինակ՝ կրիպտոգրաֆիկական բանալի) արդյունավետորեն բաժանելու համար Շամիրի գաղտնի բաժանման սխեման մասեր։ Ապա, երբ և միայն այն ժամանակ, երբ առնվազն Շամիրի գաղտնի բաժանման սխեման - ից Շամիրի գաղտնի բաժանման սխեման մասերը հավաքվում են, գաղտնիքը վերականգնելը հեշտ է Շամիրի գաղտնի բաժանման սխեման.

Անվտանգության տեսանկյունից, այս սխեմայի կարևոր առանձնահատկությունն այն է, որ հարձակվողը չպետք է բացարձակապես ոչինչ իմանա, եթե առնվազն... Շամիրի գաղտնի բաժանման սխեման մասեր։ Նույնիսկ առկայությունը Շամիրի գաղտնի բաժանման սխեման մասերը չպետք է որևէ տեղեկատվություն տրամադրեն։ Մենք այս հատկությունը անվանում ենք սեմանտիկ անվտանգություն.

Բազմանդամային ինտերպոլյացիա

Շամիրի շեմային սխեման Շամիրի գաղտնի բաժանման սխեման կառուցված հայեցակարգի շուրջ բազմանդամային ինտերպոլյացիաԵթե ​​դուք ծանոթ չեք այս հասկացությանը, ապա այն իրականում բավականին պարզ է։ Իրականում, եթե երբևէ գրաֆիկի վրա կետեր եք նկարել, ապա դրանք գծերով կամ կորերով միացրել, ապա արդեն օգտագործել եք այն։

Շամիրի գաղտնի բաժանման սխեման
Երկու կետերով կարելի է անցկացնել անսահմանափակ թվով 2-րդ աստիճանի բազմանդամներ։ Դրանցից միայն մեկը ընտրելու համար անհրաժեշտ է երրորդ կետը։ Նկարազարդում՝ Wikipedia

Եկեք դիտարկենք մեկ աստիճանի բազմանդամ՝ Շամիրի գաղտնի բաժանման սխեմանԵթե ​​ուզում եք այս ֆունկցիան պատկերել գրաֆիկի վրա, քանի՞ կետ է ձեզ անհրաժեշտ։ Մենք գիտենք, որ դա գծային ֆունկցիա է, որը կազմում է գիծ, ​​ուստի անհրաժեշտ է առնվազն երկու կետ։ Հաջորդը, դիտարկենք երկրորդ աստիճանի բազմանդամային ֆունկցիա։ Շամիրի գաղտնի բաժանման սխեմանՍա քառակուսային ֆունկցիա է, ուստի այն գծագրելու համար անհրաժեշտ է առնվազն երեք կետ։ Իսկ ինչպե՞ս կլինի երրորդ աստիճանի բազմանդամի դեպքում։ Առնվազն չորս կետ։ Եվ այսպես շարունակ։

Այս հատկության մեջ իսկապես հետաքրքիրն այն է, որ տրված է բազմանդամային ֆունկցիայի աստիճանը և առնվազն Շամիրի գաղտնի բաժանման սխեման կետերով, մենք կարող ենք ստանալ լրացուցիչ կետեր այս բազմանդամային ֆունկցիայի համար։ Մենք այս լրացուցիչ կետերի էքստրապոլյացիան անվանում ենք բազմանդամային ինտերպոլյացիա.

Գաղտնիք հորինելը

Դուք գուցե արդեն հասկացել եք, որ այստեղ է, որ Շամիրի խորամանկ ծրագիրը գործի է դրվում։ Ենթադրենք, որ մեր գաղտնիքը Շամիրի գաղտնի բաժանման սխեման - Ից Շամիրի գաղտնի բաժանման սխեմանՄենք կարող ենք վերափոխել Շամիրի գաղտնի բաժանման սխեման գրաֆիկի վրա գտնվող կետին Շամիրի գաղտնի բաժանման սխեման և ստեղծեք աստիճան ունեցող բազմանդամային ֆունկցիա Շամիրի գաղտնի բաժանման սխեման, որը բավարարում է այս կետը։ Հիշե՛ք, որ Շամիրի գաղտնի բաժանման սխեման կլինի մեր պահանջվող բեկորների շեմը, ուստի եթե մենք սահմանենք շեմը երեք բեկորի, մենք պետք է ընտրենք երկրորդ աստիճանի բազմանդամային ֆունկցիա։

Մեր բազմանդամը կունենա տեսքը Շամիրի գաղտնի բաժանման սխեմանՈրտեղ Շամիրի գաղտնի բաժանման սխեման и Շամիրի գաղտնի բաժանման սխեման — պատահականորեն ընտրված դրական ամբողջ թվեր։ Մենք պարզապես կառուցում ենք աստիճան ունեցող բազմանդամ Շամիրի գաղտնի բաժանման սխեման, որտեղ ազատ գործակիցն է Շամիրի գաղտնի բաժանման սխեման - սա մեր գաղտնիքն է Շամիրի գաղտնի բաժանման սխեման, և հաջորդողներից յուրաքանչյուրը Շամիրի գաղտնի բաժանման սխեման անդամների թիվը պատահականորեն ընտրված դրական գործակից է։ Եթե վերադառնանք սկզբնական օրինակին և ենթադրենք, որ Շամիրի գաղտնի բաժանման սխեման, ապա մենք ստանում ենք ֆունկցիան Շամիրի գաղտնի բաժանման սխեման.

Այս փուլում մենք կարող ենք բեկորներ ստեղծել՝ միացնելով Շամիրի գաղտնի բաժանման սխեման եզակի ամբողջ թվեր Շամիրի գաղտնի բաժանման սխեմանՈրտեղ Շամիրի գաղտնի բաժանման սխեման (քանի որ դա մեր գաղտնիքն է): Այս օրինակում մենք ուզում ենք բաշխել չորս բեկորներ երեք շեմով, ուստի պատահականորեն միավորներ ենք ստեղծում Շամիրի գաղտնի բաժանման սխեման և ուղարկեք մեկական կետ բանալու պահապան չորս վստահելի անձանցից յուրաքանչյուրին։ Մենք նաև մարդկանց ասում ենք, որ Շամիրի գաղտնի բաժանման սխեման, քանի որ սա համարվում է հանրային տեղեկատվություն և անհրաժեշտ է վերականգնման համար Շամիրի գաղտնի բաժանման սխեման.

Գաղտնիքի վերականգնում

Մենք արդեն քննարկել ենք բազմանդամային ինտերպոլյացիայի հայեցակարգը և այն, թե ինչպես է այն ընկած Շամիրի շեմային սխեմայի հիմքում։ Շամիրի գաղտնի բաժանման սխեմանԵրբ չորս հոգաբարձուներից որևէ երեքը ցանկանում են վերականգնել Շամիրի գաղտնի բաժանման սխեման, նրանք պարզապես պետք է ինտերպոլացնեն Շամիրի գաղտնի բաժանման սխեման իրենց սեփական եզակի կետերով։ Դրա համար նրանք կարող են սահմանել իրենց կետերը Շամիրի գաղտնի բաժանման սխեման և հաշվարկեք Լագրանժի ինտերպոլյացիոն բազմանդամը՝ օգտագործելով հետևյալ բանաձևը։ Եթե դուք ավելի հարմար եք ծրագրավորմանը, քան մաթեմատիկային, ապա π թիվը, ըստ էության, օպերատորն է։ for, որը բազմապատկում է բոլոր արդյունքները, և սիգման է for, որը միավորում է ամեն ինչ։

Շամիրի գաղտնի բաժանման սխեման

Շամիրի գաղտնի բաժանման սխեման

Ի Շամիրի գաղտնի բաժանման սխեման Մենք կարող ենք լուծել սա հետևյալ կերպ և ստանալ մեր սկզբնական բազմանդամային ֆունկցիան՝

Շամիրի գաղտնի բաժանման սխեման

Քանի որ մենք դա գիտենք Շամիրի գաղտնի բաժանման սխեման, վերականգնում Շամիրի գաղտնի բաժանման սխեման այն իրականացվում է պարզապես՝

Շամիրի գաղտնի բաժանման սխեման

Անապահով ամբողջ թվերի թվաբանության օգտագործում

Չնայած մենք հաջողությամբ կիրառել ենք Շամիրի հիմնական գաղափարը Շամիրի գաղտնի բաժանման սխեման, մենք մնում ենք մի խնդրի առաջ, որը մինչ այժմ անտեսել ենք։ Մեր բազմանդամային ֆունկցիան օգտագործում է անապահով ամբողջ թվերի թվաբանություն։ Հաշվի առեք, որ մեր ֆունկցիայի գրաֆիկի վրա հարձակվողի ստացած յուրաքանչյուր լրացուցիչ կետի համար այլ կետերի հավանականությունը նվազում է։ Դուք կարող եք դա տեսնել ինքներդ, երբ բազմանդամային ֆունկցիայի համար գծեք աճող թվով կետեր՝ օգտագործելով ամբողջ թվերի թվաբանություն։ Սա հակաարդյունավետ է մեր հայտարարված անվտանգության նպատակին, քանի որ հարձակվողը պետք է բացարձակապես ոչինչ չիմանա, մինչև որ չունենա առնվազն Շամիրի գաղտնի բաժանման սխեման բեկորներ։

Ամբողջ թվաբանության սխեմայի թույլ լինելը ցույց տալու համար դիտարկենք մի սցենար, որտեղ հարձակվողն ունի երկու կետ։ Շամիրի գաղտնի բաժանման սխեման և գիտի հանրային տեղեկատվություն, որը Շամիրի գաղտնի բաժանման սխեմանԱյս տեղեկատվությունից նա կարող է եզրակացնել Շամիրի գաղտնի բաժանման սխեման, հավասար է երկուսի, և հայտնի արժեքները մուտքագրեք բանաձևի մեջ Շամիրի գաղտնի բաժանման սխեման и Շամիրի գաղտնի բաժանման սխեման.

Շամիրի գաղտնի բաժանման սխեման

Այնուհետև հարձակվողը կարող է գտնել Շամիրի գաղտնի բաժանման սխեման, հաշվելով Շամիրի գաղտնի բաժանման սխեման:

Շամիրի գաղտնի բաժանման սխեման

Քանի որ մենք սահմանել ենք Շամիրի գաղտնի բաժանման սխեման քանի որ պատահականորեն ընտրված դրական ամբողջ թվերի դեպքում հնարավոր է սահմանափակ թվով Շամիրի գաղտնի բաժանման սխեմանԱյս տեղեկատվությունն օգտագործելով՝ հարձակվողը կարող է եզրակացնել Շամիրի գաղտնի բաժանման սխեման, քանի որ 5-ից մեծ ցանկացած թիվ կբավարարի Շամիրի գաղտնի բաժանման սխեման բացասական։ Սա ճիշտ է, քանի որ մենք որոշել ենք Շամիրի գաղտնի բաժանման սխեման

Հարձակվողը կարող է հաշվարկել հնարավոր արժեքները Շամիրի գաղտնի բաժանման սխեման, փոխարինելով Շամիրի գաղտնի բաժանման սխեման в Շամիրի գաղտնի բաժանման սխեման:

Շամիրի գաղտնի բաժանման սխեման

Սահմանափակ ընտրանքների շրջանակով Շամիրի գաղտնի բաժանման սխեման պարզ է դառնում, թե որքան հեշտ է ընտրել և ստուգել արժեքները Շամիրի գաղտնի բաժանման սխեմանԱյստեղ կա ընդամենը հինգ տարբերակ։

Անվտանգ ամբողջ թվերի թվաբանության խնդրի լուծում

Այս խոցելիությունը վերացնելու համար Շամիրը առաջարկում է օգտագործել մոդուլային թվաբանություն՝ փոխարինելով Շամիրի գաղտնի բաժանման սխեման մասին Շամիրի գաղտնի բաժանման սխեմանՈրտեղ Շամիրի գաղտնի բաժանման սխեման и Շամիրի գաղտնի բաժանման սխեման — բոլոր պարզ թվերի բազմությունը։

Եկեք արագորեն վերանայենք, թե ինչպես է գործում մոդուլային թվաբանությունը։ Սլաքներով ժամացույցը ծանոթ հասկացություն է։ Այն օգտագործում է ժամացույց, որը Շամիրի գաղտնի բաժանման սխեմանՀենց որ ժամի սլաքը անցնում է տասներկուսի սահմանը, այն վերադառնում է մեկի։ Այս համակարգի հետաքրքիր առանձնահատկությունն այն է, որ մենք չենք կարող եզրակացնել, թե քանի պտույտ է կատարել ժամի սլաքը՝ պարզապես ժամացույցին նայելով։ Սակայն, եթե գիտենք, որ ժամի սլաքը անցել է 12 անգամ չորս անգամ, կարող ենք լիովին որոշել անցած ժամերի քանակը՝ օգտագործելով պարզ բանաձև։ Շամիրի գաղտնի բաժանման սխեմանՈրտեղ Շամիրի գաղտնի բաժանման սխեման - սա մեր բաժանարարն է (այստեղ Շամիրի գաղտնի բաժանման սխեման), Շամիրի գաղտնի բաժանման սխեման — սա գործակիցն է (քանի անգամ է բաժանարարը առանց մնացորդի մտնում սկզբնական թվի մեջ, այստեղ) Շամիրի գաղտնի բաժանման սխեման), և Շամիրի գաղտնի բաժանման սխեման — սա մնացորդն է, որը սովորաբար վերադարձվում է մոդուլո օպերատորը կանչելով (այստեղ Շամիրի գաղտնի բաժանման սխեմանԱյս բոլոր արժեքները իմանալը թույլ է տալիս լուծել հավասարումը Շամիրի գաղտնի բաժանման սխեման, բայց եթե մենք բաց թողնենք որևէ գործակից, մենք երբեք չենք կարողանա վերականգնել սկզբնական արժեքը։

Մենք կարող ենք ցույց տալ, թե ինչպես է սա բարելավում մեր սխեմայի անվտանգությունը՝ կիրառելով սխեման մեր նախորդ օրինակի վրա և օգտագործելով Շամիրի գաղտնի բաժանման սխեմանՄեր նոր բազմանդամային ֆունկցիան Շամիրի գաղտնի բաժանման սխեմանև նոր կետեր Շամիրի գաղտնի բաժանման սխեմանԱյժմ բանալիների պահողները կարող են կրկին օգտագործել բազմանդամային ինտերպոլյացիան՝ մեր ֆունկցիան վերակառուցելու համար, միայն թե այս անգամ գումարման և բազմապատկման գործողությունները պետք է ուղեկցվեն մոդուլային վերականգնմամբ։ Շամիրի գաղտնի բաժանման սխեման (օրինակ Շամիրի գաղտնի բաժանման սխեման).

Այս նոր օրինակն օգտագործելով, ենթադրենք, որ հարձակվողը սովորել է այս նոր կետերից երկուսը, Շամիրի գաղտնի բաժանման սխեմանև հանրային տեղեկատվություն Շամիրի գաղտնի բաժանման սխեմանԱյս անգամ հարձակվողը, հիմնվելով իր ունեցած ողջ տեղեկատվության վրա, ստանում է հետևյալ գործառույթները, որտեղ Շամիրի գաղտնի բաժանման սխեման — բոլոր դրական ամբողջ թվերի բազմությունը, և Շամիրի գաղտնի բաժանման սխեման ներկայացնում է մոդուլի գործակիցը Շամիրի գաղտնի բաժանման սխեման.

Շամիրի գաղտնի բաժանման սխեման

Հիմա մեր հարձակվողը նորից գտնում է այն Շամիրի գաղտնի բաժանման սխեման, հաշվարկելով Շամիրի գաղտնի բաժանման սխեման:

Շամիրի գաղտնի բաժանման սխեման

Ապա նա կրկին փորձում է հետ քաշվել Շամիրի գաղտնի բաժանման սխեման, փոխարինելով Շամիրի գաղտնի բաժանման սխեման в Շամիրի գաղտնի բաժանման սխեման:

Շամիրի գաղտնի բաժանման սխեման

Այս անգամ նա լուրջ խնդիր ունի։ Բանաձևում բացակայում են արժեքներ։ Շամիրի գաղտնի բաժանման սխեման, Շամիրի գաղտնի բաժանման սխեման и Շամիրի գաղտնի բաժանման սխեմանՔանի որ այս փոփոխականների համակցությունների անվերջ թիվ կա, նա չի կարող որևէ լրացուցիչ տեղեկատվություն ստանալ։

Անվտանգության նկատառումներ

Շամիրի գաղտնի բաժանման սխեման ենթադրում է Անվտանգությունը տեղեկատվության տեսության տեսանկյունիցՍա նշանակում է, որ մաթեմատիկան հուսալի է նույնիսկ անսահմանափակ հաշվողական հզորություն ունեցող հարձակվողի դեմ։ Այնուամենայնիվ, սխեման դեռևս մի քանի հայտնի խնդիրներ ունի։

Օրինակ՝ Շամիրի սխեման չի ստեղծում ստուգված հատվածներ, այսինքն՝ մարդիկ ազատ են ներկայացնել կեղծ բեկորներ և խանգարել ճիշտ գաղտնիքի վերականգնմանը: Բավարար տեղեկատվություն ունեցող թշնամաբար տրամադրված բեկորների պահապանը կարող է նույնիսկ ստեղծել մեկ այլ բեկոր՝ փոխելով Շամիրի գաղտնի բաժանման սխեման ձեր հայեցողությամբ։ Այս խնդիրը լուծվում է օգնությամբ ստուգելի գաղտնի փոխանակման սխեմաներ, ինչպիսին է Ֆելդմանի սխեման։

Մեկ այլ խնդիր է այն, որ ցանկացած բեկորի երկարությունը հավասար է համապատասխան գաղտնիքի երկարությանը, ուստի գաղտնիքի երկարությունը հեշտ է որոշել։ Այս խնդիրը լուծվում է պարզ ձևով։ լցոն գաղտնի՝ մինչև ֆիքսված երկարությամբ կամայական թվերով։

Վերջապես, կարևոր է նշել, որ մեր անվտանգության հետ կապված մտահոգությունները կարող են տարածվել ոչ միայն նախագծման վրա: Իրական կրիպտոգրաֆիկ կիրառությունների դեպքում հաճախ կա կողմնակի ալիքային հարձակումների սպառնալիք, երբ հարձակվողը փորձում է օգտակար տեղեկատվություն քաղել ծրագրի աշխատանքային ժամանակից, քեշավորումից, խափանումներից և այլն: Եթե սա մտահոգություն է, նախագծման ընթացքում պետք է ուշադիր դիտարկել պաշտպանիչ միջոցների կիրառումը, ինչպիսիք են հաստատուն ժամանակի ֆունկցիաները և որոնումները, հիշողության սկավառակի վրա պահպանման կանխումը և մի շարք այլ բաներ, որոնք դուրս են այս հոդվածի շրջանակներից:

Դեմո

On այս էջը Կա Շամիրի գաղտնի տվյալների փոխանակման սխեմայի ինտերակտիվ ցուցադրություն։ Ցուցադրությունը հիմնված է գրադարանի վրա։ ssss-js, որն ինքնին հայտնի ծրագրի JavaScript պորտ է ՍԱՊԾՆկատի ունեցեք, որ մեծ արժեքների հաշվարկը Շամիրի գաղտնի բաժանման սխեման, Շամիրի գաղտնի բաժանման սխեման и Շամիրի գաղտնի բաժանման սխեման դա կարող է որոշ ժամանակ պահանջել։

Source: www.habr.com

Գնեք հուսալի հոստինգ DDoS պաշտպանությամբ կայքերի, VPS VDS սերվերների համար 🔥 Գնեք հուսալի կայքերի հոսթինգ՝ DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster