我正在构建一个android短信应用程序,加密在发送前在发送方网站的消息。但是,在将消息转换为系数为-1,0,1的多项式m时,我使用的是Base-3转换。正因为如此,sam中的每个字符都被转换为多项式的5个系数。这使我最多只能发送32( 5* 32 = 160 )个字符。如何将消息转换为多项式,以便发送更多字符??
希望我把问题说清楚了!
发布于 2012-06-01 02:46:39
NTRUEncrypt输出的是模为q的多项式,而不是3(您可能认为输入是模为3的多项式)。
通常为q=2048=2^11。假设160个字符= 160个字节,则一条短信最大可达1280位,因此您可以在一条加密消息中发送1280/11 = 116个系数。为了合理地保证安全性,您需要数百个系数,外加几个额外的字节来防止某些类型的攻击。
因此,一条加密的消息不能放入一条SMS消息中,而且仍然是安全的,但您总是可以将其拆分成多条消息。如果您使用open NTRU implementation中的APR2011_439_FAST参数,则加密消息将为604字节,这意味着您将需要4条SMS消息。
或者,您可以使用256位ECC而不是NTRU,如果您发送包含AES和salt的32个ECC加密的字节,然后是96个AES加密的字节,那么您将能够在一条消息中容纳96个字节。
https://stackoverflow.com/questions/10827599
复制相似问题