Principle of Encryption

The encryption and decryption processes are virtually mirror images of each other.  Each byte of the source file is converted to its ASCII value and encrypted (or decrypted) sequentially.  All the numbers and operations within Humber are represented by 8-bit values (decimal 0 through 255) and the index registers have 256 elements, representing all the possible values found in the shift registers.  Each shift register also has 256 elements. 

Each character is encrypted using a value in the index register.  The particular element of the index register is selected by the first element of the shift register.  The shift register is shifted right and a new value is calculated for its highest element.  Every character is encrypted or decrypted twice using two identical processes, each with its own pair of registers.  The decryption process is a reverse of the encryption process, as shown in Figure 1.

Figure1:  Encryption and Decryption