(One intermediate revision 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>
Line 72: Line 72:
  
  
The complete lecture on Stream Ciphers is available here.
+
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

Meet a recent graduate heading to Sweden for a Postdoctorate.

Christine Berkesch