(通信与信息系统专业论文)基于usb的软件保护技术研究与系统设计.pdf_第1页
(通信与信息系统专业论文)基于usb的软件保护技术研究与系统设计.pdf_第2页
(通信与信息系统专业论文)基于usb的软件保护技术研究与系统设计.pdf_第3页
(通信与信息系统专业论文)基于usb的软件保护技术研究与系统设计.pdf_第4页
(通信与信息系统专业论文)基于usb的软件保护技术研究与系统设计.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

华中科技大学硕士学位论文 摘要 软件的安全性设计是软件开发当中极其重要的一部分,近些年来,人们开始越 来越重视对软件的保护,各种技术手段得以蓬勃发展,本文通过对常见软件保护技 术的分析,提出了一个新的解决方案u s b 软件狗。 本文的第二部分,首先对密码学的概念和原理傲了简单的阐述,并且详细论述 了两种经典的密码算法d e s 和r s a 的具体过程。通过对密码算法的分析,为软件狗 数据的安全传输提供了理论保证。 在本文的第三部分,从系统的体系结构、数据传输以及协议层三个方面,对 u s b i 1 规范做了详细的介绍,为后面的系统设计提供了技术支持。 在本文的第四部分是u s b 软件狗的设计和实现。首先给出了u s b 软件狗的总体 设计思路,并设计出了系统的硬件电路。设计重点和难点是软件的设计,为了使软 件的设计更加简单和清晰,本文从软件实现的功能不同分为三个子模块:加密算法 的实现、u s b 通信模块的设计和d o g i d 的读写。其中u s b 通信模块的设计涉及到u s b 主机驱动程序和设备端固件程序两个方面,是本文重点介绍的部分。 最后,对全文做了总结,并针对本系统在安全性方面存在的问题提出了进一步 的思索。 关键词:软件保护u s b 软件狗密码学d e s 华中科技大学硕士学位论文 a b s t r a c t t h es e c u r i t yd e s i g no fs o f t w a r ei so n eo ft h em o s ti m p o r t a n tp a r ti nt h e s o f t w a r ed e v e l o p m e n t 。i nr e c e n ty e a r s ,p e o p l eh a dh i g hr e g a r df o rs o f t w a r e p r o t e c t i o nm o r ea n dm o r e ,a n di ta p p e a r e ds om a n yk i n d so fs c h e m ef o rs o f t w a r e p r o t e c t i o n 。i nt h i sp a p e r ,b ya n a l y z i n gs o m eg e n e r a lp r o t e c t i o n 。w ep u tf o r w a r d an e ws c h e m e u s bs o f t d o g 。 i nt h es e c o n dp a r to ft h i sp a p e r ,w ed i s c o u r s et h en o t i o na n dc o n c e p t o fc r y p t o l o g ya tf i r s t ,t h e ne x p o u n dt w oc l a s s i c a lc r y p t o g r a p h i ca l g o r i t h m 一 一d e sa n dr s a 。b ya n a l y z i n gt h e s ec r y p t o g r a p h i ca l g o r i t h m ,i tp r o v i d e st h e t h e o r e t i c a lg u a r a n t e ef o r t h es e c u r et r a n s m i s s i o no fs o f t d o g sd a t a 。 i nt h et h i r dp a r to ft h i sp a p e r ,w ee x p o u n dt h eu s b l 1c r i t e r i o nf r o m t h r e ea s p e c t s ,t h e ya r ea r c h i t e c t u r eo fs y s t e m 、d a t at r a n s m i s s i o na n d p r o t o c o l l a y e ro fu s b 。t h o s es e n t e n c ep r o v i d et e c hs u p p o r tf o rt h ed e s i g no fu s b s o f t d o g 。 t h ef o u r t hp a r ti sd e s i g na n di m p l e m e n tt h eu s bs o f t d o g 。i nt h i s p a r t , w ep r o v i d et h eo v e r a l ld e s i g na n dd e s i g nt h eh a r d w a r e dc o n n e c t i o no fs y s z e m 。 t h e nw ed e s i g nt h es o f t w a r e ,t h a ti st h ee m p h a s i sa n dn o d u so ft h i s s y s t e m d e s i g n 。s ow ed i v i d ei n t ot h r e ed if f e r e n tm o d u l e :t h ea c h i e v em o d u l e o f c r y p t o g r a p h i ca l g o r i t h m 、u s bc o m m u n i c a t i o nm o d u l ea n dr e a dw r i t i n gd o g i o m o d u l e 。t h ed e s i g no fu s bc o m m u n i c a t i o nm o d u l ei n v o l v ew i t hd r i v e rp r o g r a m o fu s bh o s ta n df i r m w a r eo fu s bd e v i c e ,iti st h ee m p h a s i so fs o f t w a r ed e s i g n 。 i nt h ee n do ft h i sp a p e r ,w eg i v et h es u m m a r y ,a n dt h i n km o r ed e e p l yf o r t h es a f e n e s so ft h is s y s t e m 。 k e yw o r d s :s o f t w a r ep r o t e c t i o nu s b s o f t d o gc r y p t o l o g yd e s 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他 个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集 体,均己在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:诤涵j 痔 日期:,i ,o 年年年月蹈日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有 权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和 借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存利汇编本学位论文。 保密口,在年解密后适用本授权书。 本论文属于 不保密区 ( 请在以上方框内打“”) 学位论文作者签名:谢i 毛i 南 指导教师签名: 易危唱 华中科技大学硕士学位论文 1 1 软件保护的意义 1 绪论 随着计算机的不断普及和发展,以计算机为代表的信息技术已经渗透到我们f _ i 常生活的方方面面,给人们带来了极大便利的同时,也彻底改变了人们的生活方式, 很难想蒙,一个不懂计算机的人怎么在未来的信息礼会生存下去。软件是汁算机的 灵魂,足软件开发人员集体劳动和智慧的结品,是一个知识密集型的商品。它制作 复杂,研制周期长,然丽软件的非法复制:点j :j 。j 分容易,如果软件用户使川未经授权 的软件,软件企业就无法获得合理的收入和叫报,也就无法生存和发展。删此f j j 】强 软件的傈护,防止盗版,足我们不得不花大力气解决的重要问题”1 。 对计算机软件的保护应从以下两个方面进行。第个方丽就足依靠困家的法律 进行知识产权保护,另一方面是从技术手段设计符合安全要求的软件产r u i 。从理沦 上说,儿乎没有破解不了的保护。对软件的保护仪仪靠技术是不够的,而这最终要 靠人们的知识产权意识和法制观念的迸步以及生活水平的提商。软件知汉广:权保护 体制是一种在开发商、销售商、和软件用户在软件的开发、传播和使j h 过程中协调 和平衡各个有关方面之f i | 利益的机制。在一个法制健全和公众知谚 产权意 = 强的困 度,软件丌发商甚至不必从技术上对软什进行任何保护,可以依靠人们的自觉和,” 格的法律保护就可以保证软件像其它商品一样在市场上销售,这当然是一种比较理 想的保护方式。但鉴于我围软件产业起步比较晚,相关法律法舰还不很健命,而日 公众的知识产权意识不强的情况,要加强软件的保护力度,从技术层而上设计安全 可靠的软件是完全必须的o ”。 1 2 常见的软件保护技术概况 软r :保护的纂本形式足对软件加密变换,软件血! 密般仃以卜三t f i j l 方法: 华中科技大学硕士学位论文 外壳式:通过把一段加密代码附加在需加密的软件上,在软件执行时,加密代 码首先执行、检查是否有程序在跟踪,如果没有再检查“密钥”是否存在,存完令 没有错误的情况下,再去执行原来那个软件。这种方法的优点是不必对源代码进行 修改,缺点是,一旦外壳被解密,软件就什么保护都没有了。 内含式:修改源程序。在软件中嵌进对加密代码的调用,最后。j 加密代 i 5 一起 编译连接而成。这种方法虽然比较可靠,但也容易被跟踪。主要在软件狗和加密卜 上使用。 结合式:把外壳式和内禽式结合起来,取长补短,互相检查”。 国内外对软件保护的各种技术和实施方案有着广泛的研究,并已分别形成成熟 的产i 锗。从软件保护的方式来看,基术土二可以分成两种,一种足纯粹用软什实现, 不需要特定的硬件,这种方式俗称软加密,常见的软加密方法有密码表加密、序列 号加密和许可证加密:另一种要依赖特定硬什才能实现软件的加密保护我们称之为 硬加密,常见的有磁盘加密、加密卡和软件狗。这里我们详细的讨沦一f 这= 弹 硬 加密方案。 1 2 1 磁盘加密 根据存储介质的不同,磁盘加密又t 1 j 以分为软盘加密和光盘加密。软盘加密址 计算机上最为占老的一种加密方案,它的原理是在软箍的特殊何冒1 ;入一些信息, 软件在运行时要检验这些信息。这种软盘就好像一把钥匙。软件) f 发商只需次投 资购买一套加密工具就可以自己制作多张钏匙捅:。此方法加密简单,成奉低。但t j 户在执行软件时必须插入此软盘,丽软盘是种易损载俅,反复读艋极易造成软船 的损坏。 光盘加密的原理是利用特殊光盘的母舷上某些特征信息不可再现的特性来实 现。这些特征信息大多足光盘上非数据性的内容,在光盘复制时复制不到的地方。 对母盘上写入特殊的标记,运行时通过检验这些标电是否i l i 确而验证软件的h j 靠性。 这种加密方案足一次性的投入对于人胤模的生产这种加i 密方案可以将成本降得很 低。1 f i i 且软件数据和加密在州一载体j :,刈f j ,无疑足很疗便的。似是i 【 于加密 华中科技大学硕士学位论文 式所限,不可能在用户自己刻录的光盘上实现这种加密,必须是生产线上生产的光 盘才能够实现。这对于一些小规模的软件生产厂商还是有一定困难的,而且由于光 盘的只读性,一旦加密有错是无法修复的。 1 2 2 加密卡 卡加密的好处是由于加密卡上面不仅仅可以存放数据,而且可以用硬件实现简 单的算法,而且在软件的执行过程中可以随时访问加密卡,不会对软件运行的速度 带来太多的影响,而且由于加密卡是与计算机的总线交换数据,数据通讯协议完全 由卡的厂家制定,没有统一的标准接口,让软件解密者有无从下手的感觉。但这种 加密方案需要打开计算机的机箱,占用扩展槽,般还需要专门的人员来安装。另 外,由于加密卡设计上的某些问题,还很容易同现有的硬件发生冲突。考虑到成本, 加密卡必须要批量生产,厂商一般不会对低价值的软件一下投入这么大的资金。由 于种种问题,这种加密技术现在已经难得一见了。 1 2 3 软件狗加密 软件狗加密是在国外首先出现的,它是一个插在计算机打印口上火柴盒大小的 设备,国外称“加密锁”。在软件狗内部存有一定的数据和算法,计算机可以与之 通讯来获得其中的数据,或通过软件狗进行某种计算。软件无法离开软件狗而运行。 由于它不像卡加密那样需要打开计算机的机箱来安装,但又像加密卡那样可以随时 访问,而且访问速度很快,所以一经推出就受到软件开发者们的青睐。目前,所有 的软件狗都提供了可编程的接口。用户可以控制软件狗中的内容,在程序中通过软 件狗的接口任意访问软件狗。国外软件狗一般仅提供若干种算法,但好的软件狗不 但可以向客户提供加密算法,也容许客户根据自己的意愿自定义加密算法,容许客 户自定义用户i d 号。但软件狗也是有一定欠缺的,由于软件狗利用的是计算机的打 印口,而打印口原来是为打印机而设计的,软件狗一方面要保证用户加密操作的正 确,同时也要保证打印机工作的正常。但由于打印机驱动程序设计上千差万别,没 有任何一家的软件狗能够完全做到这一点i 。 3 华中科技大学硕士学位论文 1 2 4 三种硬加密方法的比较 以上三种硬加密方法各有优劣之处,其特点如袁卜1 所示: 表i - i三种硬件保护特性比较表 磁盘加密加密卡软件狗( 锁) 成本低高较低 易安装性不需安装复杂容易 使用方便性不方便方便方便 可靠性一般稳定稳定 读写速度慢快快 系统开销判别时需插盘占扩展槽和地址空间并行口( 或u s b 口) 产品盘备份不能可以可以 兼容性稍差最好 较好 由表可知,软件狗技术与其它两种加密技术相比,是个既经济又相当可靠的 软件保护方式。一种好的软件加密保护技术,其关键在于不易让人破译复制和判读 的可靠性,另外还要保证软件的兼容性。这个道理是显而易见的。如果密钥很容易 被复制,加密也就没有什么用了,如果对密钥的判读,有时正确。有时不正确或 者在一台机器上可以工作,但在另一台机器上不能工作,这就达不到加密的目的 了对用户也有很大的损害。软件的兼容性是指,不能为了达到加密的目的而使 得软件本来在某种条件下可以运行,加密后却不能运行了。而软件狗在加密的可靠 性、防破解能力、使用的方便性和兼容忭等方面都有着明显的优势,也是近些年来 研究的热点。 1 3 本文的主要工作 传统的软件狗通过在并行口上附加一定的电路实现,而并行口本身的特点限制了 传统软件狗技术的进一步发展。由于并行口本身没有电源线,所以传统的并行口软 件狗都是通过各种“偷电”技术从数据线或控制线获得软件狗电路所需的电源,其 电路必须选用规模不大的低功耗元器件,只能采取简单的加密方式对软件进行合法 性检查,因此加密强度不高“1 。另外,由于并行口是为连接单个设备设计的,在连接 4 华中科技大学硕士学位论文 多个设备时很难避免冲突,因此传统的并行口软件狗必须仔细考虑与打印机之间的 兼容问题。特别是对一些非标准接口的并行口设备,就更难解决冲突问题。寻找更 加适合的接口取代并行口已是迫在眉睫的问题。 u s b 是在1 9 9 4 年底由c o m p a q 、i b m 、m i c r o s o f t 等多家公司联合提出的一种连接 外部设备的新型的通用串行接口技术,它具有真正的即插即用和热插拔功能,理论 上可支持多达1 2 7 个不同外设的同时连接。u s b 接口本身具有电源线,可为外设提供 稳定可靠的工作电源,从而对u s b 软件狗所用元器件的工作电压、功耗等的要求大 大降低,软件狗的工作条件得到很大改善,更容易实现复杂、灵活的设计和电路的 微型化。由于i j s 8 是为连接多个设备而设计的,有着严格的规范,从接口本身避免 了设备间的冲突,只要遵循u s b 接口规范,u s b 软件狗不但不会对别的u s b 设备产生 影响,也不会受到别的u s b 设备的影响。u s b 接口即插即用的特点也使得u s b 软件狗 的使用更加方便。另外,由于u s b 规程的复杂性,客观上也导致了破解u s b 软件狗 比一般的软件狗困难很多。因此,与并行口相比,u s b 接口更适合软件狗技术。 本文就是将u s b 接口技术和软件狗技术成功的结合在一起,以设计加密强度高、 使用便利、兼容性更强的u s b 软件狗。 华中科技大学硕士学位论文 2 加密算法及研究 2 1密码学的基本概念 密码技术,如加密技术和身份认证技术,是实现软件安全服务的霞要基础”1 ,本 章主要介绍用于解决软件安全的一些密码技术,包括序列密码体制、对称密码体制 和公钥密码体制以及它们在软f ,i :安全中的应用。 2 1 1 基本术语 所谓数据加密是指为了在公共信道中保证安全的传输数据( 我们称为叫文) ,采 取将明文转换成不能识别的乱码( 我们称为密文) ,存不安全的信道q | 进行传输,而 在接收端则将密文还原成明文”1 。具体过程如2 一l 图所示。 l ! | | 2 - i 密码系统信息流稗酬 我们将明文变换成密文的过程称为加密,f i i 将密文还原成原始明文的过程则称 为解密。加密和解密通常是两个相关的函数,我们称之为密码算法,或者赢接叫做 密码。密码学就是研究和设计密码算法的科学。1 。 明文用m ( 消息) 表示,它是比特流( 文术文件、位图、数字化的语裔流或数字 化的视频图像) ,在计算机上则表示为二进制数据。密文用c 表示,它也是一二进制数 据。加密函数e 作用于m 得到密文c 川数学表示为: f ( m ) = c , 相反地,解密函数d 作用于c 夕:生m : d ( c ) = m 6 华中科技大学硕士学位论文 先加密后再解密消息,原始的明文将恢复出来,下而的等式必须成立: d ( f :( m ) ) = m 如果算法的保密性是基于保持算法的秘密,这种算法称为受限制的算法。受限制 的算法具有历史意义,大多古典密码算法如移位密码、替代密码和乘积密码等都属 于此类。它们的算法是不可公丌的,只能在小范i 目秘密地使用不利于大规模的推 广和形成标准化产品。 现代密码学采取基于密钥的密码算法,解决了这个问题。密钥用k 表示。k 可以 是很多数值晕的任意值。密钥k 的可能值的范围叫做密钥空间。加密和解密运算都 使用密钥( 即运算都依赖于密钥,加密时用下标k i 表示,解密用k 2 表示) ,这样, 加解密函数现在变成: e 。,( m ) = c d 。( c ) = m 同样的,下面的等式必须成立: d 。( e 。( m ) ) = m 加密密钥k l 和解密密钥k 2i u 以拥同,也可以不问。当两行棚同时,我们称之 为对称密码;不同则称为公钥密码。 2 1 2 对称密码 对称密码有时又叫传统密码算法、私钥密码算法或单钥密码算法,它的特征是加 密和解密的密钥是一样的或相址容易推,如图2 2 所示。 幽2 - 2 对称算法图 为了提供机密性,一个对称密码的一i :作流程如下:假定a 和i j 是两个要求秘密通 信的系统。安全通信之前,a 和b 通过某种力式获得个兆享的秘密密钥,浚密钏j i 有这两者知道,其他人均不知道。a 或i ;通过使用浚绑钥加密发送给刘方消息以实现 华中科技大学硕士学位论文 机密性,只有对方可以解密,而其他人均无法解密消息。 对称密码的加密和解密表示为: b ( m ) = c d 。( c ) = m 对称密码的关键是密钥的管理和分发。因为对称算法的安全性完全依赖1 :密移j , 泄漏密钥就意味着任何人都能对消息进行加解密。j 要通信需要保密,密 ;j 就必须 保密。 对称密码可分为两类。一次只对 埘文r l 的单个比特( 有时对字节) 运算的算法 称为序列密码或流密码。另一类算法是对明文的一组比特进行运算,这些比特组称 为分组,相应的算法称为分组算法或分组密码。 2 1 3 公开密钥算法 公丌密钥算法的思想不同一j :常规的对称密切算法,其核心是即向陷门丽数的心 用,主要特点是加密和解密使用不同的密钥,每个j i j 户保存着一对密钏。公丌密 钥f k ( 简称公钥) 和私人密钥s k ( 简称私钥) ,两肯不能互干h 推导。 j 户公钥可以 发布出去,只要保障私钥的安全即可。公蛰j 和私钥的关联性在于用公钥加密的信息 只能用私钥解密,反之办然。 公j i :密钥算法可以简化峦钥的管理,井i i 可以通过公j i :系统如公丌日录服务束 分配密钥。 公j j :密钥密码体制有两种基本的模型,一种是加晰模型。如图2 - 3 所示。 b 的公钥b 的私钥 蚓2 - 3 加密模刑 假定存在一个包含个通信方的公钥的公丌日录,那么任何一方部可以使川这蝗 密钥向另一方发送机密信息。其乳体方法足发送者奄f h 接收者的街倒f :f i i 使川该甯 钥加密消息。只有捌有i 薹 密钥的接收并才能解读消息。 8 华中科技大学硕士学位论文 另一种足认证模型,如图2 - 4 所示。 a 的氍钏 a 的公铷 恻2 - 4 认证模删 通过将公开的密钥用作解密密钥,公开密钥算法可以用于数据起源的认证,并 可确保信息的完整性( 比如数字签名等) 。在这种情况下,仃何人均可以从| i 录i i i 歌 得解密密钥,从而可解读消息。只有拥有相应私人密钥的人才能产生该消息”。 所有这蝤算法的安全性都摹于密钥的安令性;而不是基j :算法的细节的安个。陀。 这就意味着算法可以公升:,也可以被分j ! j i - ,可以大疑生产使用算法的产f 钠,即使偷 听者知道你的算法也没有关系:如果他小知道你使心的具体密钥,他就不一u 能蒯读 你的消息。 2 2 常见的密码算法 现在密码学中应用展著名的两个密码算法大概就足d e s ( 数据加密标准) 和r s 了,前糟是美国围家标准局n b s 予1 9 7 7 年公劬j 的,足分斜【密码i ,的一组”“:j ,i 行 是1 9 7 8 年山美国麻省理工学院的r lr i v e s t 、a s h a m f 和m a d l w m a n 共m 提束 的,它足基于数沦的公钥密码算法“。_ 卜而就分别对肌st ;f | ii _ s a 进行l t 细的介绍。 2 2 1 数据加密标准d e s 美困国家标准局1 9 7 3 年丌始研究除吲防 f f 外的其它部门的计算机系统的数抛j i i 密标准,于1 9 7 3 年5 ,j1 5r 和1 9 7 4 年8 月2 7 同先后两次向公众发出了l :求加密 算法的公告。加密算法要达到的目的( 通常称为d e s 密码算法要求) :e 要为以下叫 点: 1 ) 提供廓质量的数据保护,舫j j :数蜘未经授权的 j | 露和术被察觉的修改; 2 ) 具有相当高的复杂性,使得破译的,r 销超过可能获得的利懿,同时义鹱使j : 理解和掌握; 9 华中科技大学硕士学位论文 3 ) d e s 密码体制的安全性应该不依赖于算法的保密,其安全性仅以加密密钥的 保密为基础; 4 ) 实现经济,运行有效,并且适用于多种完全不同的应用。 1 9 7 7 年1 月,美国政府颁布:采纳i b m 公司设计的方案作为非机密数据的正式 数据加密标准( d e s 即d a t ae n c r y p ti o ns t a n d a r d ) “。 d e s 是分组乘积密码,它用5 6 位密钥将6 4 位的明文转换为6 4 位的密文。其中 密钥总长为5 6 位,另外8 位为奇偶校验位0 5 ”1 。 d e s 的加密算法( 同时也可用于解密) 如图2 - 5 所示。通过初始换位i p ,首先 将输入的二进制明文块t 变换成t o = i p ( t ) 。然后t 攫过1 6 次函数,的迭代,最后 通过逆初始换位i p - 1 表分别参看表2 - 1 的( a ) 和( b ) 。 表2 - 1 初始换位i p 和逆初始换位i p 5 8 5 01 23 4 6 05 24 43 6 6 25 44 63 8 6 4 5 64 84 0 5 74 94 13 3 5 95 14 33 5 6 15 34 5 3 7 6 35 54 73 9 2 61 8l o2 2 8 2 01 24 3 0 2 2 1 46 3 2 2 41 68 2 51 791 2 71 91 13 2 92 l1 35 3 1 2 31 57 ( a ) i p( b ) i p l 在最初和最终换位之问,是结合代替和换位的函数,的1 6 次迭代。令t 表示第 i 次迭代的结果,令l 和r ,分别表示t 的左半部分和右半部分,即:t = l + r ,此处 l 2i - i t 2 。t r 、。t t 3 t “ 两次相邻的迭代之间的关系是 l = r h r = l 。o f ( r 。,k ) 其中0 表示“异或”操作,k 是下面即将讲到的4 8 位子密钥。从图2 - 5 中我们注意 到: 1 0 砣n凹勰拍笛矾舒配n趵弱卵弭捣笼殂加拇埔弱$h驺铊虬如钞 坫坫b 他n m 0锝钾铂钙舭钙铊4 8 7 6 5 4 3 2 1驺弼”弘弱弘弘 华中科技大学硕士学位论文 在最后一次迭代之后,所得结果的左、右半部不再交换,而是直接将r ,。l l 。送到 i r l 的输入端,这样做的原因是为了使加密和解密使用同一个算法。 l - _ - - _ 一 i ! 一 圈2 - 5 d e s 加密算法框图 函数,( r “,k 。) 的结构如图2 - 6 所示。首先用位选择表e ( 参看表2 - 2 ) 将r 扩展成4 8 位二进制块e ( r 。) ,即r 。= r n r 。e ( r ,) = r 。r ;r 。r ,l r ,。r 然后对e ( ) 和k 。进行“异或”操作,并将其结果分成8 个6 位二进制块b 。, b 。,此处: 一 h 华中科技大学硕士学位论文 e ( r 。一。) o k 。= b - b z b s f ( r i 1 ,k d 图2 - 6f ( r “,k - ) 的计算 每个6 位子块b ,都是选择( 代替) 函数s ,的输入,其输出是一个4 位二进制块s 。( b j ) 。 把这些子块合成3 2 位二进制块之后,用换位表p ( 如表2 - 3 所示) 将它变成: 表2 - 2 位选择表e 3 2l 45 89 1 21 3 1 61 7 2 02 1 2 42 52 62 72 82 9 2 82 93 03 13 2 表2 - 3 换位表p p ( s ( b ;) s 。( b 。) ) 这就是函数,( r 一k ) 的输出。每个s 将一个6 位块b 。= b i b :b 。bb i b 。转换为一 个4 位块的规则如表2 - 4 所示,与b 山。楣对应的整数确定表中的行号,与b 出。b 。b ;相 1 2 0 0 n 趴 衢 0 8 挖 珀 加 孔 0 , l 三 拎 船 : 6 m m 协 毖 华中科技大学硕士学位论文 对应的整数确定表中的列号,s ,( b ,) 的值就是位于该行和该列的整数的4 位二进制表 示形式。 表2 q 选择( 代替) 函数s 列 行012345 67891 01 11 21 31 41 5 01 441 31 21 5l l831 061 25 907 101 5741 421 31i 061 21 1 9538 2411 481 3621 11 51 297 31 050 31 51 28249l751 l31 4l o 061 3 01 5181 461 1349721 31 2 o5l o 131 3 4 71 5281 41 20li 0 695 201 47l l1 041 3l581 269 321 5 31 38l ol31 5421 l6 71 2051 49 01 0o91 4631 55l1 31 27l l 428 。1 1 3709346t 02851 41 21 l1 5l 21 364981 530l ll21 251 01 47 3l1 01 30698741 51 43l lj21 2 071 31 430691 0l2851 11 241 5 。 11 38l l561 5034721 211 01 49 2l o6901 2l l71 31 5l31 45284 331 5061 0l1 389451 11 272 1 4 021 24l7l ol l68j3l j1 301 41 l 。 l1 41 1 21 2471 31501 51 03986 242l 1 11 01 3781 591 25 h: 0 1 4 31 181 271 1 421 361 5091 0453 01 2ll o 1 5926801 3341 475儿 。 ll o1 54 271 2956l1 31 4ol l38 291 41 552 81 237041 011 3 儿6 34321 29 51 51 01 11 4l76081 3 041 121 41 5081 3 31 2975l o6l 。 11 30i 174 9ll o1 4351 221 5 86 2l41 li 31 2371 41 0 1 5680592 36“1 38i 4l o79501 51 4231 2 01 32846 1 51 111 0931 4501 27 。 111 51 3 81 03741 2561 101 492 “7 271 14l91 21 420 61 01 31 5358 3211 474 l o81 31 51 290356 制块 华中科技大学硕士学位论文 k l如 图2 - 6 子密钥k i 的计算 其中8 位是奇偶校验位,分别位于第8 ,1 6 ,6 4 位。予密钥换位函数p c l 把这些奇偶校验位去掉,并把剩下的5 6 位进行换位,如表2 5 所示。换位后的结果 p c l ( k ) 被分成两半c 和d ,各含2 8 位。令c 。和d 。分别表示推导k i 时所用的c 和 d 的值,有以下的变换公式: 表2 - 5 子密钥换位表p c l表9 - 6 子密钥换位表p c 一2 5 74 94 13 3 2 51 79 15 85 04 2 3 42 61 8 l o25 9 5 1 4 3 3 52 1 91 136 0 5 24 4 3 6 6 35 54 73 93 12 31 5 76 25 44 6 3 83 02 2 1 466 15 3 4 5 3 72 9 1 41 71 12 415 32 81 562 11 0 2 31 91 242 68 1 672 72 01 32 4 15 23 13 7 4 75 5 3 0 4 05 14 53 3 4 8 4 4 4 9 3 95 63 45 3 c = l s ( c 。) d = l s 。( d 。一,) 此处l s t 是循环左移l 位变换,其中l s ,、l s :、l s 。和l s 。是循环左移1 位变换,其余 的l s 。是循环左移2 位变换。c o 和d 。是c 和d 的初始值,假如k = k ;k :。k 。 显然,c 。= k ;,k 。k 。k 。d 。= k 6 3 k ;k :k ;。最后,通过子密钥换位函数p c 一2 ( 参看表2 - 6 ) 得出k : k ;= p c 一2 ( c ,d 、) 1 4 幸爿 母 母 华中科技大学硕士学位论文 解密算法和加密算法相同,只不过第次迭代时用予密钥k t e ,第2 次迭代时用 k 。,第1 6 次迭代时用k ,这是因为最终换位i p - 。是初始换位i p 的逆变换, 且 r i - = l l 。= r 。0 ,( l 。,k t ) 2 2 2r s a 算法 r s a 算法以其发明者r l r i v e s t 、a s h a m i r 和m a d l w n m n 的名字来命名,它的 建立利用了如下的基本事实:寻找大素数是相对容易的,而分解两个大素数的积是 计算上不可行的“”。 r s a 算法的数学基础是数论中的欧拉定理,该定理描叙如下: 若整数a 和n 互素,则 a “11 ( m o dr 1 ) 其中由( n ) 是比n 小但与n 互素的正整数的个数,称作欧拉函数“。当p 为素数时: 巾( n ) = p l ;当n = p 木q ,且p 和q 为互不相同的素数时,有如下公式成立: 士( n ) = 巾( p ) 木巾( q ) = ( p 一1 ) 掌( q 1 ) r s a 算法密钥对的产生过程如下: 1 ) 随机产生两个大素数p 和q 。 2 ) 计算r l = p 丰q ,巾( n ) = ( p i ) ( q 1 ) 。 3 ) 选取一个正整数e ,使得p l 和q l 都与e 互素,即:g e d ( e ,巾( n ) ) = l 。 4 ) 计算正整数d ,使之满足公式:d e l ( m o d 由( n ) ) 。 在以上数据项中模n 和指数e 是公钥,应该公布出去;而模n 和秘密指数d 构 成私钥,由用户自己妥善保存。一旦计算出私钥d ,这两个素数p 和q 就不再需要, 应该丢弃,不要让任何人知道。 r s a 算法是一种分组密码系统。加密时,首先将明文表示成从0 到n l 之间 的整数,如果明文太长,可将其变为n 进制数的形式,即令m = + m 。n + + 。n ”1 十j f 【。n 5 ,然后分别加密( ,m 、,m 。,m 。) ,得出密文( c 。, c ,c 。,c ,) 。加密公式是: c ! e ( m ) ! m 。( m o dn ) 华中科技大学硕士学位论文 解密时。已知密钥d ,通过以下公式 即可恢复明文: d ( c ) gc 6 ( m o dn ) 此算法的正确性已经得到证明“”,这单不再累赘。 r s a 算法是一个可逆的公毫h 密码算法,它不仅i 圹以作为加密算法使j ,而且可以 用作数字签名和密钥分配与管理。r s a 的安全性依赖于大数分解,从。一个公钥和密 文推断出明文的难度等同于分解两个大素数的积。 2 2 3o e $ 算法和r 融算法的比较 d e s 算法作为现有的商业和民用加密标准,有着很多好的特性,如:安全t i :高, 到目前为止,除了用穷举搜索法对d e s 算法进行攻击外,还没有发现更有效的办法; 运行占用空问小,1 j n 解密速度快,在一般微机上i l j 以达到l o m s 级的j j j l 解密速度, 在专用处理芯片更可高达1 g b it s 。 d e s 算法的主要缺点是密钥的管理和分配比较圈难。i l i 于算法的安全性主要依靠 对密钥的保护强度来决定,而对于两个未知实体之问要进行秘密传输的情况卜,如 何保证双方在传输前建立秘密信道束传输密钥的问题就显得相当棘于,通常情况下 需要第三方的参与才能够完成。 与d e s 算法相比,r s a 算法由0 :在加密和解密时使f j 了两个升i i 司的密钏,个密 铡用于公前i 出去,只需保护好私钥即可,极人的简化了密钥的管理和分配。 r s a 的缺点主要有:a ) 产生密钥很麻烦,受到素数产生技术的限制,因而难以做 到一次一密。b ) 分组长度太大,为保证安全怍,n 至少也要6 0 0b il s 以f :,使运算 代价很高,尤其是速度较慢。 2 3 小结 综合d e s 和r s a 算法各自的优缺点在实际的应用t j i ,可以采j 目两者的组合。 本文中采用d e s 算法加密数据。d e s 算法的密钥由系统随机产! l ,足保密的,这样就 保证了算法的安全可靠。 1 6 华中科技大学硕士学位论文 3u s b 协议简介 3 1 通用串行总线u 鞠概述 u s b 全称u n i v e r s a ls e r i a lb u s 即通用串行总线1 。u s b i 1 规范是1 9 9 8 年由 i n t e l 、c o m p a q 、i b m 、n e c 、m i c r o s o f t 等七家公司共同制定的新一代串行接口标准, 它给计算机外围设备提供了快速、双向、同步、动态连接且价格低廉的串行接口。 提出u s b 主要有三个目的:一是使安装使用设备更加容易:使用u s b ,几乎所有的中 低速设备都可以用相同的电缆和接头与p c 相连,即使是不懂得硬件知识的人也可以 安全的安装和使用u s b 设备,u s b 所具有的即插即用特性更是体现了它的便捷。二 是扩展u s 8 的i o 能力;从理论上讲u s b 最多可以支持1 2 7 个外设,总带宽达1 2 m b s , 可以满足几乎所有的中低速设备的要求,如果用户想增加一个外设,只需将它插到 某个h u b 的一个端口即可。三是支持声音和压缩影像等实时数据的传输;这为集成 语音电话等功能提供了一个简单的途径,这也是u s b 将得以发展的个重要因素, 可以支持u s b 的外设十分广泛,比如鼠标、键盘、游戏杆、显示器、扫描仪、打印 机、麦克风、数字相机等等。“。 以下简单介绍u s b i 1 协议的一些主要要求“”,从u s b 系统、u s b 的数据传输和协 议层三个方面来分别介绍。 3 2 u s b 系统概述 一个u s b 系统主要被定义为三个部分:u s b 的互连、u s b 的设备和u s b 的主机“。 u s b 的互连是指u s b 设备与主机之间进行连接和通信的操作,主要包括总线的拓 扑结构、通信各层的任务和相互关系、数据流模式和当主机和多路u s b 设备通信时 带宽的分配。总线拓扑结构是u s b 设备与主机之间的连接方式,数据流模式则描述 1 7 华中科技大学硕士学位论文 了数据在系统中通过u s b 从产生方到使用方的流动方式。 3 2 1 总线布局 u s b 连接了u s b 设备和u s b 主机,u s b 的物理连接是有层次性的星型结构。每个 网络集线器是在星型的中心,每条线段是点点连接。从主机到集线器或其功能部件, 或从集线器到集线器或其功能部件,从图3 - 1 中可看出u s b 的拓扑结构。 3 t i e r4 图3 1总线的拓扑结构 3 2 2 u 接口的物理层 u s b 的物理接口包括电气特性和机械特性。 u s b 传送信号和电源是通过一种四线的电缆,如图3 - 2 ,其中d + 和d - 是一对差 v b u s d _ 卜 d g n d v b u s d + d g n d 幽3 - 2u s b 的电缆 模的信号线,是用于发送信号。电缆中另外两条线v b u s 、g n d 向设备提供电源,v b u s 使用+ 5 v 电源给总线供电。u s b 集线器中d + 和d 一通过下拉电阻接地,在连接外围设 备时,存在两种数据传输率:d + 通过上拉电阻接v b u s 时,u s b 的高速信号的比特率 一。 1 8 华中科技大学硕士学位论文 定为1 2 m b p s ;d - 通过上拉电阻接v b u s 时,低速信号传送的模式定为1 5 m b p s 。 插头与插座有a 系列和b 系列,a 用于基本固定的外围设备,而系列b 用于经 常拔插的设备,这两个系列是不能互换的,u s b 标准提供这两个系列的机械尺寸和特 性。 3 2 3 电源的分配和管理 主要包括两方面: 电源分配:即u s b 的设备如何通过u s b 分配得到由主计算机提供的能源; 每个u s b 单元通过电缆只能提供有限的能源。主机对那种直接相连的u s b 设备 提供电源供其使用。并且每个u s b 设备都可能有自己的电源。那些完全依靠电缆提 供能源的设备称作“总线供能”设备。相反,那些可选择能源来源的设备称作“自 供电”设备。而且,集线器也可由与之相连的u s b 设备提供电源。 电源管理:即通过电源管理系统,u s b 的系统软件和设备如何与主机协调工作。 u s b 主机与u s b 系统有相互独立的电源管理系统。u s b 的系统软件可以与主机的 能源管理系统结合共同处理各种电源事件如挂起、唤醒,并且有特色的是,u s b 设备 应用特有的电源管理特性,可让系统软件控制其电源管理。 3 2 4 t l s b 设备的结构 u s b 设备分包括集线器和功能部件。集线器提供u s b 的连接点,功能部件为主机 提供了具体的功能。为了进一步的叙述,我们给出以下定义。 端点:每一个u s b 设备在主机看来就是一个端点的集合,主机只能通过端点与 设备进行通讯,以使用设备的功能。每个端点实际上就是一个一定大小的数据缓冲 区,这些端点在设备出厂时就已定义好。在u s b 系统中每一个端点都有唯一的地址, 这是由设各地址和端点号给出的。每个端点都有一定的特性,其中包括传输方式、 总线访问频率、带宽、端点号、数据包的最大容量等等,端点必须在设备配置后才 能生效( 端点0 除外) 。端点0 通常为控制端点,用于设备初始化参数等,端点i 、2 等一般用作数据端点,存放主机与设备问往来的数据。 管道:一个u s b 管道是驱动程序的一个数据缓冲区与一个外设端点的连接,它 1 9 华中科技大学硕士学位论文 代表了一种在两者之间移动数据的

温馨提示

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

评论

0/150

提交评论