Assignment 1: Task 1

The main advantage of Public-key cryptography over private-key cryptography is that there is no need for a key exchange protocol (there are issues of trust but we will discuss that later.) For each party, there is a  key generation algorithm that generates a pair of keys (sk, pk). One of these keys, sk is the secret key that is kept secret by the party while the other key, pk is called a public key that is made public (by posting on one's webpage for example). The following figure explains how the secret communication happen using these keys in the public key model.

Assymetric Cryptography
 

We would like to have secret communication amongst ourselves (students registered in the course). Use GPG to generate a (secret key, public key) pair for yourself and then let me know your public key so that I may post this on the course website. You should use your iitd email address and use 2048 bit RSA option while generating your keys and the expiry should be sometime after the course ends. You will be able to figure these things out by exploring the following page for GPG from where you will also get the software:

http://www.gnupg.org

Here is the ascii version of my gpg public key. You should save the ascii version of your public key in a file named "<iitd-email-id>.asc", then encrypt this file using my public key and then email this encrypted file to me with the subject line "CSL759: public-key".

Note that this first task is important because I might want to send your next task encrypted with your public key!