CN101551784B - 一种usb接口的ata类存储设备中数据的加密方法及装置 - Google Patents

一种usb接口的ata类存储设备中数据的加密方法及装置 Download PDF

Info

Publication number
CN101551784B
CN101551784B CN2008100178776A CN200810017877A CN101551784B CN 101551784 B CN101551784 B CN 101551784B CN 2008100178776 A CN2008100178776 A CN 2008100178776A CN 200810017877 A CN200810017877 A CN 200810017877A CN 101551784 B CN101551784 B CN 101551784B
Authority
CN
China
Prior art keywords
data
encryption
ata
usb
decryption
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.)
Expired - Fee Related
Application number
CN2008100178776A
Other languages
English (en)
Other versions
CN101551784A (zh
Inventor
戴冠中
刘航
李美峰
胡伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northwestern Polytechnical University
Original Assignee
Northwestern Polytechnical University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Northwestern Polytechnical University filed Critical Northwestern Polytechnical University
Priority to CN2008100178776A priority Critical patent/CN101551784B/zh
Publication of CN101551784A publication Critical patent/CN101551784A/zh
Application granted granted Critical
Publication of CN101551784B publication Critical patent/CN101551784B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及一种USB接口的ATA类存储设备中数据的加密方法及装置,在常规ATA类存储设备的基础上,通过用户卡和硬件加密板卡组成的数据加密装置,对存储设备和USB主机之间传输的数据进行加密,从而达到对存储设备中数据硬加密的目的。装置由用户密钥卡和硬件加密板卡组成;所述的硬件加密板卡由USB收发器、USB设备控制器、控制端点缓冲区、批量端点缓冲区、主控制器、加解密模块、ATA控制器、密钥获取模块和安全访问模块组成。有益效果:密钥直接由加密装置读取,不经过存储设备所连接的计算机,安全性高。而且加解密速度快,独立于操作系统,并且密钥保存于专门的硬件密钥存储卡,密钥与被保护数据独立存放,确保数据的安全。

Description

一种USB接口的ATA类存储设备中数据的加密方法及装置
技术领域
本发明涉及一种USB接口的ATA类存储设备中数据的加密方法及装置,用于保护存储设备中数据的机密性,并且能够禁止对存储设备未经许可的访问,属于信息安全领域。
背景技术
目前,基于USB接口的移动存储设备由于能够为用户提供较大的存储空间,且具有携带方便,速度快以及即插即用的特点,获得了众多用户的青睐,已经成为用户交换数据的常用设备。其中,基于USB接口的ATA类存储设备是最常用的一类。
但是,由于移动存储设备上的数据若以明文形式存储,极易被非法用户获取。因此,必须限制非法用户的访问,并防止移动存储设备丢失、被盗和废弃而引发的泄密问题。
用户认证和数据加密是解决该问题的重要技术手段。常用的加密方式分为两种:软件加密和硬件加密。然而,软件加密存在着加解密速度慢、需要相关的操作系统和应用程序支持、对用户不透明、占用系统资源,而且加密软件自身也会存在安全漏洞(如加密程序可能被中止、加密密钥驻留内存等),攻击者利用这些安全漏洞将会对移动存储中敏感数据的安全性造成威胁。
采用硬件加密机制则完全避免了这些问题:加解密速度快、不依赖于特定操作系统或其他应用程序、对用户完全透明、对系统性能没有显著的影响,而且加密密钥独立于操作系统和应用程序加载,防止了来自存储设备上恶意代码的攻击。即使移动存储设备被盗,只要保证密钥的安全性,盗窃者也无法获得移动存储设备中的机密数据信息。
我们经过检索国内专利、非专利文献及互联网资源,共检索出以下与USB接口ATA类存储设备加密方法和装置密切相关的资料:
“语音、图像数字移动硬盘”专利中提出了一种语音、图像数字移动硬盘。它在主机IDE接口和硬盘之间引入特定型号的加密IC,用来对交互的数据进行加解密操作。此加密IC遵从智能卡串行通信协议,加密速度慢,并且加密是以文件为粒度的,依赖于操作系统,对用户不透明。
“具有安全加密功能的USB移动存储设备”专利中提出了一种具有安全加密功能的USB移动存储设备,通过驱动程序与相关软件的配合实现加密,存在前面所述软件加密的缺点和安全漏洞,安全性不高。
“基于通用串行总线接口的安全加密盒存储装置”专利中提出了一种基于通用串行总线接口和智能卡进行在线和本机身份认证和对文件加/解密并存储以对文件安全网络传输的加密装置。它采用智能卡对数据进行加密,加解密速度慢,并且需要相应的读卡设备。
“百事灵”超级加密型移动硬盘采用的是3DES加密算法来进行加密。旅之星的“黑金刚”移动硬盘声称采用的是硬件加密技术,但是并没有对所采用的加密算法进行说明。深圳亚略特公司又推出了采用硬加密技术的指纹移动硬盘ARATEK-FMD,也没有对所采用的加密算法进行说明。而本发明中的加密系统可以支持NIST认证的加密算法或者我国自主开发的强加密算法,并且采用硬件加密技术和用户身份认证技术相结合的方法,速度快、安全性高。
联想公司的“一种移动存储装置及存取移动存储装置中加密数据的方法”专利中提出了一种对移动存储设备进行加解密的装置及数据加密方法。但是此种加密是通过与移动存储设备相连的计算机进行软件加密的,存在安全隐患安全,而且直接由计算机从用户卡中读取密钥,安全性不高。
联想公司的“可独立于计算机的移动外存内容加密方法”专利中提出了一种对移动外存的内容进行加密的方法。但是它仍依赖于所使用计算机的操作系统,并且移动外存中保存有密码,密钥未与被加密数据独立存放,存在致命的安全隐患,且所采用的加密方式仍然是软件加密。
综上,检索的结论是:国内在安全移动存储设备方面的研究已经取得了一定的成果,也已经有相应的产品面世。但是,到目前为止还没有采用纯硬件加密、将数据加密和身份认证相结合、不依赖操作系统和软件、支持所有USB接口和强分组密码算法或其它变换操作的ATA类存储设备的高速加密方法和装置。
发明内容
要解决的技术问题
为了避免现有技术的不足之处,本发明提出一种USB接口的ATA类存储设备中数据的加密方法及装置,该方法只依赖于此加密装置,在加密装置正确连接存储设备和USB主机后,即启动本发明所描述的加密方法,实现对存储设备中数据的保护。
技术方案
本发明的思想在于:在常规ATA类存储设备的基础上,通过用户卡和硬件加密板卡组成的数据加密装置,对存储设备和USB主机之间传输的数据进行加密,从而达到对存储设备中数据硬加密的目的。所述用户卡中存储代表用户身份的认证密钥Kua、鉴别用户卡读取者身份的认证密钥Kea、工作密钥素材Dk,由用户保管并在需要时插入硬件加密板卡相应的接口中;用于鉴别硬件加密板卡的合法性、表明自己的身份、向身份合法的硬件加密板卡提供密钥素材;所述硬件加密板卡中存储代表自己身份的认证密钥Kea、鉴别用户身份的认证密钥Kua;用于表明自己的身份、鉴别用户卡的合法性、获取密钥素材Dk、计算工作密钥Kw,完成与USB主机的通信、MASS STORAGE协议处理、数据加解密,实现对ATA类存储设备的数据读写。由于此加密方法对存储设备中的所有数据进行加密,这样即使非法得到存储设备,如果没有密钥,也无法从存储设备中的密文得到原始明文数据,信息隐藏级别高。本发明可广泛应用于国防、党政机关、企业与公司、财务管理部门等涉密单位的移动存储系统中去。
一种USB接口的ATA类存储设备中数据的加密方法,其特征在于包括以下步骤:
(1)USB协议处理步骤:按照USB协议标准接收并解析计算机发来的数据包,当前事务为控制传输时,对请求设备信息的命令则按照要求返回数据,对配置设备的命令则按要求配置设备,并返回状态信息;当前事务为批量传输时,如果是输出事务则将USB包中的有效数据放入批量端点输出缓冲区,如果是输入事务则从批量端点输入缓冲区中读取有效数据并返回给计算机;
(2)MASS STORAGE协议处理步骤:解析批量端点输出缓冲区中的包类型,将命令包转换成相应的ATA命令块并传给ATA协议处理步骤,将数据包交由加解密步骤进行加密;对用于读取设备型号、固件版本、存储容量、设备状态等信息的命令,将ATA协议处理步骤返回的参数和状态信息封装成MASS STORAGE数据包写入批量端点输入缓冲区;对于向存储设备中写数据的命令,控制加解密步骤对随后批量端点输出缓冲区中的MASS STORAGE数据包进行加密;对于从存储设备中读数据的命令,控制加解密步骤解密来自ATA协议处理步骤的数据,并将解密后的明文数据封装成MASS STORAGE数据包写入批量端点输入缓冲区;
(3)加解密步骤:使用密钥获取步骤生成的工作密钥Kw,当MASS STORAGE协议处理步骤解析的命令包是向存储设备中写数据的命令时,调用密码算法加密批量端点输出缓冲区中的MASS STORAGE数据包,将加密结果传给ATA协议处理步骤;当MASS STORAGE协议处理步骤解析的命令包是从存储设备中读数据的命令时,则调用密码算法解密ATA协议处理步骤传来的数据,将解密结果传给MASSSTORAGE协议处理步骤;所述的密钥获取步骤是:使用认证密钥Kua、Kea和随机生成数进行内部认证和外部认证,在内部认证和外部认证失败次数超过设定值后,中止本方法所有步骤的处理;否则,对读取的密钥素材Dk进行加密计算生成工作密钥Kw后,将Kw提供给加解密步骤;
(4)ATA协议处理步骤:接收MASS STORAGE协议处理步骤生成的ATA命令块,当接收到获取存储设备参数的命令块时,将从存储设备中读取的数据直接交由MASSSTORAGE协议处理步骤使用;当接收到向存储设备中写数据的命令块时,将加解密步骤加密好的密文数据写入存储设备;当接收到从存储设备中读数据的命令块时,将从存储设备中读出的数据交给加解密步骤进行解密。
所述的加解密步骤可以执行任意的密码计算,也可以是简单的数据变换。
一种用于USB接口的ATA类存储设备中数据的加密方法的装置,其特征在于:所述的装置由用户密钥卡和硬件加密板卡组成;用户密钥卡为具有安全计算功能的智能卡;所述的硬件加密板卡由USB收发器、USB设备控制器、控制端点缓冲区、批量端点缓冲区、主控制器、加解密模块、ATA控制器、密钥获取模块和安全访问模块组成:USB收发器接收USB接口的串行数据,经串并转换后将数据包发送到USB设备控制器,同时将USB总线状态发送到USB设备控制器;将USB设备控制器的并行数据经串行化后驱动到USB接口;USB设备控制器从USB收发器接收并行数据和总线状态;按照USB协议解析并行数据,将控制传输数据包写入控制端点缓冲区,向主控制器发送控制输出中断请求;将批量传输数据包写入批量端点缓冲区,向主控制器发送批量输出中断请求;接收主控制器的控制输入中断请求,从控制端点缓冲区读取数据,将其转发给USB收发器;接收主控制器的批量输入中断请求,从批量端点缓冲区读取数据,将其转发到USB收发器;控制端点缓冲区接收USB设备控制器的控制传输数据包,对数据进行暂存,由主控制器读取;接收主控制器的控制传输命令响应数据,对数据进行暂存,由USB设备控制器读取;批量端点缓冲区接收USB设备控制器输出的批量传输数据包,对数据包进行暂存,供主控制器读取;批量端点缓冲区接收USB设备控制器输出的批量传输数据包,对数据包进行暂存,供主控制器读取;主控制器接收USB设备控制器的控制输出中断请求,从控制端点缓冲区读取控制传输数据包,解析包中的USB命令类型,将控制传输命令响应数据写入控制端点缓冲区,向USB设备控制器发送控制输入中断请求;接收USB设备控制器的批量输出中断请求,从批量端点缓冲区中读取批量传输数据包,将解析出的ATA命令参数块写入ATA控制器,将解析出的ATA数据写入加解密模块;向加解密模块发送加解密控制信号(加密还是解密),写入需要加解密的数据长度;接收加解密模块的状态信息,使能或者禁止对加解密模块的读写操作;接收ATA控制器返回的数据,并写入批量端点缓冲区;从加解密模块读取数据,写入批量端点缓冲区;在向批量端点缓冲区写入数据时,向USB设备控制器发送批量输入中断请求;加解密模块接收密钥获取模块的工作密钥Kw;接收主控制器发送的加解密控制信号和需要加解密的数据长度;接收主控制器写入的数据,对其进行加密,将加密结果输出给ATA控制器;接收ATA控制器写入的数据,对其进行解密,将解密结果输出给主控制器;向主控制器返回加解密模块的状态信息;ATA控制器接收主控制器写入的ATA命令参数块,通过IDE接口将其写入ATA类存储设备;从加解密模块读取加密结果,按照ATA协议规定的时序将加密结果通过IDE接口输出给ATA类存储设备;通过IDE接口接收ATA类存储设备返回的数据、设备参数和设备状态,将数据写入加解密模块,将设备参数和设备状态输出到主控制器;密钥获取模块通过串行通信接口向用户密钥卡和安全访问模块发送用于双向身份认证的智能卡命令;接收从用户密钥卡中获取密钥素材Dk;将密钥素材Dk发送给安全访问模块;接收安全访问模块返回的工作密钥Kw;安全访问模块接收并执行密钥获取模块发送的智能卡命令,向密钥获取模块返回命令执行结果和工作密钥Kw。
有益效果
本发明中的加密方法及装置采用纯硬件从底层对存储设备中的数据进行加密,加解密速度快,对用户完全透明。
本发明中的加密装置完全用硬件方法控制对数据的加解密,不依赖于任何的驱动程序以及操作系统,密钥不驻留计算机内存,安全性高。
本发明中的加密装置在底层进行纯硬件的加密,加密速度快,还具有适应大容量存储设备的特点。
本发明采用硬件加密技术,并且密钥直接由加密装置读取,不经过存储设备所连接的计算机,安全性高。而且加解密速度快,独立于操作系统,并且密钥保存于专门的硬件密钥存储卡,密钥与被保护数据独立存放,确保数据的安全。
附图说明
图1:USB接口的ATA类存储设备中数据的加密方法
图2:基于USB接口的ATA类存储设备中数据的加密装置
图3:USB设备控制器
图4:主控制器模块
图5:加解密模块
图6:ATA控制器
图7:密钥获取模块
具体实施方式
现结合附图对本发明作进一步描述:
实施本方法的装置由用户密钥卡和硬件加密板卡组成。
用户密钥卡为具有安全计算功能的智能卡,遵循串行通信协议,使用明华澳汉公司的SIC04智能卡;存储代表用户身份的认证密钥Kua、鉴别用户密钥卡读取者身份的认证密钥Kea、工作密钥素材Dk,由用户保管并在需要时插入硬件加密板卡相应的接口中;用于鉴别硬件加密板卡的合法性、表明自己的身份、向身份合法的硬件加密板卡提供密钥素材。
所述的硬件加密板卡中存储代表自己身份的认证密钥Kea、鉴别用户身份的认证密钥Kua;用于表明自己的身份、鉴别用户密钥卡的合法性、获取密钥素材Dk、计算工作密钥Kw,完成与USB主机的通信、MASS STORAGE协议处理、数据加解密,实现对ATA类存储设备的数据读写;硬件加密板卡由USB收发器、USB设备控制器、控制端点缓冲区、批量端点缓冲区、主控制器、加解密模块、ATA控制器、密钥获取模块和安全访问模块构成。
所述的USB设备控制器由UTMI接口、协议引擎、包封装单元、包解封装单元以及CRC计算单元1和CRC计算单元2组成;UTMI接口接收USB收发器传来的并行数据和USB总线的状态信息,给USB收发器发送速度协调信息,给协议引擎发送设备工作模式信息,将并行数据发送给包解封单元;UTMI接口接收包封装单元发来的USB数据包,并转发给USB收发器;包解封装单元接收UTMI接口发来的USB数据包,按照USB协议进行解析,发送有效数据传给CRC计算单元2,从CRC计算单元2读取计算结果,进行CRC校验,将解析信息及校验结果传给协议引擎;CRC计算单元2接收包解封装单元的有效数据,并将计算结果返回给包解封装单元;协议引擎接收包解封装单元发送的解析信息和校验结果;当为控制传输时,将数据写入控制数据缓冲区模块中,当校验结果正确时,发送控制输出中断请求信号给主控制器,校验结果错误时则清除所写内容;当为批量传输时,将数据写入批量数据缓冲区模块中,当校验结果正确时,发送批量输出中断请求信号给主控制器,校验结果错误时则清除所写内容;协议引擎接收来自UTMI接口的设备工作模式信息,接收来自主控制器的控制输入中断请求信号和批量输入中断请求信号,从控制数据缓冲区或者批量数据缓冲区中读取数据,并将设备工作模式信息、USB包PID信息和数据域信息传给包封装单元;包封装单元接收协议引擎发送的设备工作模式信息、USB包PID信息和数据域信息,将数据域信息发送给CRC计算单元1,从CRC计算单元1读回计算结果,按照USB协议进行组装,将组装好的数据包传给UTMI接口;CRC计算单元1接收包封装单元发送的数据域信息,并将计算结果返回给包封装单元。
所述的控制端点缓冲区包括一个控制输入缓冲区和一个控制输出缓冲区;当为控制输出事务时,控制输出缓冲区接收USB设备控制器发送的有效数据,并将数据传给主控制器;当为控制输入事务时,控制输出缓冲区接收主控制器发送的有效数据,并将数据传给USB设备控制器。
所述的批量端点缓冲区包括一个批量输入缓冲区和一个批量输出缓冲区;当为批量输出事务时,批量输出缓冲区接收USB设备控制器发送的有效数据,并将数据传给主控制器;当为批量输入事务时,批量输出缓冲区接收主控制器发送的有效数据,并将数据传给USB设备控制器。
所述的主控制器由命令解码器1、命令解码器2、命令响应器1、命令响应器2构成;命令解码器1接收USB设备控制器发送的控制输出中断请求,从控制端点缓冲区读取标准USB请求包,对命令包进行解码,以获取当前传输命令及参数,将命令及参数写入到命令响应器1,并启动命令响应器1;命令解码器2接收USB设备控制器发送的批量输出中断请求,从批量端点缓冲区读取MASS STORAGE命令包,对命令包进行解码,以获取当前传输命令及参数,将命令及参数写入到命令响应器2,并启动命令响应器2;命令响应器1将控制传输响应数据写入控制端点缓冲区,并向USB设备控制器发送控制输入中断请求;命令响应器2根据来自命令解码器的命令及参数将ATA传输命令参数块写入ATA控制器,加解密工作参数写入加解密模块,将来自ATA控制器的响应数据写入批量端点缓冲区,并向USB设备控制器发送批量输入中断请求,或者将输出数据包直接转发到加解密模块;命令响应器2接收加解密模块的状态信息,使能或者禁止主控制器和ATA控制器对加解密模块的读写操作。
所述的加解密模块由控制单元、选择器1、数据组装单元、加解密器、数据拆分单元和选择器2组成;控制单元接收主控制器输入的当前工作模式信号(加密还是解密)、待加密数据长度,接收密钥获取模块输入的工作密钥Kw和密钥准备好信号;向主控制器返回加解密模块的当前状态,向选择器1、数据组装单元、数据拆分单元和选择器2写入当前工作模式:加密或解密,向加解密器写入当前工作模式:加密或解密、待加密数据长度、工作密钥Kw、使能加解密启动信号;选择器1接收控制单元设置的当前工作模式:加密或解密,加密时从批量端点缓冲区或者解密时从ATA控制器读取数据,提供给数据组装单元;数据组装单元接收控制单元设置的当前工作模式:加密或解密,加密时将选择器1输入的8位数据或者解密时16位数据组装成加解密器要求的长度,组装好的数据写入加解密器;加解密器为实现所选取加解密算法的IP核,接收控制单元设置的当前工作模式:加密或解密,使用工作密钥Kw对数据组装单元输入的数据进行加密或者解密计算,将计算结果输出到数据拆分单元,向控制单元返回加解密器的工作状态;数据拆分单元接收控制单元设置的当前工作模式(加密还是解密),加密时将加解密器的加密结果转化为多个16位数据或者解密时多个8位数据,拆分后的数据通过选择器2输出;选择器2接收控制单元设置的当前工作模式:加密或解密,加密时将数据拆分单元的数据输出到ATA控制器或者解密时批量端点缓冲区。
所述的ATA控制器由传输控制单元、寄存器组、PIO状态机、DMA状态机、CRC16计算单元组成;传输控制单元接收主控制器写入的ATA命令块、无需加密的数据,向主控制器返回ATA类存储设备的状态、错误信息、无需加密的数据;从加解密模块读取已经加密好的数据,向加解密模块写入需要解密的数据;将ATA命令块、数据写入寄存器组,从寄存器组中读取数据和ATA存储设备的状态信息、错误信息和参数信息;向PIO状态机和DMA状态机发送使能信号,选择当前数据传输由PIO状态机执行还是由DMA状态机执行;寄存器组由数据寄存器、数据/特征寄存器、扇区数寄存器、扇区号寄存器、低柱面寄存器、高柱面寄存器、驱动器/磁头寄存器、状态/命令寄存器、可选状态/控制寄存器组成;暂存传输控制单元写入的命令块和数据,暂存PIO状态机和DMA状态机写入的数据和ATA类存储设备状态、错误、参数信息;供传输控制单元读取ATA类存储设备的状态、错误和参数信息,供PIO状态机和DMA状态机读取ATA命令块;PIO状态机接收传输控制单元的使能信号,在被使能的情况下从寄存器组中读取ATA命令块和数据,按照ATA协议规范将ATA命令块和数据通过IDE接口发送给ATA类存储设备;在被使能的情况下按照ATA协议规范从ATA类存储设备接收数据和ATA类存储设备的状态、错误和参数信息,将数据和ATA类存储设备的状态、错误和参数信息写入寄存器组;DMA状态机接收传输控制单元的使能信号,在被使能的情况下从寄存器组中读取数据,接收ATA类存储设备的DMA请求并按照ATA协议规范发送DMA应答信号,从ATA类存储设备读取数据,向ATA类存储设备写入数据和数据的CRC校验结果;向CRC16计算单元写入数据,从CRC16计算单元读取数据校验结果;CRC16计算单元接收DMA状态机写入的数据,按照ATA协议规定的多项式计算数据的CRC校验结果并返回给DMA状态机。
所述的密钥获取模块由密钥获取状态机、APDU包处理单元、串行通信接口1、串行通信接口2和安全访问单元组成;密钥获取状态机将工作密钥Kw输出到加解密模块,并向加解密模块发出工作密钥准备好信号;向应用协议数据单元(ApplicaionProtocol Data Unit,简称为APDU)发送内部认证、外部认证、读密钥素材、计算工作密钥过程中需要执行的智能卡命令;从应用协议数据单元接收命令执行结果,得到密钥素材Dk和工作密钥Kw;应用协议数据单元接收密钥获取状态机发送的智能卡命令,按照APDU协议定义的格式进行数据封装,将需要用户密钥卡执行的命令写入串行通信接口1,将需要安全访问单元执行的命令写入串行通信接口2;对串行通信接口1和串行通信接口2返回的数据包按照APDU协议进行解封装,将数据返回给密钥获取状态机;串行通信接口1将应用协议数据单元写入的数据逐位串行输出到用户密钥卡将用户密钥卡输入的串行数据转换成并行数据后输出给包处理单元;串行通信接口2将应用协议数据单元写入的数据逐位串行输出到安全访问单元,将安全访问单元输入的串行数据转换成并行数据后输出给包处理单元。
所述的数据缓冲区用FIFO或者RAM实现均可。
所述的USB接口可以为USB1.1或USB2.0接口。
所述的用户密钥卡通过串行通信接口与硬件加密板卡相连,即插即用。
所述的用户密钥卡为具有安全计算功能的智能卡。
所述的加解密模块可以是任意的密码算法芯片或者IP核,也可以是直连线,或者其它的连线变换操作。
所述的加解密模块,可以通过下载接口,完成密码算法的更新。
连接加密装置后的ATA类存储设备,在常用的WIN2000、WINXP、Linux操作系统上无需安装特殊的驱动程序,真正实现即插即用。
在硬件加密板卡中使用集USB设备控制器模块、数据缓冲区模块、主控制器模块、加解密模块、密钥获取模块和ATA控制器模块于一体的ASIC芯片或可定制芯片。
或者硬件加密板卡中的加解密模块使用独立的芯片实现,其余模块采用集成于一体的ASIC芯片或可定制芯片实现。
或者硬件加密板卡中的各个模块可以任意组合,使用多个ASIC芯片或可定制芯片实现,这些芯片可以放置在多个不同的电路板上完成相应的功能。

Claims (10)

1.一种USB接口的ATA类存储设备中数据的加密方法,其特征在于包括以下步骤:
(1)USB协议处理步骤:按照USB协议标准接收并解析计算机发来的数据包,当前事务为控制传输时,对请求设备信息的命令则按照要求返回数据,对配置设备的命令则按要求配置设备,并返回状态信息;当前事务为批量传输时,如果是输出事务则将USB包中的有效数据放入批量端点输出缓冲区,如果是输入事务则从批量端点输入缓冲区中读取有效数据并返回给计算机;
(2)MASS STORAGE协议处理步骤:解析批量端点输出缓冲区中的包类型,将命令包转换成相应的ATA命令块并传给ATA协议处理步骤,将数据包交由加解密步骤进行加密;对用于读取设备型号、固件版本、存储容量、设备状态信息的命令,将ATA协议处理步骤返回的参数和状态信息封装成MASS STORAGE数据包写入批量端点输入缓冲区;对于向存储设备中写数据的命令,控制加解密步骤对随后批量端点输出缓冲区中的MASS STORAGE数据包进行加密;对于从存储设备中读数据的命令,控制加解密步骤解密来自ATA协议处理步骤的数据,并将解密后的明文数据封装成MASS STORAGE数据包写入批量端点输入缓冲区;
(3)加解密步骤:使用密钥获取步骤生成的工作密钥Kw,当MASS STORAGE协议处理步骤解析的命令包是向存储设备中写数据的命令时,调用密码算法加密批量端点输出缓冲区中的MASS STORAGE数据包,将加密结果传给ATA协议处理步骤;当MASS STORAGE协议处理步骤解析的命令包是从存储设备中读数据的命令时,则调用密码算法解密ATA协议处理步骤传来的数据,将解密结果传给MASSSTORAGE协议处理步骤;所述的密钥获取步骤是:使用鉴别用户身份的认证密钥Kua、代表自己身份的认证密钥Kea和随机生成数进行内部认证和外部认证,在内部认证和外部认证失败次数超过设定值后,中止本方法所有步骤的处理;否则,对读取的密钥素材Dk进行加密计算生成工作密钥Kw后,将Kw提供给加解密步骤;
(4)ATA协议处理步骤:接收MASS STORAGE协议处理步骤生成的ATA命令块,当接收到获取存储设备参数的命令块时,将从存储设备中读取的数据直接交由MASSSTORAGE协议处理步骤使用;当接收到向存储设备中写数据的命令块时,将加解密步骤加密好的密文数据写入存储设备;当接收到从存储设备中读数据的命令块时,将从存储设备中读出的数据交给加解密步骤进行解密。
2.根据权利要求1所述的USB接口的ATA类存储设备中数据的加密方法,其特征在于:所述的加解密步骤可以执行任意的密码计算或简单的数据变换。
3.一种使用权利要求1所述的USB接口的ATA类存储设备中数据的加密方法的装置,其特征在于:所述的装置由用户密钥卡和硬件加密板卡组成;用户密钥卡为具有安全计算功能的智能卡;所述的硬件加密板卡由USB收发器、USB设备控制器、控制端点缓冲区、批量端点缓冲区、主控制器、加解密模块、ATA控制器、密钥获取模块和安全访问模块组成:USB收发器接收USB接口的串行数据,经串并转换后将数据包发送到USB设备控制器,同时将USB总线状态发送到USB设备控制器;将USB设备控制器的并行数据经串行化后驱动到USB接口;USB设备控制器从USB收发器接收并行数据和总线状态;按照USB协议解析并行数据,将控制传输数据包写入控制端点缓冲区,向主控制器发送控制输出中断请求;将批量传输数据包写入批量端点缓冲区,向主控制器发送批量输出中断请求;接收主控制器的控制输入中断请求,从控制端点缓冲区读取数据,将其转发给USB收发器;接收主控制器的批量输入中断请求,从批量端点缓冲区读取数据,将其转发到USB收发器;控制端点缓冲区接收USB设备控制器的控制传输数据包,对数据进行暂存,由主控制器读取;接收主控制器的控制传输命令响应数据,对数据进行暂存,由USB设备控制器读取;批量端点缓冲区接收USB设备控制器输出的批量传输数据包,对数据包进行暂存,供主控制器读取;主控制器接收USB设备控制器的控制输出中断请求,从控制端点缓冲区读取控制传输数据包,解析包中的USB命令类型,将控制传输命令响应数据写入控制端点缓冲区,向USB设备控制器发送控制输入中断请求;接收USB设备控制器的批量输出中断请求,从批量端点缓冲区中读取批量传输数据包,将解析出的ATA命令参数块写入ATA控制器,将解析出的ATA数据写入加解密模块;向加解密模块发送加密控制信号或解密控制信号,写入需要加解密的数据长度;接收加解密模块的状态信息,使能或者禁止对加解密模块的读写操作;接收ATA控制器返回的数据,并写入批量端点缓冲区;从加解密模块读取数据,写入批量端点缓冲区;在向批量端点缓冲区写入数据时,向USB设备控制器发送批量输入中断请求;加解密模块接收密钥获取模块的工作密钥Kw;接收主控制器发送的加解密控制信号和需要加解密的数据长度;接收主控制器写入的数据,对其进行加密,将加密结果输出给ATA控制器;或接收ATA控制器写入的数据,对其进行解密,将解密结果输出给主控制器;向主控制器返回加解密模块的状态信息;ATA控制器接收主控制器写入的ATA命令参数块,通过IDE接口将其写入ATA类存储设备;从加解密模块读取加密结果,按照ATA协议规定的时序将加密结果通过IDE接口输出给ATA类存储设备;通过IDE接口接收ATA类存储设备返回的数据、设备参数和设备状态,将数据写入加解密模块,将设备参数和设备状态输出到主控制器;密钥获取模块通过串行通信接口向用户密钥卡和安全访问模块发送用于双向身份认证的智能卡命令;接收从用户密钥卡中获取密钥素材Dk;将密钥素材Dk发送给安全访问模块;接收安全访问模块返回的工作密钥Kw;安全访问模块接收并执行密钥获取模块发送的智能卡命令,向密钥获取模块返回命令执行结果和工作密钥Kw。
4.根据权利要求3所述的装置,其特征在于:所述的USB设备控制器由UTMI接口、协议引擎、包封装单元、包解封装单元以及CRC计算单元1和CRC计算单元2组成;UTMI接口接收USB收发器传来的并行数据和USB总线的状态信息,给USB收发器发送速度协调信息,给协议引擎发送设备工作模式信息,将并行数据发送给包解封单元;UTMI接口接收包封装单元发来的USB数据包,并转发给USB收发器;包解封装单元接收UTMI接口发来的USB数据包,按照USB协议进行解析,发送有效数据传给CRC计算单元2,从CRC计算单元2读取计算结果,进行CRC校验,将解析信息及校验结果传给协议引擎;CRC计算单元2接收包解封装单元的有效数据,并将计算结果返回给包解封装单元;协议引擎接收包解封装单元发送的解析信息和校验结果;当为控制传输时,将数据写入控制数据缓冲区模块中,当校验结果正确时,发送控制输出中断请求信号给主控制器,校验结果错误时则清除所写内容;当为批量传输时,将数据写入批量数据缓冲区模块中,当校验结果正确时,发送批量输出中断请求信号给主控制器,校验结果错误时则清除所写内容;协议引擎接收来自UTMI接口的设备工作模式信息,接收来自主控制器的控制输入中断请求信号和批量输入中断请求信号,从控制数据缓冲区或者批量数据缓冲区中读取数据,并将设备工作模式信息、USB包PID信息和数据域信息传给包封装单元;包封装单元接收协议引擎发送的设备工作模式信息、USB包PID信息和数据域信息,将数据域信息发送给CRC计算单元1,从CRC计算单元1读回计算结果,按照USB协议进行组装,将组装好的数据包传给UTMI接口;CRC计算单元1接收包封装单元发送的数据域信息,并将计算结果返回给包封装单元。
5.根据权利要求3所述的装置,其特征在于:所述的控制端点缓冲区包括一个控制输入缓冲区和一个控制输出缓冲区;当为控制输出事务时,控制输出缓冲区接收USB设备控制器发送的有效数据,并将数据传给主控制器;当为控制输入事务时,控制输入缓冲区接收主控制器发送的有效数据,并将数据传给USB设备控制器。
6.根据权利要求3所述的装置,其特征在于:所述的批量端点缓冲区包括一个批量输入缓冲区和一个批量输出缓冲区;当为批量输出事务时,批量输出缓冲区接收USB设备控制器发送的有效数据,并将数据传给主控制器;当为批量输入事务时,批量输入缓冲区接收主控制器发送的有效数据,并将数据传给USB设备控制器。
7.根据权利要求3所述的装置,其特征在于:所述的主控制器由命令解码器1、命令解码器2、命令响应器1、命令响应器2构成;命令解码器1接收USB设备控制器发送的控制输出中断请求,从控制端点缓冲区读取标准USB请求包,对命令包进行解码,以获取当前传输命令及参数,将命令及参数写入到命令响应器1,并启动命令响应器1;命令解码器2接收USB设备控制器发送的批量输出中断请求,从批量端点缓冲区读取MASS STORAGE命令包,对命令包进行解码,以获取当前传输命令及参数,将命令及参数写入到命令响应器2,并启动命令响应器2;命令响应器1将控制传输响应数据写入控制端点缓冲区,并向USB设备控制器发送控制输入中断请求;命令响应器2根据来自命令解码器2的命令及参数将ATA传输命令参数块写入ATA控制器,加解密工作参数写入加解密模块,将来自ATA控制器的响应数据写入批量端点缓冲区,并向USB设备控制器发送批量输入中断请求,或者将输出数据包直接转发到加解密模块;命令响应器2接收加解密模块的状态信息,使能或者禁止主控制器和ATA控制器对加解密模块的读写操作。
8.根据权利要求3所述的装置,其特征在于:所述的加解密模块由控制单元、选择器1、数据组装单元、加解密器、数据拆分单元和选择器2组成;控制单元接收主控制器输入的当前加密或解密工作模式信号、待加密数据长度,接收密钥获取模块输入的工作密钥Kw和密钥准备好信号;向主控制器返回加解密模块的当前状态,向选择器1、数据组装单元、数据拆分单元和选择器2写入当前工作模式:加密或解密,向加解密器写入当前工作模式:加密或解密、待加密数据长度、工作密钥Kw、使能加解密启动信号;选择器1接收控制单元设置的当前工作模式:加密或解密,加密时从批量端点缓冲区或者解密时从ATA控制器读取数据,提供给数据组装单元;数据组装单元接收控制单元设置的当前工作模式:加密或解密,加密时将选择器1输入的8位数据或者解密时16位数据组装成加解密器要求的长度,组装好的数据写入加解密器;加解密器为实现所选取加解密算法的IP核,接收控制单元设置的当前工作模式:加密或解密,使用工作密钥Kw对数据组装单元输入的数据进行加密或者解密计算,将计算结果输出到数据拆分单元,向控制单元返回加解密器的工作状态;数据拆分单元接收控制单元设置的当前加密或解密工作模式,加密时将加解密器的加密结果转化为多个16位数据或者解密时将结果转化为多个8位数据,拆分后的数据通过选择器2输出;选择器2接收控制单元设置的当前工作模式:加密或解密,加密时将数据拆分单元的数据输出到ATA控制器或者解密时将数据输出到批量端点缓冲区。
9.根据权利要求3所述的装置,其特征在于:所述的ATA控制器由传输控制单元、寄存器组、PIO状态机、DMA状态机、CRC16计算单元组成;传输控制单元接收主控制器写入的ATA命令块、无需加密的数据,向主控制器返回ATA类存储设备的状态、错误信息、无需加密的数据;从加解密模块读取已经加密好的数据,向加解密模块写入需要解密的数据;将ATA命令块、数据写入寄存器组,从寄存器组中读取数据和ATA存储设备的状态信息、错误信息和参数信息;向PIO状态机和DMA状态机发送使能信号,选择当前数据传输由PIO状态机执行还是由DMA状态机执行;寄存器组由数据寄存器、数据/特征寄存器、扇区数寄存器、扇区号寄存器、低柱面寄存器、高柱面寄存器、驱动器/磁头寄存器、状态/命令寄存器、可选状态/控制寄存器组成;暂存传输控制单元写入的命令块和数据,暂存PIO状态机和DMA状态机写入的数据和ATA类存储设备状态、错误、参数信息;供传输控制单元读取ATA类存储设备的状态、错误和参数信息,供PIO状态机和DMA状态机读取ATA命令块;PIO状态机接收传输控制单元的使能信号,在被使能的情况下从寄存器组中读取ATA命令块和数据,按照ATA协议规范将ATA命令块和数据通过IDE接口发送给ATA类存储设备;在被使能的情况下按照ATA协议规范从ATA类存储设备接收数据和ATA类存储设备的状态、错误和参数信息,将数据和ATA类存储设备的状态、错误和参数信息写入寄存器组;DMA状态机接收传输控制单元的使能信号,在被使能的情况下从寄存器组中读取数据,接收ATA类存储设备的DMA请求并按照ATA协议规范发送DMA应答信号,从ATA类存储设备读取数据,向ATA类存储设备写入数据和数据的CRC校验结果;向CRC16计算单元写入数据,从CRC16计算单元读取数据校验结果;CRC16计算单元接收DMA状态机写入的数据,按照ATA协议规定的多项式计算数据的CRC校验结果并返回给DMA状态机。
10.根据权利要求3所述的装置,其特征在于:所述的密钥获取模块由密钥获取状态机、应用协议数据单元APDU、包处理单元、串行通信接口1、串行通信接口2和安全访问单元组成;密钥获取状态机将工作密钥Kw输出到加解密模块,并向加解密模块发出工作密钥准备好信号;向应用协议数据单元APDU发送内部认证、外部认证、读密钥素材、计算工作密钥过程中需要执行的智能卡命令;从应用协议数据单元接收命令执行结果,得到密钥素材Dk和工作密钥Kw;应用协议数据单元接收密钥获取状态机发送的智能卡命令,按照应用协议数据单元APDU协议定义的格式进行数据封装,将需要用户密钥卡执行的命令写入串行通信接口1,将需要安全访问单元执行的命令写入串行通信接口2;对串行通信接口1和串行通信接口2返回的数据包按照应用协议数据单元APDU协议进行解封装,将数据返回给密钥获取状态机;串行通信接口1将应用协议数据单元写入的数据逐位串行输出到用户密钥卡将用户密钥卡输入的串行数据转换成并行数据后输出给包处理单元;串行通信接口2将应用协议数据单元写入的数据逐位串行输出到安全访问单元,将安全访问单元输入的串行数据转换成并行数据后输出给包处理单元。
CN2008100178776A 2008-04-02 2008-04-02 一种usb接口的ata类存储设备中数据的加密方法及装置 Expired - Fee Related CN101551784B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008100178776A CN101551784B (zh) 2008-04-02 2008-04-02 一种usb接口的ata类存储设备中数据的加密方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008100178776A CN101551784B (zh) 2008-04-02 2008-04-02 一种usb接口的ata类存储设备中数据的加密方法及装置

Publications (2)

Publication Number Publication Date
CN101551784A CN101551784A (zh) 2009-10-07
CN101551784B true CN101551784B (zh) 2011-04-13

Family

ID=41156032

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100178776A Expired - Fee Related CN101551784B (zh) 2008-04-02 2008-04-02 一种usb接口的ata类存储设备中数据的加密方法及装置

Country Status (1)

Country Link
CN (1) CN101551784B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101872334A (zh) * 2010-05-26 2010-10-27 北京飞天诚信科技有限公司 一种复合型usb设备及其实现方法
CN101873215A (zh) * 2010-05-27 2010-10-27 大唐微电子技术有限公司 一种安全芯片、无线控制模块及终端
CN102867285A (zh) * 2011-07-08 2013-01-09 丛树业 六种无逻辑的数字信息硬性水印式组合加密法
CN103544037B (zh) 2013-10-29 2016-08-17 飞天诚信科技股份有限公司 一种支持OpenSC的软硬件驱动的实现方法
CN106845254A (zh) * 2017-01-20 2017-06-13 杭州华澜微电子股份有限公司 一种用于计算机的加密数据传输线
CN107885990A (zh) * 2017-11-24 2018-04-06 天津中德应用技术大学 财务共享控制终端及其使用方法
CN109711208B (zh) * 2018-11-19 2020-08-25 北京计算机技术及应用研究所 Usb接口设备数据加密转换装置及其工作方法
US11334677B2 (en) * 2020-01-09 2022-05-17 Western Digital Technologies, Inc. Multi-role unlocking of a data storage device
CN111400732B (zh) * 2020-03-12 2023-03-21 西安石油大学 一种基于usb通道的加解密模块及设备
CN111814167B (zh) * 2020-07-14 2024-02-09 北京九维数安科技有限公司 数据加解密处理系统及方法
CN112149167B (zh) * 2020-09-29 2024-03-15 北京计算机技术及应用研究所 一种基于主从系统的数据存储加密方法及装置
CN112329038B (zh) * 2020-11-15 2022-10-14 珠海一微半导体股份有限公司 一种基于usb接口的数据加密控制系统及芯片
CN112434320B (zh) * 2020-11-27 2023-03-14 海光信息技术股份有限公司 海量存储类设备加密方法、主控制器及接入设备
CN112861108B (zh) * 2021-03-31 2024-02-27 中国工商银行股份有限公司 一种联盟链数据处理方法及系统
CN114385539A (zh) * 2022-01-12 2022-04-22 苏州国芯科技股份有限公司 一种usb存储设备的验证系统、方法、装置及介质
CN114547663B (zh) * 2022-04-28 2022-07-22 广州万协通信息技术有限公司 基于usb接口的高速芯片实现数据加解密及读取的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2489387Y (zh) * 2001-07-31 2002-05-01 台均实业有限公司 具有usb接口的便携式可读写存储器
CN1357840A (zh) * 2000-12-08 2002-07-10 英业达股份有限公司 计算机保密系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1357840A (zh) * 2000-12-08 2002-07-10 英业达股份有限公司 计算机保密系统
CN2489387Y (zh) * 2001-07-31 2002-05-01 台均实业有限公司 具有usb接口的便携式可读写存储器

Also Published As

Publication number Publication date
CN101551784A (zh) 2009-10-07

Similar Documents

Publication Publication Date Title
CN101551784B (zh) 一种usb接口的ata类存储设备中数据的加密方法及装置
CN108345806B (zh) 一种硬件加密卡和加密方法
JP4461145B2 (ja) Sim装置用コンピュータシステム及び方法
US7657754B2 (en) Methods and apparatus for the secure handling of data in a microcontroller
CN100487715C (zh) 一种数据安全存储系统和装置及方法
US7861015B2 (en) USB apparatus and control method therein
CN201054140Y (zh) 信息安全控制芯片
CN103415855A (zh) 大容量存储设备存储器加密方法、系统及装置
CN101364187A (zh) 可对抗木马程式的双操作系统计算机
CN109101829B (zh) 基于可重构密码处理器的安全固态盘数据传输系统
Chang et al. User-friendly deniable storage for mobile devices
US11775652B2 (en) Platform security mechanism
CN201247464Y (zh) 一种usb接口的ata类存储设备中数据的加密装置
CN101883357A (zh) 一种终端与智能卡之间的相互认证方法、装置及系统
CN107967432B (zh) 一种安全存储装置、系统及方法
WO2023133862A1 (zh) 数据处理方法及系统
TW200846972A (en) Method for generating and using a key for encryption and decryption in a computer device
CN113158203A (zh) 一种soc芯片、电路和soc芯片的外部数据读写方法
CN108921561B (zh) 一种基于硬件加密的数字热钱包
CN110837627A (zh) 一种基于硬盘序列号的软件版权认证方法、系统和设备
JP7398509B2 (ja) 情報セキュリティのための集積回路モジュール
US20200204339A1 (en) Portable electronic device and ic module
Yashiro et al. T-Kernel/SS: a secure filesystem with access control protection using tamper-resistant chip
US20230163964A1 (en) Secure key exchange in a multi-processor device
JP2004334471A (ja) 情報カード

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110413

Termination date: 20140402