(6 intermediate revisions by one other user not shown)
Line 5: Line 5:
  
  
<center><font size=6>
+
<center> <font size= 5>
Stream Ciphers
+
==[[2015_Summer_Cryptography_Paar|The Paar Lectures on Introductory Cryptography]]==
 +
[http://slectures.projectrhea.org Slectures] by [[User:Agarwa65|Divya Agarwal]] and [[User:Khmarsh|Katie Marsh]]
 
</font size>
 
</font size>
 +
</center>
  
A [http://www.projectrhea.org/learning/slectures.php slecture] on Cryptography by student Divya Agarwal and Kathryn Marsh.
+
<center><font size= 4>4. Stream Ciphers </font size>
 
+
Partly based on the [[2015_Summer_Cryptography_Paar|Cryptography Summer 2015]] lecture material of Prof. Paar.
+
  
 
</center>
 
</center>
 
----
 
----
 
----
 
----
 +
 +
Introductory lecture to Stream Ciphers - Prof. Paar
 
=[http://www.youtube.be/watch?v=rheateam@gmail.com Link to video on youtube]=
 
=[http://www.youtube.be/watch?v=rheateam@gmail.com Link to video on youtube]=
<youtube>rheateam@gmail.com</youtube>  
+
<youtube>https://www.youtube.com/watch?v=ChORQIRUin4</youtube>
  
 
----
 
----
Line 43: Line 45:
 
[[File:EDStreamCiphers.PNG|500px|thumb|left|Fig 1:Encryption and Decryption with Stream Ciphers]]
 
[[File:EDStreamCiphers.PNG|500px|thumb|left|Fig 1:Encryption and Decryption with Stream Ciphers]]
  
* Encryption : <math> y_i = e_{si} = x_i + s_i mod2 </math>  
+
* Encryption : <math> y_i = e_{si} = x_i + s_i mod2 </math>  where  <math>x_i,s_i,y_i \in \{0,1\} </math>
* Encryption : <math> y_i = e_{si} = x_i + s_i mod2 </math>  
+
* Decryption : <math> x_i = e_{si} = y_i + s_i mod2 </math>  
 +
 
 +
Encryption and decryption are the same functions.
 +
 
 +
'''Why is Modulo 2 Addition a Good Encryption Function?'''
 +
 
 +
* Modulo 2 addition is equivalent to XOR operation.
 +
* For perfectly random key stream <math>s_i</math>, each ciphertext output bit has a 50% chance to be 0 or 1, which is a Good statistic property.
 +
 
 +
'''How do we get a good Key Stream?'''
 +
 
 +
Security of stream cipher depends entirely on the key stream <math>s_i</math>:
 +
* It should be random.
 +
* Must be reproducible at both sender and receiver ends.
 +
 
 +
There are several ways to produce random key streams, they are listed below:
 +
* Random number genrators(RNGs)
 +
** True Random number genrators(TRNGs)
 +
** Pseudo Random number genrators(PRNG)
 +
** Cryptographically Secure Pseudorandom number genrators(CSRNG)
 +
 
 +
* One-Time Pad(OTP)
  
 +
* Linear feedback shift registers(LFSRs)
  
  
 +
The complete lecture on Stream Ciphers is available [https://www.youtube.com/watch?v=AELVJL0axRs here].
  
 
----
 
----

Latest revision as of 05:18, 24 June 2015


The Paar Lectures on Introductory Cryptography

Slectures by Divya Agarwal and Katie Marsh

4. Stream Ciphers


Introductory lecture to Stream Ciphers - Prof. Paar

Link to video on youtube


Accompanying Lecture Notes


Stream Ciphers vs. Block Ciphers

  • Stream Ciphers
    • Encrypt bits individually by adding a bit from a key stream to a plaintext bit.
    • Usually small and fast, common in embedded devices (e.g., A5/1 for GSM phones)
  • Block Ciphers
    • Encrypt an entire block of plaintext bits at a time with the same key.
    • Are common for Internet applications

In this lecture we study Stream Ciphers.

Encryption and Decryption of Stream Ciphers

Each plaintext bit $ x_i $ is encrypted by adding a secret key stream bit $ s_i $ modulo 2. Refer figure below.

Fig 1:Encryption and Decryption with Stream Ciphers
  • Encryption : $ y_i = e_{si} = x_i + s_i mod2 $ where $ x_i,s_i,y_i \in \{0,1\} $
  • Decryption : $ x_i = e_{si} = y_i + s_i mod2 $

Encryption and decryption are the same functions.

Why is Modulo 2 Addition a Good Encryption Function?

  • Modulo 2 addition is equivalent to XOR operation.
  • For perfectly random key stream $ s_i $, each ciphertext output bit has a 50% chance to be 0 or 1, which is a Good statistic property.

How do we get a good Key Stream?

Security of stream cipher depends entirely on the key stream $ s_i $:

  • It should be random.
  • Must be reproducible at both sender and receiver ends.

There are several ways to produce random key streams, they are listed below:

  • Random number genrators(RNGs)
    • True Random number genrators(TRNGs)
    • Pseudo Random number genrators(PRNG)
    • Cryptographically Secure Pseudorandom number genrators(CSRNG)
  • One-Time Pad(OTP)
  • Linear feedback shift registers(LFSRs)


The complete lecture on Stream Ciphers is available here.


References

  • C. Paar. Understanding Cryptography. Lecture Notes. Dept. of Electr. Eng. and In­for­ma­ti­on Sci­en­ces, Ruhr University.
  • C. Paar and J. Pelzl. Understanding Cryptography. A textbook for Student and Practitioners. Springer 2010.

Questions and comments

If you have any questions, comments, etc. please post them here.


Back to 2015 Summer Cryptography Paar


Alumni Liaison

Questions/answers with a recent ECE grad

Ryne Rayburn