An Intensive Introduction to Cryptography
intensecrypto.org
intensecrypto.org
After taking these two crypto courses, I signed up for CS155 https://crypto.stanford.edu/cs155/, which is his undergrad class on security at Stanford (they were offering it through their professional center, I don't think they still offer it, which is a bummer)
I suppose authors provide contents and the publisher hire illustrators to draw?
Unfortunately from the preview the typesetting of the English translation in the new crypto book looks awful. Hopefully the actual content is still of good quality.
This course will not teach you how to implement crypto, but the material here is incredibly important to understanding the abstractions and reasoning behind modern cryptographic constructions, and is a prerequisite to becoming good at implementation aspects of crypto.
So some access, though less than you might guess.
In particular, I'm especially interested in electrical or real-world attacks - such as capacitor whine! - that can be applied a weakened security situations like asymmetric logic/branching. I vaguely recall CPU voltage fuzzing is a thing, I want to go learn more about that at some point.
I'm only familiar with eg ultrasonic accoustic airgap attacks (like MOSQUITO, eg https://securityaffairs.co/wordpress/70192/hacking/mosquito-...).
The relevant academic community can be found around https://ches.iacr.org/2018/program.shtml.
(I work for a company building high-assurance crypto appliances for the Dutch government, so I have a professional interest.)
From my external observation there are two main career paths: the math side and the coding side (djb does both, but he’s djb).
For the math side, a PhD is the most likely path to break in. If you are some kind of autodidact genius and were to publish a theoretical attack on an important crypto system, you could probably get involved without a PhD.
On the coding side apparently the best way to break into writing secure code is to first break insecure code+. I don’t know if this is a reasonable filter or not, but it seems to exist. Some people are perfectly happy to stay on the break code side of things and never move to the write code side. If you think you might like this sort of thing check out the cryptopals ctf that should be floating around.
+ meaning find a side channel, some place where a nonce is reused, etc, etc. If you find a way to factor quickly in a particular ECC ring that’s the prior paragraph.
It's just my observation that people with full-time jobs in cryptography all (with some exceptions that I think prove the rule) have graduate crypto degrees. I'll venture a guess: there are more crypto PhD's interested in jobs in industry than there are full-time crypto jobs in the industry to give them.
I think people probably underestimate just how specialized serious cryptography is as a practiced skill in the industry.
(Also: I mean "crypto" as in "cryptography". Lord knows what's going on in the Monero mines.)
There are basically three sectors which will hire people to predominantly work on cryptography.
1. First and foremost you have academia and the public sector. You can try to get tenure at a university or you can join the NSA. This has a healthy mix of applied and theoretical work.
2. Second you can join an industrial research lab. The biggest ones are Microsoft Research, IBM Research, Galois Inc and Google Research. For the most part you'll be working on publishable research with an eye towards things that can be shipped in some way. Isogeny cryptography originally came out of Microsoft in the early 2000s and Craig Gentry (the person who invented the first working example of fully homomorphic encryption) now works at IBM.
3. Third you can join a security consulting firm which is either focused on cryptanalysis or which has a division dedicated to it. The most well known in this arena would be NCC Cryptography Services, Riscure and Cryptography Research (now a division of Rambus).
This is kind of a continuum. You won't get tenure as an academic researcher without a PhD and it will be hard to get into the NSA without one as well. Likewise the top industrial research labs only rarely hire people without PhDs to be research scientist (though it can and does happen). It is comparatively easier to work in cryptography in the consulting industry: I know several people working in side channel research at Riscure who have "only" an MSc, and NCC employs consultants in Cryptography Services who don't have an MSc or PhD.
If you're interested in cryptography as a career path, the most valuable way to pursue that is to be someone with a graduate degree in mathematics who has significant expertise in implementation, performance and cryptanalysis. In particular it's very lucrative to be competent in side channel analysis and hardware optimization. With the exception of speculative blue sky research projects like indistinguishability obfuscation, multiparty computation, homomorphic encryption and post-quantum public-key cryptography, most work to actually be done is in implementation, implementation auditing and implementation optimization. We already have secure designs for most common use cases in AES and ChaCha; working on verifying a given implementation or removing the ways mistakes can be made is much more important.
Working on the math side of it really does require a PhD and several published papers.
Working on the implementation requires mostly a healthy sense of paranoia and willingness to really pay attention to the details. After that it really is about experience, practice and lots and lots of code review.
If you think you're interested in doing this and you're in the NYC area, I would be happy to chat with you. We do have a few openings. I have contact info in my profile.
I've been working my way through it and it's the most lucid intro text I've read on the subject.
[0] https://bookdown.org/yihui/rmarkdown/tufte-handouts.html
* css: https://github.com/edwardtufte/et-book/
* latex: tufte-handout style from CTAN
addendum > Anyone, from the most clueless amateur to the best cryptographer, can create an algorithm that he himself can't break. It's not even hard. What is hard is creating an algorithm that no one else can break, even after years of analysis. And the only way to prove that is to subject the algorithm to years of analysis by the best cryptographers around.
good crypto cant be broken by knowing the algo thats why closed proprietary crypto is POS
addendum 2 )
this makes the case for open source so there are multiple perspectives rather than ECHO CHAMBERS bcz when it comes down to it you can talk yourself into thinking anything is great when it is your own pet theory.
BTW im working around the posting too fast BS so thats why the addendums to parent post.
================================= ALSO off topic but, concerning:
Detecting Screen Content via Remote Acoustic Side Channels
{https://www.cs.tau.ac.il/~tromer/synesthesia/}
every time a pixel changes it makes a UHF+ EMF chirp every time a bus channel makes a bit state transition it makes a UHF+ chirp if you evesdrop the EMF radiation preserve it and analyse your data then you can reconstruct EVERYTHING that the hardware is doing not just the display screen.
> Anyone, from the most clueless amateur to the best cryptographer, can create an algorithm that he himself can't break. It's not even hard. What is hard is creating an algorithm that no one else can break, even after years of analysis. And the only way to prove that is to subject the algorithm to years of analysis by the best cryptographers around.
> If I have any contribution to this, it's to generalize it to security systems and not just to cryptographic algorithms. Because anyone can design a security system that he cannot break, evaluating the security credentials of the designer is an essential aspect of evaluating the system's security.
[0] https://www.schneier.com/blog/archives/2011/04/schneiers_law...