Инструкция по эксплуатации Rainbow Electronics DS1961S
Страница 19
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 бит