
Issues with Euler’s Totient Function in RSA
Issues with Euler’s Totient Function in RSA 관련
While using Euler’s Totient Function works well in theory, implementers of the scheme realized its practical downsides. Simply put, the primary issue was that Euler’s Totient Function can lead to a larger private exponent than what was necessary.
To completely appreciate this fact, let’s take a step back to understand why the size of the private exponent matters in RSA.
RSA decryption (or signing) involves computing which is done via modular exponentiation. The time complexity of exponentiation algorithms (like square-and-multiply) grows with the number of bits in . A larger means more multiplications and squarings, that is slower decryption.
In practice, if using the Euler’s Totient Function makes roughly twice as large as what is required, then decryption can be almost twice as slow compared to using the minimal . This inefficiency is especially noticeable when is small (common public exponents like or ). A small e leads to a very large under .
Beyond performance, having an unnecessarily large can increase storage size slightly (a few more bytes for the key). This can also lead to interoperability quirks, which is why standards and protocols such as FIPS 186-4[1] and RFC 8017[2] expect to be below a certain size. We will take a detailed look at this in the next section.
To combat these issues, cryptographers utilized the Carmichael function to generate RSA keys. Before we dive into how the Carmichael function helps our case, let’s quickly understand what the Carmichael function actually is.
FIPS 186-5: Digital Signature Standard (DSS) ↩︎
RFC 8017 PKCS #1: RSA Cryptography Specifications ↩︎