290 likes | 437 Views
"The generation of random numbers is too important to be left to chance. ”. -- Robert R. Coveyou Oak Ridge National Laboratory. Xkcd http://xkcd.com/221/. Netscape 1.1 Seeding Process. RNG_CreateContext() { (seconds, microseconds) = time of day; /* Time elapsed since 1970 */
E N D
"The generation of random numbers is too important to be left to chance.” -- Robert R. CoveyouOak Ridge National Laboratory
Netscape 1.1 Seeding Process RNG_CreateContext() { (seconds, microseconds) = time of day; /* Time elapsed since 1970 */ pid = process ID; ppid = parent process ID; a = mklcpr(microseconds); b = mklcpr(pid + seconds + (ppid << 12)); seed = MD5(a, b); /* seed is a global variable */ } mklcpr(x) { /* not cryptographically significant; shown for completeness */ return ((0xDEECE66D * x + 0x2BBB62DC) >> 1); } From Goldberg and Wagner, “Randomness and the Netscape Browser”, Dr. Dobb’s, January 1996.
Netscape 1.1 Key Generation RNG_GenerateRandomBytes() { x = MD5(seed); seed = seed + 1; return x; } global variable challenge, secret_key; create_key() { RNG_CreateContext(); tmp = RNG_GenerateRandomBytes(); tmp = RNG_GenerateRandomBytes(); challenge = RNG_GenerateRandomBytes(); secret_key = RNG_GenerateRandomBytes(); } From Goldberg and Wagner, “Randomness and the Netscape Browser”, Dr. Dobb’s, January 1996.
Jone’s RNG Rules • Don’t use system generators • Use a known good RNG you implemented • Properly seed the RNG
KISS Generator (G. Marsaglia) static unsigned int /* Seed variables */ x = 123456789, y = 362436000, z = 521288629, c = 7654321; unsigned int KISS() { unsigned long long t, a = 698769069ULL; x = 69069*x+12345; // y never == 0! */ y ^= (y<<13); y ^= (y>>17); y ^= (y<<5); t = a*z+c; c = (t>>32); // Also avoid setting z=c=0! return x+y+(z=t); }
Chosen ciphertext attack against RSA -Schneier n (modulus) = product of secret primes p and q e (public key) = relatively prime to (p-1)(q-1) d (private key) = e-1 mod ((p-1)(q-1))) Encrypt c=me mod n Decrypt m=cd mod n Eve gets ciphertext message c from Alice, wants to read it i.e., she wants to find m = cd Choose random r < n, and use Alice’s public key e x=re mod n y=xc mod n t=r-1 mod n Note if x=re mod n, then r=xd mod n ! Eve tricks Alice into encrypting (signing) y with her d Alice sends Eve u=yd mod n Eve then calculates tu mod n = r-1yd mod n = r-1xdcd mod n = cd mod n = m
ECRYPT 2012 Key Length Advice See www.keylength.com/en/3
Don’t reuse those one-time pads! If C1=P1 K1 C2=P2 K1 Then C1 C2 => P1 K1 P2 K1 => P1 P2
Key? What Key? • Alice encrypts: P K=>C • Bob knows the key and decrypts: C K=>P • They agree on a dummy plaintext D and if they’re ever captured, they will give up the key K’=C D • If the authorities decrypt C K’ => D
Simple Power Analysis: `DES Parity Check DES-CheckParity(byte Key[8]) for i = 8 down to 1 parity=0; for j = 8 down to 1 if (bit j of Key[i] is set) // CONDITIONAL parity = parity+1 // OPERATION endif endfor if (parity is even) parity_error(); endfor end DES-CheckParity
EM History • Classified TEMPEST standards. Some parts declassified Jan '01, http://www.cryptome.org. • Published work • EM Leakages from Peripherals, E.g., Monitors: Van Eck, Anderson & Kuhn. • EM Leakage from smart-cards during Computation. • J.-J. Quisquater & David Samyde, E-smart 2001, • Gemplus Team [GMO ’01], CHES ’01. • SEMA/DEMA attacks. • Best results require "decapsulation" of chip packaging and/or precise micro-antennas positioning on chip surface
Rao et.al.’s Work` • Deeper understanding of the EM leakages. • Similar to declassified TEMPEST literature. • Key Insights/Results • Plenty of EM signals are available, provided you know what to look for and where. • Superior signals and attacks possible without micro-antennas or decapsulation. • Some attacks possible from a distance. • EM side-channel(s) >> Power side-channel • EM can break DPA-resistant implementations.
EM Emanations Background • Origin/Types of EM Emanations • Direct emanations from intended currents. • Maxwell’s equations, Ampere’s and Faraday’s laws. • Unintentional emanations from coupling effects. • Depend on physical factors, e.g., circuit geometry. • Most couplings ignored by circuit designers. • Manifest as modulation of carriers (e.g. clock harmonics) present/generated/introduced in device. • AM or Angle (FM/Phase) Modulation. • Compromising signals available via demodulation. • Propagation of EM • Radiation, Conduction, Combination of both. • E.g., Faint EM signals riding on power line.
EM Capturing Equipment • Antennas (Far-field) and Near-field probes • Current probes. • Analog processing: Filters/Amplifiers, Tunable wideband receiver or equivalent $$ • Digital sampling hardware.
EM vs. Power • Sometimes, EM is the only side-channel available. • Filtered power supplies, restricted access… • E.g. Crypto Tokens, SSL Accelerators,...
EM Signal from SSL Accelerator S at 15 feet Amplitude Time (10ns)
EM vs. Power • Is EM useful in the presence of power? • Yes, several EM carriers: Generated, Ambient, Introduced… • Experimentally verified: • Different carriers carry different information. • Some EM leakages substantially different from Power leakages.
Bad Instructions • Instructions where some EM leakage >> Power leakage. • Typically CPU intensive rather than bus intensive. • All architectures have BAD Instructions. • Example: Bit-test on several 6805 based systems leaks tested bit.
EM Attack Example2 signals, different data, same exp & modulus
Countermeasures • Require sound vulnerability assessment. • Countermeasures include: • Circuit redesign to reduce unintentional emanations. • Reducing S/N ratio • EM Shielding • Noise introduction • Physically secure zones. • Randomization based software countermeasures similar to DPA countermeasures.