Шифрование передачи данных по Bluetooth происходит следующим образом: 2
- Взаимодействие двух устройств по Bluetooth начинается с процедуры сопряжения (Pairing), при котором одно из устройств является главным (Master), а другое — ведомым (Slave). 2 Пользователи вводят на своих устройствах PIN-код. 2
- PIN-код вместе с адресом ведомого устройства и 128-битным случайным числом используется алгоритмом Е22 для создания 128-битного ключа инициализации, который затем будет применён при создании ключа связи. 2
- Для создания разделяемого ключа каждое из устройств генерирует случайное 128-битное число, которое затем вместе с адресом устройства шифруется алгоритмом Е21 на ключе КШ1 (побитовый XOR) и полученный СОМВ_КЕУ отправляется другому устройству. 2
- В случае успешного завершения процесса аутентификации начинается процесс шифрования. 2 Основу процедуры шифрования Bluetooth составляет потоковый шифр E0, который для генерации гамма-последовательности использует регистры сдвига с линейной обратной связью. 2 Выходная гамма-последовательность накладывается на открытый текст с помощью операции XOR, после чего результат отправляется принимающему устройству. 2
- Шифруется лишь полезная информация, содержащаяся в пакетах; заголовки передаются открытым текстом. 4
Для создания ключа шифрования используется алгоритм E3, длина ключа шифрования варьируется от 8 до 128 бит (но всегда кратна 8 битам). 2