完整版基于DXF格式CAD文档保护系统置乱模块的设计与实现毕业设计.docx
《完整版基于DXF格式CAD文档保护系统置乱模块的设计与实现毕业设计.docx》由会员分享,可在线阅读,更多相关《完整版基于DXF格式CAD文档保护系统置乱模块的设计与实现毕业设计.docx(42页珍藏版)》请在冰豆网上搜索。
完整版基于DXF格式CAD文档保护系统置乱模块的设计与实现毕业设计
摘要
作为一款优秀的工业制图软件,AutoCAD得到了极为广泛的应用。
但是随着AutoCAD的广泛应用,许多问题也逐渐凸现出来,其中尤为突出的就是文档保护问题。
众所周知,每一张工程图纸都是工程师们的智慧结晶,关系了公司的最直接利益。
每个公司都把工程图纸当作最机密的文件,一旦泄露到竞争对手手中,将给公司带来无法估计的损失。
AutoDesk公司提供了一个优秀的二次开发工具ObjectARX,通过这个工具我们可以极为方便地开发出AutoCAD软件的插件。
这为我们开发出一个文档保护工具提供了可能性。
本文所论述CAD文档保护系统置乱模块,就是通过对CAD文档中各种实体进行一种可逆变换,令CAD文档脱离特定环境后可以隐藏其真实信息,从而起到保护作用。
本文的重点在于如何分割实体,针对不同的实体设计出相应的加密算法。
本文还涉及到对用户行为的监控,软件与AutoCAD软件的兼容性问题等问题的研究。
关键词 CAD;文档保护;置乱;加密算法
Abstract
Asagoodindustrialmappingsoftware,AutoCADhasbeenextremelywiderangeofapplications.However,withtheextensiveapplicationofAutoCAD,manyoftheproblemshighlightedbygradually,whichisparticularlystrikingisthatthedocumentprotectionissues.Asweallknow,everyoneofthedrawingsarethewisdomofengineers,andthecompany'smostdirectinterest.Engineeringdrawingsofeachcompanyregardedasthemostconfidentialdocuments,onceleakedtothehandsofcompetitors,thecompanywillnotabletoestimatethelosses.
AutoDeskhasprovidedanexcellentsecondarydevelopmenttoolsObjectARX,throughthistoolwecanveryeasilydevelopaplug-inAutoCADsoftware.Wedevelopedthisasatoolfortheprotectionofthedocumentprovidedapossibility.
ThispaperdiscussedbytheCADdocumentprotectionsystemscramblingmodules,theCADistodocumentthevariousentitiesinareversibletransformation,theCADdocumentsfromthespecificcircumstancesaftertheinformationtohideitsrealandthusplayaprotectiveeffect.Inthispaper,thefocusishowtoseparateentities,fordifferententitiestodesignthecorrespondingencryptionalgorithm.Italsoinvolvesmonitoringthebehaviorofusers,softwareandAutoCADsoftwarecompatibilityproblemsandotherissuesofthestudy.
KeywordsCADDocumentProtectionScramblingEncryptionalgorithm
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
指导教师评阅书
指导教师评价:
一、撰写(设计)过程
1、学生在论文(设计)过程中的治学态度、工作精神
□优□良□中□及格□不及格
2、学生掌握专业知识、技能的扎实程度
□优□良□中□及格□不及格
3、学生综合运用所学知识和专业技能分析和解决问题的能力
□优□良□中□及格□不及格
4、研究方法的科学性;技术线路的可行性;设计方案的合理性
□优□良□中□及格□不及格
5、完成毕业论文(设计)期间的出勤情况
□优□良□中□及格□不及格
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
建议成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
指导教师:
(签名)单位:
(盖章)
年月日
评阅教师评阅书
评阅教师评价:
一、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
二、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
建议成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
评阅教师:
(签名)单位:
(盖章)
年月日
教研室(或答辩小组)及教学系意见
教研室(或答辩小组)评价:
一、答辩过程
1、毕业论文(设计)的基本要点和见解的叙述情况
□优□良□中□及格□不及格
2、对答辩问题的反应、理解、表达情况
□优□良□中□及格□不及格
3、学生答辩过程中的精神状态
□优□良□中□及格□不及格
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
评定成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
教研室主任(或答辩小组组长):
(签名)
年月日
教学系意见:
系主任:
(签名)
年月日
第1章绪论
课题来源、研究目的及意义
本项目来源于北京航天益来电子科技有限公司的CAD文档保护系统的文档置乱模块。
AutoCAD软件是Autodesk在软件行业的第一场革命,AutoCAD软件享有广泛的声誉,它将制图带入了个人计算机时代[1]。
Autodesk于1994年开始在北京注册成立办事处。
过去的10年,中国数百万的建筑工程设计师和产品制造工程师利用了AutoCAD的数字化设计技术,甩掉了笨重的图板、铅笔和角尺这些束缚人类创造力奔涌的传统设计工具用数字化方式与中国无数的施工现场和车间交互各种各样的工程建筑与产品制造信息。
使得中国在数字化工程设计上的设计效率普遍提高。
成为中国工程师首选的工程制图软件。
AutoCAD软件也为中国的改革开放和社会主义现代化建设创造了丰功伟绩。
AutoCAD还为Autodesk公司的技术在建筑、基础设施、制造、媒体和娱乐以及无线数据等各个行业中的领先铺平了道路。
AutoCAD的出现确立了Autodesk公司在软件业霸主的地位,赢得了全世界人民的广泛赞誉和充分肯定。
但是随着AutoCAD软件在各领域的广泛使用,一些问题也开始逐渐出现,其中最突出的就是文档保护问题。
众所周知,每一张工程图纸都是工程师们的智慧结晶,关系了公司的最直接利益。
每个公司都把工程图纸当作最机密的文件,一旦泄露到竞争对手手中,将给公司带来无法估计的损失。
但是一直以来都缺少一些行之有效的手段来对这些文件进行保护。
因此我们的项目就是要开发一个比较有效的工具,对CAD文档进行保护,以期对这种现状进行改变。
国内外相关领域开发及应用现状分析
1.1.1主流文档编辑软件的保护措施
文档编辑软件基本上都附加有访问控制和数据保密功能,而且大多数的文档信息安全方案实施都基于此[2]。
在我们常用的各种文档编辑软件,比如Microsoft公司的Office系列文档编辑工具、Adobe公司AcrobatPDF文档编辑阅读器,以及zip或RAR压缩格式文件夹等等都自带了多种数据保护功能。
但是,这些文档编辑软件所提供的安全保护无论是从强度上还是功能上都不能满足用户的需求。
从保护强度上来说,针对主流文档编辑软件的密码保护功能,相应的破解工具可以轻易的获得。
比如PasswarePasswordRecoveryKit等。
从安全功能上来说,现有编辑软件所提供的安全功能简单,一般都是通过对称加密实现文档的保密性,而且通过用户对密钥的记忆实现所谓的访问控制。
即使实现了部分权限管理功能的最新版本的MSOfficeWord,其权限管理功能也十分容易破解。
但是针对WORD、PDF等格式的文档,已经存在了许多专业的文档加密工具,通过这些工具我们可以实现比较有效的文档保护。
1.1.2AutoCAD自带安全功能分析
AutoCAD自带的安全功能主要包括以下几种方式:
(1)自带口令安全——AutoCAD自带的口令安全选项和Word口令安全选项大体相同,通过市面上存在的一些针对Word的破解软件,我们不难发现想做出针对AutoCAD的破解软件并不是十分困难。
(2)电子传递——电子传递功能让用户可以把当前的图形和相关的文件打包到一个单独的传选集中,它可以帮助用户将图形文件打包,以加密的形式在互联网上传送。
(3)AutodeskStreamline——AutodeskStreamline为工程提供了一种易于使用的宿主环境,它可以帮助用户安全地共享设计和工程数据、更有效地进行协作并改善整个产品生命周期内的业务流程。
通过以下三种方式为用户的设计数据提供安全保护:
验证、访问控制和加密[3]。
1.1.3开发及应用现状分析
通过对市面上流通的一些相关加密软件进行分析,不难发现,大多数软件所使用的保护措施主要通过以下几种形式。
(1)权限控制——通过限制用户的一些操作来实现文档的保护,这样难免在使用软件的过程中带来一定的不便,而且破解方法也比较多。
(2)密码控制——通过设定密码来保护文档,市面上存在很多密码破解程序,通过这些软件,可以在很短的时间内破解由数字、字母构成的密码。
(3)禁止网络,部分硬件的使用——同样,给用户带来很大的不便。
由于CAD图是一种是矢量图,同标量图相比,要在矢量图里嵌入信息具有比较大的难度[5]。
对于矢量图形的一些加密处理技术还不够成熟,因此直接对CAD文档进行数字加密技术应用的比较少[6]。
本文研究的主要内容
本文主要研究如何通过使用一些比较行之有效的方法,对CAD文档进行一系列的保护工作,包括权限管理,文档置乱,篡改提醒,信息隐藏等
我的工作的重点在于如何对文档中的图形,文字等实体要素进行处理,通过一些加密手段,使图纸信息可以得到保密。
同时还不应该破坏文档本身的内容,通过解密操作,可以使文档得以还原。
本文主要针对以下内容进行了研究:
(1)用户监控模块的设计与实现;
(2)文档置乱以及还原模块的设计与实现;
(3)置乱算法的研究分析;
(4)程序与AutoCAD软件的兼容。
第2章系统需求分析和整体框架
主要开发内容
由于CAD文档的重要性,针对CAD文档的一些泄密事件也层出不穷。
虽然已经有了一些加密软件,但是总体效果并不是十分理想,破解方法比比皆是。
我们系统的整体开发内容就是开发出一个全面,有效的针对CAD文档的保护系统,通过这个系统,用户可以比较方便地对CAD文档进行保护工作,同时也不会影响到平时的工作。
针对CAD文档的保护方法,我们的系统主要可以分为下面几个主要模块,见图2-1。
图2-1系统整体模块
其中权限控制模块就是通过控制用户的权限来保护文档。
信息隐藏是在对一些重要信息进行加密隐藏。
篡改提醒通过对文档内部实体元素进行一种不可逆的映射,通过比较映射关系,可以很有效的文档是否被他人恶意修改。
本人所负责的模块为文档置乱模块。
这个模块需要实现的主要功能就是在文档保存的时候,对其内部的图形实体元素,文字标注等信息进行一种可逆的转化。
用户只有在特定的环境下,才可以对文档解密成功。
这样就可以使这个文档在脱离了特定环境时,不会将信息泄露。
需求分析
由于项目的分工,我对其他模块的了解并不是十分深入。
接下来,我就仅对我所负责的模块进行分析。
文档置乱模块根据自身的功能还可以分为几个小模块,主要包括:
用户监视模块,文档转换模块,实体置乱模块(根据各种实体的不同,还可以进一步细化),信息加密模块,文档恢复模块。
我们力求令整个系统的工作对用户都是透明的,用户在使用软件的过程中,甚至感受不到文件正在被加密解密。
本模块主要在用户关闭,打开文件的时候进行工作。
2.2.1用户监控模块功能需求
本系统需要作为一个插件嵌入到AutoCAD软件中,在用户进行关闭,另存为,打开等操作的时候,调用整个文档置乱模块。
通过本模块,系统可以捕捉到用户的操作,在进行相应操作的时候系统进行相应的处理。
2.2.2文档转换模块功能需求
我们的系统是建立在DXF格式文件的基础上的。
AutoCAD文件是以DWG格式进行储存,通过对DWG文件的研究,我们发现Autodesk公司对DWG文件进行了很好的保护。
我们从DWG文件中得到的仅仅是很紧凑的二进制代码,如果直接对这些二进制代码进行加密的话,需要非常大工作量的计算,这是用户所无法忍受的。
这个模块提供了一个将DWG格式文件与DXF格式文件之间的相互转换。
AutoCAD软件产生的图纸文件是DWG格式,DXF是一种开放标准的矢量图形文件,我们的系统通过对DXF文档进行相应操作,然后转换成DWG格式文件。
2.2.3实体置乱模块功能需求
CAD图纸是由各种实体元素构成的,例如点、线段、各种图形、文字标注等。
这个模块的功能就是针对各种不同的元素,进行不同的可逆的置乱操作。
并将置乱过程中所用到的辅助信息存储起来。
具体功能主要包括:
(1)点坐标的处理(例如直线的起点,终点)
(2)长度的处理(例如圆的半径长度)
(3)复杂图形的处理(例如正多边形的处理)
(4)标注的处理(包括静态标注、动态标注等)
(5)文字信息的处理
2.2.4信息加密模块功能需求
在实体置乱的过程中,将产生许多信息,例如运算用的矩阵。
通过这些信息,可以对文档进行恢复。
因此需要在对文档进行处理后对这些信息进行储存。
这些信息如果以明码的方式进行储存,这样就非常容易被破解,因此我们需要对这些信息进行加密处理。
2.2.5实体恢复模块功能需求
在用户打开文件的时候,这个文件其实已经是经过置乱的,如果直接返回给用户,用户是没办法得到有用的信息的。
因此,我们需要在用户打开文件的时候,对文档进行恢复工作。
系统整体框架
本系统致力于保护CAD文档的安全,而CAD文档的安全性问题主要是人为造成的。
因此我们的系统通过用户监控模块来对用户的行为进行监控,然后调用其它的相关模块对CAD文档进行保护工作。
用户监控模块贯穿于整个过程。
系统整体框架如图2-2所示。
图2-2系统整体框架
其中用户监控模块用于对用户行为进行监控,当用户作出类似于保存,打开,关闭等操作时,该模块截断AutoCAD软件的命令,然后调用我们的系统模块对文档进行保护。
文档转换模块用于将DWG文件转换成可供我们处理的DXF文件。
文档处理模块的主要功能是对安全性较低的文档进行处理,使其内部的实体进行一种可逆性的转换,使文档信息得到保护。
本章小结
本章对我们所开发的系统,以及本人所负责模块进行了简单的介绍。
确定了系统的功能需求,使我们对系统的有了比较直观的了解。
然后还给出了系统的一个整体框架,以方便理解我们系统的工作原理。
第3章用户监控模块的设计与实现
我们所开发的内容包括文档置乱,篡改提示,数字印章等模块,这些模块都需要面临着一个共同的问题,在什么时刻运行我们的程序,如何在这些时刻运行我们的程序。
这个问题如果无法解决,那么其他功能都无法有效地实现其作用。
因此本模块是其它模块正常运行的一个前提,不仅我所负责的模块需要使用到,其他模块也将使用到这个模块的功能。
本模块所要实现的功能是对用户的行为进行监控,在用户做出某些操作,比如关闭文档,另存为,打开文档的时候,截获系统传递的消息,并做出相关操作。
在具体实现方法的选择上,我们考虑了2个方法,一个是使用Windows钩子函数,另一个是ObjectARX反应器。
Windows钩子函数
Windows的钩子函数可以认为是Windows的主要特性之一。
利用它们,您可以捕捉您自己进程或其它进程发生的事件。
通过“钩挂”,您可以给Windows一个处理或过滤事件的回调函数,该函数也叫做“钩子函数”,当每次发生您感兴趣的事件时,Windows都将调用该函数[7]。
一共有两种类型的钩子:
局部的和远程的。
局部钩子仅钩挂你自己进程的事件。
远程的钩子还可以将钩挂其它进程发生的事件。
远程的钩子又有两种:
基于线程的——它将捕获其它进程中某一特定线程的事件。
简言之,就是可以用来观察其它进程中的某一特定线程将发生的事件。
系统范围的——将捕捉系统中所有进程将发生的事件消息。
安装钩子函数将会影响系统的性能。
监测“系统范围事件”的系统钩子特别明显。
因为系统在处理所有的相关事件时都将调用您的钩子函数,这样您的系统将会明显的减慢。
所以应谨慎使用,用完后立即卸载。
还有,由于您可以预先截获其它进程的消息,所以一旦您的钩子函数出了问题的话必将影响其它的进程。
记住:
功能强大也意味着使用时要负责任。
钩子函数根据事件又可以分成以下几种类型:
(1)键盘钩子和低级键盘钩子可以监视各种键盘消息。
(2)鼠标钩子和低级鼠标钩子可以监视各种鼠标消息。
(3)外壳钩子可以监视各种Shell事件消息。
比如启动和关闭应用程序。
(4)日志钩子可以记录从系统消息队列中取出的各种事件消息。
(5)窗口过程钩子监视所有从系统消息队列发往目标窗口的消息。
这些钩子,几乎可以覆盖了所有的Windows操作。
但是使用钩子函数将会面临许多问题:
系统移植问题——这边所提到的钩子函数,主要指Windows钩子函数,当我们的系统需要在其他操作系统进行工作的时候,比如在LINUX下,那么,我们的系统是否可以工作呢,我们是否需要对钩子函数重新进行编写呢
进程问题——如果我们使用了局部钩子,将需要对AutoCAD本身的进程进行修改,嵌入钩子函数,这样无疑难度是比较大的。
使用远程钩子,将需要建立一个新的进程,对AutoCAD进程进行监控,那么,如何通过这个进程来控制AutoCAD的进程,如何防止用户通过终止进程来取消监控,都将构成较大的问题。
技术问题——由于之前没有接触过钩子函数,因此需要从头开始学习,需要多长时间才能掌握这项技术,这是无法估计的。
因此,技术方面所带来的风险其实是相当大的。
ObjectARX反应器
ObjectARX中的ARX表示AutoCAD的运行时扩展(AutoCADRuntimeeXtension)。
ObjectARX是一个综合的API(ApplicationProgrammingInterface),他包含了将200多个类和3000多个函数[8]。
ObjectARX反应器其实也可以算是一种钩子函数,与Windows钩子函数不同的是,他是以类似于插件的形式,嵌入到AutoCAD程序中.其所监视的事件,也是针对一些AutoCAD所特有的事件。
经常使用到的ObjectARX反应器主要有以下几种类型:
(1)数据库反应器AcDbDatabaseReactor:
数据库反应器监视在AutoCAD数据库范围内的事件,例如添加或去除实体。
(2)AutoCAD编辑反应器AcDbEdi