How to make a message into a polynomial? I saw many answers to this question and yes, i know that here are some questions. But i did not get it. I think that i am making some mistakes. I took a word and just convert to binary-and here is my polynomial. I this that it is not correct, i am working with utf-8 (so example with ascii-7 not solution for me). I dont like to use a hybrid crypto ( with for example aes-think that these symmetric crypto are not secure), but i tried it-and i used a 128-bit key for aes and parameter N=503 for NTRU and this is not enough for me. Because i have key ( aes) for example 255 255 255 255 255 255 255 255 255 255 255 255 255 155 155 155 and i need these spaces- i am trying to create app for windows phone encrypt sms, so it need for correcting decrypt. So i think that i am not right and need your help. Help me understand how to correct in my case make a message into a polynomial and may be give some ideas for encrypting sms.


1 Answer 1


What you are looking for is explicitly specified in the IEEE Standard 1363.1 [1], which covers NTRU. In particular, encoding a bit string into a polynomial is done in the following manner: Once you have processed the input message, you divide it into blocks of 3 bits, and transform each block in a pair of coefficients of a ternary polynomial according to a predefined table (described in 9.2.2.h of [1]):

  • {0, 0, 0} is converted to {0, 0}
  • {0, 0, 1} is converted to {0, 1}
  • {0, 1, 0} is converted to {0, –1}
  • {0, 1, 1} is converted to {1, 0}
  • {1, 0, 0} is converted to {1, 1}
  • {1, 0, 1} is converted to {1, –1}
  • {1, 1, 0} is converted to {–1, 0}
  • {1, 1, 1} is converted to {–1, 1}

Note that the input bit string needs some processing before transforming it into the polynomial (also described in section 9.2.2).

Also note that we assume the original message is a bit string, so it doesn't matter which was the codification of the original text string (ASCII, UTF-8 or whatever); that should be a problem of your application, not of the encryption algorithm.


[1] IEEE Std 1363.1 - IEEE Standard Specification for Public Key Cryptographic Techniques Based on Hard Problems over Lattices. 2008.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.