cisco / libfnr

FNR is a small domain block cipher to encrypt small objects ( < 128 bits )
GNU Lesser General Public License v2.1
40 stars 16 forks source link

Comparison with AES-FFX #1

Closed cmcqueen closed 10 years ago

cmcqueen commented 10 years ago

If I understand correctly, FNR is a format-preserving encryption algorithm. What advantages might it provide compared to other format-preserving encryption algorithms, such as AES-FFX? It would be good to summarise this in the README.

sashank commented 10 years ago

Format preserving encryption has two components ( ranking + length preserving encryption ). Technically FFX Modes are variable length block ciphers which preserves the lengths of the inputs. Preserving formats is just an additional transformation using Ranking functions specific for each input type. FFX modes use vanilla Feistel Networks with AES as PRF internally. FNR is similar to FFX that it uses Feistel Network and internally AES but in addition it has a Invertible Hashing layer in first and last rounds called "Pair-wise independent Permutations" . This is proven to provide additional security by Naor and Reingold (NR). FNR is a practical variant of NR scheme. FNR is just a variable input length block cipher. To preserve formats or not is upto applications it is used in.

Please refer to our specification for more details. https://eprint.iacr.org/2014/421. The README has a link to http://sashank.github.io/libfnr/ which discusses the applications and motivation for FNR