Учитывая типичный тип применения: датчик с питанием от батареи, считывающий показания (32-разрядное значение) каждые 10 минут, каково будет вероятное влияние на срок службы батареи, если я выберу простой незашифрованный эфирный протокол по сравнению с зашифрованной передачей?
Предположим, что мои данные не являются особо секретными, но в соответствии с этим вопросом мне, вероятно, нужно подумать о том, чтобы их зашифровать, если на самом деле нет значительных затрат на разработку.
Для простоты предположим, что я использую SoC nRF51822, который поддерживает стек BLE и более простой протокол 2,4 ГГц.
Поскольку я имею в виду коммерческое применение продукта, а не разовую установку, шифрование должно быть интенсивным, чтобы его взломать (скажем, не менее 500 долларов в облачных вычислениях 2016 года), а не просто обфускация. Что-то, что остается безопасным даже при доступе к прошивке устройства.
источник
Ответы:
Большая часть вашей энергии, скорее всего, будет расходоваться на радиочастотную передачу, а не циклы ЦП, затрачиваемые на процедуры шифрования. Каждый дополнительный передаваемый бит будет стоить вам больше энергии, чем предлагаемое вами шифрование. Это означает, что если вы используете наивный подход, например, использование AES в режиме CBC, вы рискуете увеличить размер сообщения для переноса дополнительных битов в каждом блоке.
Если вы решите, что вашему бизнесу необходимо зашифровать данные, рассмотрите возможность использования AES в режиме CTR для генерации битов потокового шифра. Режим счетчика удобен для работы в случаях, когда прием может быть ненадежным и пакеты могут быть потеряны. Вы должны будете синхронизировать счетчики, поэтому имейте в виду, что периодическая передача значения счетчика будет увеличивать накладные расходы. И вам придется зарезервировать несколько байтов состояния для хранения счетчика, потому что повторное использование зашифрованного потока битов может привести непосредственно к восстановлению данных.
источник
Существует множество методов шифрования, которые вы можете использовать для защиты своего трафика, и у каждого из них немного другое потребление энергии, поэтому я выберу несколько популярных вариантов. Методология, которую я использую для оценки каждого метода, должна быть применима к любым другим шифрам, которые вы найдете и хотите сравнить.
AES
AES - один из самых популярных алгоритмов шифрования с симметричным ключом (что означает, что вы используете один и тот же ключ для шифрования и дешифрования). С точки зрения безопасности, AES является надежной ставкой:
В документе Biclique Cryptanalysis Full AES описано, что AES-128 требует 2 126,1 операций, AES-192 требует 2 189,7 операций, а AES-256 требует 2 254,4 операций для прерывания. На процессоре с тактовой частотой 2,9 ГГц при условии, что каждая «операция» составляет 1 цикл ЦП (вероятно, не соответствует действительности), остановка AES-128 займет очень много времени . С 10 000 из них это будет продолжаться вечно . Итак, безопасность здесь не проблема; давайте рассмотрим аспект силы.
Эта статья показывает (на странице 15), что для шифрования блока с помощью AES используется 351 пДж. Я сравню это чуть позже после разговора о некоторых других распространенных алгоритмах.
SIMON
Я задавал вопрос о SIMON и SPECK ранее, который стоит прочитать. Превосходство SIMON происходит в ситуациях, когда вам часто приходится шифровать немного данных . В статье, которую я связал ранее, говорится, что SIMON 64/96 использует 213 пДж для 64 бит, что целесообразно, когда вам нужно только отправить 32 бита полезной нагрузки.
SIMON 64/96 значительно легче взломать, чем AES; статья, которую я связал, предлагает 2 63,9 операции, поэтому наша установка 10 000 ЦП может взломать шифрование всего за несколько лет , а не миллионы тысячелетий.
Это действительно имеет значение?
При скорости, которую вы планируете передавать, ответ почти наверняка нет ; использование энергии от криптографии будет совершенно незначительным. Для AES вы бы использовали 50 544 пДж в день , поэтому дешевая батарея типа АА с углеродом и цинком с энергией 2340 Дж продлилась бы намного дольше срока службы устройства . Если вы переоцените расчеты с SIMON, вы обнаружите, что он также имеет очень большой срок службы
Короче говоря, если вы не передаете очень часто, радио гораздо больше заботится о мощности . Википедия цитирует энергопотребление в диапазоне от 0,01 до 0,5 Вт. Если вы передаете в течение 1 секунды при 0,01 Вт , вы уже использовали больше энергии, чем AES за весь день .
Для BLE, тем не менее, вы, вероятно, хорошо, просто полагаясь на безопасность по умолчанию; BLE использует AES-CCM по умолчанию для безопасности канального уровня :
Существует некоторая обеспокоенность тем, что в реализации BLE защиты канального уровня есть недостатки безопасности; это не недостаток в AES; Скорее Bluetooth SIG решил накатить собственный механизм обмена ключами в 4.0 и 4.1 . Эта проблема теперь решена в 4.2, поскольку теперь поддерживается эллиптическая кривая Хеллмана-Диффи.
источник
Если вы не используете аппаратно-ускоренную криптографию, затраты на электроэнергию, вероятно, будут высоки, поскольку вы получаете процессор, который по существу перегружен для базовых (не криптографических) нужд. Однако в большинстве случаев именно радио в любом случае потребляет больше энергии.
Поскольку вы специально рассматриваете блютуз SOC, рассмотрим BGM-111 , в котором имеется чип с аппаратным ускорением. Я играл с этим чипом, и он, кажется, хорош, хотя я специально не рассматривал функции шифрования.
Другой маршрут и, возможно, «лучший» маршрут, если вы хотите, чтобы никто не мог получить ваши ключи, даже если они разбирают устройство. Он должен включать чип TPM, такой как OPTIGA TPM , который имеет чипы I2C и SPI TPM, которые поддерживаются ядрами Linux.
Короче говоря, вы будете прожигать батареи без специального аппаратного шифрования. Либо создайте плату с чипом TPM, либо выберите более современный SoC, в котором уже есть встроенная аппаратная криптография.
источник