找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 1484|回復: 0
打印 上一主題 下一主題
收起左側(cè)

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

 關(guān)閉 [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:349277 發(fā)表于 2022-6-2 10:04 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
該方法來源于PBOC標準。
命令安全報文中的MAC是使用命令的所有元素(包括命令頭和命令數(shù)據(jù)域中的數(shù)據(jù))來產(chǎn)生的。以保證命令連同數(shù)據(jù)能夠正確完整地傳送,并對發(fā)送方進行認證。
按照如下方式使用DEA加密方式產(chǎn)生MAC:        

第一步
終端通過向IC卡發(fā)GET CHALLENGE命令獲得一個4字節(jié)隨機數(shù),后補’00 00 00 00’作為初始值。
第二步
將5字節(jié)命令頭(CLA,INS,P1,P2,Lc)和命令數(shù)據(jù)域中的明文或密文數(shù)據(jù)連接在一起形成數(shù)據(jù)塊。注意,這里的Lc應(yīng)是數(shù)據(jù)長度加上將計算出的MAC的長度(4字節(jié))后得到的實際長度。
第三步
將該數(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進制數(shù)‘80’,如果達到8字節(jié)長度,則轉(zhuǎn)到第五步;否則接著在其后加入16進制數(shù)‘00’直到長度達到8字節(jié)。
第五步
按照圖1和圖2所述的算法對這些數(shù)據(jù)塊使用指定密鑰進行加密來產(chǎn)生MAC。
第六步
最終取計算結(jié)果(高4字節(jié))作為MAC。


圖1安全報文中單倍長密鑰MAC計算

圖2安全報文中雙倍長密鑰MAC算法
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表