Paper 2020/1507

Improvements to RSA key generation and CRT on embedded devices

Mike Hamburg, Mike Tunstall, and Qinglai Xiao

Abstract

RSA key generation requires devices to generate large prime numbers. The naïve approach is to generate candidates at random, and then test each one for (probable) primality. However, it is faster to use a sieve method, where the candidates are chosen so as not to be divisible by a list of small prime numbers $\{p_i\}$. Sieve methods can be somewhat complex and time-consuming, at least by the standards of embedded and hardware implementations, and they can be tricky to defend against side-channel analysis. Here we describe an improvement on Joye et al.'s sieve based on the Chinese Remainder Theorem (CRT). We also describe a new sieve method using quadratic residuosity which is simpler and faster than previously known methods, and which can produce values in desired RSA parameter ranges such as $(2^{n-1/2}, 2^n)$ with minimal additional work. The same methods can be used to generate strong primes and DSA moduli. We also demonstrate a technique for RSA private key operations using the Chinese Remainder Theorem (RSA-CRT) without $q^{-1}$ mod $p$. This technique also leads to inversion-free batch RSA and inversion-free RSA mod $p^k q$. We demonstrate how an embedded device can use our key generation and RSA-CRT techniques to perform RSA efficiently without storing the private key itself: only a symmetric seed and one or two short hints are required.

Note: This version includes proofs omitted from the CT-RSA proceedings version.

Metadata
Available format(s)
PDF
Category
Public-key cryptography
Publication info
Published elsewhere. Minor revision. CT-RSA 2021
Keywords
RSAprime generation
Contact author(s)
mhamburg @ rambus com
History
2021-03-30: revised
2020-12-02: received
See all versions
Short URL
https://ia.cr/2020/1507
License
Creative Commons Attribution
CC BY

BibTeX

@misc{cryptoeprint:2020/1507,
      author = {Mike Hamburg and Mike Tunstall and Qinglai Xiao},
      title = {Improvements to {RSA} key generation and {CRT} on embedded devices},
      howpublished = {Cryptology {ePrint} Archive, Paper 2020/1507},
      year = {2020},
      url = {https://eprint.iacr.org/2020/1507}
}
Note: In order to protect the privacy of readers, eprint.iacr.org does not use cookies or embedded third party content.