In
cryptography
Cryptography, or cryptology (from "hidden, secret"; and ''graphein'', "to write", or ''-logy, -logia'', "study", respectively), is the practice and study of techniques for secure communication in the presence of Adversary (cryptography), ...
, the Iraqi block cipher was a
block cipher
In cryptography, a block cipher is a deterministic algorithm that operates on fixed-length groups of bits, called ''blocks''. Block ciphers are the elementary building blocks of many cryptographic protocols. They are ubiquitous in the storage a ...
published in
C source code
In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer.
Since a computer, at base, only ...
form by
anonymous FTP
The File Transfer Protocol (FTP) is a standard communication protocol used for the transfer of computer files from a server to a client on a computer network. FTP is built on a client–server model architecture using separate control and dat ...
upload around July 1999, and widely distributed on
Usenet
Usenet (), a portmanteau of User's Network, is a worldwide distributed discussion system available on computers. It was developed from the general-purpose UUCP, Unix-to-Unix Copy (UUCP) dial-up network architecture. Tom Truscott and Jim Elli ...
. It is a five round
unbalanced Feistel cipher operating on a
256 bit block with a
160 bit key.
The source code shows that the algorithm operates on blocks of 32 bytes (or 256 bits). That's four times larger than DES or 3DES (8 bytes) and twice as big as Twofish or AES (16 bytes). It also shows that the key size can vary from 160 to 2048 bits.
A detailed analysis of the source code of the algorithm shows that it uses a 256-byte S-Box that is key-dependant (as on Blowfish, it uses a first fixed S table that will generate, with the key, the second S-Box used for encryption/decryption). The algorithm also uses a 16-column x 16-row P-Box, which is also key-dependent and also initialized from a fixed P table. Each round uses one row from P-Box and 16 columns, which means that the algorithm can use up to 16 rounds.
A
comment
Comment may refer to:
Computing
* Comment (computer programming), explanatory text or information embedded in the source code of a computer program
* Comment programming, a software development technique based on the regular use of comment tags ...
suggests that it is of
Iraq
Iraq, officially the Republic of Iraq, is a country in West Asia. It is bordered by Saudi Arabia to Iraq–Saudi Arabia border, the south, Turkey to Iraq–Turkey border, the north, Iran to Iran–Iraq border, the east, the Persian Gulf and ...
i origin. However, like the
S-1 block cipher
In cryptography, the S-1 block cipher was a block cipher posted in source code form on Usenet on 11 August 1995. Although incorrect security markings immediately indicated a hoax, there were several features of the code which suggested it might b ...
, it is generally regarded as a
hoax
A hoax (plural: hoaxes) is a widely publicised falsehood created to deceive its audience with false and often astonishing information, with the either malicious or humorous intent of causing shock and interest in as many people as possible.
S ...
, although of lesser quality than S-1. Although the comment suggests that it is Iraqi in origin, all comments, variable and function names and printed
string
String or strings may refer to:
*String (structure), a long flexible structure made from threads twisted together, which is used to tie, bind, or hang other objects
Arts, entertainment, and media Films
* ''Strings'' (1991 film), a Canadian anim ...
s are in English rather than Arabic; the code is fairly inefficient (including some pointless operations), and the cipher's security may be flawed (no proof).
Because it has a constant
key schedule
In cryptography, the so-called product ciphers are a certain kind of cipher, where the (de-)ciphering of data is typically done as an iteration of '' rounds''. The setup for each round is generally the same, except for round-specific fixed va ...
the cipher is vulnerable to a
slide attack
The slide attack is a form of cryptanalysis designed to deal with the prevailing idea that even weak ciphers can become very strong by increasing the number of rounds, which can ward off a differential attack. The slide attack works in such a wa ...
. However, it may take 2
64 chosen texts to create a single slid pair, which would make the attack unfeasible. It also has many
fixed points, although that is not necessarily a problem, except possibly for hashing modes. No public attack is currently available. As with S-1, it was
David Wagner who first spotted the security flaws.
[
]
References
External links
Source code for the cipherFile encryption with IBC in ECB and CBC ModeSource code of the Iraqi block cipher ECB Mode Source code for Microsoft Visual C++ 5.0 ECB ModeCompiled code (Console Application) ECB ModeSource code of the Iraqi block cipher CBC ModeSource code for Microsoft Visual C++ 5.0 CBC ModeCompiled code (Console Application) CBC Mode
{{Cryptography navbox , block
Block ciphers
Internet hoaxes
1999 hoaxes