Инструкция по эксплуатации Rainbow Electronics DS1961S

Страница 20

Advertising
background image

DS1961S

20 из 38

входных данных SHA. После приема адреса назначения (TA1 и TA2) DS1961S очищает флаг
EN_LFS. Пять младших битов адреса TA1 игнорируются, так как требуется только адрес
страницы. Если переданный мастером адрес назначения является допустимым (т.е. лежит в
диапазоне 0000h – 007Fh), и память секретного кода не защищена от записи, запускается блок
SHA. Мастер должен выждать время t

CSHA

, пока вычисляется новый секретный код. Сразу после

этой задержки мастер должен выждать время t

PROG

, пока новый секретный код копируется в

память. Во время вычисления и копирования нового секретного кода напряжение на 1-проводной
шине не должно опускаться ниже 2,8В. Если копирование прошло успешно, DS1961S заполняет
блокнот кодом AAh. Если блок SHA не запускался ввиду некорректного адреса назначения или
наличия у секретного кода защиты от записи, содержимое блокнота не изменяется. По окончании
задержки записи мастер должен прочитать хотя бы один байт. Считанное значение AAh говорит о
том, что копирование прошло успешно. Значение FFh говорит об ошибке копирования в
результате некорректного адреса назначения или наличия у секретного кода защиты от записи.
Так как содержимое блокнота используется в качестве частичного секретного кода, мастер
заполняет блокнот известной 8-байтной последовательностью, используя команду записи
блокнота перед выдачей команды вычисления следующего секретного кода. Иначе значение
нового секретного кода будет зависеть от данных, которые случайно остались в блокноте от
предыдущих команд.

Копирование блокнота [55h]
Память данных DS1961S может быть считана без каких-либо ограничений. Однако выполнение
команды копирования блокнота для записи новых данных в память или в страницу регистров
требует знания секретного кода и возможности проведения вычислений SHA-1 для генерации 160-
битного MAC-кода, который разрешит передачу данных из блокнота в память. Мастер может
осуществить вычисление MAC-кода программно, или использовать для этого сопроцессор
DS1963S. Подход с применением сопроцессора имеет преимущество, так как секретный код
остается спрятанным внутри iButton сопроцессора. Последовательность, в которой полученный
MAC-код должен передаваться в DS1961S, показана в таблице 2. Таблицы 3A и 3B показывают,
как разные компоненты данных образуют входные данные для блока SHA. Алгоритм вычислений
SHA рассматривается в данном документе ниже.

Таблица 2. ПОСЛЕДОВАТЕЛЬНОСТЬ ПЕРЕДАЧИ КОДА АУТЕНТИФИКАЦИИ
СООБЩЕНИЯ

Направление сдвига

E[31:24] E[23:16] E[15:8]

E[7:0]

D[31:24] D[23:16] D[15:8]

D[7:0]

C[31:24] C[23:16] C[15:8]

C[7:0]

B[31:24] B[23:16] B[15:8]

B[7:0]

A[31:24] A[23:16] A[15:8]

A[7:0]

В процессе пересылки первым передается младший бит. Пересылка начинается с регистра E.


После выдачи команды копирования блокнота, мастер должен передать 3-байтную
последовательность авторизации, которая должна быть непосредственно перед этим получена с
помощью команды чтения блокнота. Эта 3-байтная последовательность должна точно совпадать с
данными, которые содержатся в трех адресных регистрах (TA1, TA2, E/S, в этом порядке). Если
последовательность авторизации совпадает, и память назначения не защищена от записи, DS1961S
запускает блок SHA для вычисления 160-битного MAC-кода на основе текущего секретного кода,
всех данных блокнота, первых 28 байт адресованной страницы памяти и первых семи байт
идентификационного регистра (байт с адресом 0097h не используется; см. таблицу 3A).
Длительность вычислений равна t

CSHA

, в это время напряжение на 1-проводной шине не должно

Advertising