Abstract: The invention provides a method of encoding an unencoded block of binary data having a known number of binary units, into an encoded block of binary data having a number of binary units greater than the number of binary units in the unencoded block, for transfer from a computer of origin to a recipient computer and decoding thereat, including the steps of evaluating the data contained in each binary unit of the unencoded block, thereby to obtain, for the unencoded data in each binary unit, a primary number and a secondary number; entering the primary number for the unencoded data in each binary unit into an encoded binary unit of an encoded binary unit block, wherein for the data in each binary unit, the position of the encoded binary unit corresponds to the position of the unencoded binary unit; and entering the secondary number for the unencoded data in each binary unit into one or more additional control binary units in the encoded block, whereby the secondary number for each unencoded binary unit contains