(教育技术学专业论文)软件资源保护系统的设计与实现.pdf_第1页
(教育技术学专业论文)软件资源保护系统的设计与实现.pdf_第2页
(教育技术学专业论文)软件资源保护系统的设计与实现.pdf_第3页
(教育技术学专业论文)软件资源保护系统的设计与实现.pdf_第4页
(教育技术学专业论文)软件资源保护系统的设计与实现.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

(教育技术学专业论文)软件资源保护系统的设计与实现.pdf.pdf 免费下载

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

文档简介

捕舞 摘要 近些年来,人们开始越来越重视对软件的保护0 软件开发者除了采用法 律手段保护自己的利益外,还应着重从技术上采取手段保护自己的知识声_ = j 杈,其方法就是采用软件加密技术。软件狗是一种基于硬件的软件保护技术。 传统的软件狗通过在并行口上附加一定的电路实现,而并行口本身的特点限 制了传统软件狗技术的进一步发展。同时,目前市场上已有的软件加密狗产 品大都存在加密强度不高的缺点。 本文通过借鉴前人的研究成果及对目前市场上的商业加密狗的技术分 析,结合自己的开发实践,详细阐述了将u s b 接口技术和软件狗技术成功 地结合在一起来设计加密强度高、使用便利、兼容性更强的u s b 软件加密 狗的有关内容通过研究发现,u s b 软件加密狗姆。p 主机的数据通信采尉 d e s 算法加密,并且结合对产品序列号及安装凑凝丽有效控制等措施可蛾构 成高强度的加密体系,从而有效地对抗破解。另外;,t 为了便于欺件开发商睫 用加密狗,本设计还提供了外壳工具。 本文第一章概述了软件保护技术及软件加密狗的有关知识;第二章对密 码学的基本概念和原理做了简单的阐述。通过对密码算法的分析,为软件加 密狗数据的安全传输提供了理论依据;在第三章详细分析u s b 总线规范和 技术特点,针对u s b 接口软件加密狗的设计,介绍了本系统中使用的u s b 接口控制芯片p d i u s b d l 2 的结构和技术参数i 第四章研究和论证了基于 u s b 的高强度软件加密方案,提出了具有创新性的高强度软件加密狗实现方 法,并针对目前的软件加密狗的破解方法,提出了几点反破解措施;第五章 详细叙述了u s b 软件加密狗硬件的设计,同时把单片机中的固件作为硬件 的重要组成部分,讨论了固件的功能。描述了其实现过程;第六章是本文重 点介绍的部分,按软件实现的功能不同分为几个模块:加密算法的实现、u s b 主机驱动程序的设计和应用程序的接口。 最后,对全文进行了总结,并针对本系统在安全性方面存在的问题提出 了进一步的探索。 关键词:软件保护;u s b 接口;软件加密狗;设计;p d i u s b d l 2 ; w d m 驱动程序 a b 啦r t 吐 a b s t i c t l nr e c e my e a r s ,p e 叩l eh a dh i 曲r e g a r df o rs o f h a r ep m t e c t i o nm o r e 蛐d m o r e f o rs o n 、憾d e v e l o p e 硌,f h e ys h o l d dt a k em et e d m o l o g yt op m t e c tm e i r i n t e 珏髓t i l a lp r o p e r 哆r i g h t s ni s 丘w a r ee n c r y p t i o nt e d h n o l o g y _ t r a d m o n a l s o f 【w a r ed o gw o r k s 也r o u 曲也ea d d i t i o i “c i 融m 啪d e rp a 谢l e li n t i 耐殛e ,眦 p a m i l e li m 吖f a c ci i m i t s 吐i 屺6 l r t h e rd e v e l o p i n e 玳o f 订a d 憾o n a l 舳,龃e t e c t l r i o l o g i e sd o g sh 骘a u s eo fi t sc h a r a c t e r i 吐k s a t 也es 鼬et i i n e ,m o s to ft h e s o 小a r cd o gi n 出em a r k e ta tt h ep r e 船n th v es h o n i m i n g st l l a t 瓤cn o th i g h i n t 鼬s i 移 i nt h i s 删c l e ,t b cw r i 蕾e rl l a s 陀a r c h e dt t i ep r c d e c c s r f sr e s 砌lr 唧l t s a i l da l l a l y z e d 也ec o 衄e k i a le n c r y p 曲nd o gi nl h ep m 辩mm a r k e 括b j l s e do n o w nd e v c l o p m 吼tp m c t i c e ,ie l a b o r 疵dm em l a t c dc o n t e n ta t ,o u tt h e 如a e r y p t i o nd o g 惭c hd e w l o p c db ys u c 辐矗l l l yi n t e l 驴t e u s bi m e 觑c t e c h n o l o g y 粕dt i l es o r 袱i r ed o gt e c h l o 舒nh 嬲量l i 曲c d 傅i o ni n t c l l s i t ) , c o 咀啪i e n c e 柚dn l cs t 啪g c rc o m p a t i b i l i 够i nt l 圮c o l 眦o fm e ”3 e a 雎hi th 嬲 b nd i s c o v 鄂e dt l 斌i f t l 掂u s b n w a 陀c 瑚p t i o nd o gc o 咖瑚i c 跚s 稍t 圭lt h c p c h o s t b y l l s i i l g t h e d e s a 培喇蜘曲c r ) ,i p t i o n ,a n d 曲j 匆i 唱t o t i 把m 吼s m es u c h a sp m d u c ts e q u e r l c cn 啪b c ra i l di n s t a l l s 咖m b 暑ro ft i 嗍跚ds oo n ,i tc a i l c o m t i t i l t ct h eh i g hs t m n g m c r ) 审t i s y s 舳,t l i 惦t 0r e s i s 担e 丘b c t i v e l yc r 解k e l m o r c o v e r ,i no r d e rt ob e8 d v 啦c 0 峭f 研t l l es o f h d e v e l o p c rt ou 辩 e 眦i y p t i o nd o g ,m i ss c h e m cl l a sa l s 0p f d v i d 耐n l eo u 把rc o w 曲唱t 0 0 1 1 nm e 丘培td 壕p t e ro f “sa i t i d e 也ew r i t 髓h 船n a m i t es o n l ek n o w l 姆 址矾n 仕峙s 0 矗p r o t e c t i o nt e d m d l o g ya n dt h es o n w a r ed o g t h c 辩c d c h a p t c ti nm i sa n i c l eh a sm a d e1 h es i i n p i ee l d b o 擅t i o nt ol h ec r y p t o l 9 9 yc o n c 印t 矗n d 也ep 械n c i p l e i tb 鹤p v i d 树垃t l 砖o r yg l 墒臆m o e 柚 o mh o wt h ed a l c 媳n s m i 豁i o nw o r ks e 嘣l yb e t 惭tt h e f t _ 釉r ee n c q 砸o n d o g 姐d 也eh o s it h 砒 8 n a t y s i s i n g 也ec r y p 协a 1 9 0 水嘀i n 也i r dc h 8 m e r 出ew 血盯h 丛蹰| a l y z e du s b b u ss t 踟证l a r da n dt e d :l i d c a ld 均埔l c 把r i s t ka n di n 舡。由l c e dt i 碹s t “蛇眦缸d t c c h n i c a lp a 舳e t c 墙o f t l l ec l l i pp d i u s b d l 2t l l a t 啪c o n t r o iu s bi n t e 晌c e 髓t 0 a b 或m c i d e s i g nu s b s o f t w a r ce n c 叮p t i o nd o g t l 砼f b u “hc h a p t e ri n t h e 薯l l i sa n i c l ei l 船 咖d i e d 姐de x p o m l d c dt l l eh i g hs 订e n 雩衄s o f t w a r ee n c i p l 砖胁锄ts c h e m e 蛳 b j l s e do n 幽eu s bi n t e r f h c e 柚dp f o p o s e dar 雠1 i 刎o nm e t l 】i o df b rs o f h j a 】陀 e n c r y p d o nd o gt h a th a sc r e a t i v e n e s sa i l dh i g h 曲瑚1 9 t 1 1 t h e 、砸t e i a i s 0p m p o s e d s o m em c t l l o dt op r e t c c tm es o 矗w a 糟e n c r y p t i o nd o g 蕾b md 呻t i o n i nt h e 丘f t h c k 哦盯t l l ew r i t e th 踮i nd 砌l 磁毗瞰e d 也eu s bs o n w a r ce n c r y 砸衄d o g t l 王哪h ,a r e d e s i g na i l d 嗽【i 髓t i o n ,m 联m w h i l e h et o o km cf i 期州憾i n m m o c o m p t l t e ri n t c g r a t c d 嘶ac i f c l l i t 船m eh l 叫w a mt l l ei m p o i t a i l tc 0 删删 h ed i s c 啦s o d l 吧矗瑚埘脚ef h n c t i o n ,蹰dd e 矗b e di t s 砌i z a t i p c 鹳s s i x t h c l l a p l 盯i st h em o s “m 】p 0 咖l ti nt l l i sp 印既d 鹏t ot h e 纳哪r ed i m 鹏n tf l l n c 廿o n t l l eh i g hs o n w 孤i n c l u d e 靶删m o d i i l e s :t h ee n c r y p t i o na i g o r i 出mr e a l i 黜畸, 吐垃u s bh o s t 埘v 盯d 舔i 弘a n dn 地i i i t e 响c ep r o g r a mf o ra 坤拄c a t i f i n a l l y ,m e 唧r i t 廿h a s 眦d e m c 蛐栅a r y t o t h c 氕1 1 l t c 甜强d 珥o p o 辩t h e f i l 舳t i l i i l l d n gn l 砒a i m o d 缸t h 孟s 碍蜘t h eq 雌s 曲n 、l l i c he x i s t e di nt h e c u 托 础删 - 研w o s :s o 觚玳p m 妣t i 帆u s b d e s 咖,s o 丘w 批e i l c r y p t i o nd o g , p d i u s b d l 2 w d md r i v e r i 第l 乖概述 第1 章概述 随着计算机技术的飞速发展及其在现代社会中越来越广泛的应用,社会 对软件的需求越来越大。与硬件一样,软件也是一种商品,具有一定的市场 价值。但由于计算机软件信息存储形式的是数字信号而不是模拟信号,因此, 计算机软件的特点就在于它的易复制性,复制后的软件与原版软件几乎分毫 不差的,而不会象音像磁带复制后会出现信号衰减或产生干扰噪声。盗版软 件的出现,正是利用了这一特点。目前我国的软件保护法制还很不健全,人 们的法制观念也比较淡薄,于是一些不法分子便瞄准了这个市场,而软件开 发商对软件加密的忽视恰恰给了不法分子可乘之机。可是,毕竟软件是软件 开发设计人员智慧的结晶。如果商品软件被太规模地非法复制盗版,将严重 影响版权所有者的合法利益。深远一点说,商业软件被大规模非法盗版现象 得不到有效遏制,必然严重影响软件行业的健康发展。为此,如何保护软件 的知识产权,越来越成为软件丌发商关注 x 第l 章概述 使复制了也无法得到完整可用数据。 ( 2 ) 防非授权安装使用,主要是在非授权的情况下用户即使得到软件 完整文件也无法安装使用。 ( 3 ) 防恶意分析攻击。软件一经售出,程序文件就在使用者手中,需 要防止使用者恶意分析软件以实现非法复制。 ( 4 ) 数据访问控制,用户在使用过程中对数据应有不同的访问权限, 禁止越权访问用户数据。 对于可实现的软件加密方法现今的软件加密方法多种多样,已经不可 能找出一种分类方法把各种加密方案很好的区分开来大体可以分为以下几 种方式: l 欺盘加密 软盘加密的原理是在软盘的特殊位置写入一些信息,软件在运行时要检 验这些信息。这种信息就好像一把钥匙,软件开发商只需一次投资,购买一 套加密工具就可以自制多张钥匙盘。此方法加密简单,成本低。但用户在执 行软件时必须插入此软盘,而软盘是一种易损载体反复读盘极易造成软盘 的损坏。 2 卡加密 卡加密的好处是由于加密卡上面不仅可以存放数据,而且可以用硬件实 现简单的算法。在软件执行过程中可以随时访问加密卡,不会对运行速度带 来太大的影响。但这种加密方案需要打开计算机的机箱,占用扩展槽。一般 还需要专门的人来安装,而且加密卡还可能同现有的硬件发生冲突。 3 软件狗加密 软件狗加密开始的形式是一个插在计算机打印口上火柴盒大小的设备。 在加密狗内部,存有一定的数据和算法,计算机可以与之通讯来获得其中的 数据,或通过加密狗进行某种计算。软件无法离开加密狗雨运行。由于它不 像卡加密那样需要打开计算机机箱来安装,但又像卡加密那样可以随时访 问,而且速度很快,所以一推出就受到软件开发者的青睐,很快成为了当今 世界上主流的加密方案。 4 光盘加密 2 第l 常概述 随着光盘的普及,光盘已经替代软盘成为海量数据的载体。因为光盘有 i s 0 6 6 0 标准协议规定,其可控制性比软盘还要严格,想找出一种只能运行 不能复制的方式确实很困难。但现在确实已经有几家这样的产品出来了,而 且加密方法也不尽相同。由于加密方式所限,在用户自己刻录的光盘上不可 能实现这种加密,必须是生产线上生产的光盘才能实现。这对于小规模的软 件生产厂商还是有一定困难。而且,出于光盘的只读性,一旦加密有误,光 盘将不能更改或修复。 s 密码表加密 在软件运行的开始,要求用户根据屏幕提示内容输入特定的答案,答案 往往是在用户手册上的一份防复印密码表中。用户只有输入正确密码后才能 运行程序。这种加密方案实现简单,不需要太多成本。 6 序列号加密 这种加密方式从某种角度来讲不是一套完整的加密方案,如今很多共事 软件大多采用这种加密方式。用户在软件的试用期是不需要交费的,一旦试 用期结束还希望继续使用这个软件,就必须到软件公司进行注册。软件公司 根据用户提交的信息来生成一个序列号,当用户收到这个序列号以后,并在 软件运行时输入进去。软件会验证用户的名字与序列号之间的关系是否正确 如果正确,说明用户已经刚买了这个软件,也就没有使用同期的限制了。 7 许可证加密 这种方式可以说是序列号加密的一个交种。用户从网上下载或购买过来 的这种软件并不能直接使用。软件在安装或运行时会对用户的计算机进行检 测,并根据检测结果生成个特定指纹。这个指纹可以是一个小文件,也可 以是一串谁也看不懂的数。用户需要把这个指纹数据通过网络、邮件、电话、 传真等方式送到开发商那里,开发商再根据这个指纹给用户个注册码或注 册文件。用户得到这个注册码或注册文件后,并按软件要求的步骤完成注册 过程方能使用该软件。 第l 章概述 1 2 基于u s b 接口的软件加密狗概述 软件加密狗是安装在计算机外设接口上的硬件电路以及一套适用于各 种语言的接口软件和工具软件。当被保护的软件运行时,程序向插在计算机 上的加密狗发出查询命令,加密狗迅速计算、查询并给出响应,正确的响应 能保证软件顺利运行。如果没有加密狗,程序就不能运行。加密狗基于硬件 加密技术,其目的是通过对软件与数据的加密防止软件知识产权被非法使 用。 随着软硬件技术的发展,加密狗技术也经历了四次换代。目前第四代加 密狗大量采用微处理器和e e p r o m 器件,实现主机和加密狗间以特定的方 式进行数据交换,同时采用多种加密算法和多层次加密,以提高其应用的灵 活性和抗破解能力。传统的软件狗通过在并口上附加一定的电路实现,而并 口本身的特点限制了传统软件狗技术的进一步发展。由于并口没有电源线, 所以传统的并口软件狗都是通过备种“偷电”的技术从数据线或控制线获得 软件狗电路所需要的电源,其电路必须选用规模不大的低功耗元器件。在负 载能力很低的并行口上,并行口软件狗难以保证正常工作。由于并行口是为 连接单个设备设计的,在连接多个设备时难免冲突传统的并行口软件狗必 须仔细考虑与打印机之间的兼容性问题特别是对于一些非标准接口的并行 口设备,就更难解决冲突问题。这些都使并行口软件狗的发展受到很大限制。 u s b 是在1 9 9 4 年由c ( h n p a q 、i b m 、m i 啪s o f t 等多家公司联合提出的 一种连接外部设备的新型的通用串行接口技术,它具有真正的即插即用和热 插拔功能,理论上可支持多达1 2 7 个不同外设的同时连接。如果将软件加密 狗与p c 机的接口由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 接口即插即用的特点也使 4 第1 章概述 得u s b 软件狗的使用更加方便。另外,重要的是出于u s b 规程的复杂性, 客观上也导致了破解u s b 软件狗比一般的软件狗困难很多。因此,与并行 口相比,u s b 接口更适合软件狗技术。 事实上,u s b 软件加密狗是u s b 接口技术与第四代软件狗技术结合的 产物,与其他接口类型的软件狗相比具有明显优势:( 1 ) u s b 的数据传输速 度快,u s b l 1 协议定义的u s b 全速设备的速率为1 2 m b p s ,u s b 2 0 定义的 高速设备可达4 8 胁p s 。( 2 ) u s b 的底层数据传输具有特定的打包方法和编 码格式,这样就增加了加密数据在传输过程中被截获及解密的难度。( 3 ) u s b 设各的热插拔、即插即用的特性极大地方便了用户的使用。免除了用户开机 箱和重启动的麻烦。 在当今中国市场上最主要的加密狗品牌有:( 1 ) 美国彩虹公司( 也是最 早做硬件加密的公司) 的品牌“圣天诺软件加密狗”:( 2 ) 阿拉丁的“h a s p ” 系列加密狗:( 3 ) 德国威博公司的“、b u k e y ”加密狗;( 4 ) 深思洛克 的“深思加密狗”;( 5 ) 蓝宇风公司的“金盾加密狗”;( 6 ) 飞天公司的 “r o c k e y ”加密狗等几个主要品牌。 以上加密狗品牌的工作原理郡是大同小异:被保护的软件与加密狗之间 形成一一对应的关系,被保护的软件在运行的过程中不断通过其a p i 函数向 加密狗发指令来判断加密狗是否存在,软件离开保护狗不能运行。 1 3 本文的主要内容及研究重点 传统的软件狗通过在并行口上附加一定的电路实现,而并行口本身的特 点限制了传统软件狗技术的进一步发展。同时,目前市场上已有的软件加密 狗产品大都存在加密强度不离的缺点。本文就是将u s b 接口技术和软件狗 技术成功的结合在一起,以设计加密强度高、使用便利、兼容性更强的u s b 软件加密狗。 本文的主要内容: ( 1 ) 提出了一种基于u s b 接口的高强度软件加密狗设计方案。 第1 带概述 ( 2 ) 对u s b 总线体系的u s b 接口芯片加以总结,论述了u s b 接口 设备的开发方法。 ( 3 ) 对基于u s b 接口的高强度软件加密狗设计方案可行性加以论证。 ( 4 ) 阐述了u s b 软件加密狗硬件及圃件设计与实现过程。 ( 5 )论述了u s b 设备w d m 型驱动程序开发方法,结合实际开发工 具描述了软件加密狗驱动程序的设计过程。 ( 6 ) 介绍u s b 软件加密狗硬件软件设计与实现过程中实施的反破解 措施及实现细节。 本文研究的重点主要是: ( 1 ) u s b 接口数据传输及接口控制 研究u s b 接口数据传输及接口控制技术,目的是在充分认识u s b 接口 通信协议的基础上设计出更为高效的圆件和驱动程序,使u s b 软件加密狗 与p c 主机的信息交换更加稳定可靠。 ( 2 ) u s b 软件加密狗的整体加密方案的设计 u s b 软件加密狗的反破解性能很大程度上取决于加密狗系统采用怎样 的加密方案。因此,在目前成熟的标准加密算法基础上,结合u s b 软件加 密狗结构特点设计高强度的加密方案是本文研究的重点。 6 筘2 章加带算法技研究 d ( c ) = m 先加密后再解密消息,原始的明文将恢复出来,下面的等式必须成立: d ( e ( m ) ) = m 如果算法的保密性是基于保持算法的秘密,这种算法称为受限制的算 法。受限制的算法具有历史意义,大多古典密码算法如移位密码、替代密码 和乘积密码等都属于此类。它们的算法是不可公开的,只能在小范围秘密地 使用,不利于大规模的推广和形成标准化产品。 现代密码学采取基于密钥的密码算法,解决了这个问题。密钥用k 表 示。k 可以是很多数值晕的任意值。密钥k 的可能值的范围叫做密钥空间。 加密和解密运算都使用密钥( 即运算都依赖于密钥,加密时用下标k l 表示, 解密用l ( 2 表示) ,这样,加,解密函数现在变成: e k i ( m ) d l ( 2 ( c ) 爿m 同样的,下面的等式必须成立: d i c 2 ( e k l ( m ) ) = m 加密密钥k 1 和解密密钥k 2 可以相同,也可以不同。当两者相同时, 我们称之为对称密码,不同则称为公钥密码。 2 1 2 对称密码 对称密码有时又叫传统密码算法、私钥密码算法或单钥密码算法,它的 特征是加密和解密的密钥是一样的或相互容易推出,如图2 2 所示。 图2 - 2 对称密码 为了提供机密性,一个对称密码的工作流程如下:假定a 和b 是两个 要求秘密通信的系统。安全通信之1 i i ,a 和b 通过某种方式获得一个共享的 第2 章加神f 算法及研究 秘密密钥,该密钥只有这两者知道,其他人均不知道。a 或b 通过使用该密 钥加密发送给对方消息以实现机密性,只有对方可以解密,而其他人均无法 解密消息。 对称密码的加密和解密表示为: e k ( m ) = c d k ( c ) = m 对称密码的关键是密钥的管理和分发。因为对称算法的安全性完全依赖 于密钥,泄漏密钥就意味着任何人都能对消息进行加舾! 密。只要通信需要保 密,密钥就必须保密。 对称密码可分为两类。一次只对明文中的单个比特( 有时对字节) 运算 的算法称为序列密码或流密码;另一类算法是对明文的一组比特进行运算, 这些比特组称为分组。相应的算法称为分组算法或分组密码。 2 1 3 公开密钥算法 公开密钥算法的思想不同于常规的对称密钥算法,其核心是单向陷门函 数的应用,主要特点是加密和解密使用不同的密钥,每个用户保存着一对密 钥一一公开密钥p k ( 简称公钥) 和私人密钥s k ( 简称私钥) ,两者不能互 相推导。用户公钥可以发布出去。只要保障私钥的安全即可。公钥和私钥的 关联性在于用公钥加密的信息只能用私钥解密,反之亦然。 公开密钥算法可以简化密钥的管理,并且可以通过公开系统如公开目录 服务来分配密钥。 公开密钥密码体制有两种基本的模型,一种是加密模型。如图2 3 所示。 图2 3 加密模型 假定存在一个包含通信方的公钥的公开目录,那么任何一方都可以使用 9 第2 常抽l 晰算法厘i i j f 究 这些密钥向另一方发送机密信息。其具体方法是发送者查出接收者的密钥并 且使用该密钥加密消息。只有拥有该密钥的接收者才能解读消息。 另一种是认证模型,如图2 4 所示。 闺2 4 认证模楚 通过将公开的密钥用作解密密钥,公_ 丌密钥算法可以用于数据起源的认 证,并可确保信息的完整性( 比如数字签名等) 。在这种情况下,任何人均 可以从目录中获得解密密钥,从而可以解读消息。只有拥有相应私人密钥的 人才能产生该消息。 所有这些算法的安全性都基于密钥的安全性,而不是基于算法的细节的 安全性。这就意味着算法可以公开,也可以被分析,可以大量生产使用算法 的产晶,即使偷听者知道你的算法也没有关系,如果他不知道你使用的具体 密钥,他就不可能阅读你的消息 2 2 常见的标准密码算法 现在密码学中应用最著名的两个密码算法大概就是d e s ( 数据加密标 准) 和r s a 了。前者是由美国国家标准局n b s 于1 9 7 7 年公布的,是分组 密码中的一组:后者是1 9 7 8 年由美国麻省理上学院的r l m v e s t 、a s b 肋l i r 和m a d l w 咖共同提出来的,它是基于数论的公钥密码算法。下面就分别 对d e s 和r s a 进行详细的介绍 2 2 1 数据加密标准d e s 美国国家标准局1 9 7 3 年开始研究除国防部外的其它部门的计算机系统 的数据加密标准,于1 9 7 3 年5 月1 5 同和1 9 7 4 年8 月2 7f i 先后两次向公众 1 0 第2 帮加御算法殷l | 究 发出了征求加密算法的公告。加密算法要达到的目的( 通常称为d e s 密码 算法要求) 主要为以下四点: ( 1 ) 提供高质量的数据保护,防止数据未经授权的泄露和未被察觉的 修改; ( 2 ) 具有相当高的复杂性,使得破译的开销超过可能获得的利益,同 时又要便于理解和掌握; ( 3 ) d e s 密码体制的安全性应该不依赖于算法的保密,其安全性仅以 加密密钥的保密为基础; ( 4 ) 实现经济,运行有效,并且适用于多种完全不同的应用。 1 9 7 7 年1 月,美国政府颁布采纳i b m 公司设计的方案作为非机密数据 的正式数据加密标准( d e s 即d a t ae n c 呻d 鼬u l d a r d ) 。 1 算法框架 d e s 对6 4 ( b i t ) 位的明文分组m 进行操作,m 经过一个初始置换i p 置换成m o ,将m o 明文分成左半部分和右半部分m 0 _ ( k ,轧) ,各3 2 位长。 然后进行1 6 轮完全相同的运算,这些运算被称为函数f 在运算过程中数据 与密钥结合。经过1 6 轮后,左、右半部分合在一起经过一个末置换,这样 就完成了。 在每一轮运算中,密钥位移位,然后再从密钥的5 6 位中选出4 8 位。通 过一个扩展置换将数据的右半部分扩展成4 8 位,并通过一个异或操作替代 成新的3 2 位数据,在将其置换换一次。这四步运算构成了函数f o 然后,通 过另一个异或运算,函数f 的输出与左半部分结合。其结果成为新的右半部 分。原来的右半部分成为新的左半部分。将该操作重复1 6 次,就实现了。 具体图2 - 5 所示。 2 d e s 算法的过程: ( 1 ) 对输入的密钥进行变换。 用户的6 4 _ b i t 密钥,其中第8 。1 6 ,2 4 ,3 2 ,4 0 ,4 8 ,5 6 ,6 4 证是校验位,使得每个密钥都有奇数个l 。所以密钥事实上是5 6 位。对这5 6 位密钥进行如下表的换位。 第2 章加梆算 尘擞埘f 宄 5 7 , l o ,2 , 6 3 , 5 5 , 6 l ,5 3 , 4 9 , 4 l , 3 3 ,2 5 ,1 7 ,9 ,l ,5 8 , 5 0 ,4 2 ,3 4 ,2 6 ,1 8 , 5 9 ,5 l ,4 3 ,3 5 ,2 7 ,1 9 1 1 3 ,6 0 ,5 2 ,4 4 ,3 6 , 4 7 。3 9 ,3 i , 2 3 ,1 5 ,7 ,6 2 ,5 4 , 4 6 ,3 8 ,3 0 ,2 2 ,1 4 ,6 , 4 5 ,3 7 ,2 9 ,2 i ,1 3 ,5 ,2 8 , 2 0 ,1 2 ,4 , q 卫 ir 1 d = l 圩。f ( r m k l 6 )l 1 6 = r 1 5 一 医习 1 一 图2 5 d e s 算法框架 表的意思是第5 7 位移到第1 位,第4 9 位移到第2 位,以此类推。交换后 得到5 6 b i t 数据,将它分成两部分:c o 】【2 8 】、d 【o 】【2 8 】。 ( 2 ) 计算1 6 个子密钥,计算方法c i 】 2 8 1d 【i 】【2 8 】为对前个c m l 】【2 8 】, d 【i - 1 】口8 】做循环左移操作。1 6 次的左移位数如下表: 1 2 第2 章加姥算法坎研究 l ,2 ,3 , 1 6 ( 笫i 次) 1 ,l ,2 , 移位数) 4 ,5 ,6 ,7 ,8 ,9 ,l o ,1 1 ,1 2 ,1 3 ,1 4 ,1 5 2 ,2 ,2 ,2 ,2 ,1 ,2 ,2 ,2 ,2 ,2 ,2 ,l ( 寿 ( 3 ) 串联计算出来的c 【】【2 8 】d 【i 】【2 8 】得到5 6 位,然后对它进行如下变 换得到4 8 位子密钥k 【i 】【4 8 】 1 4 ,1 7 ,“,2 4 ,l ,5 ,3 ,2 8 。1 5 ,6 ,2 l ,1 0 ,2 3 ,1 9 , 1 2 ,4 ,2 6 ,8 ,1 6 ,7 ,2 7 ,2 0 ,1 3 。2 , 4 l ,5 2 ,3 l ,3 7 ,4 7 ,5 5 ,3 0 ,4 0 ,5 l ,4 5 ,3 3 ,4 8 ,4 4 ,4 9 , 3 9 ,5 6 。3 4 。5 3 ,4 6 ,4 2 ,5 0 ,3 6 ,2 9 ,3 2 , 表的意思是第1 4 位移到第l 位,第1 7 位移到第2 位,以此类推在此过 程中,发现第9 ,1 8 ,2 2 ,2 5 ,3 5 ,3 8 ,4 3 ,5 4 位丢弃。 ( 4 ) 对6 4 b t 的明文输入进行抉位变换。换位表如下: 5 8 ,5 0 ,1 2 ,3 4 ,2 6 ,1 8 ,l o ,2 ,6 0 ,5 2 。“,3 6 ,2 8 ,2 0 , 1 2 , 6 2 , 1 6 , 5 7 , l l , 6 l , 1 5 , 4 。 s 4 , 8 , 4 9 。 3 , 5 3 , 7 4 6 ,3 8 ,3 0 ,2 2 。1 4 ,6 ,6 4 ,5 6 ,艚,4 0 ,3 2 ,2 4 , 4 l 。3 3 , 2 5 ,1 7 ,9 ,1 ,5 9 ,5 l ,4 3 ,3 5 ,2 7 ,1 9 , 4 5 ,3 7 ,2 9 ,2 l ,1 3 ,5 ,6 3 5 5 ,4 7 ,3 9 ,3 l ,2 3 , 表的意思就是第次变换时,第5 8 位移到第l 位,第5 0 位移到第2 位, 依此类推。得到6 4 位数据,将这数据前后分成两块l 【o 】【3 2 j ,r 【0 】【3 2 】。 ( 5 ) 加密过程,对r 【i 】【3 2 】进行扩展变换成4 8 位数方法如下,记为e ( r 川【3 2 】) 3 2 ,i ,2 ,3 ,4 ,5 , 4 ,5 ,6 ,7 ,8 ,9 , 8 ,9 ,l o ,1 1 ,1 2 ,1 3 , 1 2 , 1 3 ,1 4 , 1 5 ,1 6 ,1 7 , 1 3 第2 章加密算法发研究 1 6 ,1 7 1 8 ,1 9 ,2 0 ,2 l , 2 0 ,2 1 ,2 2 ,2 3 ,2 4 , 2 5 , 2 4 ,2 5 。2 6 ,2 7 。2 8 2 9 , 2 8 ,2 9 ,3 0 ,3 l ,3 2 ,l , ( 6 ) 将e ( r 【】【3 2 】) 与k 【i 】1 4 8 】作异或运算,得到4 8 位数,将4 3 位数顺 序分成8 份,6 位一份,b 【8 】【6 】。 ( 7 ) 使用s 【i 】替换b f 】【6 】。过程如下:取出b 脚【6 】的第】位和第6 位连成 一个2 位敛m ,m 就是s 【i 】中对应的行数( o - 3 ) ,取出b 【i 】f 6 l 的第2 到第5 位连成+ 1 个4 位数n ( o - 1 5 ) ,n 就是s 【】i i 对应的列数,川s 【】【m 】f n 】代替b 脚【6 】。 s 是4 行1 6 列的对应表,里面是4 位的数,共有8 个s ,定义如下: s 【i 】: 1 4 ,4 ,1 3 ,l ,2 ,l s ,l l ,8 ,3 ,1 0 ,6 ,1 2 ,5 ,9 ,0 ,7 , o ,t 5 ,7 4 ,1 4 ,2 ,1 3 。l ,l o ,6 ,1 2 ,1 l ,9 ,5 ,3 8 , 4 ,1 ,1 4 ,8 。1 3 ,6 ,2 ,1 l ,1 5 ,1 2 ,9 ,7 ,3 ,1 0 ,5 ,o , 1 5 ,1 2 ,8 ,2 ,4 ,9 ,l ,7 。5 ,l l ,3 ,1 4 ,l o ,o ,6 ,1 3 , s 【2 】: 1 5 ,1 8 ,1 4 ,6 ,l l ,3 ,4 ,9 ,7 ,2 ,1 3 ,1 2 ,o 。5 ,l o , 3 ,1 3 ,4 ,7 ,1 5 ,2 ,8 。1 4 ,1 2 ,o ,l ,i o ,6 9 。l l ,5 , 0 ,1 4 ,7 ,1 i 。1 0 ,4 ,1 3 ,t ,5 ,8 ,1 2 。6 ,9 ,3 ,2 ,1 5 , 1 3 ,8 ,l o ,l ,3 ,1 5 ,4 2 1 l ,6 ,7 ,1 2 。o ,5 ,1 4 ,9 , s f 3 】: l o 。0 ,9 ,1 4 ,6 ,3 ,1 5 ,5 ,i ,1 3 ,1 2 ,7 ,l l ,4 ,2 ,8 。 1 3 ,7 ,o ,9 ,3 ,4 ,6 ,l o ,2 ,8 ,5 ,1 4 ,1 2 ,1 l ,1 5 ,l , 1 3 ,6 ,4 ,9 ,8 ,1 5 ,3 ,o ,l l ,1 ,2 1 2 ,5 ,l o ,1 4 ,7 , i ,l o ,1 3 ,o ,6 ,9 ,8 ,7 ,4 ,1 5 ,1 4 ,3 ,l l ,5 ,2 ,1 2 , s 【4 】: 7 ,1 3 ,1 4 ,3 ,0 ,6 。9 ,1 0 ,l ,2 ,8 ,5 ,l l ,1 2 ,4 ,1 5 , 1 3 ,g ,l l ,5 ,6 ,1 5 ,o ,3 ,4 ,7 ,2 ,1 2 ,1 ,l o ,1 4 ,9 , l o ,6 ,9 ,0 ,1 2 ,1 1 ,7 ,1 3 ,1 5 ,1 ,3 ,1 4 ,5 ,2 ,8 ,4 , 1 4 第2 帝舡j 梆算法及聊 究 3 ,1 5 ,0 ,6 ,1 0 ,1 ,1 3 ,8 ,9 ,4 ,5 ,l l ,1 2 ,7 ,2 ,1 4 , s 【5 】: 2 ,1 2 ,4 ,1 ,7 ,1 0 ,1 1 ,6 ,8 ,5 ,3 ,1 5 ,1 3 。o ,1 4 ,9 , 1 4 ,l l ,2 ,1 2 ,4 ,7 ,1 3 ,1 ,5 ,0 ,1 5 ,1 0 ,3 ,9 ,8 ,6 , 4 ,2 ,l ,1 1 ,1 0 ,1 3 ,7 ,8 ,1 5 ,9 ,1 2 ,5 ,6 ,3 ,o ,1 4 , 1 l ,8 ,1 2 ,7 ,1 ,1 4 2 ,1 3 ,6 ,1 5 ,o ,9 ,l o ,4 ,5 ,3 , s f 6 】: 1 2 ,l ,l o ,1 5 ,9 ,2 ,6 ,8 ,0 ,1 3 ,3 ,4 ,1 4 ,7 ,5 ,1 1 , 1 0 ,1 5 ,4 2 ,7 ,1 2 ,9 ,5 ,6 ,1 ,】3 ,1 4 。0 ,】1 ,3 ,8 , 9 ,1 4 ,1 5 ,5 ,2 ,8 ,1 2 ,3 ,7 0 ,4 ,l o ,l ,1 3 ,1 l ,6 , 4 ,3 ,2 ,1 2 ,9 ,5 ,1 5 ,l o ,l l ,1 4 ,l ,7 ,6 ,o ,8 。1 3 , s 【7 】: 4 ,l l 。2 ,1 4 ,l s ,o ,8 ,1 3 ,3 ,1 2 ,9 ,7 ,5 ,l o 。6 ,1 , 1 3 ,o ,1 1 ,7 ,4 ,9 ,1 ,1 0 ,1 4 ,3 ,5 ,1 2 ,2 ,1 5 ,8 ,6 , l 。4 ,l l ,1 3 ,1 2 ,3 。7 。1 4 ,l o ,1 5 ,6 ,8 ,0 ,5 ,9 2 , 6 ,l l ,1 3 ,8 ,l ,4 ,l o ,7 ,9 ,5 ,o 1 5 ,1 4 ,2 ,3 ,1 2 , s 【8 】: 1 3 ,2 ,8 ,4 ,6 ,1 5 ,1 l ,】,1 0 ,9 3 ,1 4 。5 ,o ,1 2 ,7 , l ,1 5 ,1 3 ,8 ,l o ,3 ,7 ,4 ,1 2 ,5 ,6 ,1 1 。o ,1 4 ,9 ,2 , 7 ,】l ,4 ,l ,9 ,1 2 ,1 4 ,2 ,o ,6 ,l o ,1 3 ,1 5 ,3 。5 8 2 ,l ,1 4 ,7 ,4 ,1 0 ,8 ,1 3 ,1 5 ,1 2 ,9 ,o ,3 ,5 。6 ,i l , ( 8 ) 将从b 川【6 】经过s 得到的8 个4 位数连起来得到3 2 位数。对这个数 进行如下变换: 1 6 ,7 ,2 0 ,2 l ,2 9 ,1 2 ,2 8 ,1 7 ,l ,1 5 ,2 3 ,2 6 ,5 ,1 8 ,3 1 ,l o 。 2 ,8 。2 4 ,1 4 。3 2 ,2 7 ,3 。9 ,1 9 ,1 3 ,3 0 , 6 ,2 2 ,l l ,4 ,2 5 , 得到的结果与l 【i 】【3 2 】作异或运算,把结果赋给r 【i 】f 3 2 】。 ( 9 ) 粑r i - l 】【3 2 】的值赋给u 】,从5 开始循环。直到k 【1 6 】 4 8 】结束。 ( 1 0 ) 将最后的l r 合并成“位,然后进行如下转化得到最后的结果。 这是对第4 步的一个逆变化。 1 5 第3 帝u s b 总线技术1 iu s b 接u 芯j i 研究 豳3 1u s b 硬什结 幻 u s b 主控制器一般集成在主机的主扳上,在主控制器驱动程序( h c d ) 建立起由传输描述符定义的基本事务处理列表后,它负责在硬件上实现u s b 总线的事务处理如读、写操作等。目前主要有两种主控制嚣: ( 1 ) 通用主控制器( u h c - u n i v e r s a lh o s tc 舡0 l l e r ) 明c 由i r i t c l 定义,弗被集成到h 嘲的p x 3p c ii s a 扩展总线桥接 器及其后续芯片中。它是作为p c i 主控制器实现的,可以执行事务处理并从 内存中获取和更新数据结构; ( 2 ) 开放主控制器( o h c o p 印h 随c 舡o u 口) o h c 由康柏、微软和国家半导体公司联合制定,它同样能实现产生和 安捧u s b 事务处理,并集成了根集线器功能。 事务处理由主控制器产生后,首先送到根集线器,然后被发送到下一缴 集线器或直接发送到u s b 设备。根集线器实际上大多数也是集成在主板上, 它和普通u s b 集线器的结构大致相同,由一个集线器控制器和中继器组成。 集线器控制器搜集集线器的状态信息提供给主机,并接收主机指令,实现对 集线器的控制:集线器中继器则负责u s b 总线上的数据流向下一级集线器 或直接向u s b 设备传递 u s b l o 版本将u s b 设备分为低速设备和高速设备( 也被称为全速设 备) ,它们通过设备描述符向主机提供一系列表征设备配黑和能力的信息, 以保证主机能正确配置和访问设备。高速设备可以看到u s b 总线上广播的 笫3 章u s b 盥线技术ju s b 接u 芯 研究 各地址和终端号的u s b 数据包,这个数据包通常称为标志包( t o k 印p a c l 【e t ) 。 u s b 设备从解码后的数据包的适当位置取出属于自己的数据。数据传输方向 不是从主机到设备就是从设备到主机。在传输开始时,由标志包来标志数据 的传输方向,然后发送端开始发送包含信息的数据包或表明没有数据传送。 接收端也要相应发送一个握手的数据包表明是否传送成功。发送端和接收端 之间的u s b 数据传输,在主机和设备的端口之间可视为一个通道。存在 两种类型的通道:流和消息。流的数据不像消息的数据,它没有u s b 所定 义的结构,而且通道与数据带宽、传送服务类型,端口特性( 如方向和缓冲 区大小) 有关。多数通道在u s b 设各设髯完成后即存在。u s b 中有一个特 殊的通道缺省控制通道,它属于消息

温馨提示

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

评论

0/150

提交评论