S-box selection
S-boxes should be balanced (equal number of 0s and 1s in the boolean function truth table)
Boolean functions must be non-linear
Single bit changes on the input cause changes on 1/2 of the outputs
Good XOR profile -- smallest and biggest entries not too far from the average