Misalkan ada pihak , masing-masing dengan sedikit . Saya ingin menghitung penggandaan jumlah yang kali dari nol, yaitu, .
Perhitungan harus aman dalam arti bahwa tidak ada pihak bisa belajar lebih banyak daripada hasil akhir . Sebagai contoh, tidak aman untuk melakukan jumlah yang aman, karena akan diketahui, dan jumlahnya sensitif dalam masalah saya. Jadi, apakah ada protokol perhitungan aman yang ada yang sesuai dengan permintaan?
Sunting: Angka dalam masalah besar, setidaknya lebih dari . Maka diperlukan perhitungan multipartai yang aman dan efisien. Protokol penjumlahan aman bisa efisien tetapi SMC generik seperti sirkuit boolean mungkin terlalu intensif komputasi. Jadi saya perlu protokol yang efisien.
cr.crypto-security
security
Richard
sumber
sumber
Jawaban:
Jawaban ini adalah tentang solusi yang layak berdasarkan enkripsi homomorfik yang TIDAK sepenuhnya homomorfik, karena yang terakhir mungkin sangat tidak efisien (jika ada kriptosistem homomorfik sepenuhnya efisien yang sebanding dengan yang disediakan di bawah ini dalam hal efisiensi, saya akan senang untuk dengar tentang mereka).
Karena Anda hanya memerlukan satu perkalian, maka ada solusi yang berpotensi lebih murah daripada enkripsi homomorfik sepenuhnya: [1] dan [2]. Yang terakhir ini bekerja pada bit-dekomposisi input yang terenkripsi sehingga akan membutuhkan protokol bit-dekomposisi seperti [3] dan [6], tetapi yang pertama bekerja pada seluruh nilai. Hanya untuk kelengkapan, yang pertama telah diperluas untuk operand perkalian di [4], meskipun OP mungkin tidak membutuhkan ini. Solusi ini bersifat non-interaktif dan harus berfungsi dalam kasus dua pihak.d
Jika Anda memiliki lebih dari dua pihak dan dapat melakukan beberapa interaksi maka [5] menyediakan "gerbang multiplikasi aman" yang berpotensi lebih efisien dan memungkinkan jumlah perkalian yang tidak terbatas. Ini bekerja pada dasarnya dengan mengonversi nilai yang dienkripsi secara homomorfis menjadi semacam berbagi rahasia, melipatgandakan hasilnya (secara interaktif), kemudian mengubahnya kembali menjadi enkripsi homomorfik.
[1] Mengevaluasi Rumus 2-DNF pada Ciphertext
[2] Cryptocomputing non-interaktif untuk NC1
[3] Perhitungan Multi-partai Putaran-Konstan Tanpa Syarat untuk Kesetaraan, Perbandingan, Bit, dan Eksponensial
[4] Enkripsi Homomorfik Aditif dengan Multiplikasi d-Operand
[5] Komputasi Multipartai dari Enkripsi Homomorfik Ambang
[6] Konversi Biner yang Efisien untuk Nilai Terenkripsi Paillier
sumber
Jawaban baru (10/24): Saya pikir makalah berikut ini memberikan solusi yang elegan dan efisien untuk masalah Anda:
Mereka menunjukkan bagaimana membangun algoritma enkripsi kunci-publik dengan dua properti berguna berikut:E(⋅)
Aditif homomorfik. Mengingat dan , siapa pun dapat menghitung .E(x) E(y) E(x+y)
Dapat bertambah banyak (sekali). Diberikan dan (tidak ada yang dihasilkan sebagai hasil dari operasi multiplikasi), siapa pun dapat menghitung . Anda dapat menggunakan hasil dalam operasi penjumlahan, tetapi Anda tidak dapat menggunakannya dalam operasi perkalian mana pun (hasil perkalian ternoda, dan nilai-nilai tercemar tidak dapat digunakan sebagai input untuk perkalian lain).E(x) E(y) E(x⋅y)
Konsekuensinya adalah bahwa, diberi kuadrat multivariat polinomial , dan diberikan , siapa pun dapat menghitung enkripsi dari . Ini sangat berguna untuk situasi Anda.Ψ(x1,…,xn) E(x1),…,E(xn) Ψ(x1,…,xn)
Khususnya, dalam situasi Anda, kami dapat membentuk polinomial Perhatikan bahwa ini adalah polinomial multivarian kuadratik, sehingga mengingat semua , siapa pun dapat menghitung . Perhatikan juga bahwa , jadi kami mencoba menghitung dengan tepat nilai polinomial ini.
Ini menyarankan protokol alami untuk masalah Anda, menggunakan versi ambang batas skema enkripsi dalam makalah yang dirujuk di atas:
Anda harus mengisi beberapa detail, tetapi saya yakin Anda dapat memperluas sketsa / garis besar ini untuk mendapatkan protokol yang akan menyelesaikan masalah Anda secara efisien dan aman.
Jawaban lama saya:
Saya masih akan mencari protokol multipartai yang aman untuk menghitung jumlah .S=∑jbj
Satu-satunya cara yang kurang dari skema Anda adalah itu mengungkapkan satu bit tambahan: itu mengungkapkan apakah atau tidak. Apakah itu sedikit informasi penting dalam pengaturan Anda?S<N/2
Anda mengatakan jumlah sensitif dalam aplikasi Anda. Saya harap Anda sadar bahwa mengungkapkan nilai mengungkapkan hingga dua kemungkinan (yaitu, mengingat , kita dapat menghitung nilai sedemikian rupa sehingga ).S R S R Q S∈{Q,N−Q}
Jika Anda benar-benar harus menyembunyikan informasi ini, berikut adalah pendekatan berbeda yang mungkin dapat Anda lakukan. Untuk setiap pasangan pihak , aman menghitung mana , adalah operasi xor, dan adalah semacam enkripsi aditif-homomorfik tambahan skema. Maka Anda mungkin dapat menghitung dari ini. Ada beberapa detail untuk dikerjakan dan model ancaman mungkin bukan yang Anda harapkan, tetapi mungkin Anda bisa membuat sesuatu seperti ini berhasil.i,j E(ci,j) ci,j=bi⊕bj ⊕ E ∑i<jci,j=R
sumber