*Rabbit Cipher Stream*

*What is the*

*Rabbit*

*algorithm ?*

*This algorithm can be described as follows:***Rabbit needs a key of 128 bits and also can use a (iv) 64-bit input which is used in the iterations in the algorithm**

Iv = It is a starting vector for different types of cryptographic systems. This can generate a randomly.

Both encryption and decryption use the substitution method to generate our XOR'ed ciphertext. Where the internal state of the algorithm is 512-bit and 8 states are divided by 32 bits each. Different states vectors are modified during the execution of the algorithm.

*Diagram of the algorithm*

*Rabbit algorithm description:***The key of 128 bits is genereted randomly and is divided into eight subkeys of 16 bits each and also the vector "IV" 64-bit is genereted**

*First step:***Initializing a vector "x" and a counter vector "c" with eight elemts**

*Second step:***This step can be skipped but is recommended. Use the substitution method Xor vector for each counter using vector "IV"**

*Third step:***This step is the most important of all, the endless cycle begins to generate different outputs "S" and use them to our substitution method Plaintext.**

*Fourth step:*
Variable g is used to cycle the different values of both counters as the vector x, and to generate new values for the vector x and iterating using "g" of the previous two iterations

Here the equations:

*Some terms from here:*

"<<" Means that there is a tour of some bit to the left

">>" Means that there is a tour of some bit to the right

**Subsequently, to get the specific output for each output interaction, the following equations are performed:**

*Fifth step:*

*The implementation code:*
Here is a picture of a first round generating 8 blocks of "Si"

**This algorithm has different strengths and weaknesses:**

One of the biggest advantages of this algorithm is the use of a 128-bit key that grabs one of the best sytems about execution speed, different blocks also constantly change. The attacks is more difficult to perform in against a random key.

The strength is the division of the keys in 8 to modify the state variables, for different types of attacks such as statistical and brute force

http://www3.iam.metu.edu.tr/iam/images/6/6a/Tarkanolcuogluterm.pdf

http://cr.yp.to/streamciphers/rabbit/desc.pdf

https://tools.ietf.org/html/rfc4503

http://reference.kfupm.edu.sa/content/r/a/rabbit__a_new_high_performance_stream_ci_66630.pdf

http://en.wikipedia.org/wiki/Initialization_vector

Me hubiera gustado un ejemplo más bien paso por paso y un poco más sobre lo de ataques. Van 6 pts.

ResponderEliminar