This is an old revision of the document!


Lecture 09 - Encryption. Hashing. APIs

  • Keywords: encryption, symmetric encryption, public key encryption, digital signatures, hash, fingerprinting, certificate, RSA, MAC, openssl, gnutls, crypt, libgcrypt, botan, side channel attack, Heartbleed

Demos

For demos, we will use the demo archive. We will a Linux system to run the demos. We download the archive using the command

wget http://elf.cs.pub.ro/cns/res/lectures/lecture-09-demo.zip

and then we unpack the archive

unzip lecture-09-demo.zip

and then access the demo folder that resulted after the unpack operation

cd lecture-09-demo/

We will now pass through the demos below.

The demos show various ways of using the RSA algorithm: generating keys, encrypting a message and decrypting the message.

RSA in the Shell

razvan@einherjar:~/school/current/cns/repo.git/demos/lecture-09/shell$ ./rsa-ctl genkey
Generate private key in rsa.private ...
Generate public key in rsa.public ...
razvan@einherjar:~/school/current/cns/repo.git/demos/lecture-09/shell$ ls
rsa-ctl  rsa.private  rsa.public
razvan@einherjar:~/school/current/cns/repo.git/demos/lecture-09/shell$ ./rsa-ctl inspect

==== Showing private key


Private-Key: (1024 bit)
modulus:
    00:df:6b:df:a0:49:18:ed:b0:72:cd:62:8e:9f:93:
    83:87:c2:9f:d9:90:cd:a9:ed:44:0c:f7:33:1b:43:
    74:fc:42:5f:92:4f:49:62:fc:65:b1:d3:6c:c6:0f:
    4f:39:7a:a2:33:ce:87:d9:60:41:27:f3:fa:a6:da:
    5d:e2:1f:de:10:a1:fa:db:02:b4:eb:11:1a:de:e1:
    01:ab:37:05:31:05:e8:58:24:ac:28:99:a9:49:d2:
    6b:cf:26:a6:3e:ad:5b:76:94:d6:0f:5c:28:1c:9c:
    2e:1a:0d:23:20:14:ab:20:7f:65:33:1a:27:fd:a4:
    8e:ec:13:d5:f3:96:0a:3c:59
publicExponent: 65537 (0x10001)
privateExponent:
    69:01:b8:5f:0b:3c:0e:2a:ca:2a:41:d2:2a:aa:18:
    3d:ac:79:98:b5:f8:13:8f:92:56:4d:b0:d5:75:84:
    fc:32:ed:dc:44:2b:87:bc:7c:c7:71:49:44:65:59:
    a4:f8:40:57:fd:0f:d8:58:e7:06:b2:22:f2:5c:db:
    97:35:c7:16:45:10:c8:51:8e:1f:ea:32:8b:32:30:
    0e:11:73:9d:bf:d7:06:de:95:a4:42:59:5c:37:b6:
    ef:c3:cf:d8:cb:6b:d2:91:b3:99:43:13:61:dc:c3:
    5c:bc:60:db:ae:c2:e3:33:d1:27:2a:88:df:3d:66:
    cb:d5:5d:96:38:f4:dc:a9
prime1:
    00:fb:bc:54:ce:76:39:0d:f8:76:4a:84:93:7d:d2:
    57:83:b8:61:3d:1e:1c:85:47:49:c4:ad:f3:c9:15:
    b3:2d:5d:45:c7:5e:7e:ff:32:c0:74:37:74:7a:d4:
    50:f4:cd:24:74:45:c1:d1:a2:e6:24:01:4c:24:24:
    45:31:ed:2e:af
prime2:
    00:e3:34:c1:64:ad:b8:57:b8:b2:1e:6a:57:31:03:
    c8:2d:0e:e1:54:fd:e8:82:0b:13:d7:86:d7:67:35:
    73:1f:03:68:fd:6b:c5:4c:ae:0a:e3:73:ea:a3:aa:
    36:ef:13:71:31:09:0b:4a:9d:2d:ec:61:bb:4b:96:
    42:02:59:47:77
exponent1:
    00:b5:b2:56:a7:fa:ce:ed:95:83:93:ff:a3:11:72:
    eb:f5:c7:f4:6f:8f:b7:58:3f:7f:30:35:ba:3b:4e:
    ad:58:35:f5:72:94:73:27:b1:b3:15:6f:1d:64:b6:
    b0:84:31:39:79:af:0b:d9:4b:31:bf:95:2c:26:fe:
    02:ef:a9:59:43
exponent2:
    30:0d:c7:5d:68:d4:95:51:0d:f3:1a:e0:a8:10:39:
    b5:35:f1:78:8d:5f:30:a9:f1:1f:63:78:89:6e:a7:
    93:86:a0:1d:01:3f:30:71:9b:01:f2:51:4d:1e:42:
    12:1c:95:93:1e:6b:91:f3:5e:74:21:53:80:b0:1d:
    f3:eb:38:0f
coefficient:
    3f:53:4f:38:96:92:96:00:bd:c1:50:36:1c:af:8d:
    e2:48:05:53:83:90:12:99:c7:d7:77:aa:84:b3:ab:
    d6:e7:7a:2d:21:6d:8e:95:2f:e8:02:90:81:cb:ba:
    fe:28:05:6a:82:97:81:2e:37:7d:7d:6a:6c:73:bf:
    e6:c9:08:09
Modulus=DF6BDFA04918EDB072CD628E9F938387C29FD990CDA9ED440CF7331B4374FC425F924F4962FC65B1D36CC60F4F397AA233CE87D9604127F3FAA6DA5DE21FDE10A1FADB02B4EB111ADEE101AB37053105E85824AC2899A949D26BCF26A63EAD5B7694D60F5C281C9C2E1A0D232014AB207F65331A27FDA48EEC13D5F3960A3C59

==== Showing public key


Public-Key: (1024 bit)
Modulus:
    00:df:6b:df:a0:49:18:ed:b0:72:cd:62:8e:9f:93:
    83:87:c2:9f:d9:90:cd:a9:ed:44:0c:f7:33:1b:43:
    74:fc:42:5f:92:4f:49:62:fc:65:b1:d3:6c:c6:0f:
    4f:39:7a:a2:33:ce:87:d9:60:41:27:f3:fa:a6:da:
    5d:e2:1f:de:10:a1:fa:db:02:b4:eb:11:1a:de:e1:
    01:ab:37:05:31:05:e8:58:24:ac:28:99:a9:49:d2:
    6b:cf:26:a6:3e:ad:5b:76:94:d6:0f:5c:28:1c:9c:
    2e:1a:0d:23:20:14:ab:20:7f:65:33:1a:27:fd:a4:
    8e:ec:13:d5:f3:96:0a:3c:59
Exponent: 65537 (0x10001)
Modulus=DF6BDFA04918EDB072CD628E9F938387C29FD990CDA9ED440CF7331B4374FC425F924F4962FC65B1D36CC60F4F397AA233CE87D9604127F3FAA6DA5DE21FDE10A1FADB02B4EB111ADEE101AB37053105E85824AC2899A949D26BCF26A63EAD5B7694D60F5C281C9C2E1A0D232014AB207F65331A27FDA48EEC13D5F3960A3C59

razvan@einherjar:~/school/current/cns/repo.git/demos/lecture-09/shell$ echo "anaaremere" | ./rsa-ctl encrypt > encrypted.msg
razvan@einherjar:~/school/current/cns/repo.git/demos/lecture-09/shell$ ./rsa-ctl decrypt < encrypted.msg
anaaremere

RSA in C

TODO

RSA in Python

TODO

cns/lectures/lecture-09.1417366739.txt.gz ยท Last modified: 2014/11/30 18:58 by razvan.deaconescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0