Dienstag, 30. Juli 2013

The Multi-linear Jigsaw of "Candidate Indistinguishability Obfuscation" for functional software encryption (possibly part 1)

This evening I noticed a few retweets about a code obfuscation technique that was reported as being new and groundbreaking. I was intrigued and read a good article article, but was unsatisfied with the level of detail and the number of unanswered questions I was left with: "What is the concept of obfuscation they use; isn't there a proof of impossibility?" "Does it work for all programs?" "How secure, and how provable is this technique?" and "What does 'multilinear jigsaw puzzle' in detail mean?" as well es my curiosity regarding the 'how' of their construction. To answer these questions, I took a look at the paper itself and took some more detailed notes which you can find below. In short, they have a precise notion of security for their understanding of obfuscation as well as a progression of generalizing and securing their core idea.

The concept of obfuscating and its security:

The issue the paper contributes to is as follows: can one make a program, while preserving its functionality, make it unintelligible (so that looking at it doesn't give you a whole lot of information)? There is a result that roughly states that it is almost impossible to have an "encrypted simulation" of a program to obfuscate it, since it can be shown that one can construct efficient unobfuscater that extracts the information used to make the program unintelligible.
A solution to this dilemma is given by a slightly different formulation of this problem, called the indistinguishability obfuscation. Instead of resorting to simple models of computations such as Turing machines, it uses circuits. Given a particular class of circuits , then an indistinguishability obfuscator should guarantee that for two equivalent ciruits and the two distributions and are computationally indistinguishable. It has been an open question, whether such an obfuscator exsists for all polynomial sized circuits.
The guarantee of the obfuscator is formalized by security parameters,; the cirucuit class of the obfuscator is actually . For encoded circuit equipped with a security parameter, e.g. , there is for any distinguisher a negligible function and it holds: for all obfuscations of the same circuit , the probability of distinguishing it is bounded by .

The computation model:

The paper proposes an indistinguishability obfuscator for circuits of the class , that is the class of all circuits that are polynomial in size, and have a logarithmic (specifically: ) depth; one can think of a polynomial number of parallel processors with each a logarithmic runtime. It is not known whether this class equals P, but it can be shown that by sequentializing the computations. For another idea about the class: , where contains all boolean circuits with depth and polynomial number of AND/OR gates that admit an arbitrary number of inputs.
The neat feature of used for the later construction is giving by Barrington's theorem: Every circuit of can be transformed into a collection of square matrices and and model the computation of the circuit, given input of length by a matrix product with a pre-defined .

The core construction:

Besides the need for additional security, the matrix computation will be encoded into groups : if an entry of a matrix is , e.g. at , it is encoded as . Using a multilinear map, the product can be represented in a single group .

The ominous multi-linear jigsaw puzzle is described as follows: given a mutilinear map system over groups of prime order p , a valid multinear form is given by any expression involving operations in , the multilinear form and the operations within each group for the parameters of the multilinear map. The papers gives a sample expression for the case of as , where , and so an, .

Group elements then can be viewed as puzzle pieces for the puzzle given by such an expression. A solution is given when the expression yields a unit . The puzzle thus has a generator outputting system parameters and some nonempty sets of elements and the validator inputs where the last tuple element is a valid multilinear form. It gives a positiv answer if the form with the given elements gives a unit element of .

In order to prove security, the paper makes hardness assumptions of the form: for generators for such that for a form with it is impossible to distinguish tuples of expotential products of the generators.
The obfuscation scheme:
This construction then is used in a Witness encryption like scheme:
We observe here an analogy to witness indistinguishable proofs: if a statement being proven only has a unique witness, then a witness-indistinguishable proof does not need to hide the witness. The way witness indistinguishability can be used is by explicitly constructing statements that can have multiple witnesses. Similarly, we will use indistinguishability obfuscation by constructing circuits that inherently have multiple equivalent forms. We use this analogy to build our main application of functional encryption.
This is used as
Given an Language , a witness encryption scheme for is an encryption scheme that takes as input an instance and a message bit , and outputs a ciphertext . If and is a valid witness for , then a decryptor can use to decrypt and recover . However, if , then an encryption of 0 should be computationally indistinguishable from an encryption of 1.
The Indistinguishablity Obfuscation for implies Witness encryption for an -Complete language. The takes proceeds to argue for , using the function defined by:
  • if w is a valid witness for x
yields a witness scheme because for and , is in .
The remainder:
This finishes up this post, being possibly part 1, since the paper continues:
  • to solve the open problem by lifting the construction to obtain a construction for all polynomial sized circuits
  • provide functional encryption schemes for those circuits
  • obtains a "meaningful" simulation based security for function encryption
  • provides security proofs against several classes of attacks
But I figure that if someone wants to know these details too, they'd have already read the paper before arriving here -- while my questions along the lines of "What are they doing?", "Does it work for all programs?", "How secure, and how provable is this?" are answered sufficiently for now.
The actual paper is at http://eprint.iacr.org/2013/451

Montag, 29. Juli 2013

Categorial constructions (Part 1)

Reading up on a paper, I discovered that I will need Day's convolution to construct tensors in a bicategory of monoidal supported profunctors. The hom-categories of these to then capture supported pre-categories as a partial monoid.

So slowly working toward it, I flesh out some of my notes here:

Usually, one encounters convolution in electrical engineering and in image processing; the convolution of two functions and , denoted by the convolution operator as is defined as

where are maps from a group to complex numbers. It can be thought of as a moving window, giving by one of the function, that inspects the values of the other function. This definition can be extended to convolutions on functors on a monoidal category to the category of sets , .

In the standard setting, convolution yields a commutative algebra without identity on the linear space of (suitably) measureable functions. For the extension, the functor category of functors yields a monoidal category; Day's convolution is its tensor product.

A simple example to see how it works is given by graded sets in a categorical setting: given the discrete category with natural numbers as objects and only identify mappings as morphisms, where addition plays the role of the monoidal product, the graded sets then can be represented by functors . The convolution in the category then is

Where is the addition of natural numbers. Moving on to a more general setting, one wants to replace by a general monoidal category . The formula for the convolution, given two presheaves is defined as

In that expression, the convolution product is given by a coend of the functor under the integral symbol. The coend of an functor in is an object with a universal dinatural transformation . In this case, the notion of dinatural transformation relaxes the requirements of a natural transformation: usually, for a natural transformation between functors F and G, depends on some variable co-/contravariantly. A dinatural, or in this case the slightly more restrictive notion of an extranatural transformation requires either F or G to depend on some variable both co- and contravariantly. It is constituted by a collection of morphisms such that for every morphism in the hexagon identity holds:

In this setting, the coend object is an object of . The Day's convolution has some nice properties regarding the preservation of colimits, as well as some interesting relations to the Yoneda embedding. The next posts will contain more on the properties on the convolution and possibly the Yoneda lemma, but also mainly focus on recovering supported precategories in a more abstract setting.

Samstag, 27. Juli 2013