|
S/390 CMOS Cryptographic Coprocessor Architecture: Overview and design considerations
by P. C. Yeh and R. M. Smith, Sr.
This paper describes the design objectives and presents an overview of the design for the IBM S/390® CMOS Cryptographic Coprocessor, also known as the S/390 cryptographic module (SCM). The SCM is fully compatible with the earlier S/390 cryptographic module, ICRF (Integrated Cryptographic Facility), and has been certified by the National Institute of Standards and Technology at the highest level of security qualification. The principal features and unique characteristics of the SCM are summarized in the context of the architecture design.
Introduction
With the explosive growth of Internet applications, demand for information protection has become prevalent. Lack of network security has been recognized by many as the single most significant barrier to the progress of e-business. Cryptography is an effective means of protecting information and authenticating users, and is commonly used to improve network security. Furthermore, hardware cryptographic devices are often used for higher security and better performance. It is well recognized in the security community that hardware cryptographic devices provide additional security because of hardware-enforced protection and control of security-related data.
The S/390* CMOS cryptographic coprocessor, also known as the SCM (S/390 cryptographic module), provides high performance, reliability, and security for various applications. The SCM is fully compatible with the Integrated Cryptographic Facility (ICRF) [1, 2], a previous S/390 cryptographic module, and the National Institute of Standards and Technology (NIST) has granted it an overall Level 4, the highest security level of Federal Information Processing Standards (FIPS) 140-1 certification [3].
The SCM is available on G3 and subsequent S/390 enterprise servers, and supports both DES-based and public-key applications, including data encryption using DES or triple-DES (TDES), message-authentication-code (MAC) processing using one or more DES keys, personal- identification-number (PIN) processing, DES-key management, 1024-bit RSA and Digital Signature Standard (DSS) [4] digital signature, 1024-bit DiffieHellman (DH) key-agreement protocol, and private- key management.
This paper first outlines the design objectives and the intended operating environments; an overview of the SCM is then presented. Main features and unique characteristics of the SCM are summarized, and a detailed discussion of the pseudorandom number generator (PRNG) design is provided. Major considerations that shaped the SCM design are discussed, and the rationale behind some of the decisions is also described.
Note that the FIPS 140-1 Level 4 certification of the SCM specifically excludes the PRNG, not because of any known weakness in the PRNG but because it does not implement a FIPS-approved algorithm. The PRNG was designed before the FIPS-approved algorithms were selected. To clearly explain and justify the PRNG design in light of this exclusion, the section on the PRNG includes more detail than the rest of the paper.
The SCM provides a rich set of functions and a wide range of controls to support customers with various security requirements, ranging from the highest, for the very sophisticated security-conscious customer, to the simplest. The SCM can be configured to any desired level of security by establishing proper controls and disabling unused functions through a secure workstation. Note also that not every function mentioned in this paper is currently supported by the software and the secure workstation, and the terminology used in this paper is not necessarily consistent with that of other IBM manuals or publications.
Design objectives
In addition to meeting the general requirements of high performance and reliability for enterprise servers, the SCM is designed to achieve the following specific objectives as well:
To be a follow-on product to ICRF. This objective requires that the SCM implement all ICRF application functions so that existing applications can run with no changes.
To enhance the DES-based functions. Several functions provided in ICRF needed improvement. Among these were better control of the DES key export function, more flexibility of control vector usage [1], and support of TDES for data encryption and MAC using multiple DES keys.
To support PKA (public-key algorithm) applications. To support applications for e-business, it is essential to support commonly used PKAs and newly emerging standards, including RSA, DSS, and DH.
To improve manual operations for high-security users. With ICRF, control of the cryptographic module and installing of initial keys are manual operations which must be performed at a control panel attached to the server. In most installations, the server is placed in an area (sometimes referred to as a “darkroom”) which is kept secure and is not easily accessible to security officers. In such installations, it is desirable to provide the “manual” functions by means of a remote capability, rather than to require security officers to enter the darkroom area.
To facilitate the establishment of mirror images for high-security users. In many enterprises, multiple systems are established with a mirror image for backup or performance. For ICRF, this requires the same manual operations to be performed repeatedly. This problem creates operational complexity and increases cost for managing cryptographic systems, particularly for enterprises that have multiple geographically separated systems. A solution that allows security officers to create mirror images at a remote site with security is desirable.
To simplify manual key entry for normal users. Many customers do not require the maximum security provided by the SCM, and have requested a simple means to install initial keys.
To be the most secure cryptographic product commercially available. In many installations, S/390 enterprise servers are used to perform critical operations and high-value transactions that require extremely high security. This requires both cryptographic strength and physical security. Cryptographic strength is provided by using the most secure cryptographic algorithms currently known. The goal for physical security was to comply with the implementation security requirements for Level 4 of FIPS 140-1.
To be exportable. Cryptographic devices are export-controlled. ICRF is an optional feature and is included only in machines for entitled customers. This solves the export problem for ICRF. For the SCM on CMOS machines, however, the cost of the cryptographic module is smaller than the cost to provide additional part numbers, and it is cheaper to include the SCM as a standard part of all CMOS machines. This requires a means of enforcing the export regulations in hardware so that all machines are exportable.
Operating environments
The SCM is designed for IBM S/390 Parallel Enterprise Server* computers. It is initialized, customized, and configured by customer security officers for use by the control program. Applications must invoke the control program to obtain cryptographic services. The control program issues cryptographic functions on behalf of applications. Security-relevant cryptographic functions used by the control program can be partially or entirely disabled by security officers. This allows security officers to configure the SCM for various control-program authorities, including any combination of SCM use and SCM update. With regard to manual operations, the SCM is designed to be used in three different environments: interactive secure workstation, control-program protected, and “load and lock.”
• Interactive secure workstation environment
The primary thrust of the SCM design is a direct follow-on to the ICRF, but the manual controls of the ICRF are replaced with a secure workstation. In this environment, security officers can monitor the status of the SCM; enable and disable a particular group of functions, a cryptographic domain, or the entire module; and perform key entry concurrently with other operations—all from a remote location with complete security and integrity. In this case, security and integrity are enforced by the SCM. Additionally, multiple control is provided for performance of critical functions. In some documentation, this is called the TKE (trusted key entry) environment.
In this environment, the secure workstation becomes a logical extension to the SCM and can be used in conjunction with it to provide the optimum balance between performance and flexibility by implementing the high-usage cryptographic operations within the SCM while permitting the less frequent operations to be performed in the associated secure workstations. Thus, the secure workstation may be used in the management of DES and private keys, including generation, split-knowledge splitting and restoration, distribution, preservation, and migration of private keys from smaller servers.
• Control-program-protected environment
For customers who require a simple means for cryptographic system management, a set of clear master-key entry functions is provided to allow security officers to install the master keys without requiring a secure workstation. In this case, security and integrity are enforced by the control program. Each key part is entered “in the clear” into the SCM through the control program. The clear master-key entry functions can be disabled by setting proper controls in the SCM. Separate controls are provided for each of the three master-key registers in each of the sixteen domains. In some documentation, this is called the non-TKE environment.
• Load and lock environment
The SCM provides the security-conscious customer who has limited resources with a simple mechanism to protect the SCM. Again, no secure workstation is required in this environment. The customer can perform customization of the SCM as a special step by physically securing the machine room, loading the master keys with the clear master-key entry functions, and then locking the SCM by properly setting up controls in SCM so that these functions are disabled and cannot be re-enabled without an SCM reset, which clears all customer information.
• PR/SM environment
Under PR/SM,1 the SCM is shared among systems in different partitions, running simultaneously on the same machine. Inside the SCM, special hardware is provided to support sixteen independent cryptographic domains in order to achieve high protection and isolation among partitions. Outside the SCM, PR/SM controls are provided so that, for a given partition, the cryptographic capability may be totally disabled, or may be entirely or partially enabled by the PR/SM operator. Critical functions that reset the SCM or change the SCM contents can also be disabled by the operator.
SCM overview
• Performance and availability
For performance and availability, up to two SCMs are provided in each machine. Each SCM is physically attached to a different CPU (central processing unit).
Synchronous, asynchronous, and concurrent operations
A cryptographic operation may be synchronous or asynchronous with respect to the requesting CPU. Functions requiring a significant amount of processing time are performed asynchronously with respect to the requesting CPU in order to avoid tying up the CPU. Typically, these functions use public-key algorithms or other complex algorithms. All other functions are performed synchronously with respect to the CPU to avoid the overhead of asynchronous functions. Synchronous functions can be requested only by CPUs that have an SCM attached. To handle asynchronous execution, special hardware queues are provided and shared by all CPUs. New instructions are provided to permit all CPUs to send asynchronous functions (called requests) to the SCM by means of the hardware queues. The CPU attached to the SCM sends these requests from the hardware queues to the SCM and places the results (called replies) back in these queues. Except for a small time period required for initiation and completion, the asynchronous operations are performed without interfering with synchronous operations.
In the simplest preliminary design, while the SCM was performing asynchronous functions, it would have appeared busy to any synchronous functions. However, it is desirable to permit concurrent execution of synchronous and asynchronous functions to avoid blocking effects. To permit this type of overlap, the SCM includes two processors, a synchronous processor and an asynchronous processor.
Note that all ICRF functions are synchronous. It would have been possible to change these original functions to use the hardware queues, thus making them available to all CPUs, but this was not done for the SCM because it would have resulted in a substantial incompatibility, and the performance benefit would have been marginal.
• Function and control
The SCM provides two types of functions, PKSC (public- key security control) and normal. PKSC functions are usually issued by security officers at secure workstations; normal SCM functions are issued by the control program.
Hardware-enforced authentication and authorization are provided for security-relevant PKSC functions. Identification is achieved by means of RSA digital signature. These signature-controlled PKSC functions are further divided into single-signature or multiple-signature functions. The latter allow multiple control of the function performance. A set of PKSC authorization masks in the SCM provides control at a finer granularity than the function level. Several query functions, which read out SCM status, are the only PKSC functions that do not require authentication and authorization to be performed by the SCM.
Security-relevant normal SCM functions can be disabled by means of a profile register in SCM. The control program can issue one of these functions only if the function is enabled, as specified in the profile register. The contents of the profile register can be changed only by authorized security officers using PKSC functions. The following normal SCM functions have no reliance on any secret data, are not subject to profile control, and are always available:
Generate hash.
Verify DSS digital signature.
Modular exponentiation.
• Cryptographic strength
The lifespan of S/390 enterprise servers can be more than ten years. The security provided by the SCM must not only meet today's highest requirement but also accommodate future advances in technology.
A design guideline to pursue the highest security possible was developed, and a minimum security level was established. Since the DES master key (DMK), carried over from ICRF, was 128 bits, the minimum security level was established as a work factor of 2128. It was also a goal that no new portion added should be the weakest link. Thus, all new secret values maintained inside the SCM had to be at least 128 bits.
• Physical security
Strong cryptographic algorithms alone do not provide overall system security; physical security is also required, but the effectiveness of such a design cannot be easily validated by customers. ICRF was designed to meet the physical security requirements of FIPS 1027 [5], the only standard available at the time. In the past, many customers had suggested that the physical security of ICRF be evaluated by independent laboratories. This was not done because of a lack of standardized evaluation criteria and processes.
During the design of the SCM infrastructure (19921994), FIPS 140-1 was proposed to replace FIPS 1027 and to include a validation process. Even though the basic design of the SCM was completed before FIPS 140-1 was adopted, the goal was to comply with the highest security level of the standard.
The SCM is a single-chip cryptographic module, and the chip itself forms a physically secure boundary. The tamper-resistant design protects security-related information in the SCM against various physical intrusions and probing. When the SCM is removed from the machine, all customer information inside the module is automatically erased.
• Secure boundary
The design prevents security-related information maintained inside the SCM from being compromised through subversion of any system component outside the SCM, including the control program, CPU microcode, and system diagnostic tools. All cryptographic operations are performed entirely by hardwired circuitry inside the secure boundary. The CPU microcode, which interprets instructions, does not perform any security-relevant cryptographic operations. No intermediate value of any cryptographic operation ever leaves the boundary. Secret data maintained within the boundary never leaves the boundary unencrypted.
• Nonvolatility
The SCM has two power sources, a primary power and a backup battery. When the primary power is turned off, customer security-related data is maintained by the backup battery. When the primary power is turned back on, the SCM resumes the state that existed before the primary was turned off.
• Module structure
Figure 1 visually summarizes the major portions of the SCM. The SCM implements special hardware for DES, PIN, SHA-1 [6], PRNG, and modular exponentiation. In addition to its use by the more complex RSA, DSS, and DH operations, the modular exponentiation operation is also provided as an uncontrolled normal SCM function. The modulus size for the modular exponentiation, RSA, DSS, and DH functions can be up to 1024 bits. The SCM includes registers for maintaining customer security-related data, including master keys, identification data, and authorization controls.
Figure 1
Burned-in values
As part of the manufacturing process, each SCM is assigned a 128-bit unique cryptographic module ID (CMID). A unique 1024-bit RSA key pair is also generated for each SCM; the RSA key pair includes a 1024-bit cryptographic module secret exponent (CMSE) and a 1024-bit cryptographic module public modulus (CMPM). During the manufacturing process, the CMID and CMSE are burned into the SCM. Because of the technology used, there is not sufficient room on the SCM for the entire CMPM as a burned-in value, so a 128-bit MDC-4 hash value [7] of the CMPM is burned in.
Initialization and export controls
During the initialization process, a cryptographic configuration control (CCC) and the 1024-bit CMPM are loaded into the SCM. The CCC is used to enforce the availability of algorithms and key lengths controlled by U.S. export regulations. The burned-in MDC-4 hash value is used by the SCM to verify the public modulus loaded during the initialization process.
PKSC registers
A 128-bit cryptographic module signature sequence number (CMSSN) register is included in the SCM. The CMSSN is included in each message signed by the SCM and is incremented each time it is used. It provides an audit trail of all activity performed on the SCM.
Each security officer has a unique 1024-bit RSA key pair assigned. The SCM provides 16 security officer identification (SOI) registers; each holds a security officer public modulus (SOPM) and a 128-bit transaction sequence number (TSN) register. The TSN in the request message eliminates the possibility of replaying a previously signed PKSC request.
To facilitate support for multiple-signature PKSC functions, the SCM provides a signature requirement array (SRA). For each of these functions, the SRA specifies the number of signatures required and the security officers who are authorized to sign. A requested multiple-signature PKSC function is placed in a pending-request register (PRR) until all requirements in the SRA have been satisfied.
Four PKSC authorization masks in the SCM control the use and update of each SOI register and the effects of certain PKSC functions on domains.
Transport registers
Secret information entering or leaving the SCM by means of PKSC functions is protected using the transport registers. The transport mechanism is based on the DiffieHellman (DH) protocol. All DH registers are 1024 bits long and include a modulus (DHm), a generator (DHg), a secret exponent (DHx), and the public result of the exponentiation (DHf).
The DH protocol results in two secret transport keys: a 128-bit basic transport key (BTK) and a 320-bit public transport key (PTK). The use of two transport keys provides better separation between DES-based and PKA-based operations and also reduces the problems involved in making the SCM exportable.
Several transport operations involve extracting a master key, or a value encrypted under a master key, and encrypting the value under a transport key. These operations use the encrypted basic extracted key (EBX) and encrypted public extracted key (EPX) registers to hold the results.
Domain-based registers
Domain-based registers are replicated for each of the sixteen cryptographic domains. Three master keys are used to protect application keys maintained outside the secure boundary. The DES master key (DMK) protects DES keys, the signature master key (SMK) protects private keys for digital signature, and the receive master key (RMK) protects private keys for importing DES keys. The use of three master keys provides maximum separation among the three types of applications. An auxiliary DES master key (AMK) is provided to facilitate dynamic update of the DES master key.
A profile register is used to enable or disable certain normal SCM functions. These functions are divided into groups. A bit in the profile register is assigned to each of these groups. A set of key part registers is provided to enhance the manual key entry process. This allows up to three key parts to be stored inside the SCM before the control program accepts them.
PKSC facility
The Integrated Cryptographic Facility (ICRF) implemented on bipolar machines included a manual control panel for use by security officers. The control panel, placed on the server, included a key entry device and manual switches. The manual switches, operated by brass keys, provided cryptographic controls with dual control. Secure communication between the control panel and the tamper-resistant cryptographic module was provided by means of a tamper-resistant cable. The cost of this approach, especially with regard to the secure cable, was significant in previous implementations, but with the CMOS technology used for SCM, the entire cryptographic module is implemented in a single chip, and it is not practical to attach a tamper-resistant cable to it.
With the SCM, the manual control panel and the key part entry device are provided by means of remote secure workstations, the secure cable is replaced by the use of public keys and digital signature over a public channel which does not require security or integrity, and the dual control function is enhanced by means of an N-of-M voting control mechanism.
The PKSC facility consists of a number of functions and registers for supporting module initialization, key entry, and module control from a remote site with extremely high security and integrity in the interactive secure workstation environment. This facility is a replacement of the tamper-resistant cable used in ICRF and provides a great enhancement for cryptographic system management.
• PKSC functions
PKSC functions are divided into the following categories: initialization, query, transport-key management, multiple signature, and co-sign. The initialization functions are used only during the initialization process and are not discussed here in detail. The query functions are provided to examine the SCM status, and query requests are not signature-controlled. All other PKSC functions are signature-controlled. The transport-key management functions are used to establish transport keys using the DiffieHellman protocol and are single-signature functions. The multiple-signature functions are provided for performing key entry, control setup, and other critical functions. Performance of multiple-signature functions is subject to control specified in the signature requirement array (SRA) and is achieved by digital signature using the co-sign function, which itself is a single-signature function.
• PKSC security
PKSC public audit
Public audit of the SCM status and the results of previous operations is provided by means of query functions. Query functions are provided to read all public information and the MDC-4 hash value for each secret value in the SCM. Queries can be requested without requiring any authentication and authorization to be performed by the SCM. This allows public audit of the SCM to be performed by anyone to ensure integrity at each step of all security-critical processes, such as installation of identification data, authorization controls, and master keys, and transfer of master keys or PKA objects.
PKSC authentication
Messages transmitted between the SCM and security officers at secure workstations using PKSC functions are authenticated for originator and integrity in both directions. This is achieved by using the RSA digital signature. A request message for a security-relevant PKSC function must be signed by the requesting security officer using the security officer's private key. The signature is verified by the SCM using the public modulus in the SOI register associated with the requesting security officer before the request is accepted. A security-relevant reply message for a PKSC request is signed by the SCM using the SCM's private key. The signature is verified by the receiving security officer. In either direction, an ISO-9796 signature [8] of an MDC-4 hash value of the message is used, and a fixed value of 65537 (216 + 1) is used as the public exponent for all SCMs and security officers.
Message freshness is also ensured in both directions to eliminate the possibility of replaying any signed message. Query requests include a 128-bit value called a query ID, which is returned in the signed reply. The security officer can ensure the freshness of reply messages by placing a fresh random number in each query request. Replay of signed requests is prevented by means of the TSN field in the SOI register. When the security officer public modulus is loaded into the SOI register, a fresh 128-bit random number is placed in the TSN field. After the SOI register has been loaded, the security officer must query the current TSN. The current TSN must be included in the signed portion of the request; if the TSN in the request does not match the TSN in the SOI register, the request is rejected by the SCM. Each time a signed request is accepted, the SCM increments the TSN for the requestor. Thus, each request must be different. Each signed reply contains the MDC-4 hash value of the original request in the signed portion of the reply message, thus ensuring freshness of the reply message.
When a multiple-signature request is pending in the PRR, the MDC-4 hash value of the entire original request, called a PR hash, is included in the PRR. Co-sign requests by security officers, who are authorized to supply additional signatures, must include this PR hash. This ensures that the pending request has not been changed between the time the security officer queries the PRR and the time the request is co-signed.
Certain operations must be performed using multiple requests. For example, several query functions must be performed to obtain a complete report of the SCM status. As another example, multiple transport-key management functions must be performed to achieve the DiffieHellman key agreement protocol. To solve the atomicity problems, the cryptographic module signature sequence number (CMSSN) is used. This number is set to a random number during the initialization process. Each time, after a reply message is signed by the SCM, the CMSSN is incremented. Since performance of any PKSC function that changes the SCM status provides a signed reply message, consecutive CMSSNs returned by sequential PKSC executions ensure that no such intervening function execution has occurred.
PKSC authorization
A security officer can request signature-controlled functions only if the public modulus for that security officer is in an SOI register enabled for verifying the signature of a signed request. After the signature of the request is verified by the SCM, a single-signature request can be performed immediately, but a multiple-signature request is placed in the PRR for further authorization checking using the SRA.
PKSC authorization masks
Four PKSC authorization masks provide additional control of certain PKSC functions. They are summarized as follows:
Security officer signature mask (ASM) This mask specifies which SOI registers can be used to verify the signature for a signed request. This allows activation and deactivation of security officers without requiring the corresponding SOI registers to be updated.
Security officer identification register change mask (ACM) This mask specifies which SOI registers can be updated by the load SOI register function. This provides a safeguard to prevent security officers of critical systems from being removed from the SCM.
Domain-extraction mask (DXM) This mask specifies the domains whose master keys are allowed to be transferred out by means of the extract-and-encrypt functions. This mask also controls whether PKA objects are allowed to be transferred in or out of a particular domain by means of the import PKA object and export PKA object functions.
Domain-change mask (DCM) This mask specifies the domains whose registers (master keys, key part registers, and profile register) can be changed by multiple-signature functions. This mask can be used to protect the domains for critical systems from being modified.
Handling of multiple-signature request
Performance of security-critical PKSC functions may require multiple signatures, as specified in SRA, from different security officers. Before all requirements specified in SRA are fulfilled, the request is placed in the pending-request register (PRR). Authorized security officers can provide needed signatures by using the co-sign function to sign the pending request.
The following summarizes the multiple-signature functions:
Load SOI register.
Load SRA and PKSC masks.
Zeroize domain.
Load profile register.
Create transport keys using DH.
Load DES key or DMK.
Load RMK or SMK.
Extract and encrypt DMK.
Extract and encrypt RMK or SMK.
Import PKA object.
Export PKA object.
Pending-request register
The pending-request register has the format shown in Figure 2. The signature summary mask (SSM) contains 16 bits and indicates which security officers have signed or co-signed the pending request. The pending-request text contains portions of the pending request. PR hash is the MDC-4 hash value of the entire original request and is included in each co-sign request for the pending request.
Figure 2
Signature requirement array
The signature requirements for multiple-signature functions are specified in the signature requirement array inside the SCM. There is one entry for each multiple-signature function. Figure 3 shows the entry format. Each entry contains three requirement fields, and each requirement field contains a 4-bit count and a 16-bit mask. The count specifies the number of signatures required, and the mask specifies the security officers whose signatures are counted. If the count is zero, the requirement is considered to be satisfied and the mask is ignored. All three requirements must be met before the pending function is performed. The three N-of-M controls can be used in several ways. The three requirement fields could be set up, for example, one for each of three departments and requiring a signature by at least one member of each department; or for two departments and a group of secure workstations, requiring a certain number of signatures from each department and at least two different workstations. In another use, a requirement field can be assigned to a group of automated audit and verification programs, each operating in the role of a notary, recording and then signing the function only if a predefined set of conditions have been met.
Figure 3
Note that, in an SRA entry, if a counter value is greater than the total number of authorized security officers specified in the corresponding mask, the requirement can never be satisfied, and the associated PKSC function is effectively disabled. In the load-and-lock environment, after master keys have been installed using the clear master-key entry functions, the profile register is set to disable these functions. To prevent these functions from subsequently being enabled, and to prevent master keys from being changed by any other means, the load-profile-register, load-SRA-and-PKSC-masks, load-DES-key-or-DMK, and load-RMK-or-SMK PKSC functions must also be disabled by means of specifying the SRA entries so that signature requirements for these four PKSC functions can never be satisfied. The only way to change master keys is to perform an SCM reset, which erases all customer data and places the SCM in the noninitialized state.
Performance of multiple-signature function
When a multiple-signature request is received, the signature is verified. If verification is successful, the requested function is loaded into the PRR, and the bit in the signature summary mask corresponding to the requestor is set to one. If all SRA requirements for the pending function are satisfied, the function is performed; if the requirements are not all satisfied, the request is left in the PRR waiting for additional signatures.
Each time a co-sign request is received, the SCM verifies the signature of the requestor and compares the hash value in the co-sign request with the one in the PRR. If verification is successful and the PR hash values match, the bit corresponding to the co-signing officer in the signature summary mask is set to one. When all signature requirements are satisfied, the pending function is performed.
PKSC secrecy
Secret information transmitted between the SCM and another external system using PKSC functions is protected under a transport key. Transport keys are derived by using the DiffieHellman key agreement protocol. The SCM includes a set of DH registers, two transport-key registers, and several transport-key management functions to support the protocol. This entire process can be audited by using query functions to ensure that the correct transport keys are established between intended systems by authorized security officers. The DH modulus size can be up to 1024 bits, and each execution of the DH key agreement protocol creates two transport keys: one contains 128 bits and the other, 320 bits.
When secret information is protected using the 128-bit basic transport key (BTK), the encryption uses the two-key TDES TECB mode of encryption [9]. When secret information is protected using the 320-bit public transport key (PTK), 192 bits of the PTK are used as three DES keys, and the remaining 128 bits are used as two 64-bit secret initial chaining values. Secret information is first encrypted using CBC-mode DES encryption [10] with the first key and the first secret initial chaining value. The result is then decrypted using CBC-mode DES decryption with the second key and the initial chaining value of zero. The result is again encrypted using CBC-mode DES encryption with the third key and the second secret initial chaining value. This process, sometimes referred to as inner chaining, is much stronger cryptographically than outer chaining, that is, the TDES TCBC mode of operation [9], which might be considered first in our particular use.
The RSA key pair of the SCM is used for authentication only; it is not used for protecting the secrecy of sensitive data. Thus, compromising the key does not itself cause significant exposure, since it is nontrivial to impersonate the SCM in a real-time environment. If the key were also used for encryption, compromising the key could compromise all secret values ever protected under the key.
Using the transport key established by the DiffieHellman key agreement protocol is a better approach, because 1) a different transport key can be used for each transaction and 2) the transport key can be erased when the transaction is complete.
PKA facility
The PKA facility provides functions to perform digital signature using RSA and DSS, and DES key distribution using RSA and DH. Private keys in operational form are called PKA objects and are protected under either of two master keys: The signature master key (SMK) protects private keys for digital signature, and the receive master key (RMK) protects private keys for importing DES keys.
Functions using the RMK and SMK are called RMK-based and SMK-based functions, respectively. These functions are profile-controlled, with separate profile bits assigned to RMK-based normal use, RMK-based PKA object import, SMK-based normal use, and SMK-based PKA object import.
Protection of private keys
Since keys used in most public-key algorithms cannot be changed frequently, their lifespan is usually much longer than that of DES keys. In addition to the use of 192-bit RMK and SMK, other special considerations were given to the PKA design to ensure that extremely high security is provided for private-key protection, so that maintaining them outside the SCM is not a weakness.
Information about a private key consists of both secret and public parts. The secret part is strongly encrypted when it is outside the SCM. Although the public part does not require encryption, its integrity affects the secrecy of the corresponding private key. To ensure that no data can be practically substituted or modified, information about a private key is entirely encapsulated. Encapsulation is achieved by placing all information about a private key in an object. The public part is stored in the clear; the secret part is encrypted. The SHA-1 secure hashing algorithm is performed on the clear value of both public and secret parts in the object. The hash value is stored as part of the object; it is generated by the SCM when the object is created and is used by the SCM to verify object integrity when the object is used.
|