Пример #1
0
 private static void QuarterRound(uint[] set, uint a, uint b, uint c, uint d)
 {
     set[b] ^= BitShift.RotateLeft32(set[a] + set[d], 7);
     set[c] ^= BitShift.RotateLeft32(set[b] + set[a], 9);
     set[d] ^= BitShift.RotateLeft32(set[c] + set[b], 13);
     set[a] ^= BitShift.RotateLeft32(set[d] + set[c], 18);
 }
Пример #2
0
        private static void QuarterRound(uint[] set, uint a, uint b, uint c, uint d)
        {
            set[a] = unchecked (set[a] + set[b]);
            set[d] = BitShift.RotateLeft32(unchecked (set[d] ^ set[a]), 16);

            set[c] = unchecked (set[c] + set[d]);
            set[b] = BitShift.RotateLeft32(unchecked (set[b] ^ set[c]), 12);

            set[a] = unchecked (set[a] + set[b]);
            set[d] = BitShift.RotateLeft32(unchecked (set[d] ^ set[a]), 8);

            set[c] = unchecked (set[c] + set[d]);
            set[b] = BitShift.RotateLeft32(unchecked (set[b] ^ set[c]), 7);
        }