FMCOS使用密文带MAC增加/修改密钥

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

FMCOSFM1208-9FM1208-10FM1216等除了支持使用常见的明文方式增加/修改密钥还支持以密文+MAC的方法增加/修改密钥。

基本原则

FMCOS的密钥按密钥的增加/修改操作方式不同可以分为【普通密钥】和【密文+MAC密钥】两类。这种分类对密钥的类型如外部认证密钥、线路保护密钥等和密钥的使用方式没有影响。

【密文+MAC密钥】就是将【普通密钥】的类型字节最高2bit设为“11”。比如【普通】外部认证密钥的类型为390011 1001【密文+MAC】外部认证密钥类型就是F91111 1001。

使用密文+MAC进行密钥增改操作的前提是当前的密钥文件中必须存在主控密钥标识为00的外部密钥。主控密钥用于加密数据和计算MAC。主控密钥的类型可以为39也可以为F9。但只能先用明文增加类型为39的主控密钥然后再使用密文+MAC将其修改为类型F9。

何时需要使用密文+MAC操作密钥

1. 增加一个【密文+MAC密钥】如类型F9

2. 修改【普通密钥】为【密文+MAC密钥】如类型39修改为F9

3. 修改【密文+MAC密钥】包括将其改为【普通密钥】如修改F9密钥的值或将类型F9改为39。

实验环境

MF下的密钥文件中存在如下密钥

1. 主控密钥密钥值FF FF FF FF FF FF FF FF。

2. 外部认证密钥标识01类型39。

增加密钥F9

欲使用密文带MAC方式在MF下增加标识为02的外部认证密钥类型F9不是39。

密钥的使用权、修改权均为F0后续状态A错误计数器F密钥值11 22 33 44 55 66 77 88。

命令的数据域

F9 F0 F0 AA FF 11 22 33 44 55 66 77 88

注意390011 1001变成了F91111 1001。

对数据域进行扩展和填充得到待加密的明文数据

0D F9 F0 F0 AA FF 11 22 33 44 55 66 77 88 80 00

注0D为LD字节表示原始数据的长度80 00为填充字节。具体实现请参阅《FMCOS 2.0用户手册》

使用主控密钥对明文数据进行DES加密得到密文

7C 87 BC 23 14 00 21 B3 AF EA 67 E6 35 9D DC FE

注FMCOS使用DES-ECB加密。

增加密钥的命令

84 D4 01 02 14 7C 87 BC 23 14 00 21 B3 AF EA 67 E6 35 9D DC FE

密文的实际长度是0x10但因为后面还要附带4字节的MAC因此Lc为0x14。

因为使用了密文+MAC也就是加密线路保护因此CLA的变为84。

请求随机数并使用主控密钥计算MAC

随机数4C 45 BA B9

MACD7 C9 43 F6

注FMCOS对MAC计算的实现请参阅《FMCOS 2.0用户手册》。

完整命令

84 D4 01 02 14 7C 87 BC 23 14 00 21 B3 AF EA 67 E6 35 9D DC FE D7 C9 43 F6

修改密钥 39改为F9

欲使用密文带MAC修改MF下标识为01的外部密钥改变其密钥值和类型39改为F9。

密钥的使用权、修改权均为F0后续状态A错误计数器F新的密钥值11 22 33 44 55 66 77 88。

命令的数据域

F9 F0 F0 AA FF 11 22 33 44 55 66 77 88

39变为F9的原因前文已经表明不再赘述。

对数据域进行扩展和填充得到待加密的明文数据

0D F9 F0 F0 AA FF 11 22 33 44 55 66 77 88 80 00

使用主控密钥对明文数据进行DES加密得到密文

7C 87 BC 23 14 00 21 B3 AF EA 67 E6 35 9D DC FE

修改密钥的命令

84 D4 39 01 14 7C 87 BC 23 14 00 21 B3 AF EA 67 E6 35 9D DC FE

请求随机数并使用主控密钥计算MAC

随机数EF 36 48 18

MAC90 95 E4 E1

完整命令

84 D4 39 01 14 7C 87 BC 23 14 00 21 B3 AF EA 67 E6 35 9D DC FE 90 95 E4 E1

修改密钥F9改为39

欲使用密文带MAC修改MF下标识为02的外部认证密钥类型F9改为39。

命令的数据域

39 F0 F0 AA FF 11 22 33 44 55 66 77 88

对数据域进行扩展和填充得到待加密的明文数据

0D 39 F0 F0 AA FF 11 22 33 44 55 66 77 88 80 00

使用主控密钥对明文数据进行DES加密得到密文

7E 65 DE 14 2F 66 CA 41 AF EA 67 E6 35 9D DC FE

修改密钥的命令

84 D4 F9 02 14 7E 65 DE 14 2F 66 CA 41 AF EA 67 E6 35 9D DC FE

请求随机数并使用主控密钥计算MAC

随机数C0 B3 54 9C

MAC01 2E F5 F5

完整命令

84 D4 F9 02 14 7E 65 DE 14 2F 66 CA 41 AF EA 67 E6 35 9D DC FE 01 2E F5 F5

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6