Ensuring Sufficient Entropy in RSA Modulus Generation Wendy Mu Henry Corrigan-Gibbs Dan Boneh
Motivation #1
A study by Heninger et al. (2012) found… 5.57% of TLS hosts had same private keys as another host 0.50% of these hosts’ private keys were easily computed through finding all-pairs GCDs
Motivation #1 Reason for these common factors? Weak entropy!
Motivation #2
Goals
Overview Entropy Authority Certificate Authority TLS Host (e.g., web server) Key generation protocol Key verification protocol
Overview Entropy Authority Certificate Authority TLS Host (e.g., web server) 3. EA-signed certificate 2. EA-signed certificate 1. Modulus generation 4. CA-signed certificate
Building blocks
Public-key signature scheme (Goldwasser et al.) Sign and verify functions Existentially unforgeable
Protocol: Modulus Generation HostEntropy Authority
Protocol: Modulus Generation HostEntropy Authority
Protocol: Modulus Verification HostCertificate Authority Verify EA signature
Application: SSH Entropy Authority SSH Client SSH Server 3. EA-signed certificate 2. EA-signed certificate 1. Modulus generation
Security
Performance On a laptop… Traditional RSA: 0.59s Our protocol: 3.18s
Performance On a Linksys router… Traditional RSA: 59.6s Our protocol: 111.7s Includes ~100ms RTT network latency Relatively small overhead: ~2x
Related Work
Future work Integrate protocol into certificate signing request to CA
Conclusion Protocol for generating an RSA modulus with sufficient randomness Feasible to implement on today’s hardware Small overhead to traditional RSA Contact: