安全報文中的MAC計算方法

2021-06-06 16:27:42 字數 1218 閱讀 5938

安全報文中的mac計算方法

校驗碼(mac)總是命令或命令響應資料域中最後乙個資料元素。規定mac的長度皆為4個位元組。當命令的資料域中要求必須帶mac時,即命令安全報文傳送,命令頭中cla位元組的低半位元組必須等於十六進製制數字『4』。

命令安全報文中的mac是使用命令的所有元素(包括命令頭和包含在命令資料域中的資料)來產生的。從而保證命令連同資料能夠正確完整地傳送,並對傳送方進行認證。

按照如下方式使用dea加密方式產生mac:

第一步:

終端通過向ic卡發get challenge命令獲得乙個4位元組隨機數,後補「00 00 00 00」作為初始值(或8位元組隨機數作為初始值)。

第二步:

將5位元組命令頭(cla,ins,p1,p2,lc)和命令資料域中的明文或密文資料連線在一起形成資料塊。注意,這裡的lc應是資料長度加上將計算出的mac的長度(4位元組)後得到的實際長度。

第三步:

將該資料塊分成8位元組為單位的資料塊, 表示為block1、block2、block3、block4等。最後的資料塊有可能是1~8個位元組。

第四步:

如果最後的資料塊的長度是8位元組的話,則在該資料塊之後再加乙個完整的8位元組資料塊『80 00 00 00 00 00 00 00』, 轉到第五步。

如果最後的資料塊的長度不足8位元組,則在其後加入16進製制數『80』,如果達到8位元組長度,則轉到第五步;否則接著在其後加入16進製制數『00』直到長度達到8位元組。

第五步:

按照圖9-1和圖9-2所述的演算法對這些資料塊使用指定金鑰進行加密來產生mac。

第六步:

最終取計算結果(高4位元組)作為mac。

資料加密的計算方法

第一步:

用ld(1位元組)表示明文資料的長度,在明文資料前加上ld產生新的資料塊,ld的值不小於1。

第二步:

將該資料塊分成8位元組為單位的資料塊,表示為block1、block2 … … blockn等。最後的資料塊有可能是1~8個位元組。

第三步:

如果最後(或唯一)的資料塊的長度是8位元組的話,轉到第四步;如果不足8位元組,則在其後加入16進製制數『80』,如果達到8位元組長度,則轉到第四步;否則在其後加入16進製制數『00』直到長度達到8位元組。

第四步:

按照圖9-4和圖9-5所述的演算法對每乙個資料塊進行加密。

第五步:

計算結束後,所有加密後的資料塊依照原順序連線在一起。

AUC的計算方法

在機器學習的分類任務中,我們常用許多的指標,諸如召回率 recall 準確率 precision f1值 auc等。相信這個問題很多玩家都已經明白了,簡單的概括一下,auc are under curve 是乙個模型的評價指標,用於分類任務。那麼這個指標代表什麼呢?這個指標想表達的含義,簡單來說其實...

mAP的計算方法

git開源專案 比如unsky的fpn 中test net.py呼叫test.py下的def test net net,imdb,max per image 1000,thresh 0.05,vis false 函式。之後會順一遍,先介紹下思路 假設一張測試有3個標定好的ground truth 黑...

TF IDF的計算方法

使用sklearn提取文字tfidf特徵 參考 或者 語料庫 corpus this is the first document this is the second second document and the third one is this the first document from ...