CN112015564B - 加解密处理方法及装置 - Google Patents
加解密处理方法及装置 Download PDFInfo
- Publication number
- CN112015564B CN112015564B CN201910450058.9A CN201910450058A CN112015564B CN 112015564 B CN112015564 B CN 112015564B CN 201910450058 A CN201910450058 A CN 201910450058A CN 112015564 B CN112015564 B CN 112015564B
- Authority
- CN
- China
- Prior art keywords
- data
- encrypted
- decrypted
- module
- encryption
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 238000012545 processing Methods 0.000 claims abstract description 48
- 238000000034 method Methods 0.000 claims abstract description 35
- 230000005540 biological transmission Effects 0.000 claims abstract description 21
- 238000004590 computer program Methods 0.000 claims description 14
- 230000007246 mechanism Effects 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 8
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 4
- 230000005856 abnormality Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 12
- 238000012546 transfer Methods 0.000 description 6
- 238000005538 encapsulation Methods 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 230000005641 tunneling Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012858 packaging process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供一种加解密处理方法及装置,所述方法包括:ARM模块通过专用消息队列将待加解密数据发送到DSP模块;DSP模块按照预设传输速率将所述待加解密数据发送到FPGA模块;FPGA模块对所述待加解密数据进行加解密处理,再将经过加解密处理之后的数据写入所述ARM模块和所述DSP模块之间的共享内存中。本发明实施例提供的加解密处理方法及装置,组合使用硬件分配的专用消息队列通道和共享内存通道进行加解密前后数据的传输,避免了网络风暴导致FPGA出现硬件异常,同时,又提高了加解密处理的速率,降低了对业务数据通道资源的占用,减小了***开支。
Description
技术领域
本发明涉及嵌入式处理器应用技术领域,尤其涉及一种加解密处理方法及装置。
背景技术
在通信领域中,信息安全非常重要,尤其是基站***中对数据的加密是重中之重。
现有技术中,通常使用软件实现祖冲之算法,来对基站中的数据进行加解密,软件祖冲之模块在BPU(BBU Process Unit BBU处理单元)CPB(Channel Program Block信道程序块)的ARM(Advanced RISC Machines)核上运行。软件祖冲之算法的运算复杂度非常高,一个800MHz主频的CPU(Central Processing Unit中央处理器),通常只能支持对几Mbps吞吐量的数据流进行加解密。因此,出现了将软件祖冲之加解密模块从ARM模块上移出来,下移至FPGA,由FPGA硬件来实现数据的加解密的技术方案,祖冲之算法主体运行在FPGA上,FPGA只负责业务数据的加解密处理,ARM模块控制业务数据的处理流程,为FPGA提供加解密对象及加解密参数。这种方案充分解放ARM模块的处理能力,且FPGA硬件加解密比软件加解密速度快,提高了对加解密数据处理的效率。
但是,现有技术中的方案中,由于FPGA模块的内部缓存容量非常小,FPGA模块缓存的数据包数有限,如果大量的加解密数据由ARM模块传输到FPGA模块,将会导致FPGA模块出现硬件异常,甚至宕机。如果限制ARM模块与FPGA模块之间的数据传输速率,则会导致加解密处理速率降低,增加***开支,且抢占业务数据通道资源,又会出现误码率,有效性和正确性会有所降低,因此,如何设计ARM模块与FPGA模块之间的数据传输通道,成为亟待解决的技术问题。
发明内容
本发明实施例的目的是提供一种克服上述问题或者至少部分地解决上述问题的加解密处理方法及装置。
为了解决上述技术问题,一方面,本发明实施例提供一种加解密处理方法,包括:
ARM模块通过专用消息队列将待加解密数据发送到DSP模块;
DSP模块按照预设传输速率将所述待加解密数据发送到FPGA模块;
FPGA模块对所述待加解密数据进行加解密处理,再将经过加解密处理之后的数据写入所述ARM模块和所述DSP模块之间的共享内存中。
进一步地,所述通过专用消息队列将待加解密数据发送到DSP模块,具体包括:
对原始数据进行分组数据报文封装,产生所述待加解密数据;
将所述待加解密数据拷贝到专用消息队列中,并通过消息队列机制将所述待加解密数据的报文指针发送到所述DSP模块。
进一步地,所述按照预设传输速率将所述待加解密数据发送到FPGA模块,具体包括:
按照预设周期从所述专用消息队列中获取N个待加解密数据的数据包,其中,N为所述FPGA模块在所述预设周期内能够处理的数据包个数的上限值;
通过Rapid IO接口将所述N个待加解密数据的数据包发送到所述FPGA模块。
进一步地,所述方法还包括:
根据所述Rapid IO接口的返回值确定获取所述专用消息队列的描述符成功和失败的次数。
进一步地,所述方法还包括:
所述ARM模块从所述共享内存中读取经过加解密处理之后的数据。
进一步地,所述方法还包括:
所述ARM模块对所述共享内存中的经过加解密处理之后的数据进行可靠性检测。
进一步地,所述FPGA模块通过Rapid IO接口将经过加解密处理之后的数据写入所述ARM模块和所述DSP模块之间的共享内存,写起始地址由DSP模块初始化所述Rapid IO接口时指定。
另一方面,本发明实施例提供一种加解密处理装置,包括:
ARM模块,用于通过专用消息队列将待加解密数据发送到DSP模块;
DSP模块,用于按照预设传输速率将所述待加解密数据发送到FPGA模块;
FPGA模块,用于对所述待加解密数据进行加解密处理,再将经过加解密处理之后的数据写入所述ARM模块和所述DSP模块之间的共享内存中。
再一方面,本发明实施例提供一种电子设备,包括:存储器、处理器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述方法的步骤。
又一方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被处理器执行时,实现上述方法的步骤。
本发明实施例提供的加解密处理方法及装置,组合使用硬件分配的专用消息队列通道和共享内存通道进行加解密前后数据的传输,避免了网络风暴导致FPGA出现硬件异常,同时,又提高了加解密处理的速率,降低了对业务数据通道资源的占用,减小了***开支。
附图说明
图1为本发明实施例提供的加解密处理方法示意图;
图2为本发明实施例提供的FPGA加解密后数据返回的内存示意图;
图3为本发明实施例提供的加密流程示意图;
图4为本发明实施例提供的解密流程示意图;
图5为本发明实施例提供的加解密处理装置示意图;
图6为本发明实施例提供的电子设备的结构示意图。
具体实施方式
为了使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对将加解密模块从ARM模块上移出来,下移至FPGA,由FPGA硬件来实现数据的加解密的技术方案中,将ARM侧上层数据传入FPGA,经FPGA加解密后再返回给ARM的具体方式可以采用以下两种:
第一种,数据传入传出FPGA都使用共享内存方式。由于FPGA内部缓存容量非常小,FPGA缓存的数据包数有限,所以待加解密数据需要通过DSP(Digital Signal Processor数字信号处理器)硬件分配的消息队列进行缓存,然后DSP再发给FPGA逐包进行处理。若ARM与DSP直接使用共享内存方式,共享内存没有数据流限制,FPGA加解密速率有上限值,1毫秒最多N(当前为20)个包数据的处理量,当出现网络风暴冲击时,FPGA会出现硬件异常。由于FPGA在加解密后,传给ARM的数据没有速率要求,所以从FPGA到ARM数据可用内存映射方式。
第二种,数据传入传出FPGA都使用硬件分配的消息队列方式。加解密前数据ARM通过消息队列传给DSP,DSP通过Rapid IO(rapid input/output快速输入输出)接口发给FPGA,可控制速率。由于ARM与DSP业务数据的交互都是通过硬件分配的消息队列来进行,若祖冲之加解密后的数据也使用消息队列,绕道DSP会降低传输速率,增加***开支,且抢占业务数据通道资源,硬件分配的消息队列有误码率,有效性和正确性会有所降低。
为了解决上述技术问题,本发明实施例提供了一种高效、可靠性高的硬件加解密数据通道方式。该方法组合使用硬件分配的消息队列通道和共享内存通道进行加解密前后数据的传输。待加解密数据从ARM通过消息队列发送到DSP,DSP通过Rapid IO将数据传给FPGA,当FPGA完成数据加解密后,将加解密后的数据通过Rapid IO发送到DSP与ARM之间的共享内存中。
图1为本发明实施例提供的加解密处理方法示意图,如图1所示,本发明实施例提供一种加解密处理方法,其执行主体为加解密处理装置,例如,基站等。该方法包括:
步骤S101、ARM模块通过专用消息队列将待加解密数据发送到DSP模块。
具体来说,当ARM模块有需要进行加解密处理的数据时,例如,需要使用祖冲之算法对数据进行加解密处理时,首先通过PDCP子模块对原始数据进行处理,经过GTP-U(GPRSTunneling Protocol User Plane)完成分组数据报文的封装,生成加解密处理的数据包PDCP PDU(PDCP协议数据单元),其中,封装过程中包含带内信令过程、密钥、加解密参数以及用户业务承载标识号等(放在数据包消息头中)。
然后,由PDCP子模块调用写消息队列接口把待加解密的数据包拷贝到专用消息队列描述符返回的地址中,通过消息队列Qmss机制将报文指针传输给DSP模块。
步骤S102、DSP模块按照预设传输速率将所述待加解密数据发送到FPGA模块。
具体来说,DSP模块收到报文指针后,按照预设传输速率将待加解密数据发送到FPGA模块。例如,DSP模块每1ms周期性检测DSP模块与ARM模块之间的专用消息队列中描述符个数,每个描述符对应一包数据,若有描述符,则说明ARM模块侧的PDCP子模块给DSP模块发送了数据包,在DSP模块通过Rapid IO将数据传给FPGA模块前,DSP模块会检测专用消息队列中数据包的个数,根据FPGA模块处理能力确定从专用消息队列中取出的数据包的个数,然后使用Rapid IO接口逐包把待加解密数据传送给FPGA模块,清除重用标识以便ARM模块可以重用该缓冲区。
步骤S103、FPGA模块对所述待加解密数据进行加解密处理,再将经过加解密处理之后的数据写入所述ARM模块和所述DSP模块之间的共享内存中。
具体来说,FPGA模块获取待加解密数据之后,对数据进行加解密处理,FPGA使用密钥和加解密参数对PDCP SDU(Service Data Unit服务数据单元)进行加解密,加解密后得到的密文数据长度不变;FPGA处理完成后,将加解密后的PDCP PDU送回ARM核上的PDCP模块,PDCP模块收到后进行后续的正常协议处理步骤。
例如,采用祖冲之算法对数据进行加解密处理。最后,再使用Rapid IO接口,即,通过写ARM与DSP的共享内存接口,将经过加解密处理之后的数据写入ARM模块和DSP模块之间的共享内存中。ARM模块和DSP模块可以独立地从共享内存中获取经过加解密处理之后的数据,以进行后续的处理。
本发明实施例提供的加解密处理方法,组合使用硬件分配的专用消息队列通道和共享内存通道进行加解密前后数据的传输,避免了网络风暴导致FPGA出现硬件异常,同时,又提高了加解密处理的速率,降低了对业务数据通道资源的占用,减小了***开支。
基于上述任一实施例,进一步地,所述通过专用消息队列将待加解密数据发送到DSP模块,具体包括:
对原始数据进行分组数据报文封装,产生所述待加解密数据;
将所述待加解密数据拷贝到专用消息队列中,并通过消息队列机制将所述待加解密数据的报文指针发送到所述DSP模块。
具体来说,当ARM模块有需要进行加解密处理的数据时,首先通过PDCP子模块对原始数据进行处理,经过GTP-U(GPRS Tunneling Protocol User Plane)完成分组数据报文的封装,生成加解密处理的数据包PDCP PDU(PDCP协议数据单元),其中,封装过程中包含带内信令过程、密钥、加解密参数以及用户业务承载标识号等(放在数据包消息头中)。
然后,由PDCP子模块调用写消息队列接口把待加解密的数据包拷贝到专用消息队列描述符返回的地址中,通过消息队列Qmss机制将报文指针传输给DSP模块。
本发明实施例提供的加解密处理方法,使用硬件分配的专用消息队列通道将待加解密数据传输到DSP模块,由DSP模块控制传入FPGA模块的数据的速率,避免了网络风暴导致FPGA出现硬件异常。
基于上述任一实施例,进一步地,所述按照预设传输速率将所述待加解密数据发送到FPGA模块,具体包括:
按照预设周期从所述专用消息队列中获取N个待加解密数据的数据包,其中,N为所述FPGA模块在所述预设周期内能够处理的数据包个数的上限值;
通过Rapid IO接口将所述N个待加解密数据的数据包发送到所述FPGA模块。
具体来说,DSP模块收到报文指针后,按照预设周期从专用消息队列中获取N个待加解密数据的数据包,其中,N为FPGA模块在所述预设周期内能够处理的数据包个数的上限值。
然后,通过Rapid IO接口将N个待加解密数据的数据包发送到FPGA模块。
例如,DSP模块每1ms周期性检测DSP模块与ARM模块之间的专用消息队列中描述符个数,每个描述符对应一包数据,若有描述符,则说明ARM模块侧的PDCP子模块给DSP模块发送了数据包,在DSP模块通过Rapid IO将数据传给FPGA模块前,DSP模块会检测专用消息队列中数据包的个数,根据FPGA模块处理能力确定,以每毫秒上限为N取出描述符,从描述符中卸载数据包,若包的个数多于N包,则使用RapidIO接口,将祖冲之加解密前数据包的内存地址作为入参,先逐包传递前N包,下一毫秒继续传剩下的包。若消息通道中的消息小于N,则使用rapidIO接口逐包全部传送给FPGA,不会等待攒够N包再发送,保证加解密的实时性。
由于ARM模块侧高层PDCP子模块给DSP模块发包周期为25ms核间中断触发的,而DSP模块每毫秒进行检测,即使出现网络风暴,DSP模块最多可分25次传递PDCP一次发过来的数据包,足以应对网络风暴时PDCP最大数据量。可以避免出现丢包或攒包现象。
本发明实施例提供的加解密处理方法,由DSP模块控制传入FPGA模块的数据的速率,即保证了数据传输的实时性,又避免了网络风暴导致FPGA出现硬件异常。
基于上述任一实施例,进一步地,所述方法还包括:
根据所述Rapid IO接口的返回值确定获取所述专用消息队列的描述符成功和失败的次数。
具体来说,在DSP模块通过Rapid IO接口给FPGA模块发送数据的过程中,根据Rapid IO接口返回值记录获取描述符成功和失败次数,便于检测数据发送的可靠性。
本发明实施例提供的加解密处理方法,通过记录获取描述符成功和失败次数,提高了数据发送的可靠性。
基于上述任一实施例,进一步地,所述方法还包括:
所述ARM模块从所述共享内存中读取经过加解密处理之后的数据。
具体来说,FPGA模块使用Rapid IO接口将经过加解密处理之后的数据写入ARM模块和DSP模块之间的共享内存中之后,ARM模块和DSP模块可以独立地从共享内存中获取经过加解密处理之后的数据,以进行后续的处理。
ARM模块的用户面(UP)软件调用驱动的读共享内存包数接口,获取包数再调读共享内存接口读走加密后的报文,清重用标识。
本发明实施例提供的加解密处理方法,ARM模块直接从共享内存中读取经过加解密处理之后的数据,提高了加解密的效率。
基于上述任一实施例,进一步地,所述方法还包括:
所述ARM模块对所述共享内存中的经过加解密处理之后的数据进行可靠性检测。
具体来说,FPGA模块使用Rapid IO接口将经过加解密处理之后的数据写入ARM模块和DSP模块之间的共享内存中之后,ARM模块和DSP模块可以独立地从共享内存中获取经过加解密处理之后的数据,以进行后续的处理。
ARM模块通过ARM驱动直接从共享内存中查看FPGA加解密结果,统计是否有丢包错包,FPGA加解密后DSP不需要专门的队列通知ARM侧。
本发明实施例提供的加解密处理方法,ARM模块通过统计共享内存中的数据是否有丢包错包,提高了数据传输的可靠性。
基于上述任一实施例,进一步地,所述FPGA模块通过Rapid IO接口将经过加解密处理之后的数据写入所述ARM模块和所述DSP模块之间的共享内存,写起始地址由DSP模块初始化所述Rapid IO接口时指定。
具体来说,图2为本发明实施例提供的FPGA加解密后数据返回的内存示意图,写回地址规划如图2所示,两个小区共4M,FPGA写回起始地址由DSP初始化rapidIO时映射本地写地址窗时指定。
例如,采用祖冲之算法对数据进行加解密,祖冲之数据每个用户开辟2048B的DDR存储空间,其中,前28B为祖冲之数据的数据头,接下来有效数据紧凑排列,其余不足2408B的空间部分为保留空间,数据无效。
每个小区上(或下)行最多512个用户。这样,祖冲之数据在SOC(System on a Chip片上***)的DDR(Double Data Rate SDRAM双倍速同步动态随机存储器)空间中,共需要2048×2048B(=4194304×8bits)的存储空间,其中每个小区上(或下行)开辟512×2048B用户空间。
本发明实施例提供的加解密处理方法,FPGA写回起始地址由DSP初始化rapidIO时映射本地写地址窗时指定,提高了数据传输的效率。
基于上述任一实施例,图3为本发明实施例提供的加密流程示意图,如图3所示,针对加密的具体流程如下:
(1)基站通过S1口接收核心网的数据。
(2)S1口的数据通过UDP SOCKET传递。
(3)数据到达UP-CPU(User Plane用户面),如果需要进行祖冲之加密,PDCP处理,经过GTP-U(GPRS Tunneling Protocol User Plane,完成分组数据报文的封装,并包含带内信令过程),产生待加密的数据。
(4)由PDCP协议层模块把待加密的数据拷贝到下行队列1里。
(5)通过消息队列机制将报文指针传输给DSP。
(6)由DSP驱动通过RapidIO接口传递给FPGA,FPGA对数据报进行加密,产生加密后的数据。
(7)FPGA加密后,把数据通过RapidIO接口发给DSP与ARM的共享内存(MSMC),即下行队列2里。
(8)UP-CPU通过周期性中断(25ms核间中断)读取加密后的数据。
(9)ARM侧接收FPGA消息的任务通过周期性中断机制(25ms核间中断)查询一次上行队列,如果发现有处理完的数据存在,PDCP模块将数据取出,UP-CPU将加密后的数据传递给DSP驱动。
(10)DSP驱动将加密后的数据传递给DSP UP(User Plane用户面)。
(11)DSP UP经过RLC(Radio Link Protocol无线链路协议)、MAC(Medium AccessControl Layer媒质接入控制层)处理后,将数据传递给DSP侧BB(Base Band基带)。
(12)BB进行物理层处理后,通过DSP AGENT(代理)封装queue(队列)机制传递给FPGA。
(13)FPGA通过空口将加密后的数据发送终端。
其中,图3中虚线箭头指示的流程4-6为此发明实施例中的专用消息队列通道部分,即ARM将待加密数据传入FPGA使用的数据通道,图3中虚线箭头指示的流程7-8为此发明实施例中的共享内存通道部分,即,待FPGA加密后,再将加密后的数据传回ARM上层用户软件使用的通道。
基于上述任一实施例,图4为本发明实施例提供的解密流程示意图,如图4所示,针对解密的具体流程如下:
(1)-(5)步骤:终端将需要解密的数据发送给基站,依次通过FPGA、DSP侧基带(BBDSP)、DSP侧用户层(UP DSP)、发送给ARM侧的用户层(UP ARM)处理后,产生待解密的PDCPPDU。
(6)-(8)步骤:ARM核上PDCP模块将待解密的数据拷贝到上行队列1中,通过Qmss机制把报文指针传输给DSP,由DSP驱动通过RapidIO接口发送给FPGA,FPGA对数据报进行解密,产生解密后的数据。
(9)-(10)步骤:FPGA将解密后的数据通过RapidIO发给DSP与ARM的共享内存中(MSMC),即上行队列2中,UP-CPU通过周期性中断读取解密后的数据。
(11)-(13)步骤:解密后的数据经过PDCP、GTP-U协议层处理后,通过UDP SOCKET从BPUCPB板经由MCB板发送给SGW。
其中,图4中虚线箭头指示的流程6-8为此发明实施例中的专用消息队列通道部分,即ARM将待解密数据传入FPGA使用的数据通道,图4中虚线箭头指示的流程9-10为此发明实施例中的共享内存通道部分,即,待FPGA解密后,再将解密后的数据传回ARM上层用户软件使用的通道。
基于上述任一实施例,图5为本发明实施例提供的加解密处理装置示意图,如图5所示,本发明实施例提供一种加解密处理装置,包括ARM模块501、DSP模块502和FPGA模块503,其中:
ARM模块501用于通过专用消息队列将待加解密数据发送到DSP模块;DSP模块502用于按照预设传输速率将所述待加解密数据发送到FPGA模块;FPGA模块503用于对所述待加解密数据进行加解密处理,再将经过加解密处理之后的数据写入所述ARM模块和所述DSP模块之间的共享内存中。
所述通过专用消息队列将待加解密数据发送到DSP模块,具体包括:
对原始数据进行分组数据报文封装,产生所述待加解密数据;
将所述待加解密数据拷贝到专用消息队列中,并通过消息队列机制将所述待加解密数据的报文指针发送到所述DSP模块。
基于上述任一实施例,进一步地,所述DSP模块具体用于:
按照预设周期从所述专用消息队列中获取N个待加解密数据的数据包,其中,N为所述FPGA模块在所述预设周期内能够处理的数据包个数的上限值;
通过Rapid IO接口将所述N个待加解密数据的数据包发送到所述FPGA模块。
基于上述任一实施例,进一步地,所述DSP模块还用于:
根据所述Rapid IO接口的返回值确定获取所述专用消息队列的描述符成功和失败的次数。
基于上述任一实施例,进一步地,所述ARM模块还用于:
从所述共享内存中读取经过加解密处理之后的数据。
基于上述任一实施例,进一步地,所述ARM模块还用于:
对所述共享内存中的经过加解密处理之后的数据进行可靠性检测。
基于上述任一实施例,进一步地,所述FPGA模块通过Rapid IO接口将经过加解密处理之后的数据写入所述ARM模块和所述DSP模块之间的共享内存,写起始地址由DSP模块初始化所述Rapid IO接口时指定。
本发明实施例提供的加解密处理装置,组合使用硬件分配的专用消息队列通道和共享内存通道进行加解密前后数据的传输,避免了网络风暴导致FPGA出现硬件异常,同时,又提高了加解密处理的速率,降低了对业务数据通道资源的占用,减小了***开支。
图6为本发明实施例提供的电子设备的结构示意图,如图6所示,所述设备包括:处理器(processor)601、存储器(memory)602、总线603,以及存储在存储器上并可在处理器上运行的计算机程序。
其中,处理器601和存储器602通过总线603完成相互间的通信;
处理器601用于调用并执行存储器602中的计算机程序,以执行上述各方法实施例中的步骤,例如包括:
ARM模块通过专用消息队列将待加解密数据发送到DSP模块;DSP模块按照预设传输速率将所述待加解密数据发送到FPGA模块;FPGA模块对所述待加解密数据进行加解密处理,再将经过加解密处理之后的数据写入所述ARM模块和所述DSP模块之间的共享内存中。
此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例中的步骤,例如包括:
ARM模块通过专用消息队列将待加解密数据发送到DSP模块;DSP模块按照预设传输速率将所述待加解密数据发送到FPGA模块;FPGA模块对所述待加解密数据进行加解密处理,再将经过加解密处理之后的数据写入所述ARM模块和所述DSP模块之间的共享内存中。
本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被处理器执行时,实现上述各方法实施例中的步骤,例如包括:
ARM模块通过专用消息队列将待加解密数据发送到DSP模块;DSP模块按照预设传输速率将所述待加解密数据发送到FPGA模块;FPGA模块对所述待加解密数据进行加解密处理,再将经过加解密处理之后的数据写入所述ARM模块和所述DSP模块之间的共享内存中。
以上所描述的装置及设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种加解密处理方法,其特征在于,包括:
ARM模块通过专用消息队列通道将待加解密数据发送到DSP模块;
DSP模块按照预设传输速率将所述待加解密数据发送到FPGA模块;
FPGA模块对所述待加解密数据进行加解密处理,再将经过加解密处理之后的数据写入所述ARM模块和所述DSP模块之间的共享内存中;
所述专用消息队列通道为ARM将待加密数据传入FPGA使用的数据通道,或ARM将待解密数据传入FPGA使用的数据通道;
所述通过专用消息队列通道将待加解密数据发送到DSP模块,具体包括:
对原始数据进行分组数据报文封装,产生所述待加解密数据;
将所述待加解密数据拷贝到专用消息队列通道中,并通过消息队列机制将所述待加解密数据的报文指针发送到所述DSP模块。
2.根据权利要求1所述的加解密处理方法,其特征在于,所述按照预设传输速率将所述待加解密数据发送到FPGA模块,具体包括:
按照预设周期从所述专用消息队列通道中获取N个待加解密数据的数据包,其中,N为所述FPGA模块在所述预设周期内能够处理的数据包个数的上限值;
通过Rapid IO接口将所述N个待加解密数据的数据包发送到所述FPGA模块。
3.根据权利要求2所述的加解密处理方法,其特征在于,所述方法还包括:
根据所述Rapid IO接口的返回值确定获取所述专用消息队列通道的描述符成功和失败的次数。
4.根据权利要求1所述的加解密处理方法,其特征在于,所述方法还包括:
所述ARM模块从所述共享内存中读取经过加解密处理之后的数据。
5.根据权利要求1所述的加解密处理方法,其特征在于,所述方法还包括:
所述ARM模块对所述共享内存中的经过加解密处理之后的数据进行可靠性检测。
6.根据权利要求1所述的加解密处理方法,其特征在于,所述FPGA模块通过Rapid IO接口将经过加解密处理之后的数据写入所述ARM模块和所述DSP模块之间的共享内存,写起始地址由DSP模块初始化所述Rapid IO接口时指定。
7.一种加解密处理装置,其特征在于,包括:
ARM模块,用于通过专用消息队列通道将待加解密数据发送到DSP模块;
DSP模块,用于按照预设传输速率将所述待加解密数据发送到FPGA模块;
FPGA模块,用于对所述待加解密数据进行加解密处理,再将经过加解密处理之后的数据写入所述ARM模块和所述DSP模块之间的共享内存中;
所述专用消息队列通道为ARM将待加密数据传入FPGA使用的数据通道,或ARM将待解密数据传入FPGA使用的数据通道;
所述通过专用消息队列通道将待加解密数据发送到DSP模块,具体包括:
对原始数据进行分组数据报文封装,产生所述待加解密数据;
将所述待加解密数据拷贝到专用消息队列通道中,并通过消息队列机制将所述待加解密数据的报文指针发送到所述DSP模块。
8.一种电子设备,包括存储器、处理器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如权利要求1至6任一项所述加解密处理方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序被处理器执行时,实现如权利要求1至6任一所述加解密处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910450058.9A CN112015564B (zh) | 2019-05-28 | 2019-05-28 | 加解密处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910450058.9A CN112015564B (zh) | 2019-05-28 | 2019-05-28 | 加解密处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112015564A CN112015564A (zh) | 2020-12-01 |
CN112015564B true CN112015564B (zh) | 2024-05-17 |
Family
ID=73500326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910450058.9A Active CN112015564B (zh) | 2019-05-28 | 2019-05-28 | 加解密处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112015564B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115022076A (zh) * | 2022-06-29 | 2022-09-06 | 浪潮电子信息产业股份有限公司 | 一种数据加/解密方法、装置、***及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8320556B1 (en) * | 2006-09-28 | 2012-11-27 | Rockwell Collins, Inc. | Method to allow cryptographic processing of messages without sanitizing the cryptographic processor between messages |
CN103377157A (zh) * | 2012-04-27 | 2013-10-30 | 沈阳高精数控技术有限公司 | 一种用于嵌入式数控***的双核数据通信方法 |
CN106790221A (zh) * | 2017-01-11 | 2017-05-31 | 京信通信技术(广州)有限公司 | 一种英特网协议安全IPSec协议加密方法和网络设备 |
US10230693B2 (en) * | 2015-01-29 | 2019-03-12 | WebCloak, LLC | Safechannel encrypted messaging system |
-
2019
- 2019-05-28 CN CN201910450058.9A patent/CN112015564B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8320556B1 (en) * | 2006-09-28 | 2012-11-27 | Rockwell Collins, Inc. | Method to allow cryptographic processing of messages without sanitizing the cryptographic processor between messages |
CN103377157A (zh) * | 2012-04-27 | 2013-10-30 | 沈阳高精数控技术有限公司 | 一种用于嵌入式数控***的双核数据通信方法 |
US10230693B2 (en) * | 2015-01-29 | 2019-03-12 | WebCloak, LLC | Safechannel encrypted messaging system |
CN106790221A (zh) * | 2017-01-11 | 2017-05-31 | 京信通信技术(广州)有限公司 | 一种英特网协议安全IPSec协议加密方法和网络设备 |
Non-Patent Citations (1)
Title |
---|
基于DSP的新一代渔业基站电台的设计与实现;马传文;中国优秀硕士学位论文全文数据库信息科技辑(月刊)(第08期);I136-260 * |
Also Published As
Publication number | Publication date |
---|---|
CN112015564A (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6970446B2 (en) | Method and apparatus to provide inline encryption and decryption for a wireless station via data streaming over a fast network | |
US7548532B2 (en) | Method and apparatus to provide inline encryption and decryption for a wireless station via data streaming over a fast network | |
EP1980952B1 (en) | Methods and apparatus for high speed data processing by a user equipment UE | |
EP2247020B1 (en) | Technique for performing layer 2 processing using a distributed memory architecture | |
CN110138553B (zh) | 一种IPSec VPN网关数据包处理装置及方法 | |
JP5450655B2 (ja) | 無線通信装置により受信され、暗号処理動作を少なくとも部分的に必要とする、データストリームを処理する方法および対応する装置 | |
US20210306302A1 (en) | Datagram processing method, processing unit and vpn server | |
CN109714292A (zh) | 传输报文的方法与装置 | |
CN112052483B (zh) | 一种密码卡的数据通信***及方法 | |
CN112699397A (zh) | 基于虚拟环境下的软件加解密方法和*** | |
CN107786464B (zh) | 一种实现节点间通信的方法及装置 | |
CN112015564B (zh) | 加解密处理方法及装置 | |
US20240163674A1 (en) | Communication method and apparatus | |
JP5294761B2 (ja) | セキュア通信装置、セキュア通信方法及びプログラム | |
US7505598B2 (en) | On-the-fly encryption/decryption for WLAN communications | |
CN101655894A (zh) | 在通用串行总线加密锁设备上提高分组算法吞吐量的方法 | |
CN100502348C (zh) | 网络安全处理装置及其方法 | |
JP2004328359A (ja) | パケット処理装置 | |
JP2003069555A (ja) | 暗号装置および暗復号処理方法 | |
JP2005167870A (ja) | データ処理方法およびデータ処理装置 | |
EP4346255A1 (en) | Encrypted satellite communications | |
KR101588279B1 (ko) | 무선 통신 시스템에서 데이터 암호화 방법 및 장치 | |
JP2018195873A (ja) | 基地局,及びパケットの暗号化処理方法 | |
CN110915179B (zh) | 处理设备、通信设备以及相应的方法 | |
JP2020043486A (ja) | 通信装置、通信装置の制御方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |