SM4 CBC-MAC 経由で生成される MAC 値は次のとおりであることがわかっています。
MSG1:
E55E3E24A3AE7797808FDCA05A16AC15EB5FA2E6185C23A814A35BA32B4637C2
MAC1:
0712C867AA6EC7C1BB2B66312367B2C8
MSG2:
D8D94F33797E1F41CAB9217793B2D0F02B93D46C2EAD104DCE4BFEC453767719
MAC2:
43669127AE268092C056FD8D03B38B5B
64 バイト (128 16 進ワード) の MSG3 と対応する MAC3 を生成する必要があります。
分析:
A. SM4-CBC、入力は 128 ビット IV 乱数、対称鍵 K、128 ビット平文グループ
B. SM4 CBC-MAC、入力は IV 値を除いて SM4-CBC と同じです
は 0 に固定され、出力は最後のもののみを取得します。グループの暗号化された暗号文 C と MSG1 の長さは32 バイト (256 ビット) であるため、2 つのグループ (M1a と M1b) があり、出力は MAC1 M1a = E55E3E24A3AE7797808FDCA05A16AC15 M1b =EB5FA2E6185C23A814A35BA32B4637C2 MAC1=0712C86 7AA6EC7C1BB2B66312367B2C8 IV
=
0000000000000000000000 0000000000
MAC1
=
Ek (k, Ek(k,IV⊕M1a)⊕M1b) = Ek(k, Ek(k,M1a)⊕M1b) D. MSG2
およびMSG1 であるため、
MAC2 = Ek(k, Ek(k,M2a) ⊕M2b)
E となります。同様に、MSG3 には 4 つのグループ (M3a、M3b、M3c、M3d) があり、出力は MAC3 になります。 MAC3 = Ek
(k, Ek(k,Ek(k, Ek(k,M3a)⊕M3b) )⊕M3c)⊕M3d)
分析後の一般的な考え方は、MSG3 は MSG1 および MSG2 から適切に接続できるということです。具体的には、
M3a = M1a
M3b = M1b
なので、 Ek(k, Ek(k,M3a)⊕M3b) = Ek(k, Ek(k,M1a)⊕M1b) = MAC1 となります。 次に、次の M3c を構築する必要があります
。 M3c⊕MAC1 = M2a つまり、M3c = M2a⊕MAC1
このように、IV=MAC1 のとき、 Ek(k,MAC1⊕M3a) = Ek(k,M2a)
M3d = M2b となります。
要約すると、
MSG3 = M1a||M1b||M2a⊕MAC1||M2b
MAC3 = MAC2