Mac Module Design; Ansi (Standard) Mac Algorithms - VeriFone MX800 series Programmer's Manual

Hide thumbs Also See for MX800 series:
Table of Contents

Advertisement

IPP MS
DUKPT C
AND
OMMUNICATIONS
MAC-Specific Packets

MAC Module Design

340
M
X
800 S
P
ERIES
ROGRAMMERS
P
ACKETS
Table 91
Packet 72 Communication Protocol
Master Device
<STX>72<ETX>{LRC}

ANSI (Standard) MAC Algorithms

The algorithm to calculate the MAC is fully compatible with the ANSI X9.19 1986,
Financial Institution Retail Message Authentication specification. Within this
standard, there are two modes of operation: CBC (Cipher Block Chaining) and
CFB-64 (64-bit Cipher Feedback). In IPP5 implementation (that is, IPP5 and
higher, including IPP6, IPP7, and Omni 33XX IPP), CBC is used for MAC
calculation.
The master key and the working key for MAC calculation can be downloaded with
Z66 packet. Selection of these keys depends on the first Z66 packet
configurations within each MAC session, as summarized in
Table 92
MAC for Master and Working Keys
[pointer]
[working key]
present
present
absent
present
After the MAC calculation, there is an optional procedure used to increase
protection against exhaustive key determination. This procedure can be turned
on/off by the [second key] field of the first Z66 packet. If this second key was
provided with the first Z66 packet, this procedure generates the final MAC and
uses [second key] as the master key pointer. If no [second key] is provided,
no procedure is performed on the current MAC.
One thing to note is that [second key] is used on a session-by-session basis.
Each [second key] field of the first Z66 packet defines its own optional
procedure on/off status during that MAC session. For more detailed information
about MAC optional procedure, please refer section 2.4.4.5 of the ANSI X9.19
specification.
After the process completes, a 64-bit MAC is generated. This MAC value returns
to the master device with packet Z67. If there any errors are detected during the
MAC process, packet Z67 returns with [code] set to an error code.
G
UIDE
Transmit
IPP
Direction
ACK if LRC
NAK if LRC incorrect
Selection
Master key selected by [pointer]; working key decrypted
by master key.
Working key decrypted by current active master key.
Table
92.

Advertisement

Table of Contents
loading

Table of Contents