Кіріспе

Криптографияда жеке ақпаратты алу (PIR) протоколы – пайдаланушыға дерекқоры бар серверден қандай дерек алынғанын жасыра отырып, бір элементті алуға мүмкіндік беретін протокол. PIR – бұл 1-ден n элементтің арасынан таңдаудың құпиялы түрде жүзеге асырылуының (oblivious transfer) әлсіз түрі, онда пайдаланушы дерекқордың басқа элементтері туралы ақпарат алмауы керек. PIR-ге қол жеткізудің тривиальды, бірақ өте тиімсіз жолы – сервердің дерекқордың толық көшірмесін пайдаланушыға жіберуі. Шындығында, бұл классикалық немесе кванттық жағдайда, бір серверлік ортада пайдаланушының сұрауы үшін теориялық құпиялылықты қамтамасыз ететін жалғыз мүмкін протокол. Бұл мәселені шешудің екі жолы бар: сервердің есептеу мүмкіндіктерін шектеу немесе әрқайсысында дерекқордың көшірмесі бар, бірақ бір-бірімен ынтымақтаспайтын бірнеше серверлер бар деп есептеу. Бұл мәселені 1995 жылы Chor, Goldreich, Kushilevitz және Sudan енгізген. Содан бері өте тиімді шешімдер табылды. Бір дерекқорлық (есептеулік түрде жеке) PIR тұрақты (амортизацияланған) байланыс арқылы, ал k дерекқорлық (ақпараттық теориялық) PIR байланыс арқылы жүзеге асырылуы мүмкін.

Басқа криптографиялық примитивтермен байланысы

Бір жолды функциялар қажет, бірақ есептеу арқылы жеке ақпаратты алу үшін (яғни, сызықтық емес байланыспен) бір дерекқордан мәнді алу жеткілікті екені белгілі емес. Шындығында, мұндай протокол Джованни Ди Кресценцо, Тал Малкин және Рафаил Островский тарапынан ұмытылған беруді қамтамасыз ететіні дәлелденді (төменде қараңыз). Ұмытылған беру, сондай-ақ симметриялық PIR деп аталады, бұл PIR-дің қосымша шектеуі, онда пайдаланушы сұраған мәнінен басқа ешқандай мәнді білмеуі керек. Ол симметриялық деп аталады, өйткені пайдаланушы мен дерекқордың екеуі де құпиялылықты сақтау қажеттілігіне ие. Ishai, Kushilevitz және Ostrovsky көрскендей, соқтығысуға төзімді криптографиялық хэш функциялары кез келген бір раундты есептеу PIR схемасынан туындайды.

PIR-дің өзгеруі

Жеке ақпаратты алудың негізгі себебі – екі тараптың бірінде (жіберушіде) деректер базасы бар, ал екінші тарап (алушы) оны белгілі бір құпиялылық шектеулерімен және кепілдіктерімен сұрағысы келетін екі тараптық протоколдар отбасы. Осылайша, протокол нәтижесінде, егер алушы деректер базасындағы i-інші мәнді алғысы келсе, ол i-інші жазбаны білуі керек, бірақ жіберуші i туралы ештеңе білмеуі тиіс. Жалпы PIR протоколында, есептеу мүмкіндігі шексіз жіберуші i туралы ештеңе біле алмайды, сондықтан құпиялылық теориялық тұрғыдан сақталады. PIR мәселесі қойылғаннан бері оның шешімін табуға әртүрлі тәсілдер қолданылды және бірнеше өзгерістер ұсынылды. CPIR (Computationally Private Information Retrieval) протоколы PIR протоколына ұқсас: алушы жіберушінің деректер базасынан өзі таңдаған элементті алады, сондықтан жіберуші қандай элемент берілгені туралы ешқандай ақпарат алмайды. CSPIR (Computationally Symmetric Private Information Retrieval) протоколы CPIR протоколы қолданылатын ұқсас жағдайда қолданылады. Егер жіберушіде деректер базасы болса және алушы осы деректер базасындағы i-інші мәнді алғысы келсе, SPIR протоколын орындау аяқталысымен алушы деректер базасындағы i-інші мәннен басқа мәндер туралы ештеңе білмеуі керек. CPIR-дің Postgres C/C++ кеңейтімдегі іске асырылуы [GitHub, 2021]. SealPIR – CPIR-дің жылдам іске асырылуы [ACLS 2018]. Popcorn – БАҚ үшін арналған PIR іске асырылуы [GCMSAW 2016]. Percy++ – [DHS 2014] ITPIR схемасының іске асырылуы. XPIR – CPIR-дің жылдам іске асырылуы [ABFK 2014]. upPIR – ITPIR-дің іске асырылуы [Cappos 2013].