Hacker News new | ask | show | jobs
by dragontamer 1598 days ago
About linearity, that just means that there's no "multiply" or "exponent" function equivalent to our primitives.

For example: if "add Foo" were our primitive, then 64-rounds of "add-Foo" could be broken by simply "data + 64 * Foo". IE: We found a "trivial shortcut" and someone else can break our cipher way faster than we can use it.

Addition is linear over numbers, because of multiplication.

XOR is linear over numbers: because XOR undoes itself. (5 x (XOR-Foo) is equivalent to 1x (XOR-Foo)).

It turns out that combining addition and XOR together results in a non-linear function over numbers and non-linear function over bits.

We can't "shortcut numbers", because the XOR-messes up our "number math". We can't "shortcut bits" because Add has this really annoying "carry" that basically has a 50% chance of shuffling bits around.

As such, we "expect" that combinations of Addition, XOR, and Shifts are non-linear. I'm not sure if it's been mathematically proven however, but no one has been able to show a "shortcut" thus far.