一种USB小包数据密码通信方法及系统与流程


一种usb小包数据密码通信方法及系统
技术领域
1.本发明属于密码通信技术领域,尤其涉及一种usb小包数据密码通信方法及系统。


背景技术:



2.本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
3.随着密码应用场景的普及,密码设备提供密码服务并实现更高的运算速率是密码设备的设计目标之一,目前使用usb3.0协议(或更高usb速率标准)的bulk端点传输方能实现更高的密码运算速率。但是该应用方案中对大包数据进行密码运算的速率要远高于对小包数据进行密码处理的速率。
4.针对小包数据的密码运算处理具有实际意义,这种场景无可替代,如网络数据的密码运算处理,当前以太网的最大传输单元mtu为1500字节,网络数据进行密码运算处理时,属于小包密码运算的场景,当前的usb接口密码设备应用于小包场景时甚至无法满足百兆网的(100mbps)密码运算要求。当前技术方案因usb协议通信过程中存在等待的损耗时间,导致小包性能低。这个等待的时间在大包场景及小包场景下是相近的,在大包场景下,因数据传输时间及密码运算占用时间更多,这个等待时间占比很小,因此对密码运算来讲时间有效利用率更高,因此大包密码运算速率很高。
5.但是发明人发现,小包场景下数据传输及密码运算时间很短,usb协议的等待损耗时间同大包相近,导致密码运算的有效时间很低,无法充分利用密码芯片内的密码运算能力,导致小包情况下的密码运算速率很低。


技术实现要素:



6.为了解决上述背景技术中存在的技术问题,本发明提供一种usb小包数据密码通信方法及系统,其在时间维度上最大程度的利用了密码芯片的密码运算能力,通过该方式可有效提高了密码运算速率。
7.为了实现上述目的,本发明采用如下技术方案:
8.本发明的第一个方面提供一种usb小包数据密码通信方法,其包括:
9.上位机的server服务程序接受各个应用程序的socket数据处理请求,集中调度待处理数据;
10.集中调度完成后,所述server服务程序使用usb异步通信机制与usb接口密码设备进行交互;
11.其中,所述usb异步通信机制将所有待处理数据集中传送至上位机硬件的usb缓冲栈,以等待与usb接口密码设备的交互。
12.作为一种实施方式,所述usb小包数据密码通信方法,还包括:基于usb接口密码设备自定义的usb设备类型以及自定义的数据格式机制,使上位机应用程序在命令交互中实现硬件栈的缓冲溢出阈值测试。
13.上述方案能够避免硬件层面的数据处理不及时导致数据溢出,提高数据通信效率。
14.作为一种实施方式,在硬件栈的缓冲溢出阈值测试的过程中,应用该测试开始前下发测试数据命令,直到发现返回测试数据响应出现丢包后则一次阈值测试完成。
15.作为一种实施方式,在硬件栈的缓冲溢出阈值测试的过程中,通过多轮测试并增加预设冗余完成参数标定,标定后的测试参数作为通信方案防溢出阈值进行使用。
16.作为一种实施方式,所述usb异步通信机制将usb小包数据传输的令牌阶段、传送数据阶段和握手阶段这三个阶段进行有效分割,并将握手阶段后移。
17.通过该方案可有效减少usb协议通信过程中的等待时间,提升小包密码运算过程中的时间利用率。
18.本发明的第二个方面提供一种usb小包数据密码通信系统,其包括:server服务程序模块、应用程序模块和usb接口密码设备;所述server服务程序模块和应用程序模块均设置在上位机内;所述usb接口密码设备与上位机通信;
19.所述server服务程序模块用于接受各个应用程序模块的socket数据处理请求,集中调度待处理数据;集中调度完成后,使用usb异步通信机制与usb接口密码设备进行交互;
20.其中,所述usb异步通信机制将所有待处理数据集中传送至上位机硬件的usb缓冲栈,以等待与usb接口密码设备的交互。
21.作为一种实施方式,所述usb小包数据密码通信系统,还包括:
22.缓冲溢出阈值测试模块,其设置在usb接口密码设备内,基于usb接口密码设备自定义的usb设备类型以及自定义的数据格式机制,使上位机应用程序在命令交互中实现硬件栈的缓冲溢出阈值测试。
23.作为一种实施方式,在所述缓冲溢出阈值测试模块中,在硬件栈的缓冲溢出阈值测试的过程中,应用该测试开始前下发测试数据命令,直到发现返回测试数据响应出现丢包后则一次阈值测试完成。
24.作为一种实施方式,在所述缓冲溢出阈值测试模块中,在硬件栈的缓冲溢出阈值测试的过程中,通过多轮测试并增加预设冗余完成参数标定,标定后的测试参数作为通信方案防溢出阈值进行使用。
25.作为一种实施方式,所述usb异步通信机制将usb小包数据传输的令牌阶段、传送数据阶段和握手阶段这三个阶段进行有效分割,并将握手阶段后移。
26.与现有技术相比,本发明的有益效果是:
27.(1)本发明的server服务程序使用usb异步通信机制与usb接口密码设备进行交互,利用usb异步通信机制将所有待处理数据集中传送至上位机硬件的usb缓冲栈,以等待与usb接口密码设备的交互,可以有效解决usb协议小包传输过程中的usb协议上的时间损耗问题,在时间维度上最大程度释放密码芯片内密码运算能力,使usb小包数据场景下的密码运算速率可以支撑千兆网的网络数据加解密请求。
28.(2)上位机的server服务程序利用接受各个应用程序的socket数据处理请求,集中调度待处理数据的方案,解决多进程、多线程的对密码设备的调用问题,多个调用应用程序相当于多个socket,只需在交互的数据中定义对应的数据格式规范,即可解决多个socket数据有效分离,所有的密码服务请求最终由server服务统一管理,该方式即解决了
小包的速率提升问题,还解决了多进程应用对密码设备的争夺问题。
29.本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
30.构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
31.图1是usb接口密码设备应用层次图;
32.图2是传统的usb接口密码设备应用方案;
33.图3是密码芯片内部密码运算队列示意图;
34.图4是usb接口密码设备小包密码运算耗时图;
35.图5是本发明实施例的usb小包数据密码通信原理图;
36.图6是采用本发明实施例的usb小包数据密码通信的速率示意图;
37.图7是本发明实施例的usb小包数据密码通信效果图。
具体实施方式
38.下面结合附图与实施例对本发明作进一步说明。
39.应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
40.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
41.实施例一
42.本实施例提供一种usb小包数据密码通信方法,是基于usb接口密码设备的应用,现有的usb接口密码设备多为usb device设备,连接到上位机的usb host端口,对上位机提供密码运算服务,usb接口密码设备应用层次如图1。
43.上位机的应用程序调用usb密码设备配套的dll或so等格式驱动,使用驱动内实现的接口api调用密码运算功能,应用程序中的待处理数据通过密码接口api下发给usb硬件处理,因密码运算一般需要输入(明文)、输出(密文)对应使用,因此通信过程中总是一发一收成对进行,应用到usb数据通信中,则为一组out数据(下发的待处理数据)、一组in数据(返回的处理后数据)成对出现,这个通信过程方能完成一次密码处理交互。
44.usb接口密码设备对上位机提供密码运算功能的应用方案如图2所示:
45.usb接口密码设备为带有usb接口的密码芯片实现,其中usb接口中的usb端点共有控制(control)端点、中断(interrupt)端点、批量(bulk)端点、同步(isochronous)端点等类型,因密码运算的数据传输过程中不允许出现误码率,所以bulk端点为符合密码运算要求的高速通信端点(同步传输会出现一定误码率,控制及中断传输效率低),因此usb接口密码设备为了获取较高密码运算速率会选用bulk端点方式。如图3所示,密码芯片内部的密码
运算引擎的提供密码运算为阻塞式服务类型,即一组数据处理完成之后,下一组数据方能进入处理,待处理的数据组只能按照排列顺序实现密码运算处理,同时密码芯片内部的密码引擎当前已有高速率的流处理模式,其处理速度(如sm4分组算法)已高于5gbps,这个速率已经高于usb3.0的理论传输速率5gbps,可见密码芯片内的队列式密码处理已不是密码设备运算速率提升的瓶颈。
46.显而易见应用程序中使用硬件实现密码服务的运算速率与usb密码设备的通信速率有直接关联,数据越快的由应用程序传输到密码引擎处,则可获得越高的密码运算速率。如支持usb3.0协议的密码设备提供的密码运算速率明显高于仅支持usb2.0协议的密码设备,或者usb协议中使用高速的bulk端点进行传输的速率会明显高于使用低速的control端点进行传输的速率,因此要提升usb密码设备的密码运算速率其瓶颈在于如何提供usb接口密码设备的实际通信速率。
47.存在上述瓶颈的原因是usb通信协议导致的,usb3.0的bulk端点每包数据量为1k byte,bulk传输分为三个阶段,令牌阶段、传送数据阶段、握手阶段。这里大包含义为64k byte数据包、32k byte数据包、16k byte数据包等需要bulk端点分为多包传输的,小包的定义为1kbyte或2k byte的数据。假设大包为64k byte,完成一次传输则需要一次令牌阶段,一次64kbyte传送数据阶段,一次握手阶段。若使用1k小包完成64kbyte传输,则需要64次完整的令牌、传送、握手过程。因此小包应用速率会低于大包速率。
48.usb接口密码设备在小包数据传输中因为usb协议的损耗时间会导致大包与小包的运算速率性能最高相差10倍左右。即1组64m的数据进行密码运算处理,若按照64k一包传输,需调用1024次密码api接口进行运算处理(0.36秒执行完成);若按照1k一包进行传输,需执行64*1024次密码api接口进行运算处理(3.7秒执行完成)。该场景下耗时最大相差10倍。
49.当前技术方案下的小包密码运算耗时占比图,如图4所示。通过图4可得出结论,小包密码运算场景下,密码芯片内部仅有很少一段时间处于工作状态,大部分的时间为空闲状态,这个时间即是usb协议的损耗时间。当前技术方案因usb协议通信过程中存在等待的损耗时间,导致小包性能低。这个等待的时间在大包场景及小包场景下是相近的,在大包场景下,因数据传输时间及密码运算占用时间更多,这个等待时间占比很小,因此对密码运算过来讲时间有效利用率更高,因此大包密码运算速率很高。但是小包场景下数据传输及密码运算时间很短,但usb协议的等待损耗时间同大包相近,导致密码运算的有效时间很低,无法充分利用密码芯片内的密码运算能力,导致小包情况下的密码运算速率很低。
50.本实施例提的usb小包数据密码通信方法,不再通过调用usb密码设备的驱动接口库直接操作硬件,而是采用了socket、server服务及usb异步通信机制解决usb协议的小包交互损耗时间过多的问题。
51.参照图5,本实施例提供一种usb小包数据密码通信方法,其包括:
52.步骤1:上位机的server服务程序接受各个应用程序的socket数据处理请求,集中调度待处理数据;
53.步骤2:集中调度完成后,所述server服务程序使用usb异步通信机制与usb接口密码设备进行交互。
54.其中,所述usb异步通信机制将所有待处理数据集中传送至上位机硬件的usb缓冲
栈,以等待与usb接口密码设备的交互。
55.原方案中应用程序通过调用usb密码设备的驱动接口库与usb接口密码设备建立通信关系,导致应用程序的处理数据积攒在应用程序阶段,usb密码设备耗时等待密码运算out端的交互命令。
56.本方案中应用程序采用了socket方式,不再直接与usb接口密码设备进行交互,而是与server服务程序交互。本实施例的server服务接受socket数据处理请求,并集中调度针对usb密码设备的待处理数据,使用usb异步通信机制与usb密码设备交互。其中,该异步机制将bulk传输的三个阶段,令牌阶段、传送数据阶段、握手阶段有效分割,将握手阶段后移。采用此种方式可将所有待处理数据释放到上位机硬件层面,数据将集中进入上位机硬件的usb缓冲栈等待与usb接口密码设备的交互。
57.usb接口密码设备则在处理完成上一组数据之后,不需要进行等待,可以直接从上位机硬件层读走已准备好的待处理数据进行下一步操作。在时间维度上最大程度的利用了密码芯片的密码运算能力,通过该方式可有效提高了密码运算速率。
58.上述的流程通信方案中,应用程序阶段(server服务程序)的数据处理相对拥有较高的处理速率,数据可通过应用程序的令牌阶段及数据传输阶段持续不断抛给上位机的usb缓冲栈,此时usb接口设备与上位机的usb缓冲栈的数据交互速率实际是相对较低的一个速率,因此若应用程序持续不断的进行令牌阶段及数据传输阶段操作将会导致硬件层面的数据处理不及时导致数据溢出。数据速率示意图见图6。
59.为了解决上述若应用程序持续不断的进行令牌阶段及数据传输阶段操作将会导致硬件层面的数据处理不及时导致数据溢出的问题,在一个或多个实施例中,所述usb小包数据密码通信方法,还包括:
60.基于usb接口密码设备自定义的usb设备类型以及自定义的数据格式机制,使上位机应用程序在命令交互中实现硬件栈的缓冲溢出阈值测试。该方案能够避免硬件层面的数据处理不及时导致数据溢出,提高数据通信效率。
61.其中,在硬件栈的缓冲溢出阈值测试的过程中,应用该测试开始前下发测试数据命令,直到发现返回测试数据响应出现丢包后则一次阈值测试完成。
62.在硬件栈的缓冲溢出阈值测试的过程中,通过多轮测试并增加预设冗余完成参数标定,标定后的测试参数作为通信方案防溢出阈值进行使用。
63.本实施例的usb小包数据密码通信方案实现的通信效果如图7所示。该方案有效减少了usb协议通信过程中的等待时间,提升了小包密码运算过程中的时间利用率。
64.实施例二
65.如图5所示,本实施例提供了一种usb小包数据密码通信系统,其包括server服务程序模块、应用程序模块和usb接口密码设备;所述server服务程序模块和应用程序模块均设置在上位机内;所述usb接口密码设备与上位机通信;
66.所述server服务程序模块用于接受各个应用程序模块的socket数据处理请求,集中调度待处理数据;集中调度完成后,使用usb异步通信机制与usb接口密码设备进行交互;
67.其中,所述usb异步通信机制将所有待处理数据集中传送至上位机硬件的usb缓冲栈,以等待与usb接口密码设备的交互。
68.所述usb异步通信机制将usb小包数据传输的令牌阶段、传送数据阶段和握手阶段
这三个阶段进行有效分割,并将握手阶段后移。
69.在一个或多个实施例中,所述usb小包数据密码通信系统,还包括:
70.缓冲溢出阈值测试模块,其设置在usb接口密码设备内,基于usb接口密码设备自定义的usb设备类型以及自定义的数据格式机制,使上位机应用程序在命令交互中实现硬件栈的缓冲溢出阈值测试。
71.具体地,在所述缓冲溢出阈值测试模块中,在硬件栈的缓冲溢出阈值测试的过程中,应用该测试开始前下发测试数据命令,直到发现返回测试数据响应出现丢包后则一次阈值测试完成。
72.在所述缓冲溢出阈值测试模块中,在硬件栈的缓冲溢出阈值测试的过程中,通过多轮测试并增加预设冗余完成参数标定,标定后的测试参数作为通信方案防溢出阈值进行使用。
73.本实施例的server服务程序模块使用usb异步通信机制与usb接口密码设备进行交互,利用usb异步通信机制将所有待处理数据集中传送至上位机硬件的usb缓冲栈,以等待与usb接口密码设备的交互,可以有效解决usb协议小包传输过程中的usb协议上的时间损耗问题,在时间维度上最大程度释放密码芯片内密码运算能力,使usb小包数据场景下的密码运算速率可以支撑千兆网的网络数据加解密请求。
74.本实施例的上位机的server服务程序模块利用接受各个应用程序模块的socket数据处理请求,集中调度待处理数据的方案,解决多进程、多线程的对密码设备的调用问题,多个调用应用程序相当于多个socket,只需在交互的数据中定义对应的数据格式规范,即可解决多个socket数据有效分离,所有的密码服务请求最终由server服务统一管理,该方式即解决了小包的速率提升问题,还解决了多进程应用对密码设备的争夺问题。
75.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术特征:


1.一种usb小包数据密码通信方法,其特征在于,包括:上位机的server服务程序接受各个应用程序的socket数据处理请求,集中调度待处理数据;集中调度完成后,所述server服务程序使用usb异步通信机制与usb接口密码设备进行交互;其中,所述usb异步通信机制将所有待处理数据集中传送至上位机硬件的usb缓冲栈,以等待与usb接口密码设备的交互。2.如权利要求1所述的usb小包数据密码通信方法,其特征在于,所述usb小包数据密码通信方法,还包括:基于usb接口密码设备自定义的usb设备类型以及自定义的数据格式机制,使上位机应用程序在命令交互中实现硬件栈的缓冲溢出阈值测试。3.如权利要求2所述的usb小包数据密码通信方法,其特征在于,在硬件栈的缓冲溢出阈值测试的过程中,应用该测试开始前下发测试数据命令,直到发现返回测试数据响应出现丢包后则一次阈值测试完成。4.如权利要求2所述的usb小包数据密码通信方法,其特征在于,在硬件栈的缓冲溢出阈值测试的过程中,通过多轮测试并增加预设冗余完成参数标定,标定后的测试参数作为通信方案防溢出阈值进行使用。5.如权利要求1所述的usb小包数据密码通信方法,其特征在于,所述usb异步通信机制将usb小包数据传输的令牌阶段、传送数据阶段和握手阶段这三个阶段进行有效分割,并将握手阶段后移。6.一种usb小包数据密码通信系统,其特征在于,包括:server服务程序模块、应用程序模块和usb接口密码设备;所述server服务程序模块和应用程序模块均设置在上位机内;所述usb接口密码设备与上位机通信;所述server服务程序模块用于接受各个应用程序模块的socket数据处理请求,集中调度待处理数据;集中调度完成后,使用usb异步通信机制与usb接口密码设备进行交互;其中,所述usb异步通信机制将所有待处理数据集中传送至上位机硬件的usb缓冲栈,以等待与usb接口密码设备的交互。7.如权利要求6所述的usb小包数据密码通信系统,其特征在于,所述usb小包数据密码通信系统,还包括:缓冲溢出阈值测试模块,其设置在usb接口密码设备内,基于usb接口密码设备自定义的usb设备类型以及自定义的数据格式机制,使上位机应用程序在命令交互中实现硬件栈的缓冲溢出阈值测试。8.如权利要求7所述的usb小包数据密码通信系统,其特征在于,在所述缓冲溢出阈值测试模块中,在硬件栈的缓冲溢出阈值测试的过程中,应用该测试开始前下发测试数据命令,直到发现返回测试数据响应出现丢包后则一次阈值测试完成。9.如权利要求7所述的usb小包数据密码通信系统,其特征在于,在所述缓冲溢出阈值测试模块中,在硬件栈的缓冲溢出阈值测试的过程中,通过多轮测试并增加预设冗余完成参数标定,标定后的测试参数作为通信方案防溢出阈值进行使用。10.如权利要求6所述的usb小包数据密码通信系统,其特征在于,所述usb异步通信机制将usb小包数据传输的令牌阶段、传送数据阶段和握手阶段这三个阶段进行有效分割,并
将握手阶段后移。

技术总结


本发明属于密码通信技术领域,提供了一种USB小包数据密码通信方法及系统。其中,该方法包括上位机的Server服务程序接受各个应用程序的Socket数据处理请求,集中调度待处理数据;集中调度完成后,所述Server服务程序使用USB异步通信机制与USB接口密码设备进行交互;其中,所述USB异步通信机制将所有待处理数据集中传送至上位机硬件的USB缓冲栈,以等待与USB接口密码设备的交互。USB接口密码设备则在处理完成上一组数据之后,不需要进行等待,可以直接从上位机硬件层读走已准备好的待处理数据进行下一步操作。在时间维度上最大程度的利用了密码芯片的密码运算能力,通过该方式可有效提高了密码运算速率。有效提高了密码运算速率。有效提高了密码运算速率。


技术研发人员:

牛余晓 尹湘鲁 鲁法利 赵文莉 李文

受保护的技术使用者:

中孚信息股份有限公司

技术研发日:

2022.08.05

技术公布日:

2022/11/22

本文发布于:2024-09-21 07:56:58,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/18777.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:密码   小包   数据   阈值
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议