CN105207816A - 一种多缓冲并行加密的软件调度方法 - Google Patents
一种多缓冲并行加密的软件调度方法 Download PDFInfo
- Publication number
- CN105207816A CN105207816A CN201510589548.9A CN201510589548A CN105207816A CN 105207816 A CN105207816 A CN 105207816A CN 201510589548 A CN201510589548 A CN 201510589548A CN 105207816 A CN105207816 A CN 105207816A
- Authority
- CN
- China
- Prior art keywords
- packet
- data
- encryption
- buffering area
- dma
- 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.)
- Pending
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种多缓冲并行加密的软件调度方法,所述方法包括:(1)加密模块完成程序初始化后,判断是否有数据包需要读入缓冲区,若是则启动DMA传输,从加密设备中读入数据包,并保存到缓冲区,并将数据包标记为未处理状态;(2)加密模块判断缓冲区是否有数据包处于未处理状态,若是则运行数据加解密子程序,对数据包进行处理;(3)判断缓冲区是否有数据包需要送出,若有则通过DMA通道传输写出数据子程序。本发明调整加密数据报文的结构,增加了对多缓冲区方式的识别,实现多个缓冲区传输数据,减少待加解密数据在传输过程中的时间。
Description
技术领域
本发明涉及一种软件调度方法,具体涉及一种多缓冲并行加密的软件调度方法。
背景技术
随着电力信息网络的发展,越来越多的电力业务应用通过信息网络系统调度运行。为了保证信息系统业务数据的安全,普遍采用数据加密方式保护数据。电力网络通信系统对密码设备加解密的性能要求呈现几何级数增长。然而加密芯片的性能升级受硬件技术发展的制约,性能增长难以满足电力网络通信系统的需求,需要通过其他途径提升密码设备的加密性能。
由于在运行过程中大规模的数据在总线传输需要大量时间,加密程序在调度加密芯片加密的过程中存在效能浪费,因此加密芯片并非处于满负荷工作状态。可以通过研究高性能加密设备调度程序,提升加密芯片运行效率。
如何对通过加密模块的处理器对多缓冲区进行调度是该技术实现的难点,需要设计专门的软件调度方法来实现对多个缓冲区的控制,并且需要对缓冲区的结构进行一定的调整,以便实现对每个缓冲区识别、读写以及调度。
发明内容
为了克服上述现有技术的不足,本发明提供一种多缓冲并行加密的软件调度方法,本发明调整加密数据报文的结构,增加了对多缓冲区方式的识别,实现多个缓冲区传输数据,减少待加解密数据在传输过程中的时间。
为了实现上述发明目的,本发明采取如下技术方案:
一种多缓冲并行加密的软件调度方法,所述方法包括如下步骤:
(1)加密模块完成程序初始化后,判断是否有数据包需要读入缓冲区,若是则启动DMA传输,从加密设备中读入数据包,并保存到缓冲区,并将数据包标记为未处理状态;
(2)加密模块判断缓冲区是否有数据包处于未处理状态,若是则运行数据加解密子程序,对数据包进行处理;
(3)判断缓冲区是否有数据包需要送出,若有则通过DMA通道传输写出数据子程序。
优选的,所述步骤(1)中,所述数据包中包括缓冲区序号、状态标识、算法类型、加密解密方式、加密密钥、IV向量以及数据,所述状态标识用于标记数据包处理状态。
优选的,所述数据包的处理无需等待数据包处理完成,直接处理下一个数据包,处理所述下一个数据包包括如下步骤:
步骤1-1、判断DMA传输是否在使用,若是则等待直到所述DMA传输使用完成后,再启用DMA传输,否则直接通过DMA传输到缓冲区中;
步骤1-2、继续读入下一个数据包,直到所有的缓冲区的数据包都为未处理状态。
优选的,所述步骤(2)中包括如下步骤:
步骤2-1、判断加密模块是否处于空闲状态,若是则将缓冲区的未处理数据送入加密模块;
步骤2-2、所述加密模块中的加密芯片依次读取数据包内的明文,进行加密处理,所述加密处理是利用已设定的初始加密密钥,采用加密芯片的固定算法对数据进行加密或者解密操作;
步骤2-3、加密模块加解密处理完后,将已处理数据包从加密模块中读出,存入缓冲区,并标记该数据包为已完成处理;
步骤2-4、将所有缓冲区轮询一遍,是否有缓冲区中存在未处理的数据,若有则跳转至步骤2-1。
优选的,所述步骤(3)中,所述缓冲区中标记为已完成处理的数据包则需要送出,通过DMA传输,将数据包发送给加密设备,并在传输完成后标记缓冲区为空,为接收下一组数据包做准备。
优选的,所述DMA传输结束后,加密模块启动中断响应程序进行后续的传输控制操作,包括如下步骤:
A、判断本中断是否为主机中断,若是则清除当前指向的缓冲区数据包,准备接收下一组数据包;
B、判断DMA传输是否结束,若结束则清除DMA标志位,准备启动下一组数据包传输;
C、判断是否有数据包需要读入,如果是,则启动DMA传输,把数据包从加密设备读入到加密模块的对应缓冲区中;
D、上述流程处理完成以后,结束中断响应程序。
与现有技术相比,本发明的有益效果在于:
本发明提出的多缓冲方式提高加密卡性能的软件调度方法,通过调整加密数据报文的结构,增加了对多缓冲区方式的识别,实现多个缓冲区传输数据,减少待加解密数据在传输过程中的时间,从而提高数据加密卡的加解密速度。
附图说明
图1是本发明提供的一种多缓冲并行加密的软件调度方法的流程图
图2是本发明提供的一种中断响应程序的流程图
具体实施方式
下面结合附图对本发明作进一步详细说明。
本实施例提出一种多缓冲并行加密的软件调度方法,通过采用本软件调度方法,可以实现加密模块的多缓冲区的并行调度,采用多个缓冲区并行调度的加密模块可以有效提高加密芯片的工作效率,使加密芯片处于满负荷工作状态,从而提高加密模块的加解密速度。
加密模块检查缓冲区1数据是否是未处理的数据。如果是,判断加密芯片是否处于空闲状态,如果是空闲状态,将缓冲区的未处理数据送入加密芯片。加密芯片加密完成后,加密模块将已处理数据从加密芯片读出,存入缓冲区1中,并标识该数据包已完成处理。加密模块再检查缓冲区2,重复上述操作,并将所有的缓冲区轮询一遍。由于多个缓冲区中一定有待处理数据,所以加密芯片可以一直处于满负荷工作状态。通过实际测试检验,加密芯片的效率可以接近最大值,因此加密芯片实际可以处于饱和工作状态。
如图1所示,一种多缓冲并行加密的软件调度方法,包括以下步骤:
1、加密模块完成程序初始化后,判断是否有数据包需要读入缓冲区,若是则启动DMA传输,读入数据子程序,从加密设备中读入数据包,并保存到缓冲区,并将数据包标记为未处理状态;
所述数据包中包括缓冲区序号、状态标识、算法类型、加密解密方式、加密密钥、IV向量以及数据,所述状态标识用于标记数据包处理状态。
加密模块不需要等待上一个数据包处理,可以直接返回,然后处理第二个数据包。这时候,判断DMA是否在使用,如果DMA在使用,则等待直到DMA使用完成后,再启动DMA传输。如此可以继续读入下一个数据包,直到所有的缓冲区的数据包都为未处理状态。
2、加密模块判断缓冲区是否有数据包处于未处理状态,若是则运行数据加解密子程序,对数据包进行处理;
如果缓冲区有未处理的数据包,则加密模块调用数据加密子程序,对数据包进行处理,将数据包内的明文取出,依次取出写入加密芯片,待加密芯片完成加密后,从加密芯片中读取加密后的数据。
3、判断缓冲区是否有数据包需要送出,若有则通过DMA通道传输写出数据子程序。
缓冲区中标记为已完成处理的数据包则需要送出,通过DMA传输,将数据包发送给加密设备,并在传输完成后标记缓冲区为空,为接收下一组数据包做准备。
调度程序可以对每个缓冲区都执行上述操作,因此可以对所有缓冲区都依次轮询一遍,从而保证每个缓冲区的数据包都能得到处理。
为了实现在数据总线上高效的传输数据,加密模块采用了DMA方式与加密设备之间传输加密数据。中断响应程序是为了实现数据通过DMA通道传输的处理。加密模块通过设置传输指令启动数据包传输,当DMA传输结束后,会启动中断响应程序,此时加密模块可以在中断响应程序中进行后续的传输控制操作。
DMA传输完成后,加密模块处理芯片自动收到反馈信号,并立即调用中断响应程序,包括如下步骤:
A、判断本中断是否为主机中断,若是则清除当前指向的缓冲区数据包,准备接收下一组数据包;
B、判断DMA传输是否结束,若结束则清除DMA标志位,准备启动下一组数据包传输;
C、判断是否有数据包需要读入,如果是,则启动DMA传输,把数据包从加密设备读入到加密模块的对应缓冲区中;
D、上述流程处理完成以后,结束中断响应程序。
调度中断响应程序实现了对数据包在数据传输总线上的传输调度,使得程序可以循环往复的对缓冲区的数据进行传输处理。每当缓冲区有数据需要处理的时候,只要数据传输总线处于空闲状态,加密模块就会启动DMA传输,从而可以高效的利用总线进行数据传输。
加密设备的驱动程序需要与加密模块的程序相互配合。因此驱动程序的设计需要符合加密模块的调用需求。区别于单缓冲区的普通驱动程序,多缓冲区下驱动程序在初始化的时候,需要分配多个缓冲区,并且缓冲区需要与加密模块的缓冲区一一对应。驱动程序运行时,会依照待加密数据包的顺序,依次放入缓冲区,等待加密模块读取。待加密模块返回加密后数据包后,经中断通知驱动程序,驱动程序读取缓冲区内数据,完成数据处理。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。
Claims (6)
1.一种多缓冲并行加密的软件调度方法,其特征在于,所述方法包括如下步骤:
(1)加密模块完成程序初始化后,判断是否有数据包需要读入缓冲区,若是则启动DMA传输,从加密设备中读入数据包,并保存到缓冲区,并将数据包标记为未处理状态;
(2)加密模块判断缓冲区是否有数据包处于未处理状态,若是则运行数据加解密子程序,对数据包进行处理;
(3)判断缓冲区是否有数据包需要送出,若有则通过DMA通道传输写出数据子程序。
2.根据权利要求1所述软件调度方法,其特征在于,所述步骤(1)中,所述数据包中包括缓冲区序号、状态标识、算法类型、加密解密方式、加密密钥、IV向量以及数据,所述状态标识用于标记数据包处理状态。
3.根据权利要求2所述软件调度方法,其特征在于,所述数据包的处理无需等待数据包处理完成,直接处理下一个数据包,处理所述下一个数据包包括如下步骤:
步骤1-1、判断DMA传输是否在使用,若是则等待直到所述DMA传输使用完成后,再启用DMA传输,否则直接通过DMA传输到缓冲区中;
步骤1-2、继续读入下一个数据包,直到所有的缓冲区的数据包都为未处理状态。
4.根据权利要求1所述软件调度方法,其特征在于,所述步骤(2)中包括如下步骤:
步骤2-1、判断加密模块是否处于空闲状态,若是则将缓冲区的未处理数据送入加密模块;
步骤2-2、所述加密模块中的加密芯片依次读取数据包内的明文,进行加密处理,所述加密处理是利用已设定的初始加密密钥,采用加密芯片的固定算法对数据进行加密或者解密操作;
步骤2-3、加密模块加解密处理完后,将已处理数据包从加密模块中读出,存入缓冲区,并标记该数据包为已完成处理;
步骤2-4、将所有缓冲区轮询一遍,是否有缓冲区中存在未处理的数据,若有则跳转至步骤2-1。
5.根据权利要求1所述软件调度方法,其特征在于,所述步骤(3)中,所述缓冲区中标记为已完成处理的数据包则需要送出,通过DMA传输,将数据包发送给加密设备,并在传输完成后标记缓冲区为空,为接收下一组数据包做准备。
6.根据权利要求1所述软件调度方法,其特征在于,所述DMA传输结束后,加密模块启动中断响应程序进行后续的传输控制操作,包括如下步骤:
A、判断本中断是否为主机中断,若是则清除当前指向的缓冲区数据包,准备接收下一组数据包;
B、判断DMA传输是否结束,若结束则清除DMA标志位,准备启动下一组数据包传输;
C、判断是否有数据包需要读入,如果是,则启动DMA传输,把数据包从加密设备读入到加密模块的对应缓冲区中;
D、上述流程处理完成以后,结束中断响应程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510589548.9A CN105207816A (zh) | 2015-09-16 | 2015-09-16 | 一种多缓冲并行加密的软件调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510589548.9A CN105207816A (zh) | 2015-09-16 | 2015-09-16 | 一种多缓冲并行加密的软件调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105207816A true CN105207816A (zh) | 2015-12-30 |
Family
ID=54955269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510589548.9A Pending CN105207816A (zh) | 2015-09-16 | 2015-09-16 | 一种多缓冲并行加密的软件调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105207816A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109040790A (zh) * | 2018-06-28 | 2018-12-18 | 苏州科达科技股份有限公司 | 数据加解密方法、装置及电子设备 |
CN110287721A (zh) * | 2019-05-08 | 2019-09-27 | 郑州信大捷安信息技术股份有限公司 | 硬件加解密系统及方法 |
CN111262855A (zh) * | 2020-01-15 | 2020-06-09 | 深圳市网心科技有限公司 | Udp数据包处理方法、电子设备及介质 |
US20210406387A1 (en) * | 2020-06-29 | 2021-12-30 | Rockwell Automation Technologies, Inc. | Method and Apparatus for Managing Transmission of Secure Data Packets |
CN115037798A (zh) * | 2022-08-11 | 2022-09-09 | 成都金诺信高科技有限公司 | 一种时统报文数据包分发方法 |
CN115495767A (zh) * | 2022-11-04 | 2022-12-20 | 湖北芯擎科技有限公司 | 虚拟会话方法、装置、电子设备及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070286275A1 (en) * | 2004-04-01 | 2007-12-13 | Matsushita Electric Industrial Co., Ltd. | Integated Circuit For Video/Audio Processing |
CN101290569A (zh) * | 2008-05-06 | 2008-10-22 | 国网南京自动化研究院 | 一种采用多密码芯片并行数据处理的方法 |
CN102724035A (zh) * | 2012-06-15 | 2012-10-10 | 中国电力科学研究院 | 一种加密卡的加解密方法 |
CN104426654A (zh) * | 2013-08-29 | 2015-03-18 | 国家电网公司 | 一种基于多缓冲方式的加密卡的加解密方法 |
-
2015
- 2015-09-16 CN CN201510589548.9A patent/CN105207816A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070286275A1 (en) * | 2004-04-01 | 2007-12-13 | Matsushita Electric Industrial Co., Ltd. | Integated Circuit For Video/Audio Processing |
CN101290569A (zh) * | 2008-05-06 | 2008-10-22 | 国网南京自动化研究院 | 一种采用多密码芯片并行数据处理的方法 |
CN102724035A (zh) * | 2012-06-15 | 2012-10-10 | 中国电力科学研究院 | 一种加密卡的加解密方法 |
CN104426654A (zh) * | 2013-08-29 | 2015-03-18 | 国家电网公司 | 一种基于多缓冲方式的加密卡的加解密方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109040790A (zh) * | 2018-06-28 | 2018-12-18 | 苏州科达科技股份有限公司 | 数据加解密方法、装置及电子设备 |
CN109040790B (zh) * | 2018-06-28 | 2020-12-22 | 苏州科达科技股份有限公司 | 数据加解密方法、装置及电子设备 |
CN110287721A (zh) * | 2019-05-08 | 2019-09-27 | 郑州信大捷安信息技术股份有限公司 | 硬件加解密系统及方法 |
CN110287721B (zh) * | 2019-05-08 | 2021-07-30 | 郑州信大捷安信息技术股份有限公司 | 硬件加解密系统及方法 |
CN111262855A (zh) * | 2020-01-15 | 2020-06-09 | 深圳市网心科技有限公司 | Udp数据包处理方法、电子设备及介质 |
US20210406387A1 (en) * | 2020-06-29 | 2021-12-30 | Rockwell Automation Technologies, Inc. | Method and Apparatus for Managing Transmission of Secure Data Packets |
US11599649B2 (en) * | 2020-06-29 | 2023-03-07 | Rockwell Automation Technologies, Inc. | Method and apparatus for managing transmission of secure data packets |
CN115037798A (zh) * | 2022-08-11 | 2022-09-09 | 成都金诺信高科技有限公司 | 一种时统报文数据包分发方法 |
CN115037798B (zh) * | 2022-08-11 | 2022-12-27 | 成都金诺信高科技有限公司 | 一种时统报文数据包分发方法 |
CN115495767A (zh) * | 2022-11-04 | 2022-12-20 | 湖北芯擎科技有限公司 | 虚拟会话方法、装置、电子设备及计算机可读存储介质 |
CN115495767B (zh) * | 2022-11-04 | 2023-03-14 | 湖北芯擎科技有限公司 | 虚拟会话方法、装置、电子设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105207816A (zh) | 一种多缓冲并行加密的软件调度方法 | |
CN106254896B (zh) | 一种针对实时视频的分布式加密方法 | |
CN103403731B (zh) | 云存储系统的数据加密处理装置和方法 | |
CN101595487B (zh) | 文件解密界面 | |
CN106790221B (zh) | 一种英特网协议安全IPSec协议加密方法和网络设备 | |
EP2560319B1 (en) | Method, apparatus and system for data encryption transmission in m2m | |
CN102932141A (zh) | 多加解密芯片并行处理报文加解密的保序方法及系统 | |
CN106127059B (zh) | 一种arm平台上可信密码模块的实现和服务方法 | |
CN109104275A (zh) | 一种hsm设备 | |
CN112231735A (zh) | 一种数据传输方法及系统 | |
CN105515757B (zh) | 基于可信执行环境的安全性信息交互设备 | |
CN110557244B (zh) | 一种水利工业控制系统中应用数据单元加密方法 | |
CN112256602A (zh) | PCIe SSD控制器、数据存储系统及数据传输方法 | |
CN102739393A (zh) | 基于apb总线的硬件加密uart装置 | |
CN104426654A (zh) | 一种基于多缓冲方式的加密卡的加解密方法 | |
CN101515853B (zh) | 信息终端及其信息安全装置 | |
CN114499958B (zh) | 控制方法及装置、车辆及存储介质 | |
WO2018004596A1 (en) | Technologies for serializable binary data distribution | |
CN102523568A (zh) | 一种保证可靠接收的加密短信传输方法 | |
CN102255895A (zh) | 客户端和服务端之间的数据通信方法及系统 | |
CN112015564A (zh) | 加解密处理方法及装置 | |
CN116070295B (zh) | 数据处理系统 | |
CN113572591B (zh) | 智慧能源服务系统实时高并发安全接入装置和接入方法 | |
CN116860416A (zh) | 一种基于安全等级的大数据机密计算调度优化方法及系统 | |
CN117195324A (zh) | 存储装置内加解密模块的调用方法、存储装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151230 |
|
RJ01 | Rejection of invention patent application after publication |