Sau khi đọc câu trả lời này một lúc trước, tôi đã quan tâm đến việc mã hóa hoàn toàn đồng cấu. Sau khi đọc phần giới thiệu của luận án Gentry, tôi bắt đầu tự hỏi liệu sơ đồ mã hóa của anh ta có thể được sử dụng để thực thi mã không biết như được định nghĩa trong đoạn thứ ba hay không.
Trong sơ đồ mã hóa hoàn toàn đồng hình, chúng tôi thường mã hóa một số dữ liệu, gửi nó đến một môi trường thù địch nơi một chức năng nhất định được tính trên dữ liệu, kết quả sau đó được gửi lại (được mã hóa) mà không cần tìm hiểu dữ liệu nhận được hoặc kết quả của hàm là.
Với việc thực thi mã không biết tôi có nghĩa là chúng tôi mã hóa một đoạn mã được thiết kế để giải quyết một số vấn đề và gửi nó đến một môi trường thù địch. Kẻ thù muốn sử dụng để giải quyết , nhưng chúng tôi không muốn anh ta biết hoạt động như thế nào . Nếu anh ta có đầu vào cho , anh ta có thể mã hóa và sau đó sử dụng (một số sơ đồ mã hóa trên) với , sau đó trả về đầu ra ( không được mã hóa) (giải pháp của cho đầu vào). Lược đồ mã hóa đảm bảo rằng kẻ thù không bao giờ tìm ra cách thức đoạn mã hoạt động, tức là đối với anh ta, nó hoạt động giống như một lời sấm truyền.
Việc sử dụng thực tế chính (tôi có thể nghĩ ra) cho một kế hoạch mã hóa như vậy sẽ làm cho việc vi phạm bản quyền trở nên khó khăn hơn hoặc thậm chí là không thể.
Lý do tôi nghĩ rằng điều này có thể khả thi khi sử dụng sơ đồ mã hóa hoàn toàn đồng hình là bởi vì chúng ta có thể thực thi các mạch tùy ý trên dữ liệu được mã hóa, đặc biệt là một máy Turing phổ dụng. Sau đó chúng ta có thể mã hóa mã như thể đó là dữ liệu và sau đó sử dụng mạch cho máy Turing phổ dụng trên dữ liệu được mã hóa này để thực thi mã.
Tôi đặt ra câu hỏi này ở đây vì tôi không biết liệu ý tưởng này có thể sử dụng được hay không: tôi chưa bao giờ hiểu được nhiều hơn so với việc giới thiệu luận án của Gentry và kiến thức về mật mã học của tôi bị hạn chế. Ngoài ra, tôi không biết liệu đã có một thuật ngữ thường được sử dụng để thực thi mã không biết hay chưa: Tôi đã thử tìm kiếm ý tưởng của Google nhưng không biết thuật ngữ thích hợp tôi không tìm thấy gì.
Có nhiều vấn đề tôi có thể nghĩ ra có thể gây ra vấn đề với phương pháp này. Thứ nhất, nếu chúng ta sử dụng mã hóa đồng cấu hoàn toàn mà không sửa đổi, kết quả của tính toán ( ) sẽ được mã hóa. Do đó, sẽ là vô ích cho kẻ thù ai muốn sử dụng mã của bạn để giải quyết . Mặc dù điều này vẫn có thể hữu ích cho, giả sử, điện toán đám mây, đây không phải là điều tôi muốn đạt được.
Thứ hai, vì chúng tôi đang sử dụng các mạch chứ không phải các máy Turing tùy ý, chúng tôi không thể sử dụng lượng bộ nhớ tùy ý: chúng tôi giới hạn ở một lượng bộ nhớ định trước. Điều này có nghĩa là nếu chúng ta muốn chạy một chương trình theo cách này, thì dung lượng bộ nhớ sẽ luôn giống nhau, đó là mức sử dụng bộ nhớ cao nhất.
Cuối cùng, các hằng số liên quan gần như chắc chắn sẽ giết chết mọi sử dụng thực tế của một hệ thống như vậy, nhưng tôi nghĩ rằng dù sao thì ý tưởng này cũng thú vị.