이 답변 을 얼마 전에 읽은 후에 완전히 동종 암호화에 관심을 보였습니다. Gentry의 논문 소개를 읽은 후, 그의 세 번째 단락에 정의 된대로 암호화 체계가 명백한 코드 실행에 사용될 수 있는지 궁금해지기 시작했습니다.
완전히 동질적인 암호화 체계에서 우리는 일반적으로 일부 데이터를 암호화하고 데이터에 대해 특정 기능이 계산되는 적대적인 환경으로 보내며, 그 결과는 상대방이 수신 된 데이터 또는 기능의 결과는입니다.
명백한 코드 실행으로 우리는 문제 를 해결하기 위해 설계된 코드 암호화 하여 적대적인 환경으로 보냅니다. 적은 를 사용 하여 를 풀고 싶지만 가 어떻게 작동 하는지 알고 싶지 않습니다 . 그 입력이있는 경우 에 대한 , 그 암호화 할 수 하고 (일부 암호화의 방식)를 사용하여 와 다음 (암호화되지 않은) 출력 반환 (용액 의 입력을위한P C P C I P I C I O P I). 암호화 체계는 공격자가 코드 조각의 작동 방식을 찾지 못하도록합니다. 즉 그에게 오라클처럼 작동합니다.
이러한 암호화 체계의 주된 실용적 사용 (해당 생각할 수있는)은 불법 복제를 더 어렵거나 불가능하게 만드는 것입니다.
내가 완전히 동종 암호화 방식을 사용하여 이것이 가능하다고 생각하는 이유는 암호화 된 데이터, 특히 범용 Turing 머신에서 임의의 회로를 실행할 수 있기 때문입니다. 그런 다음 코드를 데이터처럼 암호화 한 다음이 암호화 된 데이터에서 범용 Turing 머신의 회로를 사용하여 코드를 실행할 수 있습니다.
이 아이디어를 사용할 수 있는지 여부를 알 수 없기 때문에 이것을 여기에 질문으로 삼습니다. Gentry의 논문을 소개하는 것보다 훨씬 더 많은 것을 얻지 못했으며 암호화에 대한 내 지식은 제한적입니다. 또한 이미 잘 모르는 코드 실행에 대해 자주 사용되는 용어가 있는지 모르겠습니다. 아이디어를 찾기 위해 Google을 검색했지만 적절한 용어를 알지 못했습니다.
내가 생각할 수있는 여러 가지 문제가 있으며이 접근법에 문제가 발생할 수 있습니다. 먼저 수정없이 완전히 동종 암호화를 사용하면 계산 결과 ( )가 암호화됩니다. 따라서 코드를 사용하여 를 해결하려는 적에게는 쓸모가 없습니다 . 이것이 여전히 클라우드 컴퓨팅에 유용 할 수 있지만 이것이 내가 달성하고자하는 것은 아닙니다.P
둘째, 우리는 임의의 Turing 기계가 아닌 회로를 사용하기 때문에 임의의 양의 메모리를 사용할 수 없습니다. 우리는 미리 정해진 양의 메모리로 제한됩니다. 즉, 이런 방식으로 프로그램을 실행하려면 메모리 사용량이 항상 동일합니다. 즉, 최대 메모리 사용량입니다.
마지막으로, 관련된 상수는 그러한 시스템의 실제 사용을 거의 확실하게 없애 버릴 것이지만 아이디어는 흥미 롭습니다.