Инструкция по эксплуатации Rainbow Electronics DS1963S
Страница 25
DS1963S
25 из 40
Последовательность W
t
(0
≤ t ≤ 79) определена следующим образом:
W
t
:= M
t
(0
≤ t ≤ 15)
S
1
(W
t-3
⊕ W
t-8
⊕ W
t-14
⊕ W
t-16
) (16
≤ t ≤ 79)
Последовательность K
t
(0
≤ t ≤ 79) определена следующим образом:
K
t
:=
5A827999h
(0
≤ t ≤ 19)
6ED9EBA1h
(20
≤ t ≤ 39)
8F1BBCDCh
(40
≤ t ≤ 59)
CA62C1D6h
(60
≤ t ≤ 79)
Переменные A, B, C, D, E инициализированы следующими значениями:
A := 67452301h
B := EFCDAB89h
C := 98BADCFEh
D := 10325476h
E := C3D2E1F0h
Выходной 160-битный MAC-код представляет собой объединение переменных A, B, C, D и E
после циклического выполнения следующего набора операций для t = 0 .. 79 (без учета переноса):
TMP :=
S
5
(A) + f
t
(B, C, D) + W
t
+ K
t
+ E
E := D
D := C
C := S
30
(B)
B := A
A := TMP
MAC-код загружается в блокнот DS1963S двумя различными способами, в зависимости от
выбранной функции SHA. При вычислении первого секретного кода и вычислении следующего
секретного кода используются 64 бита MAC-кода в виде повторяющихся последовательностей,
каждая из которых может быть скопирована в любой из восьми секретных кодов. Все другие
функции SHA загружают в блокнот полный 160-битный результат. В таблице 4 показано
размещение байтов в блокноте.
Таблица 4. ФОРМАТЫ ВЫХОДНЫХ ДАННЫХ SHA-1
Частичный код (только вычисление первого секретного кода и следующего секретного кода)
(SP+0) := E[7:0]
(SP+1) := E[15:8]
(SP+2) := E[23:16]
(SP+3) := E[31:24]
(SP+4) := D[7:0]
(SP+5) := D[15:8]
(SP+6) := D[23:16]
(SP+7) := D[31:24]
(SP+8) := E[7:0]
(SP+9) := E[15:8]
(SP+10) := E[23:16]
(SP+11) := E[31:24]
(SP+12) := D[7:0]
(SP+13) := D[15:8]
(SP+14) := D[23:16]
(SP+15) := D[31:24]
(SP+16) := E[7:0]
(SP+17) := E[15:8]
(SP+18) := E[23:16]
(SP+19) := E[31:24]
(SP+20) := D[7:0]
(SP+21) := D[15:8]
(SP+22) := D[23:16]
(SP+23) := D[31:24]
(SP+24) := E[7:0]
(SP+25) := E[15:8]
(SP+26) := E[23:16]
(SP+27) := E[31:24]
(SP+28) := D[7:0]
(SP+29) := D[15:8]
(SP+30) := D[23:16]
(SP+31) := D[31:24]