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

Страница 24

Advertising
background image

DS1961S

24 из 38

взамен этого блокнот загружается неизмененными данными из области памяти, согласно адресу
назначения, даже если данная страница памяти находится в режиме EPROM. 2) После того, как
мастер передаст восемь байт (которые не используются), флаг EN_LFS устанавливается в 1. Флаг
EN_LFS сбрасывается после приема TA1 и TA2 во время выполнения команды записи блокнота,
вычисления следующего секретного кода, чтения аутентифицированной страницы, обновления
блокнота, чтения памяти или по сбросу при включении питания, потому что эти команды могут
изменить адрес назначения и/или данные в блокноте.
Если передан адрес назначения 0080h – 008Fh, команда обновления блокнота ведет себя точно так
же, как и команда записи блокнота. Это защищает секретный код от считывания последующей
командой чтения блокнота.

Чтение памяти [F0h]
Команда чтения памяти может использоваться для чтения всех областей памяти, за исключением
памяти секретного кода. Попытка чтения памяти секретного кода приведет к считыванию байтов
FFh взамен настоящих данных. После передачи мастером кода команды и адреса назначения (TA1
и TA2) DS1961S первым делом очищает флаг EN_LFS. Если адрес назначения является
правильным, мастер считывает данные, начиная с адреса назначения. Он может продолжать
считывание вплоть до адреса 0097h. Если мастер продолжит чтение дальше, то получит одни
логические единицы. Важно представлять, что регистры адреса назначения указывают на
последний считанный байт. Байт конечного смещения/состояния данных и блокнот не
изменяются.
DS1961S имеет аппаратные средства для осуществления безошибочной записи в секцию памяти.
Для безопасного чтения данных и одновременного повышения скорости обмена в 1-проводных
системах рекомендуется организовывать данные в пакеты размером в одну страницу памяти.
Такой пакет обычно содержит вычисленную мастером 16-битную CRC, которая обеспечивает
быстрый и безошибочный обмен данными, исключая необходимость многократного чтения
страницы для определения того, являются ли принятые данные правильными (см. Application Note
114
, где приведена рекомендуемая файловая структура, называемая также форматом TMEX).

АЛГОРИТМ ВЫЧИСЛЕНИЯ SHA-1
Данное описание алгоритма вычисления SHA является адаптированным вариантом документа под
названием «Secure Hash Standard SHA-1», который можно найти на сайте NIST
(

www.itl.gov/fipspubs/fip180-1.htm

). Алгоритм использует в качестве входных данных шестнадцать

32-битных слов M

t

(0

≤ t ≤ 15), как показано в таблицах 1, 3A, 3B и 4 для команд вычисления

следующего секретного кода, копирования блокнота и чтения аутентифицированной страницы
соответственно. В вычислении SHA участвуют две последовательности из восьмидесяти 32-
битных слов, называемые W

t

(0

≤ t ≤ 79) и K

t

(0

≤ t ≤ 79), Булева функция f

t

(B, C, D) (0

≤ t ≤ 79),

где B, C и D являются 32-битными словами, и еще три 32-битных слова, называемых A, E и TMP.
Для вычисления SHA требуются следующие операции: арифметическое сложение без переноса
(«+»), логическая инверсия («\»), исключающее ИЛИ («

⊕»), логическое И («∧»), логическое ИЛИ

∨»), присвоение («:=») и циклический сдвиг 32-битного слова. Выражение «S

n

(X)» означает

циклический сдвиг X на n разрядов влево, где X является 32-битным словом.

Функция f

t

определена следующим образом:

f

t

(B, C, D) = (B

∧ C) ∨ ((B\) ∧ D)

(0

≤ t ≤ 19)

B

⊕ C ⊕ D

(20

≤ t ≤ 39)

(B

∧ C) ∨ (B ∧ D) ∨ (C ∧

D)

(40

≤ t ≤ 59)

B

⊕ C ⊕ D

(60

≤ t ≤ 79)

Advertising