# Theory and Practice of Modern Cryptography

- Institution: IIT Kharagpur
- Department: Computer Science and Engineering
- Teacher: Prof. Sourav Mukhopadhyay
- Level: Undergraduate
- Language: English
- Subjects: Computer science, Engineering
- Source: [NPTEL](https://nptel.ac.in/courses/106105002)
- Licence: [CC BY-NC-SA](https://nptel.ac.in/faq) (Non-commercial use only.)
- Syllabus: [at the source](https://nptel.ac.in/courses/106105002)
- Who can watch: Tweens profiles and older (sources give no ratings; placed by Invisible Network from the source's own words)

This course introduces fundamental and advanced concepts in modern cryptography through an intuitive and application-oriented approach. It begins with classical cryptography, covering block ciphers, stream ciphers, and public-key systems and progresses to modern topics like digital signatures, hash functions, elliptic curve cryptography, and post-quantum cryptography. Advanced areas such as zero-knowledge proofs, homomorphic encryption, Functional encryption, and secure multiparty computation are also discussed. Designed for learners from diverse academic backgrounds, the course emphasizes real-world applications in secure communications, blockchain, and digital payments, with minimal mathematical prerequisites. By the end, students will understand key cryptographic primitives, their security goals, and the evolving landscape of cyber threats. The course equips learners to critically analyze and apply cryptographic tools in practical systems, serving as a solid foundation for further study or careers in cybersecurity, software engineering, or digital forensics.

Intended audience: Computer Science

Prerequisites: Higher Secondary Mathematics knowledge

## Lectures

1. [Lecture No - 01: What is Cryptography?](https://invisiblenetwork.ai/learn/nptel/106105002/c9e3c1a33b1d) (YouTube)
2. [Lecture No - 02: Introduction to Cryptanalysis](https://invisiblenetwork.ai/learn/nptel/106105002/36aa9ff13efd) (YouTube)
3. [Lecture No - 03: Classical Cryptography](https://invisiblenetwork.ai/learn/nptel/106105002/bb6453ffcad4) (YouTube)
4. [Lecture No - 04: Polyalphabetic Cipher](https://invisiblenetwork.ai/learn/nptel/106105002/1ba5873c7be1) (YouTube)
5. [Lecture No - 05: Playfair Cipher and Affine Cipher](https://invisiblenetwork.ai/learn/nptel/106105002/3ae8500f7b47) (YouTube)
6. [Lecture No - 06: Hill Cipher](https://invisiblenetwork.ai/learn/nptel/106105002/b9fb15e92e5d) (YouTube)
7. [Lecture No - 07: Block Cipher](https://invisiblenetwork.ai/learn/nptel/106105002/2a42883cd496) (YouTube)
8. [Lecture No - 08: SPN and Feistel Cipher](https://invisiblenetwork.ai/learn/nptel/106105002/f2a1bb581980) (YouTube)
9. [Lecture No - 09: Data Encryption Standard (DES)](https://invisiblenetwork.ai/learn/nptel/106105002/e74bf1817f0d) (YouTube)
10. [Lecture No - 10: Data Encryption Standard (Cont…)](https://invisiblenetwork.ai/learn/nptel/106105002/3b4526e75cce) (YouTube)
11. [Lecture No - 11: Cryptanalysis on DES](https://invisiblenetwork.ai/learn/nptel/106105002/0297b49a5b22) (YouTube)
12. [Lecture No - 12: Advanced Encryption Standard (AES)](https://invisiblenetwork.ai/learn/nptel/106105002/f953fbfbae65) (YouTube)
13. [Lecture No - 13: Advanced Encryption Standard (Cont…)](https://invisiblenetwork.ai/learn/nptel/106105002/fcdd4410c267) (YouTube)
14. [Lecture No - 14: Advanced Encryption Standard (Cont…)](https://invisiblenetwork.ai/learn/nptel/106105002/2b4a582f55af) (YouTube)
15. [Lecture No - 15: Shift Rows and Key-Scheduling on AES](https://invisiblenetwork.ai/learn/nptel/106105002/6e1a23692e8d) (YouTube)
16. [Lecture No - 16: Modes of Operation on Block cipher](https://invisiblenetwork.ai/learn/nptel/106105002/283b04681d2d) (YouTube)
17. [Lecture No - 17: Modes of Operation (Cont…)](https://invisiblenetwork.ai/learn/nptel/106105002/d214282c82e0) (YouTube)
18. [Lecture No - 18: Stream Cipher](https://invisiblenetwork.ai/learn/nptel/106105002/6935ce9628a9) (YouTube)
19. [Lecture No - 19: Stream Cipher (Cont…)](https://invisiblenetwork.ai/learn/nptel/106105002/261c56064854) (YouTube)
20. [Lecture No - 20: Autokey Cipher, LFSR](https://invisiblenetwork.ai/learn/nptel/106105002/d5fae86883cc) (YouTube)
21. [Lecture No - 21: Linear Feedback Shift Registers](https://invisiblenetwork.ai/learn/nptel/106105002/faa5415bdc30) (YouTube)
22. [Lecture No - 22: Pseudo-Random Number Generator](https://invisiblenetwork.ai/learn/nptel/106105002/9c3fdfaf07b2) (YouTube)
23. [Lecture No - 23: Pseudo-Random Number Generator (Cont…)](https://invisiblenetwork.ai/learn/nptel/106105002/1e1bdf0890cd) (YouTube)
24. [Lecture No - 24: Introduction to Public Key](https://invisiblenetwork.ai/learn/nptel/106105002/091e9c3c3328) (YouTube)
25. [Lecture No - 25: Introduction to Public-Key (Cont…)](https://invisiblenetwork.ai/learn/nptel/106105002/8e8e1ed30825) (YouTube)
26. [Lecture No - 26 - Knapsack Cryptosystem](https://invisiblenetwork.ai/learn/nptel/106105002/be452b022b23) (YouTube)
27. [Lecture No - 27 : Elementary Number Theory](https://invisiblenetwork.ai/learn/nptel/106105002/130885e9a36d) (YouTube)
28. [Lecture No - 28 : Extended Euclid Algorithm (Number Theory)](https://invisiblenetwork.ai/learn/nptel/106105002/26868deba2ea) (YouTube)
29. [Lecture No - 29: Euler’s Theorem (Number Theory)](https://invisiblenetwork.ai/learn/nptel/106105002/d794630a64e0) (YouTube)
30. [Lecture No - 30: Primality Test (Number Theory)](https://invisiblenetwork.ai/learn/nptel/106105002/4f989b238d8b) (YouTube)
31. [Lecture No - 31: RSA Cryptosystem](https://invisiblenetwork.ai/learn/nptel/106105002/6652fe6d8add) (YouTube)
32. [Lecture No - 32: RSA Cryptosystem (Cont…)](https://invisiblenetwork.ai/learn/nptel/106105002/79481e9d6b5c) (YouTube)
33. [Lecture No - 33: Security Aspects of RSA](https://invisiblenetwork.ai/learn/nptel/106105002/12b9a7cf3fef) (YouTube)
34. [Lecture No - 34: ElGamal Cryptosystem](https://invisiblenetwork.ai/learn/nptel/106105002/09fca292d8fc) (YouTube)
35. [Lecture No - 35: Elliptic Curve Cryptosystem](https://invisiblenetwork.ai/learn/nptel/106105002/788b0ea7b202) (YouTube)
36. [Lecture No - 36: Rabin Cryptosystem](https://invisiblenetwork.ai/learn/nptel/106105002/9315ccf7926d) (YouTube)
37. [Lecture No - 37: Message Authentication](https://invisiblenetwork.ai/learn/nptel/106105002/0c8a77bfe97e) (YouTube)
38. [Lecture No - 38: Hash Function](https://invisiblenetwork.ai/learn/nptel/106105002/3cfc51762091) (YouTube)
39. [Lecture No - 39: Secure Hash Algorithm (SHA)](https://invisiblenetwork.ai/learn/nptel/106105002/fbe440047e3c) (YouTube)
40. [Lecture No - 40: Introduction to Digital Signature](https://invisiblenetwork.ai/learn/nptel/106105002/89b7a8abf51a) (YouTube)
41. [Lecture No - 41: Digital Signature Schemes](https://invisiblenetwork.ai/learn/nptel/106105002/b1cf52434e72) (YouTube)
42. [Lecture No - 42: Security Model on Public_key Encryption](https://invisiblenetwork.ai/learn/nptel/106105002/d9da4f00e165) (YouTube)
43. [Lecture No - 43: Security Model on Digital Signature](https://invisiblenetwork.ai/learn/nptel/106105002/9d09489093d6) (YouTube)
44. [Lecture No - 44: Generic Attacks](https://invisiblenetwork.ai/learn/nptel/106105002/d0b77db874bd) (YouTube)
45. [Lecture No - 45: Time-Memory Trade-Off Attack](https://invisiblenetwork.ai/learn/nptel/106105002/63951a5740a5) (YouTube)
46. [Lecture No - 46: Differential Cryptanalysis](https://invisiblenetwork.ai/learn/nptel/106105002/01d4255e93a8) (YouTube)
47. [Lecture No - 47: Linear Cryptanalysis](https://invisiblenetwork.ai/learn/nptel/106105002/d7add60adf9f) (YouTube)
48. [Lecture No - 48: Secret Sharing Scheme and Threshold Signature Scheme](https://invisiblenetwork.ai/learn/nptel/106105002/f7ae41b93900) (YouTube)
49. [Lecture No - 49: Identity-based Encryption and Broadcast Encryption](https://invisiblenetwork.ai/learn/nptel/106105002/55d64de5351c) (YouTube)
50. [Lecture No - 50: Ring Signature](https://invisiblenetwork.ai/learn/nptel/106105002/e7e56a820150) (YouTube)
51. [Lecture No - 51 : Multi-Party Computation](https://invisiblenetwork.ai/learn/nptel/106105002/9a5023ed7119) (YouTube)
52. [Lecture No - 52: Homomorphic Encryption](https://invisiblenetwork.ai/learn/nptel/106105002/924ee00ab1d8) (YouTube)
53. [Lecture No - 53: Functional Encryption](https://invisiblenetwork.ai/learn/nptel/106105002/020fbb4c2a1f) (YouTube)
54. [Lecture No - 54: Attribute-Based Encryption (ABE)](https://invisiblenetwork.ai/learn/nptel/106105002/67c7a56b28c5) (YouTube)
55. [Lecture No - 55: Registration-Based Encryption (RBE)](https://invisiblenetwork.ai/learn/nptel/106105002/dca2ef87b1c9) (YouTube)
56. [Lecture No - 56: Zero-Knowledge Proof](https://invisiblenetwork.ai/learn/nptel/106105002/4c1d1b1c2977) (YouTube)
57. [Lecture No - 57: Post-Quantum Cryptography (PQC)](https://invisiblenetwork.ai/learn/nptel/106105002/afdef576962e) (YouTube)
58. [Lecture No - 58: Lattice-Based Cryptography](https://invisiblenetwork.ai/learn/nptel/106105002/15ae8a3944af) (YouTube)
59. [Lecture No - 59: Lattice-Based Cryptography (Cont…)](https://invisiblenetwork.ai/learn/nptel/106105002/1514b7fc50fa) (YouTube)
60. [Lecture No - 60: Hash-Based Cryptography](https://invisiblenetwork.ai/learn/nptel/106105002/e3ea39815332) (YouTube)
