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