Substitution-permutation network instructions
The Dauug|36 arithmetic logic unit is itself a substitution-permutation network, or SPN. It should be no surprise that instructions are available to leverage this circuit for hash functions, pseudorandom number generation, and possibly cryptography.
MIX Mix
MIX passes 36-bit word p through an invertible substitution-permutation network keyed by 36-bit word k. The inverse operation of MIX is XIM. Testing shows that on average, one-bit changes to the value of p or k cause c to change by 15.37 or 16.47 bits respectively. An ideal mixing function would cause half of the bits of c—that would be 18 bits—to change. N and Z are set as if the destination is a signed register. T and R do not change.
Example code for MIX and XIM can be found under MIX and XIM. The dissertation offers much more technical explanation, including their S-box derivations, at pages 125–135.
XIM Unmix
XIM, which Marc pronounces “ksim”, is the inverse operation of MIX. XIM passes 36-bit word c through an inverted substitution-permutation network keyed by 36-bit word k. N and Z are set as if the destination is a signed register. T and R do not change. See MIX for more specifics.
Testing shows that on average, one-bit changes to the value of c or k cause p to change by 15.36 or 16.48 bits respectively. Note these measurements are distinguishable from those of MIX, and could be indicative of S-box imbalances.