# Links section posted March 2015

I've added a "links" section here: http://cryptologie.net/links/

It's made with Semantic-UI

comment on this story Hey! I'm **David**, a security engineer at the Blockchain team of Facebook, previously a security consultant for the Cryptography Services of NCC Group. I'm also the author of the Real World Cryptography book. This is my blog about **cryptography** and **security** and other related topics that I find interesting.

Quick access to articles on this page:

- - March 2015 - Links section
- - March 2015 - Talk: RSA and LLL attacks
- - March 2015 - How Enigma Works
- - March 2015 - End to End encryption for Yahoo mail users (plugin)
- - March 2015 - Citizen Four
- - March 2015 - Survey on RSA Attacks using Lattice reduction techniques (LLL)
- - March 2015 - Implementation of Boneh and Durfee attack on RSA's low private exponents
- - March 2015 - Apple rejects Signal 2 from the appstore

more on the next page...

I've added a "links" section here: http://cryptologie.net/links/

It's made with Semantic-UI

comment on this storyI posted previously about my researches on RSA attacks using lattice's basis reductions techniques, I gave a talk today that went really well and you can check the slides on the github repo

Also on SlideShare

I wanted to record myself so I could have put that on youtube along with the slides but... I completely forgot once I got on stage. But this is OK as I got corrected on some points, it will make the new recording better :) I will try to make it as soon as possible and upload it on youtube.

comment on this storyI've watched The Imitation Game recently, a movie about Turing, and I was really disappointed at how **they don't explain anything at all**. I was also disappointed at how much time they spend drinking or doing something else than doing real work, or how they ended the movie before a potentially interesting second part of Turing's life (Imagine if they showed the persecution, it would have been kind of a Life is beautiful. So anyway, I ran into this explanation of Enigma:

Yahoo has released a plugin that allows end to end encryption for yahoo mail users. It's seems to be part of the new "yahoo" redesign:

we’ve heard you loud and clear: We’re building the best products to ensure a more secure user experience and overall digital ecosystem.

It's open sourced and they also setup a bug bounty program (from 50$ to 15,000$)

While at this stage we’re rolling out the source code for feedback from the wider security industry

More on their tumblr (this sounds weird).

Glancing over the code it looks like it's cumbersome to use:

comment on this storyThe extension requires a keyserver implementing this API to fetch keys for other users.

I just watched the documentary about **Snowden**. It was pretty stressing to see the events unfold from his point of view. You can download on Cryptome

The part where **Ladar Levison**, the owner of **Lavabit**, talks out is pretty intense.

And here's the survey of what I talked about previously: https://github.com/mimoo/RSA-and-LLL-attacks/raw/master/survey_final.pdf

It's my first survey ever and I had much fun writing it! I don't really know if I can call it a survey, it reads like a vulgarization/explanation of the papers from Coppersmith, Howgrave-Graham, Boneh and Durfee, Herrmann and May. There is a short table of the running times at the end of each sections. There is also the code of the implementations I coded at the end of the survey.

If you spot a typo or something weird, wrong, or badly explained. Please tell me!

comment on this storyI'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 \pmod{\varphi(N)} \] \[ \implies ed = k \cdot \varphi(N) + 1 \text{ over } \mathbb{Z} \] \[ \implies k \cdot \varphi(N) + 1 = 0 \pmod{e} \] \[ \implies k \cdot (N + 1 - p - q) + 1 = 0 \pmod{e} \] \[ \implies 2k \cdot (\frac{N + 1}{2} + \frac{-p -q}{2}) + 1 = 0 \pmod{e} \]

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
```

2 comments
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.

--

comment on this storyA 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.

If you don't know **where to start**, you might want to check these popular articles:

Here are the latest **links** posted:

- 25 Nov Why And How Zk-Snark Works
- 24 Nov Dark Forest Is An Mmo Space-Conquest Game Where Players Discover And Conquer Planets In An Infinite, Procedurally-Generated, Cryptographically-Specified Universe
- 23 Nov Episode 3: Blake3, A Parallelizable Hash Function Using Merkle Trees!
- 22 Nov Five Cryptologic Giants Inducted Into The Nsa/css Cryptologic Hall Of Honor
- 21 Nov The Signal Private Group System And Anonymous Credentials Supporting Efficient Verifiable Encryption

You can also **suggest a link**.

I'm writing a **book**!

You can already start reading it in early-access, and the first chapters are for free!