Turing Functional Ciphertext

Current research literature for protecting mobile agents from malicious execution environments, such as homomorphic encryption schemes, Boolean circuits, obfuscation and computing with encrypted functions, provide building blocks for the possibility of secure remote encrypted computations. However, existing solutions are only partial and additional research is needed to reach the ideal condition where an attacker is not able to know the real purpose of a program in polynomial time in order to significantly reduce worst case tampering to blind disruption. This research paper explores the possibility of a Turing transformation of plaintext programs into functional ciphertext programs. 1.0 Introduction With the growing demand for distributive processing, mobile agents provide the ability to transport functionality to the location of the data [12]. Mobile agents are able to roam on a mobile network autonomously performing efficient computations and data collection at remote hosts without consuming a lot of network resources as compared to peer-to-peer or client-server processes where computation requests and data can frequently travel back and forth between nodes for a given process [12, 28]. However, it is this autonomous characteristic of mobile agents that leaves them vulnerable to attack. It is difficult to protect a mobile agent, since it can be completely scrutinized by the host that executes it [12, 28]. More distributed computing systems would adopt mobile networks utilizing mobile agents today if it was not for the existing security vulnerabilities. This paper provides a permutation-substitution process [4] for transforming a Turing machine TM into another distinct Turing machine TM′. The goal is to build a cryptographic transformation process of programs that will prevent an adversary from knowing the real intentions of a transformed program so that his ability to tamper with the program is significantly reduced. Additionally, the result or output of the encrypted program should allow effective retrievability, such that the result or output should be decrypted yielding the final and correct output. The remainder of this paper is organized in the following way: The introduction further discusses mobile agents and related work. Section 2 discusses the paper objectives. Section 3 considers the involved cryptographic aspects and section 4 consists of the computational considerations along with the proposed substitutionpermutation network for Turing machine transformation. In section 5 an analysis is conducted for interpreting the results of section 4. Finally, section 6 contains the conclusion, along with some challenges and future work. 1.1 Mobile Agent Properties Mobile agents are relatively small pieces of software that must carry out a very finite objective. For instance, a mobile agent can be dispatched to 10 hosts to simply propose a request and collect a bid from each host. It is not reasonable for mobile agents to be very large i.e. an agent equivalent to the size of a large operating system, that would consume not only a lot of network bandwidth during traversal but also a great deal of computational resources of the host it is intended to execute on. Mobile agents contain program and data [28]. Since, mobile agents in a given node can suspend execution, traverse to another node, and resume execution of its Turing Functional Ciphertext Willard Thompson 2 program, the mobile agent must also at any time contain the execution state of its program [28]. Furthermore, to be truly autonomous, mobile agents must not be allowed to interact with any other entity, agent, host or otherwise, that is not directly involved with its computation [23, 24, 25, 26]. Ultimately, as long as the mobile agent is not malicious, it must be allowed to securely execute its code, collect its data, and move to its next destination, fulfilling its objectives, until it is time for it to return to its final destination. 1.2 Mobile Agent Security There are 4 general areas of mobile agent security: protecting the host from malicious agents, protecting the agent from malicious hosts, protecting an agent from 1 or more other malicious agents, and protecting mobile agents from other malicious nonagent entities [28]. In some respects, however, it can be reasonably assumed that there are only 2 general areas of mobile agent security concerns, protecting the agent and protecting the host [12, 25]. In fact, Vitek and Castagna [12], further describe attacks on mobile agents as either exogenous, which describe attacks on the agent outside of the host, for instance, in transit, and endogenous, which are attacks exclusively on the agent system. There are 2 types of endogenous attacks, horizontal [12], which are attacks between mobile agents within the same host, and vertical [12], which are attacks by resources of the host such as the runtime environment, etc. The latter type of endogenous attack is the malicious host problem. 1.3 Related Work Most mobile agent security research has been focused on protecting the mobile agent from a malicious host. Jansen and Karygiannis [28] mention masquerading, denial of service, eavesdropping and alteration as threats to mobile agents. The following is a general overview of the related work with respect to remote encrypted computations. 1.3. 1 Sander and Tschudin’s Work Sander and Tschudin [24, 25, 26] have provided excellent summaries on the usage of homomorphic encryption schemes [24, 25], computing with encrypted data [13, 14, 25] and computing with encrypted functions [13, 25], with respect to mobile agents. Sander and Tschudin mention that executing encrypted programs ensures code integrity and privacy and would increase security by preventing program alterations [25]. One challenge to achieve this is applying cryptographic primitives for securing mobile agents and Sander and Tschudin have proposed one such cryptographic primitive scheme using undetachable digital signatures where the computation on the host is bounded by a signature such that the host is forced to sign the function that it executes, thus it cannot repudiate execution of that function [25]. 1.3. 2 Mathematical Systems There has been substantial research regarding the application of algebraic structures and homomorphic encryption schemes with respect to abelian groups [19, 29], non-abelian groups [6], rings [17, 25], polynomials [2, 25], fields [3], and vectors. Turing Functional Ciphertext Willard Thompson 3 The overall goal is to successfully construct a mapping between 1 set of objects with 1 or more associated operations (in our case it’s a set of programs) to another set of objects (again another set of programs) that also have 1 or more associated operations. For instance, a very primitive and simple example would be a group of integers Z under the addition operation mapped to the group of integers Z. Sander and Tschudin’s foundations come from more fundamental mathematical origins by Rivest, et. al. [21], the origination of privacy homomorphism, Zippel [22] with regard to functional decomposition in polynomial time and Ferrer [11] who expands upon privacy homomorphism by increasing the computational degree to thwart known plaintext attacks. Desmedt and Frankel [29] have provided a homomorphic threshold scheme over finite Abelian groups, where a number of parts of a secret are created such that only a minimum number of those parts are needed to reproduce that secret. More recent work by Fouque, et. al. [16], further extends the homomorphic encryption scheme into computing with encrypted rational numbers. Ishai and Kushilevitz [30, 31] present randomizing polynomials for more efficient and secure computations and Cramer, et. al. [17, 18] provide a more efficient multi-party computation over rings. De Santis, et. al., [1] define a functional analogue of secret sharing, that essentially divides a very difficult function into sub-functions such that it takes a certain number or threshold of these sub-functions to successfully recompute the original integrated functions. Finally, Brekne [23] has begun to explore possibilities in encrypted representations of automata and has arrived at some interesting challenges for universal transformations. 1.3. 3 Obfuscation Code obfuscation [10, 13] would seem to be a viable solution to encrypting a program because an increased amount of complexity exists for an attacker to consider [8, 13], but obfuscation is nothing more than a variation of steganography, in other words the answer is there in front of the attacker’s eyes, he just needs to know where to look. Though if only humans analyzed programs then obfuscation could provide enough security, however, the more damaging attacks are the automated ones [12, 13]. Obfuscation uses heuristic methods for changing a program into some chaotic form that is actually another (very obscure) representation of the same functions [13]. Obfuscation does not provide any mathematical basis of security thus making it difficult to measure its security effectiveness. The difference between encrypting a program and obfuscation is that program encryption ideally is provably secure and does not disclose the intention of the non-encrypted program whatsoever. Sarmenta [13] compares obfuscation to encrypted computation in a very elegant way: “Because they work on computer programs in general, obfuscation techniques are much more widely applicable than encrypted computation techniques, which currently work only for specific mathematical constructs such as polynomials. Thus, at present, obfuscation seems to be the more promising path to achieving blackbox security. Unfortunately, however, as we have seen, obfuscation is not as provably secure as encrypted computations. ” Turing Functional Ciphertext Willard Thompson 4 1.3. 4 Boolean Circuits Perhaps the closest possibility to a solution to the problem of remote encrypted computation is Boolean circuits [2, 9, 15, 19]. Since Ada