70 likes | 217 Views
Analysis of NTRUEncrypt Paddings. NTRUEncrypt Basics. NTRUEncrypt works using polynomials in the ring Z [X]/X N -1. Three important parameters: N (prime); q (usually power of 2); p (small, coprime to q)
E N D
NTRUEncrypt Basics • NTRUEncrypt works using polynomials in the ring Z[X]/XN-1. • Three important parameters: N (prime); q (usually power of 2); p (small, coprime to q) • Encryption: e = p*h*r + m mod qh the public key, m the message, r random and drawn from a specific distribution • Decryption: • Use the fact that h = g/f mod q, f, g, small: • a = f*e mod q = p*g*r + f*m mod q • For appropriate choice of the reduction interval, this is almost always an exact equality • m = a/f mod p • The fact that f, g are small motivates lattice attacks; not dealt with here.
Raw NTRUEncrypt: Information Leakage and Malleability • In encryption, r is chosen s.t. r(1) is known; h(1) is also known • Therefore, e(1) leaks m(1) • Additive malleability: • If ith coefficient of m is 0, then e + Xi is an encryption of m + Xi. • Rotational malleability: • Xi*e is an encryption of Xi*m. • Different encryptions of same message • If the recipient doesn’t check the form of r, then h+e is almost certainly an encryption of m.
Making NTRUEncrypt IND-CPA • Combine m with randomness R reversibly to obtain m’ • AONT: OAEP-like hashing and masking • Calculate r as H(m||R) • Fujisaki-Okamoto technique for converting IND-CPA system to IND-CCA2 • e = r*h + m’ • On decryption, recipient • Recovers m’ • Recovers m, R • Recalculates r and e • Rejects if calculated e != received e • If AONT gives IND-CPA, then this is IND-CCA2.
m checkData r m1 r1 m2 r2 NTRU-OAEP • OAEP-BR: • “OAEP”-NTRU
Effects of this choice • Say r is of length k bits in total • Then maximum provable IND-CPA strength is k/2 bits
Possible reactions • Leave current NTRUEncrypt padding • Compatible with EESS#1 and deployed systems • Replace • OAEP? • NTRU to suggest new padding scheme shortly • REACT? • Issues with • interactions between old and new? • Efficiency?