Перейти к содержанию
    

У меня связь <ПК - модуль> по WIFI. Нужно шифровать посылаемые сообщения. Посоветуйте проверенную библиотеку шифрования данных чтоб бежала и на компе и на микроконтролере.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

LibTomCrypt ?

 

Ну и LibTomMath не могу не упомянуть. Я с их помощью RSA на ARM'е реализовывал ...

 

https://www.libtom.net/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, kovigor said:

LibTomCrypt ?

 

Ну и LibTomMath не могу не упомянуть. Я с их помощью RSA на ARM'е реализовывал ...

 

https://www.libtom.net/

там VC проект. как его портировать в камень?

 

Он пишет - Portable code builds out of the box with a conforming C compiler

а что тянуть в проект - всю папку ciphers? она довольно жирная. это еще если не потянет депенденсис за собой.

Изменено пользователем jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я  Не помню деталей. Писал на чистом Си. Если интересно - вечером могу скинуть пару проектов в Кейле.

Примеров использования этой библиотеки в сети масса. Конкретно меня интересовали RSA и SHA ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, kovigor said:

Я  Не помню деталей. Писал на чистом Си. Если интересно - вечером могу скинуть пару проектов в Кейле.

Примеров использования этой библиотеки в сети масса. Конкретно меня интересовали RSA и SHA ...

спасибо. буду признателен. в использовании вопросов нет. вопрос что тянуть в проект. там очень много папок и куча файлов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Там все просто, как песня. Деталей не помню, прошли годы. Могу только поделиться примерами ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, kovigor said:

Там все просто, как песня. Деталей не помню, прошли годы. Могу только поделиться примерами ...

спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тут вот какая засада.

uint8_t plain[16] = {0};
uint8_t encrypted[16+TC_AES_BLOCK_SIZE];
uint8_t derypted[16+TC_AES_BLOCK_SIZE];

uint32_t plain_size = sizeof(plain);
uint32_t encrypted_size = sizeof(encrypted);

result = CRYPTO_Encrypt(encrypted, plain_size + TC_AES_BLOCK_SIZE,  plain, plain_size);
result = CRYPTO_Decrypt(derypted, encrypted, encrypted_size);

Зашифрованный пакет требует двойного размера моего пакета данных (в моём случае). Если я посылаю шифрованный пакет по UDP то мой пакет 16 байт, шифрованный 32 байт - не велика проблема. А если CAN?

В случае CAN - в мейлбоксе 8 полезных байт. ключ - 16 байт, тогда посылка шифрованного пакета - 16+16 = 32 байт. То есть то что я раньше передавал за один раз теперь нужно посылать 4 раза. или уменьшить длину ключа. С BLE та же печаль  - полезных 24 байта, 16 из них на ключ.

Изменено пользователем jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 7/29/2021 at 3:33 PM, jenya7 said:

У меня связь <ПК - модуль> по WIFI. Нужно шифровать посылаемые сообщения. Посоветуйте проверенную библиотеку шифрования данных чтоб бежала и на компе и на микроконтролере.

Очень экономный (в смысле используемых ресурсов ресурсов) шифратор/дешифратор находится здесь https://github.com/akouz/HBus/tree/master/HBnodeMiniPro в файлах HBcipher.h и HBcipher.cpp

Заточен на пакетные сообщения. Длина сообщения не меняется. Заголовок шифруется блочным шифром XTEA, все остальное - потоковым шифром на базе LFSR. Промежуточный результат шифрования заголовка используется для инициализации LFSR.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Just now, =AK= said:

Очень экономный (в смысле используемых ресурсов ресурсов) шифратор/дешифратор находится здесь https://github.com/akouz/HBus/tree/master/HBnodeMiniPro в файлах HBcipher.h и HBcipher.cpp

Заточен на пакетные сообщения. Длина сообщения не меняется. Заголовок шифруется блочным шифром XTEA, все остальное - потоковым шифром на базе LFSR. Промежуточный результат шифрования заголовка используется для инициализации LFSR.

 

спасибо. то есть в пакет не добавляется ключ? обе стороны имеют его уже сгенерированный?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, jenya7 said:

спасибо. то есть в пакет не добавляется ключ? обе стороны имеют его уже сгенерированный?

Да, ключи фиксированные, должны быть заранее известны обеим сторонам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 часов назад, jenya7 сказал:

 то есть в пакет не добавляется ключ?

При шифровании в сообщение максимум что требуется так это добавить сеансовый ключ - по сути пару байт  случайного числа которое используется как часть ключа в текущем сеансе  шифрования. Основные ключи хранятся внутри МК и снаружи, естественно, не светятся. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

39 minutes ago, artemkad said:

При шифровании в сообщение максимум что требуется так это добавить сеансовый ключ - по сути пару байт  случайного числа которое используется как часть ключа в текущем сеансе  шифрования. Основные ключи хранятся внутри МК и снаружи, естественно, не светятся. 

Подозреваю, что тот же результат достигается при помощи nonce, т.е поля в заголовке (в моем случае одного байта) со случайным значением. В результате повторяющиеся сообщения будут выглядеть совершенно разными.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...