beautypg.com

Rainbow Electronics DS2432 User Manual

Page 15

background image

PRELIMINARY

DS2432

15 of 30

Compute Next Secret [33h]

Some applications may require a higher level of security than can be achieved by a single, directly written
secret. For additional security the DS2432 can compute a new secret based on the current secret, the
contents of a selected memory page, and a partial secret that consists of all data in the scratchpad. To
install a computed secret the master issues the Compute Next Secret command, which activates the
512-bit SHA-1 engine, provided that the secret is not write-protected. Table 1 shows how the various data
components involved enter the SHA engine and how a portion of the SHA result is loaded into the
secret's memory location. The SHA computation algorithm itself is explained later in this document. The
Compute Next Secret command can be applied as often as desired to increase the level of security. The
bus master does not need to know the device’s current secret in order to successfully compute a new one
and then overwrite the existing secret.

SHA-1 Input Data for Compute Next Secret Command Table 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

Result of Compute Next Secret

(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]

Legend

Mt

Input buffer of SHA engine
0

t

15; 32-bit words

SS

Starting address of secret (80h)

PP

Starting address of memory page
See Memory Map, memory pages 0 through 3

(SP+n)

Byte n of scratchpad

MPX

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

D, E

32-bit words, portions of the 160-bit SHA result

After issuing the Compute Next Secret command the master must provide a 2-byte target address to select
the memory page that contributes 256 bits of the SHA input data. The lower five bits of the target address
TA1 are not relevant. If the target address is valid, i. e. is in the range of 0000h to 007Fh, and the secret is