手术机器人主手通讯加密系统转让专利

申请号 : CN202111042781.7

文献号 : CN113691559B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 宋玲玲朱玉业张晓萍宋效林

申请人 : 滨州职业学院

摘要 :

本发明涉及一种手术机器人主手通讯加密系统,属于主手通讯控制技术领域;包括主手本体、执行控制器、驱动控制器,执行控制器和驱动控制器之间通过第一加密通讯完成设备查询,通过第二加密通讯执行主手本体控制;第一加密通讯,由驱动控制器发送查询消息,然后执行控制器收到后发送报告消息,最后驱动控制器对报告消息进行处理,完成设备查询过程;第二加密通讯,在驱动控制器与执行控制器完成设备查询过程下,驱动控制器向执行控制器发送控制消息,执行控制器向驱动控制器发送状态消息,执行主手本体控制;在不降低主手工作频率和实时性下保证主手的通讯控制安全。

权利要求 :

1.一种手术机器人主手通讯加密系统,包括主手本体(7)、执行控制器(5)、驱动控制器(2),其特征在于,

执行控制器(5)和驱动控制器(2)之间通过第一加密通讯完成设备查询,通过第二加密通讯执行主手本体(7)控制;

第一加密通讯,由驱动控制器(2)发送查询消息(9),然后执行控制器(5)收到后发送报告消息(10),最后驱动控制器(2)对报告消息(10)进行处理,完成设备查询过程;

第二加密通讯,在驱动控制器(2)与执行控制器(5)完成设备查询过程下,驱动控制器(2)向执行控制器(5)发送控制消息(11),执行控制器(5)向驱动控制器(2)发送状态消息(12),执行主手本体(7)控制;

所述驱动控制器(2)内设置有主手的驱动程序(3)和加密狗(8),

驱动程序(3)包含执行第二加密通讯加解密的第二驱动加密算法(21);

加密狗(8)包含用于加密查询消息(9)的查询公钥(25)、用于解密报告消息(10)的报告私钥(24)、保存密码序列的驱动密码池(22)、计算驱动密码池(22)内密码序列的第一驱动加密算法(23)、构建并加密查询消息的查询函数(13)、解析报告消息(10)的报告函数(14)和计算密码序列的密钥函数(20);

所述执行控制器(5)包括用于解密查询消息(9)的查询私钥(15)、用于加密报告消息(10)的报告公钥(16)、保存密码序列的执行密码池(18)、计算执行密码池(18)内密码序列的第一执行加密算法(17)和执行第二加密通讯加解密的第二执行加密算法(19)。

2.根据权利要求1所述的手术机器人主手通讯加密系统,其特征在于:所述查询消息(9)包括查询消息原文(26)和加密后的密文查询消息(27),查询消息原文(26)的消息体,消息体包括随机数RAND1、时间戳Timestamp、消息计数Counter和校验和Checksum;时间戳Timestamp用于计算设备会话数DSN,与消息计数Counter一起计算查询频次,当查询频次超过一定数值时,将认为有攻击存在,不再发送报告消息(10)。

3.根据权利要求2所述的手术机器人主手通讯加密系统,其特征在于:所述报告消息(10)包括报告消息原文(28)和加密后的密文报告消息(29),报告消息原文(28)的消息体包含设备会话数DSN、随机数RAND2、报告计数Counter、密码索引PWIndex和检验和Checksum;

设备会话数DSN、随机数RAND1、RAND2作为计算密码序列的参数;密码索引PWIndex表示设备查询过程结束后第一次第二加密通讯使用的加解密密码在执行密码池(18)和驱动密码池(22)中的位置。

4.根据权利要求2所述的手术机器人主手通讯加密系统,其特征在于:控制消息(11)包括控制消息原文(30)和加密后的密文控制消息(31),控制消息原文(30)的消息体包含控制命令字CMD、数字输出字DO、各轴输出扭矩Torques、控制消息计数Counter和检验和Checksum。

5.根据权利要求2所述的手术机器人主手通讯加密系统,其特征在于:所述状态消息(12)包括状态消息原文(32)和加密后的密文状态消息(33),状态消息原文32的消息体包含状态字states、数字输入字DI、各轴编码器值Encoders、状态消息计数Counter、密码索引PWIndex和检验和Checksum。

6.根据权利要求5所述的手术机器人主手通讯加密系统,其特征在于:所述密码索引PWIndex在状态消息(12)中指定下一次使用的第二加密通讯的加解密密码;密码索引PWIndex动态更新,保持第二加密通讯所使用密码的动态性。

7.根据权利要求6所述的手术机器人主手通讯加密系统,其特征在于:所述第二执行加密算法(19)和第二驱动加密算法(21)以加密参数(34)为参数进行对称加解密控制消息(11)和状态消息(12)。

8.根据权利要求7所述的手术机器人主手通讯加密系统,其特征在于:所述加密参数(34)包含设备会话数DSN、随机数RAND1、随机数RAND2和动态密码PW;当前动态密码PW由状态消息(12)中的密码索引PWIndex指定。

说明书 :

手术机器人主手通讯加密系统

技术领域

[0001] 本发明涉及一种手术机器人主手通讯加密系统,属于主手通讯控制技术领域。

背景技术

[0002] 手术机器人主手是外科大夫使用手术机器人进行外科手术的关键输入设备。主手通过通讯网络线路与主手控制计算机连接,由主手控制驱动软件负责控制。为了保证手术医生的动作能够通过主手正确的传递到手术机器人主控器中,必须保障通讯网络的安全性,否则,在攻击者或黑客的破坏下,手术医生无法完成顺利完成手术过程。为此,为主手通讯控制建立一套加密方法,保证主手控制安全非常有必要。由于主手通讯采样频率在1kHz至4kHz之间,实时性要求,所以传统的网络加密技术不能直接进行应用。本发明,根据主手工作特点,提出了一种针对高速实时通讯的加密方法。

发明内容

[0003] 本发明要解决的技术问题是:提供一种手术机器人主手通讯加密系统,在不降低主手工作频率和实时性下保证主手的通讯控制安全。
[0004] 本发明所述的手术机器人主手通讯加密系统,包括主手本体、执行控制器、驱动控制器,
[0005] 执行控制器和驱动控制器之间通过第一加密通讯完成设备查询,通过第二加密通讯执行主手本体控制;
[0006] 第一加密通讯,由驱动控制器发送查询消息,然后执行控制器收到后发送报告消息,最后驱动控制器对报告消息进行处理,完成设备查询过程;
[0007] 第二加密通讯,在驱动控制器与执行控制器完成设备查询过程下,驱动控制器向执行控制器发送控制消息,执行控制器向驱动控制器发送状态消息,执行主手本体控制。
[0008] 优选地,所述驱动控制器内设置有主手的驱动程序和加密狗,驱动程序包含执行第二加密通讯加解密的第二驱动加密算法;
[0009] 加密狗包含用于加密查询消息的查询公钥、用于解密报告消息的报告私钥、保存密码序列的驱动密码池、计算驱动密码池内密码序列的第一驱动加密算法、构建并加密查询消息的查询函数、解析报告消息的报告函数和计算密码序列的密钥函数。
[0010] 优选地,所述执行控制器包括用于解密查询消息的查询私钥、用于加密报告消息的报告公钥、保存密码序列的执行密码池、计算执行密码池内密码序列的第一执行加密算法和执行第二加密通讯加解密的第二执行加密算法。
[0011] 优选地,所述查询消息包括查询消息原文和加密后的密文查询消息,查询消息原文的消息体包括随机数RAND1、时间戳Timestamp、消息计数Counter和校验和Checksum;时间戳Timestamp用于计算设备会话数DSN,与消息计数Counter一起计算查询频次,当查询频次超过一定数值时任务有攻击存在;
[0012] 优选地,所述报告消息包括报告消息原文和加密后的密文报告消息,报告消息原文的消息体包含设备会话数DSN、随机数RAND2、报告计数Counter、密码索引PWIndex和检验和Checksum;设备会话数DSN、随机数RAND1、RAND2作为计算密码序列的参数;密码索引PWIndex表示设备查询过程结束后第一次第二加密通讯使用的加解密密码在执行密码池和驱动密码池中的位置。
[0013] 优选地,控制消息包括控制消息原文和加密后的密文控制消息,控制消息原文的消息体包含控制命令字CMD、数字输出字DO、各轴输出扭矩Torques、控制消息计数Counter和检验和Checksum。
[0014] 优选地,所述状态消息包括状态消息原文和加密后的密文状态消息,状态消息原文的消息体包含状态字states、数字输入字DI、各轴编码器值Encoders、状态消息计数Counter和校验、密码索引PWIndex和Checksum。
[0015] 优选地,所述密码索引PWIndex在状态消息中指定下一次使用的第二加密通讯的加解密密码;密码索引PWIndex动态更新,保持第二加密通讯所使用密码的动态性[0016] 优选地,所述第二执行加密算法和第二驱动加密算法以加密参数为参数进行对称加解密控制消息和状态消息。
[0017] 优选地,所述加密参数包含设备会话数DSN、随机数RAND1、随机数RAND2和动态密码PW;当前动态密码PW由状态消息中的密码索引PWIndex指定。
[0018] 与现有技术相比,本发明具有以下有益效果:
[0019] 本发明所述的手术机器人主手通讯加密系统通过设置第一加密通讯和第二加密通讯,分别用于设备查询过程和执行主手本体控制两个阶段,在执行主手本体控制之前通过第一加密通讯完成设备查询,即验证所连接的设备为原厂设备;同时,在执行主手本体控制阶段的密码在第一加密通讯阶段计算并在执行密码池和驱动密码池中保存,通过密码索引PWIndex动态更新,实时性和安全性强;在不降低主手本体工作频率和实时性下保证通讯控制安全。

附图说明

[0020] 图1为本发明所述的手术机器人主手通讯加密系统的结构框架图;
[0021] 图2为本发明所述的第一加密通讯和第二加密通讯的结构示意图;
[0022] 图3为本发明所述的执行控制器和驱动控制器的结构框架图;
[0023] 图4为本发明所述的查询消息的结构示意图;
[0024] 图5为本发明所述的报告消息的结构示意图;
[0025] 图6为本发明所述的控制消息的结构示意图;
[0026] 图7为本发明所述的状态消息的结构示意图;
[0027] 图8为本发明所述的加密参数的结构示意图。
[0028] 其中:1、手术机器人主控器;2、驱动控制器;3、驱动程序;4、网络线路;5、执行控制器;6、MCU/FPGA;7、主手本体;8、加密狗;9、查询消息;10、报告消息;11、控制消息;12、状态消息;13、查询函数;14、报告函数;15、查询私钥;16、报告公钥;17、第一执行加密算法;18、执行密码池;19、第二执行加密算法;20、密钥函数;21、第二驱动加密算法;22、驱动密码池;23、第一驱动加密算法;24、报告私钥;25、查询公钥;26、查询消息原文;27、密文查询消息;
28、报告消息原文;29、密文报告消息;30、控制消息原文;31、密文控制消息;32、状态消息原文;33、密文状态消息;34、加密参数。

具体实施方式

[0029] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0030] 实施例1
[0031] 如图1‑8所示,本发明所述的手术机器人主手通讯加密系统,包括主手本体7、执行控制器5、驱动控制器2,
[0032] 执行控制器5和驱动控制器2之间通过第一加密通讯完成设备查询,通过第二加密通讯执行主手本体7控制;
[0033] 第一加密通讯,由驱动控制器2发送查询消息9,然后执行控制器5收到后发送报告消息10,最后驱动控制器2对报告消息10进行处理,完成设备查询过程;
[0034] 第二加密通讯,在驱动控制器2与执行控制器5完成设备查询过程下,驱动控制器2向执行控制器5发送控制消息11,执行控制器5向驱动控制器2发送状态消息12,执行主手本体7控制。
[0035] 在此,执行控制器5采用位于主手硬件电路5中的MCU/FPGA6,MCU/FPGA6在完成执行主手本体7控制的同时完成通讯的加解密过程;驱动控制器2可以是单独的计算机也可以是手术机器人主控器1的主控计算机,驱动控制器2内设置有主手的驱动程序3和加密狗8;驱动程序3在完成正常驱动和计算的同时完成通讯的加解密过程;加密狗8插在主手控制器
2上,由驱动程序3访问执行主要加解密功能;驱动程序3与MCU/FPGA6的通讯通过网络线路4完成,网络线路4可以是Ethernet、USB、RS485、RS232、1394等任意一种串行通讯网络。
[0036] 具体的,驱动程序3包含执行第二加密通讯加解密的第二驱动加密算法21;加密狗8包含用于加密查询消息9的查询公钥25、用于解密报告消息10的报告私钥24、计算密码序列的第一驱动加密算法23、保存密码序列的驱动密码池22、构建并加密查询消息的查询函数13、解析报告消息10的报告函数14和计算密码序列的密钥函数20。
[0037] MCU/FPGA6可以是MCU,也可以是FPGA。
[0038] 如图3所示,MCU/FPGA6包括用于解密查询消息9的查询私钥15、用于加密报告消息10的报告公钥16、计算密码序列的第一执行加密算法17、保存密码序列的执行密码池18和执行第二加密通讯加解密的第二执行加密算法19。
[0039] 如图4所示,所述查询消息9包括查询消息原文26和加密后的密文查询消息27,查询消息原文26的消息体包括随机数RAND1、时间戳Timestamp、消息计数Counter和校验和Checksum;时间戳Timestamp用于计算设备会话数DSN,与消息计数Counter一起计算查询频次,当查询频次超过一定数值时任务有攻击存在。
[0040] 在此,消息头部为三个字节,分别为0xA8、0x8A和‘Q’,前两个字符作为消息和起始标志,‘Q’表示查询消息。查询消息原文26的消息体分别为一个32位随机数、一个64位时间戳整数、一个32位查询次数计数器和一个32位校验和,32位校验和为消息体除校验和外按32位无符号整数加法和。
[0041] 如图5所示,所述报告消息10包括报告消息原文28和加密后的密文报告消息29,报告消息原文28的消息体包含设备会话数DSN、随机数RAND2、报告计数Counter、密码索引PWIndex和检验和Checksum;设备会话数DSN、随机数RAND1、RAND2作为计算密码序列的参数;密码索引PWIndex表示设备查询过程结束后第一次第二加密通讯使用的加解密密码在密码池中的位置。
[0042] 如图6所示,控制消息11包括控制消息原文30和加密后的密文控制消息31,控制消息原文30的消息体包含控制命令字CMD、数字输出字DO、各轴输出扭矩Torques、控制消息计数Counter和检验和Checksum。
[0043] 如图7所示,所述状态消息12包括状态消息原文32和加密后的密文状态消息33,状态消息原文32的消息体包含状态字states、数字输入字DI、各轴编码器值Encoders、状态消息计数Counter和校验、密码索引PWIndex和Checksum。
[0044] 具体的,所述密码索引PWIndex在状态消息12中指定下一次使用的第二加密通讯的加解密密码;密码索引PWIndex动态更新,保持第二加密通讯所使用密码的动态性[0045] 如图8所示,所述第二执行加密算法19和第二驱动加密算法21以加密参数34为参数进行对称加解密控制消息11和状态消息12。
[0046] 所述加密参数34包含设备会话数DSN、随机数RAND1、随机数RAND2和动态密码PW;当前动态密码PW由状态消息12中的密码索引PWIndex指定。
[0047] 本发明所述的手术机器人主手通讯加密系统,工作原理如下:
[0048] 工作工程分为两个阶段,第一阶段完成设备查询过程,即执行查询和报告,驱动程序3验证所连接的设备为原厂设备;第二阶段执行主手本体7控制,即主手本体7控制和状态反馈,为主手正常使用阶段。
[0049] 第一阶段工作过程中,主手驱动程序3首先运行加密狗8内查询函数13构成查询消息9。
[0050] 具体的,所述加密狗9内查询函数13首先构造查询消息原文26,然后以查询公钥25为密钥采用RSA进行消息体加密,形成密文查询消息27,最后将密文查询消息27回送给驱动程序3。所述查询消息原文26的消息体具体为一个32位随机数、一个64位时间戳整数、一个32位查询次数计数器和一个32位校验和,32位校验和为消息体除校验和外按32位无符号整数加法和。
[0051] 当MCU/FPGA6收到密文查询消息27,首先根据密文查询消息27消息头判断是否为查询消息9,当确认为查询消息9后,利用查询私钥24进行查询消息9解密,将随机数RAND1和时间戳timestamp保存。所述随机数RAND1用于报告消息10加密;所述时间戳timestamp由于检测查询频次,当高于一定数值时,将认为由攻击行为出现,不再发送报告消息10。
[0052] 主手MCU或FPGA利用时间戳timestamp计算设备会话数字DSN,同时生成随机数RAND2;利用第一驱动加密算法23以RAND1、RAND2和DSN为参数生成256个32位密钥存放于执行密码池18;随机产生一个小于256的整数作为密码索引PWIndex。将设备会话数字DSN、随机数RAND2和密码索引PWIndex填充到报告消息原文28消息体中,同时将报告计数也填入,然后计算校验和并填充。报告消息原文28填充完毕后,以报告公钥16采用RSA加密后形成密文报告消息29。最后将密文报告消息29发送给主手驱动程序。
[0053] 在此,第一驱动加密算法23可选择一维或二维混沌映射函数作为加密主体,选择一维混沌Logistic映射,使用RAND1和RAND2形成双精度浮点数作为输入计算出256个混沌数作为密钥。选择二维混沌映射时,RAND1和RAND2分别与DSN形成双精度浮点数作为参数进行计算。
[0054] 主手驱动程序3收到密文报告消息29后,首先将密文报告消息29发送给加密狗8的报告函数14,报告函数14使用报告私钥24进行解密;然后报告函数14验证利用保存的时间戳timestamp验证DSN,验证成功后,检测报告频次,如果报告频次不超过攻击阈值,则认为已正确连接到原厂设备;最后使用密钥函数20,利用第一驱动加密算法23以RAND1、RAND2和DSN为参数生成256个32位密钥存放于驱动密码池22,并根据密码索引PWIndex将相应密码PW连同RAND1、RAND2和DSN一起返回给主手驱动程序3;所述第一驱动加密算法23与MCU/FPGA6内第一驱动加密算法23相同。
[0055] 主手驱动程序3利用第二驱动加密算法21以DSN、RAND1、RAND2和PW为参数对控制消息11进行加密,并将密文控制消息31发送给主手MCU/FPGA6。
[0056] 主手MCU/FPGA6收到密文控制消息31后利用第二执行加密算法19以DSN、RAND1、RAND2和PW为参数进行解密,根据控制指令指挥主手本体7运动。
[0057] 主手MCU/FPGA6利用加密第二执行加密算法19以DSN、RAND1、RAND2和PW为参数对状态消息12进行加密,并将密文状态消息33发送给主手驱动程序3。
[0058] 所述状态消息12为主手MCU/FPGA6报告状态的消息,其中密码索引为下一次状态消息12和控制消息11的加密密码。不需要更新密码时,此值为大于255的随机数,当需要更新时为小于256的自然数。
[0059] 主手驱动程序3收到密文状态消息33后利用第二驱动加密算法21以DSN、RAND1、RAND2和PW为参数进行解密,根据状态消息12更新主手本体7状态。判断密码索引是否小于256,如果小于,访问加密狗8获得新的密码,更新PW。