Шамирын нууц хуваалцах схем

Банкны агуулахыг хамгаалах шаардлагатай хувилбарыг авч үзье. Энэ нь ажлын эхний өдөр танд өгдөг түлхүүргүйгээр бүрэн гүйцэд боломжгүй гэж тооцогддог. Таны зорилго бол түлхүүрийг найдвартай хадгалах явдал юм.

Та түлхүүрээ үргэлж өөртэйгөө хамт байлгахаар шийдсэн гэж бодъё. Гэхдээ ийм шийдэл нь бодит байдал дээр тийм ч сайн биш гэдгийг та хурдан ойлгох болно, учир нь та хадгалах сангаа нээх бүрт таны бие махбодийг байлгах шаардлагатай байдаг. Чамд амласан амралтаа яах вэ? Үүнээс гадна асуулт нь бүр ч аймшигтай: хэрэв та цорын ганц түлхүүрээ алдсан бол яах вэ?

Амралтаа бодож байгаад түлхүүрийн хуулбарыг хийж, өөр ажилтанд даатгах шийдвэр гаргана. Гэсэн хэдий ч энэ нь тийм ч тохиромжтой биш гэдгийг та ойлгож байна. Түлхүүрийн тоог хоёр дахин нэмэгдүүлснээр та түлхүүр хулгайлах магадлалыг хоёр дахин нэмэгдүүлнэ.

Цөхрөнгөө барсандаа та хуулбарыг устгаж, анхны түлхүүрийг хагасаар хуваахаар шийднэ. Одоо түлхүүрийг цуглуулж, агуулахыг онгойлгохын тулд түлхүүрийн хэлтэрхий бүхий хоёр итгэмжлэгдсэн хүн биечлэн байх ёстой гэж та бодож байна. Энэ нь хулгайч хоёр ширхэг хулгайлах шаардлагатай гэсэн үг бөгөөд энэ нь нэг түлхүүр хулгайлсанаас хоёр дахин хэцүү байдаг. Гэсэн хэдий ч, энэ схем нь зөвхөн нэг түлхүүрээс хамаагүй дээр биш гэдгийг та удахгүй ойлгох болно, учир нь хэн нэгэн хагас түлхүүрээ алдсан тохиолдолд бүрэн түлхүүрийг сэргээх боломжгүй юм.

Асуудлыг хэд хэдэн нэмэлт түлхүүр, цоожны тусламжтайгаар шийдэж болох боловч энэ аргыг хурдан шаардах болно много түлхүүр ба түгжээ. Аюулгүй байдал нь нэг хүнээс бүрэн хамаарахгүйн тулд түлхүүрийг хуваалцах нь хамгийн тохиромжтой загвар гэж та шийднэ. Хэрэв нэг фрагмент алдагдсан (эсвэл хүн амралтаараа явах юм бол) түлхүүр бүхэлдээ ажиллах боломжтой байхын тулд фрагментийн тоонд тодорхой босго байх ёстой гэж та дүгнэж байна.

Нууцыг хэрхэн хуваалцах вэ

Энэ төрлийн гол удирдлагын схемийн талаар Ади Шамир 1979 онд бүтээлээ нийтлэхдээ бодож байжээ "Нууцыг хэрхэн хуваалцах вэ". Нийтлэлд гэж нэрлэгддэг зүйлийг товч тайлбарлав Шамирын нууц хуваалцах схем нууц утгыг (криптограф түлхүүр гэх мэт) үр ашигтай хуваах босго схем Шамирын нууц хуваалцах схем хэсгүүд. Дараа нь, хэзээ, зөвхөн хэзээ, ядаж л Шамирын нууц хуваалцах схем нь Шамирын нууц хуваалцах схем эд ангиудыг угсарсан тул та нууцыг хялбархан сэргээж чадна Шамирын нууц хуваалцах схем.

Аюулгүй байдлын үүднээс авч үзвэл энэ схемийн чухал шинж чанар нь халдагч дор хаяж ямар ч мэдээлэлгүй бол юу ч мэдэхгүй байх ёстой. Шамирын нууц хуваалцах схем хэсгүүд. Тэр ч байтугай оршихуй Шамирын нууц хуваалцах схем хэсгүүд нь ямар ч мэдээлэл өгөх ёсгүй. Бид үүнийг өмч гэж нэрлэдэг семантик аюулгүй байдал.

Олон гишүүнт интерполяци

Шамирын босго схем Шамирын нууц хуваалцах схем үзэл баримтлалын хүрээнд бүтээгдсэн олон гишүүнт интерполяци. Хэрэв та энэ ойлголтыг сайн мэдэхгүй бол энэ нь үнэхээр энгийн зүйл юм. Үнэн хэрэгтээ, хэрэв та график дээр цэг зурж, дараа нь тэдгээрийг шугам эсвэл муруйгаар холбосон бол та үүнийг аль хэдийн ашигласан байна!

Шамирын нууц хуваалцах схем
Хоёр цэгээр дамжуулан та 2-р зэрэглэлийн хязгааргүй олон тооны олон гишүүнт зурж болно. Тэднээс цорын ганцыг нь сонгохын тулд танд гурав дахь цэг хэрэгтэй. Дүрслэл: Википедиа

Нэгдүгээр зэрэгтэй олон гишүүнтийг авч үзье. Шамирын нууц хуваалцах схем. Хэрэв та энэ функцийг график дээр зурахыг хүсвэл хэдэн цэг хэрэгтэй вэ? Энэ нь шугам үүсгэдэг шугаман функц бөгөөд дор хаяж хоёр цэг хэрэгтэй гэдгийг бид мэднэ. Дараа нь хоёрдугаар зэрэгтэй олон гишүүнт функцийг авч үзье. Шамирын нууц хуваалцах схем. Энэ нь квадрат функц тул графикийг зурахын тулд дор хаяж гурван цэг шаардлагатай. Гуравдугаар зэрэгтэй олон гишүүнтийг яах вэ? Дор хаяж дөрвөн оноо. Гэх мэтчилэн.

Энэ өмчийн хамгийн гайхалтай зүйл бол олон гишүүнт функцийн зэрэг болон наад зах нь Шамирын нууц хуваалцах схем Хэрэв бид энэ олон гишүүнт функцийн нэмэлт цэгүүдийг гаргаж авах боломжтой. Бид эдгээр нэмэлт цэгүүдийн экстраполяци гэж нэрлэдэг олон гишүүнт интерполяци.

Нууц зохиож байна

Эндээс л Шамирын ухаалаг арга хэрэгждэг гэдгийг та аль хэдийн ойлгосон байх. Нууцаа хэлье Шамирын нууц хуваалцах схем Байна уу Шамирын нууц хуваалцах схем. Бид эргэж чадна Шамирын нууц хуваалцах схем график дээрх цэг хүртэл Шамирын нууц хуваалцах схем зэрэгтэй олон гишүүнт функцийг гарга Шамирын нууц хуваалцах схем, энэ нь энэ цэгийг хангаж байна. Үүнийг эргэн санацгаая Шамирын нууц хуваалцах схем нь бидний шаардлагатай фрагментуудын босго байх тул хэрэв бид босгыг гурван фрагментээр тогтоовол хоёр дахь зэрэгтэй олон гишүүнт функцийг сонгох ёстой.

Манай олон гишүүнт хэлбэр хэлбэртэй байна Шамирын нууц хуваалцах схемхаана Шамирын нууц хуваалцах схем и Шамирын нууц хуваалцах схем - санамсаргүй байдлаар сонгосон эерэг бүхэл тоо. Бид зүгээр л зэрэгтэй олон гишүүнт байгуулж байна Шамирын нууц хуваалцах схем, энд чөлөөт коэффициент Шамирын нууц хуваалцах схем - Энэ бол бидний нууц Шамирын нууц хуваалцах схем, мөн дараагийнх бүрийн хувьд Шамирын нууц хуваалцах схем санамсаргүй байдлаар сонгосон эерэг коэффициент байдаг. Хэрэв бид анхны жишээ рүү буцаж очоод үүнийг төсөөлвөл Шамирын нууц хуваалцах схем, дараа нь бид функцийг авна Шамирын нууц хуваалцах схем.

Энэ үед бид холбох замаар фрагментуудыг үүсгэж болно Шамирын нууц хуваалцах схем дахь өвөрмөц бүхэл тоо Шамирын нууц хуваалцах схемхаана Шамирын нууц хуваалцах схем (Учир нь энэ бол бидний нууц). Энэ жишээн дээр бид гурван босготой дөрвөн фрагментийг тараахыг хүсч байгаа тул санамсаргүй байдлаар оноо үүсгэдэг. Шамирын нууц хуваалцах схем мөн түлхүүрийг хадгалагч дөрвөн итгэмжлэгдсэн хүнд тус бүр нэг оноо илгээ. Үүнийг бид ч хүмүүст мэдэгддэг Шамирын нууц хуваалцах схем, учир нь энэ нь олон нийтийн мэдээлэлд тооцогддог бөгөөд сэргээхэд зайлшгүй шаардлагатай Шамирын нууц хуваалцах схем.

Нууцыг сэргээж байна

Бид олон гишүүнт интерполяцийн тухай ойлголт, энэ нь Шамирын босго схемийн үндэс суурь болох талаар аль хэдийн ярилцсан. Шамирын нууц хуваалцах схем. Дөрвөн итгэмжлэгдсэн төлөөлөгчийн гурав нь сэргээхийг хүссэн үед Шамирын нууц хуваалцах схем, тэд зөвхөн интерполяци хийх хэрэгтэй Шамирын нууц хуваалцах схем өөрийн гэсэн өвөрмөц оноотой. Үүнийг хийхийн тулд тэд оноогоо тодорхойлж болно Шамирын нууц хуваалцах схем Дараах томьёог ашиглан Лагранжийн интерполяцийн олон гишүүнтийг тооцоол. Хэрэв програмчлал нь танд математикаас илүү ойлгомжтой байвал pi нь үндсэндээ оператор юм for, энэ нь бүх үр дүнг үржүүлдэг ба сигма нь for, энэ нь бүх зүйлийг нэмдэг.

Шамирын нууц хуваалцах схем

Шамирын нууц хуваалцах схем

үед Шамирын нууц хуваалцах схем Бид үүнийг ингэж шийдэж, анхны олон гишүүнт функцийг буцаана:

Шамирын нууц хуваалцах схем

Учир нь бид үүнийг мэднэ Шамирын нууц хуваалцах схем, сэргээх Шамирын нууц хуваалцах схем энгийн хийсэн:

Шамирын нууц хуваалцах схем

Аюулгүй бүхэл арифметик ашиглах

Хэдийгээр бид Шамирын үндсэн санааг амжилттай хэрэгжүүлсэн Шамирын нууц хуваалцах схем, бидэнд өнөөг хүртэл үл тоомсорлож ирсэн асуудал үлдлээ. Манай олон гишүүнт функц нь аюултай бүхэл тооны арифметикийг ашигладаг. Манай функцын график дээр халдагчийн олж авсан нэмэлт цэг болгонд бусад цэгүүдийн боломж бага байгааг анхаарна уу. Бүхэл тооны арифметик ашиглан олон гишүүнт функцийн өсөн нэмэгдэж буй цэгүүдийг зурахдаа та үүнийг өөрийн нүдээр харж болно. Энэ нь бидний тодорхойлсон аюулгүй байдлын зорилгод сөрөг нөлөө үзүүлж байна, учир нь халдлага үйлдэгч ядаж байх хүртлээ юу ч мэдэхгүй байх ёстой Шамирын нууц хуваалцах схем хэлтэрхий.

Бүхэл тооны арифметик хэлхээ хэр сул болохыг харуулахын тулд халдагч хоёр оноо авсан хувилбарыг авч үзье. Шамирын нууц хуваалцах схем олон нийтийн мэдээллийг мэддэг Шамирын нууц хуваалцах схем. Энэ мэдээллээс тэрээр дүгнэлт хийж чадна Шамирын нууц хуваалцах схем, хоёртой тэнцүү бөгөөд мэдэгдэж буй утгуудыг томъёонд оруулна уу Шамирын нууц хуваалцах схем и Шамирын нууц хуваалцах схем.

Шамирын нууц хуваалцах схем

Халдагчид дараа нь олох боломжтой Шамирын нууц хуваалцах схем, тоолох Шамирын нууц хуваалцах схем:

Шамирын нууц хуваалцах схем

Бид тодорхойлсоноос хойш Шамирын нууц хуваалцах схем санамсаргүй байдлаар сонгосон эерэг бүхэл тоонуудын хувьд боломжит тоо хязгаарлагдмал Шамирын нууц хуваалцах схем. Энэ мэдээллийг ашиглан халдагчид дүгнэлт хийж чадна Шамирын нууц хуваалцах схем, учир нь 5-аас их зүйл хийх болно Шамирын нууц хуваалцах схем сөрөг. Бид тодорхойлсны дараа энэ нь үнэн болж байна Шамирын нууц хуваалцах схем

Дараа нь халдагч боломжит утгыг тооцоолж болно Шамирын нууц хуваалцах схемсольж байна Шамирын нууц хуваалцах схем в Шамирын нууц хуваалцах схем:

Шамирын нууц хуваалцах схем

Хязгаарлагдмал сонголттой Шамирын нууц хуваалцах схем утгыг сонгох, шалгах нь хэр хялбар болох нь тодорхой болно Шамирын нууц хуваалцах схем. Энд зөвхөн таван сонголт байна.

Аюулгүй бүхэл арифметикийн асуудлыг шийдвэрлэх

Энэхүү эмзэг байдлыг арилгахын тулд Шамир модуль арифметикийг солихыг санал болгож байна Шамирын нууц хуваалцах схем тухай Шамирын нууц хуваалцах схемхаана Шамирын нууц хуваалцах схем и Шамирын нууц хуваалцах схем - бүх анхны тооны олонлог.

Модульчлагдсан арифметик хэрхэн ажилладагийг хурдан санацгаая. Гартай цаг бол танил ойлголт юм. Тэр цаг ашигладаг Шамирын нууц хуваалцах схем. Цагийн зүү арван хоёр өнгөрмэгц нэг рүү буцдаг. Энэ системийн сонирхолтой шинж чанар бол зүгээр л цагийг хараад л бид цагийн зүү хэдэн эргэлт хийснийг хэлж чадахгүй. Гэсэн хэдий ч, хэрэв бид цагийн зүү 12 дөрвөн удаа өнгөрснийг мэдвэл энгийн томъёогоор хэдэн цаг өнгөрснийг бүрэн тодорхойлж чадна. Шамирын нууц хуваалцах схемхаана Шамирын нууц хуваалцах схем нь бидний хуваагч (энд Шамирын нууц хуваалцах схем), Шамирын нууц хуваалцах схем коэффициент (хуваагч анхны тоонд үлдэгдэлгүй хэдэн удаа ордог, энд Шамирын нууц хуваалцах схем), ба Шамирын нууц хуваалцах схем Үлдэгдэл нь ихэвчлэн модулийн операторын дуудлагыг буцаадаг (энд Шамирын нууц хуваалцах схем). Эдгээр бүх утгыг мэдэх нь бидэнд тэгшитгэлийг шийдэх боломжийг олгодог Шамирын нууц хуваалцах схем, гэхдээ бид коэффициентийг алдсан тохиолдолд анхны утгыг хэзээ ч сэргээж чадахгүй.

Энэ нь бидний схемийн аюулгүй байдлыг хэрхэн сайжруулж байгааг бид өмнөх жишээн дээр схемийг ашиглаж, ашиглан харуулж чадна. Шамирын нууц хуваалцах схем. Манай шинэ олон гишүүнт функц Шамирын нууц хуваалцах схем, мөн шинэ оноо Шамирын нууц хуваалцах схем. Одоо гол хамгаалагчид бидний функцийг сэргээхийн тулд полиномын интерполяцийг дахин ашиглах боломжтой, зөвхөн энэ удаад нэмэх, үржүүлэх үйлдлүүд нь модулийн бууралттай хамт байх ёстой. Шамирын нууц хуваалцах схем (жишээ нь Шамирын нууц хуваалцах схем).

Энэхүү шинэ жишээн дээр халдагч эдгээр шинэ онооны хоёрыг сурсан гэж бодъё. Шамирын нууц хуваалцах схем, олон нийтийн мэдээлэл Шамирын нууц хуваалцах схем. Энэ удаад халдагч өөрт байгаа бүх мэдээлэлдээ тулгуурлан дараах функцуудыг гаргана, хаана Шамирын нууц хуваалцах схем бүх эерэг бүхэл тоонуудын олонлог ба Шамирын нууц хуваалцах схем модулийн коэффициентийг илэрхийлнэ Шамирын нууц хуваалцах схем.

Шамирын нууц хуваалцах схем

Одоо манай халдагч дахин оллоо Шамирын нууц хуваалцах схем, тооцоолох Шамирын нууц хуваалцах схем:

Шамирын нууц хуваалцах схем

Дараа нь тэр дахин оролдоно Шамирын нууц хуваалцах схемсольж байна Шамирын нууц хуваалцах схем в Шамирын нууц хуваалцах схем:

Шамирын нууц хуваалцах схем

Энэ удаад түүнд ноцтой асуудал тулгараад байна. Формула дутуу утгууд Шамирын нууц хуваалцах схем, Шамирын нууц хуваалцах схем и Шамирын нууц хуваалцах схем. Эдгээр хувьсагчийн хязгааргүй тооны хослол байдаг тул тэрээр нэмэлт мэдээлэл авч чадахгүй.

Аюулгүй байдлын талаар анхаарах зүйлс

Шамирын нууц хуваалцах схемийг санал болгож байна мэдээллийн онолын үүднээс аюулгүй байдал. Энэ нь математик нь хязгааргүй тооцоолох хүчин чадалтай халдагчдад тэсвэртэй гэсэн үг юм. Гэсэн хэдий ч хэлхээнд мэдэгдэж байгаа хэд хэдэн асуудал байсаар байна.

Жишээлбэл, Шамирын схемийг бий болгодоггүй шалгах шаардлагатай хэсгүүд, өөрөөр хэлбэл хүмүүс хуурамч хэлтэрхийг чөлөөтэй танилцуулж, зөв ​​нууцыг сэргээхэд саад учруулж болно. Хангалттай мэдээлэлтэй дайсагнасан фрагмент хадгалагч нь өөрчлөх замаар өөр фрагмент үүсгэж болно Шамирын нууц хуваалцах схем өөрийн үзэмжээр. Энэ асуудлыг ашиглан шийддэг баталгаажуулах боломжтой нууц хуваалцах схемүүдФельдманы схем гэх мэт.

Өөр нэг асуудал бол аливаа фрагментийн урт нь харгалзах нууцын урттай тэнцүү байдаг тул нууцын уртыг тодорхойлоход хялбар байдаг. Энэ асуудлыг өчүүхэн аргаар шийдэж болно дэвсгэр тогтмол урт хүртэл дурын тоо бүхий нууц.

Эцэст нь хэлэхэд, бидний аюулгүй байдлын асуудал нь загвараас хэтэрч магадгүй гэдгийг анхаарах нь чухал юм. Бодит ертөнцийн криптограф програмуудын хувьд халдагчид програмын гүйцэтгэлийн хугацаа, кэш, эвдрэл гэх мэт хэрэгтэй мэдээллийг гаргаж авахыг оролддог хажуугийн сувгийн халдлагын аюул ихэвчлэн байдаг. Хэрэв энэ нь санаа зовоож байгаа бол функцууд болон байнгын хайлт зэрэг хамгаалалтын арга хэмжээг ашиглах, санах ойг дискэнд хадгалахаас урьдчилан сэргийлэх болон энэ зүйлийн хамрах хүрээнээс гадуур бусад хэд хэдэн зүйлийг анхаарч үзэх хэрэгтэй.

Демо

дээр энэ хуудас Шамирын нууц хуваалцах схемийн интерактив үзүүлбэр байдаг. Номын санд суурилсан үзүүлбэр ssss-js, энэ нь өөрөө алдартай програмын JavaScript порт юм ssss. Том утгыг тооцоолж байгааг анхаарна уу Шамирын нууц хуваалцах схем, Шамирын нууц хуваалцах схем и Шамирын нууц хуваалцах схем хэсэг хугацаа шаардагдаж магадгүй юм.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх