Purchase Solution

CFB mode encryption decryption

Not what you're looking for?

Ask Custom Question

Consider the following simplified version of CFB mode. The plaintext is broken into 32 bits pieces: P=[P1,P2,..], where each Pj has 32 bits, rather than the 8 bits used in CFB.

Encryption proceeds as follows. An initial 64 bit X1 is chosen. Then for j=1,2,3.., the following is performed:

Cj=Pj XOR L32 (Ek(Xj)

Xj+1= R32 (Xj)||Cj,

Where L32(X) denotes the 32 leftmost bits of X,
R32(X) denotes the rightmost 32 bits of X, and
X||Y denotes the string obtained by writing X followed by Y.

(a) Find the decryption algorithm.
(b) The ciphertext consists of 32 bit blocks C1,C2,C3,C4,... . Suppose that a transmission error causes C1 to be received as C1* not equal C1, but C2,C3,C4 ... are received correctly. This corrupted ciphertext is then decrypted to yield plaintext blocks P1*, P2*,... .

Show that P1* not equal to P1, but that Pi*=Pi for all i>=4. Therefore, the error affects only three blocks of the decryption.

Purchase this Solution

Solution Summary

The solution is aimed as and should be used like a guidance.

Solution Preview

Though the answers give all the relevant details and steps to the solution, this solution is aimed as more like a guidance.

(a) We will use following property of XOR operation to find the decryption algorithm.

If
C = A XOR B
then
B = C XOR A
A = C XOR B

Given that, encryption proceeds as

Cj = Pj XOR L32(Ek(Xj))
Xj+1 = R32(Xj) || Cj

The corresponding decryption algorithm will be

Pj = Cj XOR ...

Purchase this Solution


Free BrainMass Quizzes
C# variables and classes

This quiz contains questions about C# classes and variables.

C++ Operators

This quiz tests a student's knowledge about C++ operators.

Basic Networking Questions

This quiz consists of some basic networking questions.

Inserting and deleting in a linked list

This quiz tests your understanding of how to insert and delete elements in a linked list. Understanding of the use of linked lists, and the related performance aspects, is an important fundamental skill of computer science data structures.

Basic UNIX commands

Use this quiz to check your knowledge of a few common UNIX commands. The quiz covers some of the most essential UNIX commands and their basic usage. If you can pass this quiz then you are clearly on your way to becoming an effective UNIX command line user.