1

我正在构建一个 android 短信应用程序,该应用程序在发送之前在发件人站点加密消息。但是,在将消息转换为系数为 -1、0、1 的多项式 m 时,我使用的是 Base-3 转换。因此,sam 中的每个字符都被转换为多项式的 5 个系数。这使我最多只能发送 32( 5 * 32 = 160 ) 个字符。如何将消息转换为多项式以便发送更多字符?

希望我把问题说清楚了!!!!

4

1 回答 1

0

NTRUEncrypt 输出模 q 的多项式,而不是 3(您可能正在考虑的输入是模 3 的多项式)。

通常,q=2048=2^11。假设 160 个字符 = 160 个字节,则一条 SMS 消息可以达到 1280 位,因此您可以在一条加密消息中发送 1280/11 = 116 个系数。为了相当安全,您需要数百个系数,加上一些额外的字节来防止某些类型的攻击。

因此,一条加密消息无法放入一条 SMS 消息中并且仍然是安全的,但您始终可以将其拆分为多条消息。如果您使用开放 NTRU 实现中的 APR2011_439_FAST 参数,则加密消息将为 604 字节,这意味着您需要 4 条 SMS 消息。

或者您可以使用 256 位ECC而不是 NTRU,如果您发送包含 AES 密钥和盐的 32 个 ECC 加密字节,然后是 96 个 AES 加密字节,则您可以将 96 个字节放入一条消息中。

于 2012-05-31T18:46:39.117 回答