The methods may include steps of dividing data blocks into a plurality of square portions, and exchanging {TAIL ~ data} in sets of blocks of each of the square portions, with the exchanging step including locating {HEAD ~ 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 
The methods may include steps of dividing data blocks into a plurality of square portions , and exchanging { TAIL ~ data } in sets of blocks of each of the square portions , with the exchanging step including locating { HEAD ~ 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 TAIL TAIL TAIL TAIL TAIL OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH OTH HEAD HEAD HEAD HEAD HEAD HEAD HEAD 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