找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 1507|回復(fù): 0
收起左側(cè)

LKCOS安全芯片MAC計(jì)算方法簡介(一):PBOC-MAC計(jì)算

 關(guān)閉 [復(fù)制鏈接]
ID:349277 發(fā)表于 2022-6-2 10:04 | 顯示全部樓層 |閱讀模式
該方法來源于PBOC標(biāo)準(zhǔn)。
命令安全報文中的MAC是使用命令的所有元素(包括命令頭和命令數(shù)據(jù)域中的數(shù)據(jù))來產(chǎn)生的。以保證命令連同數(shù)據(jù)能夠正確完整地傳送,并對發(fā)送方進(jìn)行認(rèn)證。
按照如下方式使用DEA加密方式產(chǎn)生MAC:        

第一步
終端通過向IC卡發(fā)GET CHALLENGE命令獲得一個4字節(jié)隨機(jī)數(shù),后補(bǔ)’00 00 00 00’作為初始值。
第二步
將5字節(jié)命令頭(CLA,INS,P1,P2,Lc)和命令數(shù)據(jù)域中的明文或密文數(shù)據(jù)連接在一起形成數(shù)據(jù)塊。注意,這里的Lc應(yīng)是數(shù)據(jù)長度加上將計(jì)算出的MAC的長度(4字節(jié))后得到的實(shí)際長度。
第三步
將該數(shù)據(jù)塊分成8字節(jié)為單位的數(shù)據(jù)塊, 表示為BLOCK1、BLOCK2、BLOCK3、BLOCK4等。最后的數(shù)據(jù)塊有可能是1~8個字節(jié)。
第四步
如果最后的數(shù)據(jù)塊的長度是8字節(jié)的話,則在該數(shù)據(jù)塊之后再加一個完整的8字節(jié)數(shù)據(jù)塊‘80 00 00 00 00 00 00 00’, 轉(zhuǎn)到第五步。
如果最后的數(shù)據(jù)塊的長度不足8字節(jié),則在其后加入16進(jìn)制數(shù)‘80’,如果達(dá)到8字節(jié)長度,則轉(zhuǎn)到第五步;否則接著在其后加入16進(jìn)制數(shù)‘00’直到長度達(dá)到8字節(jié)。
第五步
按照圖1和圖2所述的算法對這些數(shù)據(jù)塊使用指定密鑰進(jìn)行加密來產(chǎn)生MAC。
第六步
最終取計(jì)算結(jié)果(高4字節(jié))作為MAC。
圖片1.png

圖1安全報文中單倍長密鑰MAC計(jì)算
圖片2.png
圖2安全報文中雙倍長密鑰MAC算法
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表