1

I am building an android sms messaging application that encrypt's a message at the sender site before sending. However, while converting from the message to a polynomial m whose coefficients are -1, 0, 1, I am using Base-3 conversion. Because of this each character in the sam is being converted into 5 coefficients of the polynomial. This allows me to send only 32( 5 * 32 = 160 ) characters at max. How can I convert a message to a polynomial so that I can send more characters??

Hope I made the problem clear!!!!

1 Answers1

0

NTRUEncrypt outputs a polynomial modulo q, not 3 (you may be thinking of the input which is a polynomial modulo 3).

Typically, q=2048=2^11. Assuming 160 chars = 160 bytes, one SMS message can be up to 1280 bits, so you can send 1280/11 = 116 coefficients in one encrypted message. To be reasonably secure, you'd need several hundred coefficients, plus a few extra bytes to protect against certain types of attacks.

So an encrypted message won't fit into one SMS message and still be secure, but you can always break it up into multiple messages. If you use the APR2011_439_FAST parameters from the open NTRU implementation, an encrypted message will be 604 bytes which means you'd need 4 SMS messages.

Or you could use 256-bit ECC instead of NTRU and you'd be able to fit 96 bytes into one message if you sent 32 ECC-encrypted bytes containing an AES key and salt, followed by 96 AES-encrypted bytes.