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

Страница 19

Advertising
background image

DS1961S

19 из 38

Вычисление следующего секретного кода [33h]
Некоторые приложения могут потребовать более высокого уровня безопасности, чем обеспечивает
одиночный, непосредственно записанный секретный код. Для повышения уровня безопасности
DS1961S имеет возможность вычисления нового секретного кода, основываясь на текущем
секретном коде, содержимом выбранной страницы памяти и на частичном секретном коде,
который включает все данные блокнота. Для установки вычисленного секретного кода мастер
выдает команду вычисления следующего секретного кода, которая активизирует 512-битный блок
SHA-1, если память секретного кода не защищена от записи. Таблица 1 показывает, как разные
компоненты данных образуют входные данные для блока SHA, и как часть результата SHA
загружается в память секретного кода. Алгоритм вычислений SHA рассматривается в данном
документе ниже. Команда вычисления следующего секретного кода может выполняться так часто,
как это требуется для повышения уровня безопасности. Для успешного вычисления следующего
секретного кода мастеру шины не требуется знать текущий секретный код.

Таблица 1. ВХОДНЫЕ ДАННЫЕ SHA-1 ДЛЯ КОМАНДЫ ВЫЧИСЛЕНИЯ СЛЕДУЮЩЕГО
СЕКРЕТНОГО КОДА

M0[31:24] = (SS+0)

M0[23:16] = (SS+1)

M0[15:8] = (SS+2)

M0[7:0] = (SS+3)

M1[31:24] = (PP+0)

M1[23:16] = (PP+1)

M1[15:8] = (PP+2)

M1[7:0] = (PP+3)

M2[31:24] = (PP+4)

M2[23:16] = (PP+5)

M2[15:8] = (PP+6)

M2[7:0] = (PP+7)

M3[31:24] = (PP+8)

M3[23:16] = (PP+9)

M3[15:8] = (PP+10)

M3[7:0] = (PP+11)

M4[31:24] = (PP+12)

M4[23:16] = (PP+13)

M4[15:8] = (PP+14)

M4[7:0] = (PP+15)

M5[31:24] = (PP+16)

M5[23:16] = (PP+17)

M5[15:8] = (PP+18)

M5[7:0] = (PP+19)

M6[31:24] = (PP+20)

M6[23:16] = (PP+21)

M6[15:8] = (PP+22)

M6[7:0] = (PP+23)

M7[31:24] = (PP+24)

M7[23:16] = (PP+25)

M7[15:8] = (PP+26)

M7[7:0] = (PP+27)

M8[31:24] = (PP+28)

M8[23:16] = (PP+29)

M8[15:8] = (PP+30)

M8[7:0] = (PP+31)

M9[31:24] = FFh

M9[23:16] = FFh

M9[15:8] = FFh

M9[7:0] = FFh

M10[31:24] = MPX

M10[23:16] = (SP+1)

M10[15:8] = (SP+2)

M10[7:0] = (SP+3)

M11[31:24] = (SP+4)

M11[23:16] = (SP+5)

M11[15:8] = (SP+6)

M11[7:0] = (SP+7)

M12[31:24] = (SS+4)

M12[23:16] = (SS+5)

M12[15:8] = (SS+6)

M12[7:0] = (SS+7)

M13[31:24] = FFh

M13[23:16] = FFh

M13[15:8] = FFh

M13[7:0] = 80h

M14[31:24] = 00h

M14[23:16] = 00h

M14[15:8] = 00h

M14[7:0] = 00h

M15[31:24] = 00h

M15[23:16] = 00h

M15[15:8] = 01h

M15[7:0] = B8h


РЕЗУЛЬТАТ ВЫЧИСЛЕНИЯ СЛЕДУЮЩЕГО СЕКРЕТНОГО КОДА

(SS+0) := E[7:0]

(SS+1) := E[15:8]

(SS+2) := E[23:16]

(SS+3) := E[31:24]

(SS+4) := D[7:0]

(SS+5) := D[15:8]

(SS+6) := D[23:16]

(SS+7) := D[31:24]


Условные обозначения

Mt

Входной буфер блока SHA
0 < t < 15; 32-битные слова

(SS + N)

Байт N секретного кода; секретный код начинается с адреса 0080h
(См. карту памяти)

(PP + N)

Байт N страницы памяти; страницы памяти начинаются по
адресам 0000h, 0020h, 0040h и 0060h
(См. карту памяти)

(SP + N)

Байт N блокнота

MPX

MPX[7] = 0; MPX[6] = 0; MPX[5:0] = (SP + 0)[5:0]

D, E

32-битные слова, часть 160-битного результата SHA


После выдачи команды вычисления следующего секретного кода мастер должен передать
2-байтный адрес назначения для выбора страницы памяти, содержимое которой составит 256 бит

Advertising