Page 3 - Contents; Notices; iii
CCA Release 2.54 Contents Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii About This Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...
Page 4 - Chapter 4. Hashing and Digital Signatures; iv
CCA Release 2.54 Cryptographic_Resource_Deallocate (CSUACRD) . . . . . . . . . . . . . . . . 2-46 Key_Storage_Designate (CSUAKSD) . . . . . . . . . . . . . . . . . . . . . . . 2-48 Key_Storage_Initialization (CSNBKSI) . . . . . . . . . . . . . . . . . . . . . . . 2-50 Logon_Control (CSUALCT) . . . ....
Page 7 - vii
CCA Release 2.54 Aggregate Role Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . B-30 Access-Control-Point List . . . . . . . . . . . . . . . . . . . . . . . . . . . B-30 Default Role Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-31 Profile Structure . . . . . ....
Page 8 - viii
CCA Release 2.54 Triple-DES Ciphering Algorithms . . . . . . . . . . . . . . . . . . . . . . . . D-10 MAC Calculation Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-13 RSA Key-Pair Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-15 Access-Control Algor...
Page 9 - Figures; ix
CCA Release 2.54 Figures 1-1. CCA Security API, Access Layer, Cryptographic Engine . . . . . . . . 1-3 2-1. CCA Node, Access-Control, and Master-Key Management Verbs . . 2-1 2-2. Coprocessor-to-Coprocessor Master-Key Cloning . . . . . . . . . . . 2-16 2-3. Cryptographic_Facility_Query Information Re...
Page 11 - xi
CCA Release 2.54 C-1. Key Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-2 C-2. Key Type Default Control-Vector Values . . . . . . . . . . . . . . . . C-3 C-3. Control-Vector-Base Bit Map . . . . . . . . . . . . . . . . . . . . . . . C-5 C-4. Multiply-Enciphering and Multi...
Page 12 - xii
CCA Release 2.54 xii IBM 4758 CCA Basic Services, Release 2.54, February 2005
Page 13 - Trademarks; xiii
CCA Release 2.54 Notices References in this publication to IBM products, programs, or services do not implythat IBM intends to make these available in all countries in which IBM operates.Any reference to an IBM product, program, or service is not intended to state orimply that only IBM’s product, pr...
Page 14 - xiv
CCA Release 2.54 The following terms, denoted by a double asterisk (**) in this publication, are thetrademarks of other companies: Diebold Diebold Inc. Docutel Docutel MasterCard MasterCard International, Inc. Pentium Intel Corporation NCR National Cash Register Corporation RSA RSA Data Security, In...
Page 15 - About This Publication; CCA Basic Services; Revision History; xv
CCA Release 2.54 Revision History About This Publication The manual is intended for systems and applications analysts and applicationprogrammers who will evaluate or create programs for the IBM 4758 CommonCryptographic Architecture (CCA) support for the IBM 4758 Models 002 and 023technology used wit...
Page 16 - IBM 4758 CCA Basic Services; RESETBAT; IBM 4758 CCA Basic Services Reference and Guide; DALL; xvi
Revision History CCA Release 2.54 Eleventh Edition, April, 2004, CCA Support Program,Release 2.52 This revision to the February, 2004, edition of the IBM 4758 CCA Basic Services Reference and Guide for the IBM 4758 Models 002 and 023 , Release 2.52, replaces the February, 2004, Release 2.51 edition....
Page 17 - VISA; xvii
CCA Release 2.54 Revision History 1. Functions in support of EMV-compatible smart-cards. Support of the PIN Change/Unblock function described in the VISA Integrated Circuit Card Specification Manual , Section C.11 Support of the key-generation function used for secure messagingdescribed in the VISA ...
Page 18 - This; VISAPVV4; xviii
Revision History CCA Release 2.54 Eighth Edition, Revised, CCA Support Program, Release 2.41 This revised Release 2.41 manual incorporates additional information concerning access controls (see “CCA Access-Control” on page 2-2) and other minor editorialchanges. Eighth Edition, CCA Support Program, R...
Page 19 - The command names listed in this book, in the; xix
CCA Release 2.54 Revision History can create an application to to clone keys having any of the CSS, CSR, andSA keys longer than 1024-bits. See “Establishing Master Keys” on page 2-13. The PKA_Key_Token_Change verb now returns return code 0 and reason code0 if you request to update a key token that c...
Page 20 - xx
Revision History CCA Release 2.54 The PKA_Symmetric_Key_Export, PKA_Symmetric_Key_Generate, andPKA_Symmetric_Key_Import verbs are updated to include support of the“OAEP” key-wrapping technique as specified in the RSA PKCS#1-v2.0specification. The action associated with the derivation-counter in cont...
Page 21 - xxi
CCA Release 2.54 Fifth Edition, CCA Support Program, Release 2.30 The fifth edition of the IBM 4758 CCA Basic Services Reference and Guide Version 2.30 for the IBM 4758 Models 002 and 023 technology and describes the Common Cryptographic Architecture (CCA) application programming interface (API) tha...
Page 22 - Organization; This manual includes:; xxii
CCA Release 2.54 Organization This manual includes: Chapter 1, “Introduction to Programming for the IBM CCA” presents anintroduction to programming for the CCA application programming interface andproducts. Chapter 2, “CCA Node-Management and Access-Control” provides a basicexplanation of the access...
Page 23 - Related Publications; IBM 4758 PCI Cryptographic Coprocessor; IBM 4758 PCI Cryptographic Coprocessor Installation Manual; Custom Programming for the IBM 4758; OS/390 ICSF Programming Guide; Cryptography Publications; IBM Systems Journal; xxiii
CCA Release 2.54 Related Publications In addition to the manuals listed below, you may wish to refer to other CCA productpublications which may be of use with applications and systems you might developfor use with the IBM 4758 product. While there is substantial commonality in theAPI supported by th...
Page 24 - xxiv
CCA Release 2.54 IBM Journal of Research and Development Volume 38 Number 2, 1994 , G322-0191 USA Federal Information Processing Standard (FIPS): – Data Encryption Standard, 46-1-1988 – Secure Hash Algorithm, 180-1, May 31, 1994 – Cryptographic Module Security, 140-1. PKCS #1&v2.0: RSA Cryptogra...
Page 25 - Chapter 1. Introduction to Programming for the IBM CCA; What CCA Services Are Available with the IBM 4758
CCA Release 2.54 Chapter 1. Introduction to Programming for the IBM CCA This chapter introduces you to the IBM Common Cryptographic Architecture (CCA) application programming interface (API). This chapter explains some basicconcepts you use to obtain cryptographic and other services from the PCICryp...
Page 26 - An Overview of the CCA Environment
CCA Release 2.54 An Overview of the CCA Environment Figure 1-1 on page 1-3 provides a conceptual framework for positioning the CCA Security API . Application programs make procedure calls to the API to obtain cryptographic and related I/O services. The CCA API is designed so that a call canbe issued...
Page 27 - Figure; IBM 4758 PCI Cryptographic Coprocessor:
CCA Release 2.54 Figure 1-1. CCA Security API, Access Layer, Cryptographic Engine IBM 4758 PCI Cryptographic Coprocessor: The Coprocessor provides a secure programming and hardware environment wherein DES and RSA processes areperformed. The CCA support program enables applications to employ a set of...
Page 28 - or if the; zeroization
CCA Release 2.54 Applications employ the CCA security API to obtain services from and to managethe operation of a cryptographic system that meets CCA architecture specifications. Cryptographic Engine: The CCA architecture defines a cryptographic subsystem that contains a cryptographic engine operati...
Page 30 - How Application Programs Obtain Service
CCA Release 2.54 The Coprocessor supports multiple logons by different users from different hostprocesses. The Coprocessor also supports requests from multiple threads within asingle host process. A user is logged on and off by the Logon_Control verb. During logon, theLogon_Control verb establishes ...
Page 31 - Overlapped Processing; Host-side Key Caching; Coprocessor CCA Support Program Installation Manual
CCA Release 2.54 The security server and a directory server manage key storage . Applications can store locally used cryptographic keys in a key-storage facility. This is especiallyuseful for long-life keys. Keys stored in key storage are referenced through the useof a key label . Before deciding wh...
Page 32 - The Security API, Programming Fundamentals; verb; CSNB
CCA Release 2.54 The Security API, Programming Fundamentals You obtain CCA cryptographic services from the PCI Cryptographic Coprocessorthrough procedure calls to the CCA security application programming interface(API). Most of the services provided are considered an implementation of the IBMCommon ...
Page 33 - CSUA; Supported Environments:; Related Information
CCA Release 2.54 CSUA Cryptographic-node and hardware-control services. The last three letters in the entry-point name identify the specific service in a groupand are often the first letters of the principal words in the verb pseudonym. Supported Environments: At the start of each verb description i...
Page 34 - Variable Direction:; Input; big endian; String
CCA Release 2.54 each verb. For descriptions of these parameters, see the definitions with theindividual verbs. Variable Direction: The parameter descriptions use the following terms to identify the flow of information: Input The application program sends the variable to the verb (to thecalled routi...
Page 35 - Commonly Encountered Parameters; Parameters Common to All Verbs; The
CCA Release 2.54 Commonly Encountered Parameters Some parameters are common to all verbs, other parameters are used with manyof the verbs. This section describes several groups of these parameters: Parameters common to all verbs Rule_array and other keyword parameters Key_identifiers, key_labels, an...
Page 36 - Rule_Array and Other Keyword Parameters; The number of keywords in a rule array is specified by a; Key Tokens, Key Labels, and Key Identifiers; key token; Internal; master key; Operational
CCA Release 2.54 See Appendix A, “Return Codes and Reason Codes” for a detailed discussion ofreturn codes and a complete list of all return and reason codes. Value Meaning 0 Indicates normal completion; a few nonzero reason codes are associated withthis return code. 4 Indicates the verb processing c...
Page 37 - How the Verbs Are Organized in the Remainder of the Book; Required Commands
CCA Release 2.54 External A key that is either in the clear, or is encrypted (wrapped) by some key-encrypting key other than the master key. Generally, when a key is to be transported from place to place, or is to be held for asignificant period of time, it is required to encrypt the key with a tran...
Page 40 - roles; General User
CCA Release 2.54 CCA Access-Control This section describes these CCA access-control system topics: Understanding access control Role-based access control Initializing and managing the access-control system Logging on and logging off Protecting your transaction information. Understanding Access Contr...
Page 41 - Understanding Roles; Role ID; default role
CCA Release 2.54 A role-based system is more efficient than one in which the authority is assignedindividually for each user. In general, users can be segregated into just a fewdifferent categories of access rights. The use of roles allows the administrator todefine each of these categories just onc...
Page 42 - Understanding Profiles; user
CCA Release 2.54 Understanding Profiles Any user who needs to be authenticated to the Coprocessor must have a user profile . Users who only need the capabilities defined in the default role do not need a profile. A user profile defines a specific user to the CCA implementation. Each profilecontains ...
Page 43 - Initializing and Managing the Access-Control System; Access-Control Management and Initialization Verbs; CSUAACI; Permitting Changes to the Configuration; any
CCA Release 2.54 Initializing and Managing the Access-Control System Before you can use a Coprocessor with newly loaded or initialized CCA supportyou should initialize roles, profiles, and other data. You may also need to updatesome of these values from time to time. Access-control initialization an...
Page 44 - Configuration and Greenwich Mean Time (GMT); in the GMT time
CCA Release 2.54 Take care to ensure that you define roles that have the authority to performinitialization, including the RQ-TOKEN and RQ-REINT options of the Cryptographic_Facility_Control (CSUACFC) verb. You must also ensure there areactive profiles that use these roles. If you configure your Cop...
Page 45 - time difference between Eastern Standard Time and GMT is 5 hours.; Logging On and Logging Off; session
CCA Release 2.54 Notes: 1. During the portions of the year when Daylight Savings Time is not in effect, the time difference between Eastern Standard Time and GMT is 5 hours. 2. In the OS/400 environment, no translation is provided for Role and Profile names. The Coprocessor will initialize the defau...
Page 46 - Use of Logon Context Information; LOGON
CCA Release 2.54 logged on, and frees resources you were using in the host system and in theCoprocessor. Use of Logon Context Information The Logon_Control verb offers the capability to save and restore logon contextinformation through the GET-CNTX and PUT-CNTX rule-array keywords. The GET-CNTX keyw...
Page 47 - Protecting Your Transaction Information; secret; Controlling the Cryptographic Facility; extended
CCA Release 2.54 Protecting Your Transaction Information When you are logged on to the Coprocessor, the information transmitted to andfrom the CCA Coprocessor application is cryptographically protected using yoursession key. A message authentication code is used to ensure that the data wasnot altere...
Page 48 - rule-array keyword. Of course if the battery has not; Multi-Coprocessor Capability
CCA Release 2.54 used to establish the maximum strength of certain cryptographic functions, theenvironment identifier, and the maximum number of master-key-cloning shares,and the minimum number of shares needed to reconstitute a master key. Reset the intrusion latch. The intrusion latch circuit can ...
Page 49 - Multi-Coprocessor CCA Host Implementation; AIX and Windows multi-coprocessor implementation.
CCA Release 2.54 Cryptographic_Resource_Allocate verb will fail if a cryptographic resource isalready allocated. To determine the number of CCA Coprocessors installed in a machine, use theCryptographic_Facility_Query verb with the STATCARD rule-array keyword. Theverb returns the number of Coprocesso...
Page 50 - Understanding and Managing Master Keys; The CCA design supports three master-key registers:
CCA Release 2.54 the Coprocessor device driver. 5 The host code then polls each Coprocessor in turn to determine which ones contain the CCA application. As each Coprocessor isevaluated, the CCA host code associates the identifiers CRP01, CRP02, and soforth to the Coprocessors with CCA. 6 In the abse...
Page 51 - Symmetric and Asymmetric Master-Keys; and; Establishing Master Keys; Master keys are established in one of three ways:; Establishing a master key from clear information.; Individual “key-parts”
CCA Release 2.54 PKA_Key_Token_Change verbs). Whenever a working key is encrypted for localuse, it is encrypted using the current master-key. Symmetric and Asymmetric Master-Keys The CCA Version 2 implementation incorporates a second set of master-keyregisters. One register set is used to encrypt DE...
Page 52 - transport keys; “Cloning” a master key from one cryptographic engine to another; shares
CCA Release 2.54 The verb performs a one-way function on the key-of-interest, the result of whichis either returned or compared to a known correct result. Establishing a master key from an internally generated random value. The Master_Key_Process verb can be used to randomly generate a new master-ke...
Page 54 - Generate a retained RSA private key, the
CCA Release 2.54 ┌──────────────────────────────────┐ │Share─Administration Control Point│ 3. │ │ │ │ │ CERT{SA}(SA) H(CERT{SA}(SA)) │ │ ───────┬──── ───┬─────────── │ │ │ │ │ └─────────│─────────│──────────────┘ │ │ ┌────────────────────────┐ │ │ ┌────────────────────────┐ │CCA Cryptographic Engine...
Page 55 - Master-Key Considerations with Multiple CCA Coprocessors; IBM recommends loading all
CCA Release 2.54 7. In the target node, generate a retained key usable for master-key administration, the Coprocessor Share Receiving (CSR) key, and have this key certified by the SA key. 8. Once a master key has been established in the source node, perhaps through random master-key generation, obta...
Page 56 - CCA Host Code Design:; SET; Situations to Consider:
CCA Release 2.54 AIX and Windows Multi-Coprocessor Master-Key Support: It is a general recommendation that all of the CCA Coprocessors within the system use the samecurrent and old master keys. When setting a new master-key, it is essential that allof the changes are performed by a single program ru...
Page 59 - Restrictions; Parameters
CCA Release 2.54 Access_Control_Initialization Access_Control_Initialization (CSUAACI) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The Access_Control_Initialization verb is used to initialize or update parametersand tables for the Access-Control system in the 4758 Cryptograp...
Page 61 - added; Initialize the access-control system roles and profiles (offset X; CHGEXPDT; Change the authentication data in a user profile (offset X
CCA Release 2.54 Access_Control_Initialization verb_data_length_2 The verb_data_length_2 parameter is a pointer to an integer variable containingthe number of bytes of data in the verb_data_2 variable. verb_data_2 The verb_data_2 parameter is a pointer to a string variable containing dataused by the...
Page 63 - Function to perform
CCA Release 2.54 Access_Control_Maintenance name The name parameter is a pointer to a string variable containing the name of a role or user profile which is the target of the request. This field is used differently depending on the function being performed. Keyword Meaning Function to perform (one r...
Page 66 - Lower
Access_Control_Maintenance CCA Release 2.54 Rule-ArrayKeyword Contents of output_data Variable GET-ROLE The field contains the non-secret portion of the selected role.This includes the following data, in the order listed. Role version Two bytes containing integer values, where the first byte contain...
Page 67 - Read public access-control information (offset X; LSTPROFS; keywords
CCA Release 2.54 Access_Control_Maintenance Required Commands The Access_Control_Maintenance verb requires the following commands to beenabled in the hardware: Read public access-control information (offset X ' 0116 ' ) with the LSTPROFS , LSTROLES , GET-PROF , GET-ROLE , and Q-NUM-RP keywords Delet...
Page 68 - Reinitialize the CCA application in the Coprocessor.; space character; Format
Cryptographic_Facility_Control CCA Release 2.54 Cryptographic_Facility_Control (CSUACFC) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X Use the Cryptographic_Facility_Control verb to perform the following services: Reinitialize the CCA application in the Coprocessor. Set the da...
Page 69 - Keyword; Coprocessor to use; ADAPTER1; Control function to perform; SETCLOCK
CCA Release 2.54 Cryptographic_Facility_Control Parameters For the definitions of the return_code , reason_code , exit_data_length , and exit_data parameters, see “Parameters Common to All Verbs” on page 1-11. rule_array_count The rule_array_count parameter is a pointer to an integer variable contai...
Page 70 - environment identifier
Cryptographic_Facility_Control CCA Release 2.54 verb_data_length The verb_data_length parameter is a pointer to an integer variable containing the number of bytes of data in the verb_data variable. On input, specify thesize of the variable. The verb updates the variable with the size of the returned...
Page 72 - You are advised to allocate a minimum of 30 rule-array
Cryptographic_Facility_Query CCA Release 2.54 Cryptographic_Facility_Query (CSUACFQ) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The Cryptographic_Facility_Query verb is used to retrieve information about theCryptographic Coprocessor and the CCA application program in that C...
Page 73 - Adapter to use
CCA Release 2.54 Cryptographic_Facility_Query On output, the verb sets the variable to the number of rule-array elements itreturns to the application program. Note: With this verb, the number of returned rule-array elements can exceed the rule-array count that you specified on input. Be sure that yo...
Page 74 - Element; Output rule-array for option STATCCA
Cryptographic_Facility_Query CCA Release 2.54 Figure 2-3 (Page 1 of 7). Cryptographic_Facility_Query Information Returned in the Rule Array Element Number Name Description Output rule-array for option STATCCA 1 NMK Status State of the New Master-Key register: One means the register is clear Two mean...
Page 75 - Output rule-array for option STATCCAE
CCA Release 2.54 Cryptographic_Facility_Query Figure 2-3 (Page 2 of 7). Cryptographic_Facility_Query Information Returned in the Rule Array Element Number Name Description Output rule-array for option STATCCAE 1 Symmetric NMKStatus State of the Symmetric New Master-Keyregister: One means the registe...
Page 76 - Output rule-array for option STATCARD; binary; value where the
Cryptographic_Facility_Query CCA Release 2.54 Figure 2-3 (Page 3 of 7). Cryptographic_Facility_Query Information Returned in the Rule Array Element Number Name Description Output rule-array for option STATCARD 1 Number of InstalledAdapters The number of active CryptographicCoprocessors installed in ...
Page 77 - Output rule-array for option STATDIAG
CCA Release 2.54 Cryptographic_Facility_Query Figure 2-3 (Page 4 of 7). Cryptographic_Facility_Query Information Returned in the Rule Array Element Number Name Description 12 Flash Memory Size A numeric character string containing the sizeof the flash EPROM memory on theCoprocessor, in 64-kilobyte i...
Page 78 - One means the temperature is acceptable
Cryptographic_Facility_Query CCA Release 2.54 Figure 2-3 (Page 5 of 7). Cryptographic_Facility_Query Information Returned in the Rule Array Element Number Name Description 5 Low VoltageDetected A numeric character string containing a value toindicate whether a power supply voltage wasbelow the minim...
Page 79 - Output rule-array for option STATEID
CCA Release 2.54 Cryptographic_Facility_Query Figure 2-3 (Page 6 of 7). Cryptographic_Facility_Query Information Returned in the Rule Array Element Number Name Description Output rule-array for option STATEID (Environment Identifier) 1,2 EID The two elements when concatenated providethe 16-byte EID ...
Page 80 - Output rule-array for option STATMOFN
Cryptographic_Facility_Query CCA Release 2.54 verb_data_length The verb_data_length parameter is a pointer to an integer variable containing the number of bytes of data in the verb_data variable. verb_data The verb_data parameter is a pointer to a string variable containing data sent to the Coproces...
Page 83 - Cryptographic resource; DEVICE
CCA Release 2.54 Cryptographic_Resource_Allocate resource_name_length The resource_name_length parameter is a pointer to an integer variable containing the number of bytes of data in the resource_name variable. Thelength must be within the range of 1 to 64. resource_name The resource_name parameter ...
Page 87 - None
CCA Release 2.54 Key_Storage_Designate key_storage_file_name_length The key_storage_file_name_length parameter is a pointer to an integer variable containing the number of bytes of data in the key_storage_file_name variable.The length must be within the range of 1 to 64. key_storage_file_name The ke...
Page 88 - IBM
Key_Storage_Initialization CCA Release 2.54 Key_Storage_Initialization (CSNBKSI) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The Key_Storage_Initialization verb initializes a key-storage file using the currentsymmetric or asymmetric master-key. The initialized key storage wi...
Page 89 - Key-storage selection; DES
CCA Release 2.54 Key_Storage_Initialization key_storage_file_name_length The key_storage_file_name_length parameter is a pointer to an integer variable containing the number of bytes of data in the key_storage_file_name variable.The length must be within the range of 1 to 64. key_storage_file_name T...
Page 91 - Keywords used to log on
CCA Release 2.54 Logon_Control user_id The user_id parameter is a pointer to a string variable containing the ID string which identifies the user to the system. The user ID must be exactly eightcharacters in length. Shorter user IDs should be padded on the right withspace characters. The user_id par...
Page 92 - Contents of; ) to be enabled in the hardware for use with the; FORCE
Logon_Control CCA Release 2.54 On input, this field contains the length (in bytes) of the auth_data variable.When no usage is defined for the auth_data parameter, set the length variable to zero. On output, this field contains the number of bytes of data returned in theauth_data variable. auth_data ...
Page 93 - OBTAIN
CCA Release 2.54 Master_Key_Distribution Master_Key_Distribution (CSUAMKD) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The Master_Key_Distribution verb is used to perform these operations related tothe distribution of shares of the master key: Generate and distribute a share...
Page 94 - CLONE
Master_Key_Distribution CCA Release 2.54 – The private_key_name of the Coprocessor-retained key used to decrypt the clone_info_encrypting_key. This key must have the CLONE attribute set at the time of key generation. – The certifying_key_name of the public key already registered in the Coprocessor u...
Page 95 - Operation; Receive a master-key share and other cloning information.
CCA Release 2.54 Master_Key_Distribution Parameters For the definitions of the return_code , reason_code , exit_data_length , and exit_data parameters, see “Parameters Common to All Verbs” on page 1-11. rule_array_count The rule_array_count parameter is a pointer to an integer variable containing th...
Page 97 - new
CCA Release 2.54 Master_Key_Process Master_Key_Process (CSNBMKP) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The Master_Key_Process verb operates on the three master-key registers: new,current, and old. Use the verb to: Clear the new and clear the old master-key registers Ge...
Page 98 - Cryptographic component; ADAPTER; Operate with the symmetric master-key registers.
Master_Key_Process CCA Release 2.54 The master-key verification pattern (MKVP) of the new master-key is compared against the MKVP of the current and the old master-keys. If they are the same, the service fails with return code 8, reason code 704. If any of the eight-byte parts of the new master-key ...
Page 102 - Test selection; KAT
Random_Number_Tests CCA Release 2.54 Random_Number_Tests (CSUARNT) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X The Random_Number_Tests verb invokes the USA NIST FIPS PUB 140-1specified cryptographic operational tests. These tests, selected by a rule-arraykeyword, consist of: F...
Page 106 - Key Generation; When generating the key-pair you must determine:
CCA Release 2.54 ────────────┬───────────────── ┌──────────────────┐ │PKA_Key_Token_Build├┐ └┬──────────────────┘│┌─────────┐ └──────┬───────┬────┘│ │ │ │(Skeleton) │ ┌─────────────┐ │ ┌───────────────┐ │ │PKA_Key_Import├┐ │ │PKA_Key_Generate├┐ │ └┬─────────────┘│ │ └┬───────────────┘│ │ └─────┬────...
Page 107 - RETAIN; keyword on the
CCA Release 2.54 The PKA_Key_Generate verb either retains the generated private key within theCoprocessor, or the verb outputs the generated private key in one of three forms soyou can control where the private key is deployed. You can request that the generated private key be retained within the se...
Page 108 - Key Import
CCA Release 2.54 restricted key usage. These systems can determine if a requesting process hasthe right to use the particular key name that is cryptographicly bound to the privatekey. You specify such a key name when you build the skeleton_key_token in the PKA_Key_Token_Build verb. For RSA keys, you...
Page 109 - key name
CCA Release 2.54 You provide or identify the operational transport key (key-encrypting key) and theencrypted private key with its associated public key to the import service. Theservice will return the private key encrypted under the current asymmetricmaster-key along with the public key. The Coproc...
Page 111 - The generated private-key can be returned in one of three forms:; rule-array keyword, you can cause the private key to be retained
CCA Release 2.54 PKA_Key_Generate PKA_Key_Generate (CSNDPKG) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The PKA_Key_Generate verb is used to generate a public-private key-pair for usewith the RSA algorithm. The skeleton_key_token specified to the verb determines the followi...
Page 112 - public-key certificate section
PKA_Key_Generate CCA Release 2.54 Note: When using the RETAINED key option, the key label supplied in the skeleton key-token references the key storage within the Coprocessor, and in thiscase must not reference a record in the host-system key-storage. The rule-array keyword CLONE flags a generated a...
Page 113 - Private-key encryption
CCA Release 2.54 PKA_Key_Generate Parameters For the definitions of the return_code , reason_code , exit_data_length , and exit_data parameters, see “Parameters Common to All Verbs” on page 1-11. rule_array_count The rule_array_count parameter is a pointer to an integer variable containing the numbe...
Page 115 - when the source private-key is enciphered.; private-key is returned in a X
CCA Release 2.54 PKA_Key_Import PKA_Key_Import (CSNDPKI) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The PKA_Key_Import verb is used to import a public-private key-pair. A privatekey must be accompanied by the associated public key. A source private-key maybe in the clear or...
Page 117 - to be enabled in the hardware.
CCA Release 2.54 PKA_Key_Import Required Commands The PKA_Key_Import verb requires the PKA Key Import command (offset X ' 0104 ' ) to be enabled in the hardware. Chapter 3. RSA Key-Management 3-13
Page 120 - Token type
PKA_Key_Token_Build CCA Release 2.54 key_values_structure_length The key_values_structure_length parameter is a pointer to an integer variable containing the number of bytes of data in the key_values_structure variable.The maximum length is 2500 bytes. key_values_structure The key_values_structure p...
Page 124 - Token Type; All values in the
PKA_Key_Token_Build CCA Release 2.54 Token Type ModulusLength inBits PublicExponent Key-Values Structure (Hexadecimal) StructureLength(Bytes) RSA-CRT 512 Random(0) 0200 0000 0000 0000 0000 0000 0000 0000 0000 18 RSA-CRT 512 3 0200 0000 0001 0000 0000 0000 0000 0000 0000 03 19 RSA-CRT 512 65537 0200 ...
Page 126 - Encipherment type; RTCMK
PKA_Key_Token_Change CCA Release 2.54 PKA_Key_Token_Change (CSNDKTC) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The PKA_Key_Token_Change verb changes RSA private keys from enciphermentwith the old asymmetric master-key to encipherment with the current asymmetricmaster-key. ...
Page 127 - ) to be enabled in the
CCA Release 2.54 PKA_Key_Token_Change key_identifier_length The key_identifier_length parameter is a pointer to an integer variable containing the number of bytes of data in the key_identifier variable. Onoutput, the variable contains the length of the key token returned by the verb ifa key token (n...
Page 130 - Hash type
PKA_Public_Key_Hash_Register CCA Release 2.54 PKA_Public_Key_Hash_Register (CSNDPKH) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The PKA_Public_Key_Hash_Register verb is used to register a hash value for apublic key in anticipation of verifying the public key offered in a su...
Page 132 - Special usage
PKA_Public_Key_Register CCA Release 2.54 PKA_Public_Key_Register (CSNDPKR) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The PKA_Public_Key_Register verb is used to register a public key in thecryptographic engine. Keywords in the rule array designate the subsequentpermissible...
Page 135 - Digital signatures; Hashing; hash value
CCA Release 2.54 Chapter 4. Hashing and Digital Signatures This chapter discusses the data hashing and the digital signature techniques youcan use to determine data integrity. A digital signature may also be used toestablish the non-repudiation security property. (Another approach to data integrityb...
Page 136 - Digital Signatures; digital
CCA Release 2.54 The CCA products support the following hash functions: Secure Hash Algorithm-1 (SHA-1) The SHA-1 is defined in FIPS 180-1 and produces a 20-byte, 160-bit hash value. The algorithm performs best onbig-endian, general purpose computers. This algorithm is usually preferred overMD5 if t...
Page 139 - Public Key Cryptography Standards #1
CCA Release 2.54 Digital_Signature_Generate rule_array The rule_array parameter is a pointer to a string variable containing an array of keywords. The keywords are eight bytes in length, and must be left-justifiedand padded on the right with space characters. The rule_array keywords areshown below: ...
Page 144 - Specifying Two or Four Encipherments:
MDC_Generate CCA Release 2.54 MDC_Generate (CSNBMDG) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X Use the MDC_Generate verb to create a 128-bit (16-byte) hash value on a datastring whose integrity you intend to confirm. After using this verb to generate anMDC, you can compare...
Page 145 - text; text
CCA Release 2.54 MDC_Generate Format CSNBMDG return_code Input Integer reason_code Input Integer exit_data_length In/Output Integer exit_data In/Output String exit_data_length bytes text_length Input Integer text Input String text_length bytes rule_array_count Input Integer rule_array Input Stringar...
Page 146 - MDC; Algorithm Mode
MDC_Generate CCA Release 2.54 Chaining_Vector The chaining_vector parameter is a pointer to an 18-byte string variable the security server uses as a work area to hold segmented data between verbinvocations. Note: When segmenting text, the application program must not change the data in this string b...
Page 147 - Hashing can also be performed using the MDC_Generate verb; If; FIRST; or; MIDDLE; calls are made, the text size must be a multiple of the
CCA Release 2.54 One_Way_Hash One_Way_Hash (CSNBOWH) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The One_Way_Hash verb obtains a hash value from a text string using the MD5,SHA-1, or RIPEMD-160 hashing methods, as you specify in the rule_array. You can provide all of the dat...
Page 148 - Hash method
One_Way_Hash CCA Release 2.54 Parameters For the definitions of the return_code , reason_code , exit_data_length , and exit_data parameters, see “Parameters Common to All Verbs” on page 1-11. rule_array_count The rule_array_count parameter is a pointer to an integer variable containing the number of...
Page 152 - Understanding CCA DES Key-Management; key
CCA Release 2.54 Figure 5-1 (Page 2 of 2). Basic CCA DES Key-Management Verbs Verb Page Service Entry Point SvcLcn PKA_Decrypt 5-73 Uses an RSA private-key to decrypt a symmetric keyformatted in an RSA DSI PKCS #1 block type 2 structureand return the symmetric key in the clear. CSNDPKD E PKA_Encrypt...
Page 154 - Control Vectors
CCA Release 2.54 A key that is multiply-enciphered under the master key is an operational key (OP). The key is operational because a cryptographic facility can use the master key tomultiply-decipher it to obtain the original key-value. A key that ismultiply-enciphered under a key-encrypting key (oth...
Page 155 - Key Types; – CIPHER and DATA. A key with these key types can be used to both
CCA Release 2.54 Checking a Control Vector Before Processing a CryptographicCommand Before a CCA cryptographic facility processes a command that uses amultiply-enciphered key, the facility’s logic checks the control vector associated withthe key. The control vector must indicate a valid key type for...
Page 156 - Key-Usage Restrictions
CCA Release 2.54 Asymmetric DES keys. An asymmetric DES key is a key in a key pair in whichthe keys are used as opposites. – ENCIPHER and DECIPHER. Used to only encrypt data versus only to decrypt data. – MAC and MACVER. Used in generating (and verifying) a MAC versus only verifying a MAC. – PINGEN ...
Page 157 - Key Type; Cipher Class
CCA Release 2.54 Figure 5-4 on page 5-9 shows the key-type, key subtype, and key-usage keywordsthat can be combined in the Control_Vector_Generate verb and theKey_Token_Build verb to build a control vector. The left column lists the key types,the middle column lists the subtype keywords, and the rig...
Page 158 - PIN Class
CCA Release 2.54 Figure 5-3 (Page 2 of 2). Key Types and Verb Usage Key Type Usable with Verbs IKEYXLAT, OKEYXLAT Key_Translate PIN Class These keys are used in the various financial-PIN processing commands. They aredouble-length keys. In operational form and in external form, these keys are associa...
Page 162 - Key Lengths; MIXED; Specifies the key as a single-length key.
CCA Release 2.54 Figure 5-5 (Page 3 of 3). Control Vector Key-Subtype and Key-Usage Keywords Keyword Meaning DKYL5 A DKYGENKY key with this subtype can be used to generate aDKYGENKY key with a subtype of DKYL4. DKYL6 A DKYGENKY key with this subtype can be used to generate aDKYGENKY key with a subty...
Page 166 - Generating Keys; A CCA cryptographic facility can generate
CCA Release 2.54 Random_Number_Generate Diversified_Key_Generate ┬ ┬ ┌────┴────┐ │ │ │ Clear_Key_ │ Key_Part_ Import │ Import ┬ ┌───────────────────┘ ┌─────────────────┐ ┬ │ │ ┴ │ │ │ │ ┌────┐ Symmetric_Key_Import ┌───────────────┐ │K │ │Internal Key─Token ├─────Key_Record_Write├─e S │ ┌──────┴─────...
Page 168 - DOUBLE; keyword will produce two halves with the same 64-bit values.; Exporting and Importing Keys, Symmetric Techniques
CCA Release 2.54 Since the two halves are random numbers, it is unlikely that the result of the DOUBLE keyword will produce two halves with the same 64-bit values. Exporting and Importing Keys, Symmetric Techniques To operate on data with the same key at two different nodes, you must transportthe ke...
Page 169 - Exporting and Importing Keys, Asymmetric Techniques; CCA supports several methods for
CCA Release 2.54 ┌──────────────┐ ┌──────────────┐ Operational │ Key to Be │ │ Imported │ Operational Form of Key │ Exported │ │ Key │ Form of Key at Node A └──────┬───────┘ └─────────────┘ at Node B │ │ │ │ ┌───────────────────────────│──────┐ ┌──────│───────────────────────────┐│Key_Export ┌──────...
Page 170 - Storing Keys in Key Storage
CCA Release 2.54 therefore it is very important to handle the key-generating key with a high degree ofsecurity lest the interactions with the whole population of cards be placed injeopardy. In the current implementation, several methods of diversifying a key are supported: CLR8-ENC , TDES-ENC , TDES...
Page 171 - Security Precautions; CCA
CCA Release 2.54 Security Precautions Be sure to see the “Observations on Secure Operations” chapter in the CCA Support Program Installation Manual . In order to maintain a secure cryptographic environment, each cryptographic nodemust be audited on a regular basis. This audit should be aimed at prev...
Page 180 - initialization_vector; ciphertext
Cryptographic_Variable_Encipher CCA Release 2.54 Parameters For the definitions of the return_code , reason_code , exit_data_length , and exit_data parameters, see “Parameters Common to All Verbs” on page 1-11. c-variable_encrypting_key_identifier The c-variable_encrypting_key_identifier parameter i...
Page 183 - Specify the following:
CCA Release 2.54 Data_Key_Import Data_Key_Import (CSNBDKM) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The Data_Key_Import verb imports an encrypted, source DES single-length ordouble-length DATA key and creates or updates a target internal key-token with themaster-key-encip...
Page 185 - TDESEMV2
CCA Release 2.54 Diversified_Key_Generate Diversified_Key_Generate (CSNBDKG) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The Diversified_Key_Generate verb generates a key based on a function of akey-generating key, the process rule, and data that you supply. Thekey-generatin...
Page 186 - Process rule
Diversified_Key_Generate CCA Release 2.54 Returns the diversified key, multiply-enciphered by the master key modified bythe control vector. Restrictions The TDES-XOR rule-array keyword is available starting with Release 2.50. The TDESEMV2 and TDESEMV4 rule-array keywords are available starting with ...
Page 188 - EMV 2000 Integrated Circuit
Diversified_Key_Generate CCA Release 2.54 Keyword Meaning TDESEMV2,TDESEMV4 Note: These options are available starting with Release 2.51. Specifies that 10, 18, 26, or 34 bytes of clear data shall beprocessed to form an EMV card-unique key and then asession key as specified in the EMV 2000 Integrate...
Page 190 - Process Rule
Diversified_Key_Generate CCA Release 2.54 generating_key_identifier The generating_key_identifier parameter is a pointer to a string variable containing the key-generating-key key-token or key label of a key-token record. data_length The data_length parameter is a pointer to an integer variable cont...
Page 192 - TOKEN; keyword is the preferred coding
Key_Export CCA Release 2.54 Key_Export (CSNBKEX) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The Key_Export verb exports a source DES internal-key into a target externalkey-token. Existing information in the target key-token is overwritten. The targetkey is enciphered by the...
Page 197 - Key-Type Specifications
CCA Release 2.54 Key_Generate unless you are using the TOKEN keyword, you must identify a null key-token on input. Required Commands Depending on your specification of key form, key type, and use of the SINGLE-R key length control, different commands are required to enable operation of theKey_Genera...
Page 199 - Key-Length Specification; SINGLE
CCA Release 2.54 Key_Generate Figure 5-12. Key_Type and Key_Form Keywords for a Key Pair Key_Type_1 Key_Type_2 Key_FormOPOP,OPIM,IMIM Key_FormOPEX Key_FormEXEX Key_FormIMEX DATAMACMACMACVERDATAC *DATAM *DATAM *CIPHERCIPHERCIPHERDECIPHERDECIPHERENCIPHERENCIPHERKEYGENKY *DKYGENKY * DATAMACMACVERMACDAT...
Page 204 - odd
Key_Part_Import CCA Release 2.54 Key_Part_Import (CSNBKPI) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The Key_Part_Import verb is used to accumulate “parts” of a key and store theresult as an encrypted partial key or as the final key. Individual key-parts areexclusive-ORed ...
Page 206 - COMPLETE
Key_Part_Import CCA Release 2.54 Parameters For the definitions of the return_code , reason_code , exit_data_length , and exit_data parameters, see “Parameters Common to All Verbs” on page 1-11. rule_array_count The rule_array_count parameter is a pointer to an integer variable containing the number...
Page 207 - The Load First Key Part command (offset X; The Combine Key Parts command (offset X; LAST; The Add Key Part command (offset X
CCA Release 2.54 Key_Part_Import Required Commands The Key_Part_Import verb requires the following commands to be enabled in theactive role: The Load First Key Part command (offset X ' 001B ' ) with the FIRST keyword. The Combine Key Parts command (offset X ' 001C ' ) with the MIDDLE and LAST keywor...
Page 208 - GENERATE
Key_Test CCA Release 2.54 Key_Test (CSNBKYT) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X You use the Key_Test verb to verify the value of a key or key-part. Severalverification algorithms are supported. The verb supports testing of clear keys,enciphered keys, master keys, an...
Page 210 - Verification-process rule
Key_Test CCA Release 2.54 key_identifier The key_identifier parameter is a pointer to a string variable containing an internal key-token, a key label that identifies an internal key-token record in keystorage, or a clear key. The key token contains the key or the key part used to generate or verify ...
Page 211 - Version 1 code, and the Transaction Security System, used a smaller; Previous implementations used the
CCA Release 2.54 Key_Token_Build Key_Token_Build (CSNBKTB) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The Key_Token_Build verb assembles an external or internal key-token inapplication storage from information you supply. The verb can include a control vector you supply or ...
Page 212 - INTERNAL; Key status; KEY
Key_Token_Build CCA Release 2.54 Parameters For the definitions of the return_code , reason_code , exit_data_length , and exit_data parameters, see “Parameters Common to All Verbs” on page 1-11. key_token The key_token parameter is a pointer to a string variable containing the assembled key-token. N...
Page 213 - If you specify the; CV; Obtain the control vector from the variable identified by the
CCA Release 2.54 Key_Token_Build key_value The key_value parameter is a pointer to a string variable containing the encrypted key-value incorporated into the encrypted-key portion of the keytoken if you use the KEY rule_array keyword. Single-length keys must be left-justified in the variable and pad...
Page 219 - Specify the following key tokens to use this verb:
CCA Release 2.54 Key_Translate Key_Translate (CSNBKTR) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The Key_Translate verb uses one key-encrypting key to decipher an input key andthen enciphers this key using another key-encrypting key within the secureenvironment. Specify th...
Page 222 - Algorithm
Multiple_Clear_Key_Import CCA Release 2.54 clear_key_length The clear_key_length parameter is a pointer to an integer variable containing the number of bytes of data in the clear_key variable. clear_key The clear_key parameter is a pointer to a string variable containing the single-length (8-byte) o...
Page 224 - Recovery method
PKA_Decrypt CCA Release 2.54 source_encrypted_key_length The source_encrypted_key_length parameter is a pointer to an integer variable containing the number of bytes of data in the source_encrypted_key variable.The maximum size allowed is 256 bytes. source_encrypted_key The source_encrypted_key para...
Page 226 - Format method
PKA_Encrypt CCA Release 2.54 rule_array The rule_array parameter is a pointer to a string variable containing an array of keywords. The keywords are eight bytes in length, and must be left-justifiedand padded on the right with space characters. The rule_array keywords areshown below: clear_source_da...
Page 228 - PKCSOAEP; The PKCSOAEP keyword specifies to format a single-length or; You can only export a default DATA-key with this verb.
PKA_Symmetric_Key_Export CCA Release 2.54 PKA_Symmetric_Key_Export (CSNDSYX) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The PKA_Symmetric_Key_Export verb enciphers a symmetric DES or CDMFdefault DATA-key using an RSA public key. Specify the symmetric key to be exported, the...
Page 229 - Key-formatting method
CCA Release 2.54 PKA_Symmetric_Key_Export Parameters For the definitions of the return_code , reason_code , exit_data_length , and exit_data parameters, see “Parameters Common to All Verbs” on page 1-11. rule_array_count The rule_array_count parameter is a pointer to an integer variable containing t...
Page 231 - There are three classes of rule-array keywords:; The key is formatted into an “encrypted message” following the
CCA Release 2.54 PKA_Symmetric_Key_Generate PKA_Symmetric_Key_Generate (CSNDSYG) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The PKA_Symmetric_Key_Generate verb generates a random DES-key andenciphers the key value. The key value is enciphered under an RSA public-key fordist...
Page 233 - Key length
CCA Release 2.54 PKA_Symmetric_Key_Generate Format CSNDSYG return_code Output Integer reason_code Output Integer exit_data_length In/Output Integer exit_data In/Output String exit_data_length bytes rule_array_count Input Integer one, two, or three rule_array Input Stringarray rule_array_count * 8 by...
Page 236 - parameter must specify the default value for a DATA; The PKCSOAEP keyword specifies that after decrypting the
PKA_Symmetric_Key_Import CCA Release 2.54 PKA_Symmetric_Key_Import (CSNDSYI) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The PKA_Symmetric_Key_Import verb recovers a symmetric DES (or CDMF) keythat is enciphered by an RSA public key. The verb deciphers the RSA-encipheredsymm...
Page 238 - RSA key-encipherment method
PKA_Symmetric_Key_Import CCA Release 2.54 RSA_enciphered_key_length The RSA_enciphered_key_length parameter is a pointer to an integer containing the number of bytes of data in the RSA_enciphered_key variable.The maximum size allowed is 2500 bytes. RSA_enciphered_key The RSA_enciphered_key parameter...
Page 241 - For the definitions of the; form; Generation type; RANDOM; Requests the generation of a 64-bit random number.; ODD
CCA Release 2.54 Random_Number_Generate Random_Number_Generate (CSNBRNG) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The Random_Number_Generate verb generates a random number for use as aninitialization vector, clear key, or clear key-part. You specify whether the random num...
Page 243 - Chapter 6. Data Confidentiality and Data Integrity; Encryption and Message Authentication Codes; See Chapter 4, “Hashing and Digital Signatures” on page 4-1 for; Ensuring Data Confidentiality; cipher block chaining
CCA Release 2.54 Chapter 6. Data Confidentiality and Data Integrity This chapter describes the verbs that use the Data Encryption Standard (DES)algorithm to encrypt and decrypt data and to generate and verify a messageauthentication code (MAC). Figure 6-1. Data Confidentiality and Data Integrity Ver...
Page 244 - INITIAL
CCA Release 2.54 verbs also support the ANSI X9.23 mode of encryption. In X9.23 encryption, atleast one byte of data and up to eight bytes of data are always added to the end ofyour plaintext. The last of the added bytes is a binary value equal to the number ofadded bytes. The ANSI X9.23 process ens...
Page 245 - Ensuring Data Integrity; MACing Segmented Data
CCA Release 2.54 Ensuring Data Integrity CCA offers three classes of services for ensuring data integrity: Message authentication code (MAC) techniques based on the DES algorithm Hashing techniques Digital signature techniques. This chapter includes the MAC verbs. For information on using hashing or...
Page 246 - ONLY
CCA Release 2.54 In each procedure call, a segmenting-control keyword indicates whether the callcontains the first, middle, or last unit of segmented data; the chaining_vector parameter specifies the work area that the verb uses. (The defaultsegmenting-control keyword ONLY specifies that segmenting ...
Page 247 - Decipher; cannot
CCA Release 2.54 Decipher Decipher (CSNBDEC) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The Decipher verb uses the Data Encryption Standard (DES) or the CommercialData Masking Facility (CDMF) algorithm and a cipher key to decipher data(ciphertext). This verb results in data...
Page 248 - Deciphering method
Decipher CCA Release 2.54 ciphertext The ciphertext parameter is a pointer to a string variable containing the text to be deciphered. initialization_vector The initialization_vector parameter is a pointer to a string variable containing the initialization_vector the verb uses with the input data. ru...
Page 249 - The Decipher verb requires the Decipher command (offset X
CCA Release 2.54 Decipher length of the plaintext when it returns. The length will be different whenpadding is removed. Required Commands The Decipher verb requires the Decipher command (offset X ' 000F ' ) to be enabled in the hardware. Chapter 6. Data Confidentiality and Data Integrity 6-7
Page 250 - Encipher
Encipher CCA Release 2.54 Encipher (CSNBENC) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The Encipher verb uses the DES algorithm and a secret key to encipher data. Thisverb returns data called ciphertext. The returned ciphertext can be as many as eight bytes longer than the...
Page 251 - Ciphering method
CCA Release 2.54 Encipher text_length The text_length parameter is a pointer to an integer variable. On input, the text_length variable contains the number of bytes of data in the cleartextvariable. On output, the text_length variable contains the number of bytes ofdata in the ciphertext variable. p...
Page 255 - MAC; Segmenting control
CCA Release 2.54 MAC_Generate chaining_vector The chaining_vector parameter is a pointer to a string variable containing a work area the security server uses to carry segmented data between procedurecalls. Note: The application program must not change the data in this variable. MAC The MAC parameter...
Page 259 - Key Labels and Key-Storage Management
CCA Release 2.54 Chapter 7. Key-Storage Verbs This chapter describes how you can use key-storage mechanisms and theassociated verbs for creating, writing, reading, listing, and deleting records in keystorage. Figure 7-1. Key-Storage-Record Services Verb Page Service Entry Point SvcLcn DES_Key_Record...
Page 260 - internally
CCA Release 2.54 Use the Key_Record_Delete verb to delete a key token from a key record, or toentirely delete the key record from key storage. Use the Key_Record_List verb to determine the existence of key records in keystorage. The Key_Record_List verb creates a key-record-list data set withinforma...
Page 263 - Task
CCA Release 2.54 DES_Key_Record_Delete DES_Key_Record_Delete (CSNBKRD) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The DES_Key_Record_Delete verb does either of the following tasks: Replaces the token in a key record with a null key-token Deletes an entire key record, includ...
Page 265 - CCA Support Program Installation Manual
CCA Release 2.54 DES_Key_Record_List DES_Key_Record_List (CSNBKRL) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The DES_Key_Record_List verb creates a key-record-list data set containinginformation about specified key records in key storage. Information listed includeswhether...
Page 266 - nnn
DES_Key_Record_List CCA Release 2.54 data_set_name_length The data_set_name_length parameter is a pointer to an integer variable containing the number of bytes of data returned by the verb in thedata_set_name variable. The maximum returned value is 64 bytes. data_set_name The data_set_name parameter...
Page 278 - Processing option; CHECK
PKA_Key_Record_Write CCA Release 2.54 key_label The key_label parameter is a pointer to a string variable containing the key label that identifies the key record in PKA key-storage where the key token is tobe written. key_token_length The key_token_length parameter is a pointer to an integer variabl...
Page 283 - Chapter 8. Financial Services Support Verbs; There are several classes of verbs described in this chapter:
CCA Release 2.54 Chapter 8. Financial Services Support Verbs There are several classes of verbs described in this chapter: Finance industry PIN processing verbs. Information common to these verbs isdescribed in the next section. Support for changing the acceptable PIN on a smart card based on VISA a...
Page 284 - Processing Financial PINs; A financial PIN is similar to a password except that a financial
CCA Release 2.54 Figure 8-1 (Page 2 of 2). Financial Services Support Verbs Verb Page Service Entry Point SvcLcn PIN_Change/Unblock 8-52 Calculates a PIN for a smart card based on keys and datayou supply according to VISA and EMV specifications. CSNBPCU E Secure_Messaging_for_Keys 8-59 Securely inco...
Page 288 - PIN-Calculation Method and PIN-Block Format Summary; Providing Security for PINs; PIN block
CCA Release 2.54 PIN-Calculation Method and PIN-Block Format Summary As described in the following sections, you can use a variety of PIN calculationmethods and a variety of PIN-block formats with the various PIN-processing verbs.Figure 8-3 provides a summary of the supported combinations. Figure 8-...
Page 290 - Supporting Multiple PIN-Calculation Methods; PIN-Calculation Methods; PIN-Calculation Method; IBM German Bank Pool Institution PIN
CCA Release 2.54 OPINENC (output PIN-block encrypting) key type The PIN verbs that encrypt a PIN block require the encrypting key tohave a control vector that specifies an OPINENC key type. KEYGENKY (unique-key-per-transaction base key-generating key) key type The Encrypted_PIN_Translate and Encrypt...
Page 291 - To avoid errors when using the IBM 3624 PIN-block format, you should; Data Array with the VISA-PVV Calculation Method:; referenced PVV; Data Array for the Interbank Calculation Method:
CCA Release 2.54 Note: To avoid errors when using the IBM 3624 PIN-block format, you should not include in the decimalization table a decimal digit that is also used as a paddigit. For information about a pad digit, see “PIN Profile” on page 8-10. validation_data The second element in the data array...
Page 292 - extracting; PIN Profile
CCA Release 2.54 – Eleven (rightmost) digits of PAN data, excluding the check digit. For information about a PAN, see “Personal Account Number (PAN)” onpage 8-13. – A constant, six.– A one-digit key index selector from one to six.– Three numeric characters of validation data. reserved The second and...
Page 293 - Format Control Enforcement:; NONE; Pad Digit for PIN Formatting; Pad Digit for PIN Extraction; through F
CCA Release 2.54 Format Control Enforcement: The format-control level is the second element in a PIN profile. For the IBM 4758 implementation, this element must be set to NONE followed by four space characters. Pad Digit: The pad digit is the third element in a PIN profile. Certain PIN-block formats...
Page 294 - PIN-Extraction Methods; PINBLOCK; PADEXIST
CCA Release 2.54 The CKSN is the concatenation of a terminal identifier and a sequence numberwhich together define a unique terminal (within the set of terminals associated witha given base key) and the sequence number of the transaction originated by thatterminal. Each time the terminal completes a...
Page 295 - Working With EMV Smart Cards; Design VISA Integrated Circuit Card Specification Manual
CCA Release 2.54 Personal Account Number (PAN) A personal account number (PAN) identifies an individual and relates that individualto an account at the financial institution. The PAN consists of the following: Issuer identification number Customer account number One check digit. For the ISO-0 PIN-bl...
Page 298 - PIN source; ENCRYPT
Clear_PIN_Encrypt CCA Release 2.54 Format CSNBCPE return_code Output Integer reason_code Output Integer exit_data_length In/Output Integer exit_data In/Output String exit_data_length bytes PIN_encrypting_key_identifier Input String 64 bytes rule_array_count Input Integer zero or one rule_array Input...
Page 300 - encrypt
Clear_PIN_Generate CCA Release 2.54 Clear_PIN_Generate (CSNBPGN) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The Clear_PIN_Generate verb generates an A-PIN or an O-PIN by using one of thefollowing calculation methods that you specify with a rule-array keyword (see“PIN-Calcul...
Page 301 - PIN-calculation method
CCA Release 2.54 Clear_PIN_Generate Restrictions None Format CSNBPGN return_code Output Integer reason_code Output Integer exit_data_length In/Output Integer exit_data In/Output String exit_data_length bytes PIN_generating_key_identifier Input String 64 bytes rule_array_count Input Integer one rule_...
Page 302 - Command
Clear_PIN_Generate CCA Release 2.54 PIN_check_length The PIN_check_length parameter points to an integer variable in the range from 4 to 16 containing the length of the PIN offset. The verb uses the PINcheck length if you specify the IBM-PINO keyword for the calculation method. Otherwise, ensure tha...
Page 303 - clear
CCA Release 2.54 Clear_PIN_Generate_Alternate Clear_PIN_Generate_Alternate (CSNBCPA) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The Clear_PIN_Generate_Alternate verb is used to obtain a value, the “O-PIN”(offset or VISA-PVV), that will relate the institution-assigned PIN to...
Page 305 - Function of Keyword; Meaning
CCA Release 2.54 Clear_PIN_Generate_Alternate Note: When using the ISO-0 format, use the 12 rightmost PAN digits, excluding the check digit. encrypted_PIN_block The encrypted_PIN_block parameter points to a string variable containing the encrypted PIN-block of the (customer-selected) C-PIN value. ru...
Page 307 - to
CCA Release 2.54 Clear_PIN_Generate_Alternate When using the NL-PIN-1 keyword, identify the following elements in the data array: When using the VISA-PVV keyword, identify the following elements in the data array. For more information about transaction security data for the VISA-PVVcalculation metho...
Page 308 - Generate Clear 3624 PIN Offset
Clear_PIN_Generate_Alternate CCA Release 2.54 returned_result The returned_result parameter points to a string variable containing the clear O-PIN returned by the verb. The 16-byte result will be left-justified and paddedon the right with space characters. The length of the PIN offset in the returne...
Page 310 - CVV length
CVV_Generate CCA Release 2.54 rule_array The rule_array parameter is a pointer to a string variable containing an array of keywords. The keywords are eight bytes in length, and must be left-justifiedand padded on the right with space characters. The rule_array keywords areshown below: PAN_data The P...
Page 312 - parameter. The result
CVV_Verify CCA Release 2.54 CVV_Verify (CSNBCSV) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The CVV_Verify verb supports the VISA card-verification value (CVV) and theMasterCard card-verification code (CVC) process as defined for track 2 by verifyinga CVV. For details about...
Page 317 - Calculation method
CCA Release 2.54 Encrypted_PIN_Generate Parameters For the definitions of the return_code , reason_code , exit_data_length , and exit_data parameters, see “Parameters Common to All Verbs” on page 1-11. PIN_generating_key_identifier The PIN_generating_key_identifier parameter points to a string varia...
Page 319 - translate; TRANSLAT
CCA Release 2.54 Encrypted_PIN_Translate Encrypted_PIN_Translate (CSNBPTR) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The Encrypted_PIN_Translate verb can change PIN block encryption, andoptionally format a PIN into a different PIN-block format. You can use this verb inan i...
Page 321 - REFORMAT
CCA Release 2.54 Encrypted_PIN_Translate Parameters For the definitions of the return_code , reason_code , exit_data_length , and exit_data parameters, see “Parameters Common to All Verbs” on page 1-11. input_PIN_encrypting_key_identifier The input_PIN_encrypting_key_identifier parameter is a pointe...
Page 322 - Mode
Encrypted_PIN_Translate CCA Release 2.54 rule_array The rule_array parameter is a pointer to a string variable containing an array of keywords. The keywords are eight bytes in length, and must be left-justifiedand padded on the right with space characters. output_PIN_profile The output_PIN_profile p...
Page 324 - UKPTIPIN
Encrypted_PIN_Verify CCA Release 2.54 Encrypted_PIN_Verify (CSNBPVR) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2/23 X X X X The Encrypted_PIN_Verify verb extracts a trial PIN (T-PIN) from an encryptedPIN-block and verifies this value by comparing it to an account PIN (A-PIN)calculated ...
Page 325 - The verb does the following:
CCA Release 2.54 Encrypted_PIN_Verify The verb does the following: Decrypts the input PIN-block by using the supplied IPINENC key in ECB mode,or derives the decryption key using the specified KEYGENKY key and CKSNand uses ANSI X9.24-specified “special decryption.” The EPINVER bit must bevalued to on...
Page 329 - keywords, identify the following; One digit of key index from one to six; A constant of six
CCA Release 2.54 Encrypted_PIN_Verify When using the VISA-PVV or VISAPVV4 keywords, identify the following elements in the data array. For more information about these elements, andtransaction security data for the VISA-PVV calculation method, see “VISA PINValidation Value (PVV) Calculation Method” ...
Page 330 - ) to be enabled if you employ UKPT; Verify Encrypted German Bank Pool PIN
Encrypted_PIN_Verify CCA Release 2.54 Required Commands The Encrypted_PIN_Verify verb requires the following commands to be enabled inthe hardware, based on the keyword specified for the PIN-calculation methods. The Encrypted_PIN_Translate verb also requires the Unique Key Per Transaction,ANSI X9.24...
Page 331 - CBCTOECB
CCA Release 2.54 Key_Encryption_Translate | Key_Encryption_Translate (CSNBKET) | Platform/ | Product | OS/2 | AIX | Win NT/ | 2000 | OS/400 | IBM 4758-2/23 | X | The Key_Encryption_Translate verb is used to change the method of key | encryption. An input key can be a double-length external CCA DATA ...
Page 332 - Key translation method; This keyword specifies decryption of a 16-byte string and CCA; ECBTOCBC; This keyword specifies decryption of a CCA DATA key and
Key_Encryption_Translate CCA Release 2.54 | Format | CSNBKET | return_code | Output | Integer | reason_code | Output | Integer | exit_data_length | In/Output | Integer | exit_data | In/Output | String | exit_data_length bytes | rule_array_count | Input | Integer | one | rule_array | Input | String |...
Page 334 - without; VISAPCU2; with
PIN_Change/Unblock CCA Release 2.54 PIN_Change/Unblock (CSNBPCU) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-23 X Use the PIN_Change/Unblock verb to prepare an encrypted message-portion forcommunicating an original or replacement PIN for an EMV smart-card. The verbembeds the PIN(s) in an...
Page 337 - Diversification process
CCA Release 2.54 PIN_Change/Unblock authentication_key_identifier_length The authentication_key_identifier_length parameter points to an integer variable set to 64. This is the string length of the related key identifier. authentication_key_identifier The authentication_key_identifier parameter poin...
Page 340 - ) must also be enabled in the
PIN_Change/Unblock CCA Release 2.54 When an MAC-MDK and/or ENC-MDK of key type DKYGENKY is specified withcontrol vector bits (19-22) of B'1111', the Generate Diversified Key (DALL withDKYGENKY key type) command (offset X ' 0290 ' ) must also be enabled in the active role. PIN-blockencryptingkey-type...
Page 342 - Enciphering mode
Secure_Messaging_for_Keys CCA Release 2.54 Returns the enciphered text. Restrictions This verb is supported beginning with Release 2.50. Format CSNBSKY return_code Output Integer reason_code Output Integer exit_data_length In/Output Integer exit_data In/Output String exit_data_length bytes rule_arra...
Page 344 - can be incorporated into a message sent to an EMV smart card.
Secure_Messaging_for_PINs CCA Release 2.54 Secure_Messaging_for_PINs (CSNBSPN) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-23 X Use the Secure_Messaging_for_PINs verb to decrypt an input PIN-block, optionallyreformat the PIN-block, and incorporate the PIN-block into a text block you also...
Page 346 - CLEARPIN
Secure_Messaging_for_PINs CCA Release 2.54 input_PIN_block The input_PIN_block parameter is a pointer to an eight-byte string variable containing the input, encrypted PIN-block. PIN_encrypting_key_identifier The PIN_encrypting_key_identifier parameter is a pointer to a string variable containing an ...
Page 349 - Block type
CCA Release 2.54 SET_Block_Compose Parameters For the definitions of the return_code , reason_code , exit_data_length , and exit_data parameters, see “Parameters Common to All Verbs” on page 1-11. rule_array_count The rule_array_count parameter is a pointer to an integer variable containing the numb...
Page 356 - enabled in the hardware.
SET_Block_Decompose CCA Release 2.54 Required Commands The SET_Block_Decompose verb requires the SET Block Decompose command(command offset X ' 010C ' ) to be enabled in the hardware. Two additional commands are used when encrypting PIN data with this verb. When using an IPINENC type key, the verb r...
Page 357 - Transaction_Validation
CCA Release 2.54 Transaction_Validation Transaction_Validation (CSNBTRV) Platform/ Product OS/2 AIX Win NT/ 2000 OS/400 IBM 4758-2 X X X X The Transaction_Validation verb supports the generation and validation ofAmerican Express card security codes (CSC). The Transaction_Validation verb generates an...
Page 359 - VERIFY; VERIFY
CCA Release 2.54 Transaction_Validation Operation Element Description Validation-Values Length GENERATE and CSC-345 555554444333where:55555 = CSC 5 value4444 = CSC 4 value333 = CSC 3 value 12 VERIFY and CSC-3 333 = CSC 3 value 3 VERIFY and CSC-4 4444 = CSC 4 value 4 VERIFY and CSC-5 55555 = CSC 5 va...
Page 361 - Appendix A. Return Codes and Reason Codes; A verb supplies a return code and a reason code in the; Return Codes; Reason Codes
CCA Release 2.54 Appendix A. Return Codes and Reason Codes This appendix describes the return codes and the reason codes that a verb uses toreport the results of processing. Each return code is associated with a reason code that supplies details about theresult of verb processing. A successful resul...
Page 362 - Return Code 0
CCA Release 2.54 Figure A-2 on page A-2 shows the reason codes, listed in numeric sequence andgrouped by their corresponding return code. The return codes appear in decimalform, and the reason codes appear in decimal and hexadecimal (hex) form. Return Code 0 Figure A-2. Reason Codes for Return Code ...
Page 363 - Return Code 4
CCA Release 2.54 Return Code 4 Figure A-3. Reason Codes for Return Code 4 ReturnCodeDec ReasonCodeDec (Hex) Meaning 4 001 (001) The verification test failed. 4 013 (00D) The key token has an initialization vector, and the initialization_vector parameter value is nonzero. The verb uses the value in t...
Page 364 - Return Code 8
CCA Release 2.54 Return Code 8 Figure A-4 (Page 1 of 6). Reason Codes for Return Code 8 ReturnCodeDec ReasonCodeDec (Hex) Meaning 8 012 (00C) The token-validation value in an external key token is notvalid. 8 022 (016) The ID number in the request field is not valid. 8 023 (017) An access to the dat...
Page 365 - size
CCA Release 2.54 Figure A-4 (Page 2 of 6). Reason Codes for Return Code 8 ReturnCodeDec ReasonCodeDec (Hex) Meaning 8 063 (03F) A key token had an invalid token header (for example, not aninternal token). 8 064 (040) The RSA key is not permitted to perform the requestedoperation. Likely causes are k...
Page 366 - option
CCA Release 2.54 Figure A-4 (Page 3 of 6). Reason Codes for Return Code 8 ReturnCodeDec ReasonCodeDec (Hex) Meaning 8 155 (09B) The value that the generated_key_identifier parameter specifies is not valid, or it is not consistent with the value thatthe key_form parameter specifies. 8 156 (09C) A key...
Page 370 - Return Code 12; The verification method flags in the profile are not valid.
CCA Release 2.54 Return Code 12 Figure A-5. Reason Codes for Return Code 12 ReturnCodeDec ReasonCodeDec (Hex) Meaning 12 097 (061) File space in key storage is insufficient to complete theoperation. 12 196 (0C4) The device driver, the security server, or the directory server isnot installed, or is n...
Page 371 - Return Code 16
CCA Release 2.54 Return Code 16 Figure A-6. Reason Codes for Return Code 16 ReturnCodeDec ReasonCodeDec (Hex) Meaning 16 099 (063) An unrecoverable error occurred in the security server; contactyour IBM service representative. 16 336 (150) An error occurred in a cryptographic hardware or softwarecom...
Page 373 - Appendix B. Data Structures; Key Tokens; transport; Master Key Verification Pattern
CCA Release 2.54 Appendix B. Data Structures This appendix describes the following data structures: Key tokens Chaining vector records Key-storage records Key record list data set Access-control data structures Master key shares Distributed function control vector. Key Tokens This section describes ...
Page 374 - Token-Validation Value and Record-Validation Value; A null key-token is indicated by the value X
CCA Release 2.54 An IBM 4758 does not permit the introduction of a new master key value that hasthe same verification value as either the current master-key or as the oldmaster-key. Token-Validation Value and Record-Validation Value The Token-Validation Value (TVV) is a checksum that helps ensure th...
Page 375 - Internal DES Key-Token; internal DES
CCA Release 2.54 DES Key-Tokens DES key-token data structures are 64 bytes in length, contain an enciphered key, acontrol vector, various flag bits, version number, and token validation value. An internal key-token contains a key multiply-enciphered by a master key while an external key-token contai...
Page 377 - External DES Key-Token; CCA implementations generally use a version X
CCA Release 2.54 External DES Key-Token CCA implementations generally use a version X ' 00 ' external key-token. See Figure B-4. The IBM 4758 Version 2 CCA Support Program also uses a versionX ' 01 ' external key-token to hold a double-length DATA key that is associated with a null (all-zero bits) c...
Page 378 - sections
CCA Release 2.54 DES Key-Token Flag Byte 1: DES Key-Token Flag Byte 2: Figure B-6. Key-Token Flag Byte 1 Bits (MSB...LSB) 1 Meaning 1xxx xxxx The encrypted key value and the Master Key Verification Pattern arepresent 0xxx xxxx An encrypted key is not present x0xx xxxx The control-vector value is not...
Page 379 - confounder; RSA Key-Token Sections; Section; Header
CCA Release 2.54 Coprocessor but your application will encounter a performance penalty witheach use of the key. Protection of the private key is provided by encrypting a confounder (a random number) and the private key information exclusive of the modulus. An encryptedprivate key in an external key-...
Page 392 - Chaining-Vector Records
CCA Release 2.54 RSA Private-Key Blinding Information: Figure B-22. RSA Private-Key Blinding Information Offset (Bytes) Length(Bytes) Description 000 001 X ' FF ' , Section identifier, private-key blinding information. Used with internal key-tokens created by the CCA Support Program, Version1 (havin...
Page 400 - Access-Control Data Structures; Unless otherwise noted, all two-byte and four-byte integers are in
CCA Release 2.54 Figure B-30 (Page 2 of 2). Key-Record-List Data Set Format (OS/400 only) Offset Length Meaning Detail Record 0 1 This field contains an asterisk (*) if the key-storage record did not have acorrect record validation value; this record should be considered to be apotential error. 1 2 ...
Page 401 - Role Structure; Basic Structure of a Role; Role
CCA Release 2.54 Role Structure This section describes the data structures used with roles. Basic Structure of a Role The following figure describes how the Role data is structured. This is the format used when role data is transferred to or from the Coprocessor, using verbsCSUAACI or CSUAACM. Bytes...
Page 402 - Aggregate Role Structure; header; True; Starting bit number
CCA Release 2.54 Aggregate Role Structure A set of zero one or more role definitions are sent in a single data structure. Thisstructure consists of a header , followed by one or more role structures as defined in “Basic Structure of a Role” on page B-29. The header defines the number of roles which ...
Page 403 - The layout of this structure is illustrated in Figure B-33.; Default Role Contents; The default role will have the following characteristics.; DEFAULT; The required authentication strength level will be zero.; Code; PKA96 One Way Hash
CCA Release 2.54 The entire access-control-point structure is comprised of a header, followed by oneor more access-control-point segments. The header indicates how many segmentsare contained in the entire structure. The layout of this structure is illustrated in Figure B-33. Bytes Field ┌───────┐ ──...
Page 404 - Change the expiration date in a user profile; Profile Structure; Basic Structure of a Profile; The following figures describe how the; Logon
CCA Release 2.54 Figure B-34 (Page 2 of 2). Functions Permitted in Default Role Code Function Name X ' 0113 ' Change the expiration date in a user profile X ' 0114 ' Change the authentication data (for example, passphrase) in a userprofile X ' 0115 ' Reset the logon failure count in a user profile X...
Page 405 - checksum; Aggregate Profile Structure; Authentication Data Structure; General Structure of Authentication Data:; Length; Field Type Identifier; Authentication Data
CCA Release 2.54 The checksum is defined as the exclusive-OR (XOR) of each byte in the profile structure. The high-order byte of the checksum field is set to zero (X ' 00 ' ), and the exclusive-OR result is put in the low-order byte. Note: The checksum value is not used in the current profile struct...
Page 407 - Field name; Renewable; A Boolean value which indicates whether the
CCA Release 2.54 Figure B-39 (Page 1 of 2). Authentication Data for Each Authentication Mechanism Field name Length (bytes) Description Length 2 The size of this set of authentication mechanism data, inbytes. The length field includes all bytes of mechanism datafollowing the length field itself. Mec...
Page 408 - variable; Examples of the Data Structures; Passphrase authentication data; EA; This data breaks down into the following fields.; User Profile
CCA Release 2.54 Authentication Data for Passphrase Authentication: For passphrase authentication, the mechanism data field contains the 20-byte SHA-1 hash of theuser's passphrase. The hash is computed in the host, where it is used to constructthe profile that is downloaded to the Coprocessor. Figur...
Page 409 - ith ADMIN1; AB CD; Passphrase data
CCA Release 2.54 1 5a 2d 2 53 61 6d 7 6c 65 2 5 72 6f ...Z- Sample Pro 66 69 6c 65 2 31 2 2d ab cd 4a 5f 53 6d file 1 -....J_Sm 69 74 68 2 41 44 4d 49 4e 31 2 2 7 cd 6 1 ith ADMIN1 .... 7 cd c 1f 24 1 2 1 1 8 7 ce ....."... ...... 6 1 8 fb f5 c4 84 75 5f ba 59 6b ca ..........u_.Yk. 4a 9d ca 8 f...
Page 410 - User profile; ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
CCA Release 2.54 1 1 5a 2d 2 53 61 ...........Z- Sa 6d 7 6c 65 2 5 72 6f 66 69 6c 65 2 31 2 2d mple Profile 1 - ab cd 4a 5f 53 6d 69 74 68 2 41 44 4d 49 ....J_Smith ADMI 4e 31 2 2 7 cd 6 1 7 cd c 1f 24 1 N1 .........".. 2 1 1 8 7 ce 6 1 8 fb f5 . .............. c4 84 75 5f ba 59 6b ca 4a 9d ca 8...
Page 411 - Role Data Structure; 17 23 f ff ff ff ff ff ff ff
CCA Release 2.54 00 03 The number of bytes of data in the access-control points for thissegment. There are 3 bytes, for the access-control points from 512through 535. 00 00 A reserved field, which must be filled with zeros. 8F 99 FE This is the second set of access-control points, with one bitcorres...
Page 412 - Aggregate Role Data Structure; default role 1; This structure contains the following data fields.; Role data structure; The remainder of the aggregate structure contains the role
CCA Release 2.54 Aggregate Role Data Structure Figure B-45 shows the an aggregate role data structure, like you would load usingthe CSUAACI verb. 1 1 62 2a 4e 65 77 ............New 2 64 65 66 61 75 6c 74 2 72 6f 6c 65 2 31 2a default role 1 ab cd 44 45 46 41 55 4c 54 2 23 45 1 f ....DEFAULT #E.. 17 ...
Page 413 - Master Key Shares Data Formats
CCA Release 2.54 Master Key Shares Data Formats Master key shares, and potentially other information to be “cloned” from oneCoprocessor to another Coprocessor are packed into a data structure as describedin Figure B-46. Figure B-46. Cloning Information Token Data Structure Offset (Bytes) Length(Byte...
Page 414 - Function Control Vector; function control vector
CCA Release 2.54 Function Control Vector The export (distribution) of cryptographic implementations by USA companies iscontrolled under USA Government export regulations. An IBM 4758 becomes apractical cryptographic engine when it accepts and validates digitally signedsoftware. IBM has chosen to exp...
Page 417 - DES Control-Vector Values
CCA Release 2.54 Appendix C. CCA Control-Vector Definitions and KeyEncryption This appendix describes the following: DES control-vector values 1 Specifying a control-vector-base value Changing control vectors CCA key encryption and decryption processes. In the Common Cryptographic Architecture (CCA)...
Page 418 - This does not apply to all key-type classes.
CCA Release 2.54 Usually there is a default control-vector associated with each of the key types justlisted; see Figure C-2 on page C-3. The bits in positions 16-22 and 33-37generally have different meanings for every key class. Many of the remaining bitsin a control vector have a common meaning. Mo...
Page 423 - . The most significant bit; Main Key Type; Data Operation Keys
CCA Release 2.54 Key-Form Bits, ‘fff’ and ‘FFF’ The key-form bits, 40-42...and for a double-length key, bits 104-106...aredesignated ‘fff’ and ‘FFF’ in the preceding diagram. These bits can have thesevalues: 000 Single-length key (only ‘fff’, not ‘FFF’) 010 Double-length key, left half 001 Double-le...
Page 424 - to indicate that the Key_Generate verb can use the associated; EXEX; . For information about the value of the key-form bits; Key Subtype; PIN Keys
CCA Release 2.54 2. For key-encrypting keys, set the following bits: The Key-Encrypting Key-limiting bits, previously described as bits “hhh, bits35 to 37,” are not supported in any current release of the Coprocessor CCAsupport. The key-generating usage bits (gks, bits 18 to 20). Set the gks bits to...
Page 425 - . For a MAC verification key, set bits 20 and 21 to
CCA Release 2.54 The MAC control bits (bits 20 and 21). For a MAC generation key, set bits20 and 21 to B ' 11 ' . For a MAC verification key, set bits 20 and 21 to B ' 01 ' . The key-form bits (fff, bits 40 to 42). For a single-length key, set the bits toB ' 000 ' . For a double-length key, set the ...
Page 426 - Bit 18 is reserved for Unique Key Per Transaction (UKPT) usage.
CCA Release 2.54 9. For the IPINENC (inbound) and OPINENC (outbound) PIN-block ciphering keys, do the following: Set the TRANSLAT bit (t, bit 21) to 1 to permit the key to be used in thePIN_Translate verb. The Control_Vector_Generate verb can set theTRANSLAT bit to 1 when you supply the TRANSLAT key...
Page 427 - Bits
CCA Release 2.54 13. For all keys, set the following bits: The export bit (E, bit 17). If set to 0, the export bit prevents a key frombeing exported. By setting this bit to 0, you can prevent the receiver of akey from exporting or translating the key for use in another cryptographicsubsystem. Once t...
Page 428 - CCA Key Encryption and Decryption Processes; This section describes the CCA key-encryption processes:; CCA DES Key Encryption and Decryption Processes
CCA Release 2.54 CCA Key Encryption and Decryption Processes This section describes the CCA key-encryption processes: CCA DES key encryption CCA RSA private key encryption Encipherment of DES keys under RSA in “PKA92” format Encipherment of a DES key-encrypting key under RSA in “NL-EPP-5” format. CC...
Page 429 - processes for ciphering 64 data bits using a single-length key, K
CCA Release 2.54 ┌──────────────┬──────────────┬──────────────┐ ┌──────────────┬──────────────┐│ Master Key │ │ Control Vector │ └────│─────────┴────│─────────┴────│─────────┘ └────│─────────┴─────────│────┘ │ 7 8 │ 15 16 │ 23 │ 7 8 │ 15 │ ┌─────────│────┬─────────│────┬──────────────┤ │ ├──┐ │ ├──┐...
Page 430 - PKA92 Key Format and Encryption Process; AS External Key
CCA Release 2.54 PKA92 Key Format and Encryption Process The PKA_Symmetric_Key_Export, PKA_Symmetric_Key_Generate, and thePKA_Symmetric_Key_Import verbs optionally support a PKA92 method of encrypting a DES or CDMF key with an RSA public key. This format is adaptedfrom the IBM Transaction Security S...
Page 432 - Changing Control Vectors; An external key is a key enciphered by a KEK other than the; Changing Control Vectors with the Pre-Exclusive-OR Technique
CCA Release 2.54 Encrypting a Key_Encrypting Key in the NL-EPP-5 Format The PKA_Symmetric_Key_Generate verb supports a NL-EPP-5 method of encrypting a DES key-encrypting key with an RSA public key. The verb returns anencrypted key block by RSA encrypting a key record formed in the followingmanner: 1...
Page 433 - quantity
CCA Release 2.54 you can enter another part that is set to the value of the pre-exclusive-OR quantity (which quantity is discussed later). Use the Key_Generate verb to generate an IMPORTER/EXPORTER pair ofKEKs, with the KEY-PART control vector bit set on. Then use theKey_Part_Import verb to enter an...
Page 434 - CViml is the control vector for the left half of an IMPORTER key
CCA Release 2.54 Note that if you are processing a double-length key, you almost certainly will haveto process the key twice, using the key-encrypting key modified by different valueseach appropriate to a key half. Then you concatenate the resulting two correctkey-halves. ┌──────────────────────────...
Page 436 - Changing Control Vectors with the Control_Vector_Translate Verb; mask array; Mask Array Preparation
CCA Release 2.54 Changing Control Vectors with the Control_Vector_Translate Verb Do the following when using the Control_Vector_Translate verb: Provide the control information for testing the control vectors of the source,target, and key-encrypting keys to ensure that only sanctioned changes can bep...
Page 437 - BOTH
CCA Release 2.54 This expression tests whether the control vectors associated with the sourcekey and the target key meet your criteria for the desired translation. Encipher two copies of the mask array, each under a differentcryptographic-variable key (key type CVARENC). To encipher each copy of the...
Page 439 - Selecting the Key-Half Processing Mode
CCA Release 2.54 Selecting the Key-Half Processing Mode The Control_Vector_Translate verb rule-array keywords determine which key halvesare processed in the verb call, as shown in Figure C-9. Keyword SINGLE Keyword RIGHT Keyword BOTH Keyword LEFT ┌─────────┬─────────┐ ┌─────────┬─────────┐ ┌────────...
Page 440 - When the Target Key-Token CV Is Null
CCA Release 2.54 The verb first processes the source and target tokens as with the SINGLE keyword. Then the source token is processed using the single-length enciphered key and the source token right-half controlvector to obtain the actual key value. The key value is thenenciphered using the KEK and...
Page 441 - Appendix D. Algorithms and Processes; Cryptographic Key Verification Techniques; SHA-1 Based Master Key Verification Method
CCA Release 2.54 Appendix D. Algorithms and Processes This appendix provides processing details for the following aspects of the CCAdesign: Cryptographic key-verification techniques Ciphering methods Triple-DES algorithms, EDE2 and EDE3 MAC calculation methods Access-control algorithms Master-key sp...
Page 442 - S/390 Based Master Key Verification Method; Asymmetric Master Key MDC-Based Verification Method; CCA DES-Key Verification Algorithm; verification pattern
CCA Release 2.54 S/390 Based Master Key Verification Method When the first and third portions of the symmetric master key have the same value,the master key is effectively a double-length DES key. In this case, the master keyverification pattern (MKVP) is based on this algorithm: C = X ' 45454545454...
Page 443 - Specifies two encipherments for each eight-byte input data block.
CCA Release 2.54 The CCA DES key verification algorithm does the following: 1. Sets KKR ′ = KKR exclusive-OR RN 2. Sets K1 = X ' 4545454545454545 ' 3. Sets X1 = DES encoding of KKL using key K1 4. Sets K2 = X1 exclusive-OR KKL 5. Sets X2 = DES encoding of KKR ′ using key K2 6. Sets VP = X2 exclusive...
Page 444 - always; Notation Used in Calculations; XOR; End procedure
CCA Release 2.54 When the keywords PADMDC-2 and PADMDC-4 are used, the supplied text is always padded as follows: If the supplied text is less than 16 bytes in length, pad bytes are appended tomake the text length equal to 16 bytes. If the supplied text is at least 16 bytes in length, pad bytes are ...
Page 445 - Ciphering Methods; Encrypting general data
CCA Release 2.54 MDC-2 Calculation The MDC-2 calculation consists of the following procedure: MDC-2 (n, text, KEY1, KEY2, MDC); For i := 1,2,...,n do Call MDC-1(KEY1, KEY2, T8<i>, T8<i>, OUT1, OUT2)Set KEY1 := OUT1Set KEY2 := OUT2 End do Set output MDC := (KEY1 || KEY2). End procedure MD...
Page 446 - General Data Encryption Processes; Single-DES and Triple-DES for General Data
CCA Release 2.54 General Data Encryption Processes Although the fundamental concepts of ciphering (enciphering and deciphering) dataare simple, different methods exist to process data strings that are not a multiple ofeight bytes in length. Two widely used methods for enciphering general data aredef...
Page 450 - Triple-DES Ciphering Algorithms
CCA Release 2.54 Triple-DES Ciphering Algorithms Triple-DES is used to encrypt keys, PIN blocks, and general data. Severaltechniques are employed: T-DES ECB DES keys, when triple encrypted under a double-length DES key, are ciphered using an e-d-e scheme without feedback. SeeFigure C-4 onpage C-13. ...
Page 453 - MAC Calculation Methods
CCA Release 2.54 MAC Calculation Methods With CCA Release 2.51, three variations of DES based message authentication aresupported by the MAC_Generate and MAC_Verify verbs: ANSI X9.9 ANSI X9.19 optional Procedure 1 EMV post-padding of X ' 80 ' . The Financial Institution (Wholesale) Message Authentic...
Page 455 - RSA Key-Pair Generation; p and q are randomly chosen prime numbers
CCA Release 2.54 RSA Key-Pair Generation RSA key-pair generation is determined based on user input of the modulus bitlength, public exponent, and key type. The output is based on creating primes pand q in conformance with ANSI X9.31 requirements as follows: prime p bit length = ((modulus_bit_length ...
Page 456 - Design Criteria
CCA Release 2.54 Access-Control Algorithms The following sections describe algorithms and protocols used by theaccess-control system. Passphrase Verification Protocol This section describes the process used to log a user on to the CryptographicCoprocessor. Design Criteria The passphrase verification...
Page 461 - Item
CCA Release 2.54 Appendix E. Financial System Verbs Calculation Methodsand Data Formats This appendix describes the following: PIN-calculation methods PIN-block formats Unique-key-per-transaction calculation methods MasterCard and VISA card verification techniques VISA and EMV smart card PIN-related...
Page 462 - decimalization table
CCA Release 2.54 PIN-Calculation Methods The financial PIN verbs support some or all of these PIN-calculation methods, seeFigure 8-3 on page 8-6: IBM 3624 PIN (IBM-PIN) IBM 3624 PIN Offset (IBM-PINO) Netherlands PIN-1 (NL-PIN-1). IBM German Bank Pool Institution PIN VISA PIN Validation Value (PVV) I...
Page 463 - IBM 3624 PIN-Calculation Method; end do
CCA Release 2.54 IBM 3624 PIN-Calculation Method The IBM 3624 PIN-calculation method calculates a PIN that is from 4 to 16 digits inlength. The IBM 3624 PIN-calculation method consists of the following steps to create theA-PIN: 1. Encrypt the hexadecimal validation data with a key that has a control...
Page 464 - IBM 3624 PIN Offset Calculation Method
CCA Release 2.54 IBM 3624 PIN Offset Calculation Method The IBM 3624 PIN Offset calculation method is the same as the IBM 3624PIN-calculation method except that a step is added after the A-PIN is calculated tocalculate or use an offset, O-PIN: To calculate an O-PIN, the additional step subtracts (di...
Page 465 - Netherlands PIN-1 Calculation Method
CCA Release 2.54 Netherlands PIN-1 Calculation Method The Netherlands PIN-1 (NL-PIN-1) calculation method calculates a PIN that is 4digits in length. The method consists of the following steps to create the A-PIN: 1. Encrypt the hexadecimal validation data with a key that has a control vector that s...
Page 466 - IBM German Bank Pool Institution PIN-Calculation Method; to X
CCA Release 2.54 IBM German Bank Pool Institution PIN-Calculation Method The IBM German Bank Pool Institution PIN calculation method calculates aninstitution PIN that is 4 digits in length. The German Bank Pool Institution PIN-calculation method consists of the followingsteps: 1. Encrypt the hexadec...
Page 467 - VISA PIN Validation Value (PVV) Calculation Method; decimal digits (digits that have values from X
CCA Release 2.54 VISA PIN Validation Value (PVV) Calculation Method The VISA-PVV calculation method calculates a VISA-PVV that is 4 digits in length. The VISA PIN Validation Value (PVV) calculation method consists of the followingsteps: 1. Let X denote the transaction_security_parameter element. Thi...
Page 468 - Interbank PIN-Calculation Method; decimal digits (for example, digits that have values from X
CCA Release 2.54 Interbank PIN-Calculation Method The Interbank PIN-calculation method consists of the following steps: 1. Let X denote the transaction_security_parameter element converted to an array of sixteen 4-bit numeric values. This parameter consists of (in the followingsequence) the 11 right...
Page 470 - PAN
CCA Release 2.54 ISO-0 PIN-Block Format An ISO-0 PIN-block format is equivalent to the ANSI X9.8, VISA-1, and ECI-1PIN-block formats. The ISO-0 PIN-block format supports a PIN from 4 to 12 digitsin length. A PIN that is longer than 12 digits is truncated on the right. The following are the formats o...
Page 473 - UKPT Calculation Methods; derivation key
CCA Release 2.54 UKPT Calculation Methods This section describes the calculation methods for deriving theunique-key-per-transaction (UKPT) key according to ANSI X9.24 and performingthe special encryption and special decryption processes. 1 Deriving an ANSI X9.24 Unique-Key-Per-Transaction Key To det...
Page 475 - special encryption; special decryption
CCA Release 2.54 The following is an example of calculating the current PIN encrypting key: W a = X'4567 89AB CDE ' C a = X'11' S a1 = X'1' T a1 = X'4567 89AB CDF ' T b1 = X'6489 F5A3 1618 2AB' T c1 = X'F9AC C638 1939 44BC' K a2 = X'D842 BA3 C2D1 6417' . . . S a20 = X'1' T a20 = X'4567 89AB CDF 1' T...
Page 476 - CVV and CVC Method; The key-A and key-B key pair can include the following key types:
CCA Release 2.54 CVV and CVC Method Figure E-6 2 shows the method used to generate a card-verification value (CVV) for track 2. Each (decimal) digit is represented as a 4-bit, binary value and packed twodigits per byte. ┌─────────────────┬──────────┬───────────────┬────────────────────┐ │ PAN │ Exp ...
Page 477 - VISA and EMV-Related Smart Card Formats and Processes; Derivation of the Smart-Card-Specific Authentication Code
CCA Release 2.54 VISA and EMV-Related Smart Card Formats and Processes The VISA and EMV specifications for performing secure messaging with an EMVcompliant smart card are covered in these documents: EMV 2000 Integrated Circuit Card Specification for Payment Systems Version4.0 (EMV4.0) Book 2 Design ...
Page 478 - Derivation of the CCA TDES-XOR Session Key; Derivation of the EMV TDESEMVn Tree-Based Session-Key
CCA Release 2.54 3. Set the second digit of block-2 to the length of the new PIN (4 to 12), followed by the new PIN, and padded to the right with X ' F ' . 4. Include any current PIN by placing it into the leftmost digits of block-3. 5. Exclusive-OR blocks -1, -2, and -3 to form the 8-byte PIN block...
Page 479 - causes processing with a branch factor of 2 and a height of; TDESEMV4; causes processing with a branch factor of 4 and a height of 8.; SELFENC
CCA Release 2.54 TDESEMV2 causes processing with a branch factor of 2 and a height of 16. TDESEMV4 causes processing with a branch factor of 4 and a height of 8. PIN-Block Self-encryption In the Secure_Messaging_for_PINs (CSNBSPN) verb, you can use the SELFENC rule-array keyword to specify that the ...
Page 481 - Appendix F. Verb List
CCA Release 2.54 Appendix F. Verb List This appendix lists the verbs supported by the CCA Support Program feature forthe IBM 4758 PCI Cryptographic Coprocessor. Figure F-1 lists each verb by the verb’s pseudonym and entry-point name andshows the operating environment under which the verb is supporte...
Page 491 - List of Abbreviations
CCA Release 2.54 List of Abbreviations ANSI American National Standards Institute ACF/VTAM Advanced Communications Functionfor the Virtual TelecommunicationsAccess Method AIX Advanced Interactive Executiveoperating system APF Authorized Program Facility API Application Programming Interface ASCII Am...
Page 493 - Glossary; IBM Dictionary of Computing
CCA Release 2.54 Glossary This glossary includes some terms and definitions fromthe IBM Dictionary of Computing , New York: McGraw Hill, 1994. This glossary also includes some terms anddefinitions from: The American National Standard Dictionary for Information Systems , ANSI X3.172-1990, copyright 1...
Page 499 - Numerics
CCA Release 2.54 U Unique Key Per Transaction (UKPT) . UKPT is a cryptographic process that can be used to decipher PINblocks in a transaction. user-exit routine . A user-written routine that receives control at predefined user-exit points. user ID . User identification. userid . A string of charact...
Page 501 - Index
CCA Release 2.54 Index A Access Control, CCA 2-2 Access_Control_Initialization (CSUAACI) 2-21 Access_Control_Maintenance (CSUAACM) 2-24 American Express transaction validation verb 8-75 American National Standards Institute (ANSI) X3.106 (CBC) method D-7 X9.19 method D-13 X9.23 method D-7 X9.9 metho...