My Personal Website

Development of Humber

The Humber project was originally conceived as a software implementation of ALVIS (BID610), implemented in an Excel spreadsheet as a feasibility study.  I first encountered ALVIS in 1963 at the Cipher School in Catterick.  Some fifty years later, after reading Hugh Sebag-Montefiori's "Enigma", I determined to investigate the feasibility of recreating an ALVIS-like shift register algorithm for encryption and decryption.  The first attempt was a simple spreadsheet embodiment with a 7 character key in the form of shift register, using formulae and look-up references.  This was quickly augmented by a Visual Basic (VB) program written in the spreadsheet, which used a data file, input file and output file.  It also used a genuine XOR function for the encryption.  The result of encryption for each character was a 7 bit word in the form of ASCII ones and zeros.  However, because the shift register was recharged with the encrypted character, it was relatively simple to decrypt the messages without knowing the key.

The next development was to include a 256 character index register to encode each character.  This implementation was known as Lanchester, a Coventry company which, like ALVIS, made non-mainstream cars.  The output was changed to 8 bit ASCII characters encoded as hexadecimal pairs.  The index register was used to encrypt and decrypt each character, whilst the 19 character shift register was used to point to the required element of the index register.  However, the character added to the highest element of the shift register was still the encrypted character, so it was still possible to use cribs to identify elements of the plaintext.  The message number was included as a header and used to rotate the registers prior to encryption and decryption.  In order to overcome the problem with cribs, the character added to the highest element of the shift register was later changed to the plaintext character prior to encryption.  This completely disconnected the encrypted character from the shift register contents.

At this stage, Lanchester was re-written as a FORTRAN application with a 256 character index register and a 199 character shift register.  This meant it used a 3630 bit key in the form of the initial register settings.  Another FORTRAN program was written as a secure PRNG, providing a suite of key files randomly shuffled so that it was not possible to identify the order in which they were created.  The key generation process was developed over a period of time to ensure that the multiple seed values were genuinely random.  Humber is based on Lanchester, Humber being another Coventry Car manufacturer of high specification cars.  Humber introduced the use of a stream output and double encryption.