Реализация NTRU для шифрования смс-сообщений на Android

1

Я создаю приложение для обмена сообщениями для Android, которое зашифровывает сообщение на сайте отправителя перед отправкой. Однако при преобразовании из сообщения в полином m, коэффициенты которого -1, 0, 1, я использую преобразование Base-3. Из-за этого каждый символ в sam преобразуется в 5 коэффициентов многочлена. Это позволяет мне отправлять только 32 (5 * 32 = 160) символов при макс. Как преобразовать сообщение в многочлен, чтобы я мог отправлять больше символов?

Надеюсь, я поставил проблему ясной !!!!

Теги:
ntruencrypt

1 ответ

0

NTRUEncrypt выводит полином по модулю q, а не 3 (вы можете думать о вводе, который является полиномом по модулю 3).

Обычно q = 2048 = 2 ^ 11. Предполагая 160 символов = 160 байт, одно SMS-сообщение может быть до 1280 бит, поэтому вы можете отправить 1280/11 = 116 коэффициентов в одном зашифрованном сообщении. Чтобы быть достаточно безопасным, вам потребуется несколько сотен коэффициентов плюс несколько дополнительных байтов для защиты от определенных типов атак.

Таким образом, зашифрованное сообщение не будет вписываться в одно SMS-сообщение и будет оставаться безопасным, но вы всегда можете разбить его на несколько сообщений. Если вы используете параметры APR2011_439_FAST из открытой реализации NTRU, зашифрованное сообщение будет 604 байта, что означает, что вам потребуется 4 SMS-сообщения.

Или вы можете использовать 256-битный ECC вместо NTRU, и вы могли бы поместить 96 байтов в одно сообщение, если бы вы отправили 32 зашифрованных ECC байта, содержащих ключ AES и соль, за которыми следуют 96 байтов с байтами AES.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню