Кіріспе

Шифрлаудың кіші саласы

Қауіпсіз көп тарапты есептеу (қауіпсіз есептеу, көп тарапты есептеу (MPC) немесе құпиялылықты сақтау есептеу деп те аталады) – криптографияның кіші саласы болып табылады, оның мақсаты тараптардың өздерінің деректерін құпия ұстай отырып, осы деректер бойынша бірлесіп функцияны есептеу әдістерін жасау. Дәстүрлі криптографиялық міндеттерден айырмашылығы, онда криптография байланыс немесе сақтаудың қауіпсіздігі мен толықтығын қамтамасыз етеді және қарсылас қатысушылар жүйесінен тыс болады (жіберуші мен алушыны тыңдаушы), бұл модельдегі криптография қатысушылардың бір-бірінен құпиялылығын қорғайды. Қауіпсіз көп тарапты есептеудің негізі 1970 жылдардың соңында ойындық покер жұмысымен қаланды, бұл криптографиялық жұмыс сенімді үшінші тарапты қажет етпей, қашықтықтан ойын ойнау/есептеу міндеттерін симуляциялайды. Дәстүрлі түрде криптография мазмұнды жасырумен байланысты болса, ал осы жаңа есептеу түрі мен протоколы – көптеген дерек көздерінен алынған деректерді есептеу кезінде деректер туралы ішінара ақпаратты жасыру және дұрыс нәтижелерді шығарумен байланысты. 1980 жылдардың соңында Майкл Бен-Ор, Шафи Голдвассер және Ави Вигдерсон, сондай-ақ тәуелсіз түрде Дэвид Шоум, Клод Крепо және Иван Дамгард «қауіпсіз арналар жағдайында кез келген функцияны қауіпсіз есептеу қалай жүзеге асырылатынын» көрсететін мақалалар жариялады.

Тарих

Арнайы мақсаттағы протоколдар 1970 жылдардың соңында қолданысқа енді. Кейіннен, 1982 жылы қауіпсіз есептеу ресми түрде екі тарапты қауіпсіз есептеу (2PC) түрінде ұсынылды (миллионерлердің мәселесі деп аталатын, бульдік предикат болатын нақты мәселе үшін), ал 1986 жылы Эндрю Яо барлық мүмкін есептеулер үшін жалпылама түрде енгізілді. Бұл сала Secure Function Evaluation (SFE) деп те аталады. Екі тарапты жағдайды Одед Голдрейх, Сильвио Микали және Ави Вигдерсон көп тарапты жағдайға кеңейтті. Есептеу барлық кіріс деректерін құпия бөлісу және қастандық жағдайында нөлдік білімді дәлелдеу негізінде жүзеге асырылады, онда қастандық қарсыластың жағдайында адал ойыншылардың көпшілігі жаман мінез-құлықты анықтап, адал емес тұлғаны жоюмен немесе оның кірісін ашумен есептеуді жалғастырады. Бұл жұмыс қауіпсіз есептеу үшін болашақтағы барлық көп тарапты протоколдарда қолданылатын негізгі жалпы схеманы ұсынды. Бұл жұмыс GMW парадигмасы деп аталатын, жартылай адал қарсыластарға қарсы қауіпсіз, қастандық қарсыластарға қарсы қауіпсіз көп тарапты есептеу протоколын құрастыру тәсілін енгізді. Бұл жұмыстың нәтижесінде бірінші сенімді қауіпсіз протокол пайда болды, ол ешкімнің нәтижесін ашпай, қате мінез-құлықты мейірімділікпен қабылдайды, бұл мақсатта жиі қолданылатын "үлестің үлесі" идеясы және тараптардың біріне өз кірісін шартты түрде жасыруға мүмкіндік беретін протокол ойлап табылды. GMW парадигмасы негізгі протоколға әкелетін үлкен шығындарға байланысты көп жылдар бойы тиімсіз деп есептелді. Алайда, тиімді протоколдар жасау мүмкіндігі көрсетілді, бұл зерттеу бағытын практикалық тұрғыдан одан да қызықты етеді. Жоғарыда аталған нәтижелер қарсылас полиномиалдық уақыт есептеулерімен шектелген және барлық байланысты бақылайтын модельде алынды, сондықтан бұл модель "есептеулік модель" деп аталады. Сонымен қатар, бұл міндеттер үшін жасырын беру протоколының толық екендігі дәлелденді. Жоғарыда аталған нәтижелер пайдаланушылардың көпшілігі адал болған жағдайда қауіпсіз есептеуді жүзеге асыру мүмкіндігін көрсетті. Келесі шешілмейтін мәселе – қарсыласқа нүктеден нүктеге байланыс қолжетімді емес қауіпсіз байланыс арналарының жағдайы болды; бұл жағдайда тараптардың 1/3-і дұрыс емес және қастандық жасаған жағдайда шешімдерге қол жеткізуге болады, ал шешімдер криптографиялық құралдарды қолданбайды (қауіпсіз байланыс қолжетімді болғандықтан). Тарату арнасын қосу жүйеге азшылықтың жартысына дейін түзетуге мүмкіндік береді, ал байланыс графигіндегі байланыс шектеулері Perfectly Secure Message Transmission кітабында зерттелді. Жылдар өте келе, жалпы мақсаттағы көп тарапты протоколдар ұғымы, жалпы және негізгі протокол мәселелерін зерттеу үшін өнімді салаға айналды, мысалы, әмбебап құрастырылатындық немесе проактивті құпия бөлісудегі мобильді қарсылас. 2000 жылдардың соңынан бастап, әсіресе 2010 жылдан бастап, жалпы мақсаттағы протоколдар саласы практикалық қолдануларды ескере отырып, протоколдардың тиімділігін арттыруға көшті. MPC үшін тиімді протоколдар ұсынылды және MPC-ні әртүрлі нақты өмірлік мәселелерді шешу үшін практикалық шешім ретінде қарастыруға болады (әсіресе құпияларды тек сызықтық түрде бөлісуді және негізінен тараптар арасындағы өзара әрекеттесуі аз акцияларға жергілікті операцияларды қажет ететіндер), мысалы, үлестірілген дауыс беру, жеке сауда-саттық және аукциондар, қолтаңба немесе шифрлау функцияларын бөлісу және жеке ақпаратты алу. Көп тарапты есептеудің алғашқы кең ауқымды және практикалық қолданылуы 2008 жылдың қаңтар айында Данияның қант қызылшасы аукционында екі жақты электрондық аукционды өткізу болды. Әрине, теориялық ұғымдар мен зерттеулер, сондай-ақ қолданбалы құрылымдар қажет (мысалы, МКК-ні күнделікті бизнес құрамына енгізу шарттары ұсынылды және талқыланды). 2020 жылы қауіпсіз көп тарапты есептеумен жұмыс істейтін бірқатар компаниялар "MPC технологиясының танылуын, қабылдануын және пайдалануын жеделдету" мақсатымен MPC альянсын құрды.

Хаттамалар

Екі тарапты есептеу (2PC) және көп тарапты есептеу (MPC) үшін ұсынылған протоколдардың арасында маңызды айырмашылықтар бар. Сонымен қатар, маңызды арнайы мақсаттағы протоколдар үшін (дауыс беру, аукциондар, төлемдер және т.б.) әдеттегі протоколдардан өзгешеленетін арнайы протокол жасалуы тиіс.

Екі тараптық есептеу

Екі тарапты параметрлер ерекше қызығушылық тудырады, тек қолданыс тұрғысынан ғана емес, сонымен қатар екі тарапты параметрлерде көп тарапты жағдайда қолданылмайтын арнайы техникаларды қолдануға болады. Шындығында, қауіпсіз көп тарапты есептеу (жақсырақ айтқанда, қауіпсіз функцияны бағалаудың шектеулі жағдайы, онда тек бір функция бағаланады) алғаш рет екі тарапты параметрлерде ұсынылған. Алғашқы жұмыс көбінесе Яоның екі мақаласының бірі деп есептеледі; алайда, мақалаларда қазір Яоның бүлінген схема протоколы деп белгілі нәрсе жоқ. Яоның негізгі протоколы жартылай адал қарсыластарға қарсы қауіпсіз және раундтар саны бойынша өте тиімді, ол тұрақты және бағаланатын функцияға тәуелсіз. Функция бинарлық ұзындығы белгіленген кірістермен Бульдік тізбек ретінде қарастырылады. Бульдік тізбек - үш түрлі сымдармен байланыстырылған қақпалар жиынтығы: тізбек кіріс сымдары, тізбек шығыс сымдары және аралық сымдар. Әр қақпа екі кіріс сымын қабылдайды және келесі деңгейде бірнеше қақпаларға берілуі мүмкін бір шығыс сымына ие. Тізбектің қарапайым бағалауы әр қақпаны кезекпен бағалау арқылы жүзеге асырылады; қақпалар топологиялық ретпен орналасқан деп есептеледі. Қақпа шындық кестесі түрінде ұсынылады, сондықтан кіріс сымдарынан келетін әр мүмкін бит жұбы үшін кесте бірегей шығыс битін тағайындайды; бұл қақпаның шығыс сымының мәні. Бағалау нәтижелері тізбек шығыс сымдарында алынған биттер болып табылады. Яо тізбекті қалай бүлінгенді (оның құрылымын жасыруды) түсіндірді, сонда екі тарап, жіберуші және қабылдаушы, тізбектің шығысын және басқа ештеңені біле алмайды. Жоғары деңгейде, жіберуші бүлінген тізбекті дайындап, оны қабылдаушыға жібереді, ол оны білмейтіндей бағалайды, өзінің және жіберушінің шығысына сәйкес келетін кодтамаларды үйренеді. Содан кейін ол тек жіберушінің кодтамасын қайта жібереді, бұл жіберушіге шығыстың өзінің бөлігін есептеуге мүмкіндік береді. Жіберуші қабылдаушының шығыс кодтамасынан биттерге сәйкестікті қабылдаушыға жібереді, бұл қабылдаушыға олардың шығысын алуға мүмкіндік береді. Егжей-тегжейлі айтқанда, бүлінген тізбек келесідей есептеледі. Негізгі компонент - екі кілтті симметриялық шифрлеу схемасы. Тізбектің қақпасын ескере отырып, оның кіретін сымдарының әрбір мүмкін мәні (0 немесе 1) кездейсоқ санмен (белгімен) кодталады. Қақпаны бағалаудан алынған мәндер, төрт мүмкін кіріс биттерінің әрқайсысы үшін, сондай-ақ кездейсоқ белгілермен ауыстырылады. Қақпаның бүлінген шындық кестесі кіріс белгілерін кілттер ретінде пайдалана отырып, әрбір шығыс белгісінің шифрлануынан тұрады. Бұл төрт шифрлаудың шындық кестедегі орны кездейсоқ, сондықтан қақпа туралы ешқандай ақпарат ағып кетпейді. Әрбір бүлінген қақпаны дұрыс бағалау үшін шифрлеу схемасының келесі екі қасиеті болуы керек. Біріншіден, кез келген екі бөлек кілт астындағы шифрлеу функциясының ауқымдары (көптеген жағдайларда) бөлек. Екінші қасиет - берілген шифрланған мәтіннің берілген кілтпен шифрланғанын тиімді тексеруге болады. Осы екі қасиетпен қабылдаушы барлық тізбек кіріс сымдарының белгілерін алғаннан кейін, әр қақпаны оның белгілік кілттерімен шифрланған төрт шифр мәтінінің қайсысы екенін анықтап, содан кейін шығыс сымының белгісін алу үшін шифрлау арқылы бағалай алады. Бұл білмейтіндей жасалады, өйткені қабылдаушы бағалау кезінде биттердің кодтамасын ғана біледі. Жіберушінің (яғни тізбек жасаушының) кіріс биттері бағалаушыға тек кодтама ретінде жіберілуі мүмкін, ал қабылдаушының (яғни тізбек бағалаушының) кіріс биттеріне сәйкес келетін кодтамалар 1-ден 2-ге дейін білмейтін беру (OT) протоколы арқылы алынады. 1-ден 2-ге дейін OT протоколы C1 және C2 мәндеріне ие жіберушіге алушы сұраған мәнді (b {1,2} мәні) жіберуге мүмкіндік береді, жіберуші қандай мән берілгенін білмейді, ал алушы тек сұралған мәнді біледі. Егер қаскөй қарсыластарды қарастырылса, екі тараптың да дұрыс мінез-құлқына кепілдік беру үшін қосымша механизмдер қажет. Құрылымы бойынша, OT протоколы зиянды қарсыластарға қарсы қорғалған болса, жіберушіге қауіпсіздікті көрсету оңай, өйткені қабылдаушы тек нұсқаулардан ауытқыса, тізбек шығыс сымдарына жетуге мүмкін емес бүлінген тізбекті бағалауы керек. Жіберуші жағында жағдай мүлдем басқаша. Мысалы, ол қателікпен бүлінген тізбекті жіберуі мүмкін, ол қабылдаушының кіріс деректерін ашатын функцияны есептейді. Бұл жеке өмірдің құпиялылығы енді сақталмайды дегенді білдіреді, бірақ тізбек бүлінгендіктен қабылдаушы мұны анықтай алмайды. Алайда, бұл протоколды зиянды қарсыластарға қарсы қауіпсіз ету үшін нөлдік білімді дәлелдерді тиімді қолдануға болады, бұл жартылай адал протоколмен салыстырғанда шамалы қосымша шығынға әкеледі.

Басқа хаттамалар

2014 жылы, нәтиже алғанда тоқтатылатын қарсылас тарапқа өзара алдын ала белгіленген ақшалай айып төлеуге мәжбүр болатын, "қауіпсіз есептеудегі әділдік моделі" Биткойн желісі немесе әділ лотерея үшін сипатталды және Ethereum-да сәтті іске асырылды.

Қолда қолданылатын МКК жүйелері

Соңғы жылдары 2PC және MPC жүйелерінде көптеген үлкен жетістіктерге қол жеткізілді.

Яо-базалық протоколдар

Яо негізделген протоколдармен жұмыс істеу кезіндегі басты мәселелердің бірі – қауіпсіз бағалануға тиіс функцияның (кәдімгі бағдарлама болуы мүмкін) схема түрінде ұсынылуы керек, көбінесе ол XOR және AND шлюздерінен тұрады. Көптеген нақты бағдарламалар циклдар мен күрделі дерек құрылымдарын қамтитындықтан, бұл оңай міндет емес. Fairplay жүйесі осы мәселені шешуге арналған алғашқы құрал болды. Fairplay екі негізгі компоненттен тұрады. Біріншісі – компилятор, ол пайдаланушыларға қарапайым жоғары деңгейдегі тілде бағдарлама жазуға және осы бағдарламаларды Бульдік схема түрінде шығаруға мүмкіндік береді. Екінші компонент схеманы бұрмалап, бұрмаланған схеманы қауіпсіз бағалау үшін протоколды іске қоса алады. Яо протоколына негізделген екі тарапты есептеуден басқа, Fairplay көп тарапты протоколдарды да іске асыра алады. Бұл BMR протоколын қолдану арқылы жүзеге асырылады. Қазірге дейін белсенді қауіпсіздікті қамтамасыз етуде ең нәтижелі тәсіл – garbling техникасы мен «кесіп таңдау» парадигмасының үйлесімі болып көрінеді. Бұл комбинация тиімді құрылымдарды жасауға мүмкіндік береді. Адал емес мінез-құлыққа байланысты жоғарыда аталған проблемаларды болдырмау үшін, конструктор бағалаушыға бір схеманың көптеген бұрмалауларын жібереді. Содан кейін олардың шамамен жартысы (нақты протоколға байланысты) сәйкестікті тексеру үшін ашылады, және егер ашылмаған бөліктерінің көпшілігі жоғары ықтималдылықпен дұрыс болса, нәтиже – барлық бағалаулардың көпшілік дауысы. Осында көпшілік шығыны қажет. Егер шығыстарда келіспеушілік болса, алушы жіберушінің алдап жатқанын біледі, бірақ ол шағымдана алмайды, өйткені бұл оның кірісі туралы ақпаратты ашады. Активті қауіпсіздіктің бұл тәсілін Линдэлл мен Пинкас бастады. Пинкас және тағы басқалар бұл техниканы 2009 жылы іске асырды, соның арқасында Яо негізделген активті қауіпсіз іске асырудың тиімділігі одан әрі жақсарды, тек 40 схема және алдау ықтималдығын алу үшін азайтылған міндеттемелер саны қажет болды. Жақсартулар жаңа әдістердің нәтижесінде болды. Соңғы уақытта көп ядролы CPU-да жұмыс істеуге арналған, бұрмаланған схемаларға негізделген жоғары параллельді іске асыруға назар аударылды. Кройтер және тағы басқалар қуатты кластерлік компьютердің 512 ядросында жұмыс істейтін іске асыруды сипаттады. Осы ресурстарды пайдаланып, олар 4095 биттік редакциялық қашықтық функциясын бағалай алды, оның схемасында шамамен 6 миллиард шлюз бар. Бұл үшін олар Fairplay-ден гөрі жақсырақ схема компиляторын және құбыржол сияқты бірнеше жаңа оңтайландыруларды жасады, онда бұрмаланған схеманың желіде берілуі схеманың қалған бөлігі әлі құрылып жатқанда басталады. AES-ті есептеу уақыты 512 түйін кластерлік машинаны пайдалану арқылы бір блокқа 1,4 секундқа дейін, ал бір түйінді пайдалану арқылы 115 секундқа дейін қысқартылды. Шелат пен Шен бұл нәтижені тауарлық жабдықты пайдалана отырып, бір блокқа 0,52 секундқа дейін жақсартты. Сол мақалада бір секундта 21 блок өңделуі туралы хабарланды, бірақ бір блок өңдеуге 48 секунд кетті. Осы арада зерттеушілердің басқа тобы тұтынушы GPU-ларын пайдаланып, ұқсас параллельдік деңгейге жетуді зерттеді. Олар өздерінің GPU-ға арналған протоколын жасау үшін беймәлім беру кеңейтулерін және басқа да жаңа әдістерді қолданды. Бұл тәсіл кластерлік есептеуді іске асырумен салыстырылатын тиімділікке қол жеткізеді, ұқсас ядролар санын пайдаланады. Алайда авторлар тек AES схемасының іске асырылуы туралы хабарлайды, онда шамамен 50 000 шлюз бар. Екінші жағынан, қажетті жабдық мұнда әлдеқайда қолжетімді, өйткені ұқсас құрылғылар көптеген адамдардың үстелдік компьютерлерінде немесе ойын консольдарында болуы мүмкін. Авторлар стандартты жұмыс үстелінде стандартты GPU-мен AES блогына 2,7 секунд уақыт алады. Егер олар қауіпсіздікті жасырын қауіпсіздікке ұқсас деңгейге төмендетсе, олар AES блогы үшін 0,30 секунд жұмыс уақытын алады. Пассивті қауіпсіздік жағдайында 250 миллион шлюзді схемаларды өңдеу туралы хабарлар бар, секундына 75 миллион шлюз өңделеді.

Қауіпсіз көп тарапты есептеу деректерін талдауды іске асыру

Қауіпсіз көп тарапты есептеудің басты қолданыстарының бірі – бірнеше тараптың иелігіндегі деректерді талдауға немесе деректерді сақтаушыға талдаудың қандай түрде жүргізіліп жатқанын білдірмей, үшінші тараптардың деректерді жасырын талдауын жүзеге асыруға мүмкіндік беру болып табылады.

Жабдықтық іске асыру

Атауы Дамытушы Жыл Кірген жылы Ескертпелер Қазіргі күні қолданылуда ма? Trident MPCi4p informatics ltd. 2019 Криптографиялық кілттерді басқару үшін Secure Multi-party Computation (SMPC) қолдануға арналған, нарықтағы алғашқы Common Criteria EAL4+ сертификатталған физикалық аппараттық қауіпсіздік модулі. 2024 жылға дейін