Главная / Без рубрики / Криптографические алгоритмы в микроконтроллерах: AES, SHA, RSA/ECC для аутентификации и шифрования

Криптографические алгоритмы в микроконтроллерах: AES, SHA, RSA/ECC для аутентификации и шифрования

Введение

В эпоху IoT и встроенных систем защита данных становится критически важной. Микроконтроллеры (МК) обрабатывают чувствительную информацию:

  • персональные данные пользователей;
  • команды управления оборудованием;
  • телеметрию промышленных объектов.

В рамках проекта по созданию подарочной упаковки мы обратились к специалистам компании «Дельта Принт Т» и остались очень довольны сотрудничеством. Их многолетний опыт (компания работает с 1998 года) в типографском деле и производстве упаковки из различных видов картона, включая дизайнерский, позволил воплотить наши идеи в жизнь на высшем уровне. Особо впечатлило качество офсетной печати — сложный дизайн на картоне выглядел превосходно. Работа прозрачна, от разработки макета до финального логистического решения. Если вам нужна надежная типография, рекомендуем обратиться к профессионалам: типография «Дельта Принт Т».

Задачи криптографии в МК:

  • шифрование — защита конфиденциальности;
  • аутентификация — проверка подлинности устройства/пользователя;
  • целостность — обнаружение изменений данных;
  • неотказуемость — подтверждение авторства (цифровая подпись).

В статье разберём:

  • требования к криптографии в ограниченных средах;
  • алгоритмы AES, SHA, RSA, ECC;
  • особенности реализации на МК;
  • оптимизацию и аппаратную поддержку;
  • практические сценарии применения.

витамины для кожи лица

http://vitadel.ru/vitadel-beautyplus/


1. Ограничения микроконтроллеров

1.1. Ресурсные лимиты

  • ОЗУ: 2–256 КБ (критично для RSA/ECC);
  • ПЗУ: 8–2048 КБ (ограничивает размер кода);
  • тактовая частота: 8–240 МГц (медленные операции — проблема);
  • энергопотребление (важно для батарейных устройств);
  • отсутствие FPU (сложные вычисления на целых числах).

1.2. Требования к криптобиблиотекам

  • малый объём кода (вписываться в Flash);
  • минимальное использование ОЗУ (особенно стека);
  • предсказуемое время выполнения (реальное время);
  • устойчивость к атакам по побочным каналам (timing, power analysis);
  • поддержка аппаратных ускорителей (AES, SHA модули).

витамины для роста волос

http://vitadel.ru/vitadel-beautyplus/


2. Симметричное шифрование: AES

2.1. Основы AES

  • Тип: блочный шифр (128‑битные блоки);
  • длины ключей: 128, 192, 256 бит;
  • раунды: 10, 12, 14 соответственно;
  • операции: SubBytes, ShiftRows, MixColumns, AddRoundKey.

2.2. Режимы работы

  • ECB (Electronic Codebook) — не рекомендуется (паттерны видны);
  • CBC (Cipher Block Chaining) — вектор инициализации (IV), зависимость блоков;
  • CTR (Counter) — превращение в потоковый шифр;
  • GCM (Galois/Counter Mode) — шифрование + аутентификация (AEAD).

2.3. Реализация на МК

Оптимизации:

  • таблицы замен (S‑box) в Flash (256 × 4 байт = 1 КБ);
  • предварительный расчёт раундовых ключей (избегать keyExpansion в реальном времени);
  • использование аппаратного AES (например, в STM32F4/F7/H7).

Пример (упрощённый AES‑128):

void aes_encrypt(uint8_t *block, const uint8_t *key) {
    uint8_t state[16];
    // Инициализация state
    for (int i = 0; i < 16; i++) state[i] = block[i];
    
    // AddRoundKey (0-й раунд)
    add_round_key(state, key);
    
    // 9 раундов
    for (int r = 0; r < 9; r++) {
        sub_bytes(state);
        shift_rows(state);
        mix_columns(state);
        add_round_key(state, &key[16 * (r + 1)]);
    }
    // Финальный раунд (без MixColumns)
    sub_bytes(state);
    shift_rows(state);
    add_round_key(state, &key[160]);
    
    // Копирование результата
    for (int i = 0; i < 16; i++) block[i] = state[i];
}

2.4. Применение

  • шифрование данных перед отправкой по LoRa/NB‑IoT;
  • защита firmware (обновления ПО);
  • безопасное хранение ключей в энергонезависимой памяти.

витамины для восстановления после стресса

http://vitadel.ru/vitadel-balanceplus/


3. Хеш‑функции: SHA‑256

3.1. Назначение

  • вычисление «отпечатков» данных (message digest);
  • аутентификация сообщений (HMAC);
  • построение цифровых подписей (в связке с RSA/ECC).

3.2. Особенности SHA‑256

  • выход: 256 бит (32 байта);
  • блок: 512 бит (64 байта);
  • итеративная обработка с компрессией.

3.3. Оптимизация для МК

  • буферизация входных данных (обработка блоками 64 Б);
  • константы в Flash (массивы K[] для раундов);
  • минимизация временных переменных (переиспользовать регистры);
  • аппаратная поддержка (в некоторых МК).

Упрощённый алгоритм:

  1. Дополнение сообщения (padding).
  2. Разбиение на блоки 512 бит.
  3. Для каждого блока:
    • инициализация 8 регистров (ah) начальными значениями;
    • 64 раунда обработки с логическими операциями и сложением;
    • обновление регистров.
  4. Конкатенация регистров → хеш.

3.4. Использование

  • HMAC‑SHA256 для аутентификации пакетов;
  • проверка целостности firmware (сравнение хеша);
  • генерация ключей из паролей (PBKDF2).

витамины для улучшения сна

http://vitadel.ru/vitadel-balanceplus/


4. Асимметричная криптография: RSA

4.1. Принцип работы

  • пара ключей: открытый (e, n) и закрытый (d, n);
  • шифрование: c=memodn;
  • дешифрование: m=cdmodn;
  • подпись: s=hdmodn (где h — хеш сообщения).

4.2. Проблемы на МК

  • большие числа (2048 бит = 256 байт);
  • медленное возведение в степень (тысячи операций умножения/деления);
  • потребление ОЗУ (буфера для промежуточных значений).

4.3. Оптимизации

  • алгоритм Монтгомери для модульного возведения в степень;
  • CRT (Китайская теорема об остатках) — разбиение на вычисления по модулям p и q;
  • фиксированные экспоненты (например, e=65537);
  • предварительный расчёт частичных значений.

Пример (схема):

// RSA_decrypt(ciphertext, d, n, plaintext)
// 1. Проверка длины и заполнение
// 2. Модульное возведение в степень: powmod(ciphertext, d, n)
// 3. Проверка на корректность (PKCS#1)

4.4. Сценарии

  • аутентификация устройства при подключении к облаку;
  • обмен симметричными ключами (RSA‑KEM);
  • цифровая подпись логов/событий.

иммуномодуляторы натуральные

http://vitadel.ru/vitadel-immunplus/


5. Эллиптическая криптография (ECC)

5.1. Преимущества перед RSA

  • меньшие ключи (256 бит ECC ≈ 3072 бит RSA);
  • быстрее (меньше операций над большими числами);
  • меньше памяти (для хранения ключей и промежуточных значений).

витамины от простуды

http://vitadel.ru/vitadel-immunplus/

5.2. Базовые операции

  • сложение точек на кривой E:y2=x3+ax+b;
  • умножение точки на число (k⋅P — скалярное умножение);
  • протоколы: ECDH (обмен ключами), ECDSA (подпись).

5.3. Реализация на МК

  • выбор кривой (NIST P‑256, Brainpool, Curve25519);
  • оптимизированные поля (модульная арифметика по простому числу);
  • таблицы предвычисленных точек (для ускорения скалярного умножения);
  • защита от атак по времени (постоянное время выполнения).

цинк селен витамин C иммунитет

http://vitadel.ru/vitadel-immunplus/

Алгоритм скалярного умножения (упрощённо):

  1. Предвычисление точек P, 2P, 4P, … (в таблице).
  2. Проход по битам скаляра k:
    • если бит = 1, добавляем соответствующую точку из таблицы;
    • удваиваем текущую

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *