An encrypted function is an attempt to provide
mobile code
In distributed computing, code mobility is the ability for running Computer program, programs, code or objects to be data migration, migrated (or moved) from one machine or application to another. This is the process of moving mobile code across t ...
privacy without providing any
tamper-resistant hardware. It is a method where in mobile code can carry out
cryptographic
Cryptography, or cryptology (from "hidden, secret"; and ''graphein'', "to write", or '' -logia'', "study", respectively), is the practice and study of techniques for secure communication in the presence of adversarial behavior. More gen ...
primitives.
Polynomial
In mathematics, a polynomial is a Expression (mathematics), mathematical expression consisting of indeterminate (variable), indeterminates (also called variable (mathematics), variables) and coefficients, that involves only the operations of addit ...
and
rational function
In mathematics, a rational function is any function that can be defined by a rational fraction, which is an algebraic fraction such that both the numerator and the denominator are polynomials. The coefficients of the polynomials need not be ...
s are
encrypted
In cryptography, encryption (more specifically, encoding) is the process of transforming information in a way that, ideally, only authorized parties can decode. This process converts the original representation of the information, known as plain ...
such that their transformation can again be implemented, as programs consisting of
cleartext instructions that a
processor or
interpreter
Interpreting is translation from a spoken or signed language into another language, usually in real time to facilitate live communication. It is distinguished from the translation of a written text, which can be more deliberative and make use o ...
understands. The processor would not understand the program's function. This field of study is gaining popularity as mobile cryptography.
Example
Scenario:
Host A, has an
algorithm
In mathematics and computer science, an algorithm () is a finite sequence of Rigour#Mathematics, mathematically rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algo ...
which computes function f. A wants to send its
mobile agent
In computer science, a mobile agent is a piece of software agent combined with data that is able to migrate from one computer to another autonomously and continue its execution on the destination with the ability to interact with other agents ther ...
to B which holds input x, to compute f(x). But A doesn't want B to learn anything about f.
Scheme:
Function f is encrypted in a way that results in E(f). Host A then creates another program P(E(f)), which implements E(f), and sends it to B through its agent. B then runs the agent, which computes P(E(f))(x) and returns the result to A. A then decrypts this to get f(x).
Drawbacks:
Finding appropriate encryption schemes that can transform arbitrary functions is a challenge. The scheme doesn't prevent
denial of service
In computing, a denial-of-service attack (DoS attack) is a cyberattack in which the perpetrator seeks to make a machine or network resource unavailable to its intended users by temporarily or indefinitely disrupting services of a host co ...
, replay,
experimental extraction and others.
See also
*
Homomorphic encryption
Homomorphic encryption is a form of encryption that allows computations to be performed on encrypted data without first having to decrypt it. The resulting computations are left in an encrypted form which, when decrypted, result in an output th ...
References
* Thomas Sander and Christian F. Tschudin. ''Protecting Mobile Agents Against Malicious Hosts.'' In G. Vigna, editor, Mobile agents and security, volume 1419 of Lecture Notes in Computer Science, pages 44–60. Springer-Verlag, New York, NY, 1998
Cryptography
{{comp-sci-stub