Чай выглядит довольно простым и, вероятно, будет делать то, что вам нужно.
компиляция для большого пальца с -O2 или аналогичными оптимизациями:
arm-none-linux-gnueabi-gcc (Sourcery G ++ Lite 2011.03-41) 4.5.2
шифровать 136 байтов, дешифровать 128 байтов
llvm 29
зашифровать 92 байта расшифровать 96 байтов
компиляция для универсальной руки ...
GNU шифрует 188 байтов, дешифрует 184 байта
llvm шифрует 112 байтов, дешифрует 116 байтов
При проверке подлинности существует ли отношение один к одному между таблицей IP-адресов и количеством устройств? По сути, должно быть более одного уникального идентификатора на устройство? Вы хотите, чтобы другая сторона, которая устанавливает соединение со встроенной системой, входила в систему в той или иной форме? Или вы управляете двоичными файлами / кодом на обоих концах, и у вас нет пользователей или нет выбора устройств (программы знают, что делать) и т. Д.? Если каждое устройство имеет известный IP-адрес, этот IP-адрес может быть ключом к шифрованию (плюс другие байты, общие для всех или полученные каким-либо образом, которые всем известны). Если входящее соединение равно 1), а не из утвержденного списка 2) происходит сбой шифрования при сбое ключа, основанного на IP-адресе встроенной системы, а затем отклонить соединение.
В любом случае ваша безопасность может зайти так далеко, что если вам нужно что-то действительно надежное, вам, вероятно, потребуется больше мощности во встроенной системе, а затем внедрите одну из общих / стандартных систем, таких как ssl.