“基于移动(USB)端口的数据保密及信息恢复管理系统”暑期科创设计报告

一、作品总体设计

“基于USB端口的数据保密及信息恢复管理软件”以安全软件与USB设备为载体,以各项功能为手段,以持续性服务为支撑,打造出集监测、防御、控制为一体的新型安全体系——SDCS(Spy Defense Control System)。

该体系的所有功能实现与服务支撑都由安全性软件和带有USB端口的设备共同构成。每份软件与USB硬件设备(U盘)单独匹配,在加解密时只有匹配成功才可进行相应操作,否则只能登陆软件进行简单磁盘监控。USB端口设备带有认证功能,在后期可以由此构成了企业的多级安全模型基础。革命性的改变了登录方法并且废除了现有的考勤制度,带有个人身份认证的USB设备是SDCS中的重要组成部分,与安全性软件进行组合则可完成加密文件、维护与监控数据、限制访问权限等功能。

软件与USB硬件的有机结合,共同实现了SDCS体系中对用户电脑全局监测、对文件敏感监控、对数据传输保护、对个人信息保护。使其适用于各个行业公司、企业、军工、政府等,并且以操作的便捷性与功能的全面性填补市场上此类设备的空白。目前市场上还没有一款产品具有如此全面的功能(基本覆盖了现行对个人与系统的所有需求与信息安全隐患)。

“SDCS安全管理卫士 V1.0”是基于Microsoft Visual Studio 2010上开发,一款专门针对以上安全方案,对计算机所有的USB接口进行监视、控制,保护计算机保存内容的软件。具备即时认证多种文件加密方式、查询电脑磁盘或USB存储设备历史使用记录及操作内容、USB端口加锁加密三大核心功能,同时还兼具病毒查杀、修复注册表等其他功能。运行稳定可靠,环境兼容(包括WIN XP/WIN 7/WIN 8/WIN 10),无需安装操作较为简便,同时提供用户专用登录密码,保护软件使用安全。

二、功能设计

1、R-Mess(n)新型加密算法设计(1024位):

加密流程:

(1)对于系统生成的随机数以二进制的形式放入一个R[1024]的数组内,数组内不足的位数补零

RàR[1024]                         (2-1)

(2)根据明文M数量依次将明文转换为n组以二进制数组M(n)[1024]为基本组成单位的明文数组群。(这里要注意的是明文分组的位数必须与随机数组的位数相等)

M(0)[1024]

M(1)[1024]

M è     :                               (2-2)

M(n)[1024]

(3)依次将n组明文数组与加密后的数组R[1024]进行异或运算,再次按序组合完成加密形成密文C

M(0)[1024]⊕R[1024]=C(0)

M(1)[1024]⊕R[1024]=C(1)

C =è              :                                (2-3)

M(n)[1024]⊕R[1024]=C(n)

C=C(0)+C(1)+C(2)+…+C(n)

(这里相加并不是进行加法运算,而是将分段加密密文依次衔接排放形成总密文)

(4)对随机数R进行RSA加密操作C(R),将加密的结果CR以二进制的形式放入一个CR[2048]的数组内,并将随机数的加密结果CR置于密文C之前(CR+C)

CR=R^e mod N,                         (2-4)

(5)对需要加密的明文内容M进行哈希函数运算,取得哈希值。哈希值将在加密结束后保存在文尾,以保证完整性,防止有人对密文进行篡改

MD5(CR+C)                            (2-5)

完成以上五步操作,最终完成加密,进行保存操作,保存结果为:

CR+C

MD5(CR+C)                             (2-6)

解密流程:

(1) 将需要解密的文本进行MD5运算,并与文本中的MD5(M)进行校验,确保完整性。

è 正确   继续解密

校验 MD5(CR+C)                             (2-7)

è 错误   恢复密文

(2) 打开文件提取出密文中的CR,使用解密密钥d对CR进行RSA解密恢复出R,将恢复出的R放入一个1024位的数组R[1024]

R=CR^d mod N                         (2-8)

RèR[1024]                            (2-9)

(3)  因为在加密中对明文只使用了异或运算,因此明文与加密后密文的长度是相等的。将密文的二进制位以1024为一组分割为n组,并将每组与R[1024]进行异或运算便可恢复出明文M

C(0)[1024]⊕R[1024]=M(0)

C(1)[1024]⊕R[1024]=M(1)

M =è              :                             (2-10)

C(n)[1024]⊕R[1024]=M(n)

M=M(0)+M(1)+M(2)+…+M(n)

2.恢复密文功能

技术保密,暂不公开

3.磁盘(包括移动设备)操作监控

创建新进程,进程中无限循环API函数ReadDirectoryChangesW,通过判断ReadDirectoryChangesW的返回值向主窗口发送消息,消息内容包含监视路径,文件操作(文件创建,文件修改,文件重命名,文件删除),操作时间。主窗口消息响应函数接受消息,将消息内容添加到表格中。

实现了对电脑中所有磁盘、文件的监控记录功能。

4.密钥即时更新

在系统中植入了密钥产生更新程序,写入到软件中。使得用户可以根据自身需要即时变更密钥。密钥更新程序设计由密钥产生和密钥植入两个子程序构成。

密钥更新根据RSA密钥生成原理,全局依靠随机数在一定范围内产生公钥(e,n),私钥d。因为目前大整数算法未优化运算时间较长,因此只先实现短位密钥更新。但是一旦优化了整个大整数算法,便可以扩展至所有位长加密体制中。此外因为我们的密钥更新是即时产生,没有预先运算存储,可以防止敌手对软件系统的破解而破坏整个加密体制。

密钥传输是将产生的密钥传输到软件及相应的硬件设备中,以确保必须使用USB硬件设备完成加解密,这样更加确保了安全性。

5.其他功能

(除加解密与监控模块外所有功能技术架构)


模块名称


关键类


功能简介


关键函数


函数功能


显示磁盘信息


CMyDlg2


报表展示PC所有磁盘信息(盘符、总量、余量)


Setexpandstyle()


控制样式


insertcolumn()


插入具体项目


EnumDrives()


磁盘列举


病毒查杀


CMyDlg7


检测Autorun病毒


dosomething()检测按钮


执行查杀


dosomething()插拔设备


FindAutorun()


寻找autorun.inf文件


SetFileAttributes()


修改为正常属性


进程列举分析与结束


AdjustPrivileges()


提取权限


GetProcessList()


列举进程


OnMCopyPath()


拷贝路径


OnMRefreshList()


进程刷新


OnMEdnTask()


定位文件


OnMFindExe()


结束进程


调用第三方查杀


ShellExecute()


选择第三方程序


WritePrivateProfileString()


写入login.inf文件


GetPrivateProfileString()


存储在login.inf文件


显示使用记录


CMyDlg3


显示连接PC的USB设备信息与使用时间


RegOpenKeyEx()


打开指定注册表键


RegCreateKeyEx()


创建不存在键


RegEnumValue()


列出所用名称的值


RegEnumKey()


返回注册表键信息


RegQueryInfoKey()


返回设备详细信息


RegCloseKey()


关闭注册表键


USB端口加锁


CMyDlg4


对USB端口进行权限管理


OnBnClickedButton1()


执行操作


m_Btn1=1/0


USB盘符分配开启/关闭


m_Btn2=1/0


USB自动运行开启/关闭


m_Btn3=1/0


拷贝电脑资料允许/禁止


辅助功能


CMyDlg5


对注册表、CMD、任务管理器进行修复或者禁止


OnStnClickedStaticReg()


修复注册表


OnStnClickedStaticCmd()


禁用注册表


OnStnClickedStaticTask()


修复cmd


OnStnClickedStaticNo1()


禁用cmd


OnStnClickedStaticNo2()


修复任务管理器


OnStnClickedStaticNo3()


禁用任务管理器


综合设置


CMyDlg6


修改软件登录密码


OnBnClickedButton1()


设置开机启动


OnBnClickedButton3()


重置登录密码


软件帮助


CMyStatic


帮助文档


OnLButtonUp


打开txt帮助文档


软件登录


CLOGIN


软件登录


OnOK()


密码输入验证


OnInitDialog()


密码初始化

三、R-Mess(n)算法安全性论证

1.针对随机数破解

R-Mess(n)加密算法中的安全性主要依赖于对明文的长位分组和对与明文等长位的随机数R进行加密。而且对R的加密也是整个算法中唯一需要的数学运算。因此想要破译使用R-Mess(n)算法加密明文的一种方法就是攻破使用RSA加密的随机数R。

随机数本身由系统产生,每次执行加密都会产生1024位不同的随机数,完成明文加密后随机数R被RSA加密为CR,随即R被销毁。只有对CR解密才能恢复出正确的随机值。但是目前并没有一种有效的可以攻破长位RSA加密的方法,尤其是使用长位数的密钥。我们在R-Mess(n)算法中使用密钥长度为1024位,因此对于攻破RSA加密恢复出R来破译明文的可能性,在量子计算机技术未成熟前,几乎不存在任何可能性。

 

 2.对密文进行统计分析

        因为在一次性密码本加密中密码本的长度必须与明文长度相等,但是在R-Mess(n)

加密算法中只是使用一个1024位的随机数,也就是说对于n个明文段重复使用了同一组一次性密码本,这就必须要考虑到利用频率统计分析对密文进行破译了。

但是必须要指出的是,采用频率统计对于英文来说是较为管用的,因为英文的组成字只用26个.。而对于汉字来说,文章组成的基本单位是汉字,汉字因为数量众多,对于汉字的统计分析并没有什么效果。根据清华大学汉字频率表统计资料,汉字使用频率最高的500个字可以覆盖到日常使用的%78.53,其余列表如下:


字数


覆盖面(%)


500


78.53202


1000


91.91527


1500


96.47563


2000


98.38765


2500


99.24388


3000


99.63322


3500


99.82015


4000


99.91645

(表3-1)

可以看到,4000字已经基本覆盖了我们日常使用的%99.9以上,那也就意味着在频率统计分析里会有4000种频率,而且对于一个1024明文组中会有64个汉字,这64个汉字中就算有相同的字也会因为R[1024]而在密文中以不同的二进制表示。n组明文分组中只有同一个汉字被同位置的随机数R反复加密才会出现同样的二进制位。

此外,对于n个1024位中,出现相同的16位概率极大,所以这又无形的增加了统计的难度,因此,对于R-Mess(n)算法的统计分析攻击是行不通的。

3.对密文进行组异或破解

在R-Mess(n)加密算法中对明文进行了1024位的分组操作,加密时只是与随机数数组R[1024]进行异或。因此破译时可以在n个明文组中选择其中一组密文进行同位异或遍历(即从1024位的0000 0000…0000 0000到1024位的 1111 1111…1111 1111),并将每次同位异或出的结果转为文字进行判别。

那么对于一个1024位的密文数组,就会产生2^1024个结果,筛选出较有逻辑性的结果,并计算出相对应的R。再将R带入到密文C中,统计出所有可能的结果,筛选出全文较有逻辑性与价值的明文,最后由人力或者智能判别系统来判定哪一个才是原始正确的明文。

下面以一组32位的密文组进行示范:

计算机中一个汉字的二进制为16位,两个汉字便为32位,示范词组为“海洋”

将“海洋”转二进制放入数组m[32]中

m[32]=1011 1010 1010 0011 1101 0001 1111 0011

我们设随机数数组为

r[32]=1100 0010 0001 1101 1010 0110 0000 1100

那么根据R-Mess(n)算法进行一次运算,得到c[32]

m[32]=1011 1010 1010 0011 1101 0001 1111 0011

c[32]=                       ⊕

r[32]=1100 0010 0001 1101 1010 0110 0000 1100

c[32]=0111 1000 1011 1110 0111 0111 1111 1111

开始进行对c[32]进行同位异或遍历

c[32]=0111 1000 1011 1110 0111 0111 1111 1111

C(0)=                       ⊕

0000 0000 0000 0000 0000 0000 0000 0000

c0=c[32]

c0è“×緖”

c[32]=0111 1000 1011 1110 0111 0111 1111 1111

C(2^0)=                       ⊕

0000 0000 0000 0000 0000 0000 0000 0001

c1=0111 1000 1011 1110 0111 0111 1111 1110

c1è“×緖 ”(注意与c0的区别,此处带有空格)

依次进行,直到c31

c[32]=0111 1000 1011 1110 0111 0111 1111 1111

C(2^32)=                       ⊕

1111 1111 1111 1111 1111 1111 1111 1111

C(2^32)=1000 0111 0100 0001 1000 1000 0000 0000

C(2^32)è“口参”

从32位的实验我们可以看到,2^32=4294967296那么总共就会有4294967296个结果,而且在这将近40亿的结果中寻找具有逻辑性的词语,对于智能判别系统都是一个庞大的工作量量,而我们采用1024位的随机数,那么采用密文组异或遍历破译法就会有2^1024种结果,而2^1024=179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216

对于如此庞大的数据量进行逻辑判别选择,结果也是可想而知的。

4.对密文切分碎片破解

尽管我们保存密文的格式为CR+C+Hash(M),也就是说进行密文破译时将密文转为二进制时,前面的一部分都是加密后随机数CR的二进制位,那么对于敌手来说,首先要确定的是密文组C是从哪个二进制位置开始的。基于对敌手的能力和资源进行充分的假设,也就是假设了敌手知道密文组C的起始位置。那么敌手就可以将密文切分为16位为一个碎片的碎片群,当然碎片群里的碎片是前后衔接的,不能随意改变碎片位置的,因为每一个密文碎片的明文对应了一个相应汉字。

那么对于破译问题就简化为了每个密文碎片对应汉字的可能性以及碎片与碎片之间的逻辑关系这两个子问题。

(1)    密文碎片对应汉字的可能性

因为密文碎片每个为十六位,那么在理论上就有2^32=4294967296种可能性。但是根据由中国国家标准总局1980年发布的《信息交换用汉字编码字符集》GB-2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个。(GB-2312的出现,基本满足了汉字的计算机处理需要,它所收录的汉字已经覆盖中国大陆99.75%的使用频率。)

如果加密明文全是汉字没有任何符号字符(这也是比较好的假设),那么其实一个密文碎片对应可能性的汉字就是6763个。这已经基本囊括了日常使用的所有汉字了。

(2)    密文碎片之间的逻辑关系

因为碎片明文之间的所有逻辑关系共同构成了明文的逻辑语义,且碎片之间的关系是线性的,那么如果可以用一种方法得到碎片与碎片之间的逻辑语义,那么就可以极大地增加破解出明文的概率。但遗憾的是,每一个密文碎片都包含了日常使用汉字出现的所有可能性,所以即使得到了的碎片也不能提供有效的线索。如果没有有效的观测值,就很难去确定碎片之间隐含的关系,因此隐马尔科夫模型在这里并不适用。

我们假设这里有四个密文碎片,分别为P1,P2,P3,P4,每个密文碎片均对应6763个汉字。

时间: 2024-10-30 04:33:24

“基于移动(USB)端口的数据保密及信息恢复管理系统”暑期科创设计报告的相关文章

文献综述十五:基于b/s中小型超市进销存管理系统的研究与设计

一.基本信息 标题:基于b/s中小型超市进销存管理系统的研究与设计 时间:2015 出版源:湘西财经大学 文件分类:对超市管理系统的研究 二.研究背景 在竞争日益激烈的行业中,尽可能降低运营成本,逐步扩大超市经营规模,并带动销售増长. 三.具体内容 论文的内容分为6个部分.分别是绪论.系统开发理论基础与技术.中小型超市进销存管理系统的需求分析.中小型超市进销存管理系统的设计.中小型超市进销存管理系统的实现与测试. 绪论:系统设计并实现了六大功能模块,它们分别是商品进货管理.商品库存管理.员工信息

c# 调用zebra打印指令 打印到USB端口

c# 调用zebra打印机指令打印条码,如果直接打印到lpt1端口的打印机,通过copy指令没有问题, 但如果ZEBRA打印机是通过USB连接,打印机端口为usb001,则程序不能直接拷贝到usb001端口. 必须先共享本机的usb端口打印机,再将共享后的打印机名连接为LPT端口打印机,则可以成功打印. from: http://answers.microsoft.com/en-us/windows/forum/windows_7-hardware/how-do-i-print-a-file-t

基于IP、端口和FQDN实现虚拟主机

虚拟主机可以实现多站点共存,当站点的访问量不大时,为了节省资源(IP,物理主机),可以将多个站点运行于一台物理主机. 一.基于IP的虚拟主机: 实现虚拟主机必须先将中心主机的配置注释掉,即禁用中心主机,只需要注释DocumentRoot指令对应的行,而后再定义虚拟主机. 基于IP的虚拟主机要求一台物理机上要有多个IP,每个虚拟主机分别监听在不同IP地址上,访问时可以基于虚拟主机的名称也可以使用IP地址的方式在浏览器界面内访问.比如,两台虚拟主机www.a.org和www.b.net,我们的物理主

供应虚拟机没有usb端口和无法识别映射usb解决方案

USB Server 是硬件的USB设备远程连接解决方案,USB Server采用1.2GHz的arm SO供一个千光网络接口和28个USB 2.0接口,满足高速应用需求.USB Server对电源做了特别确保28个USB端口均提供750mA的电流供应. 系统对国内应用得比较多的USB加密狗提供了完善的支持,有很好的兼容性.提供行业软件ukey共享,虚拟环境识别ukey解决方案,外网远程识别usb服务扫描仪共享,短信猫等.利用独有的专利技术,使得用户可以利用单一产品方案即可方便地在空间受限的环境

虚拟机没有对应usb端口和无法识别usb|加密狗怎么办

虚拟机没有对应端口来时识别加密狗或usb设备,那我们就要采用第三方的设备来实现在虚拟机识别映射加密狗的功能.那我们怎么去选择第三方的设备呢,今天我给你大家说一种设备usb server硬件服务器大家有没听说过,usb server是专门解决虚拟化|虚拟机识别映射usb加密狗和设备,它还可以实现加密狗共享.动态迁移.远程连接.加密狗的集中管理和加密锁的管理方案等功能.支持Vmware.hyper-v等虚拟环境,支持各种Windows平台:支持各种行业专业软件以及各大银行的Ukey.USB SEVE

Nginx基于TCP/UDP端口的四层负载均衡(stream模块)配置梳理

Nginx基于TCP/UDP端口的四层负载均衡(stream模块)配置梳理 通常我们会用Nginx的upstream做基于http/https端口的7层负载均衡,由于Nginx老版本不支持tcp协议,所以基于tcp/udp端口的四层负载均衡一般用LVS或Haproxy来做.至于4层负载均衡和7层负载均衡的区别,可以参考:http://www.cnblogs.com/kevingrace/p/6137881.html.然而Nginx从1.9.0版本开始,新增加了一个stream模块,用来实现四层协

nginx篇最初级用法之三种虚拟主机基于域名\基于端口\基于IP地址端口的虚拟主机

在nginx中虚拟主机的类型与apache一样也有三种 1.基于域名的虚拟主机 2.基于端口的虚拟主机 3.基于IP地址端口的虚拟主机 在nginx配置文件中每一个server为一个虚拟主机如果需要多个虚拟主机只需要添加server即可例如 server{ listen 80; server_name www.lqinghua.com   //基于域名的虚拟主机 location / { root def; index index.html; } } server{ listen 8080;  

【CPU微架构设计】分布式多端口(4写2读)寄存器堆设计

寄存器堆(Register File)是微处理的关键部件之一.寄存器堆往往具有多个读写端口,其中写端口往往与多个处理单元相对应.传统的方法是使用集中式寄存器堆,即一个集中式寄存器堆匹配N个处理单元.随着端口数量的增加,集中式寄存器堆的功耗.面积.时序均会呈幂增长,进而可能降低处理器总体性能. 下图所示为传统的集中式寄存器堆结构: 本文讨论一种基于分布存储和面积与时序互换原则的多端口寄存器堆设计,我们暂时称之为"分布式寄存器堆".该种寄存器从端口使用上,仍与集中式寄存器堆完全兼容,但该寄

基于SCRUM方法实践的西油计科党建设计与实现-个人实践流程清单

基于SCRUM方法实践的西油计科党建设计与实现 个人实践流程清单 一.Alpha版本冲刺个人在SCRUM团队任务清单: 时间 我这个三天做了什么 实际解决燃尽图项目数量 我遇到了什么问题 我下一个三天要做什么 预计下三天完成燃尽图项目数量 2019.10.9 将大家在国庆完成的组织管理.党员管理小程序前端代码与自己本地微擎小程序后带代码整合,并做单元测试,搭建本地微擎后台.认证个人小程序号.购买认证域名.域名解析绑定服务器 8 SSL证书一直审核出现问题.整合前端组织管理的小程序代码一直显示一直