Following up with encryption.
Here's my favorite prof from michigan who is an encryption badass: https://jhalderm.com/
He's done a lot of cool stuff including hacking a voting machine so that it plays the the michigan fight song every time someone votes. He's actually done quite a bit of stuff with electronic voting machines (EVMs).
- EVMs in India - https://jhalderm.com/pub/papers/evm-ccs10.pdf
- short video: https://www.youtube.com/watch?v=ZlCOj1dElDY
Nadia Heninger is also pretty sweet. She's done work w Halderman before: https://www.cis.upenn.edu/~nadiah/
She's also been known as the chuck norris of cryptography, but it looks like some of the more entertaining tweets were deleted: http://techcrunch.com/2013/01/12/nadia-heninger-is-watching-you/
To give some more context why she has this reputation (in a super vague way), she once did a project where she essentially scanned the internet for a lot of wifi routers (this sort of thing is somewhat typical for crypto research), and discovered that a lot of the routers (something close to 1% of all the ones that were checked or 100k) had the same key. They had the same key since sometimes the hardware had a bug in how random numbers were generated, and generating random number is how these routers create their keys. Long story short, after this discovery she could literally decrypt "encrypted" network traffic by hand, and I actually saw her do this during a talk at michigan. Here's that paper but it's a little dense: https://factorable.net/weakkeys12.extended.pdf
Here's a more detailed article about what her and Halderman think of the NSA: https://freedom-to-tinker.com/blog/haldermanheninger/how-is-nsa-breaking-so-much-crypto/
~ Andrew
PS. I said wifi router, but really what was scanned was "hosts". A host is anything that connects to the internet and can listen for requests (like someone typing a url in their browser and pressing enter). There's various ways to find all the hosts out there. For one, in order to start accepting requests, a host needs to register and gets an IP address. You could literally keep guessing through IP addresses since they fall into a predictable format like phone numbers. Although it's easier to check with where these hosts registered and get IP addresses directly this way.