DUKPT进一步分析
书接上文,我们知道了EC=1时的Current Key生成流程和交易处理流程,那么后续EC=2、EC=3…EC=n的情况呢?
我们回头看一下上文中提到的”发生交易时,POS的处理“:
1> Current KSN = IKSN and EC++
2> Current PEK = PEK_Derive(Initial PEK, Current KSN)
3> Encrypted PIN = T-DES(Opr=Encrypt, Current PEK, Clear PIN)
4> 把Current KSN和Encrypted PIN放到交易报文里面,发送给Acquirer Host
其实这里我有些偷懒了(表打我哦…),想一下,在这个追求用户体验的年代,刷卡交易的速度一定是评估刷卡体验的重要指标。
那么,为了提高速度,怎么简化一下上述流程呢?抛开算法层面的优化,很自然的一个想法:把能提起做的事情,先提前做起来!
哪些步骤可以提前做?看看上述流程中每个步骤的入参,好像只有Clear PIN是持卡人在交易发生时输入的,其它参数不都是POS内部的数据么!
这是个好消息!这样的话,我们可以在初始化POS(想想上文提到的“初始化”流程)时,就把E