(计算机软件与理论专业论文)硬盘加密芯片的改进及密钥管理的研究.pdf_第1页
(计算机软件与理论专业论文)硬盘加密芯片的改进及密钥管理的研究.pdf_第2页
(计算机软件与理论专业论文)硬盘加密芯片的改进及密钥管理的研究.pdf_第3页
(计算机软件与理论专业论文)硬盘加密芯片的改进及密钥管理的研究.pdf_第4页
(计算机软件与理论专业论文)硬盘加密芯片的改进及密钥管理的研究.pdf_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

东南人学硕士学位论文 摘要 随着信息时代的到来,硬艋数据的保密需求与日俱增。硬件加密硬盘数据的方法不依赖操作系统、 不占用系统资源、具有安全可靠的密宅 j 管理方式,成为当前保护硬盘数据的主要趋势。本文基于现代 密码学知识和f p g a 设计技术开发研制了一种采用a e s 算法和c i r 加密模式的a t a 硬毹加密卡: 同时基于1 2 c 协议和u s b 设备开发技术,设计实现了加密卡的密钥管理系统:包括伪u s b 密钥设备 和基于u s b 接u 的密钥管理设备。 本文首先描述了a e s 算法及其基于f p g a 的电路设计方法。其次在分析比较各种加密模式的基础 上,选择c t r 模式作为本硬盘加密系统的加密模式。再次,在简要分析a t a 协议的基础上,提出了 本加密系统的结构框架,详细描述了数据处理电路中针对p l o 、d m a 数据传输模式的协议控制电路的 设计实现和加密数据的c r c 校验值的计算方法,并测试分析了加密卡的功能和性能。接着,通过探讨 各种主流密钥管理方案,提出本密钥管理系统的体系结构。接下来,具体介绍了基于1 2 c 协议实现存 放用户密钥的伪u s b 密钥设备的实现方法,并描述了加密卡密钥获取电路的设计和实现。晟后,简要 分析了u s b 数据传输协议,详细阐述了基于u s b 接口的密钥管理设备的硬件开发、固件开发、驱动 开发和应用程序的开发。 关键词: a t a ,a e s 。c r r ,密钥管理,f p g a ,e e p r o m ,u s b ,固件,w d m 驱动 东南大学硕士学位论文 a b s t r a c t w i t ht h ea d v e n to ft h ei n f o r m a t i o ne r a ,t h en e e df o rd a t as t o r a g ea n dd a t ap r o t e c t i o nh a s b e e nb e c o m i n g m o r ea n dm o r eu r g e n t w i l ht h ei n t r o d u c t i o no ft h ee n c r y p t i o n a s s i s t i n gh a r d w a r e d a t ae n c r y p t i o nn o to n l y b e c o m e si n d e p e n d e n to ft h eo p e r a t i n gs y s t e mo rt h ev a l u a b l ec p ur e s o u r c e ,b u ta l s oe n r i c h e st h er e l i a b i l i t y o ft h ek e ym a n a g e m e n ts y s t e m c u r r e n t l y , t h eh a r d w a r ed a t ae n u r y p t i o ni st h em o s tp r o m i s i n gw a yt op r o t e c t t h ed a t ai nh a r dd i s k t h ed e v e l o p m e n to ft h ea t ah a r dd i s ke n c r y p t i o nc a r da d o p t st h ea e se n c r y p t i o n a l g o r i t h mu s i n gt h ec i re n c r y p t i o nm o d e ,w h i c hi sb a s e do nt h em o d e mc r y p t o g r a p h ya n dt h ea d v a n c e t e c h n o l o g yo ft h ef p g ad e s i g n o nt h eo t h e rh a n d ,t h ek e ym a n a g e m e n ts y s t e mi n c l u d e st h eu s bk e yd e v i c e b a s e do nt h ep cp r o t o c o la n dt h eu s bk e ym a n a g e rw h i c hc a ne f f i c i e n t l ya i dt h eu s e rt or e a do rw r i t et h e u s b k e yd e v i c ew i t ht h eu s b b u sp r o t o c 0 1 i n t h i sp a p e r , f i r s t l y , t h ea e se n c r y p t i o na l g o r i t h mi si n 仃o d u c e da n dt h ei n l p l e m e n t a l i o no fi t sc i r c u i t u s i n gf p g a i sp r e s e n t e d s e c o n d l y , a c c o r d i n gt ot h ev a r i o u se n c r y p t i o nm o d e s , t h ea n a l y s i so ft h ee f f i c i e n c y a n dt h es e c u r i t yi si l l u s t r a t e d b a s e do nt h er e s u l to ft h ea n a l y s i s , t h ec t re n c r y p t i o nm o d ei ss e l e c t e df o rt h e e n c r y p t i o nc a r d t h i r d l y , t h eb r i e fi n t r o d u c l i o no fa t a b u sp r o t o c o la n dt h ea r c h i t e c t u r eo ft h i se u c r y p t i o n s y s t e ma g ep r e s e n t e d a l s o ,t h ec a l c u l a t i o ne x p r e s s i o no ft h ec r cc h e c k s u mo ft h ee n c r y p t i o nd a t ai s p r o v i d e da n dp r o v e d m o r e o v e r , t h ea n a l y s i so ft h ep e r f o r m a n c eo ft h ec a r di sg i v e n f o u n - l l y t h ed i s c u s s i o n o fd i f f e r e n tp o p u l a rk e ym a n a g e m e n tm e t h o d si sg i y e na n dj sf o l l o w e db yt h ep r e s e n t a t i o no ft h ea r c h i t e c t u r e o ft h ek e ym a n a g e m e n ts y s t e mo ft h ee n c r y p t i o ns y s t e m f u r t h e r , t h ed e v e l o p m e n to ft h eu s bk e yd e v i c e u s i n gt h ei cp r o t o c o la n dt h em o d u l ei nt h ee n c r y p t i o nc a r dw h i c hi si nt h ec h a r g et or e a do rw r i t ek e y i n f o r m a t i o na r ed e s c r i b e di nd e t a i l l a s tb u tn o tl e a s lt h eu s bt r a n s f e rp r o t o c o li si n t r o d u c e db r i e f l ya sw e l l a st h ed e s i g na n di m p l e m e n to ft h eh a r d w a r e ,t h ef i r m w a r e ,a n dt h ed r i v e ra n da p p l i c a t i o ns o f t w a r ef o rk e y m a n a g e m e n td e v i c ea r ed e p i c t e d k e y w o r d s : a t aa e sc t r f p g ae e p r o mu s b w d md r i v e r k e ym a n a g e m e n t f i r m w a r e 东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我 所知。除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成 果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同 志对本研究所做的任何贡献均己在论文中作了明确的说明并表示了谢意。 研究生签名:逶些期:二竺丑、方 东南大学学位论文使用授权声明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复印件和 电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质论文的内 容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布( 包括刊登) 论文的 全部或部分内容。论文的公布( 包括刊登) 授权东南大学研究生院办理。 研究生签名:爰塾墨导师签名: 第一章绪论 1 1 硬盘加密卡的研究意义 第一章绪论 随着信息时代的到来,数据存储的需求晕与日俱增,贝弗利山的计算机技术评论出版商 w e s t w o r l d 公司的调查数据显示:数据存储晕以年均8 0 的速度增长。目前多数用户将重要数据直接存 储在硬盘上,一旦硬盘里的数据丢失,将带来巨大的损失敏感业务或个人数据的泄漏更是遗害无穷。 因此,人们对保护硬盘数据免受侵害的关注程度也越来越高。硬盘数据加密是当前保护硬盘数据的主 要趋势和手段。 目前,实现硬盘致据加密的方法主要有基于密码的硬盘锁、软件加密和硬件加密。基于密码的硬 盘锁安全性较低;软件加密方法存在着加密速率低、降低系统性能和加密软件自身安全性等问题;而 硬件加密方法有着加密速度高、不依赖具体的操作系统、不占用系统资源、安全性好等优点,硬件加 密方法是当前保护硬盘数据的主要趋势。 目前在硬盘加密芯片和硬盘加密卡研制方面,国内外已经出现了一些相关的产品,市面上可以购 买到的有国外伊诺瓦科技公司开发的硬盘加密锁和深圳卓尔科技公司开发的硬盘加密卡,卓尔加密卡 在网上的报价为3 8 0 0 人民币。1 。由于这些公司对加解密芯片技术的极度保密以及国内对硬盘数据加 密的巨大需求,研究a t a 硬盘加密卡的设计和实现具有重要的使用价值和研究价值。 1 2 硬盘加密卡的研究现状 本实验室于2 0 0 6 年年初已经设计了a t a 硬盘加密卡i 代的雏形,开发了基于f p g a 芯片的加密卡 设备。加密卡i 代采用d e s 加密算法及e c b 加密模式对硬盘数据进行加解密。加密卡i 代虽然能实现 硬盘数据的加解密功能,但是由于e c b 加密模式的种种缺陷,导致设计复杂化而且对数据的传输速 率有较大的影响,播放a v i 文件有时会出现停顿或马赛克现象。另外,随着密码分析水平、芯片处理 能力和计算技术的不断进步,加密卡i 代采用的d e s 加密算法的安全强度难以适应新的安全需要。 加密卡i 代采用密钥和加密算法一体化的方式管理密钥,存在很大的安全隐患只要获得加密卡, 其他人可以不费吹灰之力获得硬盘数据。 伊诺瓦硬盘加密锁和卓尔硬盘加密卡向用户提供单独存放密钥的外部设备但是不提供密钥修改 功能,用户一旦丢失密钥设备,将永远无法读取硬盘上的加密数据,这可能会给没有备份习惯的用户 带来不可估量的毁灭性损失。 1 3 主要研究内容 为了改进和完善a t a 硬盘加密卡i 代,本文提出了a t a 硬盘加密卡i i 代的研究设计。 t a 硬盘加 密卡i i 代的设计开发主要分为两部分: 1 ) 为了改进加密卡i 代的性能和安全强度,选择新的加密算法和加密模式,并基于新的加密算法 和加密模式实现a t a 协议中的各种传输模式的加解密,完成加密卡i i 代的设计开发。 2 ) 设计并实现较为完善的密钥管理方案,消除加密卡i 代在密钥管理方面的安全隐患,并向用户 提供密钥可修改功能。 通过研究各种主流加密算法,本文设计的加密卡i i 代最终采用高级加密算法a e s 作为硬盘数据的 东南人学硕士学位论文 加解密算法。加密卡i i 代采用了c t k 加密模式,因为,通过深入分析比较发现c t r 加密模式不仅加 密强度大,而且非常适合实现硬盘数据的加解密操作。 加密卡i i 代采用密钥和加密算法分离化的方式管理密钥,设计了一个存放密钥数据的外部设备, 还设计了一个基于u s b 接口的密钥管理设各及其在w i n d o w s2 0 0 0 系统下的w d m 驱动程序和应用程序, 用户使用密钥管理设备可以方便地修改密钥设备中的密钥数据。 本文围绕加密卡i i 代的研究工作展开,以下各章节安捧如下: 第二章详细介绍了a e s 算法及其电路的设计和实现。第三章分析比较了各种加密模式,包括e c b 非反馈加密模式、c t k 非反馈加密模式和c b c 反馈加密模式,最终阐述了选择c t k 模式作为加密卡i i 代的加密模式的原因。第四章在简要介绍a t a 协议的基础上,提出基于c t r 加密模式和a e s 算法的加 密卡电路框架:针对p i o 、d 姒数据传输方式,详细阐述了加密卡协议控制电路的设计和实现,并描述 了加密数据的c r c 计算方法及其电路设计和实现;最后测试分析了加密卡i i 的功能和性能。第五章在 探讨各种主流密钥管理方案的基础上,设计了一种既安全又容易实现、使用方便的密钥存储设备 伪u s b 密钥设备并提出加密卡i i 代密钥管理系统的体系结构。第六章首先介绍了伪u s b 密钥设备的 e e p r o m 芯片以及e e p k o m 遵循的i 总线协议,然后详细描述了加密卡内密钥获取模块电路的设计和 实现。第七章介绍了u s b 协议,并详细描述了u s b 密钥管理器设备的硬件设计。第八章阐述了密钥管 理器设备的软件设计,包括基于c y p r e s sc y 7 c 6 3 7 2 3 微控制器的同件设计,以及w i n d o w s2 0 0 0 系统下 w d h 驱动程序的开发和应用程序的设计。第九章是对本论文的总结与展望:总结归纳了论文的主要工 作和作者在开发过程中的心得体会,并探讨了今后需要进一步开展的研究工作。 2 第二章a e s 加密算法设计与实现 第二章a e s 加密算法设计与实现 2 1a e s 加密算法简介n 从1 9 7 6 年美国数据加密标准算法( d e s ) 公布以来,到2 0 世纪末,d e s 算法成为全世界使用最广泛 的加密标准。但是随着密码分析水平、芯片处理能力和计算技术的不断进步,d e s 算法及其变形的安 全强度难以适应新的安全需要。美国国家标准和技术研究所( n i s t ) 于2 0 0 0 年1 0 月选用r i j n d a e l 算 法作为高级加密标准算法( a e s ) 。 严格意义上讲,a e s 算法不完全是r i j n d a e l 算法,因为r i j n d a e l 算法支持更大范胃的分组的长度 和密钥的长度:而a e s 算法的分组长度固定为1 2 8 位,并且只支持1 2 8 位、1 9 2 位或者2 5 6 位的密钥长 度。 本文设计的硬盘加密卡采用1 2 8 位 e s 加密算法,故下文主要介绍1 2 8 位a e s 加密算法。 a e s 算法在整体结构上采用由代替变换网络构成的圈函数,进行多轮迭代,算法结构如图2 1 所示。 每一圈由3 层组成: a ) 非线性层:进行s 盒变换( s u b b y t e s ) ,由1 6 个s 盒并置而成,起混淆作用。 b ) 线性混合层:进行行移位变换( s h i f t r o w ) 和列混淆变换( m i x c o l u a ) ,以确保多圈之上的高 度扩散。 c ) 密钥加层:进行圈密钥加变换( a d d r o u n d k e y ) ,将圈密钥简单地和中间状态进行异或。 a i e s 算法的加密解密要经过多次的数据变换,每次数据变换会产生一个中间结果,这些中间结果称 为状态( s t a t e ) 每个状态为一个4 4 的,共1 6 字节的矩阵。 图2 - 1a e s 算法结构 2 1 1 密钥扩展 通过密钥扩展,由1 2 8 位的原始密钥扩展成1 0 个1 2 8 位的罔密钥。每个圈密钥依次用在每 东南大学硕士学位论文 个轮变换中。1 2 8 位的原始密钥初始化为t w o , 彬o - 0 3 ) 的长度为3 2 位,作为1 个字。 圈密钥扩展算法如图2 - 2 所示。算法显示r 从原始密钥扩展的4 个字为种子密钥之后的每个字形的 生成分两种情况:当f 不为4 的整数倍时,彤等于前一个字彤一1 与4 个位置之前的字彬一的异或;当f 为4 的整数倍时,与彬异或之前,须先将彤一1 经过以下一系列的变换:循环移位b y t e r o t a t e 用 s 盒进行变换s u b b y t e s 异或轮常数r c o n s 。 2 1 2 轮变换 w i w 1 4 w 1 2 o w h一囤悃,: 帕d 1 1 0 l v v i ir r i 。d 4 = 0 图2 - 2 密钥扩展算法 a e s 算法的实现基于有限元( f i n i t ef i e l d ) 计算,其数学理论的介绍不在此论文的研究范围。基 于1 2 8 位密钥长度的a e s 算法具有1 0 轮变换,其中前9 轮变换具有四个小的步骤: d d r o u n d k e y , s u b b y t e s ,s h i f t r o - s ,t i x c o l u m s 。最后一轮变换同样具有四个小的步骤:a d d r o u n d k e y ,s u b b y t e s , s h i f t r o w s ,a d d r o u n d k e y 。 2 1 2 1 密钥加a d d r o u n d k e y 在密钥加步骤中,状态的调整是通过与一个圈密钥进行逐位异或而得到,如图2 - 3 所示。 a o o a o 1 a o 2a 03 a 1oa 1 1a 12a 1 3 a 2oa 2 。1a 2 2a 2 3 a 30a 3 1a 32a 3 3 2 1 2 2s 盒变换s u b b y t e s k o 0k 0 1k 0 2k o 3 k 10k 1 ik l2k 13 i 2 0i ( 2 1k 2 2i ( 2 3 k 30k 3 1k 32k 3 3 图2 - 3 密钥加运算示意图 b o 0b 0 1b o 2b o3 b 1 0b 1b 1 2b l3 b 2 且 b 2 1b 2 2b 2 ,3 b 3 0 b 3 1 b 3 2 b 3 3 s u b b y t e s 步骤是a e s 算法中的唯一的非线性变换。对于每一个状态中的字节,通过s - b o x 的查询 得到该步骤的结果,如图2 4 所示。 4 侣 第二章a e s 加密算法设计与实现 a o oa o 1a o 2a o 3b 00b 0 1b o2b o 3 a 10a 1a 12a 13b t 0b 1 1b 1 2b 1 3 _ _ a 2 ,oa 2 1a 2 2 j a :,a f _ b 2 0 b 。 b s 2b :a 、 _ ! 三l b s 0b 3 1b 3 2b y 3 a 3oa a 1a 3 2 a 3 3 2 1 2 3 行移位s h i f t r o w s 图2 - 4s 盒变换示意图 s h i f t r o w s 步骤是一个字节换位步骤,它将状态中的行按照不同的偏移进行移位:第0 行保持不变, 第1 行循环左移1 位,第2 行循环左移2 位,第3 行循环左移3 位,如图z 一5 所示。 a o oa o 1a o 2 a o 3 a 1oa 1 1a 12a 13 a 2 oa s 1a s 2 a 2 3 a 3 oa 3 1a 3 2a 3 3 2 1 2 4 列混淆m i x c o l u m n s a o oa o 1a o 2 a o 3 a 1 1a 12a 1 3a 1o a s ,2 a 2 3 a s oa 2 1 a 3 3 a 3 oa 3 1a 3 2 图2 - 5 行移位示意图 m i x c o l u m n s 步骤是将状态的列看作是g f ( 2 8 ) 上的多项式。并与一个设定的多项式c ( x ) 相乘 从而得到相应的结果,如图2 6 所示。 a o oa o 1a o 2a o 3 a 1oa 1 1a 1 上 a 13 a z ,oa z a 2 2a z 3 a 3 oa 3 1a 3 ,2a 3 3 2 2a e s 加密算法实现 b o 0b 0 1b o 2b o 3 b 1 0b 1 1b 1 2 b l ,3 b 2 0b 2 1b 2 ,2b 2 3 右丽面 b 3 2b 3 3 图2 - 6 列混淆示意图 本加密卡采用查找表( l u t ) 实现s - b o x ,并实现了圈函数中的所有步骤。为了提高时钟频率,在圈 函数中的“关键路径”中加入了寄存器。其功能仿真图如图2 7 所示。 东南大学硕士学位论文 023 4567 2 t 2 2 。r 厂 几厂 厂 厂 厂 厂 广 厂】厂 广 厂 厂 。厂 。厂 铆二二豆刁二二二二二二二二二二二二二二二二二二二 岫w 二二1 z 二二二二二二二二二二二二二二二二二二二二二 帅一二二二二二二二二二二二二二二二二二二二二二1 2 2 z 图2 7a e s 算法仿真图 当“l d ”信号有效后,读入密钥( k e y ) 和明文( p l a i nt e x t ) 。在其后的2 0 个周期完成l o 轮变换, 最终的密文数据( e n c r y p t i o nt e x t ) 在2 1 个周期之后有效。完成一次数据加密大约需要1 5 0 u s 。 采用a l t e r a 公司的e p i c l 2 0 2 4 0 c 8 芯片,用q u a r t u si i4 0 编译工具得到的编译结果如表2 - 1 所 示。 表2 - 1a e s 加密算法编译结果 6 第三章硬盘数据加密模式选择 第三章硬盘数据加密模式选择 3 1 加密模式简介9 1 分组密码模式是利用分组密钥解决实际问题的方案。好的加密模式可以弥补分组密码的某些缺陷: 相反,不好的加密模式可能带来安全隐患。 加密模式主要分为两大类:非反馈模式( n o n - - f e e d b a c k n f b ) ,例如电子密码本模式( e l e c t r o n i c c o d eb o o k ,e c b ) ,计数器模式( c o u n t e r ,c t r ) :反馈模式( f e e d b a c k ,f b ) ,例如密文区块链结模式( c i p h e r b l o c kc h a i n i n g ,c b c ) ,密文反馈模式( c i p h e rf e e d b a c k c f b ) ,输出反馈模式( o u t p u tf e e d b a c k o f b ) 。 在非反馈模式中,每个明文分组可以被独立地加解密,能够充分利用硬件实现上的并行性;在反 馈模式中,只有等待前一个分组加密的结果,才能进行下一个分组加密。 3 1 _ 1 反馈模式 使用反馈模式,每个分组的加密结果依赖于前一分组加密信息的结果。并且,如果其中某一分组 的信息修改,后面所有分组的加密信息都必须依次修改。 本文仅介绍c b c 模式加密方法说明反馈模式中的加密信息之间的依赖关系。 c b c 模式中,分组信息加密前,必须与前一分组加密后的结果进行“x o r ”操作。对于第一个分组, 必须提供一个初始向量( i n i t i a l i z a t i o nv e c t o r ) 。c b c 模式加密过程如图3 - 1 所示。 3 1 2 非反馈模式 3 1 2 1e c b 模式 啊立文 老直密文 图3 - 1c b c 模式加密过程示意图 e c b 加密模式是加密模式中最简单的加密模式。需要加密的信息分成独立的多个加密块,对每一 块信息进行单独加密,加密过程如图3 - 2 所示。 苇 一 嚣i 薷于 东南大学硕士学位论文 口 工 口口 工工 口l l _ l l l l u tt 口1 士皿口工士皿口 i 血 3 1 2 2c t r 模式 图3 - 2e c b 加密过程示意图 c t r 加密模式将分组加密模式“流式化”。密文的生成依赖于对“c o u n t e r ”的信息加密。c t r 模式 加密过程如图3 3 所示。 c a - t 盯c o u m 膏+ 1 密文1密主2 图3 3c t r 加密过程示意图 采用c t r 模式进行数据加密有如下优点: a ) 加密部分的运算不依赖于具体的明文,而只是依赖于计数器( c o u n t e r ) 的值,从而可以将繁琐 的加密运算预先处理。 b ) 加密数据可以随机访问,并不像反馈模式,加密数据的访问必须从第一个分组数据开始。 c ) 对于明文长度不是分组长度整数倍的信息,不需要额外数据的追加。 d ) 只需要实现加密部分,c t r 模式下加解密过程相同。 3 1 2 3e c b 模式和c t r 模式的比较 为了比较e c b 模式和c t r 模式的加密效果,用c 语言对同一张b m p 格式的图片进行e c b 和c t r 两种 模式加密,加密效果如图3 - 4 所示。左边为原始图片,中间为e c b 模式下加密后的图片,右边为c t r 模式 下加密后的图片。显然,从使用e c b 模式进行加密的图片中,仍然能够清晰看出“东南大学计算机科 学与工程”的字样,而从使用c t r 模式进行加密后的图片,却什么都看小出来。 8 第三章硬盘数据加密模式选择 图3 4 加密效果对照图 3 2 硬盘数据加密模式的选择 硬盘数据是以扇区( 每个扇区一般为5 1 2 字节) 为单位存放。如果将整个硬盘的数据以反馈模式 如密,则每次对某一扇区的写操作时,必须将该扇区后的所有的数据重新计算并写入硬盘,显然操作 相当繁琐。所有的反馈模式加密方法不适合对整个碗盘数据进行加密。 非反馈模式e c b 模式加密效果不理想安全性不够高。 该硬盘加密卡使用c r r 模式进行数据加密,模式中的1 2 8 位“c o u n t e r ”由以下信息组成: a ) 4 8 位l b a 地址。硬盘中的每一个扇区都有一个唯一的l b a 地址进行对应。硬盘读写之前必 须首先设置硬盘中的l b a 地址寄存器,从而保证在使用加密卡传输数据前,能预先获得正确的计数器 值。 b ) 8 0 位用户密钥信息,它从用户提供的1 2 8 位密钥中抽取得来。 9 大算学程 卜臼li斗南计科工 东学机与 东南丈学硕士学位论文 第四章a t a 硬盘加密卡的设计与实现 4 1a t a 硬盘接口协议简介眦m “1 a t a ( a d v a n c e dt e c h n o l o g ya t t a c h m e n t ) 接口,也叫i d e ( i n t e g r a t e dd r i v e e l e c t r o n i c s ) 接口,是 指把控制器与盘体集成在一起的硬盘驱动器。现在p c 机使用的硬盘大多数都是a t a 接口兼容的。 在p c 系统中,硬盘存储设备属于i o 设备,不是直接与系统中央总线连接的而是和紧接在p c i 总线后的a t a 总线相连。硬盘存储设备与a t a 总线接口芯片相连,而接口芯片与a t a 总线连接。a t a 总 线接u 芯片组成了硬盘存储设备与系统总线的桥,在系统总线协议( p c i 或a t a ) 与i o 设备协议( 如 i d e 或s c s i ) 之间进行翻译使硬盘存储设备可以独立于系统总线协议。 a t a 硬盘接口有四种传输模式:寄存器模式、p i o ( p r o g r a m m o d i o ) 模式、d m a ( d i r e c tm e m o r ya c c e s s ) 模式和u l t r ad m a 模式( 简称u d m a ) 。寄存器模式主要用于传输a t a 命令。p i o 模式的晟大弊端是耗用大 量的中央处理器资源,一次传输只能传输一个1 6 b i t s 数据。以p i o 模式运行的a t a 接口,数据传输率 达3 3 m b s ( p i o m o d eo ) 至1 6 6 6 鹏s ( p i o m o d e4 ) 不等。d 姒模式分为s i n g l e m o r dd m a 及m u l t i w o r dd m a 两种,跟p i o 模式的最大区别是:d m a 模式并不用过分依赖c p u 的指令而运行,可达到节省处理器运行 资源的效果。s i n g l e - w o r dd m a 模式的最高传输率达8 3 3 临s ,m u l t i - w o r dd 姒( d o u b l ew o r d ) 则可达 1 6 6 6 惦s 。d m a 模式很快被u d 姒模式取代了。u d m a 优点是它除己拥有d m a 模式的优点外,更应用了 c r c ( c y c l i cr e d u n d a n c yc h e c k ) 技术,加强了资料在传送过程中侦错及除错方面的效能。目前已发展到 u l t r aa t a 1 0 0 ,其传输速度高达1 0 0 船s 。 使用a t a 接口访问a t a 硬盘最常用的命令如表4 1 所示。 表4 - 1 常用命令列表 c o m “ h o c o o ep r 0 1 0 c o l d e v l ceres e t 0 8 hd i c r o t f l u s hc a c he e7hnon - d a t f l u s hc c hee x te hn o n - d t i de n t i f yde v l c ee c hp 1 0d a t a i n i dl ee 3 hno n d a t m l o l ei e d i t ee 1hno n - d t re dd m c 8 hd m r e domext2 5 b d h a re dmul t i p l e c 4 hp 1 0d i - i n re d ul t l pl ee x t 2 目hp 1 0d a i - l n re ds e ct 0r l s 2 0 hp 1 0d i 一l n re ds e ct o r f s ) e x t24hp 1 0d t a i n re dv er l f yse c t 0r s i4 0 hn 0 n d i a re dv er i f y8 c t o r ( s le x t 42hn0 n d a i o see k 7 0 hn o n - d a i a 3 e tf e t u r e 8 e f n0 n - d 任 s e tmul t i p l em o d ec 6 hno n a a di a s t n db ye 2 hn o n d a t a s t n dbyl m me d 慷t ee 0 hn o n d wr i t ed m c h 0 u w r i t edmext 3 5 h0 m wr i t em ul t l pl e c 5 h p 1 0d t aot w r i t eh ul t i pl ee x t 3 9hp i od a i a o u l w r l t es e c t 0r i s l3 0 hp 1 0d a l u t 1 q 第四章a t a 硬盘加密卡的设计与实现 在系统机器启动之后h o s t 首先会向d e v i c e 发送d e v i c er e s e t 命令,设置d e v i c e 为默认状态。 此后,h o s t 会向d e v i c e 发送i d e n t i f yd e v i c e 命令,询问d e v i c e 的设备信息( 包括型号,序列号等) 、 数据传输方式信息等。h o s t 在获得d e v i c e 的信息后,使用s e tf e a t u r e s 命令合理设置和d e v i c e 之间 传输数据的方式。d e v i c e 以后的命令处理都是以最近一次s e tf e a t u r e s 的命令的参数为参考。肛a d d m a r e a dm u l t i p l e 分别是采用d m ai n 和p i o 方式读取d e v i c e 数据。w r i t ed a m r i t em u l t i p l e 分别 是采用d m ao u t 和p i o 方式向d e v i c e 写入数据。显然如果实现加密卡功能,除i d e n t i f yd e v i c e 命 令中传输的数据不需要解密外,其他使用p i o 或d m a 传输方式的传输的数据都需要加解密处理。 下文中,“h o s t ”指的是i d e 控制器芯片,一般集成在主板上。“d e v i c e ”指的是i d e 硬盘中的设备 控制芯片。 4 2 加密卡设计框图 a t a 硬盘加密卡i i 代采用1 2 8 b i t s a e s 加密算法,并采用了c t r 加密模式。在“c o u n t e r ”得知的情 况下,加密数据可以预先算好,硬盘数据进行传输的时候,只需和“c o u n t e r ”的加密数据进行异或操 作即可获得最终的硬盘加密数据,从而提高了硬盘加密卡的加密数据传输效率。a t a 硬盘加密卡的整体 框架如图4 i l 所示 图4 一l 加密卡系统框架图 硬盘加密卡主要由c o m m a n dp a r s e 、d m ar e a dc o n t r o l 、d m aw r i t ec o n t r o l 、p i or e a dc o n t r o l 、 p i o w r i t ec o n t r o l 、b u f f e r 、c r c 、a e se n g i n e 以及p o s t p a r s e 等模块组成。系统时钟可以达到1 3 0 删z 。 c o m m a n dp a r s e 模块解析h o s t 端通过寄存器传输方式传输过来的命令类型( d m a p 1 0 ) 、传输等级、 传输个数等信息并使能各种命令处理模块进行相应的操作。同时控制a e s 加密模块生成加密数据。 东南大学硕士学位论文 d m ar e a dc o n t r o l 模块主要处理d m ar e a d ( o x c 8 ) 命令。在接收到c o c k , l a n dp a r s e 模块发出的使能 信号后,该模块伪造h o s t 读信号将d e v i c e 端的数据读取到缓存中,并将缓存中的数据通过伪造的d e v i c e 读信号将数据发送给真正的h o s t 端。 d m aw r i t ec o n t r o l 模块主要处理d m aw r i t e ( o x c 9 ) 命令。在接收到c o m m a n dp a r s e 模块发出的使 能信号后,该模块伪造d e v i c e 写信号将h o s t 端的数据存储到缓存中,并将缓存中的数据通过伪造的 h o s t 写信号将数据发送给真正的d e v i c e 端。 p i or e a dc o n t r o l 模块主要处理p i or e a d ( o x c 4 ) 命令。在接收到c o m m a n dp a r s e 模块发出的使能 信号后,该模块识别出每个p i or e a d 数据传输,并将传输数据和“c o u n t e r ”的加密数据进行异或操作 后传输。 p i ow r i t ec o n t r o l 模块主要处理p i ow r i t e ( o x c 5 ) 命令。在接收到c o m m a n dp a r s e 模块发出的使 能信号后,该模块识别出每个p i ow r i t e 数据传输,并将传输数据和“c o u n t e r ”的加密数据进行异或 操作后传输。 b u f f e r 模块缓存输入、输出数据。加密卡采用两个缓存模块分别处理d m ar e a d 、d m a 职l t e 命令。 b u f f e r 模块采用“f u l l ”和。e m p t y ”信号通知数据读写方b u f f e r 的状态,以及采用“r e a d d o n e ”和 “w r i t e d o n e ”通知读写方读写完成。 c r c 模块计算h o s t 端和d e v i c e 端之间传输的数据的c r c 检验值以及“c o u n t e r ”的加密数据的c r c 校验值。 a e se n g i n e 模块实现采用c t r 加密模式的1 2 8 位a e s 加密算法。a e se n g i n e 模块中还集成了密钥 获取模块,用于从外部密钥设备中获取1 2 8 位的用户密钥。 p o s tp a r s e 模块根据各个处理模块的处理情况,设置正确的数据总线和控制信号。 a t a 硬盘加密卡的具体信号连接如图4 2 所示。 图4 2 加密卡信号连接示意图 第四章a t a 硬盘加密乍的设计与实现 4 3p i o 加密传输的设计与实现 a t a 协议中的p i o 数据传输方式比较简单,传输速度比较慢,即使在最高传输等级下,也需要大约 2 d o n s 才能传输一次数据。因此在1 3 0 m h z 的系统时钟下,处理模块可以识别出每一次p i o 数据传输,并 进行相应的处理。 4 3 1p i or e a d 处理模块 在p i or e a d 进行传输数据之前h o s t 设置l b a 地址扇区个数等寄存器,最后明确d e v i c e 端准备 就绪后,设置命令寄存器。h o s t 端通过设置d i o r 信号为低电平,通知d e v i c e 端p i op e a l ) 的开始,d e v i c e 端在协议规定时间内将数据放置数据总线,h o s t 端设置d i o r 信号为高电平,同时读取总线上的数据, 从而完成一次p i or e a d 的数据传输过程。 该模块主要的功能是将总线上传输的数据和。c o u n t e r ”的加密数据进行异或后,传输给h o s t 端 控制状态图如图4 3 所示。 在c o - t m a n dp a r s e 模块使能该模块之前,该模块处于“i d l e 。状态。在使能信号有效后该模块进 入。r e s e t ”状态,同时将该模块中的控制信号设置为默认值。在d i o r 信号为低电平时。该模块进入。p r e ” 状态,向a e s 加密模块请求“c o u n t e r ”的加密数据。在得到有效“c o u n t e r ”的加密数据后,该模块状 态变换为“c t r l ”,将加密数据和总线上传输的数据进行异或操作,再把结果传输给h o s t 端。在d i o r 信号为高电平时,该模块进入“e n d ”状态,说明此次数据传输结束,模块回到“b e g i n ”状态,等待下 一次数据传输。 4 3 2p i ow r i t e 处理模块 图4 - 3p i or e a d 控制状态图 在p i ow r i t e 进行传输数据之前,h o s t 设置l b a 地址,扇区个数等寄存器,最后明确d e v i c e 端准 备就绪后,设置命令寄存器。h o s t 端通过设置d 1 0 1 信号为低电平通知d e v i c e 端p i o w r i t e 的开始,并 将数据放置在数据总线上,d e v i c e 端在协议规定时间内准备好总线数据读取h o s t 端设置d i o w 信号为 高电平同时d e v i c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论