Summary of Contents for Motorola DigitalDNA MPC180E
Page 1
MPC180E Security Processor User’s Manual Rev. 2.1, 11/2000 PRELIMINARY—SUBJECT TO CHANGE WITHOUT NOTICE...
Page 2
“Typicals” must be validated for each customer application by customer’s technical experts. Motorola does not convey any license under its patent rights nor the rights of others. Motorola products are not designed, intended, or authorized for use as components in systems intended for surgical implant into the body, or other applications intended to support or sustain life, or for any other application in which the failure of the Motorola product could create a situation where personal injury or death may occur.
Page 3
Overview Signal Descriptions External Bus Interface and Memory Map Data Encryption Standard Execution Unit Arc Four Execution Unit Message Digest Execution Unit Public Key Execution Unit Random Number Generator Hardware Parameters Glossary of Terms and Abbreviations PRELIMINARY—SUBJECT TO CHANGE WITHOUT NOTICE...
Page 4
Overview Signal Descriptions External Bus Interface and Memory Map Data Encryption Standard Execution Unit Arc Four Execution Unit Message Digest Authentication Unit Public Key Execution Unit Random Number Generator Hardware Parameters Glossary of Terms and Abbreviations PRELIMINARY—SUBJECT TO CHANGE WITHOUT NOTICE...
CONTENTS Paragraph Page Title Number Number Chapter 1 Overview Features ....................... 1-1 System Architecture.................... 1-2 Architectural Overview..................1-3 1.3.1 Public Key Execution Unit (PKEU) ............... 1-4 1.3.2 Data Encryption Standard Execution Unit (DEU).......... 1-4 1.3.3 Arc Four Execution Unit (AFEU) ..............1-5 1.3.4 Message Digest Execution Unit (MDEU) ............
Page 6
CONTENTS Paragraph Page Title Number Number Chapter 4 Data Encryption Standard Execution Unit Operational Registers..................4–1 4.1.1 DEU Control Register (DCR)................. 4–2 4.1.2 DEU Configuration Register (DCFG) ............4–2 4.1.3 DEU Status Register (DSR)................4–3 4.1.4 Key Registers....................4–4 4.1.5 Initialization Vector ..................
Page 7
CONTENTS Paragraph Page Title Number Number Chapter 7 Public Key Execution Unit Operational Registers..................7–1 7.1.1 PKEU Version Identification Register (PKID) ..........7–1 7.1.2 Control Register (PKCR)................7–2 7.1.3 Status Register (PKSR)................... 7–3 7.1.4 Interrupt Mask Register (PKMR) ..............7–4 7.1.5 EXP(k) Register....................
Page 8
CONTENTS Paragraph Page Title Number Number Chapter 8 Random Number Generator Overview......................8–1 Functional Description..................8–1 Typical Operation ....................8–1 Random Number Generator Registers ..............8–2 8.4.1 Status Register ....................8–2 Chapter 9 Hardware Parameters Absolute Maximum Ratings ................9-1 Package Thermal Characteristics................
Page 9
ILLUSTRATIONS Figure Page Title Number Number Typical MPC8xx System Example................1-2 Typical MPC8260 System Example................1-3 MPC180E Architectural Block Diagram ..............1-4 MPC180E Pin Diagram ....................2-4 MPC180E Execution Unit Registers ................3–1 Command/Status Register (CSTAT) ................3–6 ID Register ........................3–8 IMASK Register ......................3–9 Input Buffer Control (IBCTL) and Output Buffer Control (OBCTL) Registers ..3–10 Input Buffer Count (IBCNT) and Output Buffer Count (OBCNT) Registers ...3–11 DES Control Register (DCR)..................4–2...
Page 10
ILLUSTRATIONS Figure Page Title Number Number 7-19 Modular Multiplication (with double reduction) Register Usage.......7–28 7-20 Modular Add Register Usage..................7–29 7-21 Modular Subtract Register Usage ................7–30 7-22 Clear Memory Register Usage..................7–31 7-23 mod N Register Usage ...................7–33 7-24 mod P Register Usage ..................7–34 RNG Status Register .....................8–2 Exception Cycle Timing ....................
Page 11
TABLES Table Page Title Number Number Pin Descriptions ......................2-1 32-Bit System Address Map ..................3–2 EBI Registers ........................3–5 CSTAT Field Descriptions ...................3–6 ID Field Descriptions....................3–8 IMASK Field Descriptions ...................3–9 IBCTL Field Descriptions...................3–10 OBCTL Register Field Descriptions................3–10 EBI Operation Summary.....................3–12 Data Encryption Standard Execution Unit (DEU) Registers........4–1 DCR Field Descriptions....................4–2 DCFG Field Descriptions .....................4–3 DSR Field Descriptions ....................4–3...
Page 12
TABLES Table Page Title Number Number 7-18 Integer Modular Exponentiation .................7–26 7-19 Modular Multiplication....................7–27 7-20 Modular Multiplication (with double reduction) ............7–28 7-21 Modular Add.......................7–29 7-22 Modular Subtract ......................7–30 7-23 Clear Memory ......................7–31 7-24 mod N ........................7–32 7-25 mod P ........................7–34 7-26 Run Time Formulas ....................7–35 Random Number Generator Registers ................8–2...
MPC180E architecture. 1.1 Features The MPC180E is designed to work with Motorola’s PowerQUICC™ family of processors. The MPC180E interfaces gluelessly to both the PowerQUICC and PowerQUICC II™, accelerating the performance of computationally-intensive security functions, such as key generation and exchange, authentication, and bulk encryption.
Architectural Overview MPC180E EEPROM 60x Bus MPC8260 Local Bus SDRAM SDRAM SDRAM DIMMs I/O or Network Interface Figure 1-2. Typical MPC8260 System Example 1.3 Architectural Overview Figure 1-3 shows a simplified block diagram of MPC180E internal architecture. The External Bus Interface (EBI) module is designed to interface gluelessly to the PowerQUICC and PowerQUICC II and to translate the processor core bus timing to a simple read/write interface for the execution units (EU).
Architectural Overview INPUT DMA Request 4K bit Logic FIFO SHA-1 DES/ ARC4 3DES MD 5 8xx/6xx Controller (Slave) OUTPUT DMA Request 4K bit Logic FIFO Figure 1-3. MPC180E Architectural Block Diagram 1.3.1 Public Key Execution Unit (PKEU) The PKEU is capable of performing many advanced mathematical functions to support both RSA and ECC public key cryptographic algorithms.
Architectural Overview 1.3.3 Arc Four Execution Unit (AFEU) The AFEU accelerates an algorithm compatible with the RC4 stream cipher from RSA Security, Inc. The algorithm is byte-oriented, which means a byte of plaintext is encrypted with a key to produce a byte of ciphertext. The key is variable length, and the AFEU supports key lengths from 40 bits to 128 bits (in byte increments), providing a wide range of security strengths.
Page 18
Architectural Overview MPC180E Security Processor User’s Manual PRELIMINARY—SUBJECT TO CHANGE WITHOUT NOTICE...
Chapter 2 Signal Descriptions This chapter provides a pinout diagram and signal descriptions for the MPC180E security processor. 2.1 Signal Descriptions Table 2-1 groups pins by functionality. Table 2-1. Pin Descriptions Signal Signal Description name locations type Signal pins A[18:29] 62, 64, 66, Address: address bus from the processor core.
Page 20
Signal Descriptions Table 2-1. Pin Descriptions (Continued) Signal Signal Description name locations type Transfer Acknowledge: This signal is asserted by the MPC180E when a successful read or write has occurred. PSDVAL Data valid: This active low signal is ignored when CONFIG=0 (MPC860 Mode), but is active in MPC8260 Mode.
Page 21
Signal Descriptions Table 2-1. Pin Descriptions (Continued) Signal Signal Description name locations type ATPG test scan enable, should be tied to Vss Power and Ground IVDD 10, 21, 41, +1.8 Volts (power pins for core logic) 60, 71, 93 OVDD 5, 15, 25, +3.3 Volts (Power pins for I/O pads) 35, 43, 65,...
Chapter 3 External Bus Interface and Memory Map This chapter describes the MPC180E address map, the External Bus Interface (EBI), and EBI registers. 3.1 Execution Unit Registers Each MPC180E execution unit has a dedicated set of registers. The MPC180E has a unified memory map that allows software addressibility to all internal registers.
Address Map Most of these registers are read and write, however some have special permissions. See Table 3-1 for more information. The 12-bit MPC180E address of each register is shown next to the register name. All registers are assumed to be 32 bits wide; however, registers that contain fewer bits will return 0 (or a known value) on unused bits for that bus transaction only.
Page 25
Address Map Table 3-1. 32-Bit System Address Map (Continued) MPC180E 12-Bit Address Processor 32-Bit Address Register Type 0x018 0x0000_0060 Version Identification (MID) DEU: 0x200–0x3FF 0x200 0x0000_0800 Control (DCR) 0x201 0x0000_0804 Status (DSR) 0x202 0x0000_0808 Key1_R 0x203 0x0000_080C Key1_L 0x204 0x0000_0810 Key2_R 0x205 0x0000_0814...
External Bus Interface • Automatic buffer filling and emptying. DREQ1 and DREQ2 stay asserted as long as memory space or data is in the buffers, letting the host load data for the next operation before the current operation finishes • Interrupt routing and masking, which lets the host individually detect interrupts •...
External Bus Interface Table 3-3. CSTAT Field Descriptions Bits Name Description 24–27 Destination Destination bits. Only one execution unit on MPC180E can be active at a time through FIFO accesses, so the host must program CSTAT to enable the appropriate execution unit. The host must guarantee that all data related to a specific operation has been processed before updating CSTAT, otherwise unpredictable results occur in MPC180E because the controller acts on one execution unit at a time.
External Bus Interface Field — MPC180E MDEU Reset 0000_0000 0_01 Read Field DEU AFEU — PKEU Reset 0_10 01_0 Read Addr 0x901 Figure 3-3. ID Register Table 3-4 describes the ID fields. Table 3-4. ID Field Descriptions Bits Name Description 0–7 —...
External Bus Interface Field — Reset 0000_0000_0000_0000 Field — DEU AFEU MDEU RNG PKEU Reset 0000_0000_0000_0000 Addr 0x902 Figure 3-4. IMASK Register Table 3-5 describes the IMASK fields. Table 3-5. IMASK Field Descriptions Bits Name Description 0–26 — Reserved, should be cleared. Data Encryption Standard Execution Unit global interrupt control 0 interrupt unmasked 1 interrupt masked...
EBI Controller Operation 3.3.1.5 Input Buffer Count (IBCNT) and Output Buffer Count (OBCNT) Registers IBCNT indicates the number of 32-bit words to be used for an operation. For example, if the PKEU is to operate on 512 bits (16 words), IBCNT should be set to 0x0000_0010, corresponding to sixteen, 32-bit words to be taken from the input buffer and written to the PKEU.
EBI Controller Operation Table 3-8 summarizes the operation in clock cycles of the EBI in MPC860 and MPC8260 modes. Table 3-8. EBI Operation Summary MPC860 Mode MPC260 Mode Name CONFIG=0 CONFIG=1 Single beat read/write to/from EBI register or FIFO Single beat read/write to/from execution units at least 2 at least 3 4-beat burst read/write to/from FIFOs...
Chapter 4 Data Encryption Standard Execution Unit This chapter explains how to program the DEU (Data Encryption Standard Execution Unit) to encrypt or decrypt a message. 4.1 Operational Registers All operational registers within the main control block are 32-bit addressable, however they may contain less than 32 bits.
Operational Registers 4.1.1 DEU Control Register (DCR) The control register, shown in Figure 4-1, contains static bits that define the encryption mode of operation for the DEU. This is typically written along with the keys and initialization vector at the start of each new encryption process. All unused bits of DCR are read as 0 values.
Operational Registers Table 4-3 describes DCFG fields. Table 4-3. DCFG Field Descriptions Bits Name Description 0–29 — Reserved, should be cleared. The DES can be reset by asserting the RESET signal or by setting the Software Reset bit in the Control Register. The software and hardware resets are functionally equivalent. The software reset bit will clear itself one cycle after being set.
Operational Registers DATA_IN registers will start processing. When completed, the resulting output will be held in a working register until the output ciphertext is read from the DATA_OUT registers. Then the held data will be copied to the DATA_OUT registers and the ORDY signal asserted again.
Chapter 5 Arc Four Execution Unit This chapter explains how to program the AFEU (Arc Four Execution Unit) to encrypt or decrypt a message. 5.1 Arc Four Execution Unit Registers All operational registers within the main control block are 32-bit addressable. However, they may contain less than 32 bits.
Arc Four Execution Unit Registers 5.1.1 Status Register The AFEU Status Register, shown in Figure 5-1, contains seven bits of information. These bits describe the state of the AFEU circuit and are all active-high. Field — Input Buffer Full msg Sub-msg Permute Initialize...
Arc Four Execution Unit Registers 5.1.2 Control Register Figure 5-2 shows the AFEU Control Register. Field — IMSK Reset 0000_0000_0000_0001 Addr 0x400 Figure 5-2. Arc Four Execution Unit Control Register Table 5-3 describes the AFEU Control Register fields. Table 5-3. AFEU Control Register Field Descriptions Name Description 0–29 —...
Arc Four Execution Unit Registers NOTE: If the key length is not divisible by four, the lower key data registers must be filled before writing to the upper key data registers. 5.1.6 Message Byte Double-Word Register The Message Byte Double-Word Register is a 3-bit write-only register and is used to hold the number of bytes (minus one) in the last/partial sub-message.
Arc Four Execution Unit Registers 5.1.9 S-box I/J Register The Sbox I/J Register is a 24-bit read/write register where the Sbox I/J pointers are stored. The contents of this register must be read prior to context switching and must be written back to the AFEU before resuming message processing of an interrupted message.
Page 44
Arc Four Execution Unit Registers MPC180E Security Processor User’s Manual PRELIMINARY—SUBJECT TO CHANGE WITHOUT NOTICE...
Chapter 6 Message Digest Execution Unit This chapter explains how to program the MDEU (Message Digest Execution Unit) within the MPC180E to hash a message for authentication. 6.1 Operational Registers All operational registers within the MDEU are 32-bit addressable, however they may contain less than 32 bits.
Operational Registers MPC180E 12-Bit Address Processor 32-Bit Address Register Type 0x013 0x0000_004C Message digest (MD) 0x014 0x0000_0050 Message digest (ME) 0x015 0x0000_0054 Control (MCR) 0x016 0x0000_0058 Status (MSR) 0x017 0x0000_005C Clear interrupt (MCLRIRQ) 0x018 0x0000_0060 Version Identification (MID) 6.1.1 MDEU Version Identification Register (MID) The Identification Register contains a value reserved for a particular version and configuration of the MDEU.
Operational Registers Table 6-2. MCR Field Descriptions Bits Name Description 0–19 — Reserved, should be cleared. ENGO Enables automatic start of hashing as soon as the MDMB buffers have all been written. It is not necessary to set the GO bit manually. OPAD The assertion of OPAD causes: 1.
Operational Registers 6.1.3 Status Register (MSR) The status register contains bits that give information about the state of the MDEU. Upon completion of a hash, DONE is asserted in bit 0 of MSR, followed by an interrupt on IRQ if interrupts are enabled. In addition, whenever the contents of the message buffer are copied for internal hash processing, BE is asserted.
Operational Registers 6.1.4 Message Buffer (MB0—MB15) The MDEU hashes a message contained in the 16-word Message Buffer. The message should be processed such that a single-character message would be written to MB0. MB15 should only be programmed if the message block uses at least 481 bits. The Message Buffer is not cleared upon completion of a computation process.
Page 50
Operational Registers MPC180E Security Processor User’s Manual PRELIMINARY—SUBJECT TO CHANGE WITHOUT NOTICE...
Chapter 7 Public Key Execution Unit This chapter explains how to program the PKEU (Public Key Execution Unit) to perform mathematical functions. 7.1 Operational Registers All operational registers within the main control block are 32-bit addressable, however they may contain less than 32 bits. Table 7-1 lists all PKEU registers.
Operational Registers 7.1.2 Control Register (PKCR) The Control Register contains static bits that define the mode of operation for the PKEU. In addition to the static control bits, several bits are dynamic. These dynamic bits are set by a write to the PKCR initiated by the host processor, and are reset automatically by the PKEU after one cycle of operation.
Operational Registers Table 7-2. PKCR Field Descriptions (Continued) Bits Name Description For a description of R see Section 7.5.3, “RpRN mod P Calculation.” mod N enabled mod P enabled The RST bit is a software reset signal. When activated, the PKEU will reset immediately. All registers revert to their initial state, and the Program Counter (PC) will jump to 0.
Operational Registers Field — E_RDY IRQ DONE Reset 0000_0000_0000_0001 Addr 0xB02 Figure 7-2. PKEU Status Register (PKSR) Table 7-3. PKSR Field Descriptions Bits Name Description 0–10 — Reserved, should be cleared. E_RDY The E_RDY (exponent or k ready) bit indicates that the execution unit is ready to accept the next 32-bit word of exponent data or point multiplier (k) data in the EXP(k) register.
Operational Registers All unused bits of the PKMR are read as 0 values. Since the PKMR is a 16-bit register, when the host processor reads the PKMR, its contents are copied onto D[15:0], and the upper half of D is driven with 0’s. Figure 7-3 shows the PKEU Interrupt Mask Register and Table 7-4 describes this register’s fields.
Operational Registers 7.1.5 EXP(k) Register The EXP(k) register contains the exponent (EXP) during exponentiation routines or the point multiplier (k) during ECC point multiply routines. EXP(k)_SIZE must be specified before writing to the EXP(k) register. Since EXP(k) is 32 bits in size, data must be written to it during exponentiations or point multiplies and never before.
Memories 7.1.7 Modsize Register This register sets the maximum size of the modulus (or prime) for RSA and ECC F or the irreducible polynomial for ECC F m. The maximum size of these vectors is 128 digits (1 digit = 16 bits) for RSA and ECC F and 32 digits for ECC F m (Note that the value written to modsize is not checked for validity).
ECC Routines 7.3 ECC Routines 7.3.1 ECC F Point Multiply The PKEU performs the Elliptic Curve point multiply function which is the highest level of ECC abstraction supported by the device. It is the intention that the host processor use the PKEU in such a way as to support ECC schemes defined in IEEE P1363 (and other ECC standards) where the point multiply is the critical and most computationally intensive, but not final, step in many of these schemes.
Page 59
ECC Routines Table 7-5. ECC F Point Multiply (Continued) Point Multiply Post-conditions B1 = X / X’ B2 = Y / Y’ B3 = Z / Z’ A2 = undefined (when XYZ = 1) or Z (when XYZ = 0) A3 = undefined (when XYZ = 1) or Z (when XYZ = 0) Unless explicitly noted, all other registers are not guaranteed to be any particular value.
Page 60
ECC Routines PKEU asserts the IRQ signal when it is ready to accept more data. This tells the host processor to read PKSR to see what was set. If the E_RDY bit is set, the host processor knows it must provide the next word of k - this data is written into the EXP(k) register one 8-bit word at a time.
Page 61
ECC Routines 7.3.2 ECC F Point Add This function is extensively utilized by the point multiply routine. However, its value as a stand-alone routine to the host processor is extremely limited. As a result, the information provided on the routine is primarily for testing and debug purposes. Table 7-6.
Page 62
ECC Routines 7.3.3 ECC F Point Double This function is extensively utilized by the point multiply routine. However, its value as a stand-alone routine to the host processor is extremely limited. As a result, the information provided on the routine is primarily for testing and debug purposes. Table 7-7.
ECC Routines 7.3.4 ECC F Modular Add Modular addition may be performed on any two vectors loaded into A (A0-A3) and B (B0-B3), where both of these vectors are less than the value stored in the modulus register N (N0-N3). The results are stored in the respective B register. For ECC functionality, this function is used by the point add and point double routines but is available to the host interface - typically for higher-level ECC-related functions.
ECC Routines 7.3.5 ECC F Modular Subtract Modular subtraction may be performed on any two vectors loaded into A (A0–A3) and B (B0–B3), where both of these vectors are less than the value stored in the modulus register N (N0–N3). This is accomplished by computing A-B if A > B or A-B+N if A < B. The results are stored in the respective B register.
ECC Routines 7.3.6 ECC F Montgomery Modular Multiplication ((A × B × R ) mod N) The (A × B × R ) mod N calculation is the core function of the PKEU. It is used to assist the point add and double routines in completing their functions. For ECC purposes, this function will rarely be used directly by the host processor.
ECC Routines 7.3.7 ECC F Montgomery Modular Multiplication ((A × B × R ) mod N) The (A × B × R ) mod N calculation is similar to the standard ‘R ’ Montgomery multiplication except an additional R is divided out. This function is ideal for those ECC applications which work in affine coordinates.
Page 67
ECC Routines 7.3.8 ECC F m Polynomial-Basis Point Multiply The PKEU performs the elliptic curve point multiply function which is the highest level of ECC abstraction supported by the device. It is the intention that the host processor use the PKEU in such a way as to support ECC schemes defined in IEEE P1363 (and other ECC standards) where the point multiply is the critical and most computationally intensive, but not final, step in many of these schemes.
Page 68
ECC Routines Initial Condition Final Condition (or Z’ (or Y’ mod N (or X’ ? (or Z 1 (or Z ? (or Z (or Y (or X irred. poly. irred. poly. ‘1’ - ECC enabled same k (run-time) EXP(k) same select ‘1’...
Page 69
ECC Routines For affine coordinate systems (XYZ = 0): The results of the calculation are returned to the A and B storage registers. Note that these values correspond to the projective coordinate values X, Y, Z, Z , and Z .
Page 70
ECC Routines Table 7-13. ECC F m Point Add m Point Add Computation R = P + Q, where R ≡ (X ), P ≡ (X ), and Q ≡ (X Entry name maddPtoQ Entry address 0x005(F maddPtoQ) Pre-conditions A0 = X’ (projective coordinate in Montgomery residue system) A1 = Y’...
ECC Routines 7.3.10 ECC F m Point Double This function is extensively utilized by the point multiply routine. However, its value as a stand-alone routine to the host processor is extremely limited. As a result, the information provided on the routine is primarily for testing and debug purposes. Table 7-14.
ECC Routines 7.3.11 ECC F m Add (Subtract) Field addition in F m (polynomial-basis) may be performed on any two vectors loaded into A (A0-A3) and B (B0-B3), where both of these vectors are less than the value stored in the modulus (irreducible polynomial) register N (N0-N3).
ECC Routines 7.3.12 ECC F m Montgomery Modular Multiplication ((A × B × R ) mod N) The (A × B × R ) mod N calculation is the core function of the PKEU. This function is used to assist the point add and double routines in completing their functions. For ECC purposes, this function will rarely be used directly by the host processor.
Page 74
ECC Routines 7.3.13 ECC F m Montgomery Modular Multiplication ((A × B × R ) mod N) The (A × B × R ) mod N calculation is similar to the standard ‘R ’ Montgomery multiplication except an additional R is divided out. This function is ideal for those ECC applications which work in affine coordinates.
RSA Routines 7.4 RSA Routines For the RSA-related descriptions which follow, it is generally recommended that all memory block pointers (regAsel, regBsel, etc.) are set to zero. For the modular exponentiation routine, the pointers are actually ignored. For the multiplies, add, subtract, and R functions, it is possible to set these pointers and have the PKEU adhere to these settings.
RSA Routines Table 7-18. Integer Modular Exponentiation Integer Modular Exponentiation Computation S = (A’ * R mod N Entry name expA Entry address 0x007(expA) Pre-conditions A0-3 = A’ (the value A in the Montgomery residue system) N0-3 = modulus Run-time EXP(k) = msb exponent word (provided in 8-bit words throughout the exponentiation);...
RSA Routines 7.4.2 RSA Montgomery Modular Multiplication ((A × B × R ) mod N) The (A × B × R ) mod N calculation is the core function of the PKEU. It is used to assist the exponentiation routine in completing its operation though it is also available to the host processor - typically to put messages into the Montgomery format.
RSA Routines 7.4.3 RSA Montgomery Modular Multiplication ((A × B × R ) mod N) The (A × B × R ) mod N calculation is similar to the standard ‘R ’ Montgomery multiplication except an additional R is divided out. This function is particularly helpful when using the Chinese Remainder Theorem.
RSA Routines 7.4.4 RSA Modular Add Modular addition may be performed on any two vectors loaded into A (A0-A3) and B (B0-B3), where both of these vectors are less than the value stored in the modulus register N (N0-N3). The results are stored in the respective B register. This function is particularly helpful when using the Chinese Remainder Theorem.
RSA Routines 7.4.5 RSA F Modular Subtract Modular addition may be performed on any two vectors loaded into A (A0-A3) and B (B0-B3), where both of these vectors are less than the value stored in the modulus register N (N0-N3). This is accomplished by computing A-B if A > B or A-B+N if A < B. The results are stored in the respective B register.
Miscellaneous Routines 7.5 Miscellaneous Routines The remaining routines are general in nature and are not specific to any particular cryptographic algorithm. 7.5.1 Clear Memory This routine clears all of the RAM memory locations in the PKEU. This includes the A, B, and N RAMs.
Miscellaneous Routines 7.5.2 R mod N Calculation The PKEU has the capability to calculate R mod N, where R = 2 and D is the number of digits of the modulus vector (Modsize+1, where Modsize is specified independently). This function is used to assist in placing operands into the Montgomery residue system. When possible, this value should be pre-computed.
Miscellaneous Routines Initial Condition Final Condition mod N(⇑) modulus N(⇑) modulus N(⇑) ‘0’ - ECC disabled same EXP(k) ‘0’ - integer-modulo-n enabled same regAsel regBsel set (00) set (00) regNsel Modsize same EXP(k)_SIZE Figure 7-23. R mod N Register Usage 7.5.3 R mod P Calculation The PKEU has the ability to calculate R...
Page 84
Miscellaneous Routines Table 7-25. R mod P mod P Computation mod P, where R , and R ; D is the number of digits of the modulus P, and E is the number of digits of the modulus N, and D + 4 < E Entry name Entry address 0x00c(r2)
Embedded Routine Performance 7.6 Embedded Routine Performance The formulas listed in Table 7-26 show the run times for the PKHA embedded routines. Many of these are data dependent, which result in variable length run times. For these cases, the average run-time is noted. Table 7-26.
Page 86
Embedded Routine Performance 7-36 MPC180E Security Processor User’s Manual PRELIMINARY—SUBJECT TO CHANGE WITHOUT NOTICE...
Chapter 8 Random Number Generator This chapter explains how to program the RNG (Random Number Generator) to create a random number. 8.1 Overview The RNG is a digital integrated circuit capable of generating 32-bit random numbers. It is designed to comply with the FIPS-140 standard for randomness and non-determinism. A linear feedback shift register (LSFR) and cellular automata shift register (CASR) are operated in parallel to generate pseudo-random data.
Random Number Generator Registers repeating this process until the required number of 32-bit random words have been generated. Reads by the EBI can be repeated as soon as the ORDY bit is driven high again. The process is outlined as follows: •...
Chapter 9 Hardware Parameters This chapter provides the AC and DC electrical specifications as well as the thermal characteristics of the MPC180E. 9.1 Absolute Maximum Ratings Table 9-1 lists ranges of basic parameters. Table 9-1. Absolute Maximum Ratings Characteristic Name Absolute Min Absolute Max Unit...
AC/DC Electrical Characteristics 9.4 AC/DC Electrical Characteristics Table 9-4 shows DC electrical characteristics. Unless specified otherwise, conditions are as follows: = 0 V and T C to 120 ° ° Table 9-4. DC Electrical Characteristics Characteristic Name Units Power supply voltage—Core 1.65 —...
Data Transfer Table 9-6 shows the AC timing specifications for data signals. Table 9-6. AC Timing Specifications—Signal Pins Condition Name Units Address setup time to MCLK rise — Address hold time from MCLK rise — Data (write) setup time to MCLK rise —...
Exception Timing 9.7 Exception Timing An interrupt occurs when MPC180E asserts IRQ, indicating to the microprocessor that an event worth monitoring has happened. After the interrupt is received and processed by the microprocessor, the processor may read CSTAT to determine which execution unit caused the interrupt.
Case Outline Package Dimensions 9.8 Case Outline Package Dimensions 0.2 T L–M 0.2 T L–M 4X 25 TIPS X = L, M OR N VIEW Y BASE METAL VIEW Y Ç Ç Ç É É Ç Ç Ç É É PLATING 0.08 L–M...
Page 96
Bulk Data Encryption. The process of converting plaintext to ciphertext. Refers to encryption operations other than key exchange and hashing. Burst. A multiple-word data transfer whose total size is typically equal to a cache block. In MPC860 mode, four words. In MPC8260 mode, eight words.
Page 97
3DES. Triple DES. Encryption operation which permutes 64 bit blocks of plaintext with 64 bit keys three times. Triple DES is exponentially stronger than single DES encryption. Diffie-Hellman key exchange. A key exchange protocol allowing the participants to agree on a key over an insecure channel. Digest.
Page 98
FIFO. First in, first out. A buffer memory which supports in-order processing of data. FIPS. Federal Information Protection Standards. Fraction. In the binary representation of a floating-point number, the field of the significand that lies to the right of its implied binary point. Hashing.
Page 99
Latency. The number of clock cycles necessary to execute an instruction and make ready the results of that execution for a subsequent instruction. Least-significant bit (lsb). The bit of least value in an address, register, data element, or instruction encoding. Least-significant byte (LSB).
Page 100
Most-significant bit (msb). The highest-order bit in an address, registers, data element, or instruction encoding. Most-significant byte (MSB). The highest-order byte in an address, registers, data element, or instruction encoding. NIST. National Institute of Standards. U.S. Government Agency responsible for defining and certifying standards. Padding.
Page 101
RC4 algorithm. Byte oriented, therefore a byte of plaintext is encrypted with a permuted substitution box (S-box) key to produce a byte of ciphertext. The key is variable length and supports in byte increments key lengths from 40 bits to 128 bits, providing a wide range of strengths.
Page 102
SSL Security socket layer protocol. Invented by Netscape Communications, Inc. This protocol provides end-to-end encryption of application layer network traffic. Stall. An occurrence when an encryption operation cannot proceed to the next stage. Stream cipher. A secret-key encryption algorithm that operates on a bit at a time.
Page 103
XOR. A binary bitwise operator yielding the result one if the two values are different and zero otherwise. XOR is an abbreviation for exclusive- Glossary Glossary-9 PRELIMINARY—SUBJECT TO CHANGE WITHOUT NOTICE...
Page 104
Glossary-10 MPC180E Security Processor User’s Manual PRELIMINARY—SUBJECT TO CHANGE WITHOUT NOTICE...
Page 105
INDEX AC timing specifications, 9-3 AC/DC characteristics, 9-3 operation summary, 3–12 address map, 3–2 EBI (External Bus Interface), 3–4 AFEU (Arc Four Execution Unit), 1-5, 5–1 EBI seeExternal Bus Interface, 3–5 AFEU Control Register, 5–3 ECC routines AFEU Status Register, 5–2 m Add (Subtract), 7–22 Arc Four Execution Unit, 5–1 Montgomery...
Page 107
INDEX Random Number Generator status, 8–2 S-box I/J Register, 5–5 register S-box0 – S-box63 Memory Registers, 5–5 DEU Control, 4–2 SE, 2-3 registers signal description AFEU BURST, 2-1 Cipher, 5–4 CS, 2-1 clear interrupt, 5–3 R/W, 2-1 control, 5–3 TS, 2-1 key length, 5–3 signal descriptions, 2-1–2-3 key registers, 5–3...
Page 108
INDEX Index-4 MPC180E Security Processor User’s Manual PRELIMINARY—SUBJECT TO CHANGE WITHOUT NOTICE...
Page 109
Overview Signal Descriptions External Bus Interface and Memory Map Data Encryption Standard Execution Unit Arc Four Execution Unit Message Digest Execution Unit Public Key Execution Unit Random Number Generator Hardware Parameters Glossary of Terms and Abbreviations...
Page 110
Overview Signal Descriptions External Bus Interface and Memory Map Data Encryption Standard Execution Unit Arc Four Execution Unit Message Digest Execution Unit Public Key Execution Unit Random Number Generator Hardware Parameters Glossary of Terms and Abbreviations...