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

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

基本原则

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

【密文+MAC密钥】,就是将【普通密钥】的类型字节最高2bit设为"11"。比如【普通】外部认证密钥的类型为39(0011 1001),【密文+MAC】外部认证密钥类型就是F9(1111 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

注意39(0011 1001)变成了F9(1111 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

MAC:D7 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

MAC:90 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

MAC:01 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

相关推荐
云储储3 天前
植物大战僵尸融合嫁接版 MAC 版本下载安装详细教程
游戏·macos·mac·pvz·mac游戏·植物大战僵尸融合嫁接版
couldn4 天前
yaklang window安装 vscode运行得到“hello world”
ide·vscode·网络安全·编辑器·密码学·密钥·yaklang
ace20205 天前
mac上修改jupyterlab工作目录
mac·jupyter lab
不羁的小卓子5 天前
Mac OS系统中Beyond Compare 4破解方式
mac
tekin5 天前
彻底解决 macos中chrome应用程序 的 无法更新 Chrome 弹窗提示 mac自定义参数启动 chrome.app
chrome·macos·mac·chrome自定义启动参数·chrome启动参数
mumoing6 天前
关于Mac mini 10G网口的问题
网络·macos·mac
Mac分享吧8 天前
PyCharm2024 for mac Python编辑开发
python·macos·pycharm·编辑器·mac·软件需求
Mac分享吧8 天前
DataGrip 2024 po for Mac 数据库管理工具解
数据库·经验分享·笔记·mac·软件需求
Bel_Ami@9 天前
Mac 如何安装 wget
mac·wget·homebrew
tekin10 天前
macos Automator自动操作 app, 创建自定义 应用程序 app 的方法
macos·mac·自动操作·automator·mac自定义app创建