Яке значення має шифрування трафіку мого датчика?


13

Враховуючи типовий тип застосунку, сенсор, що працює на акумуляторі, що приймає показання (значення 32 біт) кожні 10 хвилин, який можливий вплив на час автономної роботи, якщо я виберу простий незашифрований ефірний протокол, порівняно із зашифрованою передачею?

Припустимо, що мої дані не є особливо секретними, але відповідно до цього питання мені, мабуть, потрібно розглянути їх шифрування, доки насправді не існує значних витрат на розробку.

Для простоти, припустимо, я використовую nRF51822 SoC, який підтримує стек BLE і простіший протокол 2,4 ГГц.

Оскільки я думаю про застосування комерційного продукту, а не про одноразову установку, шифрування потрібно обчислювати інтенсивно, щоб зламати (скажімо, принаймні 500 доларів за хмарний обчислення 2016 року), а не просту обдумування. Щось залишається захищеним навіть при доступі до програмного забезпечення пристрою.


2
"Щось залишається захищеним навіть при доступі до програмного забезпечення пристрою." означає, що вам або потрібно використовувати асиметричну криптографію, обчислювальну яку обчислювально дорого, або вам потрібно зберігати симетричний ключ там, де його неможливо отримати або застосувати до відновлення (відома атака в прямому тексті тощо). Як правило, в останньому випадку кожна копія товару має унікальний ключ, щоб відновлення з одного зразка не порушило всю систему; але це означає, що ваш приймач повинен зберігати всі ці ключі.
Кріс Страттон

Відповіді:


8

Основна частина вашої потужності, ймовірно, буде витрачена на передачу РФ, а не на цикли процесора, витрачені на процедури шифрування. Кожен додатковий переданий біт обійдеться вам більше, ніж шифрування, яке ви пропонуєте. Це означає, що якщо ви застосовуєте наївний підхід, наприклад, використовуючи AES в режимі CBC, ви ризикуєте збільшити розмір повідомлення, щоб перенести зайві біти в кожному блоці.

Якщо ви визначаєте, що вашому бізнесу потрібно шифрувати дані, подумайте про використання AES в режимі CTR для генерації біт-потоків cypher. Режим лічильника практичний для розгляду випадків, коли прийом може бути ненадійним і пакети можуть бути втрачені. Вам потрібно буде тримати лічильники синхронізованими, тому майте на увазі, що періодична передача значення лічильника додасть до накладних витрат. І вам доведеться зарезервувати кілька байт стану, щоб утримати лічильник, оскільки повторне використання зашифрованого потоку бітів може призвести безпосередньо до відновлення даних.


Звучить переконливо і ставить зовсім інший виток на проблему, про яку я цього разу не надто замислювався.
Шон Хуліхане

2
Слідкуйте за тим, щоб CTR не забезпечував достовірність даних. Ви повинні використовувати автентифікований режим шифрування, якщо ви не розумієте, чому автентичність не викликає проблем у вашій програмі.
Жил "ТАК - перестань бути злим"

10

Існує безліч методів шифрування, які можна використати для забезпечення трафіку, і кожен має дещо інше енергоспоживання, тому я збираюся вибрати пару популярних варіантів. Методика, яку я використовую для оцінки кожного методу, повинна застосовуватися до будь-яких інших шифрів, які ви знайдете та хочете порівняти.

AES

AES - це один із найпопулярніших алгоритмів шифрування симетричного ключа (це означає, що ви використовуєте той самий ключ для шифрування та дешифрування). Що стосується безпеки, AES - це безпечна ставка:

Кращий публічний криптоаналіз

Опубліковані напади, які обчислюються швидше, ніж повна груба атака, хоча жодна станом на 2013 рік не є обчислювально можливою.

- Вікіпедія

У статті Biclique Cryptanalysis of 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 pJ. Я порівняю це трохи пізніше після розмови про деякі інші поширені алгоритми.

СІМОН

Я раніше задав питання про SIMON та SPECK , яке варто прочитати. Якщо SIMON перевершує ситуацію, коли вам потрібно часто шифрувати трохи даних . У роботі, з якою я посилався раніше, йдеться про те, що SIMON 64/96 використовує 213 pJ для 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 за замовчуванням для захисту рівня зв'язку :

Для шифрування в Bluetooth з низьким енергією використовується криптовалюта AES-CCM. Як і BR / EDR, контролер LE виконуватиме функцію шифрування. Ця функція генерує 128-бітну зашифровану інформацію з 128-бітного ключа та 128-бітового простого текстуData, використовуючи AES-128-бітний блок-код, визначений в FIPS-1971.

Існує деяка стурбованість тим, що існують недоліки безпеки при впровадженні BLE захисту рівня зв’язкового рівня; це не вада в АЕС; швидше Bluetooth SIG вирішив запровадити власний механізм обміну ключами в 4.0 та 4.1 . Проблема тепер вирішується в 4.2, оскільки Еліптична крива Hellman-Diffie тепер підтримується.


1
"На процесорі 2,9 ГГц, якщо припустити, що кожна" операція "- це 1 цикл процесора (можливо, не відповідає дійсності)" - можливо, це компенсується паралельними процесорами (наприклад, графічними процесорами), що працюють на менших швидкостях, але дають кілька результатів за цикл [і навіть на процесорі IIRC ви можете досягти близько 1 операції / такт на одному ядрі]. Це не дуже сильно змінює порядки.
Maciej Piechotka

@MaciejPiechotka Це хороший момент. Як ви припускаєте, на порядок не слід впливати занадто сильно, і в масштабах, над якими ми працюємо, коефіцієнт 10 все ще є незначним (10 ^ 33 дні проти 10 ^ 32 днів не матиме значення) жахливо багато!).
Aurora0001

1
Симетрична система на зразок AES є проблематичною, якщо кожен пристрій не має унікального ключа - інакше дістати її лише з одного розчленованого зразка порушить всю систему.
Кріс Страттон

4

Якщо ви не займаєтесь апаратними прискореними криптовалютами, вартість електроенергії, ймовірно, буде високою, оскільки у вас з'явиться процес, який по суті є надмірним для основних потреб (не криптовалют). Однак у більшості випадків саме використання радіо в будь-якому разі споживає найбільше енергії.

Оскільки ви спеціально дивитесь на Bluetooth SOC, розгляньте BGM-111 , який має мікросхему з прискореним обладнанням. Я грав з цим чіпом, і це здається непоганим, хоча я не розглядав функції криптовалюти спеціально.

Інший маршрут і, можливо, "найкращий" маршрут, якщо ви хочете переконатися, що ніхто не зможе отримати ваші ключі, навіть якщо він розібрав пристрій. Він включає в себе чіп TPM, як OPTIGA TPM , який має мікросхеми I2C та SPI TPM, які підтримуються ядрами Linux.

Коротше кажучи, ви будете горіти через батареї без конкретних апаратних криптовалют. Або побудуйте плату з чіпом TPM, або оберіть більш сучасний SoC, у якому вже вбудована апаратна криптовалюта.


2
Питання передбачає SoG 2,5 ГГц і надсилає 32-бітове значення кожні 10 хвилин. Кількість обчислень, необхідних для криптовалюти, є абсолютно незначною. Зрозуміло, що SoC здається переповненим завданням. Але для 32 біт кожні 10 хвилин найдешевшого базового процесора, якого ви знайдете, буде більш ніж достатньо.
Жил "ТАК - перестань бути злим"

3
З 10-хвилинними інтервалами не має значення, скільки часу потрібно для шифрування, важливо лише скільки енергії . Ви повинні подивитися на деталі впровадження, як-от паразитичні навантаження, щоб зрозуміти, чи швидкий чіп, який робить це за 1 мс, або повільний, який займає 500 мс, виграє споживання енергії, припускаючи, що обидва ефективно сплять, коли не зайняті. Апаратний двигун цілком може бути кращим, ніж програмний, але для енергоефективності - те, що він швидше виконує роботу, не має значення.
Кріс Страттон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.