《中国银联PIN校验码算法标准(QCUP+032-2008).pdf》由会员分享,可在线阅读,更多相关《中国银联PIN校验码算法标准(QCUP+032-2008).pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 Q/CUP 中 国 银 联 股 份 有 限 公 司 企 业 标 准Q/CUP 0322008中国银联 PIN 校验码算法标准 Specification for PIN verification number (报批稿)中国银联股份有限公司中国银联股份有限公司 发布 发布Q/CUP 0322008 I 目 次 前言.II 1 范围.1 2 规范性引用文件.1 3 术语和定义.1 4 PVN计算数据源.1 5 PVN算法.1 Q/CUP 0322008 II 前 言 本标准规定了银联卡PIN校验码(PVN)的算法。如何使用PIN校验码参见相应的业务规则。本标准由中国银联股份有限公司提出。本标准
2、起草单位:中国银联技术管理部。本标准主要起草人:李伟、顾民强、万高峰。Q/CUP 0322008 1 中国银联 PIN 校验码算法标准 1 范围 本标准规定了银联卡PIN校验码(PVN)的算法。如何使用PIN校验码参见相应的业务规则。本规范适用于所有授权银联为其进行交易代授权PIN校验的发卡机构。2 规范性引用文件 下列文件中的条款通过本标准的引用而成为本标准的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本标准,然而,鼓励根据本标准达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本标准。Q/CUP 002 银行卡信
3、息交换术语 Q/CUP 005 银联卡卡片规范 3 术语和定义 下列术语和定义适用于本标准。3.1 PIN 校验码 PIN verification number;PVN 指用于代授权校验PIN时对持卡人PIN进行验证的代码。3.2 PVK PIN verification key 指用于产生PVN的加密密钥,长度为128位。4 PVN 计算数据源 计算PVN的数据源包括:主账号(PAN)右端除校验位以外的11位数字 KeyA,PVK的左侧64位 KeyB,PVK的右侧64位 PVK索引号,取值为1-F(0为保留)持卡人PIN最左的4位数字 KeyA和KeyB组成了PVK,PVK是一组银联与代
4、授权机构之间约定的128位的密钥,最多可15个,该组密钥专为代授权交易计算和验证PVN使用,该组密钥的索引号为1F(0为保留),可分别用不同的密钥对不同的卡号或卡号段进行PVN计算。在机构向银联提交/导入代授权信息文件时,应包含索引信息,以便银联用PVK索引号指定的128位长的密钥进行PVN验证。5 PVN 算法 计算PVN时使用KeyA和KeyB。计算步骤如下:(1)取PVK索引号约定的某个128位长的密钥PVK,PVK的左侧64位为KeyA,右侧64位为KeyB。(2)取主账号右端除校验位以外的11位数字、密钥PVK的索引号、PIN明文左端4位数字,依次构成一个16位数字串,每位数字用压缩
5、BCD码表示,形成1个64位长的二进制计算块Block。(3)用KeyA对Block做DES加密运算,得到结果Block1。Q/CUP 0322008 2(4)用KeyB对Block1做DES解密运算,得到结果Block2。(5)用KeyA对Block2做DES加密运算,得到结果Block3。(6)对Block3从左到右抽取出所有的数字(09)。(7)对Block3从左到右抽取出所有的十六进制字符(AF),并对每一个十六进制字符减十进制10,使之变为数字。(8)将步骤6和7得出的数字依次从左至右排列,步骤7得出的数字放在步骤6得出的数字之后。(9)取步骤8结果的前4位数字,即为PVN值。示例:
6、主账号 PAN=6226 8888 8888 888 X(X 为校验位)密钥索引号 I=3 密钥 PVK=0123 4567 89AB CDEF FEDC BA98 7654 3210 PIN=123456 步骤 1:KeyA=0123456789ABCDEF KeyB=FEDCBA9876543210 步骤 2:Block=88888888888 3 1234 (注:实际运算中无需空格)步骤 3:Block1=DES(Encrypt,Block,KeyA)=573F946BFDDEDCB3 步骤 4:Block2=DES(Decrypt,Block1,KeyB)=D502CA5AD7EDCD34 步骤 5:Block3=DES(Encrypt,Block2,KeyA)=CB51EB697ABDCB1C 步骤 6:抽取 Block3 中的数字=516971 步骤 7:抽取 Block3 中的十六进制字符(CBEBABDCBC),并作数值化处理=2141013212 步骤 8:组合步骤 6 和步骤 7=5169712141013212 步骤 9:取步骤 8 前 4 位数字,PVN=5169