Short Version: SHA-256 uses addition alongside a variety of bit-wise operations. What's up with that?
I was reading a description of how SHA-256 worked and it included a description of the various internal operations that take place on the blocks of bits while the algorithm does its work.
Most of them made sense to me as the familiar "bit wise" operators I'm used to. ROTATE, AND, XOR, etc. But one stood out to me. One of these things is not like the other.
The algorithm also used ADD. There was an arithmetic operator in with the bit-wise operators. (The very last carry is discarded so the output has the same size as the inputs.)
This seemed very odd to me. All throughout the process, we were dealing with blocks of bits, each bit having equal significance. Suddenly, these blocks of bits became numbers. Bits have significance and if both bits are 1, then a carry takes place. Bits can influence their neighbours but only in one direction.
I had initially thought that all bits going in and coming out of SHA-256 were equally important and had equal ability to influence the result. Now I'm wondering if some bits have a greater ability to influence the output than others.
What's going on?