Беспроводной интерфейс - Bluetooth

 

Министерство  образования и науки Украины

Национальный  аэрокосмический университет

им. Н.Е. Жуковского «ХАИ»

 

Кафедра компьютерных систем и сетей

 

 

 

 

Реферат на тему:

«Беспроводной интерфейс - Bluetooth »

по курсу  «Интерфейсы»

 

ХАІ.503.535a.11O.050102, 0905092 ПЗ

 

 

 

 

 

 

 

Выполнила:

студентка гр. 535а 

Лобейко А.В.

   

подпись

дата

 

Проверил:

 

Галькевич А.А.

   

подпись

дата


Харьков 2011

 

Содержание:

  1. Введение
  2. Как появилось название Bluetooth
  3. Физическая структура
  • Стек протоколов;
  • Каналы и слоты;
  1. Безопасность
  1. Пикосети
  2. Инициализация Bluetooth соединения
  3. Принцип действия интерфейса
  4. Версии и их характеристики
  • Bluetooth 1.0
  • Bluetooth 1.1
  • Bluetooth 1.2
  • Bluetooth 2.0 +EDR
  • Bluetooth 2.1
  • Bluetooth 2.1+EDR
  • Bluetooth 3.0 + HS
  • Bluetooth 4.0
  1. Профили Bluetooth
  1. Области применения
    • Ноутбуки;
    • Мышь;
    • Мобильные телефоны;
    • Приемопередатчики;
    • Bluetooth – гарнитура
  1. Заключение
  1. Список использованной литературы

 

Введение

Могут ли зубы быть голубыми?.. От природы  вряд ли, после посещения стоматологического кабинета - возможно. А вот потемневшими зубы бывают часто. Так, датский король викингов Harald Blutend (по-английски Bluetooth, а по-русски Голубой Зуб) получил  свое прозвище из-за потемневшего переднего  зуба (есть, правда, и другие версии). Этот король знаменит тем, что объединил  Данию и Норвегию. В его честь  названа технология, задуманная первоначально  как средство соединения компьютера и сотового телефона или других телекоммуникационных устройств между собой.

В начале 1998 года пять крупных компаний: Ericsson, Nokia , IBM, Intel и Toshiba - объединились, чтобы начать работу над созданием новой технологии беспроводной связи Bluetooth. 20 мая была сформирована специальная рабочая группа (Special Interest Group - SIG) для дальнейшего продвижения новой технологии на телекоммуникационном рынке. Любая компания, которая планирует разрабатывать устройства Bluetooth, может бесплатно войти в эту группу. В SIG уже состоит около 2000 компаний.

Как появилось название Bluetooth

 Своё название технология Bluetooth получила в честь короля викингов, котого звали Харольд Голубой Зуб. Такое прозвище ему дали из-за потемневшего переднего зуба. Харольд жил в Дании более тысячи лет назад и вошёл в историю благодаря тому, что объединил данов и принёс им христианство. И, как напоминание о ведущей роли скандинавов в мобильной связи, компании Ericsson, IBM, Nokia и Toshiba назвали свою технологию, которая должна творить историю, именем воина воина-викинга.

Bluetooth позволяет  объединять в локальные сети  любую технику: от мобильного  телефона и компьютера до холодильника. При этом, одними из немаловажных  параметров новой технологии  должны были стать низкая стоимость  устройства связи - в пределах 20 долларов, соответственно небольшие  размеры (ведь речь идет о  мобильных устройствах) и, что  немаловажно, совместимость, простота  встраивания в различные устройства.  
В отличие от технологии инфракрасной связи IrDA (Infrared Direct Access), работающей по принципу "точка-точка" в зоне прямой видимости, технология Bluetooth разрабатывалась для работы как по принципу "точка-точка", так и в качестве многоточечного радиоканала, управляемого многоуровневым протоколом, похожим на протокол мобильной связи GSM. Bluetooth стала конкурентом таким технологиям, как IEEE 802.11, HomeRF и IrDA, хотя последняя и не предназначена для построения локальных сетей, но является самой распространенной технологией беспроводного соединения компьютеров и периферийных устройств. То есть в скором будущем Bluetooth может стать "стандартом де-факто" для беспроводных коммуникаций

Физическая структура

Стек  протоколов

Рис. 1

Bluetooth имеет  достаточно простую структуру  стека протоколов (рис. 1). Фактически  спецификация определяет только 5 уровней: физический (RF), базовый  (baseband, комбинация аппаратных и  программных функций), протоколы  управления каналом LMP и L2CAP (Logical Link Control and Adaptation Protocol), сетевой уровень  и уровень приложений. Базовый  уровень включает в себя функции  формирования пакетов, передачи  и кодирования данных, коррекции  ошибок, управления каналами и  частотными скачками. Протокол управления  каналом LMP обеспечивает аутентификацию, инициализацию соединений и шифрование. Управляющая информация LMP упаковывается в однослотовые фреймы.

Напарник LMP – L2CAP отвечает за процедуры формирования и сборки пакетов, которые здесь достигают внушительных размеров – только поле полезной нагрузки для L2CAP-пакета составляет 64 KB. Логично, что L2CAP не используется в случае синхронных коммуникаций – там нет необходимости в столь изощренном управлении. Как и LMP, L2CAP имеет свой формат пакетов для пересылки управляющей информации. Благодаря этому протоколу в Bluetooth существуют привычные для сетевых специалистов понятия пересылки данных с установлением соединения (данные направляются конкретному адресату, доставка гарантируется) и без него (широковещательная рассылка без контроля прохождения пакетов). Реализовано и туннелирование различных протоколов, для каждого из них резервируется отдельный логический канал. Венчает семейство протоколов SDP (Service Description Protocol) – единственное средство определения сервисов, предоставляемых удаленным устройством. С помощью команд протокола можно считать информацию из локальной базы данных сервисов узла и определить способ взаимодействия с ними. Каждый сервис является производной общего класса, который определяет структуру его описания и способ ее интерпретации. Например, описание мобильного телефона будет включать в себя тип его дисплея, набор навигационных клавиш и частотный диапазон приемопередатчика.

Один  из членов семейства остался в  стороне – HCI (Host Controller Interface), он отвечает за интеграцию низкоуровневых baseband-интерфейсов и клиентского программного обеспечения. HCI состоит из HCI Firmware и HCI Driver, взаимодействующих посредством Host Controller Transport Layer. HCI Firmware осуществляет вызов функций управления каналами и передачи данных, специфических для конкретного типа устройства. HCI Driver предоставляет унифицированный интерфейс для драйверов вышележащих сетевых уровней. Поскольку чип Bluetooth доступен по одному из стандартных аппаратных коммуникационных интерфейсов, Host Controller Transport Layer, согласно спецификации, поддерживает USB, UART и RS232.

Каналы  и слоты

Bluetooth – гибрид. И это не оскорбление, а точное определение физического уровня технологии, объединяющей в себе канальную и пакетную коммутацию. Обмен данными осуществляется с помощью техники Time-Division Duplex Multiple Access. Все 79 каналов функционируют на основе временных слотов длительностью 625 мкс, которые могут быть заняты каким-либо пакетом данных. Каждый пакет передается на ином канале, чем предыдущий – это и есть пресловутые частотные "скачки" (1600 в секунду). Пакеты уровня baseband, как правило, занимают один слот, хотя потенциально разрешается формировать фреймы в пять раз больше. Помимо "демократической" формы распределения слотов (асинхронные каналы, ACL Link – Asynchronous Connection-Less Link), существует и система квотирования, когда определенное их количество заранее отводится под трансляцию в реальном времени потоковых данных (синхронные каналы, SCO Link – Synchronous Connection-Oriented Link). В действительности физические ресурсы ограничены и возможна поддержка или одного асинхронного канала с пропускной способностью ~781 Kbps, или трех синхронных голосовых каналов емкостью по 128 Kbps.

Здесь приведены  суммарные максимальные значения пропускной способности при дуплексном обмене. Однако на деле все немного сложнее: для несимметричного асинхронного канала максимальная скорость передачи составляет всего 723,2 Kbps, при том, что  для обратного направления все  еще остается резерв в 57,6 Kbps. Для  симметричного варианта соединения пропускная способность в обоих  направлениях равна 433,9 Kbps. Синхронные каналы отличаются от асинхронных еще  и тем, что первые не поддерживают механизма обнаружения и повторной  передачи неверно принятых пакетов.

Соединения  бывают как типа "один к одному", так и "один ко многим", при этом один из узлов должен выполнять функции  мастера (master), а прочим отводится подчиненная функция (slave). Обязанности мастера сводятся к формированию канала (случайная последовательность частотных скачков, генерируемая на основе адреса устройства-мастера) и поддержке синхронной слотовой структуры. Несколько узлов, работающих на одной частоте и разделяющих общий канал, образуют пиконет (piconet). В принципе, существуют варианты сетей Bluetooth, когда некоторые узлы одной пиконет в то же время являются подчиненными или мастерами другой пиконет. Зоны действия перекрываются, общий эфирный ресурс распределяется по принципу разделения во времени – TDM (Time-Division Multiplexing). Такая структура носит название "скаттернет" (scatternet).

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

 Стандартное  поле Access Code имеет длину 72 бита и оно содержит преамбулу, синхрослово и трейлер. Преамбула и синхрослово используются для синхронизации передатчика с приемником, а в целом поле Access Code может иметь различное значение в зависимости от ситуации, в которой оно было использовано. Во-первых, в варианте CAC (Channel Access Code) поле служит для идентификации и опроса узлов, принадлежащих пиконет. Код доступа формата CAC есть в составе каждого пакета, генерируемого в пиконет. С другой стороны, тип Inquire появляется в "лексиконе" узла, который пытается обнаружить все другие устройства в пределах досягаемости (General Inquire – GIAC) или же какой-либо определенный тип устройств (Dedicated Inquire – DIAC).

Синхрослово образуется из 24-битового адреса узла – мастера или иного инициатора соединения (paging). Алгоритм его вычисления гарантирует достаточно большое расстояние Хемминга (Hamming distance) между сгенерированными синхропоследовательностями (это означает, что даже при декодировании принятого с ошибками слова спутать "позывные" двух устройств сложно).

Трейлер – это своеобразная "буфер-прослойка" между Access Code и телом пакета. Он необходим для восстановления баланса постоянного тока (DC balance), поскольку на стыке разных полей часто возникают идущие подряд единицы или нули, что "сбивает с толку" приемник (теряется синхронизация).

Формат  заголовка пакета. AM_ADDR – это 3-битовый адрес устройства, внутренний для пиконет. В поле TYPE длиной 4 бита записывается тип пакета – интерпретация его содержимого зависит от характера соединения (ACL или SCO). Флажок FLOW (управление потоком) сбрасывается в 0, когда буфер устройства-приемника переполнен. В ARQN текущего фрейма записывается подтверждение (1) или неподтверждение (0) успешного приема предыдущего пакета. Стробирующий бит SEQN позволяет отсеивать ошибочно повторно переданные пакеты: для каждого нового пакета данных (имеющего поле контрольной суммы) данный бит инвертируется. Поле HEC подытоживает заголовок контрольной суммой его содержимого.

Все разнообразные  типы пакетов Bluetooth разбиты на четыре категории. В первую попали общие  для всех разновидностей соединений типы (NULL, POLL, FHS, DM1), три другие описывают  пакеты различной длины: во второй определяются однослотовые пакеты, а в четвертой  – занимающие пять временных слотов. Большинство типов пока не определены, но некоторые уже можно назвать. ID-пакеты имеют длину 68 бит и применяются для пейджинга и запросов. NULL-пакеты состоят только из полей Access Code и Header, играя роль подтверждений установления соединения или получения данных. Тип POLL аналогичен предыдущему за исключением того, что POLL-пакеты обязывают получателя ответить. Фактически так организуется обратная связь подчиненного узла с мастером.

Особый  формат у пакетов FHS – они содержат информацию об адресе, классе устройства и тактовой частоте его передатчика. Узлы прибегают к помощи FHS при инициализации новой пиконет или при смене схемы частотных скачков в уже существующей сети. В эту отдельную категорию следует отнести и пакеты DM1, обеспечивающие распространение управляющей информации.

Для синхронных и асинхронных соединений определены практически не пересекающиеся наборы специальных пакетов. Например, для  синхронных соединений введено несколько  форматов, различающихся в основном длиной поля данных и называющихся HV1, HV2 и HV3. Тип HV (High quality Voice) предназначен для ретрансляции голосовых потоков. Поле данных первого из них имеет  длину 10, второго – 20, а третьего – 30 байт. Комбинированный вариант DV – это пакет, предназначенный для передачи как голоса, так и данных, содержит 80 бит аудио и 150 бит данных. На самом деле обе его части обрабатываются полностью независимо, вплоть до того, что данные защищаются кодом CRC и посылаются повторно в случае повреждения в отличие от блока аудио.

Набор форматов для асинхронных соединений более  разнообразен за счет введения высокоскоростного  режима High rate. Пакеты DM1, DM2 и DM3 имеют  общую структуру, различаясь, как  и в случае асинхронных форматов, объемом полезной нагрузки. DH1, DH2 и DH3 могли бы стать их братьями-близнецами, если б не иной способ кодирования, а точнее, исключение стадии дополнения данных битами четности по алгоритму FEC 2/3 (5 бит контроля на 10 бит информации). Так что если DM1 занимает один временной  слот и несет в себе 18 бит данных, то его скоростной аналог за то же время  успевает "вытащить" 28, правда, с  некоторым риском для их целостности.

Для большинства  пакетов асинхронного формата действует  механизм повторной передачи в случае ошибок. Исключением является AUX1, который, будучи аналогом пакета DH1, предназначен для аудиоданных и никогда  не передается дважды.

Если  углубиться еще дальше в структуру  пакета Bluetooth, то мы обнаружим, что даже поле данных имеет свой заголовок, тело и поле контрольной суммы CRC. Заголовок  несет в себе сведения о логических каналах и сегментации пакетов.

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

Чтобы как-то упорядочить разнообразные способы  доставки управляющей и полезной информации, разработчики ввели 5 логических каналов. Канал Link Control (LC), который является высокоуровневым представлением заголовков пересланных пакетов, позволяет  устанавливать низкоуровневые параметры  соединения. Link Manager (LM) предназначен для  обмена управляющей информацией  между узлами сети пиконет. Данные канала LM кодируются пакетами DM. Каналы UA (User Asynchronous), UI (User Isochronous) и US (User Synchronous) обеспечивают пересылку асинхронных, изохронных и синхронных потоков данных посредством  соответствующих типов пакетов.

Перед передачей  и FEC-кодированием данные обрабатываются с помощью специального фильтра (whitening, выравнивание спектра), изменяющего  образуемую нулями и единицами структуру  таким образом, чтобы исключить  длинные единообразные последовательности. Цель, как уже упоминалось выше, – минимизация фактора постоянного тока (DC balance). Соответственно, на стороне приемника выполняется обратная фильтрации процедура.

Вообще, вопросы синхронизации целиком  на совести ведущего устройства (master) в пиконет. Подчиненные узлы ориентируются  на время появления пакетов от ведущего и уже от него отсчитывают  интервалы начала передачи (625 мкс). Поскольку ведущий узел никогда  не корректирует свои часы, а неустойчивая синхронизация и прочие сбои являются реальным фактором, введено окно, в течение которого ожидается приход очередного пакета. Обычно его размер составляет 20 мкс (±10 мкс), однако существуют несколько особых режимов: hold, sniff и park. Первый из них означает, что узел полностью отключается от сети, в то время как в состояниях sniff и park устройство периодически "просыпается" и прослушивает эфир, сохраняя синхронизацию с пиконет. Чтобы возобновить нормальную работу, узел должен определить фреймовую структуру соединения, поэтому на момент подключения размер поискового окна увеличивается до тех пор, пока соседние окна не начнут перекрываться (вплоть до 2500 мкс или 3750 мкс). Трюк заключается в том, что как только окна превышают длину стандартного цикла приема/передачи (2 x 625 мкс = 1250 мкс), они начинают центрироваться по середине каждого второго цикла. Если и этот барьер преодолен, то к интервалу центрирования окон добавляется еще один период приема/передачи.

Помощь  узлам в сохранении синхронизации  оказывает канал-"маяк" (beacon channel), или, говоря иными словами, сигнальный канал мастера: через определенные промежутки времени ведущий узел генерирует широковещательные пакеты, содержащие информацию для временно неактивных узлов (например, извещение  об изменении параметров самого beacon channel). Если нет необходимости отсылать данные, то используются пакеты формата NULL.

Состояния hold, sniff и park отличаются также и правилами  адресации устройства. Узел в режиме hold сохраняет за собой нормальный адрес в пиконет, а в режиме park он получает два адреса: один позволяет  мастеру различать узлы, находящиеся  в этом состоянии, и обращаться к  ним, второй же необходим, чтобы "запаркованный" узел мог самостоятельно отослать запрос мастеру. Следовательно, пакеты, отправляемые устройству в режиме park, должны быть широковещательными, так как эти  узлы лишены собственного активного  адреса.

Один  из режимов установления или возобновления  соединения называется paging state. В таком  состоянии мастер буквально забрасывает  эфир на всех частотах (hop frequencies) короткими ID-пакетами, содержащими только код  доступа устройства (device access code). Поскольку  пакеты невелики, в рамках одного временного фрейма удается передавать два пакета на двух разных частотах. Подчиненный  узел в режиме paging также успевает прослушивать за один интервал 625 мкс  две частоты, ожидая появления своего кода.

Установление  соединения осуществляется и с помощью  запросов. Запрашивающее устройство не сообщает никакой информации о  себе за исключением типа устройств, которые отвечают: все или только, например, факсы. Соответственно узел, желающий быть обнаруженным, должен периодически (каждые 2,56 с) входить в состояние  прослушивания запросов (inquiry state). Чтобы  высвободить ресурсы своего передатчика, устройство может даже перевести  в режим hold или park свои асинхронные  соединения. Синхронные коммуникации продолжают осуществляться, и пакеты могут прерывать процесс прослушивания.

После того как ведомое устройство было обнаружено опрашивающим мастером и ответило пакетом FHS, информирующим о состоянии  его внутренних часов, адресе и прочих характеристиках, ведущий узел генерирует пакет POLL, чтобы удостовериться в  том, что подчиненный узел правильно  настроил параметры приема и в  состоянии получать данные. Подключаемое устройство может ответить любым  пакетом, но если ответ не пришел, мастер снова переходит в состояние paging или inquiry.

Подчиненные узлы в пиконет работают в одном  из двух режимов: активном и "подслушивания" (sniff). Суть первого из них очевидна, а другой представляет собой некое  подобие состояния сна в энергосберегающих  технологиях. Устройство в режиме sniff прослушивает эфир только в заранее  определенные периоды времени.

Режимы sniff, park и hold также необходимы для  подключения узлов сразу к  нескольким пиконет. Чтобы подсоединиться к другой сети, устройство может  запросить для себя в текущей  пиконет режим park или hold. В случае состояния sniff узел имеет несколько  свободных временных слотов между  прослушиваниями своей основной пиконет, чтобы участвовать в  обмене данными с другими сетями.

Безопасность

Система безопасности Bluetooth-устройств основывается на двух разновидностях секретных ключей и 48-битовом идентификаторе BD_ADDR, присваиваемом  каждому устройству его производителем. Правила и порядок использования BD_ADDR регулируются комитетом IEEE. Шифрование данных осуществляется с помощью  ключа, который в свою очередь  генерируется на основе 128-битового ключа  авторизации (authentication key). Длина ключа  шифрования варьируется от 8 до 128 бит. С одной стороны, такое решение  позволяет гибко управлять степенью защиты подсистемы безопасности, а  с другой – удовлетворить требованиям различных стран относительно допустимой сложности ключа.

В генерации  ключей шифрования участвуют еще  и так называемые ключи соединения (link key). Они распространяются среди  участников пиконет после ее инициализации  и бывают двух типов – постоянные (semi-permanent) и временные. Первые хранятся в энергонезависимой памяти и могут быть использованы в рамках нескольких сессий (нескольких соединениях), вторые должны обновляться при каждом подключении.

Ключи классифицируются также по своему происхождению. Самый  простой вариант генерации у  ключа устройства (unit key) – он создается каждым узлом. Чуть сложнее выглядит процесс создания комбинированного ключа (combination key), вычисляемого на основе информации, полученной от двух участвующих в соединении узлов. Очевидно, что для каждой пары взаимодействующих устройств требуется свой комбинационный ключ. Это более надежная, но и более ресурсоемкая схема: если объем памяти устройства ограничен или в ходе эксплуатации системы (например, сетевой принтер) предполагается подсоединение большого количества различных узлов, то оптимальным будет вариант с ключом устройства.

Еще один ключ называется инициализационным  и служит временной заменой нормального  ключа до тех пор, пока он не будет  сгенерирован после завершения процесса установления соединения. Отдельно введено  понятие мастер-ключа (master key): когда  необходимо разослать информацию сразу  нескольким узлам, этот ключ используется вместо текущего ключа соединения (current link key).

Чтобы пройти аутентификацию, устройству нужно получить от проверяющего узла случайное число, сгенерировать на основании этого  числа, ключа и своего BD_ADDR некоторое  значение и отослать его обратно. Проверяющий узел контролирует корректность результата. Если общий ключ еще  не создан, генерируется инициализационный  ключ. Устройство-инициатор отсылает узлу-напарнику случайное число, которое в комбинации с фиксированным  идентификатором BD_ADDR последнего образует требуемый инициализационный ключ.

Пикосети

Устройства, образующие между собой Bluetooth-соединение, образуют сеть, называемую пикосетью (piconet). В ней одно устройство является главным (master), а другое – подчиненным (slave). К одному master-устройству может быть подключено несколько slave-устройств. Пикосети могут объединяться, образуя скеттерсеть (scatternet). В этом случае соединяются  два главных устройства, одно из которых становиться главным/подчиненным.

Принцип действия интерфейса Bluetooth

Интерфейс Bluetooth состоит из трех частей: приемо-передатчик, контроллер связи и управляющее  устройство, осуществляющее связь с  терминалом. Терминалом может быть любой прибор, будь то мобильный  телефон, КПК или ноутбук. Приемо-передатчик и контроллер связи, как правило, выполнены на отдельных микросхемах, а вот функции управляющего устройства может выполнять и процессор  теримнала при достаточной собственной  мощности. Схема проста в реализации как в аппаратном, так и в  программном направлении, что сказывается  на популярности интерфейса Bluetooth.

Инициализация bluetooth-соединения

Инициализацией, касательно bluetooth, принято называть процесс установки связи. Её можно  разделить на три этапа:

  • генерация ключа Kinit;
  • генерация ключа связи (link key и обозначается, как Kab);
  • аутентификация

Первые два  пункта входят в так называемую процедуру  паринга.

Паринг (PAIRING) — или сопряжение. Процесс  связи двух (или более) устройств  с целью создания единой секретной  величины Kinit, которую они будут  в дальнейшем использовать при общении. В некоторых переводах официальных документов по bluetooth можно также встретить термин «подгонка пары».

Перед началом  процедуры сопряжения на обеих сторонах необходимо ввести PIN-код. Обычная ситуация: два человека хотят связать свои телефоны и заранее договариваются о PIN-коде.

Для простоты будем рассматривать ситуацию с  двумя устройствами. Принципиально  это не повлияет на механизмы установления связи и последующие атаки. Далее  соединяющиеся устройства будут  обозначаться A и B, более того, одно из устройств при сопряжении становится главным (Master), а второе — ведомым (Slave). Будем считать устройство A главным, а B — ведомым. Создание ключа Kinit начинается сразу после того, как были введены PIN-коды.

Kinit формируется  по алгоритму E22, который оперирует  следующими величинами:

  • BD_ADDR — уникальный MAC-адрес BT-устройства. Длина 48 бит (аналог IP-адреса, но устанавливается производителем и уникален для каждого сетевого устройства)
  • PIN-код и его длина
  • IN_RAND. Случайная 128-битная величина

На выходе E22 алгоритма получаем 128-битное слово, именуемое Kinit. Число IN_RAND отсылается устройством A в чистом виде. В случае, если PIN неизменяем для этого устройства, то при формировании Kinit используется BD_ADDR, полученное от другого устройства. В случае если у обоих устройств  изменяемые PIN-коды, будет использован BD_ADDR(B) — адрес slave-устройства. Первый шаг сопряжения пройден. За ним следует  создание Kab. После его формирования Kinit исключается из использования.

Для создания ключа связи Kab устройства обмениваются 128-битными словами LK_RAND(A) и LK_RAND(B), генерируемыми  случайным образом. Далее следует  побитовый XOR с ключом инициализации Kinit. И снова обмен полученным значением. Затем следует вычисление ключа по алгоритму E21.

Для этого  необходимы величины:

Беспроводной интерфейс - Bluetooth