Setelah membaca jawaban ini beberapa waktu yang lalu, saya tertarik pada enkripsi homomorfik sepenuhnya. Setelah membaca pengantar tesis Gentry, saya mulai bertanya-tanya apakah skema enkripsi-nya dapat digunakan untuk eksekusi kode yang tidak dikenali sebagaimana didefinisikan dalam paragraf ketiga.
Dalam skema enkripsi yang sepenuhnya homomorfik, kami biasanya mengenkripsi beberapa data, mengirimkannya ke lingkungan yang tidak bersahabat di mana fungsi tertentu dihitung pada data, yang hasilnya kemudian dikirim kembali (dienkripsi), tanpa musuh mengetahui apa yang diterima data atau hasil dari fungsinya adalah.
Dengan eksekusi kode yang tidak saya maksudkan, kami bermaksud mengenkripsi sepotong kode dirancang untuk memecahkan beberapa masalah P dan mengirimkannya ke lingkungan yang tidak bersahabat. Musuh ingin menggunakan C untuk menyelesaikan P , tapi kami tidak ingin dia tahu bagaimana C bekerja. Jika ia memiliki input I untuk P , ia dapat mengenkripsi I dan kemudian menggunakan (beberapa skema enkripsi pada) C dengan I , yang kemudian mengembalikan output (tidak terenkripsi) O (solusi P untuk input I). Skema enkripsi memastikan musuh tidak pernah menemukan cara kerja potongan kode, yaitu baginya bekerja seperti oracle.
Penggunaan praktis utama (yang bisa saya pikirkan) untuk skema enkripsi semacam itu adalah untuk membuat pembajakan menjadi lebih sulit atau bahkan tidak mungkin.
Alasan saya pikir ini dimungkinkan dengan menggunakan skema enkripsi homomorfik sepenuhnya karena kita dapat mengeksekusi rangkaian arbitrer pada data terenkripsi, khususnya mesin Turing universal. Kami kemudian dapat mengenkripsi kode seolah-olah itu data dan kemudian menggunakan sirkuit untuk mesin Turing universal pada data terenkripsi ini untuk mengeksekusi kode.
Saya mengajukan ini sebagai pertanyaan di sini karena saya tidak tahu apakah ide ini dapat digunakan: Saya tidak pernah melangkah lebih jauh dari pengenalan tesis Gentry, dan pengetahuan saya tentang kriptografi terbatas. Juga, saya tidak tahu apakah sudah ada istilah yang sering digunakan untuk eksekusi kode yang tidak diketahui: Saya mencoba mencari ide Google tetapi tidak mengetahui istilah yang tepat saya tidak menemukan apa pun.
Ada beberapa masalah yang dapat saya pikirkan yang dapat menyebabkan masalah dengan pendekatan ini. Pertama, jika kita menggunakan enkripsi homomorfik sepenuhnya tanpa modifikasi, hasil perhitungan ( ) akan dienkripsi. Oleh karena itu akan sia-sia untuk musuh yang ingin menggunakan kode Anda untuk memecahkan P . Meskipun ini masih bisa berguna untuk, katakanlah, cloud computing, ini bukan yang ingin saya capai.
Kedua, karena kami menggunakan sirkuit dan bukan mesin Turing yang sewenang-wenang, kami tidak dapat menggunakan jumlah memori yang sewenang-wenang: kami terbatas pada jumlah memori yang telah ditentukan. Ini berarti bahwa jika kita ingin menjalankan suatu program dengan cara ini, jejak memorinya akan selalu sama, yaitu penggunaan memori puncaknya.
Terakhir, konstanta yang terlibat hampir pasti akan mematikan penggunaan praktis sistem semacam itu, tapi saya pikir idenya menarik.