一种多主机接口转SATA桥的双核加密桥及加解密传输方法与流程

文档序号:32251974发布日期:2022-11-19 01:51阅读:60来源:国知局
一种多主机接口转SATA桥的双核加密桥及加解密传输方法与流程
一种多主机接口转sata桥的双核加密桥及加解密传输方法
技术领域
1.本发明属于数据安全传输技术领域,更具体地,涉及一种多主机接口转sata桥的双核加密桥及加解密传输方法。


背景技术:

2.随着互联网应用的普及以及工业、商业智能化的推广,信息存储的安全性问题得到愈加广泛的重视。而存储于各类终端、服务器中的文件数据,很多涉及企业或者个人的敏感和隐私数据,如果硬盘设备被盗或是内部人员非法访问,则存在信息泄露的风险,给企业或个人带来巨大的损失。在今天的计算机环境中,终端用户设备中存在许多安全威胁。这些威胁是无意的,如人为错误,而另一些则有意为之。常见的威胁是用户硬盘设备的遗失或遭窃,在硬盘设备丢失的情况下如何保护硬盘设备中的数据安全,成为了当前亟待研究解决的问题。
3.现有专利文献也公开了相关的解决方案,例如:
4.中国专利文献cn109657502a公开一种基于国产密码算法的sata桥接实时传输加密系统及方法,包括依次连接的桌面系统安全存储控制芯片、sata device ip核、sata host ip核和硬盘,还包括有usb host ip核,用于对插入桌面系统的安全存储控制芯片外置usb口上的存储设备u_key进行身份认证,分别与sata device ip核和sata host ip核连接有用于数据加解密的简单数据管理协议sm1模块和sm4模块。通过利用寄存器控制两张表按照fis区中的命令协议,来完成数据传输的。
5.现有的在计算机终端硬件上增加加密芯片,通过加密芯片对写入硬盘的数据进行加解密,大多是用加密桥的方式。sata全称是serial advanced technology attachment(串行高级技术附件),是一种基于行业标准的串行硬件驱动器接口,是由intel、ibm、dell、apt、maxtor和seagate公司共同提出的硬盘接口规范。该方案对外数据接口仅为usb接口,且该专利文献基于单核数据加密传输,其过程为串行过程,算法仅包含国产密码算法,适用场景有限。此方案在应用过程中会发生性能损耗,限制高速接口的高带宽性能。


技术实现要素:

6.本发明旨在克服上述现有技术的至少一种缺陷,提供一种多主机接口转sata桥的双核加密桥。
7.本发明还公开一种多主机接口转sata桥的加解密传输方法,用于解决现有技术中加密桥性能低、传输效率低、应用场景有限的问题。
8.本发明依托双核队列技术及底层的sata高速接口桥接通路,实现对关键数据的高效加密传输。
9.技术术语说明:
10.1、sdram:是synchronous dynamic random-access memory的缩写,是指同步动态随机存取内存;
host之间的数据是通过sata dma的方式传输的。
25.所述的sata dma传输方式即直接存储访问方式,令所述第一双核嵌入式处理器的sata devicet与第二双核嵌入式处理器的sata host的数据传输更加高效,提高了多条数据包的加解密及传输时的效率。
26.本发明还提供了一种多主机接口转sata桥的加解密传输方法,包括:
27.数据配置步骤:主机按照定义好的协议下发与数据相关的配置命令:透传或加密或解密;
28.数据加解密步骤:当双核嵌入式处理器模块收到配置命令后,待加解密数据通过数据接口进入双核嵌入式处理器模块,双核嵌入式处理器模块的第一内核接收到待加解密数据至crypto engine,并启动加解密;
29.数据传输步骤:加解密后的数据存放至双核嵌入式处理器模块的sdram,并在双核嵌入式处理器模块的dtcm设置数据存放完成的标志,双核嵌入式处理器模块的第二内核实时监控双核嵌入式处理器模块的dtcm,当双核嵌入式处理器模块的第二内核的satahost接收到数据已接收完成的标志后,将数据传输出sata接口。
30.进一步地,当双核嵌入式处理器模块只有一个双核处理器时,第二数据接口为sata接口,加解密和传输数据的步骤:
31.a1,主机按照定义好的协议下发配置命令来设置本次传输的参数:首先选择传输形式为透传、加密还是解密,再根据传输形式设置加解密算法和加解密模式的参数;(具体的加密算法和加解密模式的参数选择及密钥管理方式均与本发明所提出的技术框架无关。本发明的加密设备需内置加密引擎,可以采用aes、sm1、sm4等任意对称加密算法对流经的数据进行加解密。密钥管理方面,即可以内部随机产生加密密钥,也可以通过rsa、sm2等非对称算法协商产生密钥,也可以采用任意其他可以接受的密钥管理方式)
32.b1,第一双核嵌入式处理器收到配置命令后,如支持该配置,则回复主机配置成功,则继续数据传输;如不支持该配置,则回复主机配置失败,主机则需要返回第1步重新配置;
33.c1,配置成功后,待加解密数据通过数据接口进入第一双核嵌入式处理器;所述待加解密数据为未进入双核嵌入式处理器前的数据;
34.d1,第一双核嵌入式处理器的第一内核接收到待加解密数据至crypto engine,并启动加解密;
35.e1,加解密后的数据存放至第一双核嵌入式处理器的sdram,并在第一双核嵌入式处理器的dtcm设置数据存放完成的标志,且通知第一双核嵌入式处理器的第二内核:数据已接收完成;
36.f1,第一双核嵌入式处理器的第二内核实时监控第一双核嵌入式处理器的dtcm,当接收到数据已接收完成的标志后,启动第一双核嵌入式处理器的sata dma,通过第一双核嵌入式处理器的sata host将数据传输至sata接口。
37.进一步地,双核嵌入式处理器模块包括第一双核嵌入式处理器和第二双核嵌入式处理器时,所述数据传输步骤包括:
38.a2,主机按照定义好的协议下发配置命令来设置本次传输的参数:首先选择传输形式为透传、加密还是解密,再根据传输形式设置加解密算法和加解密模式的参数;
host和1个sata device;
57.第一双核嵌入式处理器得sata host与第二双核嵌入式处理器的sata device之间的数据是通过sata dma的方式传输的,其过程不需要第二内核参与。
58.第二双核嵌入式处理器得sata host与第一双核嵌入式处理器的sata device之间的数据是通过sata dma的方式传输的,其过程不需要第二内核参与。
59.以上所述两个方向的数据传输几乎可以同时进行,这就大大提升了双向传输的效率,理论和实测证明双向同时传输性能和单向传输性能相差不大。
60.进一步地,所述第一内核可以是ck核,所述第二内核可以是arm核。内核的类型可以根据主机、硬件、用途等因素选择。
61.与现有技术相比,本发明的有益效果为:
62.(1)本发明提供的一种多主机接口转sata桥的双核加密桥,所述结构模块化、通用性强,可以非常容易移植,产品形态可以是usb/gmac/pcie/sata/sas等加密传输桥。
63.(2)本发明提供的一种多主机接口转sata桥的加解密传输方法,所述加解密过程中的密钥可以通过rsa、sm2等非对称算法协商产生密钥,保证安全性。
64.(3)本发明提供的一种多主机接口转sata桥的加解密传输方法,采用双核通信、多队列管理、sata 3.0高速桥接器,充分利用高速接口的高带宽,加解密及传输非常高效。
65.(4)本发明提供的一种多主机接口转sata桥的加解密传输方法,所述方法支持双向、同步、异步等加解密和传输的方式,实现了高效率、高性能的加解密和传输数据。
附图说明
66.图1为本发明的整体框架图。
67.图2为本发明实施例1中的单向数据加解密及传输流程示意图。
68.图3为本发明实施例2中的单向多条数据包的加解密及传输流程示意图。
69.图4为本发明实施例3中的双向单条数据包的加解密及传输流程示意图。
70.图5为本发明实施例3中的双向多条数据包的加解密及传输流程示意图(左)。
71.图6为本发明实施例3中的双向多条数据包的加解密及传输流程示意图(右)。
72.图7为本发明实施例3中的双向多条数据包的加解密及传输流程中间局部放大示意图。
73.图8为本发明实施例4中的双向异步队列管理的双向数据收发队列示意图。
74.图9为本发明实施例4中的数据发送方队列的示意图。
75.图10为本发明实施例4中的数据接收方队列的示意图。
76.图11为本发明实施例4中的两个嵌入式处理器的数据队列逻辑连接关系示意图。
77.图中第一内核以ck核为例,第二内核以arm核为例,但本发明的保护范围不限于ck核与arm核。
78.图中英文简写释义和英文释义:cpu一(第一双核嵌入式处理器)、cpu二(第二双核嵌入式处理器)、datapackl 0(第一双核处理器端的第一条数据包)、、datapackl 1(第一双核处理器端的第二条数据包)、datapackll 0(第二双核处理器端的第一条数据包)、datapackll 1(第二双核处理器端的第二条数据包)。
具体实施方式
79.下面结合附图与实施例对本公开做进一步说明。
80.应该指出,以下详细说明都是示例性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
81.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
82.在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
83.实施例1
84.本实施例提供一种多主机接口转sata桥的双核加密桥及方法,实施例中第一内核以ck核为例,第二内核以arm核为例,但本发明的保护范围不限于ck核与arm核,如图1、图2所示。
85.本发明采取的技术方案为一种多主机接口转sata桥的双核加密桥,包括通过总线连接的主机、双核嵌入式处理器模块、第一数据接口、第二数据接口、总控制程序。所述双核嵌入式处理器模块包括:用于接收对外数据接口传输的数据并进行加解密处理、以及将已加解密的数据传输至外数据接口的第一内核;用于接收或传输来自sdram的已加解密数据、并与dtcm互相监控的第二内核核;用于存储数据的sdram;用于存储数据传输完成的标志的dtcm;第一内核和第二内核共用dtcm和sdram;所述第一内核包括用于对数据进行加解密处理的crypto engine;所述第二内核包括用于发送加解密数据的sata host和用于接收加解密数据的sata device。
86.主机通过第一数据接口将数据传输至双核嵌入式处理器模块,经双核嵌入式处理器的加密并将处理后的数据通过第二数据接口传输出去。其中,双核嵌入式处理器模块包括:第一内核、第二内核核、sdram、dtcm;第一内核包括crypto engine,第二内核包括sata host和sata device。数据经crypto engine加密后,先储存在sdram中,由于dtcm与sdram同步跟踪,当sdram中的数据储存完成时,dtcm设有数据储存完成的标志,且双核嵌入式处理器的第二内核与dtcm相互监控,极大的提高了传输速率。sdram和dtcm双存储模式:即sdram储存数据、dtcm储存标志,使得数据不易丢失和错码的同时,也提高了传输效率。
87.本实施例提供了一种多主机接口转sata桥的加解密传输方法,当双核嵌入式处理器模块只有一个双核嵌入式处理器时,其单向数据加解密及传输流程包括步骤a~f:
88.a1,主机按照定义好的协议下发配置命令来设置本次传输的参数:首先选择传输形式为透传、加密还是解密,再根据传输形式设置加解密算法和加解密模式的参数;
89.b1,第一双核嵌入式处理器收到配置命令后,如支持该配置,则回复主机配置成功,则继续数据传输;如不支持该配置,则回复主机配置失败,主机则需要返回第1步重新配置;
90.c1,配置成功后,待加解密数据通过数据接口进入第一双核嵌入式处理器;所述待加解密数据为未进入双核嵌入式处理器前的数据;
91.d1,第一双核嵌入式处理器的第一内核接收到待加解密数据至crypto engine,并
启动加解密;
92.e1,加解密后的数据存放至第一双核嵌入式处理器的sdram,并在第一双核嵌入式处理器的dtcm设置数据存放完成的标志,且通知第一双核嵌入式处理器的第二内核:数据已接收完成;
93.f1,第一双核嵌入式处理器的第二内核实时监控第一双核嵌入式处理器的dtcm,当接收到数据已接收完成的标志后,启动第一双核嵌入式处理器的sata dma,通过第一双核嵌入式处理器的sata host将数据传输至sata接口
94.进一步地,所述双核嵌入式处理器模块包括:第一双核嵌入式处理器和第二双核嵌入式处理器;所述第一双核嵌入式处理器的第二内核中的sata host与第二双核嵌入式处理器的第二内核中的sata device通过数据传输线连接;所述第一双核嵌入式处理器的第二内核中的sata device与第二双核嵌入式处理器的第二内核中的sata host通过数据传输线连接。
95.两个双核嵌入式处理器通过数据传输线连接,此时第一数据接口为第一双核嵌入式处理器一端的数据接口,第二数据接口为第二双核嵌入式处理器一端的数据接口;两个双核嵌入式处理器中都有两个内核;两个双核嵌入式处理器都可完成对数据的加解密和传输;通过两个双核嵌入式处理器的结构,数据即可从第一数据接口进入,也可在第二数据接口进入,也可同时在第一数据接口和第二数据接口进入,且两者互不影响。并且在处理多条数据包时,两个双核嵌入式处理器时更加流畅,提高了传输的效率与速率
96.进一步地,所述第一双核嵌入式处理器的sata host与第二双核嵌入式处理器的sata device之间的数据是通过sata dma的方式传输的;
97.所述第一双核嵌入式处理器的sata devicet与第二双核嵌入式处理器的sata host之间的数据是通过sata dma的方式传输的。
98.所述的sata dma传输方式为直接存储访问方式,令所述第一双核嵌入式处理器的sata devicet与第二双核嵌入式处理器的sata host的数据传输更高效,提高了多条数据包的加解密及传输时的效率
99.当双核嵌入式处理器模块有两个双核嵌入式处理器时,其单向数据加解密及传输流程包括步骤a~i:
100.a2,主机按照定义好的协议下发配置命令来设置本次传输的参数:首先选择传输形式为透传、加密还是解密,再根据传输形式设置加解密算法和加解密模式的参数;
101.b2,第一双核嵌入式处理器收到配置命令后,如支持该配置,则回复主机配置成功,则继续数据传输;如不支持该配置,则回复主机配置失败,主机则需要返回第1步重新配置;
102.c2,待加解密数据通过数据接口进入第一双核嵌入式处理器;
103.d2,第一双核嵌入式处理器的第一内核接收到待加解密数据至crypto engine,并启动加解密;
104.e2,加解密后的数据存放至第一双核嵌入式处理器的sdram,并在第一双核嵌入式处理器的dtcm设置数据存放完成的标志,且通知第一双核嵌入式处理器的第二内核:数据已接收完成;
105.f2,第一双核嵌入式处理器的第二内核实时监控第一双核嵌入式处理器的dtcm,
当接收到数据已接收完成的标志后,启动第一双核嵌入式处理器的sata dma,通过第一双核嵌入式处理器的sata host将sdram的数据发送到第二双核嵌入式处理器的sata device;
106.g2,第二双核嵌入式处理器的sata device接收数据并传输至第二双核嵌入式处理器的sdram;
107.h2,数据接收完成后,通过第二双核嵌入式处理器的dtcm设置数据接收完成标志并通知第二双核嵌入式处理器的第一内核;
108.i2,第二双核嵌入式处理器的第一内核实时监控第二双核嵌入式处理器的dtcm,当接收到数据已接收完成的标志后,启动数据接口将数据传输出去。
109.实施例2:
110.本实施例的目的是提供了在两个双核嵌入式处理器下的一种多主机接口转sata桥的加解密传输方法,实施例中第一内核以ck核为例,第二内核以arm核为例,但本发明的保护范围不限于ck核与arm核,如图3所示。当双核嵌入式处理器模块有两个双核嵌入式处理器时,其单向多条数据包加解密及传输流程包括以下步骤:
111.当第一条数据包data pack 0加解密完成后,第一双核嵌入式处理器的第一内核通过第一双核嵌入式处理器的dtcm通知第一双核嵌入式处理器的第二内核:sdram中有待发送的数据;
112.此时启动第一双核嵌入式处理器的sata dma,通过第一双核嵌入式处理器的第二内核的sata host将数据发送到第二双核嵌入式处理器;
113.第一双核嵌入式处理器的第二内核sata将data pack 0发送完成后,通过第一双核嵌入式处理器的dtcm通知第一双核嵌入式处理器的第一内核:可继续接收新数据包;
114.第一双核嵌入式处理器的第一内核的crypto engine加解密第一条数据包data pack 0完成后,第一双核嵌入式处理器的第一内核即可继续接收第二条数据包data pack 1;
115.对第二条数据包的加解密过程、传输过程同第一条数据包data pack 0。
116.实施例3:
117.本实施例的目的是提供了在两个双核嵌入式处理器下的一种多主机接口转sata桥的加解密传输方法,实施例中第一内核以ck核为例,第二内核以arm核为例,但本发明的保护范围不限于ck核与arm核,如图4、图5所示,当双核嵌入式处理器模块有两个双核嵌入式处理器时,双向单条数据包、双向多条数据包的加解密及传输过程。
118.所述待加解密数据可在第一数据接口进入,也可在第二数据接口进入。
119.第一数据接口和第二数据接口皆可作为数据传入端或者数据传出端,且不影响数据的加解密过程和传输过程,极大的方便了使用者的加解密操作,省略了数据接口的选择。
120.进一步地,所述第一数据接口端的主机与第二数据接口的主机配置的参数可相同也可不同,且两端的参数相互独立,互不影响。
121.进一步地,第一双核嵌入式处理器和第二双核嵌入式处理器分别都有1个sata host和1个sata device;
122.第一双核嵌入式处理器得sata host与第二双核嵌入式处理器的sata device之间的数据是通过sata dma的方式传输的,其过程不需要第二内核参与。
123.第二双核嵌入式处理器得sata host与第一双核嵌入式处理器的sata device之间的数据是通过sata dma的方式传输的,其过程不需要第二内核参与。
124.以上所述两个方向的数据传输几乎可以同时进行,这就大大提升了双向传输的效率,理论和实测证明双向同时传输性能和单向传输性能相差不大。
125.所述双向单条数据包的加解密及传输流程如图4所示,因其包含了实施例1中的单向数据加解密及传输流程和实施例2中单向多条数据包的加解密及传输流程的步骤,且双向多条数据包的加解密及传输过程包括了双向单条数据包的加解密及传输过程,在本领域人员的理解上可以轻易的理解,故不在展示具体步骤。
126.所述双向多条数据包的加解密及传输流程如图5、6、7所示,下面结合双向多条数据传输过程,来进一步说明双核传输对带宽的高利用率。
127.图5、6、7演示了两端的host同时依次下发两条数据,device对其接收加密并转发、或接收并转发的操作过程。需要特殊说明的是:
128.两端的主机配置的参数可以相同或不同,两端的参数相互独立,互不影响。
129.两个双核嵌入式处理器分别都有1个sata host和1个sata device,且一端sata host与另一端sata device之间的数据是通过sata dma传输的,其过程不需要arm核参与,因此图5、6、7中data packl 0(第一双核处理器端的第一条数据包)和data packll 0(第二双核处理器端的第一条数据包)(或data packl 1(第一双核处理器端的第二条数据包)和data packll 1(第二双核处理器端的第二条数据包))两个方向的数据传输几乎可以同时进行,这就大大提升了双向传输的效率,理论和实测证明双向同时传输性能和单向传输性能相差不大。
130.所述双向多条数据包的加解密及传输流程即两端分别进行单向多条数据包的加解密和传输,顾只具体描述一端进行单向多条数据包的加解密和传输的步骤,另一端的数据加解密及传输流程同理进行:
131.a3,一端的主机按照定义好的协议下发配置命令来设置本次传输的参数:首先选择传输形式为透传、加密还是解密,再根据传输形式设置加解密算法和加解密模式的参数;另一端的主机也可进行配置操作,两端继续进行以下操作。
132.b3,第一双核嵌入式处理器收到配置命令后,如支持该配置,则回复主机配置成功,则继续数据传输;如不支持该配置,则回复主机配置失败,主机则需要返回第1步重新配置;
133.c3,待加解密的第一条数据包data pack 0通过数据接口进入第一双核嵌入式处理器;
134.d3,第一双核嵌入式处理器的第一内核接收到待加解密的第一条数据包data pack 0至crypto engine,并启动加解密;
135.e3,加解密后的第一条数据包data pack 0存放至第一双核嵌入式处理器的sdram,并在第一双核嵌入式处理器的dtcm设置数据存放完成的标志,且通知第一双核嵌入式处理器的第二内核:数据已接收完成;
136.f3,第一双核嵌入式处理器的第二内核实时监控第一双核嵌入式处理器的dtcm,当接收到第一条数据包data pack 0已接收完成的标志后,启动第一双核嵌入式处理器的sata dma,通过第一双核嵌入式处理器的sata host将sdram的第一条数据包data pack 0
发送到第二双核嵌入式处理器的sata device;
137.g3,第一双核嵌入式处理器的第二内核sata将data pack 0发送完成后,通过第一双核嵌入式处理器的dtcm通知第一双核嵌入式处理器的第一内核:可继续接收新数据包,第一双核嵌入式处理器的第一内核即可继续接收第二条数据包data pack 1,对第二条数据包的加解密过程、传输过程同第一条数据包data pack 0。
138.h3,第二双核嵌入式处理器的sata device接收到第一条数据包data pack 0并传输至第二双核嵌入式处理器的sdram;
139.i3,第一条数据包data pack 0接收完成后,通过第二双核嵌入式处理器的dtcm设置第一条数据包data pack 0接收完成标志并通知第二双核嵌入式处理器的第一内核;
140.j3,第二双核嵌入式处理器的第一内核实时监控第二双核嵌入式处理器的dtcm,当接收到第一条数据包data pack 0已接收完成的标志后,启动数据接口将第一条数据包data pack0传输出去。
141.实施例4
142.基于与实施例3相同的构思,本实施例提供了基于两个双核嵌入式处理器的双向数据加解密及传输的一种多主机接口转sata桥的加解密传输方法,与实施例3的主要区别在于双向数据传输可以同时独立运行,即可同步也可异步还依赖于双向独立的队列管理以使加解密及传输方法更加完善与规范,实施例中第一内核以ck核为例,第二内核以arm核为例,但本发明的保护范围不限于ck核与arm核,如图8、9、10、11所示。
143.1.dtcm区中存放了两个相互独立的队列指针的数组,分别为tx_queue和rx_queue。
144.2.每个queue包含多个buffer,其中buffer个数及长度用户可按需更改。
145.3.每个嵌入式处理器即作数据发送方,也作数据接收方,数据发送方使用tx_queue,数据接收方使用rx_queue。
146.4.数据发送方采用buffer链表(每个buffer首尾相连形成链)形式接收并转发,见图7:
147.连接在队列两端的外设分别为产生数据的productor和接收数据consumer,图7中ck核的高速接口为productor,arm核的sata为consumer;
148.程序运行时,productor不停得将产生的数据放入队列下的每个buffer中,并在dtcm中标记该buffer已放入数据。如果放入时每个buffer都满则等待;
149.而consumer将按先后顺序从列队中的每个buffer中取出数据,同理如果每个buffer都空则等待;
150.当数据由productor到达buffer后由consumer取走。
151.5.数据接收方也是采用buffer链表(每个buffer首尾相连形成链)形式接收并转发,见图10:
152.与数据发送方相反,图10中arm核的sata为productor,ck核的高速接口为consumer。
153.程序运行时,同样是productor不停得将接收的数据放入队列下的每个buffer中,并在dtcm中标记该buffer已放入数据。如果放入时每个buffer都满则等待。
154.而consumer将按先后顺序从列队中的每个buffer中取出数据,同理如果每个
buffer都空则等待。
155.当数据由productor到达buffer后由consumer取走。
156.两个双核嵌入式处理器数据队列逻辑连接关系如图11所示。
157.显然,本发明的上述实施例仅仅是为清楚地说明本发明技术方案所作的举例,而并非是对本发明的具体实施方式的限定。凡在本发明权利要求书的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1