基于FPGA的SATA数据不对称加密硬件实现系统
技术领域
本发明属于计算机系统的存储技术领域,特别是涉及一种基于FPGA的SATA数据不对称加密硬件实现系统。
背景技术
对称加密是采用单钥密码的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。
需要对加密和解密使用相同密钥的加密算法。由于其速度,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。
所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。算法是一组规则,规定如何进行加密和解密。对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只 有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。
对称加密算法的特点是算法公开、计算量小、加密速度快、加 密效率高。不足之处是,交易双方都使用同样钥匙,安全性得不到保证。此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得 发收信双方所拥有的钥匙数量成几何级数增长,密钥管理成为用户的负担。对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。在计算机专网系统中广泛使用的对称加密算法有DES、IDEA和AES。
因此对称式加密本身不是安全的。不对称加密算法使用两把完全不同但又是完全匹配的一对钥匙—公钥和私钥。在使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信方必须首先知道收信方的公钥,然后利用收信方的公钥来加密原文;收信方收到加密密文后,使用自己的私钥才能解密密文。显然,采用不对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。广泛应用的不对称加密算法有RSA算法和美国国家标准局提出的DSA。以不对称加密算法为基础的加密技术应用非常广泛。
加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信方必须首先知道收信方的公钥,然后利用收信方的公钥来加密原文;收信方收到加密密文后,使用自己的私钥才能解密密文。显然,采用不对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。广泛应用的不对称加密算法有RSA算法和美国国家标准局提出的DSA。以不对称加密算法为基础的加密技术应用非常广泛。
与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私 有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加 密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。 非对称加密算法实现加密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对加密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。 非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要,但加密和解密花费时间长、速度慢,它不适合于对文件加密而只适用于对少量数据进行加密。 经典的非对称加密算法如RSA算法等安全性都相当高。
随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高,信息已成为推动社会发展的关键因素,如何使信息更快,更安全的传递成了我们社会发展的关键问题,由最初的对称加密算法发展到现在的非对称加密算法,一步步的推动为我们的信息安全服务,保证信息的及时与安全传递,目前以不对称加密算法为基础的加密技术应用非常广泛。
非对称加密算法是现在信息安全技术中使用最广泛,通过加密时产生的一对密钥,公钥与私钥来加解密消息,通过公钥对消息的加密,私钥对消息的解密来实现,使信息的传递更加的安全,特别是RSA算法,他利用大数的因子分解,在p与q足够大的情况下,很好的保证信息的安全,同时再加上我们的安全,科学的运用与创新,就是最安全的信息加密技术。
基于FPGA的SATA数据不对称加密方法的硬件实现,可以在保证SATA数据稳定传输的同时使用户间信息传递的数据更加安全。
发明内容
本发明目的在于提供一种保证高速数据稳定传输的基于FPGA的SATA数据不对称加密硬件实现系统。可以保证SATA用户间的数据传递更加安全。
基于FPGA的SATA数据不对称加密硬件实现系统发明方案的整体架构包括主机端的SATA接口和设备端的SATA接口。在主机端和设备端通过不对称加密的顶层模块来连接。设计不对称加密顶层模块为asymmetric_encryption_top模块,设计硬件不对称加密逻辑与主机用户端接口模块和设备磁盘数据端接口模块为device_top模块和host_top模块。
host_top模块是不对称加密FPGA硬件逻辑实现的与设备磁盘数据端的SATA接口,相对于磁盘设备host_top模块作为主机会去进行磁盘数据的读写操作。host_top模块包括sata高速串行收发器的时钟a模块,高速串行收发器a模块 和 sata链路层a 模块,分别是主机端SATA接口时钟转换模块,主机端SATA物理层数据接收和发送模块和主机端SATA链路层数据接口模块。这三个模块是负责访问外部设备磁盘的接口和主机端内部数据不对称加密通路的实现。
device_top模块是不对称加密FPGA硬件逻辑实现的与主机用户端数据的SATA接口,相对于主机用户device_top模块作为从机提供主机用户来读写数据接口操作。device_top模块包括sata高速串行收发器的时钟b模块,sata高速串行收发器b模块和 sata链路层b 模块,分别是从机端SATA接口时钟转换模块,从机端SATA物理层数据接收和发送模块和从机端SATA链路层数据接口模块。这三个模块是负责提供主机端用户访问的读写接口和设备端内部数据不对称加密通路的实现。
基于FPGA的SATA数据不对称加密方法设计的系统架构包括不对称加密顶层模块为asymmetric_encryption_top模块。不对称加密顶层模块包括有两个数据逻辑模块host_top模块 和 device_top模块,两个SATA硬件接口模块SATA_B模块和SATA_A模。host_top模块提供设备端访问的SATA_B接口,device_top模块提供主机端访问的SATA_A接口。
每个模块的功能描述如下:
asymmetric_encryption_top模块:为不对称加密顶层模块,它实现的是不对称加密硬件逻辑的顶层,通过这个模块连接主机端和设备端,实现主机端和设备端数据的传输和控制信号的传输,实现外部SATA接口的用户和磁盘数据的交互。
host_top模块:是不对称加密FPGA硬件逻辑实现的访问设备磁盘端数据的接口模块,通过SATA_B接口来访问设备磁盘。
device_top模块:是不对称加密FPGA硬件逻辑实现的提供主机用户端访问磁盘数据的接口模块,通过SATA_A接口来提供用户访问的硬件接口。
SATA_A模块:是主机用户访问不对称加密逻辑的硬件接口。
SATA_B模块:是不对称加密逻辑访问设备磁盘的硬件接口。
基于FPGA的SATA数据不对称加密方法设计的系统架构的主机端host_top模块包括sata高速串行收发器的时钟a模块,sata高速串行收发器a模块和sata链路层a模块。每个模块的功能描述如下:
sata高速串行收发器的时钟a模块:是主机端SATA接口FPGA硬件逻辑的时钟转换模块,它负责主机端提供硬件逻辑所需的时钟信号。
sata高速串行收发器a模块:是主机端SATA物理层数据接收和发送模块,它负责对主机端的并行数据到SATA_B接口串行数据和SATA_B接口串行数据到主机端的并行数据的转换,对主机端并行数据进行编码解码操作,能保证数据传输的稳定。
sata链路层a模块:是主机端SATA链路层数据接口模块,它主要负责SATA数据的不对称加密和解密操作,以及保证数据在SATA协议链路层稳定的传输。
sata链路层a模块实现不对称加密逻辑数据的发送和接收是基于SATA协议的数据链路层传输,包括link状态机a模块,发送数据加扰a模块,接收数据解扰a模块和fifo_a模块。每个模块的功能描述如下:
link状态机a模块:主机端模块SATA协议的链路层状态机实现模块,它主要实现SATA协议的链路层的状态机硬件逻辑功能,数据在链路层的传输及加密解密的控制。
发送数据加扰a模块:主机端模块SATA协议链路层发送不对称加密数据模块,它主要负责对链路层发送数据的加扰和CRC校验以及不对称加密算法实现。
接收数据解扰a模块:主机端模块SATA协议链路层接收不对称加密数据模块,它主要负责对链路层接收数据的解扰扰和CRC校验以及不对称解密算法实现。
fifo_a模块: 主机端模块SATA协议链路层发送接收数据的缓存模块,它主要负责对在链路层传输的数据进行缓存,可以保证数据传输的稳定。
基于FPGA的SATA数据不对称加密方法设计的系统架构的主机端device_top模块包括sata高速串行收发器的时钟b模块,sata高速串行收发器b模块和sata链路层b模块。每个模块的功能描述如下:
sata高速串行收发器的时钟b模块:是设备端SATA接口FPGA硬件逻辑的时钟转换模块,它负责提供设备端硬件逻辑所需的时钟信号。
sata高速串行收发器b模块:是设备端SATA物理层数据接收和发送模块,它负责对设备端的并行数据到SATA_A接口串行数据和SATA_A接口串行数据到设备端的并行数据的转换,对设备端并行数据进行编码解码操作,能保证数据传输的稳定。
sata链路层b模块:是设备端SATA链路层数据接口模块,它主要负责SATA数据的不对称加密和解密操作,以及保证数据在SATA协议链路层稳定的传输。
sata链路层b模块实现不对称加密逻辑数据的发送和接收是基于SATA协议的数据链路层传输,包括link状态机b模块,发送数据加扰b模块,接收数据解扰b模块和fifo_b模块。每个模块的功能描述如下:
link状态机b模块:设备端模块SATA协议的链路层状态机实现模块,它主要实现SATA协议的链路层的状态机硬件逻辑功能,数据在链路层的传输及加密解密的控制。
发送数据加扰b模块:设备端模块SATA协议链路层发送不对称加密数据模块,它主要负责对链路层发送数据的加扰和CRC校验以及不对称加密算法实现。
接收数据解扰b模块:设备端模块SATA协议链路层接收不对称加密数据模块,它主要负责对链路层接收数据的解扰扰和CRC校验以及不对称解密算法实现。
fifo_b模块: 设备端模块SATA协议链路层发送接收数据的缓存模块,它主要负责对在链路层传输的数据进行缓存,可以保证数据传输的稳定。
本发明设计的基于FPGA的SATA数据不对称机密方法,通过硬件逻辑实现了存储系统的SATA控制接口间多用户访问数据加密和解密通道,可以保证数据稳定安全的传输。
FPGA硬件逻辑主要实现了主机用户端的SATA接口和设备磁盘数据端的SATA接口硬件逻辑代码。数据的流向分为从主机用户端数据到设备磁盘端数据和从设备磁盘端数据到主机用户端数据。主机用户端的数据到设备磁盘端的数据是通过FPGA硬件逻辑进行加密算法加密,然后转发数据到设备磁盘;设备磁盘端的数据到主机用户端的数据是通过FPGA读磁盘数据,并对磁盘数据进行解密,然后再发到主机用户端。整个加密和机密的过程都是通过硬件逻辑来完成。
附图说明
图1是 基于FPGA的SATA数据不对称机密方法设计的系统架构。
图2是host_top模块的内部结构。
图3是device_top模块的内部结构。
图4是FPGA的SATA数据不对称机密方法实现实例应用框图。
图5是基于FPGA的SATA数据不对称加密方法的实例应用框图。
具体实施方式
以下将参照附图对本发明的实施例进行描述:
如图1所示的是基于FPGA的SATA数据不对称机密方法设计的系统架构,包括不对称加密顶层模块为asymmetric_encryption_top模块。不对称加密顶层模块包括有两个数据逻辑模块host_top模块 和 device_top模块,两个SATA硬件接口模块SATA_B模块和SATA_A模块。host_top模块提供设备端访问的SATA_B接口,device_top模块提供主机端访问的SATA_A接口。每个模块的功能描述如下:
asymmetric_encryption_top模块:为不对称加密顶层模块,它实现的是不对称加密硬件逻辑的顶层,通过这个模块连接主机端和设备端,实现主机端和设备端数据的传输和控制信号的传输,实现外部SATA接口的用户和磁盘数据的交互。
host_top模块:是不对称加密FPGA硬件逻辑实现的访问设备磁盘端数据的接口模块,通过SATA_B接口来访问设备磁盘。
device_top模块:是不对称加密FPGA硬件逻辑实现的提供主机用户端访问磁盘数据的接口模块,通过SATA_A接口来提供用户访问的硬件接口。
SATA_A模块:是主机用户访问不对称加密逻辑的硬件接口。
SATA_B模块:是不对称加密逻辑访问设备磁盘的硬件接口。
如图2所示的是host_top模块的内部结构,host_top模块包括sata高速串行收发器的时钟a模块,sata高速串行收发器a模块和sata链路层a模块。每个模块的功能描述如下:
sata高速串行收发器的时钟a模块:是主机端SATA接口FPGA硬件逻辑的时钟转换模块,它负责主机端提供硬件逻辑所需的时钟信号。
sata高速串行收发器a模块:是主机端SATA物理层数据接收和发送模块,它负责对主机端的并行数据到SATA_B接口串行数据和SATA_B接口串行数据到主机端的并行数据的转换,对主机端并行数据进行编码解码操作,能保证数据传输的稳定。
sata链路层a模块:是主机端SATA链路层数据接口模块,它主要负责SATA数据的不对称机密和解密操作,以及保证数据在SATA协议链路层稳定的传输。
图3所示的是device_top模块的内部结构,device_top模块包括sata高速串行收发器的时钟b模块,sata高速串行收发器b模块和sata链路层b模块。每个模块的功能描述如下:
sata高速串行收发器的时钟b模块:是设备端SATA接口FPGA硬件逻辑的时钟转换模块,它负责提供设备端硬件逻辑所需的时钟信号。
sata高速串行收发器b模块:是设备端SATA物理层数据接收和发送模块,它负责对设备端的并行数据到SATA_A接口串行数据和SATA_A接口串行数据到设备端的并行数据的转换,对设备端并行数据进行编码解码操作,能保证数据传输的稳定。
sata链路层b模块:是设备端SATA链路层数据接口模块,它主要负责SATA数据的不对称机密和解密操作,以及保证数据在SATA协议链路层稳定的传输。
sata链路层b模块实现不对称加密逻辑数据的发送和接收是基于SATA协议的数据链路层传输,包括link状态机b模块,发送数据加扰b模块,接收数据解扰b模块和fifo_b模块。每个模块的功能描述如下:
link状态机b模块:设备端模块SATA协议的链路层状态机实现模块,它主要实现SATA协议的链路层的状态机硬件逻辑功能,数据在链路层的传输及加密解密的控制。
发送数据加扰b模块:设备端模块SATA协议链路层发送不对称加密数据模块,它主要负责对链路层发送数据的加扰和CRC校验以及不对称加密算法实现。
接收数据解扰b模块:设备端模块SATA协议链路层接收不对称加密数据模块,它主要负责对链路层接收数据的解扰扰和CRC校验以及不对称解密算法实现。
fifo_b模块: 设备端模块SATA协议链路层发送接收数据的缓存模块,它主要负责对在链路层传输的数据进行缓存,可以保证数据传输的稳定。
如图4所示的是FPGA的SATA数据不对称机密方法实现实例应用框图,包括link状态机a模块,发送数据加扰a模块,接收数据解扰模块和fifo_a模块,link状态机b模块,发送数据加扰b模块,接收数据解扰b模块和fifo_b模块。每个模块的功能描述如下:
link状态机a模块:主机端模块SATA协议的链路层状态机实现模块,它主要实现SATA协议的链路层的状态机硬件逻辑功能,数据在链路层的传输及加密解密的控制。
发送数据加扰a模块:主机端模块SATA协议链路层发送不对称加密数据模块,它主要负责对链路层发送数据的加扰和CRC校验以及不对称加密算法实现。
接收数据解扰a模块:主机端模块SATA协议链路层接收不对称加密数据模块,它主要负责对链路层接收数据的解扰扰和CRC校验以及不对称解密算法实现。
fifo_a模块: 主机端模块SATA协议链路层发送接收数据的缓存模块,它主要负责对在链路层传输的数据进行缓存,可以保证数据传输的稳定。
link状态机b模块:设备端模块SATA协议的链路层状态机实现模块,它主要实现SATA协议的链路层的状态机硬件逻辑功能,数据在链路层的传输及加密解密的控制。
发送数据加扰b模块:设备端模块SATA协议链路层发送不对称加密数据模块,它主要负责对链路层发送数据的加扰和CRC校验以及不对称加密算法实现。
接收数据解扰b模块:设备端模块SATA协议链路层接收不对称加密数据模块,它主要负责对链路层接收数据的解扰扰和CRC校验以及不对称解密算法实现。
fifo_b模块: 设备端模块SATA协议链路层发送接收数据的缓存模块,它主要负责对在链路层传输的数据进行缓存,可以保证数据传输的稳定。
如图5所示的是基于FPGA的SATA数据不对称加密方法的实例应用框图,我们的SATA 不对成加密中继卡相当于一个SATA中继器,用户磁盘连接到我们的SATA _A接口,数据磁盘连接SATA _ B接口。
在主机端系统处理应用程序的用户请求,用户请求信息保存在用户端磁盘,没个用户信息对应有自己所需要的数据信息。用户的数据信息保存在数据磁盘。当主机系统接收到用户端的请求时,会去读写相应数据磁盘的信息。在写数据磁盘信息时,我们的SATA不对称加密卡通过SATA的A接口处理用户信息,对数据进行加密操作,然后通过SATA的B接口把机密的数据写到数据磁盘;当要读数据磁盘信息时,我们的SATA不对称加密卡通过SATA的A接口处理用户的读数据操作,通过SATA的B接口把数据度上来,并对读数据进行解密操作,然后上传数据到主机系统端应用层。
在整个处理读写数据过程中我们的SATA不对称加密卡充当一个SATA中继器,通过FPGA硬件逻辑来处理SATA的 FIS包(Frame Information Structure)信息,分离出SATA 数据FIS包, 进行不对称加密和解密运算,然后重新计算 CRC 转发,并存储磁盘。
基于FPGA的SATA数据不对称机密方法设计的系统内部硬件接口如下:
Host端接口描述如下: