I understand how standard numeric FPE using a halved string in cycled Feistel networks is constructed and operates. I then read the paper regarding FFX encryption which should allow for any non-binary alphabet to also be used (http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/proposedmodes/ffx/ffx-spec.pdf). However, I am having some trouble understanding how FFX works.
From what I can understand, the round function is the same, except FFX construction also allows for the two halves in the Feistel network to be split into different length strings. This also means that the round function is different, and changes to the described characterwise/blockwise function instead. However, I am not too sure how that method can work when the two halves of the string are no longer equal length. Perhaps I am misunderstanding something about how the XOR replacement works, so could someone help explain it? *Also, I feel like my assumption about the round function may be incorrect. Does the round function need to be chosen out of a different set of PRFs than previously? (ie. not AES) <--- this is actually probably the case because of all the adjusted AES functions mentioned in the FFX paper
The addendum also explains how to construct the cipher while taking a parameter which specifies an arbitrary radix. I also do not understand this part.
Could someone give me a simple overview of how FFX encryption works? Thanks!