Visa Merchant Data Secure with Point-to-Point Encryption

Transcription

Visa Merchant Data Secure with Point-to-Point Encryption
Visa Merchant Data Secure
with Point to Point
Encryption
(VMDS with P2PE)
Hardware Security Module Guide
Version 2.0
May, 2013
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
Disclaimer
THIS DOCUMENT IS PROVIDED ON AN “AS IS”, “WHERE IS”, BASIS, “WITH ALL FAULTS”
KNOWN AND UNKNOWN. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW,
VISA EXPLICITLY DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, REGARDING
THE LICENSED WORK AND TITLES, INCLUDING ANY IMPLIED WARRANTY OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT.
THE INFORMATION CONTAINED HEREIN IS PROPRIETARY AND CONFIDENTIAL AND
MUST BE MAINTAINED IN CONFIDENCE IN ACCORDANCE WITH THE TERMS AND
CONDITIONS OF THE WRITTEN AGREEMENT BETWEEN YOU AND VISA INC., VISA
INTERNATIONAL SERVICE ASSOCIATION, AND/OR VISA EUROPE LIMITED.
THE INFORMATION INCLUDED IN THIS DOCUMENT IS SUBJECT TO THE EXPORT
ADMINISTRATION REGULATIONS, 15 CFR PARTS 730-774 ("EAR") AND MAY NOT BE
EXPORTED OUTSIDE OF THE UNITED STATES OR OTHERWISE TRANSFERRED TO A
FOREIGN PERSON WITHOUT APPROPRIATE AUTHORIZATION FROM THE DEPARTMENT
OF COMMERCE, BUREAU OF INDUSTRY AND SECURITY. IT IS THE RESPONSIBILITY OF
THE RECIPIENT OF THIS TECHNICAL DOCUMENT TO OBTAIN ANY NECESSARY
AUTHORIZATIONS FROM THE DEPARTMENT OF COMMERCE AND TO COMPLY WITH
ALL REQUIREMENTS OF THE EAR, AS APPLICABLE.
Version History
Version Date
Revision Notes
1.0
February 7,
2013
Initial Publication
2.0
May, 2013
Minor updates
May 2013
Visa Confidential
Page ii
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
Table of Contents
1
Introduction ....................................................................................................................... 1
About Visa and VisaNet ................................................................................................... 1
Scope ................................................................................................................................ 1
PCI SSC P2PE requirements ........................................................................................... 2
Related Documentation .................................................................................................... 2
1.1
1.2
1.3
1.4
2
Visa Merchant Data Secure with P2PE Overview ......................................................... 3
3
How it Works ..................................................................................................................... 4
Solution Overview............................................................................................................. 4
3.1
4
Point of Decryption Requirements ................................................................................. 6
Processors ........................................................................................................................ 6
Hardware Security Modules ............................................................................................. 6
4.2.1 DUKPT Requirements .......................................................................................... 7
4.2.2 Zone Encryption Key Requirements .................................................................... 7
4.1
4.2
5
HSM Functions Required for VMDS ............................................................................... 9
Data Encryption Functions ............................................................................................... 9
5.1.1 Encrypt Standard Option with DUKPT ................................................................. 9
5.1.2 Encrypt VFPE Option with DUKPT .................................................................... 10
5.1.3 Encrypt Standard Option with Zone Encryption Keys........................................ 10
Data Decryption Functions ............................................................................................. 11
5.2.1 Decrypt Standard Option with DUKPT ............................................................... 11
5.2.2 Decrypt VFPE Option with DUKPT .................................................................... 11
5.2.3 Decrypt Standard Option with Zone Encryption Keys ....................................... 12
Data Translation Functions ............................................................................................ 12
5.3.1 Translate Standard Option with DUKPT ............................................................ 13
5.3.2 Translate VFPE Option with DUKPT ................................................................. 13
5.3.3 Translate Standard Option with Zone Encryption Keys ..................................... 14
PIN Translation Functions .............................................................................................. 14
5.4.1 DUKPT PIN Translation with Standard Option Encrypted PAN ........................ 15
5.4.2 DUKPT PIN Translation with VFPE Option Encrypted PAN ............................. 15
5.4.3 Zone Encryption Key PIN Translation with Encrypted PAN .............................. 15
5.1
5.2
5.3
5.4
6
Standard Encryption Option .......................................................................................... 16
6.1
6.2
6.3
May 2013
Primary Account Number (PAN) .................................................................................... 16
6.1.1 Encryption Block Formatting .............................................................................. 16
Cardholder Name ........................................................................................................... 17
6.2.1 Encryption Block Formatting .............................................................................. 17
Track 1 Discretionary Data ............................................................................................. 18
Visa Confidential
Page ii
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
6.3.1 Encryption Block Formatting .............................................................................. 18
Track 2 Discretionary Data ............................................................................................. 19
6.4.1 Encryption Block Formatting .............................................................................. 19
6.4
7
Visa Format Preserving Encryption Option................................................................. 21
Overview ......................................................................................................................... 21
Primary Account Number (PAN) .................................................................................... 22
7.2.1 VFPE Processing for PANs with Valid Check Digits ......................................... 22
7.2.2 VFPE Processing for PANs without Valid Check Digit ...................................... 23
7.3 Cardholder Name ........................................................................................................... 23
7.4 Track 1 Discretionary Data ............................................................................................. 23
7.5 Track 2 Discretionary Data ............................................................................................. 23
7.6 Visa FPE Algorithm ........................................................................................................ 24
7.7 Performance Analysis .................................................................................................... 26
7.8 Limitations and other security considerations ................................................................ 27
7.9 Summary of Properties ................................................................................................... 28
7.10 References ..................................................................................................................... 28
7.11 Intellectual Property Statements / Agreements / Disclosures ....................................... 29
7.1
7.2
8
Supporting Information .................................................................................................. 30
8.1
8.2
8.3
8.4
4-bit Hexadecimal Format .............................................................................................. 30
BASE-10 Alphabet.......................................................................................................... 30
BASE-16 Alphabet.......................................................................................................... 31
Track 1 Alphabet ............................................................................................................ 31
Appendix A
May 2013
Glossary ............................................................................................................ 33
Visa Confidential
Page iii
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
Tables
Table 4-1: Supported Key Management Schemes and VMDS Encryption Options .............. 7
Table 4-2: Supported DUKPT Key Serial Number Formats ..................................................... 7
Table 7-1: Extracting decimal digits from 8 bits ..................................................................... 25
Table 7-2: Yields of base-n numbers from b bits of key material ......................................... 26
May 2013
Visa Confidential
Page iv
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
1
Introduction
Merchant data compromises continue to increase. As a result, merchants prefer not to see, store, or have to
protect card data and are looking for solutions. Point-to-Point encryption is a key pillar of Visa’s security and
processing strategies. This document will focus on Visa Merchant Data Secure with Point-to-Point Encryption
(VMDS with P2PE), and what Hardware Security Module (HSM) manufacturers will need to do to enable this
service in their products. The Visa Merchant Data Secure service will follow the requirements set out in the PCI
Point-to-Point Encryption: Solution Requirements – Encryption, Decryption, and Key Management within
Secure Cryptographic Devices (Hardware/Hardware) document released in April 2012 by the Payment Card
Industry Security Standards Council (PCI SSC).
1.1
About Visa and VisaNet
VisaNet is the most comprehensive retail electronic payment network in the world, consisting of a family of
integrated systems that support and deliver Visa’s payment processing services to its participants. These
services include authorization, clearing and settlement, risk management, information, merchant, acquirer and
issuer solutions. Please contact your Visa representative for details.
Through continued development over the last 20 plus years, VisaNet now connects over 21,000 financial
institutions (FIs) in over 200 countries worldwide. The network utilizes high-speed secure connections with
redundant routing to maximize availability.
1.2
Scope
This Guide focuses on the information needed to understand Visa Merchant Data Secure with P2PE
processing and requirements. It includes basic technical information and high-level tasks required to implement
the service in Point-of-Interface (POI) terminals or devices and terminal and host applications.
It is organized into the following sections:
Section 1: Introduction – introduction to the product and Visa
Section 2: Visa Merchant Data Secure with P2PE Overview – basic overview of the product
Section 3: How it Works – description of the solution
Section 4: Point of Decryption Requirements – detailed requirements for the point where decryption or
transaction is taking place.
Section 5: HSM Functions Required for VMDS – describes the encryption and decryption functions that
are necessary in the HSM for processors to use VMDS
Section 6: Standard Encryption Option – detailed requirements for implementing data protection via
standard encryption with separate encryption blocks.
Section 7: Visa Format Preserving Encryption Option – detailed requirements for implementing the Visa
Format Preserving Encryption algorithm.
Section 8: Supporting Information – helpful information to those implementing the service.
Appendix A: Glossary – glossary of terms and acronyms used in this document.
May 2013
Visa Confidential
Page 1
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
1.3
PCI SSC P2PE requirements
Terminal and HSM device manufacturers that want to participate in the VMDS with P2PE service will
implement the service in compliance with the PCI SSC P2PE Solution Requirements, and will, as part of their
partnership with Visa, perform all of the appropriate PCI SSC validations.
1.4
Related Documentation
Key materials referenced throughout this Guide are listed below. Please ensure you are using the latest
versions of the documents applicable to your implementation, which may vary based on your market.
https://www.pcisecuritystandards.org/documents/P2PE_%20v%201-1.pdf
https://www.pcisecuritystandards.org/documents/P2PE_Program_Guide_June_2012_v1.pdf
https://www.pcisecuritystandards.org/documents/P2PE_glossary_v1-1.pdf
May 2013
Visa Confidential
Page 2
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
2
Visa Merchant Data Secure with P2PE Overview
This product will provide field-level encryption services to protect sensitive cardholder data from the Point of
Interaction (POI) through the merchant’s environment and the payment network infrastructure to VisaNet. This
protection is expected to lower merchant PCI compliance costs and reduce compromise risk for merchants.
The POI may be a point of sale terminal that supports any method of card number entry, such as magnetic
track read, contact and contactless chip read, key entered, etc. It may also be a device that attaches to a
terminal to perform the card read and encryption.
VisaNet will be enhanced to provide decryption services for transactions that utilize the new field-level
encryption scheme being developed with this project.
May 2013
Visa Confidential
Page 3
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
How it Works
3
This section provides an overview of how Visa Merchant Data Secure with P2PE works, including the
processing and settlement flows.
3.1
Solution Overview
Merchants that implement field-level encryption at the point of service will typically encrypt all payment card
transactions that occur at that terminal, regardless of brand.
For card present transactions, the field-level encryption will occur within a Secure Cryptographic Device (SCD)
that is tamper resistant. This is referred to as a ‘hardware’ encryption solution, and will leverage existing PIN
key management and encryption standards for these devices.
The service will have two methods:
•
Standard Encryption Option
•
Format-Preserving Encryption (FPE) Option
Both methods require the following features within the POI device:
•
Symmetric Key Management using the Derived Unique Key Per Transaction (DUKPT) method, as
defined in ANS X9.24.
•
The Data encryption key variant of the DUKPT method shall be used for protecting the data
described in this document. This is separate and unique from the PIN encryption variant that is
commonly used in devices today.
•
The same Initial Key shall be used for generation of the transaction unique and separate PIN
Encryption key variant and Data encryption key variant for a given transaction in the device
•
PIN, when used, and Data encryption shall use the same Key Serial Number for a given transaction
•
The Triple-DES encryption algorithm (TDEA) with double-length keys shall be used for all data
encryption operations.
Note: PIN encryption standards are currently being enhanced to support AES cryptographic technology.
We envision adding support for AES in the future when it is standardized and used for PIN processing.
Field-level encrypted payment card transactions will be sent to a host for authorization. The host may pass
the encrypted data unaltered or translated to VisaNet or their acquiring processor for decryption.
Transaction data capture, which may be performed at the terminal or host for settlement/reconciliation, will
contain encrypted data fields from the authorization. When the authorization was sent to VisaNet for
decryption, the capture files will also be sent to VisaNet for decryption. Visa will forward the unencrypted
capture files to their acquiring processor.
The terminal/device will use the same Base Derivation Key for PIN encryption as for VMDS data encryption.
PIN will use the PIN derivative and VMDS will use the data derivative. Please note that this is accomplished
via a single terminal/device injection. We do not require reinjection, as long as the entity that owns the BDK
can securely convey it to the decryption or translation point.
May 2013
Visa Confidential
Page 4
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
The terminal/device will use the same KSN for PIN data as for VMDS data within a transaction.
May 2013
Visa Confidential
Page 5
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
Point of Decryption Requirements
4
The following requirements apply to the usage of a Hardware Security Module to perform decryption or
translation of data that was encrypted at the point of service with the VMDS service.
4.1
Processors
The VMDS service allows for protection or visibility within many different environments to address the various
processing needs of different organizations. To support the requirements of these parties, a processor utilizing
an HSM may use one or both of the following modes of operation:

Decryption of data – used when the processor is the final decryption point

Translation of data – used when the processor does not have a need for the decrypted data and the
next party also participates in the VMDS service. The protected data is never visible in plain text form
to the host.
The following illustrates some of the potential processor host scenarios that may deploy HSMs for one or both
of the modes. Other types of organizations and processing models may also use VMDS.
Merchant Host or Gateway – when routing to more than one acquirer or network

Uses decryption when routing to a party that does not support VMDS

Uses translation when routing to a party that supports VMDS
Acquirer Processor –

May use decryption function

May use translation when routing to card network that supports VMDS
Card Network –

Uses decryption function
The processor that is performing translation or decryption will be required to:

Implement the appropriate key management for the source and destination zones

Identify the specific transactions that have had VMDS with P2PE applied and the options used to
perform translation or decryption

Utilize an HSM to perform decryption or translation securely without exposing keys or translated data

Update all occurrences of the protected data in the payment transaction with decrypted or translated
values prior to sending to the next party
4.2
Hardware Security Modules
Processors using the VMDS service may receive encrypted data with two different key management schemes
and two different VMDS encryption options. Processors shall utilize HSMs for decrypting or translating the
May 2013
Visa Confidential
Page 6
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
data protected with VMDS. When performing translation, the destination zone must always utilize the standard
encryption option using data zone encryption keys.
The following matrix summarizes the combinations of key management schemes and VMDS encryption
options that may be utilized for encrypted data with the VMDS service.
Table 4-1: Supported Key Management Schemes and VMDS Encryption Options
FUNCTION
Decryption
Translation
Encryption1
SOURCE
TARGET
KEY MANAGEMENT
VMDS OPTION KEY MANAGEMENT
VMDS OPTION
Standard
DUKPT
VFPE
n/a
n/a
Zone Encryption Keys
Standard
Standard
DUKPT
VFPE
Zone Encryption Keys
Standard
Zone Encryption Keys
Standard
Standard
DUKPT
n/a
n/a
VFPE
Zone Encryption Keys
Standard
4.2.1 DUKPT Requirements
VMDS utilizes the transaction unique general purpose Data Encryption keys generated by the DUKPT process
at the point of service for data encryption, as described in ANS X9.24, part 1.
Two Key Serial Number (KSN) formats are currently in use in the market – both of which shall be supported for
VMDS. Please note that the Key Set Identifier (KSI) is a different length in the two formats, both of which
support 4-bit characters in the BASE-16 alphabet (0-9 and A-F). The two formats are summarized below.
Table 4-2: Supported DUKPT Key Serial Number Formats
Old (8 bytes)
New (10 bytes)
KEY SET IDENTIFIER DEVICE ID TRANSACTION COUNTER
6 digits (3 bytes)
19 bits
21 bits
10 digits (5 bytes)
VMDS currently only utilizes the “Data encryption, request or both ways” variant for key calculation of
transaction unique Data Encryption Keys.
4.2.2 Zone Encryption Key Requirements
Double-length Triple-DES symmetric keys are used with the VMDS service. When used, they shall be used for
the sole purpose of general data encryption between parties (transient), and must not be the same as PIN,
MAC or other specific encryption keys.
Standard key conveyance and protection schemes shall also be utilized for general data encryption keys, as
defined in ANS X9.24.
1
Encryption functions are required to support processor testing requirements.
May 2013
Visa Confidential
Page 7
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
May 2013
Visa Confidential
Page 8
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
HSM Functions Required for VMDS
5
To accommodate different processing scenarios, several HSM functions are required. This chapter describes
these functions that are required to support the VMDS service.
Visa Merchant Data Secure with Point-to-Point Encryption supports two basic options for encryption of data.
The commands listed here utilize one or both of these options, which are explained in further detail in other
chapters within this document, as noted below.

Standard Encryption Option – where data is formatted into blocks and then encrypted via normal
Triple-DES encryption with double-length keys. Details of block formatting may be found in section
6, “Standard Encryption Option”.

Visa Format Preserving Option (VFPE) – where data is encrypted in place, without changing the
data type or length of the field. VFPE details may be found in section 7, “Visa Format Preserving
Encryption Option”.
VMDS uses DUKPT key management at the point of service where the sensitive payment details are
encrypted. It also provides support for zone encryption, where fixed or dynamic keys are used for encryption
of sensitive payment data between parties.
This section identifies the functions that are required to support the valid combinations of key management and
encryption options. While these functions are discretely listed, it should not be construed as a requirement for
the HSM to deploy them as separate commands.
5.1
Data Encryption Functions
5.1.1 Encrypt Standard Option with DUKPT
The following information is required for this encryption function:

Plain Text Data to be encrypted

Source data type (e.g., ASCII text, EBCDIC text, 4-bit hexadecimal, etc.)

Target Encryption Block Type – ASCII text or 4-bit hexadecimal digits

DUKPT Key Serial Number (KSN)

Base Derivation Key (BDK)
The function shall encrypt the data in the following manner:
1. Convert the data from the Source Data Type into the format required for the encryption block as
specified in Target Encryption Block Type, if different
2. Format one or more structured encryption blocks in the format specified in the Target Encryption Block
Type with the data and all necessary control, random, length and fill characters
3. Calculate the transaction specific data encryption key from the supplied BDK, using the “Data
encryption, request or both ways” variant.
May 2013
Visa Confidential
Page 9
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
4. The data blocks shall then be encrypted using the calculated transaction specific data encryption key,
with TDES in CBC mode.
The function shall return the following to the calling application host:

Encrypted data block(s)
5.1.2 Encrypt VFPE Option with DUKPT
The following information is required for this encryption function:

Plain Text Data to be encrypted
o
If PAN data, requires full PAN (including digits that will not be encrypted) and indication that
data is a PAN

Source Data Type (e.g., ASCII text, EBCDIC text, 4-bit hexadecimal, etc.)

VFPE Alphabet Identifier

DUKPT Key Serial Number (KSN)

Base Derivation Key (BDK)
The function shall encrypt the data in the following manner:
1. The function shall calculate the transaction specific data encryption key from the supplied BDK, using
the “Data encryption, request or both ways” variant.
2. Using the appropriate Alphabet table, the Plain Text Data shall be converted from its Source Data Type
to the equivalent alphabet number character.
3. Once converted to the alphabet, the data is encrypted with the VFPE algorithm using the calculated
transaction specific data encryption key.
4. After encryption, the encrypted data is converted from the alphabet number character into the Source
Data Type.
Please note that special processes are used in steps 2 through 4 when the encrypted data is the PAN, as
noted in section 7.2, “Primary Account Number (PAN)”.
The function shall return with at least the following to the calling application host:

Encrypted data in the Source Data Type format

If data contains PAN: VFPE MOD10 signal
5.1.3 Encrypt Standard Option with Zone Encryption Keys
The following information is required for this encryption function:

Plain Text Data to be encrypted

Source data type (e.g., ASCII text, EBCDIC text, 4-bit hexadecimal, etc.)

Target Encryption block type – ASCII text or 4-bit hexadecimal digits

Target Zone Encryption Key
May 2013
Visa Confidential
Page 10
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
The function shall encrypt the data in the following manner:
1. Convert the data from the Source Data Type into the format required for the encryption block as
specified in Target Encryption Block Type, if different
2. Format one or more structured encryption blocks in the format specified in the Target Encryption Block
Type with the data and all necessary control, random, length and fill characters
3. Perform TDES decryption with the Target Zone Encryption key, using CBC mode
The function shall return with at least the following to the calling application host:

Encrypted data block(s)
5.2
Data Decryption Functions
5.2.1 Decrypt Standard Option with DUKPT
The following information is required for this decrypt function:

Encrypted data

Encryption block type – ASCII text or 4-bit hexadecimal digits

DUKPT Key Serial Number (KSN)

Base Derivation Key (BDK)

Target data type (e.g., ASCII text, EBCDIC text, 4-bit hexadecimal, etc.)
The function shall decrypt the data in the following manner:
1. Calculate the transaction specific data encryption key from the supplied BDK, using the “Data
encryption, request or both ways” variant.
2. The data blocks shall then be decrypted using the calculated transaction specific data encryption key,
with TDES in CBC mode.
3. Using the encryption block type, extract the actual data from within the structured block (do not include
block formatting characters, such as random or fill characters in the extracted data)
4. Convert the extracted data to desired target data type
The function shall return with at least the following to the calling application host:

The unencrypted data field (not the decrypted encryption block), in the target data type format
5.2.2 Decrypt VFPE Option with DUKPT
The following information is required for this decrypt function:

Encrypted data
o

If PAN data, requires full PAN (including non-encrypted digits) and indication that encrypted
data is a PAN
If Encrypted data contains PAN: VFPE MOD10 signal (may use expiration date)
May 2013
Visa Confidential
Page 11
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide

Source encoding format (e.g., ASCII text, EBCDIC text, 4-bit hexadecimal, etc.)

VFPE Alphabet Identifier

DUKPT Key Serial Number (KSN)

Base Derivation Key (BDK)
The function shall decrypt the data in the following manner:
1. The function shall calculate the transaction specific data encryption key from the supplied BDK, using
the “Data encryption, request or both ways” variant.
2. The encrypted data shall be converted from its source encoding format to the equivalent alphabet
number.
3. Once converted to the alphabet, it is decrypted with the VFPE algorithm using the calculated
transaction specific data encryption key.
4. After decryption, the decrypted data is converted into the source encoding format.
Please note that special processes are used in steps 2 through 4 when the encrypted data is the PAN, as
noted in section 7.2, “Primary Account Number (PAN)”.
The function shall return with at least the following to the calling application host:

The decrypted data in the source encoding format
5.2.3 Decrypt Standard Option with Zone Encryption Keys
The following information is required for this decrypt function:

Encrypted data

Encryption block type – ASCII text or 4-bit hexadecimal digits

Source Zone Encryption Key (of encrypted data)

Target data type (e.g., ASCII text, EBCDIC text, 4-bit hexadecimal, etc.)
The function shall decrypt the data in the following manner:
1. Perform TDES decryption with the source zone encryption key, using CBC mode
2. Using the encryption block type, extract the actual data from within the structured block (do not include
block formatting characters, such as random or fill characters in the extracted data)
3. Convert the extracted data to desired target data type
The function shall return with at least the following to the calling application host:

The unencrypted data field (not the decrypted encryption block), in the target data type format
5.3
Data Translation Functions
Processors may use translation functions to avoid having plain text payment data within their environment.
The VMDS translation functions utilize zone encryption, similar to PIN zone encryption. The target for
May 2013
Visa Confidential
Page 12
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
translation always uses Zone Encryption Keys and the Standard Encryption Option – VFPE is not a supported
target mode for translation functions.
5.3.1 Translate Standard Option with DUKPT
The following information is required for this translate function:

Encrypted data

DUKPT Key Serial Number (KSN)

Base Derivation Key (BDK)

Target Zone Encryption Key (to translate data to)
The function shall translate the data in the following manner:
1. Calculate the transaction specific data encryption key from the supplied BDK, using the “Data
encryption, request or both ways” variant.
2. The data blocks shall then be decrypted using the calculated transaction specific data encryption key,
with TDES in CBC mode.
3. The unencrypted data blocks shall then be re-encrypted using the supplied zone encryption key with
TDES in CBC mode.
The function shall return with at least the following to the calling application host:

The translated (re-encrypted) data encryption block(s)
The translated data shall not be visible outside of the HSM in its decrypted (plain text) form.
5.3.2 Translate VFPE Option with DUKPT
The following information is required for this translate function:

Encrypted data
o
If PAN data, requires full PAN (including non-encrypted digits) and indication that encrypted
data is a PAN

If encrypted data contains PAN: VFPE MOD10 signal (may use expiration date)

Source encoding format (e.g., ASCII text, EBCDIC text, 4-bit hexadecimal, etc.)

VFPE Alphabet Identifier

DUKPT Key Serial Number (KSN)

Base Derivation Key (BDK)

Target Zone Encryption Key (to translate data to)

Target Encryption Block Type – ASCII text or 4-bit hexadecimal digits
The function shall translate the data in the following manner:
1. The function shall calculate the transaction specific data encryption key from the supplied BDK, using
the “Data encryption, request or both ways” variant.
May 2013
Visa Confidential
Page 13
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
2. The encrypted data shall be converted from its source encoding format to the equivalent alphabet
number.
3. Once converted to the alphabet, it is decrypted with the VFPE algorithm using the calculated
transaction specific data encryption key.
4. Using the Target Encryption Block Type, convert the decrypted data into either normal ASCII encoding
or 4-bit hexadecimal digits
5. Format one or more encryption block(s) with the decrypted data into the format specified in the Target
Encryption Block Type
6. Encrypted the encryption block(s) using the supplied zone encryption key with normal TDES in CBC
mode.
Please note that special processes are used in steps 2 through 4 when the encrypted data is the PAN, as
noted in section 7.2, “Primary Account Number (PAN)”.
The function shall return with at least the following to the calling application host:

The translated (re-encrypted) data encryption block(s)
The translated data shall not be visible outside of the HSM in its decrypted (plain text) form.
5.3.3 Translate Standard Option with Zone Encryption Keys
The following information is required for this translate function:

Encrypted data

Source Zone Encryption Key (of encrypted data)

Target Zone Encryption Key (to translate data to)
The function shall translate the data in the following manner:
1. Decrypt the supplied encrypted data block(s) with the Source Zone Encryption Key, using TDES in
CBC mode
2. Encrypt the decrypted encryption data block(s) using the Target Zone Encryption Key, using TDES in
CBC mode.
The function shall return with at least the following to the calling application host:

The translated (re-encrypted) data encryption block(s)
The translated data shall not be visible outside of the HSM in its decrypted (plain text) form.
5.4
PIN Translation Functions
PIN transaction processors that use data translation functions to avoid plain text payment data within their
environment will also require new or enhanced PIN translation functions.
Encrypted PIN blocks use a special blocking format that incorporates the PAN within it. PIN translation
functions require the PAN to perform the decryption / re-encryption within the HSM.
May 2013
Visa Confidential
Page 14
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
PIN translation functions shall be made available to these processors to translate PINs with encrypted PAN
data. For transactions that contain encrypted PIN and PAN data, VMDS requires that the same key
management scheme and type of keys are used for both. For example, if the PIN was encrypted using
DUKPT keys, the PAN data was also encrypted using DUKPT. Similarly, if the PIN was zone encrypted, the
PAN data shall also be zone encrypted.
For all of these functions, the decrypted PAN shall not be visible outside of the HSM.
The functions listed below each shall accommodate all currently supported PIN block formats.
5.4.1 DUKPT PIN Translation with Standard Option Encrypted PAN
When DUKPT was used to encrypt the PIN, it shall also be used for encrypting the PAN and other data
elements.
VMDS currently requires that the same Base Derivation Key (BDK) and Key Serial Number (KSN) are used for
both PIN and Data, when both are present and encrypted.
This translation function requires the full encrypted PAN block (all 16 bytes) to be presented as input to the PIN
translation function.
The HSM shall decrypt the PAN block and use the appropriate positions within it for translating the PIN. The
decrypted PAN shall not be visible outside of the HSM.
5.4.2 DUKPT PIN Translation with VFPE Option Encrypted PAN
When DUKPT was used to encrypt the PIN, it shall also be used for encrypting the PAN and other data
elements.
VMDS currently requires that the same Base Derivation Key (BDK) and Key Serial Number (KSN) are used for
both PIN and Data, when both are present and encrypted.
This translation function requires the VFPE encrypted PAN (all positions, not just the encrypted positions) to be
presented as input to the PIN translation function.
The HSM shall decrypt the proper positions within the PAN and then use the appropriate PAN positions for
translating the PIN. The decrypted PAN shall not be visible outside of the HSM.
5.4.3 Zone Encryption Key PIN Translation with Encrypted PAN
This translation function requires the full encrypted PAN block (all 16 bytes) and the zone encryption key used
to encrypt the PAN to be presented as input to the PIN translation function. Please note that the zone
encryption key used to encrypt the PIN is separate and distinct from the zone encryption key used to encrypt
the PAN.
The HSM shall decrypt the PAN block and use the appropriate positions within it for translating the PIN. The
decrypted PAN shall not be visible outside of the HSM.
May 2013
Visa Confidential
Page 15
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
Standard Encryption Option
6
The Triple-DES encryption algorithm (TDEA) shall be used with Cipher Block Chaining (CBC) for encrypting all
of the fields protected with this option. Data that is to be encrypted shall be converted into a specific encoding
and then formatted into one or more 8-byte (64-bit) blocks. Two encodings are currently supported: 4-bit
hexadecimal and normal ASCII. This section identifies the specific encoding method that must be used for
each field (a field is always encoded with a specific method).
Each of these encryption blocks is specially formatted prior to encipherment with a consistent structure to
facilitate processing and additional security. When more than one encryption block is used for a given data
element, the first block contains additional control information that is not present in the remaining blocks.

A control field (first block only)

A second control field (first block only)

Randomization digits or characters (first block only). Randomization method should conform to X9.82.

A two-digit data length field – contains the number of data digits or characters to be encrypted (first
block only). Excludes control, reserved, length, fill and randomization digits or characters

Data element to be encrypted – converted to normal 7-bit ASCII or 4-bit hexadecimal digits, as required
for the specific data element

Remaining unused positions: Fill digits or characters in unused data positions (these positions are used
as needed in the final block, number of positions varies based on data length)
6.1
Primary Account Number (PAN)
6.1.1 Encryption Block Formatting
Two 64-bit encryption blocks have been constructed with the full PAN in 4-bit hexadecimal digits. Please note
that this is not the same encoding format used in Track 1 or 2 – the encrypting device converts from the
modified 5-bit or 7-bit ASCII into 4-bit hexadecimal digits prior to encipherment. Please refer to the BASE-10
Alphabet table for conversion details.
Encryption blocks containing the PAN element are always encoded in 4-bit hexadecimal format. This is also
true for translated blocks.
First block
Bits
Data
1-4
5-8
9-12
13-16
17-20
21-24
25-28
29-32
33-36
37-40
41-44
45-48
49-52
53-56
57-60
61-64
C1
C2
R
R
R
R
R
R
R
R
L1
L2
D
D
D
D
45-48
49-52
53-56
57-60
61-64
Second block
Bits
Data
1-4
5-8
9-12
13-16
17-20
21-24
25-28
29-32
33-36
37-40
41-44
D
D
D
D
D
D
D
D
D
D
D
D/F D/F D/F D/F
F
where:
C1 = Control field 1
- shall be binary 0000
C2 = Control field 2
- shall be binary 0000
R = Randomization digit
- 4-bit field containing a random digit
May 2013
Visa Confidential
Page 16
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
L1 & L2 = Length of data
- two 4-bit decimal digits containing the length of the PAN data that is present in the
encryption block
e.g., L1=0001 (1) and L2=0110 (6) indicates 16 digits are present
D = PAN digit
- 4-bit field with permissible values of 0000 (zero) to 1001 (9)
D/F = PAN/Fill digit - Designation of these fields is determined by the length field
F = Fill digit
- shall be binary 1111 (F)
PAN Example 1: 16-digit PAN=1234567890123456
Bits
1st blk
2ndblk
1-4
5-8
9-12
13-16
17-20
21-24
25-28
29-32
33-36
37-40
41-44
45-48
49-52
53-56
57-60
61-64
0
5
0
6
C
7
1
8
7
9
F
0
D
1
4
2
8
3
2
4
1
5
6
6
1
F
2
F
3
F
4
F
PAN Example 2: 19-digit PAN=1234567890123456789
Bits
1st blk
2ndblk
1-4
5-8
9-12
13-16
17-20
21-24
25-28
29-32
33-36
37-40
41-44
45-48
49-52
53-56
57-60
61-64
0
5
0
6
2
7
B
8
0
9
7
0
0
1
E
2
3
3
7
4
1
5
9
6
1
7
2
8
3
9
4
F
PAN Example 3: 15-digit PAN=123456789012345
Bits
1st blk
2ndblk
1-4
5-8
9-12
13-16
17-20
21-24
25-28
29-32
33-36
37-40
41-44
45-48
49-52
53-56
57-60
61-64
0
5
0
6
0
7
F
8
A
9
9
0
4
1
8
2
2
3
F
4
1
5
5
F
1
F
2
F
3
F
4
F
6.2
Cardholder Name
6.2.1 Encryption Block Formatting
Two or more 64-bit encryption blocks have been constructed with the full cardholder name field in normal 7-bit
ASCII-encoded characters. Please note that this is not the same encoding format used in Track 1 – the
encrypting device converts from the modified 7-bit ASCII into normal 7-bit ASCII encoded characters prior to
encipherment. Please refer to the Track 1 Alphabet table for conversion details.
Encryption blocks containing the cardholder name element are always encoded in normal 7-bit ASCII format.
This is also true for translated blocks.
First block
Bits
Data
1-8
9-16
17-24
25-32
33-40
41-48
49-56
57-64
C1
C2
R
R
R
R
L1
L2
Blocks Two through Five (as needed)
Bits
Data
1-8
9-16
17-24
25-32
33-40
41-48
49-56
57-64
D
D/F
D/F
D/F
D/F
D/F
D/F
D/F
where
C1 = Control field 1
- shall be binary 00100000 (a blank in ASCII text format)
C2 = Control field 2
- shall be binary 00100000 (a blank in ASCII text format)
R = Randomization character
- Contains a random 7-bit ASCII character.
May 2013
Visa Confidential
Page 17
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
L1 & L2 = Length of data
- two 7-bit ASCII digits containing the length (number of characters) of the Cardholder Name
data field that is present in the encryption block
e.g., L1=00110010 (ASCII ‘2’) and L2=00110110 (ASCII ‘6’) indicates twenty six characters are
present
D = Cardholder Name character
- 7-bit ASCII character
D/F = Cardholder Name character/Fill character
- Designation of these fields is determined by the length field
F = Fill character
- shall be binary 00100001 (‘!’ in ASCII text format)
Cardholder Name Example 1: “NAME/ ”
Bits
1st blk
1-8
2ndblk
N
9-16
17-24
25-32
33-40
41-48
49-56
57-64
0
E
S
/
A
A
Z
M
0
!
6
!
Cardholder Name Example 2: “LASTNAME/FIRSTNAME M.TITLE”
Bits
1st blk
1-8
2ndblk
L
/
M
L
3rdblk
4thblk
5thblk
6.3
9-16
A
F
E
E
17-24
25-32
33-40
41-48
49-56
57-64
7
S
I
4
T
R
M
!
H
N
S
.
!
3
A
T
T
!
2
M
N
I
!
6
E
A
T
!
!
Track 1 Discretionary Data
6.3.1 Encryption Block Formatting
Two or more 64-bit encryption blocks have been constructed with the full Track 1 Discretionary Data field in
normal 7-bit ASCII-encoded characters. Please note that this is not the same encoding format used in Track 1
– the encrypting device converts from the modified 7-bit ASCII into normal 7-bit ASCII encoded characters
prior to encipherment. Please refer to the Track 1 Alphabet table for conversion details.
Encryption blocks containing the Track 1 Discretionary Data element are always encoded in normal 7-bit ASCII
format. This is also true for translated blocks.
First block
Bits
Data
1-8
9-16
17-24
25-32
33-40
41-48
49-56
57-64
C1
C2
R
R
R
R
L1
L2
Blocks Two through Eight (as needed)
Bits
Data
1-8
9-16
17-24
25-32
33-40
41-48
49-56
57-64
D
D/F
D/F
D/F
D/F
D/F
D/F
D/F
where
C1 = Control field 1
- shall be binary 00100000 (blank in ASCII text format)
C2 = Control field 2
- shall be binary 00100000 (blank in ASCII text format)
R = Randomization character
- Contains a random 7-bit ASCII character
May 2013
Visa Confidential
Page 18
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
L1 & L2 = Length of data
- two 7-bit ASCII numbers containing the length of the Track 1 Discretionary Data field that is
present in the encryption blocks
e.g., L1=00110000 (ASCII ‘0’) and L2=00110101 (ASCII ‘5’) indicates five characters are
present
D = Discretionary Data character
- 7-bit ASCII characters
D/F = Discretionary Data character/fill character
- Designation of these fields is determined by the length field
F = Fill character
- shall be binary 00100001 (‘!’ in ASCII text format)
Track 1 Discretionary Data – Example 1: “84923”
Bits
1st blk
1-8
2ndblk
8
9-16
17-24
25-32
33-40
41-48
49-56
57-64
4
Q
9
3
2
8
3
Y
!
0
!
5
!
Track 1 Discretionary Data – Example 2:
“ABCDEFGHIJKLMNOPQRSTUVWXYZ12ABCDEFGHIJKLMNOPQRSTUVWXYZ”
Bits
1st blk
1-8
2ndblk
A
I
Q
Y
E
M
U
3rdblk
4thblk
5thblk
6thblk
7thblk
8thblk
6.4
9-16
17-24
25-32
33-40
41-48
49-56
57-64
B
J
R
Z
F
N
V
V
C
K
S
1
G
O
W
B
D
L
T
2
H
P
X
S
E
M
U
A
I
Q
Y
P
F
N
V
B
J
R
Z
5
G
O
W
C
K
S
!
4
H
P
X
D
L
T
!
Track 2 Discretionary Data
6.4.1 Encryption Block Formatting
One or more 64-bit encryption blocks have been constructed with the full Track 2 Discretionary Data field in 4bit hexadecimal digits. Please note that this is not the same encoding format used in Track 2 – the encrypting
device converts from the modified 5-bit ASCII into 4-bit hexadecimal digits prior to encipherment. Please refer
to the BASE-16 Alphabet table for conversion details.
Encryption blocks containing the Track 2 Discretionary data element are always encoded in 4-bit hexadecimal
format. This is also true for translated blocks.
First block
Bits
Data
1-4
5-8
9-12
13-16
17-20
21-24
25-28
29-32
33-36
37-40
41-44
45-48
49-52
C1
C2
R
R
R
R
R
R
R
R
L1
L2
D
17-20
21-24
25-28
29-32
33-36
37-40
41-44
45-48
49-52
53-56
57-60
61-64
D/F D/F D/F
Second block (if needed)
Bits
Data
1-4
D
5-8
9-12
13-16
53-56
57-60
D/F D/F D/F D/F D/F D/F D/F D/F D/F D/F D/F D/F D/F D/F
61-64
F
where
May 2013
Visa Confidential
Page 19
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
C1 = Control field 1
- shall be binary 0000
C2 = Control field 2
- shall be binary 0000
R = Randomization digit
- 4-bit field containing a random digit
L1 & L2 = Length of data
- two 4-bit decimal digits containing the length of the Track 2 Discretionary Data that is present
in the encryption block
e.g., L1=0001 (1) and L2=1001 (9) indicates 19 digits are present
D = Discretionary Data digit
- 4-bit field with permissible values of 0000 (zero) to 1111 (F)
D/F = Discretionary Data/Fill digit
- Designation of these fields is determined by the length field
F = Fill digit
- shall be binary 1111 (F)
Track 2 Discretionary Data – Example 1: “12345”
Bits
1st blk
2ndblk
1-4
5-8
9-12
13-16
17-20
21-24
25-28
29-32
33-36
37-40
41-44
45-48
49-52
53-56
57-60
61-64
0
5
0
F
5
F
1
F
A
F
9
F
F
F
2
F
E
F
4
F
0
F
5
F
1
F
2
F
3
F
4
F
Track 2 Discretionary Data – Example 2: “1234567890123456789”
Bits
1st blk
2ndblk
1-4
5-8
9-12
13-16
17-20
21-24
25-28
29-32
33-36
37-40
41-44
45-48
49-52
53-56
57-60
61-64
0
5
0
6
A
7
3
8
0
9
8
0
E
1
0
2
4
3
C
4
1
5
9
6
1
7
2
8
3
9
4
F
May 2013
Visa Confidential
Page 20
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
Visa Format Preserving Encryption Option
7
Note: VFPE is currently only supported with DUKPT. It must not be used for zone encryption.
7.1
Overview
When VFPE is applied to a transaction, it must always be applied to all occurrences of the following fields
(when present):

PAN (Track 1, Track 2, chip MSI, chip account number)

Cardholder Name (Track 1 / chip data)

Track 1 Discretionary Data

Track 2 Discretionary Data (including chip MSI)
Due to the characteristics of format preserving encryption, it is not apparent from the fields themselves that
they have been encrypted. Signals shall be included in the Expiration date field to indicate when VFPE has
been applied, and to indicate other specific conditions necessary for decryption. These signals will be applied
during VFPE processing and must be present in all occurrences of the Expiration date that is presented to the
terminal application for authorization and capture processing.
When the Expiration date is not present and VFPE is applied, the field shall be constructed using the current
year and month. The signals discussed below are then applied. Please note that the expiration date field shall
not be constructed when absent from the card or key entry for transactions that do not have VFPE applied.
The following signals are defined for the Expiration date:

VFPE performed
o

Non-compliant check digit
o

‘40’ added to the year – always set when VFPE encryption is applied
‘20’ added to the month – used when the last digit of the PAN does not contain a valid check
digit per ISO/IEC 7812-1.
Missing Expiration date
o
‘40’ added to the month – used when the Expiration date field was missing from the card read or
key entry and was created by the VFPE process.
The following parameters must be set for the VFPE algorithm when used with Visa Merchant Data Secure with
Point-to-Point Encryption. The values used for A, b, k, P and L vary by the field to be encrypted.

Alphabet (‘A’)
The alphabet defines a sequential number set for all potential characters of the field that is to be
encrypted. Data must be translated to the appropriate alphabet for the specific field prior to encryption.

Number of characters in Alphabet (‘n’)
May 2013
Visa Confidential
Page 21
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
The value of ‘n’ is specific to the alphabet used. Please refer to the alphabet definitions in this
document for the value to use for this parameter.

Block cipher size, in ‘b’ bits
The value of ‘b’ is specific to the length of the encryption key that is used. VMDS currently only utilizes
Triple-DES double-length keys, which are 64 bits in length.

Encryption key ‘K’
The transaction-specific double-length 64-bit Triple-DES DUKPT data encryption key variant shall be
used.

Counter block length, specified in ‘k’ digits
The value of ‘k’ is specific to the alphabet used. Please refer to the alphabet definitions in this
document for the value to use for this parameter.

Plaintext ‘P’
The data characters, in the numeric form for the specified Alphabet, to be encrypted

Plaintext length ‘L’
Number of characters represented in ‘P’

Counter ‘T’
The rightmost x bits of the transaction-specific DUKPT Key Serial Number shall be used to initialize ‘T’
for each field that is encrypted.

Counter ‘S’
Used within the VFPE function. Initialized to zero for each encryption block.
7.2
Primary Account Number (PAN)
The first six and last four digits of the PAN shall remain unencrypted with their original values. The remaining
middle digits shall be protected via format preserving encryption (VFPE).
VFPE shall function differently for PANs that contain valid check digits vs. those that do not. Valid check digits
are those that conform to the algorithm specified in ISO/IEC 7812-1. Any other scheme used to calculate
check digits are deemed as not valid check digits for this specification.
The PAN must be converted into the VFPE BASE-10 Alphabet prior to encryption.
After the VFPE algorithm has been applied, the resulting encrypted characters in Alphabet form must be
converted to the original field’s code set and format. The converted encryption result shall be used to replace
the PAN in the original field(s) that were entered or read for presentation to the terminal application.
The original PAN must not be accessible or visible outside of the protected memory space of the HSM.
7.2.1 VFPE Processing for PANs with Valid Check Digits

The middle digits, except for the last of these digits, shall be encrypted with the VFPE algorithm.
May 2013
Visa Confidential
Page 22
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide


The encrypted result shall be used to replace the original values for the corresponding positions in the
original PAN.
The last digit of the ‘middle digits’ shall then be calculated such that the original last digit of the full PAN
is still a valid check digit for the newly constructed PAN.
7.2.2 VFPE Processing for PANs without Valid Check Digit



The middle digits shall all be encrypted with the VFPE algorithm.
The encrypted result shall be used to replace the original values for the corresponding positions in the
original PAN. Please note that the original last digit of the encrypted full PAN may appear to be a valid
check digit after the VFPE function has been performed.
Turn on the signal in the Expiration date field that indicates the original PAN has a non-compliant check
digit position.
7.3
Cardholder Name
The Cardholder Name field, whether in Track 1 or Chip data, shall be protected.
The entire contents of the Cardholder Name field, inclusive of embedded separators (‘/’, ‘ ‘ and ‘.’), shall be
encrypted with VFPE. When protecting the Cardholder Name field in Track 1 data, all positions between the
FS separators (‘^’) shall be presented for encryption. The FS separators are not included in the encryption
operation.
The Cardholder Name must be converted into the VFPE Track 1 Alphabet prior to encryption.
After the VFPE algorithm has been applied, the resulting encrypted characters in Alphabet form must be
converted to the original field’s code set and format. The converted encryption result shall be used to replace
the Cardholder Name that was read from Track 1 or Chip data for presentation to the terminal application for
constructing payment transaction data.
7.4
Track 1 Discretionary Data
When present, the entire Discretionary Data field between the Service Code and End Sentinel elements within
Track 1 shall be encrypted via VFPE.
Prior to encryption, it shall be converted into the Track 1 Alphabet.
After the VFPE algorithm has been applied, the resulting encrypted characters in Alphabet form must be
converted to the original field’s code set and format. The converted encryption result shall be used to replace
the positions of the Discretionary Data field in the original Track 1 read from the magnetic stripe or chip data
prior to presentation to the terminal application for constructing payment transaction data.
7.5
Track 2 Discretionary Data
When present, the entire Discretionary Data field between the Service Code and End Sentinel elements shall
be encrypted via VFPE.
The Track 2 Discretionary Data field shall be converted to the MOD-16 Alphabet prior to performing the VFPE
algorithm.
After the VFPE algorithm has been applied, the resulting encrypted characters in Alphabet form must be
converted to the original field’s code set and format. The converted encryption result shall be used to replace
May 2013
Visa Confidential
Page 23
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
the original Track 2 Discretionary Data field that was read from the magnetic stripe or chip data for
presentation to the terminal application for constructing payment transaction data.
7.6
Visa FPE Algorithm
The Visa Format Preserving Encryption mode (VFPE) operates as a stream cipher that is format preserving.
The easiest way to think of VFPE is as Counter Mode (CTR) from NIST SP800-38A generalized to modulo-n
addition instead of modulo-2 addition.
Let A be an alphabet with n different characters, where n is a natural number greater than 1. We denote by A*
the set of strings with elements from A, including the empty string. In this description it is assumed that the
alphabet A is the set {0, …,n-1}. If this is not the case, a translation is needed, based simply on the number of
different characters in the alphabet A. The translation would happen prior to encryption, and again, after
decryption, so that encryption and decryption will always work on alphabets of the form {0, …,n-1} for some
positive integer n, greater than 1.
VFPE uses Counter (CTR) mode as defined in [5] with a block cipher CIPH (AES or TDEA) with block size b
bits, and encryption key K for CIPH, and a sequence of counter blocks (called counters in [5]) T1, T2, … , to
produce a sequence of output blocks, one for each counter block. Each output block consists of k base-n
digits, where k is a configurable parameter which must be chosen from the interval {
⌊
⌋}. For
reasons explained below, each counter block is b-7 bits, rather than b bits as in [5]. The mechanism for how to
produce the output blocks is also described below.
To encipher a plaintext P of length L, with
, as many output blocks as necessary (but no more) are
generated, so that the total number of base-n digits in the output blocks is at least L, that is, we calculate the
unique integers p and r such that
and
, such that
, and generate output
blocks G1,…, Gp . Then each plaintext base-n digit P[i] is added, modulo-n, to the i’th base-n digit from the
concatenation of the output blocks, G1‖G2‖…‖Gp , to form the i’th digit of the ciphertext:
[]
( []
(
‖
‖
)[ ])
.
Since k may not divide L, some digits of the last output block, Gp may be ignored. In fact, the last r base-n
digits of Gr are not used.
To decipher a ciphertext C of length L, with
, as many output blocks as necessary (but no more) are
generated, so that the total number of base-n digits in the output blocks exceed L, which is done in the same
way as for encryption. Then from each ciphertext base-n digit C[i] is subtracted, modulo-n, the i’th base-n digit
from the concatenation of the output blocks, G1‖…‖Gp , to form the i’th digit of the plaintext:
[]
( []
(
‖
‖
)[ ])
.
For VFPE, as for Counter mode itself, the sequence of counter blocks must have the property that each block
in the sequence is different from every other block. This condition is not restricted to a single encryption:
across all of the messages that are encrypted under a given key K, all counters must be distinct. See [5] for
methods for generating counters.
Given a block cipher CIPH with block length b, a key K for CIPH, a b-7 bit counter T, a natural number n>1,
which is the base of the plaintext to be enciphered, and an integer k with
⌊
( )⌋, an output block
consisting of k base-n digits is produced in the following way:
A 7-bit counter, S, is initialized to 0. Then CIPHK is applied to S‖T to produce a block B of b bits. B is
}, and if
interpreted as an integer in the interval {
⌊ ⌋, then it is accepted, otherwise S is
incremented and CIPHK is applied again to S‖T, etc., until B is accepted or S equals 127. If S = 127, an error
May 2013
Visa Confidential
Page 24
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
is raised, otherwise B is converted to base-n and is the k-digit base-n output block, possibly with leading zeros
. Under the assumption that CIPHK is a pseudorandom permutation, the probability in each iteration that B is
accepted is at least 0.5, and the probability that an error is raised, is at most 2 -128. The pseudocode below
describes this algorithm:
i = 0;
Input_Block = Si ‖ T ;
max_B = (n^k)*((2^b) div (n^k));
B = CIPH(K, Input_Block);
while ( (AsInteger(B) ≥ max_B) AND (i < 127)) {
i = i+1;
Input_Block = Si ‖ T ;
B = CIPH(K, Input_Block);
};
if (i=127) return ERROR;
Output_Block = Convert(B, k, n);
return Output_Block;
Here it is assumed that S0, S1, ..., S127 enumerate the 128 different 7-bit combinations, that “AsInteger” takes a
string of b bits B[1], ..., B[b] and converts it to the integer ∑
[]
, and that “Convert” converts B to k
base-n digits, with leading zeros if necessary:
Convert(B, k, n) {
M = AsInteger(B);
for (i=1; i≤k; i++){
D[i] = M mod n;
M = M div n;
};
return D;
}
The maximum value for L, that is, the bit length of the longest plaintext that can be enciphered is
⁄
.
The upper bound
⌊ ⌋ for B interpreted as an integer is chosen as the largest possible whole multiple of nk,
that makes it possible to extract a k-digit base-n number uniformly from it, assuming the distribution of B is
uniform.
Table 7-1: Extracting decimal digits from 8 bits
below shows as an example the values of B which are acceptable and those which are not, when n = 10
(decimal digits), b = 8 (numbers from 0 to 256) and k = 1 or 2 (extracting 1 or 2 decimal digits).
Table 7-1: Extracting decimal digits from 8 bits
k=1
May 2013
k=2
B
Status
B mod nk
B
Status
B mod nk
0
OK
0
0
OK
0
…
OK
…
…
OK
…
249
OK
9
199
OK
99
200
Try again n/a
250
Try again
n/a
Visa Confidential
Page 25
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
k=1
k=2
B
Status
B mod nk
Try again n/a
…
Try again
n/a
Try again n/a
255
Try again
n/a
B
Status
…
255
B mod n
k
Performance Analysis
7.7
To ensure that there are enough bits for the k base-n digits and a uniform distribution can be achieved, there
are
⌊ ⌋ different acceptable possibilities for the b-bit number B, so that we successfully can extract the kdigit base-n number from b bits with equal likelihood for each k-digit base-n number, which are the cases
where B <
⌊
⌋. In this case the extracted number is B mod nk . The likelihood of success (of extracting a
k-digit base-n number from b bits) is
⌊ ⌋ . If we don't have success, CIPH is called again
with an updated counter, using the same key, K, and we try again the output from CIPHK. This gives the
average number of calls to the block cipher to extract k base-n digits as
, since in general
∑
for
, ignoring the possibility of error. We have probability p of iterating
once (success the first iteration), and thus probability (1-p) of iterating again. In that case, we have conditional
probability p of terminating for a total of 2 iterations, giving the total probability for this case as (1-p)p, and in
general the probability of iterating i+1 times and terminating thereafter is (1-p)ip, which explains the sum above.
Thus the average yield of base-n digits from one call to CIPHK is
.
Table 5-2 below shows the values of
,
, and
for various typical and/or illustrative
values of n, k, and b. The value 95 for the base n is chosen as an example because the number of printable
ascii characters is 95 (when space is considered a printable ascii character).
Table 7-2: Yields of base-n numbers from b bits of key material
May 2013
Base,
n
Number
of Basen digits
Number to
of bits, extract,
b
k
Likelihood of
success per
iteration,
p(n,k,b)
Average number
of iterations,
a(n,k,b)
Average yield
of
base-n digits
per iteration,
y(n,k,b)
10
4
1
0.6250
1.600
0.6250
10
13
3
0.9766
1.024
2.9297
10
64
19
0.5421
1.845
10.2999
10
64
18
0.9758
1.025
17.5641
10
128
38
0.8816
1.134
33.5016
10
128
37
0.9992
1.001
36.9693
10
128
36
0.9992
1.001
35.9701
95
64
9
0.9908
1.009
8.9173
Visa Confidential
Page 26
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
95
64
8
0.9998
1.000
7.9984
95
128
19
0.9980
1.002
18.9629
95
128
18
0.9992
1.001
17.9859
The two cases that are likely to be most important in practice are highlighted in the table above. The table
shows that the highest possible yield of decimal numbers from one round of AES on average (when extracting
37 digits per AES block) is in excess of 36.97 decimal digits, and that the similar number for TDEA is in excess
of 17.56 decimal digits achieved when extracting 18 decimal digits from a TDEA block.
It can be seen from the table that the value k (number of base-n digits extracted from each block of bits output
by CIPH) can sometimes beneficially be set to one less than its maximally allowable value, in order to optimize
the average number of base-n digits generated per call to CIPH.
7.8
Limitations and other security considerations
The maximum allowable value for the base, n, is 2b, where b is the block size of the underlying block cipher. If
, for a t such that
, and where t divides b, VFPE degenerates essentially to CTR since every
possibility of the b bits in the bit stream are acceptable as a -digit base-t number.
The minimum allowable value for n is 2, since it normally does not make practical sense to work in base-1, and
in particular it does not make sense to talk about a random digit in base-1.
Given n and b, the maximum number of base-n digits that can be enciphered using only one counter value is
⌊
( )⌋.
We refer to [5] Appendix B for generation of counter blocks, and to ibid. Section 6.5 for the definition of CTR.
In particular the following quote highlights the requirement for unique counters across the lifetime of a key:
"The sequence of counters must have the property that each block in the sequence is different from every
other block. This condition is not restricted to a single message: across all of the messages that are encrypted
under the given key, all of the counters must be distinct."
In order to mitigate against precomputation attacks as described in [6], it is recommended that each initial
counter block incorporates information unique to the encrypting party. That way the amortization that is crucial
for Hellman’s time-memory tradeoff attack is prevented.
Following the analysis in [6], the plaintext length is limited by the condition that if (for a given encrypting party)
the counter blocks Ti have d variable bits each, excluding bits used for redundancy or to identify uniquely the
encrypting party, then no more than 2d/2 blocks of length b should be generated with one key. Since k base-n
⁄ base-n digits. For
digits are encrypted with each block of b bits, the limit for the plaintext is then
example, if AES is used as CIPH, b=128. The counter blocks are 128-7 = 121 bits each. Assuming 16 bits are
used to uniquely identify the encrypting party, d=105. When extracting k=37 decimal digits from one AES
block, this amounts to a limit of
decimal digits enciphered with any one key.
For TDEA b=64. The counter blocks are 64-7 = 57 bits each. Assuming 16 bits are used to uniquely identify
the encrypting party, d=41. When extracting 18 decimal digits from one TDEA block, this amounts to a limit of
decimal digits enciphered with any one key.
These limits are more conservative than those defined in [5] for CTR.
May 2013
Visa Confidential
Page 27
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
7.9
Summary of Properties
Security Function
Encryption
Error Propagation
None, since key stream is operating on
plaintext digit-by-digit
Synchronization
None built-in. Has to be done outside of mode
if required. For example Derived Unique Key
Per Transaction (DUKPT) can be used. (See
X9.24-1).
Parallelizability
Fully parallelizable. Each block of the key
stream can be generated independently, and
encryption of each block can happen
independently.
Keying Material Requirements
One AES-128 (or TDEA) key required
Counter/IV/Nonce Requirements
8 or 16 byte counter required for key stream
generation to maintain a state, for TDEA and
AES respectively
Memory Requirements
Very low: 8 or 16 byte counter (for TDEA or
AES), 16 byte key, plaintext block, ciphertext
block, plus executable
Pre-processing Capability
Key stream can be pre-computed
Message Length Requirements
If (for a given encrypting party) a counter block
T has d variable bits, excluding bits used for
redundancy or to identify uniquely the
⁄
encrypting party, then no more than
base-n digits should be encrypted with any
one key.
Other Characteristics
Similar to CTR mode, the decryption of any
ciphertext block is vulnerable to the
introduction of specific bit errors into that
ciphertext block if its integrity is not protected.
This malleability may be mitigated by
protecting the integrity of the ciphertext in
other ways, e.g. with a MAC independent of
the encipherment.
7.10 References
[1] M. Bellare, A. Desai, E. JokiPii, and P. Rogaway, A concrete security treatment of symmetric encryption, Sept 2000.
[2] M. Bellare, P. Rogaway, T. Spies, The FFX mode of operation for format-preserving encryption, Draft 1.1, Feb 20,
2010.
[3] J. Black and P. Rogaway, Ciphers with arbitrary finite domains, 2002.
[4] E. Brier, T. Peyrin, J. Stern, BPS: a format-preserving encryption proposal, Ingenico, France, 2010.
[5] M. Dworkin, NIST SP 800-38A: Recommendation for block cipher modes of operation – Methods and techniques,
2001.
May 2013
Visa Confidential
Page 28
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
[6] D. McGrew, Counter mode security: Analysis and recommendations, Cisco Systems, Nov 15, 2002.
[7] J. Vance, VAES3 scheme for FFX – An addendum to “The FFX mode of operation for format-preserving encryption”,
Draft 1.0, May 2011.
[8] X9.24 Part 1: 2009, Retail financial services: Symmetric key management Part 1: Using symmetric techniques.
7.11 Intellectual Property Statements / Agreements / Disclosures
Visa has filed a patent application (USPTO-20090063354, 12/202,978, Account transaction fraud detection) for
parts of the technology described in this submission. Should the patent be granted and the technology
included in the forthcoming NIST document on format preserving encryption, Visa intends to provide license to
the technology on reasonable and non-discriminatory (RAND) terms.
May 2013
Visa Confidential
Page 29
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
Supporting Information
8
8.1
4-bit Hexadecimal Format
The following table illustrates the how values are encoded with this format.
Decimal
Value
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
8.2
Hexadecimal
Format
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
Binary
Format
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
BASE-10 Alphabet
This alphabet is used when the character set only consists of numbers zero (0) through nine (9). The original data type of
the source field may be of any type. The table below is representative of several commonly used formats.
ISO 7811
Normal data type encoding
VFPE
Modified
ISO 7811
alphabet Charac
5-bit
Modified 74-bit Binary
number
ter
ASCII
bit ASCII Coded Decimal 7-bit ASCII 8-bit EBCDIC
0
0
10000
0010000
0000
0110000
11110000
1
1
00001
1010001
0001
0110001
11110001
2
2
00010
1010010
0010
0110010
11110010
3
3
10011
0010011
0011
0110011
11110011
4
4
00100
1010100
0100
0110100
11110100
5
5
10101
0010101
0101
0110101
11110101
6
6
10110
0010110
0110
0110110
11110110
7
7
00111
1010111
0111
0110111
11110111
8
8
01000
1011000
1000
0111000
11111000
9
9
11001
0011001
1001
0111001
11111001
This alphabet requires the following values to be used in the VFPE algorithm:

Number of characters in Alphabet (‘n’): 10
May 2013
Visa Confidential
Page 30
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide

Counter block length, specified in ‘k’ digits:
8.3
??
BASE-16 Alphabet
Cards are encoded with the special ISO 7811 Modified 5-bit ASCII encoding for Track 2. This data type allows parity
checking of the digits. Many systems require this encoding to be converted into standard data types for processing.
Other data fields may use base-16 encoding, and would use this same alphabet when performing VFPE. These data types
support values of zero (0) through nine (9) and (A) through (F).
VFPE requires translation of the characters to the VFPE alphabet number prior to encryption, thus any of the data types
shown in the table below are supported. Decryption may use the same or a different data type than the original encoding.
ISO 7811 Modified
5-bit ASCII encoding
Normal data type encoding
VFPE
alphabet
8-bit
number
Character
Binary
Character
4-bit
7-bit ASCII EBCDIC
0
0
10000
0
0000
0110000
11110000
1
1
00001
1
0001
0110001
11110001
2
2
00010
2
0010
0110010
11110010
3
3
10011
3
0011
0110011
11110011
4
4
00100
4
0100
0110100
11110100
5
5
10101
5
0101
0110101
11110101
6
6
10110
6
0110
0110110
11110110
7
7
00111
7
0111
0110111
11110111
8
8
01000
8
1000
0111000
11111000
9
9
11001
9
1001
0111001
11111001
10
:
11010
A
1010
1000001
11000001
11
;
01011
B
1011
1000010
11000010
12
<
11100
C
1100
1000011
11000011
13
=
01101
D
1101
1000100
11000100
14
>
01110
E
1110
1000101
11000101
15
?
11111
F
1111
1000110
11000110
This alphabet requires the following values to be used in the VFPE algorithm:


Number of characters in Alphabet (‘n’): 16
Counter block length, specified in ‘k’ digits:
8.4
??
Track 1 Alphabet
The Track 1 format on cards supports a limited set of characters, encoded with a special modified 7-bit ASCII format as
specified in ISO 7811-2 and ISO 7813. This special data type allows parity checking of the digits. Many systems require
this encoding to be converted into standard data types for processing.
VFPE requires translation of the characters to the VFPE alphabet number prior to encryption, thus any of the data types
shown in the table below are supported.
Decryption may use the same or a different data type than the original encoding.
Please note that some characters are represented differently in ASCII and EBCDIC formats (e.g., ‘^’ in ASCII is ‘¬’ in
EBCDIC).
VFPE
alphabet
number
0
May 2013
Standard Data Types
ISO 7811
Modified
8-bit
Character 7-bit ASCII 7-bit ASCII EBCDIC
space
1000000
0100000 01000000
VFPE
alphabet
number
30
Visa Confidential
ISO 7811
Modified
Character 7-bit ASCII
@
0100000
Standard Data Types
7-bit
ASCII
8-bit
EBCDIC
1000000 01111100
Page 31
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
1
2
3
4
5
!
“
#
$
%
0000001
0000010
1000011
0000100
1000101
0100001
0100010
0100011
0100100
0100101
01011010
01111111
01111011
01011011
01101100
31
32
33
34
35
A
B
C
D
E
1100001
1100010
0100011
1100100
0100101
1000001
1000010
1000011
1000100
1000101
11000001
11000010
11000011
11000100
11000101
6
7
8
9
10
11
12
13
14
15
16
17
18
19
&
‘
(
)
*
+
,
.
/
0
1
2
3
1000110
0000111
0001000
1001001
1001010
0001011
1001100
0001101
0001110
1001111
0010000
1010001
1010010
0010011
0100110
0100111
0101000
0101001
0101010
0101011
0101100
0101101
0101110
0101111
0110000
0110001
0110010
0110011
01010000
01111101
01001101
01011101
01011100
01001110
01101011
01100000
01001011
01100001
11110000
11110001
11110010
11110011
36
37
38
39
40
41
42
43
44
45
46
47
48
49
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
0100110
1100111
1101000
0101001
0101010
1101011
0101100
1101101
1101110
0101111
1110000
0110001
0110010
1110011
1000110
1000111
1001000
1001001
1001010
1001011
1001100
1001101
1001110
1001111
1010000
1010001
1010010
1010011
11000110
11000111
11001000
11001001
11010001
11010010
11010011
11010100
1101-101
11010110
11010111
11011000
11011001
11100010
20
21
22
23
24
25
26
27
28
29
30
31
4
5
6
7
8
9
:
;
<
=
>
?
1010100
0010101
0010110
1010111
1011000
0011001
0011010
1011011
0011100
1011101
1011110
0011111
0110100
0110101
0110110
0110111
0111000
0111001
0111010
0111011
0111100
0111101
0111110
0111111
11110100
11110101
11110110
11110111
11111000
11111001
01111010
01011110
01001100
01111110
01101110
01101111
50
51
52
53
54
55
56
57
58
59
60
61
T
U
V
W
X
Y
Z
[
\
]
^
_
0110100
1110101
1110110
0110111
0111000
1111001
1111010
0111011
1111100
0111101
0111110
1111111
1010100
1010101
1010110
1010111
1011000
1011001
1011010
1011011
1011100
1011101
1011110
1011111
11100011
11100100
11100101
11100110
11100111
11101000
11101001
?
11100000
?
01011111
01101101
This alphabet requires the following values to be used in the VFPE algorithm:


Number of characters in Alphabet (‘n’): 62
Counter block length, specified in ‘k’ digits:
May 2013
Visa Confidential
??
Page 32
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
Appendix A
Glossary
Term
Definition
Advanced Encryption Standard
(AES)
Block cipher used in symmetric key cryptography
adopted by NIST in November 2001 as U.S. FIPS PUB
197 (or “FIPS 197”). It is an alternative to and a stronger
encryption algorithm than DES.
AES
see Advanced Encryption Standard
Acquirer Working Key (AWK)
Visa specific terminology used to describe a Zone
Encryption Key used between an acquiring processor
and Visa. AWKs are currently used for processing
encrypted PIN data. The Visa Merchant Data Secure
with P2PE service will also define another set of AWKs
for use with other encrypted data.
Base Derivation Key (BDK)
A derivation key normally associated with Derived
Unique Key Per Transaction
BDK
see Base Derivation Key
CA
see Certificate Authority
Capture File
A file that contains details captured at the point of
service or a host for payment transactions. These files
are typically presented to an acquiring processor for
settlement. The acquiring processor may use these files
for multiple purposes, including, but not limited to,
creating clearing drafts to appropriate network (for dualmessage only), reconciliation and settlement with the
merchant (including merchant discount).
Card Not Present (CNP)
Environment where the cardholder does not present the
card or chip representation of the card at the point of
service. The cardholder may or may not be physically
present at the point of service. CNP includes Electronic
Commerce (e-Commerce), Mail-order, Telephone-order
and other environments.
Card Present (CP)
Environment where the cardholder presents the card or
chip representation of the card at the point of service.
The point of service may be attended or unattended.
Certificate Authority
An entity that issues digital certificates
Composite Field Format
One of three types of field structures defined in ISO
8583:2003-1. This type of field is variable-length, and is
structured using TLV formatted elements contained
within one or more datasets. See also “Primitive Field
Format.”
Crypto
see Cryptography
May 2013
Visa Confidential
Page 33
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
Term
Definition
Cryptography
A method to protect data. Includes both encryption
(which is reversible) and hashing (which is not
reversible, or “one way”).
Data Encryption Standard
(DES)
A block cipher that uses shared secret encryption. It is
based on a symmetric-key algorithm that uses a 56-bit
key.
Derivation Key
A key that is used to compute cryptographically another
key. Normally a single derivation key is used in a
transaction-receiving (e.g., acquirer) TRSM to derive or
decrypt the Transaction Keys used by a large number of
originating (e.g., terminal) TRSMs.
Derived Unique Key Per
Transaction
A key management method that uses a unique key for
each transaction, and prevents the disclosure of any
past key used by the transaction-originating TRSM. The
unique Transaction Keys are derived from a base
derivation key using only non-secret data transmitted as
part of each transaction.
DES
see Data Encryption Standard
Direct Exchange
Direct Exchange, a method for connecting directly to
VisaNet
DSS
Acronym for “Data Security Standard” and also referred
to as “PCI DSS”
See also PCI SSC.
DUKPT
see Derived Unique Key Per Transaction
ECR
Acronym for “Electronic Cash Register.”
Federal Information
Processing Standards (FIPS)
Standards that are publicly recognized by the U.S.
Federal Government; also for use by non-government
agencies and contractors.
FIPS
see Federal Information Processing Standards
May 2013
Visa Confidential
Page 34
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
Term
Definition
Hardware Security Module
(HSM)
A special type of TRSM. It is a secure cryptoprocessor
targeted at managing digital keys, accelerating
cryptoprocesses and for providing strong authentication
to access critical keys for server applications. These
modules are physical devices that traditionally come in
the form of a plug-in card or an external security device
that can be attached directly to the server or general
purpose computer.
The goals of an HSM are (a) onboard secure generation,
(b) onboard secure storage, (c) use of cryptographic and
sensitive data material, (d) offloading application servers
for complete asymmetric and symmetric cryptography.
HSMs provide both logical and physical protection of
these materials from non-authorized use and potential
adversaries.
Host
Main computer hardware on which computer software is
resident. Within this document, it typically identifies one
or more systems that are responsible for performing
merchant processing, routing decision and/or capture.
These systems may resident at a merchant, gateway,
processor or other entity.
HSM
see Hardware Security Module
ISO
Acronym for “International Organization for
Standardization.”
A non-governmental standards organization consisting
of a network of the national standards institutes of over
150 countries, with one member per country and a
central secretariat in Geneva, Switzerland, that
coordinates the system.
ISO (Payment Industry)
Acronym for Independent Service Organization.
Issuer Discretionary Data
(IDD)
Data that resides in Track 1 and Track 2 of a card’s
magnetic stripe or chip magnetic stripe image (MSI).
This data is located between the Service Code and the
End Sentinel. It is variable in length and may contain
customer and/or card verification data (e.g., PIN
offset/PVV, CVV) and other data defined by card brands
and/or issuers, including merchant/issuer co-brand
information (e.g., merchant/loyalty info, fleet data, etc.)
Issuer Working Key (IWK)
Visa specific terminology used to describe a Zone
Encryption Key used between an issuer processor and
Visa. AWKs are currently used for processing encrypted
PIN data.
May 2013
Visa Confidential
Page 35
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
Term
Definition
Key Serial Number (KSN)
A security element created by the terminal that
performed encryption using the DUKPT method for key
management. This element contains information that is
required to perform decryption or translation of the data
that was encrypted via this method.
Key Set Identifier (KSI)
A sub-element of the Key Serial Number that identifies
the Base Derivation Key from which the current PIN or
Data transaction encryption key was derived. The KSI
occupies the left-most positions of the KSN and is
variable in length. The length of the KSI (in bytes) is
derived by subtracting 5 from the total length (in bytes) of
the KSN (note that each byte represents 2 digits).
Local Master Key (LMK)
Used for encrypting locally held keys. The LMK is never
distributed outside of its own environment and is never
used for encrypting data. In the VisaNet environment,
the LMK is housed in an HSM.
Merchant Direct Exchange
(MDEX)
A program where the merchant connects directly to
VisaNet for authorization processing.
NIST
Acronym for “National Institute of Standards and
Technology.”
A non-regulatory federal agency within U.S. Commerce
Department‹s Technology Administration. Their mission
is to promote U.S. innovation and industrial
competitiveness by advancing measurement science,
standards, and technology to enhance economic
security and improve quality of life.
PAN
Acronym for “primary account number.”
A unique payment card number (typically for credit or
debit cards) that identifies the issuer and the particular
cardholder account.
PCI
Acronym for “Payment Card Industry.”
May 2013
Visa Confidential
Page 36
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
Term
Definition
PCI SSC
Acronym for “PCI Security Standards Council.”
This council offers standards and supporting materials to
enhance payment card data security. These materials
include a framework of specifications, tools,
measurements and support resources to help
organizations ensure the safe handling of cardholder
information at every step. The keystone is the PCI Data
Security Standard (PCI DSS), which provides an
actionable framework for developing a robust payment
card data security process -- including prevention,
detection and appropriate reaction to security incidents.
See
https://www.pcisecuritystandards.org/security_standards/
for more information.
PED
Acronym for “PIN Entry Device.”
PIN Block
An encrypted block of data used to encapsulate a PIN.
The PIN block format defines the content of the PIN
block and how it is processed to retrieve the PIN. The
PIN block is composed of the PIN, the PIN length, and
may contain subset of the PAN.
Plain Text
Describes data that is not encrypted. Applies to any type
of non-encrypted encoding format, such as ASCII text,
EBCDIC text, 4-bit hexadecimal digits, VFPE Alphabet
number, etc.
POS
Acronym for “point of sale.” Used interchangeably to
identify the merchant environment where a purchase is
made or the hardware/software at a merchant used to
process payment card transactions at merchant
locations.
Point of Interface
The initial point where the card data is read or otherwise
obtained. The point of interface may be attended or
unattended and applies to card present and card not
present environments.
Primitive Field Format
One of three types of field structures defined in ISO
8583:2003-1. This type of field only contains a single
element and does not have any implicit structure within
it. The data type and content of the field is defined in the
data dictionary within the ISO specification or proprietary
technical specification, as appropriate. See also
“Composite Field Format.”
PTS
Acronym for “PIN Transaction Security,” PTS is a set of
modular evaluation requirements managed by PCI
Security Standards Council, for PIN acceptance POI
terminals.
See www.pcisecuritystandards.org for more information.
May 2013
Visa Confidential
Page 37
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
Term
Definition
QSA
Acronym for “Qualified Security Assessor.” A company
approved by the PCI SSC to conduct PCI DSS on-site
assessments.
RSA
Algorithm for public-key encryption described in 1977 by
Ron Rivest, Adi Shamir, and Len Adleman at
Massachusetts Institute of Technology (MIT); letters
RSA are the initials of their surnames.
Scoping (PCI)
Process of identifying all system components, people,
and processes to be included in a PCI DSS assessment.
The first step of a PCI DSS assessment is to accurately
determine the scope of the review.
Sensitive Authentication Data
Security-related information (including but not limited to
card validation codes/values, full magnetic-stripe data,
PINs, and PIN blocks) used to authenticate cardholders
and/or authorize payment card transactions.
Strong Cryptography
Cryptography based on industry-tested and accepted
algorithms, along with strong key lengths and proper
key-management practices. Examples of industry-tested
and accepted standards and algorithms for encryption
include AES (128 bits and higher), TDES (minimum
double-length keys), RSA (1024 bits and higher), ECC
(160 bits and higher), and ElGamal (1024 bits and
higher). See NIST Special Publication 800-57
(www.csrc.nist.gov/publications/) for more information.
See also Cryptography.
Symmetric Key
A cryptographic key that is used in a symmetric
cryptographic algorithm (e.g., TDEA). The same
symmetric key that is used for encryption is also used for
decryption.
Tamper-Resistant Secuirity
Module (TRSM)
A device that incorporates physical protections to
prevent compromise of Cryptographic Security
Parameters (CSP) therein contained. There are varying
levels of protection afforded by TRSMs:
Tamper-resistance: make intrusion difficult, usually by
employing hardened casing.
Tamper-evident: make intrusion attempts evident to
subsequent viewers, often by employing seals that must
be broken during intrusion
Tamper-responsiveness: detect the intrusion attempt
and destroy the contents in the process
TDES
Acronym for “Triple Data Encryption Standard” and also
known as “3DES” or “Triple DES.”
See also Triple Data Encryption Algorithm
TDEA
see Triple Data Encryption Algorithm
May 2013
Visa Confidential
Page 38
Visa Merchant Data Secure with Point-to-Point Encryption
HSM Guide
Term
Definition
Triple Data Encryption
Algorithm (TDEA)
A block cipher that applies the Data Encryption Standard
(DES) cipher algorithm three times to each data block.
Commonly referred to as TDES or Triple DES.
Triple DES
see Triple Data Encryption Algorithm
TRSM
see Tamper-Resistant Security Module
Zone Control Master Key
(ZCMK)
A type of key that is used to encrypt other keys for
transport. This type of key is also known as a Key
Transport Key. ZCMKs are never used for encrypting
data – they are only used for encrypting keys.
Zone Encryption Key (ZEK)
A type of key that is used to encrypt data between two
specific points (e.g., between acquirer processor and
Visa, between Visa and Issuer processor). Visa
currently utilizes ZEKs for encrypted PIN processing.
See Acquirer Working Key (AWK) and Issuer Working
Key (IWK).
May 2013
Visa Confidential
Page 39