MAC算法原理

来源:
导读 大家好,我是本期栏目编辑小友,现在为大家讲解MAC算法原理问题。 测量与控制(测量和控制)算法原理 本文根据

大家好,我是本期栏目编辑小友,现在为大家讲解MAC算法原理问题。

测量与控制(测量和控制)算法原理

本文根据《中国银联直联POS终端规范》 的阐述,用C语言编程实现,该算法在实际的商业刷卡机终端中使用位置。终端采用英国板球理事会的加密方式,简述如下:

a)将欲发送给刷卡机中心的消息中,从消息类型(MTI)到63域之间的部分构成测量与控制(测量和控制)

电子街区(MAB)。

b)对MAB,按每8个字节做异或(不管信息中的字符格式),如果最后不满8个字

节,则添加0X00。

示例:

MAB=M1M2M3M4

其中:

M1=MS11 MS12 MS13 MS14 MS15 MS16 MS17 MS18

M2=MS21 MS22 MS23 MS24 MS25 MS26 MS27 MS28

M3=MS31 MS32 MS33 MS34 MS35 MS36 MS37 MS38

M4=MS41 MS42 MS43 MS44 MS45 MS46 MS47 MS48

按如下规则进行异或运算:

MS11 MS12 MS13 MS14 MS15 MS16 MS17 MS18

异或)MS21 MS22 MS23 MS24 MS25 MS26 MS27 MS28

-

TEMP块1=TM11 TM12 TM13 TM14 TM15 TM16 TM17 TM18

然后,进行下一步的运算:

TM11 TM12 TM13 TM14 TM15 TM16 TM17 TM18

异或)MS31 MS32 MS33 MS34 MS35 MS36 MS37 MS38

-

TEMP块2=TM21 TM22 TM23 TM24 TM25 TM26 TM27 TM28

再进行下一步的运算:

TM21 TM22 TM23 TM24 TM25 TM26 TM27 TM28

异或)MS41 MS42 MS43 MS44 MS45 MS46 MS47 MS48

-

结果块=TM31 TM32 TM33 TM34 TM35 TM36 TM37 TM38

c)将异或运算后的最后8个字节(结果块)转换成16 个十六进制:

结果块=TM31 TM32 TM33 TM34 TM35 TM36 TM37 TM38

=TM311 TM312 TM321 TM322 TM331 TM332 TM341 TM342 | |

TM351 TM352 TM361 TM362 TM371 TM372 TM381 TM382

d)取前8个字节用马克加密:

ENC块1=eMAK(TM311 TM312 TM321 TM322 TM331 TM332 TM341 TM342)

=EN11EN12EN13EN14EN15EN16EN17EN18

e)将加密后的结果与后8个字节异或:

EN11 EN12 EN13 EN14 EN15 EN16 EN17 EN18

异或)TM351 TM352 TM361 TM362 TM371 TM372 TM381 TM382

-

温度块=TE11 TE12 TE13 TE14 TE15 TE16 TE17 TE18

f)用异或的结果温度块再进行一次单倍长密钥算法运算。

ENC区块2=eMAK(TE11 TE12 TE13 TE14 TE15 TE16 TE17 TE18)

=EN21EN22EN23EN24EN25EN26EN27EN28

g)将运算后的结果(ENC区块2)转换成16 个十六进制:

ENC区块2=EN21 EN22 EN23 EN24 EN25 EN26 EN27 EN28

=EM211 EM212 EM221 EM222 EM231 EM232 EM241 EM242 | |

em 251 em 252 em 261 em 262 em 271 em 272 em 281 em 282

示例:

电子海图结果=%H84、%H56、%HB1、%HCD、%H5A、%H3F、%H84、%H84

转换成16 个HEXDECIMAL:

“8456B1CD5A3F8484”

h)取前8个字节作为测量与控制(测量和控制)值。

取“8456B1CD”为测量与控制(测量和控制)值。

标签:

版权声明:转载此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢您的支持与理解。