This question concerns block cipher modes. We will use a simple affine cipher, which can be expressed in C as follows. char cipher(unsigned char block, char key) { return (key+11*block)%256; } The inverse of this cipher is shown below. char inv_cipher(unsigned char block, char key) { // 163 is the inverse of 11 mod
This question concerns block cipher modes. We will use a simple affine cipher, which can be expressed in C as follows.
char cipher(unsigned char block, char key)
{
return (key+11*block)%256;
}
The inverse of this cipher is shown below.
char inv_cipher(unsigned char block, char key)
{ // 163 is the inverse of 11 mod 256
return (163*(block-key+256))%256;
}
Note that the block size is 8 bits, which is one byte (and one ASCII character). We will work with the fixed key 0x08.
We now decrypt various ciphertexts using modes for this cipher. In every case in which the mode requires an IV, the IV will be 0xAA. In the case of CTR mode, we use a (nonce || counter) arrangement in which the nonce is the left 5 bits of 0xAA and the counter is a 3 bit counter that begins at 0. In all of the problems given below, one character is one block. Each character of the plaintext should be regarded as its corresponding ASCII code. The ciphertext is given in hexadecimal.
a) Decrypt the ciphertext "212?330?184???" using ??? mode. Please enter your answer in ASCII characters (aka words).
b) Decrypt the ciphertext "?????904" using ??? mode. Please enter your answer in ASCII characters (aka words).
c) Decrypt the ciphertext "324?1?363623" using ??? mode. Please enter your answer in ASCII characters (aka words).
d) Decrypt the ciphertext "5?5?91?9274170" using ??? mode. Please enter your answer in ASCII characters (aka words).
e) Decrypt the ciphertext "3???673842" using ??? mode. Please enter your answer in ASCII characters (aka words).
Trending now
This is a popular solution!
Step by step
Solved in 2 steps with 1 images