return to table of content

Online Cryptography Course (2017)

begueradj
11 replies
1d1h

It looks more suitable for those who are into mathematics. "Applied Cryptography", by Bruce Schneier, is also good for those who, like myself, do not need all the mathematical details behind cryptography.

ilya_m
9 replies
1d

(Writing as a professional cryptographer.) Schneier's "Applied Cryptography" is about as useful for learning about cryptography as "The Da Vinci Code" for learning about Renaissance. It is a lively book that name-checks relevant concepts, and may even lead someone to develop interest in the actual stuff. (That was my gateway to cryptography!)

Mention Schneier at a gathering of cryptographers, and you'll elicit groans and eye-rolls. The main reason for that is that his book creates an illusion of understanding without instilling tthat it covers literally 1% of what one needs to seriously work in the field. It is also ~30 years old, and was dated even when it appeared.

This is not to diminish the fact that Schneier is an excellent communicator and has done a great service to the security field by being a consistent and effective critic of the domestic security apparatus.

egl2021
3 replies
1d

What is a better book? I don't want anyone eye-rolling when I'm LARPing.

seabass-labrax
0 replies
19h39m

What LARP involves academic comparisons of cryptographic algorithms? Whatever it is, it sounds like my sort of thing ;)

ilya_m
0 replies
19h54m

A better book for what audience? The scientifically minded can do much worse than "A Graduate Course in Applied Cryptography" by Dan Boneh and Victor Shoup (on which the online cryptography course is based). For a more practical angle, I agree with other commenters on this thread: "Cryptography Engineering" (Ferguson, Schneier, Kohno), "Serious Cryptography" (Aumasson) and "Real-World Cryptography" (Wong) are pretty solid.

helpfulclippy
0 replies
1d

"Serious Cryptography" is good. There's an updated edition dropping later this year.

"Real World Cryptography" is also good.

helpfulclippy
1 replies
1d

When you say "Mention Schneier," do you mean Schneier himself or Applied Cryptography specifically? I was unaware of any particular generalized disdain for the man, though I'm certainly aware of plenty for the book, which you've summarized quite well.

I remember in the intro to one of his later books (Cryptography Engineering, I think), Schneier actually apologized for making a book that was in many ways quite dangerous, and said his newer work was in an effort to make something a bit more focused on providing people with the firm foundations they'd need to do responsible work in cryptography.

That said, Applied Cryptography is a very inspiring book in many ways (which is both the best thing and worst thing about it, because it's not obvious upon reading it just how unprepared the reader is to act on that inspiration). I really wish someone would go write a new Applied Cryptography that dreams and inspires as much, but balanced with perspective and caution, and based on more recent developments.

tptacek
0 replies
21h49m

The authors had some weird blind spots, even for the time, when Practical Cryptography (now called Cryptography Engineering) was published --- curves and authenticated encryption seem like the two obvious examples.

MattSteelblade
1 replies
1d

I'm surprised to hear that. I have never read Applied Cryptography, but I find that an incredibly damning simile (though maybe it wasn't intended to be?). Didn't Schneier develop Blowfish?

ilya_m
0 replies
19h45m

an incredibly damning simile

I stand by my comment, however harsh it may seem. Some of the disdain held by cryptographers, especially of a certain generation, is in no doubt a reaction to Schneier's prominence in the public eye as Mr. Crypto. The fact that he is highly quotable and media-savvy makes him a go-to person whenever a comment is needed on something (anything!) happening in security.

mttpgn
0 replies
21h13m

The cryptographer Dan J. Bernstein once told me a story that Bruce Schneier kept some cryptographic protocol secure for an additional 24 hours. The researcher demonstrating this protocol's weakness based their proof-of-concept on a proof in Schneier's book. However, Schneier's description contained a mathematical error. When the error in the proof-of-concept was pointed out to the researcher at the conference, this researcher went back to their hotel room, discovered the origin of the error in Schneier's text, and fixed the proof-of-concept for the conference-goers by the following day. Thus, Bruce Schneier kept a cryptographic protocol secure for an additional 24 hours.

H8crilA
0 replies
1d

It is impossible to study cryptography without "all the mathematical details". You can at best implement someone's scheme, but even that is not the best idea, as you're likely to make some mistake somewhere.

failbuffer
9 replies
1d1h

Looks good, but I wish there was a practicioner-oriented resource for how to use cryptographic libraries that didn't start by focusing on the math. I don't need to know the intricacies of RSA, I need to know how to securely compose it with other primitives to engineer a system with the desired properties.

tptacek
2 replies
21h58m

I want to put a word in here for being cautious about the capabilities you can achieve in novel systems --- software developers are often working with multiple whole sieverts of novelty without realizing it --- without having a lot of the boring theory stuff nailed down.

If you're using (say) libsodium to do exactly the kind of thing 100 other developers have successfully used libsodium to do in the past, you're fine. But it takes a deceptively small and subtle set of steps to end up synthesizing a new cryptosystem (see: attempts to build secure messaging systems out of libsodium primitives) without realizing that's what you're doing.

Learn a bunch of the theory! It's important.

schoen
1 replies
21h3m

sieverts of novelty

Yikes!

Is this clever metaphor original with you?

tptacek
0 replies
20h44m

I'm a little proud of it.

foma-roje
1 replies
1d1h

Perhaps what you need is something like „Cryptography Engineering: Design Principles and Practical Applications“

Book by Bruce Schneier, Niels Ferguson, and Tadayoshi Kohno.

tptacek
0 replies
22h2m

Pretty outdated. For awhile, it was the best book available, but in 2024 it's probably harmful.

Today, I'd read Serious Cryptography or Real World Cryptography.

Vegenoid
0 replies
1d

I wanted to have a better understanding of crypto, simply to feel more confident in writing programs that use existing protocols, and started 'Real-World Cryptography' by David Wong. I'm about 3/4 through, and I've been happy with it. It is light on math, but does go into it a little bit - it seems designed for the kind of person who isn't comfortable using something until they understand how it works under-the-hood, but doesn't actually need to do any under-the-hood work.

It has taught me enough that I think I could compose a protocol out of primitives that on the surface appears to do what I've intended it to do. It has also taught me that there are many subtleties that can completely break a protocol, combining primitives can lead to unexpected weaknesses, and many people who understand crypto far better than I ever will have created broken protocols out of secure primitives.

I'm not sure it's the book you're looking for, but I think it's a good book if you want to understand crypto, but not design your own.

Ar-Curunir
0 replies
1d

"Secure composition" is definitely covered in the course. It doesn't talk only about the details of RSA (though there are some lectures about that), but also about what security properties different primitives satisfy, how to compose them safely, etc.

A large part of modern cryptography is figuring out secure composition.

johnwatson11218
3 replies
1d2h

I took an online cryptography course from this professor a few years back. It was very good.

Even though I have a background in math that class made me realize I don't want to be a professional cryptographer, which in itself is pretty nice. But all joking aside I really enjoyed the way that crypto systems were analyzed using demons and games to try and discern the random bit stream from the encrypted bytes.

foma-roje
2 replies
1d1h

Same here. I also took the course from Coursera a few years ago and I really enjoyed it. The conclusion? It’s hard to get it right so don’t do crypto yourself! Quite cynical, but it kinda killed my interest in pursuing it further.

kryptonomist
1 replies
1d1h

Yes, the Coursera title was "Cryptography I", so I was expecting another part, but ten years after, I still do not see any. A great course anyway.

Ar-Curunir
0 replies
1d

There's a running joke among cryptographers that Dan will release Crypto II next semester =)

feross
2 replies
1d

CS255 Intro to Cryptography was one of my favorite courses as a Stanford student. Dan is an incredible instructor. If you want more Stanford security course material, I also recommend CS253 Web Security (https://web.stanford.edu/class/cs253/) (disclosure: I created this course) and CS356 Topics in Computer and Network Security (https://cs356.stanford.edu/).

Videos for CS253 are online here: https://www.youtube.com/playlist?list=PL1y1iaEtjSYiiSGVlL1cH...

amyamyamy2
0 replies
23h25m

Seconding this - I loved 155, 255, and 251 from Professor Boneh. He's very talented and was one of my favorite instructors for multiple years; great at explaining concepts.

Aaronstotle
0 replies
1d

Thank you for listing these!

amingilani
2 replies
1d

I wish there was a similar part 2 course. All the courses I’ve seen seem to end at roughly the same point.

I want to learn about elliptic curve cryptography and post quantum crypto systems.

dvas
0 replies
1d

I would like to add the thought of looking at where these elliptic curves are deployed, things like embedded devices and implementations bitcoin-core libraries for say secp256k1 [0].

Ref:

[0] Optimized C library for EC operations on curve secp256k1

https://github.com/bitcoin-core/secp256k1

zer0tonin
1 replies
1d

Will they ever release Crypto II?

withzombies
0 replies
1d

I've been registered for Crypto II on Coursera for over a decade now!

nailer
1 replies
1d

Public-key encryption

And it’s all RSA. Can crypto tutorials please add ECC already?

kwantam
0 replies
11h11m

Maybe we're looking at different things, but the link appears to discuss ElGamal encryption, which is discrete log based (which means modern implementations use elliptic curves; historically it would have been discrete log in a subgroup of a large prime field). It also talks about BLS signatures, which are exclusively elliptic curve based.

By and large, anything whose security relies on discrete log can be implemented using an elliptic curve, but beginning cryptography classes treat that as an implementation detail because mostly all you need is a prime-order group, and elliptic curves can mostly be treated as a black-box prime order group.

(BLS signatures are an exception; they require a bilinear pairing, which in turn requires a special kind of elliptic curve that's not just a black-box prime order group.)

There are all sorts of great algebraic geometry tricks to be played with elliptic curves, but those almost certainly aren't going to be found in an intro crypto class, or maybe any CS class...

blacklion
1 replies
22h42m

Who is still waiting for Cryptography II course on Coursera? :)))

meling
0 replies
22h29m

Count me in!

ShaneCurran
1 replies
1d1h

If anybody's interested in any of the algorithms and papers that underpin most modern cryptography, we created a dedicated page on our site[0] as an homage to the great cryptographers of the last century(!) (and their works).

[0]: https://evervault.com/papers

dvas
0 replies
1d

Thanks for sharing Shane, and nice to see companies engaged with the community on a technical level!

xhkkffbf
0 replies
23h49m

A stellar course!

the_svd_doctor
0 replies
23h45m

I took both his in-person and coursera classes, and Dan is a great teacher. Highly recommend.

shihanwan1
0 replies
23h57m

from site alone, you can tell it's legit

phantom--88
0 replies
1d1h

Could seeve me as i'am a noob on this field. Thanks for the share

pdevr
0 replies
1d1h

Excellent course. The only caveat I want to add is, the estimated hours to complete (23 hours) can vary extremely, depending on your 'pre-mastery' of the subject (or lack of it). Prepare and pace yourself considering that.

paladin314159
0 replies
23h58m

Dan Boneh is amazing. I took his Cryptography course at Stanford and loved it so much that I ended up having him advise me on my senior thesis. Would highly recommend stuff that he puts out.

malviyamukul
0 replies
23h25m

Thanks for sharing

lordgrenville
0 replies
23h54m

A lot of people in this thread seem to be interested in a hands-on, no theory, practical way of learning crypto. If this is you check out (HN MVP tptacek's) cryptopals.com

lifeinthevoid
0 replies
1d

I took it for the second time recently, this time with the goal to shift my career to cryptography. Still one of the best resources out there imo.

lazzlazzlazz
0 replies
1d

An excellent course and one that has been critical in my professional development. Worth noting that Dan Boneh is also an advisor for a16z crypto's research team[1], and he produces a significant amount of blockchain-related content with them.[2]

[1]: https://a16zcrypto.com/research/

[2]: https://a16zcrypto.com/team/dan-boneh/

galleywest200
0 replies
1d

If anyone would like to practice some of these lessons in a "capture the flag" format, I would recommend https://cryptohack.org/ -- great site!

funcimp
0 replies
15h8m

This is a fantastic course. I took it in 2018, and that started a snowball of online learning that lead to me doing Georgia Tech’s Online Masters in Computer Science program. I just finished that this semester. These sorts of programs are fantastic structure for life-long learners.

davepeck
0 replies
23h48m

I took this course ages ago, along with the follow up Crypto II. Dan is a great instructor, and his courses helped fill in a number of gaps in my knowledge. Highly recommended!

brcmthrowaway
0 replies
20h33m

Very outdated.

Bnjoroge
0 replies
22h49m

Didn't take the class, but always felt like his book was too theoretical. I enjoyed "real world cryptography" and supplemented it with Dan's book.

AlexCoventry
0 replies
23h29m

The book he co-authored, A Graduate Course in Applied Cryptography, has been very helpful.

https://toc.cryptobook.us/