一种基于硬盘接口控制器的数据加密方法技术

技术编号:4339202 阅读:245 留言:0更新日期:2012-04-11 18:40
一种通过硬盘接口控制器的数据加解密方法,其特征在于,在BRAM缓存区中开辟一段与扇区缓冲区大小相同的存储空间,作为存储密文的密文缓冲区,该方法包括加密与解密过程,本发明专利技术解决了背景技术中不能同时具备安全的级别高和数据的写入和读出速度快的优点的技术问题。具有保密性好,安全可靠,在加密文件大小不变时不会产生数据膨胀,在不需要额外的硬件设备(如芯片),不会影响数据在总线和硬盘之间的传输速率。

【技术实现步骤摘要】

本专利技术涉及一种数据加密方法,具体涉及。
技术介绍
硬盘接口控制器的最大功能就是数据存储管理,既然涉及数据存储必将涉及保密的问题,数据加密的技术目前也十分繁多,但是在闪存控制器的这个领域,在即能保证加密的级别也能保证数据的写入和读出速度的条件下,实现数据的加密还是值得研究的。 加密技术的核心即使加密算法,加密算法就是指将信息变成密文的计算方法,现代加密算法通常都需要密钥来完成对信息的加密运算,它的安全性基于用于加密的密钥,如果能同时保密加密算法以及密钥,则能够大大提高数据的安全性。 在通用的加密方法中,数据是在传递给控制器之前进行加密。这个加密过程需要 额外的时间。在对大量数据进行加密时,如果采用较为复杂的加密算法必定会导致数据的 写入和读出速度下降,影响整个硬盘控制器的性能;如果采用简单的加密算法,虽然保证了 数据的写入和读出速度,但是数据加密的级别很低,失去了数据加密的意义,而在硬盘接口 控制器领域一直没有同时具备加密的级别高和数据的写入和读出速度快的优点的一种加 密方法。 在该加密过程中,数据加密是在控制器内部进行的,控制器从主机接受数据,对其 进行加密,再将加密后的密文写入Flash芯片,这样在Flash芯片上存储的数据就是一些加 密后的密文;而在使用数据时,控制器从Flash芯片读取密文数据,对其进行解密,再将解 密后的明文数据传给主机。在整个过程,保证数据不发生变化。
技术实现思路
本专利技术的目的在于提供一种基于硬盘控制器接口的数据加密方法,它将数据加密与ATA协议的读写命令相结合,在不改变数据传输线时序的情况下,有效利用总线空闲时间,对数据传输速率影响小;采用自主研发的加密算法,同时保密加密算法和密钥,提高了数据的安全性。其解决了
技术介绍
中不能同时具备安全的级别高和数据的写入和读出速度快的优点的技术问题。 本专利技术的技术解决方案是 —种通过硬盘接口控制器的数据加解密方法,其特征在于,在BRAM缓存区中开辟 一段与扇区缓冲区大小相同的存储空间,作为存储密文的密文缓冲区,该方法包括以下步 骤加密过程i)上位机给控制器发写命令,同时将数据准备好,控制器从上位机接收数据,并存放到扇区缓冲区; 2)当扇区缓冲区写满或数据传送结束后,控制器设置状态寄存器的BSY位,并清除数据请求信号; 3)控制器对扇区缓冲区的数据通过加密算法进行逐扇区加密,将加密好的数据存 放到密文缓存区; 4)当扇区缓存区全部数据加密完成后,将密文写到Flash芯片的制定扇区上,当 数据写完后,控制器清除BSY信号,发送中断请求信号INTRQ; 5)上位机接收到中断信号后,读控制器的状态寄存器,同时将中断信号清除,如果 还有扇区进行写操作,进入步骤l),否则命令结束; 解密过程l)控制器接收到上位机发送读命令后,置位BSY位,将Flash芯片指定扇区上的密 文数据读到密文缓存取中; 2)当所请求的密文数据传送完成或密文缓存区写满时,控制器通过解密算法对密 文缓存区的数据进行逐扇区解密,将解密后的数据(即明文)存放到扇区缓冲区上; 3)当解密完成后或扇区缓冲区写满时,控制器设置数据请求信号,并清除状态寄 存器的BSY位; 4)上位机接收到数据请求后,将扇区缓冲区上的数据读出,数据完成后,清除数据 请信号,给上位机发送中断请求信号INTRQ ; 5)上位机接收到中断信号后,读控制器的状态寄存器,同时将中断信号清除,如果 还有扇区进行写操作,进入步骤l),否则命令结束。 将数据的加密和控制器的读写命令向结合,有效利用数据请求的等待过程,所以 对数据读写速度影响较小; 在计算机内部,数据是以字节为单位进行存储的,每个字节由8位二进制数组成, 在该加密算法中,是以位为单位进行数据加密的; 计算机对硬盘的读写,是以扇区为基本单位进行的,每扇区存放512字节,该加密算法也是扇区为传输单位进行的,数据读写和加密过程相对应。 出于以上的考虑,上述加密算法包括以下步骤 1)以扇区为单位进行对数据进行加密,从扇区缓冲区中读一个扇区的数据作为明 文; 2)每个字节由8位二进制数组成,将其平均拆分成m个n位二进制数(如2个4 位,4个2位或8个1位),其中m*n = 8,顺序的m个n位二进制数表示一个字节(8位); 3)将每扇区明文的512字节拆分为512她个n位二进制数,将这512她个n位二 进制数顺序的存放到一个二维位段数组中; 4)按照特定的顺序变换数组元素的下标,这个变换顺序的构成密钥元素; 5)将变换后数组中每顺序的m个n位二进制数组成一个新的字节,完成加密。 同样地,将数据的加密和控制器的读写命令向结合,有效利用数据请求的等待过 程,所以对数据读写速度影响较小; 在计算机内部,数据是以字节为单位进行存储的,每个字节由8位二进制数组成, 在该加密算法中,是以位为单位进行数据加密的; 计算机对硬盘的读写,是以扇区为基本单位进行的,每扇区存放512字节,该加密 算法也是扇区为传输单位进行的,数据读写和加密过程相对应。 出于以上考虑,上述解密算法包括以下步骤 1)以扇区为单位进行对数据进行解密,从Flash芯片上读取一个扇区的密文数 据; 2)每个字节由8位二进制数组成,将其平均拆分成m个n位二进制数(如2个4 位,4个2位或8个1位),其中m*n = 8,顺序的m个n位二进制数表示一个字节(8位); 3)将每扇区的512字节密文数据拆分为512她个n位二进制数,将这512她个n 位二进制数顺序的存放到一个二维位段数组中; 4)按照密钥信息变换数组元素的下标,形成新的数组; 5)将变换后数组中每顺序的m个n位二进制数组成一个新的字节,完成解密。 上述m个n位二进制数为两个半字节或四个四分之一字节或八个八分之一字节。 上述每扇区密文的512字节拆分为包含顺序的1024个半字节或2048个四分之一 字节或4096个八分之一字节。 上述二维位段数组为32*32或32*64或64*64的二维位段数组。 本专利技术具有以下优点 1.采用自主研发的加密算法对数据本身进行加密,保密性好。 2.加密过程在控制器的缓存区完成,与存储管理相结合,高效、安全; 3.加密文件大小不变,不会产生数据膨胀。 4.不需要额外的硬件设备(如芯片),不会影响数据在总线和硬盘之间的传输速率。附图说明 图1为本专利技术加密过程流程图; 图2为本专利技术解密过程流程图。具体实施例方式在硬盘控制器内部,有一个用来存储硬盘接口传输数据的缓冲区,叫扇区缓冲区, 再在BRAM缓存取中开辟一段存储空间,与扇区缓冲区大小相同,作为存储密文的缓存区; 在内存中申请一个二维的位字段数组,大小512字节,用来存储加解密过程中的中间数据。 在写数据的过程中,数据通过接口传送到扇区缓冲区中,将扇区缓冲区中一个扇 区的数据复制到二维数组中,对数组中的数据按加密算法进行加密,将加密结果在存放到 密文缓存区,重复执行上述操作,直到所有数据都已加密,再将加密后的密文写到FLASH芯片上,写操作完成。 在读数据的过程中,将FLASH芯片上指定扇区的数据复制到密文缓存区中,将密 文缓存区中一个扇区的秘闻数据复制到二维数组中,对数组中的数据按解密算法进行解 密,将解密结果在存放到扇区缓冲区中,重复执行上本文档来自技高网
...

【技术保护点】
一种通过硬盘接口控制器的数据加解密方法,其特征在于,在BRAM缓存区中开辟一段与扇区缓冲区大小相同的存储空间,作为存储密文的密文缓冲区,该方法包括以下步骤:【加密过程】1)上位机给控制器发写命令,同时将数据准备好,控制器从上位机接收数据,并存放到扇区缓冲区;2)当扇区缓冲区写满或数据传送结束后,控制器设置状态寄存器的BSY位,并清除数据请求信号;3)控制器对扇区缓冲区的数据通过加密算法进行逐扇区加密,将加密好的数据存放到密文缓存区;4)当扇区缓存区全部数据加密完成后,将密文写到Flash芯片的制定扇区上,当数据写完后,控制器清除BSY信号,发送中断请求信号INTRQ;5)上位机接收到中断信号后,读控制器的状态寄存器,同时将中断信号清除,如果还有扇区进行写操作,进入步骤1),否则命令结束;【解密过程】1)控制器接收到上位机发送读命令后,置位BSY位,将Flash芯片指定扇区上的密文数据读到密文缓存取中;2)当所请求的密文数据传送完成或密文缓存区写满时,控制器通过解密算法对密文缓存区的数据进行逐扇区解密,将解密后的数据(即明文)存放到扇区缓冲区上;3)当解密完成后或扇区缓冲区写满时,控制器设置数据请求信号,并清除状态寄存器的BSY位;4)上位机接收到数据请求后,将扇区缓冲区上的数据读出,数据完成后,清除数据请信号,给上位机发送中断请求信号INTRQ;5)上位机接收到中断信号后,读控制器的状态寄存器,同时将中断信号清除,如果还有扇区进行写操作,进入步骤1),否则命令结束。...

【技术特征摘要】
一种通过硬盘接口控制器的数据加解密方法,其特征在于,在BRAM缓存区中开辟一段与扇区缓冲区大小相同的存储空间,作为存储密文的密文缓冲区,该方法包括以下步骤加密过程1)上位机给控制器发写命令,同时将数据准备好,控制器从上位机接收数据,并存放到扇区缓冲区;2)当扇区缓冲区写满或数据传送结束后,控制器设置状态寄存器的BSY位,并清除数据请求信号;3)控制器对扇区缓冲区的数据通过加密算法进行逐扇区加密,将加密好的数据存放到密文缓存区;4)当扇区缓存区全部数据加密完成后,将密文写到Flash芯片的制定扇区上,当数据写完后,控制器清除BSY信号,发送中断请求信号INTRQ;5)上位机接收到中断信号后,读控制器的状态寄存器,同时将中断信号清除,如果还有扇区进行写操作,进入步骤1),否则命令结束;解密过程1)控制器接收到上位机发送读命令后,置位BSY位,将Flash芯片指定扇区上的密文数据读到密文缓存取中;2)当所请求的密文数据传送完成或密文缓存区写满时,控制器通过解密算法对密文缓存区的数据进行逐扇区解密,将解密后的数据(即明文)存放到扇区缓冲区上;3)当解密完成后或扇区缓冲区写满时,控制器设置数据请求信号,并清除状态寄存器的BSY位;4)上位机接收到数据请求后,将扇区缓冲区上的数据读出,数据完成后,清除数据请信号,给上位机发送中断请求信号INTRQ;5)上位机接收到中断信号后,读控制器的状态寄存器,同时将中断信号清除,如果还有扇区进行写操作,进入步骤1),否则命令结束。2. 根据权利要求1所述,通过硬盘控制器接口的数据加解密方法,其特征在于,所述加密算法包括以下步骤1) 以扇区为单位进行对数据进行加密,从扇区缓冲区中读一...

【专利技术属性】
技术研发人员:常尊
申请(专利权)人:西安奇维测控科技有限公司
类型:发明
国别省市:87[中国|西安]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1