Академический Документы
Профессиональный Документы
Культура Документы
Sample problems
1. (Plairfair ciher) Decrypt the ciphertext
OPNBNMDFLYNBDLCDXIWENMECRYDNIONP
if the keyword is DECRYPTION.
Solution.
The 5x5 matrix has the following view:
D E C R Y
P T I/J O N
A B F G H
K L M Q S
U V W X Z
Repeatedly applying the three rules the given ciphertext
can be decrypted in the following way:
Ciphertext: OPNBNMDFLYNBDLCDXIWENMECRYDNIONP
Plaintext: inthiscasethekeywordisdecryption
2. (Hill cipher) Encrypt the plaintext PLAINTEXT with the key
K=
12 10 3
8 9 4
6 1 5
Solution.
C
1
=(5p
1
+1p
2
+ 6p
3
) mod 26
C
2
=(4p
1
+ 9p
2
+ 8p
3
) mod 26
C
3
=(3p
1
+ 10p
2
+ 12p
3
) mod 26
By substituting p
1
=15, p
2
=11, p
3
=0, p
4
=8, p
5
=13, p
6
=p
9
=19,
p
7
=4, and p
1
=23, we obtain
0
11
15
12 10 3
8 9 4
6 1 5
3
2
1
C
C
C
Thus,
C
1
= 5x15 + 1x11 + 6x0 = 75 + 11 + 0 = 86 mod 26 = 8
= I,
C
2
= 4x15 + 9x11 + 8x0 = 60 + 99 + 0 = 159 mod 26 =
3 = D,
C
3
= 3x15 + 10x11 + 12x0 = 45 + 110 + 0 = 155 mod 26
= 25 = Z.
Similarly,
19
13
8
12 10 3
8 9 4
6 1 5
6
5
4
C
C
C
or
C
4
= 5x8 + 1x13 + 6x19 = 40 + 13 + 114 = 167 mod 26
= 5 = F,
C
5
= 4x8 + 9x13 + 8x19 = 48 + 117 + 162 = 327 mod 26
= 15 = P,
C
6
= 3x8 + 10x13 + 12x19 = 24 + 130 + 228 = 382 mod
26 = 18 = S.
Finally,
19
23
4
12 10 3
8 9 4
6 1 5
9
8
7
C
C
C
or
C
7
= 5x4 + 1x23 + 6x19 = 20 + 23 + 114 = 157 mod 26
= 20 = U,
C
8
= 4x4 + 9x23 + 8x19 = 16 + 207 + 162 = 385 mod 26
= 25 = Z,
C
9
= 3x4 + 10x23 + 12x19 = 12 + 230 + 228 = 470 mod
26 = 18 = C.
The plaintext encrypted results IDZFPSUZC.
3. Suppose that we are using a Vigenere scheme with 27
characters in which the twentyseventh character is the space
character, but with a one-time key that is as long as the
given message. Given the ciphertext
YZRDTJVAROHOHOPS GXGG XQTJWSIQPJSPRZKOSNYOZX
find the key that yields the following plaintext:
MR MUSTARD WITH THE CANDLESTICK IN THE HALL
Solution.
a b c d e f g h i j K l m n o p q r s t u v w X y z
A A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
B B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
C C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
D D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
E E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
F F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
G G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
H H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
I I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
J J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
K K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
L L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
M M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
N N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
O O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
P P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
Q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
R R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
S S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
T T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
U U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
V V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
W W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
X X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
Y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
Z Z A B C D E F G H I J K L M N O P Q R S T U V W X Y
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
As we know the key letter and plaintext letter identify the
row, and the column, respectively. Hence, if the ciphertext
and plaintext letters are given, the key letter can found
easily. As it follows from the above table the key used to
encrypt the plaintext
MR MUSTARD WITH THE CANDLESTICK IN THE HALL
is
MISS SCARLET WITH THE KNIFE IN THE SHOWROOM
4. (Rail fence technique) Use rail fence technique to decrypt
the following message
ESENEIERNAUIESTATRMDTRAENNVRIY
Solution.
In the rail fence technique, the plaintext is written down
as a sequence of diagonals and then read off as a sequence
of rows. Implementing this technique to the given
ciphertext will result
E S E N E I E R N A U I E S T
A T R M D T R A E N N V R I Y
That is, the plaintext is EASTERNMEDITERRANEAN UNIVERSITY
5. Given ciphertext IYRMVLNSTLAEDTRSCEEIGIYSANLSII and the key
3 6 1 2 5 4, use transposition technique based on writing
the message in a rectangle, row by row, and reading the
message off, column by column, with permuting the order of
columns to decrypt it.
Solution.
We first split the given ciphertext in six blocks, then
write the blocks column-wise according to the given key,
then read the message in. As a result we obtain the
following table.
3 6 1 2 5 4
A S I N G L
E C Y L I N
D E R S Y S
T E M I S T
R I V I A L
Hence, the message is ASINGLECYLINDERSYSTEMISTRIVIAL.
6. (S-DES) Using S-DES, decrypt the string 10100010 using the
key 0111111101 by hand. Show intermediate results after
each function (IP, F
k
, SW, F
k
, IP
-1
). Then decode the first 4
bits of the plaintext string and ciphertext string to a
letters and the second 4 bits to another letters where we
encode A through P in base 2 (i.e. A=0000, B=0001 ,,
P=1111).
Solution.
S-DES Key Generation
10-bit key : 0111111101
Action Input Output
P10 0111111101 1111110011
LS-1 11111
10011
11111
00111
P8 1111100111 01011111
(K
1
)
LS-2 11111
00111
11111
11100
P8 1111111100 11111100
(K
2
)
S-DES Encryption
8-bit plaintext : 10100010 (KC)
IP 10100010 00110001
E/P 0001 10000010
Excusive-
OR
10000010,
K
1
11011101
S0 1101 11
S1 1101 00
P4 1100 1001
Excusive-
OR
1001, 0011 1010
SW 10100001 00011010
E/P 1010 01010101
Excusive-
OR
01010101,
K
2
10101001
S0 1010 10
S1 1001 10
P4 1010 0011
Excusive-
OR
0001,0011 0010
IP
-1
00101010 00111000
8-bit ciphertext : 00111000
S-DES Decryption
8-bit ciphertext : 00111000 (DH)
IP 00111000 00101010
E/P 1010 01010101
Excusive-
OR
01010101,
K
2
10101001
S0 1010 10
S1 1001 10
P4 1010 0011
Excusive-
OR
0010,0011 0001
SW 00011010 10100001
E/P 0001 10000010
Excusive-
OR
10000010,
K
1
11011101
S0 1101 11
S1 1101 00
P4 1100 1001
Excusive-
OR
1010,1001 0011
IP
-1
00110001 10100010
8-bit plaintext : 10100010
Blowfish
Blowfish is a symmetric block cipher developed by Bruce
Schiner. Blowfish was designed to have the following
characteristics:
Fast: Blowfish encrypts data on 32-bit microprocessor at
rate of 18 clock cycles per byte.
Compact: Blowfish can run in less than 5K of memory.
Simple: Blowfishs simple structure is easy to implement
and eases the task of determining the strength of the
algorithm.
Variable secure: The key length is variable and can be as
long as 448 bits. This allows a tradeoff between higher
speed and higher security.
Blowfish encrypts 64-bit blocks of plaintext into 64-bit
blocks of ciphertext. Blowfish is implemented in numerous
products and has received a fair amount of security.
Subkey and S-box generation
Blowfish makes use of a key that ranges from 32 bits to 448
bits (1 to 14 32-bit words). That key is used to generate 18
32-bit subkeys and four 8x32 S-boxes containing a total of
1024 32-bit entries. The total is 1042 32-bit values, or 4168
bytes.
The keys are stored in a K-array:
K K K
j 1 2
, , , , 1 14 j
The subkeys are stored in the P-array:
P P P
1 2 18
, , ,
There are four S-boxes each with 256 32-bit entries:
S S S
1 0 1 1 1 255 , , ,
, , ,
S S S
2 0 2 1 2 255 , , ,
, , ,
S S S
3 0 3 1 3 255 , , ,
, , ,
S S S
4 0 4 1 4 255 , , ,
, , ,
The steps in generating P-array and S-boxes are as follows:
1. Initialize first the P-array and then the four S-boxes in
order using the bits of the fractional part of the
constant . Then the leftmost 32 bits of the fractional
part of become P
1
, and so on. Note that in binary
has the following view
11.
(00100100001111110110101010001000) (10000101101000110000100011010011)
(00010011000110011000101000101110) (00000011011100000111001101000100)
(10100100000010010011100000100010) (00101001100111110011000111010000)
(00001000001011101111101010011000) (11101100010011100110110010001001)
(01000101001010000010000111100110) (00111000110100000001001101110111)
(10111110010101000110011011001111) (00110100111010010000110001101100)
(11000000101011000010100110110111) (11001001011111000101000011011101)
(00111111100001001101010110110101) (10110101010001110000100100010111)
(10010010000101101101010111011001) (10001001011110011111101100011011)
(11010001001100010000101110100110) (10011000110111111011010110101100)
(00101111111111010111001011011011) (11010000000110101101111110110111)
(10111000111000011010111111101101) (01101010001001100111111010010110)
(10111010011111001001000001000101) (11110001001011000111111110011001)
(00100100101000011001100101000111) (10110011100100010110110011110111)
(00001000000000011111001011100010) (10000101100011101111110000010110)
(01100011011010010010000011011000) (01110001010101110100111001101001)
(10100100010110001111111010100011) (11110100100100110011110101111110)
(00001101100101010111010010001111) (01110010100011101011011001011000)
(01110001100010111100110101011000) (10000010000101010100101011101110)
Thus, P
1
= 00100100001111110110101010001000
P
2
= 10000101101000110000100011010011
S
1, 0
= 11010001001100010000101110100110
S
1, 1
= 10011000110111111011010110101100
2. Perform a bitwise XOR of the P-array and the K-array,
reusing words from the K-array as needed. For example,
for the maximum length key (14 32-bit words), P P K
1 1 1
= ,
P P K
2 2 2
= ,, P P K
14 14 14
= , P P K
15 15 1
= , , P P K
18 18 4
= .
3. Encrypt the 64-bit block of all zeros using the current
P- and S-arrays; replace P
1
and P
2
with the output of the
encryption.
4. Encrypt the output of step 3 using the current P- and S-
arrays and replace P
3
and P
4
with the resulting
ciphertext.
5. Continue this procedure to update all elements of P and
then, in order, all elements of S, using at each step the
output of the continuously changing Blowfish algorithm.
LE
17
RE
17
P
18
P
17
Ciphertext (64 bits)
Plaintext (64 bits)
LE
1
RE
1
32 bits 32 bits LE
0
RE
0
P
1
Round 1
LE
16
RE
16
P
1
Round 16
Blowfish
encryption
ciphertext (64 bit)
LD
1
RD
1
32 bits 32 bits LD
0
RD
0
P
18
Round 1
LD
16
RD
16
P
3
Round 16
LD
1
RD
17
P
1
P
2
Plaintext (64 bits)
Blowfish
decryption
The update process can be summarized as follows:
P
1
, P
2
= E
P, S
[0]
P
3
, P
4
= E
P, S
[P
1
|| P
2
]
P
17
, P
18
= E
P, S
[P
15
|| P
16
]
S
1, 0
, S
1, 1
= E
P, S
[P
17
|| P
18
]
S
4, 254
, S
4,255
= E
P, S
[S
4, 252
|| S
4,253
]
where E
P, S
[Y] is the ciphertext produced by encrypting Y using
Blowfish with the arrays S and P.
A total of 521 executions of the Blowfish encryption
algorithm are required to produce the final S- and P-arrays.
Accordingly, Blowfish is not suitable for applications in
which the secret key changes frequently. Further, for rapid
execution, the S- and P-arrays can be stored rather than
rederived from the key each time the algorithm is
used. This requires over 4 KByte of memory.
8 8 8 8
32
32 32
32
32
R
i
L
i
R
i-1
L
i-1
P
i