David Wong

cryptologie.net

cryptography, security, and random thoughts

Hey! I'm David, cofounder of zkSecurity, research advisor at Archetype, and author of the Real-World Cryptography book. I was previously a cryptography architect of Mina at O(1) Labs, the security lead for Libra/Diem at Facebook, and a security engineer at the Cryptography Services of NCC Group. Welcome to my blog about cryptography, security, and other related topics.

I’ve Implemented a Coppersmith-type attack (using LLL reductions of lattice basis). It was done by Boneh and Durfee and later simplified by Herrmann and May. The program can be found on my github.

The attack allows us to break RSA and the private exponent d. Here’s why RSA works (where e is the public exponent, phi is euler’s totient function, N is the public modulus):

ed=1(modφ(N)) ed=k·φ(N)+1 over  k·φ(N)+1=0(mode) k·(N+1pq)+1=0(mode) 2k·(N+12+pq2)+1=0(mode)

The last equation gives us a bivariate polynomial \( f(x,y) = 1 + x \cdot (A + y) \). Finding the roots of this polynomial will allow us to easily compute the private exponent d.

The attack works if the private exponent d is too small compared to the modulus: \( d < N^{0.292} \).

To use it:

  • look at the tests in boneh_durfee.sage and make your own with your own values for the public exponent e and the public modulus N.
  • guess how small the private exponent d is and modify delta so you have d < N^delta
  • tweak m and t until you find something. You can use Herrmann and May optimized t = tau * m with tau = 1-2*delta. Keep in mind that the bigger they are, the better it is, but the longer it will take. Also we must have 1 <= t <= m.
  • you can also decrease X as it might be too high compared to the root of x you are trying to find. This is a last recourse tweak though.

Here is the tweakable part in the code:

# Tweak values here !
delta = 0.26 # so that d < N^delta
m = 3        # x-shifts
t = 1        # y-shifts # we must have 1 <= t <= m

EDIT: the tweet has been deleted, no news about what happened

There was a lot of talks about Signal 2, a messaging app that was doing end-to-end encryption on iOS.

It seems like Apple is not going to allow that:

WTF Apple?! They are rejecting Signal 2.0.1 because we are doing privacy-friendly bloom filter contact intersection.

@Frederic Jacobs

A Bloom filter is a space-efficient probabilistic data structure, conceived by Burton Howard Bloom in 1970, that is used to test whether an element is a member of a set. False positive matches are possible, but false negatives are not, thus a Bloom filter has a 100% recall rate. In other words, a query returns either “possibly in set” or “definitely not in set”. Elements can be added to the set, but not removed (though this can be addressed with a “counting” filter). The more elements that are added to the set, the larger the probability of false positives.

Bloom Filter on Wikipedia

Starfighter

blog

Thomas Ptacek had left Matasano, 2 years after selling to NCC, and I spotted him talking about a new “hiring” kind of company on hackernews… Well today they announced what is going to be a new kind of hiring process. After the revolution of education with Coursera and other MOOC (Massive Open Online Courses), now comes the revolution of hiring. It’s called Starfighter and it will be live soon.

suggested reads:

Because studying Cryptography is also about using LaTeX, it’s nice to spend a bit of time understanding how to make pretty documents. Because, you know, it’s nicer to read.

Here’s an awesome quick introduction of Tikz that allows to make beautiful diagram with great precision in a short time:

And I’m bookmarking one more that seems go way further.

suggested reads:

It looks like Cryptography Services, the group I will be interning at, is going to conduct a public audit of OpenSSL.

More info here

By the way, if you missed it, they are currently auditing TrueCrypt.

This all sounds very exciting =)

EDIT: and here’s the official statement

I’ve only seen that in movies. Not that it couldn’t exist, it’s just “fun” to see that happen in real life as well.

The story is here. It’s about someone’s car which got “bugged”. It was discovered while X was at the Circumvention Tech Festival in Valencia, Spain.

bug

more pictures there

Funny matasano job post

blog

I stumbled on this funny job post from jeff jarmoc:

This thread will, no doubt, be dominated by posts with laundry lists of requirements. Many employers will introduce themselves by describing what they want from you. At Matasano, we’re a little different. We like to start by telling you about us. This month, I want to try to do that by drawing analogy to Mission Impossible.
What made the original show so great is exactly what was lost in the ‘Tom Cruise takes on the world’ reboot. The original 1960’s and 70’s Mission Impossible was defined primarily by a team working together against all odds to achieve their objective. It acknowledged that what they were doing was improbable, and more so for a solo James Bond or Tom Cruise character. As a team though, each character an expert in their particular focus area, the incredible became credible – the impossible, possible.

the rest is here: https://news.ycombinator.com/item?id=9127813

suggested reads:

Freak Attack

blog

If you’re up to date on crypto news you will tell me I’m slow. But here it is, my favorite explanation of the recent Freak Attack is the one from Matthew Green here

TLS uses a cipher suite during the handshake so that old machines can still chat with new machines that use new protocols. In this list of ciphers there is one called “export suite” that is a 512bits RSA public key. It was made by the government back then to spy on foreigners since 512bits is “easy” to factor. The vulnerability comes from the fact that you can still ask a server to use that 512bits public key (even though it should have been removed a long time ago). This allows you to make a man in the middle attack where you don’t have to possess a spoofed certificate. You can just change the cipher request of the client during the handshake so that he would ask for that 512bits key. 36% of the servers out there would accept that and reply with such a key. From here if we are in the middle we can just factor the key and use that to generate our own private key and see all the following exchange in clear.

More info here

📖 my book
Real-World Cryptography is available from Manning Publications.
A practical guide to applied cryptography for developers and security professionals.
🎙️ my podcast
Two And A Half Coins on Spotify.
Discussing cryptocurrencies, databases, banking, and distributed systems.
📺 my youtube
Cryptography videos on YouTube.
Video explanations of cryptographic concepts and security topics.
page info:
page 39 of 62
616 posts total