Kursus Kriptografi Online oleh Dan Boneh (2017)
(crypto.stanford.edu)- Kursus kriptografi online gratis yang dibawakan oleh Dan Boneh dari Stanford University, dengan daftar kuliah lengkap dipublikasikan dan tugas resmi, proyek, serta ujian akhir disediakan melalui Coursera
- Buku teks gratis A Graduate Course in Applied Cryptography digunakan bersama kursus ini, melengkapi kuliah dengan pembahasan yang lebih mendalam, pembuktian keamanan, dan latihan soal
- Kurikulumnya berlangsung selama 7 minggu, dari stream cipher hingga tanda tangan digital, dan tiap minggu terhubung ke bab buku, video kuliah, serta slide
- Membahas secara luas komponen kriptografi praktis seperti one-time pad, PRG, DES, AES, MAC, HMAC, TLS 1.2, Diffie-Hellman, RSA, ElGamal, dan tanda tangan berbasis hash
- Kuliah individual dapat ditonton sebagai video Coursera, dan jika memerlukan penilaian serta sertifikat penyelesaian, pengguna perlu mendaftar ke kursus Coursera
Cara mengikuti kursus dan buku teks
- Ini adalah kursus kriptografi online yang dibawakan oleh Dan Boneh dari Stanford University
- Seluruh kuliah dari kursus gratis ini dirangkum dalam satu halaman
- Untuk mengikuti secara resmi, termasuk tugas, proyek, dan ujian akhir, harus menggunakan halaman kursus Coursera
- Buku teks gratisnya adalah D. Boneh dan V. Shoup, A Graduate Course in Applied Cryptography
- Membahas materi yang lebih dalam daripada kuliahnya dan mencakup pembuktian keamanan serta banyak latihan soal
Minggu 1: Gambaran kursus dan stream cipher
- Minggu 1 sesuai dengan bab 2–3 buku teks dan membahas gambaran kursus, dasar probabilitas diskret, serta stream cipher
- Slide disediakan dengan topik Introduction dan Stream ciphers
- Kuliah utama:
- Course overview: 10 menit
- What is cryptography: 15 menit
- History of cryptography: 18 menit
- Discrete probability (crash course): 18 menit
- Information theoretic security and the one-time pad: 18 menit
- Stream ciphers and pseudorandom generators: 19 menit
- Attacks on stream ciphers and the one-time pad: 23 menit
- Real-world stream ciphers: 19 menit
- PRG security definition: 24 menit
- Semantic security: 15 menit
Minggu 2: Block cipher
- Minggu 2 sesuai dengan bab 4–5 buku teks dan membahas block cipher serta cara penggunaannya
- Slide disediakan dengan topik Block ciphers dan Using block ciphers
- Kuliah utama:
- What are block ciphers: 16 menit
- The Data Encryption Standard (DES): 21 menit
- Exhaustive search attacks: 19 menit
- More attacks on block ciphers: 16 menit
- The AES block cipher: 13 menit
- Block ciphers from PRGs: 11 menit
- Review: PRPs and PRFs: 11 menit
- Modes of operation: one-time key: 7 menit
- Security for many-time key (CPA security): 22 menit
- Modes of operation: many-time key (CBC): 16 menit
- Modes of operation: many-time key (CTR): 9 menit
Minggu 3: Integritas pesan dan hash tahan tumbukan
- Minggu 3 sesuai dengan bab 6–8 buku teks dan membahas message authentication code (MAC), ketahanan terhadap tumbukan, dan HMAC
- Slide disediakan dengan topik Message integrity dan Collision resistant hashing
- Kuliah utama:
- Message authentication codes: 15 menit
- MACs based on PRFs: 9 menit
- CBC-MAC and NMAC: 19 menit
- MAC padding: 8 menit
- PMAC and Carter-Wegman MAC: 15 menit
- Generic birthday attack: 14 menit
- The Merkle-Damgard paradigm: 11 menit
- Constructing compression functions: 8 menit
- HMAC: 7 menit
- Timing attacks on MAC verification: 8 menit
Minggu 4: Authenticated encryption dan jebakan implementasi
- Minggu 4 sesuai dengan bab 9 buku teks dan membahas authenticated encryption serta berbagai jebakan dalam penggunaan sistem kriptografi
- Slide disediakan dengan topik Authenticated encryption dan Odds and ends
- Kuliah utama:
- Active attacks on CPA-secure encryption: 12 menit
- Definitions: 5 menit
- Chosen ciphertext attacks: 12 menit
- Constructions from ciphers and MACs: 20 menit
- Case study: TLS 1.2: 17 menit
- CBC padding attacks: 14 menit
- Attacking non-atomic decryption: 9 menit
- Key derivation: 13 menit
- Deterministic encryption: 14 menit
- Deterministic encryption: SIV and wide PRP: 20 menit
- Tweakable encryption: 14 menit
- Format preserving encryption: 12 menit
Minggu 5: Pertukaran kunci dan dasar teori bilangan
- Minggu 5 sesuai dengan bab 10 buku teks dan membahas masalah pertukaran kunci serta dasar-dasar teori bilangan
- Slide disediakan dengan topik Basic key exchange dan Crash course in number theory
- Kuliah utama:
- Trusted 3rd parties: 11 menit
- Merkle puzzles: 11 menit
- The Diffie-Hellman protocol: 19 menit
- Public-key encryption: 10 menit
- Notation: 14 menit
- Fermat and Euler: 18 menit
- Modular e'th roots: 17 menit
- Arithmetic algorithms: 12 menit
- Intractable problems: 18 menit
Minggu 6: Kriptografi kunci publik
- Minggu 6 sesuai dengan bab 11–12 buku teks dan membahas trapdoor permutation, RSA, serta kriptografi kunci publik berbasis Diffie-Hellman
- Slide disediakan dengan topik Trapdoor permutation dan Diffie-Hellman
- Kuliah utama:
- Definitions and security: 15 menit
- Constructions: 10 menit
- The RSA trapdoor permutation: 17 menit
- PKCS1: 21 menit
- Is RSA a one-way function?: 16 menit
- RSA in practice: 13 menit
- The ElGamal public-key system: 19 menit
- ElGamal security: 13 menit
- ElGamal variants with better security: 10 menit
- A unifying theme: 11 menit
- Farewell for now: 5 menit
Minggu 7: Tanda tangan digital
- Minggu 7 sesuai dengan bab 13–14 buku teks dan membahas tanda tangan digital serta tanda tangan berbasis hash
- Slide disediakan dengan topik Digital signatures dan Hash-based signatures
1 komentar
Komentar Hacker News
Saat menjadi mahasiswa Stanford, CS255 Intro to Cryptography adalah salah satu mata kuliah favorit saya, dan Dan benar-benar pengajar yang luar biasa
Jika ingin lebih banyak materi kuliah keamanan Stanford, saya juga merekomendasikan CS253 Web Security (https://web.stanford.edu/class/cs253/). Sebagai pengungkapan, mata kuliah ini saya yang membuatnya, dan CS356 Topics in Computer and Network Security (https://cs356.stanford.edu/) juga bagus
Video CS253 ada di sini: https://www.youtube.com/playlist?list=PL1y1iaEtjSYiiSGVlL1cH...
Sangat berbakat dan sangat pandai menjelaskan konsep
Beberapa tahun lalu saya mengikuti kuliah kriptografi online dari profesor ini, dan itu sangat bagus
Meski saya punya latar belakang matematika, setelah mengikuti kelas itu saya sadar bahwa saya tidak ingin menjadi kriptografer profesional, dan itu saja sudah merupakan hasil yang cukup berharga
Terlepas dari bercanda, saya benar-benar menikmati cara menganalisis sistem kripto sebagai permainan melawan iblis, mencoba membedakan deretan bit acak dari byte yang terenkripsi
Kesimpulannya: jangan membuat kripto sendiri karena melakukannya dengan benar itu sulit. Cukup sinis, tetapi itu agak memadamkan minat saya untuk menggali lebih dalam
Kuliah yang sangat baik. Namun estimasi waktu penyelesaian 23 jam bisa sangat bervariasi tergantung tingkat penguasaan awal terhadap topiknya
Sebaiknya bersiap dan mengatur tempo dengan mempertimbangkan hal itu
Kelihatannya bagus, tetapi saya berharap ada materi yang membahas cara memakai library kriptografi dari sudut pandang praktisi, bukan memulai dari matematika
Yang perlu diketahui bukan detail struktur RSA, melainkan bagaimana mengombinasikannya secara aman dengan primitif lain untuk membangun sistem dengan sifat yang diinginkan
Sekarang saya sudah membaca sekitar tiga perempatnya dan puas sejauh ini. Matematikanya dibahas ringan tetapi tetap ada sedikit, dan buku ini tampaknya ditujukan bagi orang yang tidak nyaman memakai sesuatu tanpa memahami cara kerja internalnya, tetapi sebenarnya tidak perlu mengerjakan implementasi internal
Berkat buku ini, saya merasa sudah belajar cukup untuk menggabungkan primitif menjadi protokol yang di permukaan bekerja sesuai maksud. Pada saat yang sama, saya juga belajar bahwa ada banyak detail halus yang dapat sepenuhnya merusak protokol, kombinasi primitif dapat menciptakan kelemahan tak terduga, dan bahkan orang yang jauh lebih paham kripto daripada saya pun bisa membuat protokol rusak dari primitif yang aman
Mungkin bukan buku yang Anda cari, tetapi jika Anda ingin memahami kripto dan bukan merancang sendiri, menurut saya ini buku yang bagus
Misalnya, kalau memakai libsodium persis seperti yang sudah berhasil dilakukan 100 pengembang lain, itu baik-baik saja. Namun lewat beberapa langkah yang sangat kecil dan halus, tanpa sadar Anda bisa menyintesis sistem kripto baru. Upaya membuat sistem secure messaging dengan primitif libsodium adalah contohnya
Anda harus banyak belajar teori. Itu penting
Contoh: https://gist.github.com/tqbf/be58d2d39690c3b366ad atau https://www.latacora.com/blog/2018/04/03/cryptographic-right...
Buku karya Bruce Schneier, Niels Ferguson, dan Tadayoshi Kohno
Sebagian besar kriptografi modern adalah menemukan komposisi yang aman
Di thread ini banyak orang tampaknya tertarik pada pembelajaran kriptografi yang berfokus pada praktik tanpa teori. Untuk kasus seperti itu, sebaiknya lihat cryptopals.com dari MVP HN tptacek
Jika ingin melatih hal seperti ini dalam format CTF, saya merekomendasikan https://cryptohack.org/. Situs yang luar biasa
Kuliah yang luar biasa dan berperan penting dalam perkembangan karier saya
Patut dicatat juga bahwa Dan Boneh adalah advisor untuk tim riset a16z crypto[1], dan ia membuat banyak konten terkait blockchain bersama mereka[2]
[1]: https://a16zcrypto.com/research/
[2]: https://a16zcrypto.com/team/dan-boneh/
Implementasi modern menggunakan kurva eliptik, sementara secara historis kemungkinan memakai log diskret pada subgrup dari medan prima besar. Selain itu, kuliah ini juga membahas tanda tangan BLS, yang sepenuhnya berbasis kurva eliptik
Secara umum, apa pun yang keamanannya bergantung pada log diskret dapat diimplementasikan dengan kurva eliptik. Namun dalam kelas kriptografi pengantar, yang dibutuhkan biasanya adalah grup berorde prima, dan kurva eliptik pada dasarnya bisa diperlakukan seperti grup berorde prima black-box, sehingga dianggap sebagai detail implementasi
Tanda tangan BLS adalah pengecualian. Ia membutuhkan pairing bilinear, yang memerlukan jenis kurva eliptik khusus, bukan sekadar grup berorde prima black-box sederhana
Ada banyak trik geometri aljabar hebat yang bisa dilakukan dengan kurva eliptik, tetapi materi seperti itu hampir tidak akan muncul dalam kelas kriptografi pengantar, dan mungkin bahkan sulit ditemukan di kelas ilmu komputer mana pun
Ada yang masih menunggu kuliah Cryptography II di Coursera?
Buku yang ia tulis bersama, A Graduate Course in Applied Cryptography, sangat membantu saya
https://toc.cryptobook.us/