Dan Boneh का ऑनलाइन क्रिप्टोग्राफी कोर्स (2017)
(crypto.stanford.edu)- Stanford University के Dan Boneh द्वारा संचालित मुफ्त ऑनलाइन क्रिप्टोग्राफी कोर्स है, जिसमें पूरी लेक्चर सूची सार्वजनिक है और आधिकारिक असाइनमेंट, प्रोजेक्ट व फाइनल एग्जाम Coursera पर उपलब्ध हैं
- मुफ्त टेक्स्टबुक A Graduate Course in Applied Cryptography साथ में इस्तेमाल होती है, जो लेक्चर से ज्यादा गहराई वाली सामग्री, सुरक्षा proofs और अभ्यास प्रश्नों को पूरा करती है
- करिकुलम stream ciphers से लेकर digital signatures तक 7 सप्ताह में चलता है, और हर सप्ताह टेक्स्टबुक के chapters, lecture videos और slides से जुड़ा है
- one-time pad, PRG, DES, AES, MAC, HMAC, TLS 1.2, Diffie-Hellman, RSA, ElGamal, hash-based signatures जैसे व्यावहारिक क्रिप्टोग्राफिक building blocks को व्यापक रूप से कवर करता है
- अलग-अलग लेक्चर Coursera videos के रूप में देखे जा सकते हैं; अगर मूल्यांकन और certificate चाहिए, तो Coursera course में enroll करना होता है
पढ़ने का तरीका और टेक्स्टबुक
- यह Stanford University के Dan Boneh द्वारा संचालित ऑनलाइन क्रिप्टोग्राफी कोर्स है
- मुफ्त कोर्स के सभी लेक्चर एक ही पेज पर व्यवस्थित हैं
- असाइनमेंट, प्रोजेक्ट और फाइनल एग्जाम सहित आधिकारिक रूप से कोर्स करना हो, तो Coursera course page का उपयोग करना होगा
- मुफ्त टेक्स्टबुक D. Boneh और V. Shoup की A Graduate Course in Applied Cryptography है
- यह लेक्चर से ज्यादा गहराई में जाती है और इसमें security proofs व कई अभ्यास प्रश्न शामिल हैं
सप्ताह 1: कोर्स overview और stream ciphers
- सप्ताह 1 टेक्स्टबुक के chapters 2–3 से संबंधित है और course overview, discrete probability की बुनियाद, और stream ciphers को कवर करता है
- slides Introduction और Stream ciphers विषयों पर उपलब्ध हैं
- मुख्य लेक्चर:
- Course overview: 10 मिनट
- What is cryptography: 15 मिनट
- History of cryptography: 18 मिनट
- Discrete probability (crash course): 18 मिनट
- Information theoretic security and the one-time pad: 18 मिनट
- Stream ciphers and pseudorandom generators: 19 मिनट
- Attacks on stream ciphers and the one-time pad: 23 मिनट
- Real-world stream ciphers: 19 मिनट
- PRG security definition: 24 मिनट
- Semantic security: 15 मिनट
सप्ताह 2: block ciphers
- सप्ताह 2 टेक्स्टबुक के chapters 4–5 से संबंधित है और block ciphers तथा block ciphers के उपयोग को कवर करता है
- slides Block ciphers और Using block ciphers विषयों पर उपलब्ध हैं
- मुख्य लेक्चर:
- What are block ciphers: 16 मिनट
- The Data Encryption Standard (DES): 21 मिनट
- Exhaustive search attacks: 19 मिनट
- More attacks on block ciphers: 16 मिनट
- The AES block cipher: 13 मिनट
- Block ciphers from PRGs: 11 मिनट
- Review: PRPs and PRFs: 11 मिनट
- Modes of operation: one-time key: 7 मिनट
- Security for many-time key (CPA security): 22 मिनट
- Modes of operation: many-time key (CBC): 16 मिनट
- Modes of operation: many-time key (CTR): 9 मिनट
सप्ताह 3: message integrity और collision-resistant hashing
- सप्ताह 3 टेक्स्टबुक के chapters 6–8 से संबंधित है और message authentication codes (MAC), collision resistance और HMAC को कवर करता है
- slides Message integrity और Collision resistant hashing विषयों पर उपलब्ध हैं
- मुख्य लेक्चर:
- Message authentication codes: 15 मिनट
- MACs based on PRFs: 9 मिनट
- CBC-MAC and NMAC: 19 मिनट
- MAC padding: 8 मिनट
- PMAC and Carter-Wegman MAC: 15 मिनट
- Generic birthday attack: 14 मिनट
- The Merkle-Damgard paradigm: 11 मिनट
- Constructing compression functions: 8 मिनट
- HMAC: 7 मिनट
- Timing attacks on MAC verification: 8 मिनट
सप्ताह 4: authenticated encryption और implementation pitfalls
- सप्ताह 4 टेक्स्टबुक के chapter 9 से संबंधित है और authenticated encryption तथा cryptographic systems के उपयोग में आने वाली pitfalls को कवर करता है
- slides Authenticated encryption और Odds and ends विषयों पर उपलब्ध हैं
- मुख्य लेक्चर:
- Active attacks on CPA-secure encryption: 12 मिनट
- Definitions: 5 मिनट
- Chosen ciphertext attacks: 12 मिनट
- Constructions from ciphers and MACs: 20 मिनट
- Case study: TLS 1.2: 17 मिनट
- CBC padding attacks: 14 मिनट
- Attacking non-atomic decryption: 9 मिनट
- Key derivation: 13 मिनट
- Deterministic encryption: 14 मिनट
- Deterministic encryption: SIV and wide PRP: 20 मिनट
- Tweakable encryption: 14 मिनट
- Format preserving encryption: 12 मिनट
सप्ताह 5: key exchange और number theory की बुनियाद
- सप्ताह 5 टेक्स्टबुक के chapter 10 से संबंधित है और key exchange problem तथा number theory की बुनियाद को कवर करता है
- slides Basic key exchange और Crash course in number theory विषयों पर उपलब्ध हैं
- मुख्य लेक्चर:
- Trusted 3rd parties: 11 मिनट
- Merkle puzzles: 11 मिनट
- The Diffie-Hellman protocol: 19 मिनट
- Public-key encryption: 10 मिनट
- Notation: 14 मिनट
- Fermat and Euler: 18 मिनट
- Modular e'th roots: 17 मिनट
- Arithmetic algorithms: 12 मिनट
- Intractable problems: 18 मिनट
सप्ताह 6: public-key cryptography
- सप्ताह 6 टेक्स्टबुक के chapters 11–12 से संबंधित है और trapdoor permutations, RSA, Diffie-Hellman आधारित public-key cryptography को कवर करता है
- slides Trapdoor permutation और Diffie-Hellman विषयों पर उपलब्ध हैं
- मुख्य लेक्चर:
- Definitions and security: 15 मिनट
- Constructions: 10 मिनट
- The RSA trapdoor permutation: 17 मिनट
- PKCS1: 21 मिनट
- Is RSA a one-way function?: 16 मिनट
- RSA in practice: 13 मिनट
- The ElGamal public-key system: 19 मिनट
- ElGamal security: 13 मिनट
- ElGamal variants with better security: 10 मिनट
- A unifying theme: 11 मिनट
- Farewell for now: 5 मिनट
सप्ताह 7: digital signatures
- सप्ताह 7 टेक्स्टबुक के chapters 13–14 से संबंधित है और digital signatures तथा hash-based signatures को कवर करता है
- slides Digital signatures और Hash-based signatures विषयों पर उपलब्ध हैं
1 टिप्पणियां
Hacker News टिप्पणियाँ
जब मैं Stanford में छात्र था, CS255 Intro to Cryptography मेरी सबसे पसंदीदा कक्षाओं में से एक थी, और Dan वाकई बेहतरीन शिक्षक थे
अगर आपको Stanford की security lectures की और सामग्री चाहिए, तो CS253 Web Security (https://web.stanford.edu/class/cs253/) भी सुझाऊँगा। पूरी disclosure के लिए: यह course मैंने बनाया था, और CS356 Topics in Computer and Network Security (https://cs356.stanford.edu/) भी ठीक है
CS253 के videos यहाँ हैं: https://www.youtube.com/playlist?list=PL1y1iaEtjSYiiSGVlL1cH...
वे बेहद प्रतिभाशाली हैं और concepts को बहुत अच्छी तरह समझाते हैं
मैंने कुछ साल पहले इस प्रोफेसर की online cryptography lectures की थीं और वे बहुत अच्छी थीं
गणित की पृष्ठभूमि होने के बावजूद, वह course करके मुझे समझ आया कि मैं professional cryptographer नहीं बनना चाहता, और सिर्फ यह समझ भी काफ़ी उपयोगी रही
मज़ाक अपनी जगह, लेकिन cryptosystems को devil के साथ game की तरह analyze करना और encrypted bytes से random bit strings को distinguish करने की कोशिश करना मुझे सच में बहुत मज़ेदार लगा
नतीजा यही था कि अपना crypto खुद मत बनाओ, क्योंकि इसे सही तरीके से करना बहुत मुश्किल है। यह थोड़ा cynical है, लेकिन इसने और गहराई में जाने की मेरी कुछ दिलचस्पी भी कम कर दी
शानदार lecture है। बस completion time के रूप में दिया गया 23 घंटे का अनुमान, इस विषय में आपकी पहले से मौजूद proficiency के हिसाब से काफ़ी बदल सकता है
यह ध्यान में रखकर तैयारी करना और अपनी pace सेट करना अच्छा रहेगा
अच्छा लग रहा है, लेकिन काश ऐसी सामग्री भी होती जो गणित से शुरू करने के बजाय crypto libraries का इस्तेमाल कैसे करें यह practitioner के नज़रिए से सिखाती
मुझे RSA की अंदरूनी बारीकियाँ जानने की ज़रूरत नहीं है; मुझे यह जानना है कि अलग-अलग building blocks को सुरक्षित तरीके से कैसे जोड़ें ताकि मनचाही properties वाला system बन सके
अभी लगभग तीन-चौथाई पढ़ चुका हूँ और अब तक संतुष्ट हूँ। यह math को हल्के ढंग से लेती है, लेकिन पूरी तरह छोड़ती नहीं; और यह मुझे ऐसी किताब लगती है जो उन लोगों के लिए है जिन्हें अंदर क्या हो रहा है यह समझना ज़रूरी है, लेकिन जिन्हें खुद implementation details पर काम नहीं करना
इस किताब की वजह से मुझे लगता है कि मैंने इतना तो सीख लिया है कि building blocks को जोड़कर ऐसा protocol बना सकूँ जो ऊपर-ऊपर से intended तरीके से काम करे। साथ ही यह भी सीखा कि protocol को पूरी तरह तोड़ देने वाली सूक्ष्म बातें बहुत होती हैं, building blocks के combinations से अनपेक्षित कमजोरियाँ बन सकती हैं, और मुझसे कहीं ज़्यादा crypto जानने वाले लोग भी secure building blocks के साथ broken protocols बना देते हैं
हो सकता है यह वही किताब न हो जिसे आप ढूँढ रहे हों, लेकिन अगर आप खुद design नहीं करना चाहते और सिर्फ crypto को समझना चाहते हैं, तो यह अच्छी किताब है
उदाहरण के लिए, अगर आप libsodium को उसी तरह इस्तेमाल कर रहे हैं जैसे 100 दूसरे developers पहले ही सफलतापूर्वक कर चुके हैं, तो ठीक है। लेकिन कुछ बहुत छोटे और subtle steps के बाद आप अनजाने में एक नया cryptosystem synthesize कर सकते हैं। libsodium building blocks से secure messaging system बनाने की कोशिश इसका एक उदाहरण है
बहुत theory सीखनी पड़ती है। यह महत्वपूर्ण है
उदाहरण: https://gist.github.com/tqbf/be58d2d39690c3b366ad या https://www.latacora.com/blog/2018/04/03/cryptographic-right...
Bruce Schneier, Niels Ferguson, Tadayoshi Kohno द्वारा लिखी गई
आधुनिक cryptography का बड़ा हिस्सा सुरक्षित combinations ढूँढने में ही जाता है
इस thread में बहुत से लोग बिना theory के hands-on cryptography learning में रुचि रखते दिख रहे हैं। अगर ऐसा है, तो HN MVP tptacek का cryptopals.com देखना चाहिए
अगर आप ऐसी चीज़ें CTF format में practice करना चाहते हैं, तो https://cryptohack.org/ की सिफारिश करूँगा। बेहतरीन site है
शानदार lecture है और मेरे career growth में इसकी महत्वपूर्ण भूमिका रही
यह भी ध्यान देने लायक है कि Dan Boneh a16z crypto research team के advisor भी हैं[1], और उनके साथ blockchain से जुड़ा काफ़ी content भी बनाते हैं[2]
[1]: https://a16zcrypto.com/research/
[2]: https://a16zcrypto.com/team/dan-boneh/
आधुनिक implementations elliptic curves का उपयोग करती हैं, और ऐतिहासिक रूप से इसमें बड़े prime fields के subgroup में discrete log का उपयोग हुआ होगा। इसमें BLS signatures भी कवर होती हैं, और वे पूरी तरह elliptic curve आधारित हैं
सामान्य तौर पर, जिसकी security discrete log पर निर्भर करती है उसे elliptic curves के साथ implement किया जा सकता है। लेकिन introductory cryptography courses में अक्सर जो चाहिए होता है वह prime-order group होता है, और elliptic curves को भी प्रायः black-box prime-order groups की तरह treat किया जा सकता है, इसलिए इसे implementation detail माना जाता है
BLS signatures इसका अपवाद हैं। इनमें bilinear pairings चाहिए होते हैं, और उसके लिए सिर्फ साधारण black-box prime-order group नहीं, बल्कि एक खास तरह की elliptic curve चाहिए होती है
algebraic geometry tricks की दुनिया elliptic curves के साथ बहुत समृद्ध है, लेकिन ऐसी चीज़ें introductory cryptography class में शायद ही आएँगी, और शायद किसी भी computer science class में भी कम ही दिखेंगी
Coursera के Cryptography II course का अभी भी इंतज़ार कौन कर रहा है?
उनके सह-लिखे हुए किताब A Graduate Course in Applied Cryptography ने बहुत मदद की
https://toc.cryptobook.us/