无线M-bus / OMS分组解码

时间:2014-08-03 13:57:04

标签: electronics

3E4424237952324825077A09503005702970D754206CF3FFA5A2EE90103E42049140ACA625243A7DC4550DB811208D8299D7A34EB9ECBEE9CD751A685F0FF05D1A3D004F320600211B

这是我从wm-bus(OMS)水表收到的数据包,它是CRC字节的条带。

当我从OMS文档中得到它时,这是CBC的初始向量:

24237952324825070909090909090909

AES密码为:1111111111111111

当我得到它时,需要解码的第一个AES块是:

702970d754206cf3ffa5a2ee90103e42 

解码后的前两个字节应为2f 2f,但它们不是。

所以如果有人对wm-bus和OMS有任何经验,请帮忙。

1 个答案:

答案 0 :(得分:2)

如果你没有得到0x2F 0x2F,那么简短的回答是:你拿了错误的钥匙。

<强>详情: 您似乎采用了正确的字节并为此OMS电报派生了正确的IV。如果解密部分的前2个字节不会导致0x2F 0x2F,那么这表示您的此电报有错误的AES密钥。

你说你的钥匙是1111111111111111 - 但是这是什么? OMS的AES-CBC密钥使用16字节(128位)。您只有16个字符,但要以十六进制表示16个字节,则需要32个字符。所以这把钥匙有点可疑: 0x01010101010101010101010101010101无效。

0x31313131313131313131313131313131(ASCII中为16倍)

但是我用

成功解密了
0x11111111111111111111111111111111

//Decrypted telegram:
3E 44 24 23 79 52 32 48 25 07 7A 09 50 30 05 2F 2F 0C 13 00 02 00 00 02 5A F5 00 02 FD 17 00 10 02 FD 74 ED 16 C2 01 6C DF 17 CC 01 13 00 02 00 00 2F 2F 2F 2F 2F 2F 2F 2F 2F 2F 2F 2F 2F 2F

所以最后看起来你只拿了钥匙的一半,这就是解密失败的原因。