Dan Boneh’un çevrimiçi kriptografi dersi (2017)
(crypto.stanford.edu)- Stanford University’den Dan Boneh tarafından verilen ücretsiz çevrimiçi kriptografi dersi; tüm ders listesi açık olarak sunuluyor ve resmi ödevler, projeler ile final sınavı Coursera üzerinden sağlanıyor
- Ücretsiz ders kitabı A Graduate Course in Applied Cryptography ile birlikte kullanılıyor; bu kitap derslerden daha derine iniyor ve güvenlik ispatları ile alıştırmaları tamamlıyor
- Müfredat, stream cipher konusundan dijital imzalara kadar 7 haftaya yayılıyor; her hafta ilgili kitap bölümleri, ders videoları ve slaytlarla eşleştiriliyor
- one-time pad, PRG, DES, AES, MAC, HMAC, TLS 1.2, Diffie-Hellman, RSA, ElGamal, hash tabanlı imzalar gibi pratik kriptografi bileşenlerini geniş kapsamda ele alıyor
- Tekil dersler Coursera videoları üzerinden izlenebiliyor; değerlendirme ve sertifika istenirse Coursera dersine kayıt olmak gerekiyor
Katılım biçimi ve ders kitabı
- Stanford University’den Dan Boneh tarafından verilen bir çevrimiçi kriptografi dersidir
- Ücretsiz dersin tüm içerikleri tek bir sayfada düzenli şekilde sunuluyor
- Ödev, proje ve final sınavı dahil resmi olarak dersi takip etmek için Coursera ders sayfası kullanılmalı
- Ücretsiz ders kitabı, D. Boneh ve V. Shoup’un A Graduate Course in Applied Cryptography kitabıdır
- Dersten daha derin konuları ele alır ve güvenlik ispatları ile çok sayıda alıştırma içerir
1. hafta: Derse genel bakış ve stream cipher'lar
-
- hafta kitabın 2–3. bölümlerine karşılık gelir; derse genel bakış, ayrık olasılığın temelleri ve stream cipher'lar ele alınır
- Slaytlar Introduction ve Stream ciphers başlıklarıyla sunulur
- Başlıca dersler:
- Course overview: 10 dakika
- What is cryptography: 15 dakika
- History of cryptography: 18 dakika
- Discrete probability (crash course): 18 dakika
- Information theoretic security and the one-time pad: 18 dakika
- Stream ciphers and pseudorandom generators: 19 dakika
- Attacks on stream ciphers and the one-time pad: 23 dakika
- Real-world stream ciphers: 19 dakika
- PRG security definition: 24 dakika
- Semantic security: 15 dakika
2. hafta: Block cipher'lar
-
- hafta kitabın 4–5. bölümlerine karşılık gelir; block cipher'lar ve bunların kullanım yöntemleri ele alınır
- Slaytlar Block ciphers ve Using block ciphers başlıklarıyla sunulur
- Başlıca dersler:
- What are block ciphers: 16 dakika
- The Data Encryption Standard (DES): 21 dakika
- Exhaustive search attacks: 19 dakika
- More attacks on block ciphers: 16 dakika
- The AES block cipher: 13 dakika
- Block ciphers from PRGs: 11 dakika
- Review: PRPs and PRFs: 11 dakika
- Modes of operation: one-time key: 7 dakika
- Security for many-time key (CPA security): 22 dakika
- Modes of operation: many-time key (CBC): 16 dakika
- Modes of operation: many-time key (CTR): 9 dakika
3. hafta: Mesaj bütünlüğü ve çakışma dirençli hash
-
- hafta kitabın 6–8. bölümlerine karşılık gelir; message authentication code (MAC), çakışma direnci ve HMAC ele alınır
- Slaytlar Message integrity ve Collision resistant hashing başlıklarıyla sunulur
- Başlıca dersler:
- Message authentication codes: 15 dakika
- MACs based on PRFs: 9 dakika
- CBC-MAC and NMAC: 19 dakika
- MAC padding: 8 dakika
- PMAC and Carter-Wegman MAC: 15 dakika
- Generic birthday attack: 14 dakika
- The Merkle-Damgard paradigm: 11 dakika
- Constructing compression functions: 8 dakika
- HMAC: 7 dakika
- Timing attacks on MAC verification: 8 dakika
4. hafta: Authenticated encryption ve uygulamadaki tuzaklar
-
- hafta kitabın 9. bölümüne karşılık gelir; authenticated encryption ve kriptografik sistemlerin kullanımındaki tuzaklar ele alınır
- Slaytlar Authenticated encryption ve Odds and ends başlıklarıyla sunulur
- Başlıca dersler:
- Active attacks on CPA-secure encryption: 12 dakika
- Definitions: 5 dakika
- Chosen ciphertext attacks: 12 dakika
- Constructions from ciphers and MACs: 20 dakika
- Case study: TLS 1.2: 17 dakika
- CBC padding attacks: 14 dakika
- Attacking non-atomic decryption: 9 dakika
- Key derivation: 13 dakika
- Deterministic encryption: 14 dakika
- Deterministic encryption: SIV and wide PRP: 20 dakika
- Tweakable encryption: 14 dakika
- Format preserving encryption: 12 dakika
5. hafta: Anahtar değişimi ve sayı teorisinin temelleri
-
- hafta kitabın 10. bölümüne karşılık gelir; anahtar değişimi problemi ve sayı teorisinin temelleri ele alınır
- Slaytlar Basic key exchange ve Crash course in number theory başlıklarıyla sunulur
- Başlıca dersler:
- Trusted 3rd parties: 11 dakika
- Merkle puzzles: 11 dakika
- The Diffie-Hellman protocol: 19 dakika
- Public-key encryption: 10 dakika
- Notation: 14 dakika
- Fermat and Euler: 18 dakika
- Modular e'th roots: 17 dakika
- Arithmetic algorithms: 12 dakika
- Intractable problems: 18 dakika
6. hafta: Açık anahtarlı kriptografi
-
- hafta kitabın 11–12. bölümlerine karşılık gelir; trapdoor permutation, RSA ve Diffie-Hellman tabanlı açık anahtarlı kriptografi ele alınır
- Slaytlar Trapdoor permutation ve Diffie-Hellman başlıklarıyla sunulur
- Başlıca dersler:
- Definitions and security: 15 dakika
- Constructions: 10 dakika
- The RSA trapdoor permutation: 17 dakika
- PKCS1: 21 dakika
- Is RSA a one-way function?: 16 dakika
- RSA in practice: 13 dakika
- The ElGamal public-key system: 19 dakika
- ElGamal security: 13 dakika
- ElGamal variants with better security: 10 dakika
- A unifying theme: 11 dakika
- Farewell for now: 5 dakika
7. hafta: Dijital imzalar
-
- hafta kitabın 13–14. bölümlerine karşılık gelir; dijital imzalar ve hash tabanlı imzalar ele alınır
- Slaytlar Digital signatures ve Hash-based signatures başlıklarıyla sunulur
1 yorum
Hacker News yorumları
Stanford öğrencisiyken CS255 Intro to Cryptography en sevdiğim derslerden biriydi ve Dan gerçekten olağanüstü bir hocaydı
Stanford güvenlik ders materyallerinden daha fazlasını istiyorsanız CS253 Web Security (https://web.stanford.edu/class/cs253/) dersini de tavsiye ederim. Açık konuşayım, bu dersi ben oluşturdum; ayrıca CS356 Topics in Computer and Network Security (https://cs356.stanford.edu/) de iyidir
CS253 videoları burada: https://www.youtube.com/playlist?list=PL1y1iaEtjSYiiSGVlL1cH...
Çok yetenekli ve kavramları açıklamada son derece iyi
Birkaç yıl önce bu profesörün çevrimiçi kriptografi dersini almıştım ve çok iyiydi
Matematik altyapım olmasına rağmen, o dersi aldıktan sonra profesyonel bir kriptograf olmak istemediğimi fark ettim; bu bile başlı başına oldukça iyi bir kazanımdı
Şaka bir yana, kripto sistemlerini şeytanla oyunlar üzerinden analiz edip şifreli baytlardan rastgele bit dizilerini ayırt etmeye çalışma yaklaşımı gerçekten keyifliydi
Sonuç şu: doğru yapmak zor olduğu için kendi kriptonuzu tasarlamayın. Biraz alaycı bir sonuç ama daha derine inme isteğimi bir ölçüde kırmıştı
Harika bir ders. Ancak tahmini tamamlama süresi olan 23 saat, konuya dair ön bilgi düzeyinize göre ciddi biçimde değişebilir
Bunu göz önünde bulundurarak hazırlanmak ve temponuzu ayarlamak iyi olur
İyi görünüyor ama keşke matematikten başlamayıp kriptografi kütüphanelerinin kullanımını uygulayıcı bakış açısından ele alan kaynaklar da olsa
RSA'nın ayrıntılı yapısını bilmem gerekmiyor; istediğim özelliklere sahip bir sistem kurmak için onu diğer yapı taşlarıyla nasıl güvenli şekilde birleştireceğimi bilmem gerekiyor
Şu an yaklaşık dörtte üçünü bitirdim ve memnunum. Matematiğe hafifçe giriyor ama tamamen yüzeyde de kalmıyor; iç işleyişi anlamadan kullanmakta rahat etmeyecek, ama fiilen iç uygulamaları yazması da gerekmeyen insanlar için yazılmış gibi görünüyor
Bu kitap sayesinde, görünüşte amaçlandığı gibi çalışan protokolleri yapı taşlarından birleştirebilecek kadar şey öğrendiğimi hissediyorum. Aynı zamanda bir protokolü tamamen bozabilecek çok ince noktalar olduğunu, yapı taşlarını birleştirmenin beklenmedik zayıflıklar üretebileceğini ve benden çok daha iyi kriptografi bilen kişilerin bile güvenli yapı taşlarıyla bozuk protokoller tasarlayabildiğini de öğrendim
Aradığınız kitap bu olmayabilir ama amacınız doğrudan tasarım yapmak değil de kriptografiyi anlamaksa, bence iyi bir kitap
Örneğin, sizden önce 100 farklı geliştiricinin başarıyla yaptığı şekilde libsodium kullanıyorsanız sorun yoktur. Ama çok küçük ve ince birkaç adımın ardından, farkına varmadan yeni bir kripto sistemi sentezlemeye başlamış olursunuz. libsodium yapı taşlarıyla güvenli bir mesajlaşma sistemi kurmaya çalışma girişimi buna örnektir
Bol bol teori öğrenmek gerekir. Bu önemlidir
Örnek: https://gist.github.com/tqbf/be58d2d39690c3b366ad veya https://www.latacora.com/blog/2018/04/03/cryptographic-right...
Yazarları Bruce Schneier, Niels Ferguson ve Tadayoshi Kohno
Modern kriptografinin büyük bir kısmı güvenli birleştirmeleri bulmakla ilgilidir
Bu başlıkta birçok kişi teorisiz, pratik odaklı kriptografi öğrenimi ile ilgileniyor gibi görünüyor. Durum buysa HN MVP tptacek'in cryptopals.com sitesine bakabilirsiniz
Bu tür şeyleri CTF formatında çalışmak istiyorsanız https://cryptohack.org/ tavsiye ederim. Harika bir site
Harika bir ders ve kariyerimde büyümemde önemli bir rol oynadı
Dan Boneh'nin ayrıca a16z crypto araştırma ekibinin danışmanı olması da dikkat çekici[1]; onlarla birlikte blokzincir üzerine çok sayıda içerik üretiyor[2]
[1]: https://a16zcrypto.com/research/
[2]: https://a16zcrypto.com/team/dan-boneh/
Modern uygulamalar eliptik eğriler kullanır; tarihsel olarak ise büyük asal cisimlerin alt gruplarında ayrık logaritma kullanılmış olurdu. Ayrıca tamamen eliptik eğri temelli olan BLS imzaları da ele alınıyor
Genel olarak, güvenliği ayrık logaritmaya dayanan her şey eliptik eğrilerle uygulanabilir. Ancak giriş seviyesindeki kriptografi derslerinde çoğunlukla ihtiyaç duyulan şey asal mertebeli gruplardır ve eliptik eğriler de çoğu zaman kara kutu asal mertebeli gruplar gibi ele alınabildiği için bu konu bir uygulama detayı olarak geçer
BLS imzaları bunun istisnasıdır. Çift doğrusal pairing gerekir ve bu da basit bir kara kutu asal mertebeli grup değil, özel türde eliptik eğriler gerektirir
Eliptik eğrilerle yapılabilecek harika cebirsel geometri numaraları vardır ama bunlar giriş düzeyi kriptografi derslerinde pek yer almaz; hatta muhtemelen herhangi bir bilgisayar bilimi dersinde bile görmek zordur
Coursera'daki Cryptography II dersini hâlâ bekleyen var mı?
Ortak yazarı olduğu A Graduate Course in Applied Cryptography kitabı bana çok yardımcı olmuştu
https://toc.cryptobook.us/