




已阅读5页,还剩82页未读, 继续免费阅读
(计算机软件与理论专业论文)基于usb接口的软件加密锁的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一 一 二1 乍 独创性声明 啪i l i j i i i i i l l i i i i i l i l 洲 y 18 0 2 6 4 7 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果 据我所知 除了文中特别加以标注和致谢的地 方外 论文中不包含其他人已经发表或撰写过的研究成果 也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意 签名 臣辑日期 砂矿f 年 月节日 论文使用授权 本学位论文作者完全了解电子科技大学有关保留 使用学位论文 的规定 有权保留并向国家有关部门或机构送交论文的复印件和磁 盘 允许论文被查阅和借阅 本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索 可以采用影印 缩印或 扫描等复制手段保存 汇编学位论文 保密的学位论文在解密后应遵守此规定 签名 雄导师签名 日期 沙尸年 月y 7 7 日 玉i 一 一 摘要 摘要 随着计算机技术的发展 特别是软件技术的发展 软件的知识产权保护问题 越来越受到人们的重视 软件的反盗版设计是软件开发过程中极其重要的部分 为防止软件在没有得到验证和允许的情况下运行 出现了多种多样的软件保护技 术 主要包括纯软件和纯硬件两类 虽然纯软件保护手段得到了广泛应用 但传 统的软件保护技术在内核调试器面前不堪一击 本文提出一种基于u s b 接口的软件加密锁的设计方案 该方案基于硬件电路 实现对软件的保护 使用d e s 对称加密算法加密数据 支持加密锁识别 硬件序 列号 加密算法验证等判别手段 支持大容量加密数据存储能力 具有即插即用 使用方便 保密性强 性价比高等特点 本文主要讨论了软件加密手段的现状分析 与本方案相关的u s b 接口规范 d e s 对称加密算法的原理与实现 基于u s b 接口的软件加密锁的硬件设计细节 固件程序的设计细节 主机端u s b 设备驱动程序和应用程序的设计细节 加密锁 系统调试及测试 设计方案经测试表明达到预期目的 在设计软件加密锁过程中所总结的开发 经验和资料 可作为其他基于u s b 接口的智能仪表 控制设备等的开发参考 关键词 通用串行总线 加密锁 单片机 驱动程序 加密 a b s t r a c t a b s t r a c t w i t l lt 1 1 ed e e l o p i n e n to fc o m p u t e rt 洳l o g y e s p e c i a l l y 廿1 ed e v e l o p m e n to f m 忸r et e c 1 1 i l o l o g y p c o p l ep u tm o r e 觚dm o r e 锄讪a s i so n 也ep r o t e 砸o no f 也e 硼 c u 删p r o p e r t rf i 曲t so fs o f t w a r e m ed e s i 皿o fs o f 蛔a r ea 埘 p 碱gh a sb e c o m e 觚伪s 训a lp a r ti nt h ep r o c 销so f 脚a r e i e v e l o p m e n t i i lo r d e rt 0s t o p l es i t 明d o n u n d 凹w h i c hs o n w a r ec 龃s t i l lo p e r a t e 7 l i 1 0 u tc 0 n f i r m a t i o na r l dp 锄l i s s i o n 耽饿炳i v a f i o u ste c h n o l o 西锱t 0p r o t e c t0 u rs o f 啊a 锄l o n gw 1 1 i c hp u f l w a r e 锄dp u 坞 h 嬲i w a r ea r cm et w dm a i l l 惋h n o l o 西e s t h es o f 如a r ep r o t e c t i o nt e c l l l l o l o 盱h 嬲b e w i d e l ya p p l i e d h o w e v w h mm l 光t i n gk e m e ld e b u g g i ts o o nb e c o m e sc o l l 印s i n g t h ef o l l o 谢n g 耐i c l ei n 仃0 d u c e sad e s i 印i n gp r o p o s a lo fs o f h a r ee i l c r p t i o nl o c k b a s e do nu s bc o n i l e c t i o ns w i t c h w h i c hp r o t e c t sy o u rs o 脚a r eo nm eb a s i so f h a r d w a r c e l 洲cc i r c 丑l i tb yu s i n gd e s s y l n m c t d c a ld a t ae n c d p t i o n s u p p o r t i n gt h er e c o g 蚯t i o no f c r y p t i o n1 0c k h a r d w a r es e r i e sm m l b e r c o n f i m l a t i o no fe n c r y p t i o na n ds oo i l 唧n i n g t l l em e m o r r 如n c t i o no f 饥c r y p t e d1 a r g ec 印a c i 填 1 1 m sm e p r o p o s a lh a l ss u c h a d v 锄t a g e s 嬲p l u g 锄dp l a y c o n v 朗i e l l t s e c r e ta n d1 1 i 曲r a t i oo fp 耐 o 肌a l l c e t o p r i c e t h ea r t i c l em 砌yd i s c u s s e sm ep r e s e n t a i l a l y s i s o nt h ew a y so fs o r w a r e c 1 1 c r p t i o nl o c k r e l a t i v e1 a w so fu s bc o i l i l e c t i o n m e 研n c i p l e s 觚dr e a l i z a t i o no fd e s e n 哪 p t i o n d e s i 弘d e t a i l so fh 觚1 w a r eo nm eb a s i so fu s bc o n l l e c t i o n s o f l i r a r c e n c r y p t i o n d e s i 印d e t a i l so f 蛐a r ep r o g r a m s d e s i 盟d e t a i l so fu s be q u i p m e n t 赫v e ra i l da p p l i c a t i o n p r o c e d u r e d e b u g sa i l dt e s t so fe n c w p t i o n1 0 c k t h et e s to f sd e s i g n p r o p o s a lh a s s e r v e dm e a n t i c i p a t e dp u 印o s e t h e e x p 舐e n c e sa 1 1 df i l e si n l i sd e s i 笋o fs o r w a r ee n c r y p t i o nc a nb ev e r yv a l u a b l e r e f e r e l l c e s 内ro t h e rd e v e i o p m e n t so nt h eb a s i so ft h ei n t e i l i g e n tm e a s u r i n ga p p l i a n c e s a i l dc o n t r o l l i n gd e v i c e so fu s bc o i l l l e c t i o n k e y o r d s u s b e n 唧t i o nl o c k m c u d r i v e r e n a 卵t i i 目录 目录 第一章引言 1 1 1 软件加密的意义 l 1 2 软件加密技术概述 1 1 2 1 纯软件加密方式 2 1 2 2 硬件加密方式 2 1 3 国内软件加密锁的现状 3 1 4 本论文的主要工作 4 1 5 论文结构安排 4 第二章相关技术简介 5 2 1 加密算法基本概念 5 2 2 常用加密算法 6 2 2 1 对称加密算法d e s 6 2 2 2 非对称加密算法r s a 8 2 3u s b 接口简介 9 2 4u s b 系统结构 9 2 4 1u s b 网络拓扑 1 0 2 4 2u s b 主机 1 0 2 4 3u s b 设备 1 1 2 4 4u s b 的物理接口 1 2 2 5u s b 数据流模型 1 2 2 5 1u s b 逻辑分层 1 2 2 5 2u s b 的详细数据流 1 3 2 6u s b 协议层 1 6 2 6 1 字段 1 6 2 6 2 包格式 1 7 i l i 目录 2 6 3 事务 1 9 2 7 常用的u s b 接口芯片 2 2 2 8 小结 2 3 第三章加密锁硬件电路设计 2 4 3 1 加密锁的硬件设计方案 2 4 3 1 1 设计方案l 2 5 3 1 2 设计方案2 2 5 3 1 3 设计方案3 2 6 3 2p d i u s 阴1 2 芯片功能简介 2 7 3 2 1p d i u s b d l 2 的端点与命令 2 7 3 2 2p d i u s b d l 2 的接口设计 2 9 3 3s t c l l f 3 2 x e 芯片功能简介 2 9 3 3 1s t c l l f 3 2 x e 的主要特点 3 0 3 4 加密锁的硬件电路设计 3 l 3 4 1 硬件系统框图 3 1 3 4 2 硬件电路图 3 2 3 5 小结 3 4 第四章加密锁软件设计 3 5 4 1 单片机固件程序设计 3 5 4 1 1 加密算法的实现 3 5 4 1 2 内部e e p r o m 的读写算法 3 6 4 1 3 单片机固件程序 3 7 4 2 加密锁驱动程序设计 4 5 4 2 1w d m 驱动程序的体系结构 4 5 4 2 2w d m 驱动程序的层次 4 7 4 2 3i r q l 中断请求级 4 8 4 2 4 即插即用 4 9 4 2 5u s b 加密锁的枚举过程 5 0 i v 目录 4 2 6 驱动程序和应用程序的接口 5 l 4 2 7 加密锁u s b 驱动程序的开发 5 2 4 3 加密锁主机演示程序设计 5 8 4 3 1 驱动程序通信例程 5 9 4 3 2 界面设计 6 1 4 4 小结 6 5 第五章加密锁的系统调试与测试 6 6 5 1 加密锁的系统调试 6 6 5 1 1 调试工具 6 6 5 1 2 调试方法 6 7 5 2 加密锁的测试 6 7 5 2 1 操作系统平台测试 6 7 5 2 2 硬件平台测试 6 8 5 3 小结 6 9 第六章结论 7 0 致谢 7 2 参考文献 7 3 附录a 系统电路原理图 7 4 附录b 在学期间的研究成果 7 5 v 第一章引言 1 1 软件加密的意义 第一章引言 随着计算机软件技术的发展 计算机已经深刻的改变了人们的生活方式 计 算机软件很容易被非法复制 软件采用数字信息存储 因此 复制后的软件运行 起来是与原版软件一样的 这也是被盗版者所利用的特点 软件出现盗版的原因 很多 最主要的有 一 开发者对加密的重视不够 二是开发者选择了性能不良 的加密产品 可靠性不够高 此外 目前我国的软件保护法制建设工作不力 人 们的法制观念有待进一步加强 这也是软件盗版泛滥的客观原因之一 为了使软 件行业能够得到健康的发展 保护软件开发者的劳动成果 防止软件被盗版 应 大力加强反软件盗版工作 目前 计算机知识产权保护的一个重要内容就是防止软件的非法盗版 软件 加密技术即通过技术手段实现反软件盗版 软件加密技术可以实现以下主要功能 1 防止软件非法复制 通过技术手段使软件无法完整复制 或者无法得到完整可 用数据 避免软件被非法拷贝 2 防止软件被非授权安装使用 这种方法是使用 户在未得到授权的情况下 不能完成安装过程 3 防止非法运行 用户在未得到 授权的情况下 无法正常运行软件 通过以上技术手段的运用 可以有效的防止 软件盗版行为的发生 但另一方面 软件知识产权的保护还是要依靠相应的法律 制度来进行保障 仅仅依赖技术手段是不够的 在法律制度比较健全 公众的知 识产权观念比较强的情况下 公众能够自觉的不使用盗版软件 盗版软件是没有 市场的 从而切断了软件盗版的生存链条 但在现阶段 加强软件的技术性保护 还是相当有必要的 1 2 软件加密技术概述 现阶段国内外对软件保护技术有着广泛的研究 所采用的软件加密技术基本 可分为纯软件和硬件加密方式 电子科技大学硕士学位论文 1 2 1 纯软件加密方式 纯软件加密方式是通过对软件进行加密变换来实现软件保护 常用的方式是 壳式加密 即在软件编制完成后 通过加壳工具软件 将一段加密代码包裹在被 保护软件外 在软件执行时 加密代码先执行 加密代码对操作系统环境进行检 查 检查是否有调试软件或是破解工具软件在运行 当确定运行环境没有异常 并且对序列号等密钥的检查也正常时 加密代码再将控制权交给被保护软件 加 密代码采用特殊的手段编程 可以很好的实现代码的反跟踪 一些改进的软件加 密方式是在壳式加密的基础上 再将一些加密代码嵌入到被保护软件中 这样可 以加强反跟踪和反破解的能力 但加密工具软件本身一旦被破解 则所有采用该 工具软件加密的软件都将失去保护 1 2 2 硬件加密方式 硬件加密方式是依赖特定的硬件设备来实现对软件的加密保护 硬件加密方 式的历史很长 种类比较多 常用的包括物理加密和软件加密锁方式 1 2 2 1 物理加密 物理加密依赖于特定的手段 目的是使重要数据无法被复制 常用的物理加 密手段包括磁盘加密及光盘加密等 以光盘加密为例 这种加密方式依赖于工厂 特别生产的光盘 这些光盘上具有一些无法复制的特别标记信息 通过在运行时 对这些信息的检验来判断软件的合法性 由于常用光盘复制设备的功能所限 这 些特别标记无法进行复制 防止了软件被非法复制 但随着光盘复制设备和相应 软件的发展 特别标记信息已经不再是不可复制的了 这使得光盘加密方式已经 不再非常可靠 1 2 2 2 加密锁方式 加密锁方式最初有两种形式 一种是特别设计的计算机插卡 卡插在机器内 部的i s a 总线或是p c i 总线上 卡上有存储数据的存储器 并且有一些用于实现 简单加密算法的硬件电路 由于成本高 安装复杂 这种加密方式较少使用 另 一种是俗称 软狗 的加密锁方式 这是一个插在计算机并口或是串口上的特制设 备 内部电路最初由简单的逻辑电路实现 后期采用低功耗的m c u 电路可实现 一些简单的算法 实现少量数据的存储 软件工作时通过与软狗的通讯来实现加 2 第一章引言 密保护 离开了软狗 软件就无法工作 由于软狗体积小巧 无需打开机箱安装 得到了广泛的应用 但是传统的加密锁也有比较明显的缺点 由于是插在计算机并口和串口上 而这些外部接口要连接打印机或是其它的设备 加密锁的连接可能对这些设备的 工作造成干扰 严重情况下可能使外部设备损坏 更严重的问题是 软件与加密 锁的通讯基于并口和串口 这些接口是基本的硬连接接口 没有复杂的通讯协议 对这些接口的数据分析很容易进行 因此 软件破解者很容易通过对并口和串口 进行数据监视和分析 分析出软件与加密锁之间的数据通讯过程和内容 从而破 解被保护的软件 加密锁是一种灵活性很强 使用方便的软件保护方式 但有必 要对其不足进行改进 u s b 通用串行总线 u i 曲e r s a ls 碰a 1b u s 是由多家计算机业界的大公司推出 的新型通用接口技术 u s b l 1 于1 9 9 5 年提出 2 0 0 0 年提出了u s b 2 0 u s b 总 线是一种具有复杂软件协议的2 线连接协议 该总线自带电源 具有即插即用和 热插拔功能 支持多达1 2 7 个设备的连接 u s b 总线采用4 线电缆 连接灵活方 便 总线上所连接的设备采用自动地址配置 设备之间不会冲突 u s b 总线的广 泛应用为改进传统加密锁提供了一个较好的平台 1 3 国内软件加密锁的现状 国内软件加密锁基本上都采用u s b 接口设计 也有一些采用并口的产品 表 1 1 列出一些加密锁产品的性能参数指标 表1 1 加密锁产品的性能指标 产品名称圣天狗 h a s p h l s e i l t i n e l深思洛克精飞天诚信 s u p e r p r o锐 r o c k e y 6 生产商美国s a 龇以色列美国s a 矗削e t北京深思洛北京飞天诚 a l a d d i n 克 信 接口 u s bu s b 并口 u s bu s b 存储空间 8 k4 k1 1 2 b8 k8 k 加密算法 a e sr s ad e s3 d e s3 d e s 数据稳定性 1 0 年l o 年 1 0 年1 0 万次1 0 万次 价格范围l o o 2 0 0 元1 0 0 2 0 0 元1 0 0 元1 0 0 兀1 0 0 元 特点及功能采用a s i c 芯 提供了防逆 芯片白锁功 内置具有自 片设计 保证工程保护 代能 硬件随机主知识产权 硬件不可复码混淆 防范数发生器的c o s 系统 制 动态调试 电子科技大学硕士学位论文 分析现阶段我国的软件加密锁的现状 其缺点如下 1 数据存储容量较小 普遍为8 k 字节 2 无硬件序列号功能 软件与加密锁没有一一配对关系 3 价格较高 这使软件加密锁的应用受到很大的限制 4 采用并口的加密锁的易用性不强 兼容性不强 带电插拔时可能损坏主机 电路 1 4 本论文的主要工作 本论文的主要工作是针对传统软件加密锁加密方式的不足之处 将u s b 总线 技术运用到软件加密锁的设计中 采用经典对称加密算法d e s 对数据加密 结合 具有硬件无法解密的单片机m c u 改进软件加密锁的工作方式 支持大容量加密 数据存储 支持硬件序列号 支持与软件的一对一配对模式 提高加密锁的可靠 性 增加更多的功能 设计出加密性能好 使用方便 价格低廉 兼容性强的软 件加密锁 1 5 论文结构安排 论文内容安排如下 第一章 引言 阐述本论文研究的目的意义 分析介绍国内现阶段常见的加 密锁的性能指标 介绍本论文的主要研究内容 第二章 相关技术知识介绍 介绍常用的加密算法 介绍u s b 通用串行总线 协议 包括数据流模型 字段 包 传输事务格式 第三章 加密锁硬件电路设计 分析加密锁的硬件设计方案 介绍所选用的 u s b 接口芯片和单片机芯片 完成硬件电路设计 第四章 加密锁的软件设计 包括3 个部分 单片机固件程序 u s b 设备驱 动程序 主机演示应用程序 详细阐述软件各部分的设计思想和实现情况 第五章 加密锁系统调试与测试 介绍加密锁的调试 包括调试工具和调试 方法 并给出在不同平台上的测试结果 第六章 论文总结和展望 指出论文中的不足和待改进之处 4 第二章相关技术简介 2 1 加密算法基本概念 第二章相关技术简介 一个完整的加密系统一般包括三个部分 明文m 即明文m 的集合 可能有多种组合 密钥k 即密钥k 的各种可能的集合 每个具体的k 都包括两部分 一部分 是加密方法e k 另一部分是解密方法d l 加密与解密方法是对应的 即把方法e k 作用于明文m 上 得到一个结果 再把方法d k 作用于该结果 则将得到最初的明 文m 而中间结果即密文c 密文c 即密文c 的集合 与明文一样 可能有多种组合 对明文m 用方法 e k k 遍历k 加密后 就可以得到密文c 的元素 在一个加密系统中 原始数据即明文 对明文加密就得到了密文 可以在不 安全的通信信道上传送密文 对密文解密就得到了原来的明文 加密的工作是 把明文加密为密文 解密的工作是 把密文解密为明文 图2 1 是保密传输的示意 图 a 把密钥传入加密方法 并作用到明文上 得到密文 经不安全的通信信道 把密文传给b b 收到后 把解密密钥传入解密方法 作用到密文上 得到明文 由于密文通过不安全的通信信道传递 可能被窃听 而密钥是通过安全信道传递 的 不会被窃听 加密算法的目的就是要确保窃听者在没有密钥的情况 即使得 到密文 也无法得到明文 明文 图2 1 保密传输示意图 5 明文 电子科技大学硕士学位论文 假设明文用m 表示 密文用c 表示 密钥用k 表示 加密算法用e 表示 解密算法用d 表示 则有 e m k 1 c d c k 2 m k 1 与k 2 相同的算法就是对称加密算法 k 1 与k 2 不同的算法就是公钥加密 算法 两种加密算法各有优缺点 2 2 常用加密算法 用于对数据进行加密的算法种类繁多 比较常用的加密算法是对称加密算法 d e s 和非对称加密算法r s a 分述如下 2 2 1 对称加密算法d e s 美国国家标准局公布的d e s 数据加密标准 l 是最常用的对称数据加密算法 其全称是d a t ae 螂t i o ns t a n d a r d d e s 数据加密标准在国际上普遍应用于商用保 密通信和计算机通信 d e s 数据加密标准主要通过对二进制数据进行反复的置换 迭代操作实现 在实际应用中 既可用软件实现该算法 也可用硬件数字逻辑电 路来实现该算法 由于d e s 数据加密标准使用的广泛性 所以在软件加密锁中选 用d e s 算法对数据进行加密解密处理 d e s 加密算法的性能很优秀 它充分利用数学的雪崩现象 即明文m 或密钥 k 中的一个很小的数据的不同 将引起加密后产生的密文中出现很大的不同 从 而保证了加密的强度 d e s 加密算法对数据进行的操作基本上都是二进制的位操 作 即对数据进行多次的扩展 置换和移位等操作 以保证数据的保密性 这些 操作很适合用数字电路硬件来实现 对于具有强大位控制能力的单片机而言 实 现速度也比较快 接下来 我们介绍d e s 加密算法的实现 被加密的明文是6 4 位的数据 首 先对明文进行一个初始置换 把6 4 位数据分为左右两部分 每部分各3 2 位 接 着对两部分分别进行1 6 轮同样的操作 包括换位 移位和异或 在操作过程中 还要把数据与密钥结合在一起 接着把左右两部分操作后的结果又组合起来 再 把这个结果进行一个逆初始置换的操作 得到最终的密文 整个d e s 加密算法的 操作流程如图2 2 所示 6 第二章相关技术简介 图2 2d e s 加密算法流程 图2 3 是d e s 算法的变换过程示意图 每次变换都是先把密钥移位 再从5 6 位中选出其中的4 8 位 通过扩展置换操作 把数据的右半部分3 2 位扩展为4 8 位 再通过异或操作把这4 8 位与4 8 位密钥组合 再用代替算法把这4 8 位数据代替为 密钥 2 8 位2 8 位 移位 移位 5 6 位中选4 8 位 0 l i 3 2 钧卜 f r i 3 2 位 图2 3d e s 加密算法的变换示意图 7 电子科技大学硕士学位论文 新的3 2 位数据 然后再置换一次 这4 步运算构成了函数f o 然后通过另一个异 或运算 使函数的输出与原来左半部分3 2 位数据组合为新的右半部分3 2 位数据 而原来的右半部分3 2 位成为新的左半部分3 2 位 整个过程反复做1 6 轮转换 从d e s 加密算法的数据变换过程可见 这种算法是通过对数据进行反复的扩 展 移位 迭代来实现数据的加密 这些操作运算由基本的算术运算和逻辑运算 构成 计算速度可以很快 而且这些变换都是重复的 可以很容易的用单片机程 序实现 基于d e s 加密算法的以上优点 在基于u s b 的软件加密锁的设计中 采 用d e s 算法对数据进行加密处理 2 2 2 非对称加密算法r s a r s a 加密算法 2 是一种非对称公钥加密算法 最初是由美国麻省理工学院的 m r r v e s t s h a i n i 和a m e m 趾提出的 在大量的非对称公钥加密算法中 r s a 加密算法因具有在安全性 数据扩展性和密钥长度等方面的良好的综合性能而得 到广泛应用 r s a 加密算法的安全性很高 其主要理论基础是数论中的e u l e r 定理 以及计算复杂性理论中素数乘积分解问题 该问题是 计算出两个大素数的乘积 后 如果要把这个乘积又分解为两个大素数 即求出素数因子却是非常困难的 r s a 加密算法可以使用在多种场合下 既可以用来进行加密 也可以用来做数字 签名和身份认证 r s a 对称加密算法的原理如下 1 任意选取两个不同的大质数p 和q 一般要选择非常大的两个数 计算乘 积唧木q 2 任意选取一个大整数e e 与q 一1 木 q 1 互质 整数e 用做加密密钥 注意 e 的选取是很容易的 例如所有大于p 和q 的质数都可用 3 确定解密密钥d 由d 木e 1m o d p 1 宰 q 一1 根据e p 和q 可以很容易的 算出d 4 公开整数r 和e 但是不公开d r 和e 就是所谓的公钥 d 是私钥 5 将明文p 假设p 是小于r 的整数 加密为密文c 计算方法为c p m o dr 6 将密文c 解密为明文p 计算方法为p c d m o d r 然而 只根据r 和e 不是p 和q 要计算出d 是不可能的 因此 任何人都可 对明文进行加密 但只有授权用户 知道d 才可对密文解密 为了保证r s a 的有效 性 通常找两个非常的大质数p 和q 第二章相关技术简介 r s a 算法在加密和解密时使用两个不同的密钥 一个是公钥 一个是私钥 只需将私钥保护好 即可保证加密安全 简化了密钥的管理和分配 3 1 r s a 的缺 点主要是一方面要产生不同的密钥比较麻烦 难以做到每次加密都产生不同的密 钥 另一方面 r s a 的运算量非常大 加密及解密的速度很慢 2 3u s b 接口简介 u s b 通用串行总线是1 9 9 4 年由c 伽叩a q m m m i c f o s o f t 等七家公司提出的 u s b 的设计目的是针对计算机传统外部接口的不足 传统计算机的外部接口主要 是并口和串口 这些接口不具有即插即用特性 不能热插拔 数量很少 扩展困 难 速度比较慢 不能进行自动配置 它们限制了计算机及其外部设备的发展 u s b 总线具有数据传输率高 成本低廉 可热插拔等优点 能够适应未来计算机 对外部接口的需求 u s b 总线具有以下特征 l 自动设置 操作系统能够自动检测连接到u s b 总线的设备 并加载相应 的驱动程序 操作系统自动完成对设备的功能检测 并自动配置设备地址 2 容易使用 u s b 设备可直接连到机箱的u s b 接口插座上 支持热插拔功 能 通过连接集线器h u b 设备 可以方便的扩展u s b 接口 3 自带电源 u s b 总线自带5 v 电源 设备可以直接使用总线所提供的电源 4 连接简单 u s b 采用4 线制 两根电源 两根数据线 设备的连接非常简 单 5 传输速度快 u s b 支持三种信道速度 低速1 5 m b s 全速1 2 m b s 高速 4 8 0 m b s 可以适应各种不同速度要求的设备 2 4u 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 总线带宽的调度 9 电子科技大学硕士学位论文 2 4 1u s b 网络拓扑 u s b 设备通过u s b 总线与u s b 主机连接 总线的物理连接是星型结构 星 型结构采用分层组织 集线器是星型拓扑结构的核心 集线器与设备间进行点对 点连接 从主机到集线器 以及从集线器到集线器或设备 都依从这个原则 图 2 4 为u s b 总线拓扑结构图 2 4 2u s b 主机 图2 4u s b 的拓扑结构 在任何一个u s b 系统中 只有一个u s b 主机 当然一台计算机上可能有多 个u s b 主机 u s b 总线和计算机主机系统的u s b 接口称作主机控制器 主机控 制器由硬件 驱动程序共同实现 主机系统中集成了根集线器 然后再由根集线 器连接外部设备或是其它集线器 u s b 主机的结构示意图如图2 5 所示 u s b 主机管理着u s b 信道 它借助u s b 总线驱动程序完成管理工作 在操 作系统中有两种与u s b 相关的驱动程序 u s b 总线驱动程序负责完成对主机控制 器的操作 同时它接受上层的u s b 用户驱动程序发给它的u r b u s b 请求包 完成u i 也中所要求的操作 主机控制器则在软件的控制下 最终完成对物理总线 的控制 l o 第二章相关技术简介 2 4 3u s b 设备 应用软件 i l u s b 用户驱动程序 l i u s b 总线驱动程序 l 主机控制器 u s b 物理总线 图2 5 u s b 主机结构图 u s b 设备 4 主要有两种 集线器和功能设备 集线器是向外部提供u s b 连接 点的设备 功能设备则是提供具体功能的外部u s b 设备 集线器是一种特殊的u s b 设备 功能设备要通过与集线器的连接来实现与u s b 总线的连接 当设备连接到系统 并被自动配置后 该设备就拥有了唯一的u s b 地址 地 址范围从1 1 2 7 o 号地址是设备在配置过程中使用的默认地址 主机在发起一次 传送时 通过设备的地址操作设备 具体而言 设备与主机间将建立多个通道 设备通过通道与主机进行通讯 u s b 设备必须在端口0 上拥有一个缺省的控制通 道 主机通过缺省的控制通道 来获得描述u s b 设备的信息 即描述符 这些描 述符描述了设备的类型 电源管理 配置端点情况等 u s b 主机基于这些信息来 决定u s b 用户驱动程序的加载 设备的自动配置 设备在连接到u s b 总线并被上 电后 就必须在端口o 上支持控制通道 该通道也可在配置后进行一些数据传输 工作 设备向主机表现为三个层次 最高层是配置层 向主机表现为一个或多个配 置 中间层是接口层 表现为一个配置中的一个或多个接口 最底层是端点 表 现为一个特定接口中的多个端点 端点是数据收发的始终点 一个设备至少必须 有一个0 号端点 电子科技大学硕士学位论文 2 4 4u s b 的物理接口 u s b 总线的物理接口包括u s b 电缆与接口的电气与机械特性 u s b 总线通 过4 线电缆来传输电源与数据 图2 6 是u s b 电缆的结构 d 与d 一是差分数据线 u s 与g n d 向设备提供5 v 电源 提供的电流 m 旬o 吐o n l pm jc l o s e d l z c 1 0 s e 关闭加密锁 d n ro b j d r i v e f i 功 o a d d 1 2 叫o a d 设备卸载 处理d e i i o c o n 昀l 请求 d 0 i b j m 面o r f u n c t i o n 琢pm jd e v i c 耻c o l d 1 2p r o c l 嘲i o c t l d n 0 i b j m 面0 r f u n c t i o n i r pm j w r r r e d 1 2 肌t e 处理读设备请求 d 吖0 i b j m 萄 栅t i o n 琢pm yr e a d d 1 2 r e a d 处理写设备请求 d 吖0 i b j m a j o r f 啦c t i o n 珉pm jp 套硼 d 1 2 p i s p a t c h 处理p n p 请求 d 吖c i b j m 旬o r f l l l l c 吐0 n 卫r pm jp o w e r d 1 2 p r o c 髂s p o l 惯却 处理电源请求 d r vo b j d 巾e r i o n a d d d e 祀e d 1 u i l p a d d d e v i c e 处理添加新设备请求 r e t i l mn t s t a 加s 4 2 7 2d 1 2p n a d d d e i c e 例程 当驱动程序已经加载 然后系统检测到u s b 总线上插入了加密锁 连接了一 个新设备 系统调用d 1 2p 1 1 p a d d d e v i c e 例程 该例程的主要功能是建立设备接口 以允许应用程序能够用c r e a t e f i l e a p i 函数打开加密锁 代码如下 n t s t 兀 sd12p n p a d d d e v i c e i np d r i v e ro b j e c td r vo b i n 叮p d e v i c eo b j e c tp h y s i c a l d e v i c e o b e c t n t s t a t u sn t s t a t l l s s t 久兀 ss u c c e s s p d e v i c eo b j e c td e vo b i n u l l p d e v i c ee i 丌e n s i o n d e c e e x t e n s i o n u s b dv e r s i o n 烈f o r m a t i o nv e r s i o n i i l f o n l l a t i o n s t a t i cu l o n gi n s t a n c e 0 b u 珏叮s bc r e a t e d e i c e o b j e c t 函数创建设备对象 同时建立设备接口和符号链接 n t s t a t i l s2 b u l k u s b c r e a t e d e 访c e o b j e c t d 邮b j p h y s i c a l d e v i c e o b j e c t d e v o b j i f n t 二s u c c e s s n t s t 曲s d e v i c e e x t i e l l s i o n d e vo b j d e i c e e x t s i o n 建立设备对象扩展结构 d e vo b l f l a 9 8 d od e c e 烈i t 队l i z 斟g 5 3 电子科技大学硕士学位论文 d e 7 0 i b j f l a g sl d o p i r e ti o 指定设备使用的缓冲模式为直接i o 方式 d 蒯c e e x t e n s i o n p h y s i c a d 嘶c e o b j e c 卢p h y s i c a l d 嘶c e o b j e c t d e i c e e x 搬i o n 咖o f s t a c k d e v i c e 0 蜘e c t 斗哿设备对象连接到设备栈上 1 0 a 仕a c h d e v i c e t o d e v i c e s t a c k d c v0 i b j p h y s i c a l d e v i c e o b j e c t d 1 z i 沁叼 c 印a b i 晰e s p h s i c a l d e v i c e o b j e c t d e i c e e x m s i o n d e v i c e c a p a b i l i 6 e s d12m 瞅 i i l e n t i o c 0 u n t d e v0 i b j u s b 雕g e t u s b d e r s i o n v e r s i o n h 缅m a t i o n r e t i l mn t s t a t l 玛 4 2 7 3d 1 2c r e a t e 例程 当应用程序要与加密锁进行数据传输时 应首先调用a p i 函数c r c n e f i l e o 驱动程序则调用d 1 2 r e a t e o 例程来处理这个请求 c r e a t e f i l e o 函数下传形如 p 口e 0 1 的字符串参数 d 1 2c r e a t e o 例程从接收到的 心包中 找到当前栈单元 指针 再找到字符串参数 并据此建立与加密锁硬件端点相对应的管道 该管道 的句柄保存在设备对象扩展结构中 以便在数据传输时使用 d 1 2c r c a t e 例程的 流程如图4 1 1 所示 图4 1 1d 1 2c r e a t e 流程图 第四章加密锁软件设计 4 2 7 4d12 c l o s e 例程 应用程序完成对加密锁的数据传输后 调用a p i 函数c 1 0 s e f i l e o 关闭加密锁 驱动程序则调用d 1 2c l o s e 例程进行处理 d 1 2c l o s e o 例程首先分析玎髓 获得 当前栈单元的指针 然后找到在d 1 2c r e a t e o 例程中保存的管道名柄 将其关闭 最后完成 心 d 1 2c l o s e 例程的处理流程如图4 1 2 所示 图4 1 2d 1 2c 1 0 s e 流程图 4 2 7 5d 1 2p r o c e s s i o c t l 例程 应用程序可调用a p i 函数d e v i c e i o c o n 仃d l 来与加密锁进行数据交换 d e v i c e i o c o n t r o l 函数可携带一个i o c o 肋 l 码及相应的数据 驱动程序调用 d 1 2p r o c e s s i o c t l 例程进行处理 d 1 2p r o c e s s i o c t l 例程首先得到这个i o c o n 的l 码 然后根据这个码进行分类处理 加密锁支持的i o c o n t r o l 码包括 i o c t ld 1 2r e s e tp i p e 将加密锁上的指定的端点复位 i o c t ld 1 2g e tc o n f i gd e s c r i p t o r 发出标准设备请求 获得配置描述符 i o c t ld 1 2r e s e td e v i c e 复位加密锁 i o c t ld 1 2g e td e v i c ed e s c r i p t o r 发出标准设备请求 获得设备描述符 i o c t lr e a dr e g i s t e r s 发出厂商设备请求 读寄存器 i o c t lw r i t er e g i s t e r s 发出厂商设备请求 写寄存器 d 1 2p r o c e s s i o c t l 例程的处理流程如图4 1 3 所示 电子科技大学硕士学位论文 4 2 7 6d 1 2w h t e 例程 图4 1 3d 1 2p r o c e s s i o c t l 流程图 应用程序通过调用a p i 函数w r i t e f i l e 向加密锁发送数据 驱动程序调用 笙婴主垫查塑鏊堡丝生 d 1 2w r i t e 例程来处理该请求 d 1 2w r i t e 例程首先分析 冲 得到当前栈单元的 指针 并从当前栈单元中取出要传送的数据的相关参数 然后再根据d 1 2 r e a t e 例程中所打开的设备端点的传输类型 创建相应的u i 沿 最后将u m 转发给u s b 总线驱动程序 由u s b 总线驱动程序完成具体的数据传送工作 d 1 2 1 r i t c 例程 的处理流程如图4 1 4 所示 图4 1 4 d 1 2 j 哺t e 流程图 4 2 7 7d 1 2 e a d 例程 应用程序通过调用a p i 函数r e a d f i l e 向加密锁发送读数据请求 驱动程序调 用d 1 2r e a d 例程来处理该请求 d 1 2r e a d 例程首先分析i r p 得到当前栈单元 的指针 并从当前栈单元中取出要相关参数 然后再根据d 1 2 c r e a t e 例程中所打 5 7 电子科技大学硕士学位论文 开的设备端点的传输类型 创建相应的u i m 最后将u r b 转发给u s b 总线驱动 程序 由u s b 总线驱动程序完成具体的数据接收工作 d 1 2r e a d 例程的处理流 程如图4 1 5 所示 图4 1 5d 1 2r e a d 流程图 4 3 加密锁主机演示程序设计 主机应用程序就是加密锁所保护的软件 程序中嵌入了访问加密锁的代码 当加密锁不存在或是与主机应用程序的序列号不符 或是加密锁中的加密算法与 主机加密算法不符时 主机应用程序均拒绝执行 达到加密锁对软件的保护作用 第四章加密锁软件设计 加密锁主机演示程序采用v c m f c 平台 1 9 1 进行设计 演示了对加密锁的操作 主要分为两部分 与加密锁驱动程序通信的助手函数和用户界面程序 4 3 1 驱动程序通信例程 应用程序调用w i n 3 2a p i 函数与驱动程序进行通信 但是调用过程比较繁琐 为简化主机应用程序的编写工作 设计了一些驱动程序通信例程 对砌2a p i 函数的调用进行了包装 这些例程包括 o p 锄 e v i c c o r e a dp e v i c e 吣d 嘶c e o 4 3 1 1o p 即 l e v i c e o 例程 o p 印 p e i c e 例程的作用是根据形如 p 口e 0 1 的字符串参数 首先根据设备 接口g u i d 获得所要连接的加密锁设备名 再调用a p i 函数c r e a t e f i l 打开 加密锁设备 得到操作句柄 代码如下 h a n d l e o pe i l p e i c e c h a r 事f i l e n a m e 地 d l e h i f g e t u s b d 谢c e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 妄想症课件教学课件
- 吉林省公考真题2025
- 农发行南宁市江南区2025秋招笔试英文行测高频题含答案
- 2025年莱阳市事业单位考试真题
- 平衡动态课件
- 平等是权利与义务课件
- 农发行宜宾市屏山县2025秋招英文面试题库及高分回答
- 2025年Z世代消费行为对新兴品牌市场拓展的启示报告
- 2025年中国新能源储能行业在储能电站建设中的技术创新与投资机会报告
- 农发行阿克苏地区阿瓦提县2025秋招笔试EPI能力测试题专练及答案
- 化妆详细教程课件
- 良好学习习惯养成课件
- 国际化跨国经营中的伦理问题概述
- 2025-2026学年度武汉市部分学校高三年级九月调研考试 语文试卷(含标准答案)
- 2025年禁毒知识竞赛试题及参考答案
- 2025至2030年中国交通节能服务行业发展潜力分析及投资战略咨询报告
- 2024新版2025秋人教版二年级艺术造型美术上册全册教案教学设计(含大单元教学设计)
- 2025年秋期新部编人教版五年级上册道德与法治教学计划+进度表
- 《劳模工匠之光》课件 第1、2单元 民族大厦的基石、改革攻坚的先锋
- 2025至2030年中国阻焊油墨行业发展运行现状及投资潜力预测报告
- 电力电子技术课件 单结晶体管及其触发电路
评论
0/150
提交评论