我正在构建一个android sms消息传递应用程序,在发送之前加密发送方站点上的消息。但是,在从消息转换为系数为-1,0,1的多项式m时,我正在使用Base-3转换。因此,sam中的每个字符被转换为多项式的5个系数。这允许我最多只发送32(5 * 32 = 160)个字符。如何将消息转换为多项式以便我可以发送更多字符?
希望我把问题弄清楚!!!!
答案 0 :(得分:0)
NTRUEncrypt输出多项式模q,而不是3(你可能会想到输入是多项式模3)。
通常,q = 2048 = 2 ^ 11。假设160个字符= 160个字节,则一条SMS消息最多可达1280位,因此您可以在一个加密消息中发送1280/11 = 116个系数。为了相当安全,你需要几百个系数,加上一些额外的字节来防止某些类型的攻击。</ p>
因此,加密的邮件不适合一条SMS消息并且仍然是安全的,但您始终可以将其分解为多条消息。如果您使用open NTRU implementation中的APR2011_439_FAST参数,则加密邮件将为604字节,这意味着您需要4条短信。
或者您可以使用256位ECC代替NTRU,如果您发送了包含AES密钥和盐的32个ECC加密字节,则可以将96个字节放入一个消息中,然后使用96个AES加密的字节。