Skip to main content
12 votes

How does the ROCA attack work?

In the ROCA paper the authors define an integer $M$ (which they call a primorial) as follows: $$M = \prod_{i=1}^{n} P_i = 2 * 3 * ... * P_n$$ Said another way, $M$ is the product of the first $n$ ...
puzzlepalace's user avatar
  • 4,062
8 votes
Accepted

What is “Fast Prime”?

This is a tentative guess at answering my own question. Perhaps the "Fast Prime" method alluded to in the question's citation is that of these two papers (the second polishing the first): [JPV2000]: ...
fgrieu's user avatar
  • 146k
2 votes

How ROCA get the polynomial used with coppersmith

You are correct—you do want to find a small root of [*] $$ f(x) = M \cdot x + (65537^a \bmod M) \bmod N $$ modulo a divisor $p$ of $N$. In other words, you want to find a divisor of $N$ in the ...
Samuel Neves's user avatar
  • 12.8k
2 votes
Accepted

Biased RSA moduli and ROCA

A similar observation as yours was the starting point for the ROCA attack. In 2016, some of the authors of the ROCA attack (with other coauthors) had published a paper a USENIX about determining the ...
j.p.'s user avatar
  • 1,657
2 votes

ROCA Implementation, Coppersmith Algorithm does not return roots

At the end of the function coppersmith_howgrave_univariate, you have if gcd(modulus, result) >= modulus ^ beta: You created $f$ as $$ f(x) = x + (M'^{-1} \...
epsilon's user avatar
  • 21
1 vote

How ROCA get the polynomial used with coppersmith

One of the important part of the attack is to find $f$ such as $f(x) \equiv 0\bmod p$. First, you reduce $f(x)= x + (M^{-1} \bmod N) * (65537^{a} \bmod M)$ modulo $N$, to get a smaller coefficient (...
corpsfini's user avatar

Only top scored, non community-wiki answers of a minimum length are eligible