J1 (cipher)
General | |
---|---|
Designers | Air Force Intelligence Directorate Unit 28 |
First published | 1974 (standardized) 1998 (declassified) |
Cipher detail | |
Key sizes | 242 bits |
Block sizes | 36 bits |
Structure | Unbalanced Feistel network |
Rounds | 127 |
The J1 cipher, also known by its code name of Nisan (Arabic: نيسان, English: April), is a symmetric key block cipher with a key length of 242 bits and a block size of 36 bits. It was developed by Unit 28 (Cryptography) of the Riysian Air Force Intelligence Directorate (Mukhabarat) as a cipher for the encryption of military, government, and diplomatic teletype and later data networks. The algorithm was issued in 1974, but due to its sensitive nature, it was only declassified in 1998, after it had been superseded by more modern algorithms such as the J2. It is notable for being the first fully electronic Riysian cipher, and for using a structure similar to an unbalanced Feistel network, which was considered highly complex in its time.
Description
J1 uses a block size of 36 bits, with a key size of 242 bits and an initialization vector of 61 bits randomly generated from an LSFR. The internal structure is similar to an unbalanced Feistel network, with four branches and 127 rounds. Its key schedule is very simple, forming two subkeys each 121 bits in length by splitting the main key in half. Like most ciphers of its age, it is implemented in specific hardware.
An unusual feature of the J1 cipher is that it accepts two keys, a short-term key and a long-term key. The short-term key is the nominal secret key for encryption, while the long-term key is a printed circuit board with unique wiring per series. This long-term key performs a function similar to both the S-boxes and P-box of modern block ciphers, accepting 9 individual inputs - each similar to an S-box - of 4 bits each, and then performing a permutation as in a P-box.
Though designed as a block cipher, J1 was almost always used in a stream cipher mode. When used as a stream cipher, the block cipher is run through its full 127 cycles, with a function on the long-term key circuit board extracting a single bit.