The methods may include steps of dividing data blocks into a plurality of square portions, and exchanging {HEAD ~ data} in {TAIL ~ sets} of blocks of each of the square portions, with the exchanging step including locating a diagonal set of blocks within a selected square portion, and exchanging all sets of blocks equidistant from the diagonal, on opposite sides of the diagonal, and in a line perpendicular to the diagonal 
in
The methods may include steps of dividing data blocks into a plurality of square portions , and exchanging { HEAD ~ data } in { TAIL ~ sets } of blocks of each of the square portions , with the exchanging step including locating a diagonal set of blocks within a selected square portion , and exchanging all sets of blocks equidistant from the diagonal , on opposite sides of the diagonal , and in a line perpendicular to the diagonal
OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH HEAD HEAD HEAD HEAD HEAD REL TAIL TAIL TAIL TAIL TAIL OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH