These are used to model block ciphers. The ideal block cipher is a collection of random permutations , and encryption is described by , where is the shared key in , and decryption is . Of course this is impossible to achieve in practice, so we use pseudo random permutations. We adopt the Luby-Rackoff definition ['88].
is a -PRP if
-
For any , is a one-to-one function from to .
-
For any , there is an "efficient" algorithm to evaluate .
-
For any -time algorithm we have
where makes oracle queries and a permutation is the set of all permutations on .
In other words, under a chosen plaintext attack, cannot be distinguished from a random permutation. But the definition does not cater for chosen ciphertext attacks, which inspires the following:
is a -SPRP (Strong PRP) if
-
For any , is a one-to-one function from to .
-
For any , there is an "efficient" algorithm to evaluate and .
-
For any -time algorithm we have
where makes oracle queries.
Suppose DES is a -PRP. Recall it acts as a permutation on 64 bits at a time. Using DES, can we build a PRP that acts on blocks twice as large, i.e. ? In general, can we construct large SPRP's from smaller ones?
Luby-Rackoff Construction
We show how to construct a PRP from a PRF. Recall that given and , the Feistel permutation is . It is clear that is a permutation.
Theorem: [LR] If is a -PRF then
-
is a -PRP.
-
is a -SPRP.
We cannot get away with fewer rounds. A permutation constructed using only a two-round Feistel network cannot be a PRP, for if we let , we would have , which happens with very low probability for a random permutation.
Similarly, three-round Feistel does not produce SPRP's. [Exercise]
However, note that with two-round Feistel, cannot be distinguished from a random permutation under a known (random) plaintext attack and ciphertext attack, that is, if we are given for random . This observation inspires the following:
Define condition (*) as follows: for all , and . (This condition does not hold for the attack on two-round Feistel.)
It turns out that when (*) holds, is from the same distribution as input/output pairs of a random permutation.
In the Luby-Rackoff construction, the role of is to ensure condition (*) holds for . In fact, there is a better way of making sure the condition holds [NR'98]: replace by pairwise independent permutations:
Definition: is a family of pairwise independent permutations if is a permutation for any and for all , we have
An example of such a family is
is such a family.
Now suppose , and . For , define
Theorem: If is a family of pairwise independent permutations and is a -PRF then is a -SPRP for any .
So it is secure as long as . For example, with DES, , so , which is useless. (In contrast, AES has blocksizes of 128, 192 and 256 bits.)
Proof: Let permutaitons , and write for . We use a hybrid argument. For all -time ,
(let us call the three quantities , and ) where (that is, we replace the PRF's with random functions) and when queries and , consistent random values are returned (i.e. consistent with previous values). [Hence it is not necessarily a permutation.]
It can be shown that , using the definition of PRF. It can also be shown that using an information theoretic argument based on the birthday paradox. Lastly, , by using the fact that condition (*) holds.
The story so far:
As for the converses, from the first assignment, we know that . We would like to know if . This is of practical interest because we would like to take off-the-shelf PRP's such as DES or AES and use them as PRF's (e.g. for MAC's).
If we simply use a PRP as a PRF: from above, a -SPRP on is only a -PRF (insecure for ).
Another method[BI'99]: Let be a -PRP. Define . Then is a -PRF. (i.e. secure until ).
Yet another method[BI'99]: Define for some . Then is a -PRF for any . For example, for , we need for security.
Now we have a good way of doubling the blocksize of DES. If try to use DES directy in the LR construction we have weak bounds. Instead, we shoould use .