Может ли кто-нибудь помочь мне рассчитать MAC (4 байта) и CMAC (8 байтов) для Mifare Desfire? Я получаю неожиданные результаты.
Deskey = 0000000000000000
Block1(B1) = 1122334455667788
Block2(B2) = 9900112200000000
IV = 0000000000000000
sessionkey = 2923be84b1495461
R1 = Enc(B1 xor IV) f2f13994d24714ca
R2 = Enc(R1 xor B2) 880fe38ab9e8a8d3
MAC 880fe38a
Expected MAC = c8d70ad2 95a88a36
Результаты CMAC
AESKey = 00000000000000000000000000000000
Block = 000102030405060708090a0b0c0d0e0f
Enc(Block) = 7aca0fd9bcd6ec7c9f97466616e6a282
SubKey1 = CDD297A9DF1458771099F4B39468565C
SubKey2 = 9BA52F53BE28B0EE2133E96728D0AC3F
CMAC(16bytes) = 8A57896F795CB6ABF6867DAD41A5FB15
Верно ли, что CMAC генерируется только DES, а TDES, подобно DES, шифрует все блоки, кроме последнего блока, который должен быть зашифрован TDES, как при расчете розничного MAC?
0x0000000000000000
не является допустимым ключом DES. Ключи DES требуют установки бита четности для каждого байта.0x0101010101010101
будет действительным. - person Duncan Jones   schedule 11.09.2012