文档库 最新最全的文档下载
当前位置:文档库 › CRC在软件加密中的应用_2

CRC在软件加密中的应用_2

CRC在软件加密中的应用_2
CRC在软件加密中的应用_2

首先,您要准备一些工具:Ollydbg1.10、DeDe、Peid全能插件版,也许还需要PE-tools1.50。这些软件您可以在网上很轻松的找到,如果没有可以与我联系。

第一步:检查

Peid是目前最流行,也是比较完善的检测软件。可以检测软件是否加壳,使用了什么编译器等诸多信息,同时其丰富的插件可以完成许多扩展功能。现在,我们先用Peid检测crctest.exe,查看程序的基本信息(如图):

Peid显示软件是用“Borland C++1999”版的编译器进行编译的,其实一般情况下,用BCB编译的程序也会显示为用“Borland C++1999”编译。我们再用其中的插件“Krypto ANALyzer”,来分析程序中是否有通用的加密算法。

我们可以看到,程序使用了CRC-32算法:

◆这里想告诉大家的是,Krypto ANALyzer是使用查询数组(码表)来确定软件使用了什么算法,而软件使用动态生成数组(码表)的话,它是无法检测出算法来的。呵呵,这也是它的漏洞了。你可以程序中保存一个其它算法的码表来混淆检测器。(crctest.exe中就定义了一个CRC32的数组,但我们并没有使用它,而是使用了动态生成的码表)

第二步:分析

了解软件没有加壳,而且可能是由BCB编译的之后,我们就要着手分析了。针对Borland公司出品的Delphi和BCB编译器所生成执行程序,可以使用DeDe反编译器进行分析,它可以很好的恢复程序的原始代码信息。

下面就是用DeDe将crctest.exe载入后的效果界面:

现在我们切换到“过程”页面,选择“main”单元:

上图中红线框中是我们感兴趣的地方,当按下“注册”按钮时,这个事件会被调用。双击这个事件,我们就可以看到这个事件的汇编代码:

在其中显示的汇编代码已经被DeDe处理过,对标准的函数调用已经进行了

注释,其可读性很好。00401C90这个地址就是这个事件函数的入口点,如果您有一些基本功,可以认真分析一下。您也许可以看出关键的代码。不过,下面我们要进入动态调试了!

第三步:调试破解

在检测和分析的基础上,我们可以开始动态调试了。我要用动态的数据来解释破解的思路与过程。现在,请打开Ollydbg动态调试器,将crctest.exe载入,停在程序的入口处。

按Ctrl+G,输入00401C90,直接定位到“注册”按钮的点击事件函数入口处,并按F2下断点。

接下来,可以按F9运行程序,进入调试,然后在窗口中,随便输入注册名和注册码,点击“注册”按钮,程序将会中断在00401C90处(如下图):

不断按F8单步运行,其间您可以看到许多的数据在变化,不用管它,一直按F8运行,直到显示注册错误的信息框,再看运行的状态:

可以看到,在运行00401FDF这个地址的时候,软件显示了注册错误的信息框。显然这个call00468C08指令就是显示信息框的函数。我们只要找到调用这个

Call的调用(有点绕舌),就可以找到关键点了。大家向上回溯代码可以看到下面的内容:

我们将汇编代码提取出来如下:

===========================

/*401F65*/lea edx,[local.2]

/*401F68*/lea eax,[local.4]

/*401F6B*/call crctest.00468DA0//对比注册码是否正确

/*401F70*/test al,al

/*401F72*/je short crctest.00401FC7//如果不正确就跳走

/*401F74*/mov eax,dword ptr ds:[46EF94]

/*401F79*/push40040

/*401F7E*/lea ecx,dword ptr ds:[edi+141]

/*401F84*/lea edx,dword ptr ds:[edi+EB]

/*401F8A*/mov eax,dword ptr ds:[eax]

/*401F8C*/call crctest.00468C08//显示成功注册的提示信息

/*401F91*/mov word ptr ds:[ebx+10],8C

/*401F97*/lea edx,dword ptr ds:[edi+146]

/*401F9D*/lea eax,[local.14]

/*401FA0*/call crctest.00468C18

/*401FA5*/inc dword ptr ds:[ebx+1C]

/*401FA8*/mov edx,dword ptr ds:[eax]

/*401FAA*/mov eax,dword ptr ds:[esi+2F8]

/*401FB0*/call crctest.00452658

/*401FB5*/dec dword ptr ds:[ebx+1C]

/*401FB8*/lea eax,[local.14]

/*401FBB*/mov edx,2

/*401FC0*/call crctest.00468CD0

/*401FC5*/jmp short crctest.00401FE4

/*401FC7*/mov eax,dword ptr ds:[46EF94]//跳转到这里

/*401FCC*/push40010

/*401FD1*/lea ecx,dword ptr ds:[edi+1B4]

/*401FD7*/lea edx,dword ptr ds:[edi+16A]

/*401FDD*/mov eax,dword ptr ds:[eax]

/*401FDF*/call crctest.00468C08//显示错误注册的提示信息===========================

由此可以看到软件的注册检查是很简单的,只要将00401F72处的代码:

je short crctest.00401FC7

修改为:

nop

nop

就可以暴破了!

大家可以在Ollydbg中将00401F72处的代码修改成下面的形式:

然后,取消所有的断点,直接按F9运行程序,再随意输入注册名和注册码,点击“注册”。看到了吗?

软件已经成功注册了!但是真的成功了吗?不要高兴的太早,还有CRC自校验没有解决呢!请先将修改过的程序保存为另一个文件crctest_1.exe。

●方法:在汇编代码上点右键,选择“复制到可执行程序”--“所有改动”,再选择“全部复制”打开新的窗口。在新的窗口中点右键,选择“保存文件”,输入文件名就可以保存。

现在,请暂时关闭ollydbg,运行新保存的文件crctest_1.exe。怎么样,没有成功吧!软件发现自己被修改了。目前,我们只完成了注册码校验的暴破,还没有解决CRC的校验保护,这才是我们的重头戏,而这其实很简单。马上动手!

再次打开ollydbg,这次就要载入crctest_1.exe了,因为它已经暴破了注册校验的部分。在开始之前,我们要分析一下思路:软件要进行自校验,就一定要读文件到内存中,我们只要找到读文件的函数,就可以顺藤摸瓜找到校验的核心部分了。好,在ollydbg中按ctrl+n打开函数导入导出表,找到ReadFile函数。

在ReadFile这一行上点右键,选择“在每个参考上设置断点”,状态条上显示有六个断点被设置。不管它了,按F9开始运行!很快软件就被断下来:

大家不用花时间在这些汇编代码上,我们的目标是关键跳转点。一直按F8返回到上级调用:

最终我们会返回到00401A8B这个地址,而在其上、下方有两个调用:/*401A86*/call crctest_.00401B8C//计算当前的CRC校验码

/*401A8B*/mov esi,eax

/*401A8D*/mov eax,ebx

/*401A8F*/call crctest_.00401AA0//读取原始的CRC校验码

这两个调用分别返回当前的CRC校验码和原始的CRC校验码,具体过程大家可以进入其中进行分析,这里不做详解。接下来,继续按F8,直到返回到更上级的调用(建议按Alt+B,关闭所有中断):

经过三次返回,我们终于看到了关键点:

/*40193E*/call crctest_.00401A80//这个调用进行自校验

/*401943*/test al,al//检查校验的结果

/*401945*/jnz short crctest_.0040196F//如果通过就跳走

/*401947*/mov eax,dword ptr ds:[46EF94]

/*40194C*/push40010

/*401951*/mov ecx,crctest_.0046A5E0

/*401956*/mov edx,crctest_.0046A5BC

/*40195B*/mov eax,dword ptr ds:[eax]

/*40195D*/call crctest_.00468C08

/*401962*/mov edx,dword ptr ds:[46EF94]

/*401968*/mov eax,dword ptr ds:[edx]

/*40196A*/call crctest_.004488FC

/*40196F*/mov edx,[local.10]//通过以后,就跳到这里

/*401972*/mov dword ptr fs:[0],edx

/*401979*/mov eax,[local.1]

/*40197C*/test bl,bl

/*40197E*/je short crctest_.00401985

/*401980*/call crctest_.00468F61

/*401985*/pop esi

/*401986*/pop ebx

/*401987*/mov esp,ebp

/*401989*/pop ebp

/*40198A*/retn

很显然,我们只要将00401945处的代码:

jnz short crctest_.0040196F

修改为:

jmp short crctest_.0040196F//强行跳转就可以强制为自校验通过的状态。好了,接下来的保存工作就不用我多说了。最后,再用Keymake软件制作出破解补丁就可以完成注册了!软件包中就保存了破解补丁crctest_patch.exe,大家只要运行就可以看到效果了!

OK,到目前为止,我为您制作的CRC保护实际已经被完全破解了,整个过程比较啰嗦,只是力求详尽。在看过这一部分后,您应该对破解CRC保护的软件有了感性和理性的认识。

附表1

CRC-16的码表

dw00000h,0C0C1h,0C181h,00140h,0C301h,003C0h,00280h,0C241h dw0C601h,006C0h,00780h,0C741h,00500h,0C5C1h,0C481h,00440h dw0CC01h,00CC0h,00D80h,0CD41h,00F00h,0CFC1h,0CE81h,00E40h dw00A00h,0CAC1h,0CB81h,00B40h,0C901h,009C0h,00880h,0C841h dw0D801h,018C0h,01980h,0D941h,01B00h,0DBC1h,0DA81h,01A40h dw01E00h,0DEC1h,0DF81h,01F40h,0DD01h,01DC0h,01C80h,0DC41h dw01400h,0D4C1h,0D581h,01540h,0D701h,017C0h,01680h,0D641h dw0D201h,012C0h,01380h,0D341h,01100h,0D1C1h,0D081h,01040h dw0F001h,030C0h,03180h,0F141h,03300h,0F3C1h,0F281h,03240h dw03600h,0F6C1h,0F781h,03740h,0F501h,035C0h,03480h,0F441h dw03C00h,0FCC1h,0FD81h,03D40h,0FF01h,03FC0h,03E80h,0FE41h dw0FA01h,03AC0h,03B80h,0FB41h,03900h,0F9C1h,0F881h,03840h dw02800h,0E8C1h,0E981h,02940h,0EB01h,02BC0h,02A80h,0EA41h dw0EE01h,02EC0h,02F80h,0EF41h,02D00h,0EDC1h,0EC81h,02C40h dw0E401h,024C0h,02580h,0E541h,02700h,0E7C1h,0E681h,02640h dw02200h,0E2C1h,0E381h,02340h,0E101h,021C0h,02080h,0E041h

dw0A001h,060C0h,06180h,0A141h,06300h,0A3C1h,0A281h,06240h dw06600h,0A6C1h,0A781h,06740h,0A501h,065C0h,06480h,0A441h dw06C00h,0ACC1h,0AD81h,06D40h,0AF01h,06FC0h,06E80h,0AE41h dw0AA01h,06AC0h,06B80h,0AB41h,06900h,0A9C1h,0A881h,06840h dw07800h,0B8C1h,0B981h,07940h,0BB01h,07BC0h,07A80h,0BA41h dw0BE01h,07EC0h,07F80h,0BF41h,07D00h,0BDC1h,0BC81h,07C40h dw0B401h,074C0h,07580h,0B541h,07700h,0B7C1h,0B681h,07640h dw07200h,0B2C1h,0B381h,07340h,0B101h,071C0h,07080h,0B041h dw05000h,090C1h,09181h,05140h,09301h,053C0h,05280h,09241h dw09601h,056C0h,05780h,09741h,05500h,095C1h,09481h,05440h dw09C01h,05CC0h,05D80h,09D41h,05F00h,09FC1h,09E81h,05E40h dw05A00h,09AC1h,09B81h,05B40h,09901h,059C0h,05880h,09841h dw08801h,048C0h,04980h,08941h,04B00h,08BC1h,08A81h,04A40h dw04E00h,08EC1h,08F81h,04F40h,08D01h,04DC0h,04C80h,08C41h dw04400h,084C1h,08581h,04540h,08701h,047C0h,04680h,08641h dw08201h,042C0h,04380h,08341h,04100h,081C1h,08081h,04040h

附表2

CRC-32的码表

dd000000000h,077073096h,0EE0E612Ch,0990951BAh,0076DC419h,0706AF48Fh, 0E963A535h,09E6495A3h,00EDB8832h,079DCB8A4h

dd0E0D5E91Eh,097D2D988h,009B64C2Bh,07EB17CBDh,0E7B82D07h,090BF1D91h, 01DB71064h,06AB020F2h,0F3B97148h,084BE41DEh

dd01ADAD47Dh,06DDDE4EBh,0F4D4B551h,083D385C7h,0136C9856h,0646BA8C0h, 0FD62F97Ah,08A65C9ECh,014015C4Fh,063066CD9h

dd0FA0F3D63h,08D080DF5h,03B6E20C8h,04C69105Eh,0D56041E4h,0A2677172h, 03C03E4D1h,04B04D447h,0D20D85FDh,0A50AB56Bh

dd035B5A8FAh,042B2986Ch,0DBBBC9D6h,0ACBCF940h,032D86CE3h,045DF5C75h, 0DCD60DCFh,0ABD13D59h,026D930ACh,051DE003Ah

dd0C8D75180h,0BFD06116h,021B4F4B5h,056B3C423h,0CFBA9599h,0B8BDA50Fh, 02802B89Eh,05F058808h,0C60CD9B2h,0B10BE924h

dd02F6F7C87h,058684C11h,0C1611DABh,0B6662D3Dh,076DC4190h,001DB7106h, 098D220BCh,0EFD5102Ah,071B18589h,006B6B51Fh

dd09FBFE4A5h,0E8B8D433h,07807C9A2h,00F00F934h,09609A88Eh,0E10E9818h, 07F6A0DBBh,0086D3D2Dh,091646C97h,0E6635C01h

dd06B6B51F4h,01C6C6162h,0856530D8h,0F262004Eh,06C0695EDh,01B01A57Bh, 08208F4C1h,0F50FC457h,065B0D9C6h,012B7E950h

dd08BBEB8EAh,0FCB9887Ch,062DD1DDFh,015DA2D49h,08CD37CF3h,0FBD44C65h, 04DB26158h,03AB551CEh,0A3BC0074h,0D4BB30E2h

dd04ADFA541h,03DD895D7h,0A4D1C46Dh,0D3D6F4FBh,04369E96Ah,0346ED9FCh, 0AD678846h,0DA60B8D0h,044042D73h,033031DE5h

dd0AA0A4C5Fh,0DD0D7CC9h,05005713Ch,0270241AAh,0BE0B1010h,0C90C2086h, 05768B525h,0206F85B3h,0B966D409h,0CE61E49Fh

dd05EDEF90Eh,029D9C998h,0B0D09822h,0C7D7A8B4h,059B33D17h,02EB40D81h, 0B7BD5C3Bh,0C0BA6CADh,0EDB88320h,09ABFB3B6h

dd003B6E20Ch,074B1D29Ah,0EAD54739h,09DD277AFh,004DB2615h,073DC1683h, 0E3630B12h,094643B84h,00D6D6A3Eh,07A6A5AA8h

dd0E40ECF0Bh,09309FF9Dh,00A00AE27h,07D079EB1h,0F00F9344h,08708A3D2h, 01E01F268h,06906C2FEh,0F762575Dh,0806567CBh

dd0196C3671h,06E6B06E7h,0FED41B76h,089D32BE0h,010DA7A5Ah,067DD4ACCh, 0F9B9DF6Fh,08EBEEFF9h,017B7BE43h,060B08ED5h

dd0D6D6A3E8h,0A1D1937Eh,038D8C2C4h,04FDFF252h,0D1BB67F1h,0A6BC5767h, 03FB506DDh,048B2364Bh,0D80D2BDAh,0AF0A1B4Ch

dd036034AF6h,041047A60h,0DF60EFC3h,0A867DF55h,0316E8EEFh,04669BE79h, 0CB61B38Ch,0BC66831Ah,0256FD2A0h,05268E236h

dd0CC0C7795h,0BB0B4703h,0220216B9h,05505262Fh,0C5BA3BBEh,0B2BD0B28h, 02BB45A92h,05CB36A04h,0C2D7FFA7h,0B5D0CF31h

dd02CD99E8Bh,05BDEAE1Dh,09B64C2B0h,0EC63F226h,0756AA39Ch,0026D930Ah, 09C0906A9h,0EB0E363Fh,072076785h,005005713h

dd095BF4A82h,0E2B87A14h,07BB12BAEh,00CB61B38h,092D28E9Bh,0E5D5BE0Dh, 07CDCEFB7h,00BDBDF21h,086D3D2D4h,0F1D4E242h

dd068DDB3F8h,01FDA836Eh,081BE16CDh,0F6B9265Bh,06FB077E1h,018B74777h, 088085AE6h,0FF0F6A70h,066063BCAh,011010B5Ch

dd08F659EFFh,0F862AE69h,0616BFFD3h,0166CCF45h,0A00AE278h,0D70DD2EEh, 04E048354h,03903B3C2h,0A7672661h,0D06016F7h

dd04969474Dh,03E6E77DBh,0AED16A4Ah,0D9D65ADCh,040DF0B66h,037D83BF0h, 0A9BCAE53h,0DEBB9EC5h,047B2CF7Fh,030B5FFE9h

dd0BDBDF21Ch,0CABAC28Ah,053B39330h,024B4A3A6h,0BAD03605h,0CDD70693h, 054DE5729h,023D967BFh,0B3667A2Eh,0C4614AB8h

dd05D681B02h,02A6F2B94h,0B40BBE37h,0C30C8EA1h,05A05DF1Bh,02D02EF8Dh

加密解密软件的设计与实现

课程设计任务书 2010—2011学年第二学期 专业:计算机科学与技术学号:080101010 姓名:刘海坤 课程设计名称:计算机网络课程设计 设计题目:加密解密软件的设计与实现 完成期限:自2011 年 6 月21 日至2011 年 6 月26 日共 1 周 设计目的: 本程序设计所采用的就是DES算法,同时利用Java的GUI编程,生成文本对话框,对文件的路径进行选择、提供密钥框、加密和解密按钮。 功能要求:根据DES算法,设计加密解密软件来为各种文件加密解密。 一、设计的任务:根据设计整体需求,本人负责窗体的设计与实现和目标文件 的导入模块。 二、进度安排: 三、主要参考资料: [1] 谢希仁.计算机网络教程.北京: 人民邮电出版社,2006. [2] 耿祥义.Java2使用教程:清华大学出版社,2006. [3] 方敏,张彤.网络应用程序设计.西安:电子科技大学出版社,2005. [4] 黄超.Windows下的网络编程.北京:人民邮电出版社,2003. 指导教师(签字):教研室主任(签字): 批准日期:年月日

摘要 随着计算机的应用和网络技术的不断发展,网络间的通讯量不断的加大,人们的个人信息、网络间的文件传递、电子商务等方面都需要大力的保护,文件加密技术也就随之产生。文件的加密主要是由加密算法实现,加密算法有多种,常见的有RSA、DES、MD5等。本程序设计对文件的加密使用的是DES加密算法。 DES是分块加密的。DES用软件进行解码需要用很长时间,而用硬件解码速度非常快,1977年,人们估计要耗资两千万美元才能建成一个专门计算机用于DES的解密,而且需要12个小时的破解才能得到结果。所以,当时DES被认为是一种十分强壮的加密方法。但今天,只需二十万美元就可以制造一台破译DES的特殊的计算机,所以现在 DES 对要求“强壮”加密的场合已经不再适用了。 Java语言具有简单、安全、可移植、面向对象、健壮、多线程、体系结构中立、解释执行、高性能、分布式和动态等主要特点。利用Java语言中秘密密钥工厂对DES算法的支持,使程序实现文件加密、解密两大功能更简单。 本程序设计所采用的就是DES算法。同时利用Java的GUI编程,生成文本对话框,对文件的路径进行选择、提供密钥框、加密和解密按钮。 使用本程序可以对txt,word等多种文件进行加密解密,使用便捷实用,功能完善,满足了用户对文件安全性的需求。 关键词:JA V A ,DES,加密,解密。

几种常用的数据加密技术

《Network Security Technology》Experiment Guide Encryption Algorithm Lecture Code: 011184 Experiment Title:加密算法 KeyWords:MD5, PGP, RSA Lecturer:Dong Wang Time:Week 04 Location:Training Building 401 Teaching Audience:09Net1&2 October 10, 2011

实验目的: 1,通过对MD5加密和破解工具的使用,掌握MD5算法的作用并了解其安全性; 2,通过对PGP加密系统的使用,掌握PGP加密算法的作用并了解其安全性; 3,对比MD5和PGP两种加密算法,了解它们的优缺点,并总结对比方法。 实验环境: 2k3一台,XP一台,确保相互ping通; 实验工具:MD5V erify, MD5Crack, RSA-Tools,PGP8.1 MD5加密算法介绍 当前广泛存在有两种加密方式,单向加密和双向加密。双向加密是加密算法中最常用的,它将明文数据加密为密文数据,可以使用一定的算法将密文解密为明文。双向加密适合于隐秘通讯,比如,我们在网上购物的时候,需要向网站提交信用卡密码,我们当然不希望我们的数据直接在网上明文传送,因为这样很可能被别的用户“偷听”,我们希望我们的信用卡密码是通过加密以后,再在网络传送,这样,网站接受到我们的数据以后,通过解密算法就可以得到准确的信用卡账号。 单向加密刚好相反,只能对数据进行加密,也就是说,没有办法对加密以后的数据进行解密。这有什么用处?在实际中的一个应用就是数据库中的用户信息加密,当用户创建一个新的账号或者密码,他的信息不是直接保存到数据库,而是经过一次加密以后再保存,这样,即使这些信息被泄露,也不能立即理解这些信息的真正含义。 MD5就是采用单向加密的加密算法,对于MD5而言,有两个特性是很重要的,第一是任意两段明文数据,加密以后的密文不能是相同的;第二是任意一段明文数据,经过加密以后,其结果必须永远是不变的。前者的意思是不可能有任意两段明文加密以后得到相同的密文,后者的意思是如果我们加密特定的数据,得到的密文一定是相同的。不可恢复性是MD5算法的最大特点。 实验步骤- MD5加密与破解: 1,运行MD5Verify.exe,输入加密内容‘姓名(英字)’,生成MD5密文;

加密软件技术原理

企业加密软件是近十年来热度非常高的一款软件安全产品,并且呈现着每年逐渐上升的趋势。 目前,市场上加密技术主要分为透明加密以及磁盘加密两种方式;因透明加密技术的操作简单并且不改变员工工作习惯,因此更加容易得到青睐。 下面对透明加密技术原理与标准作一个简析 AES加密标准 1977年1月公布的数据加密标准DES(Data Encrption Standard)经过20年的实践应用后,现在已被认为是不可靠的。1997年1月美国国家标准和技术研究所(NIST)发布了高级加密标准(AES-FIPS)的研发计划,并于同年9月正式发布了征集候选算法公告,NIST希望确定一种保护敏感信息的公开、免费并且全球通用的算法作为AES,以代替DES。NIST对算法的基本要求是:算法必须是私钥体制的分组密码,支持128位分组长度和129、192、256bits密钥长度。AES的研究现状 从1997年NIST发布了高级加密标准AES的研发计划到现在,对AES的研究大致可以分成三个阶段。第一阶段是从1997到2000年,研究的主要方向是提出候选算法并对各候选算法的性能进行分析。在此期间共提出了十五个候选算法,最终Rijndael算法胜出并用于AES 中。Rijndael算法是一种可变分组长度和密钥长度的迭代型分组密

码,它的分组长度和密钥长度均可独立地指定为128bits、192bits、256bits,它以其多方面的优良性能,成为AES的最佳选择。Rijndael 算法能抵抗现在的所有己知密码攻击,它的密钥建立时间极短且灵活性强,它极低的内存要求使其非常适合在存储器受限的环境中使用,并且表现出很好的性能。第二阶段是从2000年Rijndael算法胜出后到2001年NIST发布FIPS PUBS197文件前。在此阶段对AES的研究转到了对Rijndael算法的研究和分析、设计AES的工作模式上。第三阶段是从FIPS PUBS197发布到现在。在此阶段,研究的方向可以分成两个主要方向:一个是继续研究Rijndael算法本身的性能,特别是其安全性分析;另一个就是AES的实现和应用的研究。 算法设计主要研究算法设计遵循的原则和整体结构,为性能分析提供了一条途径。从算法的结构上分析算法性能是简单有效的,研究算法整体结构上的缺陷为提出新的密码分析方法提供新的手段。另一方面,研究AES的算法设计对研发新的分组密码提供了设计原则和参考。目前分组数据加密算法的整体结构有两大类:Feistel网络、非平衡Feistel网络和SP网络。 性能分析主要研究算法的各项特性,性能分析主要可以分为实现分析和密码分析两类。实现分析主要研究AES算法可实现的能力。当前实现性分析主要集中在AES的硬、软件实现的难易度和实现算法的效率等领域中。密码分析则是在理论上对现有加密算法进行研究的主要方向。密码分析主要研究AES算法抵抗现有己知密码攻击的能力,

那些伪加密的软件

现在,很多朋友为了保护隐私或是保护机密文件等等,都会采用加密软件对文件进行加密保护。但是,近来董师傅收到多位读者的来信咨询加密软件的问题,读者在来信来电中还指出了一些加密软件,如“高强度加密大师”、“文件夹加锁王”等加密软件存在文件丢失等诸多问题。在网上,还流传着加密软件不加密的一些话题,本期董师傅就邀请了系统专家王海,让他来谈谈这个问题。 电脑里面有隐私或者有机密文件,那么用加密软件便能轻松的保护好秘密。但是也有很多的软件加密性能不强,或者根本不能加密,而导致用户的隐私被他人非法查看窜改等。有的软件甚至利用系统文件夹的一些特点来欺骗用户。 其实很多加密软件原理都差不多,都是利用了Windows系统的文件夹的特点。首先加密软件会将需要加密的文件转移到一个受系统保护的文件夹中,接着创建一个含有特殊字符的文件夹,这个文件夹在“资源管理器”和“命令提示符”一般都打不开,但是不是说不能打开,只要掌握方法就非常容易打开。这就有一个问题,就是很多加密软件并不是真正加密。 我们在建立文件夹时,Windows进行了字符限制,我们只能将文件名以普通字符命名,但是在“命令提示符”下我们便可以任意的命名,突破限制,创建一些含有特殊字符或路径的文件和文件夹,这些“特殊”的文件不能在资源管理器中打开也不能删除,只能在“命令提示符”下操作。我使用的大多数加密软件就运用了类似原理。有的软件不但不能保密,甚至还出现丢失文件的现象。这应该是由于软件设计不当,被系统误删除了。 是这样的,但我再补充一下。加密软件会将需要加密的文件转移到一个受系统保护的文件夹中,而很多软件都是将文件转移到Recycled文件夹下。我们知道Recycled文件夹其实就是回收站的文件夹,存放着用户删除后放入到回收站的文件。如果用户使用系统优化软件就很容易造成回收站文件夹内的文件被删除,所以就会造成加密的文件丢失的现象。 我曾经也尝试突破密码来查看加密文件,但是都没有成功!当初还认为加密软件不错。但是,后来一次偶然机会,发现借助Total Commander便能突破密码查看加密文件。并且可以将加密文件到处拷贝,我就觉得,这个加密软件有猫腻。 是的,我们就以“高强度加密大师”为例给大家讲讲吧,演示不用密码验证查看加密的文件。方法非常简单,例如我们D盘有一个加密文件夹,接着只需要利用一款常用的文件管理软件Total Commander就可以轻松找到被“加密”的文件了。运行软件后依次点击“配置→选项→显示”,选中“显示系统/隐藏文件”。然后用软件打开D盘便可以看到Recycled文件夹了。双击进入,接着进入文件名最长的文件,我们这里是“S-1-5-21-1060284298-811497611- 11778920086-500”,紧接着进入“Info2”文件夹,然后一直进入下一目录,直到看到我们的文件为止。 最后把文件复制到任意目录便可以查看了,全过程只需要10秒!我们可以看出该加密软件没有任何作用,根本不能对文件起到保护作用,而且我前面也说过了,这种将文件移走,放到回收站文件夹里面的方法容易造成文件的丢失。

国产密码算法与应用

国产密码算法及应用 商用密码,是指能够实现商用密码算法的加密、解密和认证等功能的技术。(包括密码算法编程技术和密码算法芯片、加密卡等的实现技术)。商用密码技术是商用密码的核心,国家将商用密码技术列入国家秘密,任何单位和个人都有责任和义务保护商用密码技术的秘密。 商用密码的应用领域十分广泛,主要用于对不涉及国家秘密容但又具有敏感性的部信息、行政事务信息、经济信息等进行加密保护。比如各种安全认证、网上银行、数字签名等。 为了保障商用密码安全,国家商用密码管理办公室制定了一系列密码标准,包括SSF33 SM1(SCB2、SM2、SM3、SM4、SM7、SM9、 祖冲之密码算法等等。其中SSF33 SM1、SM4 SM7、祖冲之密码是对称算法;SM2、SM9是非对称算法;SM3是哈希算法。 目前已经公布算法文本的包括SM2椭圆曲线公钥密码算法、SM3 密码杂凑算法、SM4分组密码算法等。 一、国密算法简介 1. SM1对称密码 国密SM1算法是由国家密码管理局编制的一种商用密码分组标准对称算法,分组长度为128位,密钥长度都为128比特,算法安全强度及相关软硬件实现性能与AES相当,算法不公开,仅以IP核的形式存在于

芯片中。 采用该算法已经研制了系列芯片、智能IC卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。 2. SM2椭圆曲线公钥密码算法 SM2算法就是ECC椭圆曲线密码机制,但在签名、密钥交换方面不同于ECDSA ECDH等国际标准,而是采取了更为安全的机制。国密 SM2算法标准包括4个部分,第1部分为总则,主要介绍了ECC 基本的算法描述,包括素数域和二元扩域两种算法描述,第2部分为数字签名算法,这个算法不同于ECDSA算法,其计算量大,也比ECDSA 复杂些,也许这样会更安全吧,第3部分为密钥交换协议,与ECDH 功能相同,但复杂性高,计算量加大,第4部分为公钥加密算法,使用ECC公钥进行加密和ECC私钥进行加密算法,其实现上是在ECDH 上分散出流密钥,之后与明文或者是密文进行异或运算,并没有采用第3部分的密钥交换协议产生的密钥。对于SM2算法的总体感觉,应该是国家发明,其计算上比国际上公布的ECC算法复杂,相对来说算法速度可能慢,但可能是更安全一点。 设需要发送的消息为比特串M , len为M的比特长度。为了对明文M进行加密,作为加密者的用户应实现以下运算步骤:步骤1:用随机数发生器产生随机数k€ [1, n -1]; 步骤2:计算椭圆曲线点C仁[k]G=(X1 , Y1 ),将C1的数据类型转换为

软件加密技术和注册机制

本文是一篇软件加密技术的基础性文章,简要介绍了软件加密的一些基本常识和一些加密产品,适用于国内软件开发商或者个人共享软件开发者阅读参考。 1、加密技术概述 一个密码系统的安全性只在于密钥的保密性,而不在算法的保密性。 对纯数据的加密的确是这样。对于你不愿意让他看到这些数据(数据的明文)的人,用可靠的加密算法,只要破解者不知道被加密数据的密码,他就不可解读这些数据。 但是,软件的加密不同于数据的加密,它只能是“隐藏”。不管你愿意不愿意让他(合法用户,或Cracker)看见这些数据(软件的明文),软件最终总要在机器上运行,对机器,它就必须是明文。既然机器可以“看见”这些明文,那么Cracker,通过一些技术,也可以看到这些明文。 于是,从理论上,任何软件加密技术都可以破解。只是破解的难度不同而已。有的要让最高明的 Cracker 忙上几个月,有的可能不费吹灰之力,就被破解了。 所以,反盗版的任务(技术上的反盗版,而非行政上的反盗版)就是增加Cracker 的破解难度。让他们花费在破解软件上的成本,比他破解这个软件的获利还要高。这样Cracker 的破解变得毫无意义——谁会花比正版软件更多的钱去买盗版软件? 2、密码学简介 2.1 概念 (1)发送者和接收者 假设发送者想发送消息给接收者,且想安全地发送信息:她想确信偷听者不能阅读发送的消息。 (2)消息和加密 消息被称为明文。用某种方法伪装消息以隐藏它的内容的过程称为加密,加了密的消息称为密文,而把密文转变为明文的过程称为解密。 明文用M(消息)或P(明文)表示,它可能是比特流(文本文件、位图、数字化的语音流或数字化的视频图像)。至于涉及到计算机,P是简单的二进制数据。明文可被传送或存储,无论在哪种情况,M指待加密的消息。

信息加密技术

信息加密技术研究 摘要:随着网络技术的发展,网络在提供给人们巨大方便的同时也带来了很多的安全隐患,病毒、黑客攻击以及计算机威胁事件已经司空见惯,为了使得互联网的信息能够正确有效地被人们所使用,互联网的安全就变得迫在眉睫。 关键词:网络;加密技术;安全隐患 随着网络技术的高速发展,互联网已经成为人们利用信息和资源共享的主要手段,面对这个互连的开放式的系统,人们在感叹现代网络技术的高超与便利的同时,又会面临着一系列的安全问题的困扰。如何保护计算机信息的安全,也即信息内容的保密问题显得尤为重要。 数据加密技术是解决网络安全问要采取的主要保密安全措施。是最常用的保密安全手段,通过数据加密技术,可以在一定程度上提高数据传输的安全性,保证传输数据的完整性。 1加密技术 数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理。使其成为不可读的一段代码,通常称为“密文”传送,到达目的地后使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径达到保护数据不被人非法窃取、修改的目的。该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。数据加密技术主要分为数据传输加密和数据存储加密。数据传输加密技术主要是对传输中的数据流进行加密,常用的有链路加密、节点加密和端到端加密三种方式。 2加密算法 信息加密是由各种加密算法实现的,传统的加密系统是以密钥为基础的,是一种对称加密,即用户使用同一个密钥加密和解密。而公钥则是一种非对称加密方法。加密者和解密者各自拥有不同的密钥,对称加密算法包括DES和IDEA;非对称加密算法包括RSA、背包密码等。目前在数据通信中使用最普遍的算法有DES算法、RSA算法和PGP算法等。 2.1对称加密算法 对称密码体制是一种传统密码体制,也称为私钥密码体制。在对称加密系统中,加密和解密采用相同的密钥。因为加解密钥相同,需要通信的双方必须选择和保存他们共同的密钥,各方必须信任对方不会将密钥泄漏出去,这样就可以实现数据的机密性和完整性。对于具有n个用户的网络,需要n(n-1)/2个密钥,在用户群不是很大的情况下,对称加密系统是有效的。DES算法是目前最为典型的对称密钥密码系统算法。 DES是一种分组密码,用专门的变换函数来加密明文。方法是先把明文按组长64bit分成若干组,然后用变换函数依次加密这些组,每次输出64bit的密文,最后将所有密文串接起来即得整个密文。密钥长度56bit,由任意56位数组成,因此数量高达256个,而且可以随时更换。使破解变得不可能,因此,DES的安全性完全依赖于对密钥的保护(故称为秘密密钥算法)。DES运算速度快,适合对大量数据的加密,但缺点是密钥的安全分发困难。 2.2非对称密钥密码体制 非对称密钥密码体制也叫公共密钥技术,该技术就是针对私钥密码体制的缺陷被提出来的。公共密钥技术利用两个密码取代常规的一个密码:其中一个公共密钥被用来加密数据,而另一个私人密钥被用来解密数据。这两个密钥在数字上相关,但即便使用许多计算机协同运算,要想从公共密钥中逆算出对应的私人密钥也是不可能的。这是因为两个密钥生成的基本原理根据一个数学计算的特性,即两个对位质数相乘可以轻易得到一个巨大的数字,但要是反过来将这个巨大的乘积数分解为组成它的两个质数,即使是超级计算机也要花很长的时间。此外,密钥对中任何一个都可用于加密,其另外一个用于解密,且密钥对中称为私人密钥的那一个只有密钥对的所有者才知道,从而人们可以把私人密钥作为其所有者的身份特征。根据公共密钥算法,已知公共密钥是不能推导出私人密钥的。最后使用公钥时,要安装此类加密程序,设定私人密钥,并由程序生成庞大的公共密钥。使用者与其向联系的人发送

亿赛通加密软件操作说明

亿赛通加密软件操作说明 1 客户端登录 【登录】 用鼠标右键单击客户端图标,选择【登录用户】,弹出【登录用户】窗口,在【用户ID】输入框中填写正确的用户ID,在【密码】输入框中填写正确的密码,用户ID、密级填写完毕后,点击【确定】按钮,完成登录。如下图1所示。 图1 图2 如果用户ID或者密码填写不正确,提示用户密码不正确。如上图2所示。 【注销】 用鼠标右键单击客户端图标,选择【注销用户】,如下图3所示,弹出提示窗口,如下图4所示,点击【确定】,完成用户注销。 图3 图4 【修改密码】 用鼠标右键单击客户端图标,选择【修改密码】,弹出修改密码的窗口,在旧密码输入框中,填写原密码,在新密码、确认密码中填写新密码,点击【确定】后,提示密码修改成功。如下图5所示。

图5 图6 用户在没有登录时,直接修改密码,修改完成后,用户可以直接登录成功。 【策略更新】当服务端下发新的策略或者策略发生变化时,客户端需要更新策略。 操作步骤:用鼠标右键单击客户端图标,选择【更新策略】,更新的策略即可生效。如上图6所示。 2 Web页面登录 启动浏览器,在地址栏中输入服务器的IP地址。就可以进入服务器欢迎界面。如图所示:(我们公司地址为:) 点击“进入”,页面跳转到登录界面。如图所示: 输入用户ID和密码后点击登录按钮就可以登录服务器了,第一次登录使用默认密码登录。 3 业务申请与审批 输入正确的用户名和密码后就可以在web方式进行业务申请,一般用户主要有离线申请、解密申请和邮件外发解密申请。如图所示: 3.1离线申请 【功能描述】

当客户端离线、脱离服务器,想要正常操作CDG文档,可以申请离线。 申请离线的用户有时长和次数限制,在限定的时间和次数内,用户可以正常操作。 时间、次数超出后,用户的文档就没有权限打开了。如果想继续操作文档,需要再次申请离线时长和次数。 【操作步骤】 1)用鼠标右键单击客户端图标,选择【业务申请】栏下的【离线申请】,如下图所示, 弹出离线申请的窗口,如下图所示,用户在离线申请窗口中输入申请时长,在备注中输入申请理由,点及确定,离线申请提交成功。 2)管理员审批通过后,用户的客户端会收到一个冒泡提示信息:“恭喜!管理员已同 意你的离线申请!”,如下图左所示,客户端就可以离线操作了。 图左图右 3)如果用户的离线申请被管理员拒绝,客户端也会有一个冒泡提示信息:“抱歉!管 理员已不同意你的离线申请!”客户端就不能离线操作。 4)用鼠标右键单击客户端图标,选择【终端】信息,弹出终端信息窗口,在【脱机卸 载状态栏】可以查看脱机状态。【允许脱机】处于勾选状态表示已经通过审批,可以离线操作了;时长数表示申请的离线时长,以整数形式显示。如下图所示。 注:离线时长是电脑离开办公室后处于开机的总时长。 3.2 解密申请

Labview软件加密技术

深入浅出软件加密技术

引言—献给刚步入加密领域的工程师 自己辛辛苦苦做出来的软件轻轻松松被人盗版了,就像叶圣陶先生的小说《多了三五斗》中丰收了却高兴不起来的农民一样——闭上眼睛就是天黑。所以,加密是一个软件工程师保护自己辛勤劳动成果的必备技术(开源软件和有其它盈利模式的软件除外)。 从技术角度来说,天下没有破不了的软件,只是破解难度不一而已。从经济角度来看,只要破解的成本高于使用正版软件的成本,那么破解的工作便不会有人去做了——除非是纯技术兴趣。 当前市面上比较流行的软件保护技术有:序列号、软件狗和绑定系统硬件信息三种:序列号保护法常见于网络上的共享软件,破解比较容易。软件狗是一个安装在并口、串口等接口上的硬件电路,同时有一套使用于各种语言的接口软件和工具软件。复杂的软硬件技术结合在一起使破解非常难,许多有商业价值的软件一般都用软件狗来保护。绑定系统硬件信息是用户在安装完软件后,获得一个与系统硬件信息(CPU ID,硬盘序列号等)相关的代码。开发商通过这个软件生成一个激活码,用户输入激活码后便可正常使用软件了。 相比之下,序列号属于纯软件方法,破解比较容易;软件狗是软硬结合的方法,破解很难,但需要购买商业化的软件狗,费用高;绑定系统硬件信息的方式,安全性不错,而且不需要额外软件狗的费用。 图1.1 绑定系统硬件信息技术 下面的章节中,本文将针对绑定系统硬件信息技术,先讲述如何获得系统硬件信息,然后讲述生成系统ID和激活码的方法,最后给出一个完整的范例演示程序。

获取系统的硬件信息到哪里去找硬件信息 一套基于计算机的自动化系统必定包含许多硬件,比如CPU、硬盘、网卡、GPIB卡、数据采集卡、模块化仪器等等。 为了方便管理,厂家会给这些硬件一个唯一的标识号(id),或者序列号(SN),如图2.1所示。如果厂家也提供相关的访问函数,我们就可以获得硬件的唯一标识号。 图2.1 硬件序列号 获取NI硬件序列号 NI公司硬件设备的序列号可以通过属性节点查知,如图2.2所示。 图2.2 用属性节点获取NI硬件序列号 关于数据采集卡,GPIB卡的硬件信息请参考范例程序GetDAQSN.vi和GetGPIBSN.vi。

软件加密的常见技巧(一)

软件加密的常见技巧(一)-防止DEBUG和反监听仿真 本文将介绍软件加密锁的一些编程技巧,以及软件开发者将如何编写安全可靠的代码,如何对付各种各样的加密锁破解,编写加密程序时应该尽量避免的一些问题等等。 一、加密锁加密的基本原理 开发商程序通过调用硬件加密锁的接口模块对硬件加密锁操作,硬件加密锁响应该操作并通过接口模块将相应数据返回给开发商的应用程序。开发商的应用程序可以对返回值进行判定并采取相应的动作。如果返回无效的响应,表明没有正确的狗,开发商可以将应用程序终止运行,或者让应用程序以错误的方式执行。简要示意如下: (更换个图) 二、常用的解密方法 1、反汇编后静态分析: W32Dasm、IDA Pro 2、用调试工具跟踪动态分析:SoftICE、TRW2000 3、针对各种语言的反汇编工具:VB、Delphi、Java等 4、其他监视工具:FileMon、RegMon 等 三、如何提高加密强度

下面,我们以ET系列加密锁为例,详细介绍一下使用如何在编程的过程中提高加密强度的方法。 1、反DEBUG解密的编程方法和技巧 访问狗之后不要立即做判断,判断狗不正确后,不要立即提示,或者不提示。开发商在程序各个部分插入校验算法的代码,用以增加程序代码的复杂性,防止解密者轻易跟踪发现全部的校验代码。校验代码插入程序的频率越高,破解难度越大,软件就越安全。 重要的字符串不要在程序中以明文出现,应该使用算法动态生成。 在不影响程序效率的情况下,尽量多写一些查狗的函数,彼此要有区别,使用不同的算法,多一些查狗出错的标志,让这些标志参与运算,在不同的模块中,使用不同的查狗函数。 针对某一具体查询校验,都有三步骤组成:查询得到响应串;比较响应串和查询串是否匹配;根据校验结果执行相应的步骤。建议三个步骤要延时执行。最好将三步骤相互远离些,甚至放到不同的子程序或函数中。例如:执行“查询得到响应串”后,相隔50行执行“比较响应串和查询串是否匹配”,假如程序需要调用一个函数。那么就在这个函数里执行“执行相应的步骤”。解密者在跟踪过程中,即使发现了其中一部分程序代码,但很难发现另外两部分代码和全部三部分之间的关联。程序难于被破解。 将加密锁返回的“响应串”作为程序中的参数使用。例如:算法单元返回“响应串”是“87611123”,而程序中需要使用“123”这个参数。程序中得到“响应串”后,将“响应串”减去“87611000”得到参数。如果解密者修改代码跳过查询校验加密锁部分,参数将是错误值,从而会使程序运行紊乱。 程序在验证加密算法过程中,一般情况下验证数据不正确程序就会选择退出。这样一来很容易被解密者发现代码特征,跳过查询校验部分。开发商设计查询校验部分时,如果程序校验数据不正确,程序也不退出可以继续执行一些无用的操作使程序紊乱,用以隐蔽代码迷惑解密者。 开发商的软件可能有多个模块,查狗的模块或接口不要用显而易见的名字来命名,这样会令解密者更容易找到加密点,当然也可以利用一些名字来迷惑解密者,尤其是dll,引出函数时甚至可以不用函数名。 给查狗函数加入一定的随机性,例如,随机地执行某一API函数,或者在狗的存储区中划定一小块区域作随机读写,读写地址、读写内容、读写长度都是随机取的,这样可以很好地防止那些模拟工具。 试用版与正式版要分开,试用版不提供的功能,代码已经删掉,使得不可能利用试用版破解得到正式版。

透明底层文件过滤驱动加密技术

明加密技术是近年来针对企业文件保密需求应运而生的一种文件加密技术。应用透明加密技术,用户打开或编辑未加密的指定后缀文件时会自动加密;打开加密了的指定后缀文件时不需要输入密码会自动解密。因此,用户在环境内使用密文不影响原有的习惯,但文件已经始终处于加密状况。一旦离开环境,文件将得不到解密服务,将无法打开,从而起到保护电子文件知识产权的效果。本文将简要介绍目前市场上透明加密软件产品采用的透明加密技术。 透明加密技术 透明加密技术是近年来针对企业文件保密需求应运而生的一种文件加密技术。所谓透明,是指对使用者来说是未知的。当使用者在打开或编辑指定文件时,系统将自动对未加密的文件进行加密,对已加密的文件自动解密。文件在硬盘上是密文,在内存中是明文。一旦离开使用环境,由于应用程序无法得到自动解密的服务而无法打开,从而起来保护文件内容的效果。 透明加密有以下特点: 强制加密:安装系统后,所有指定类型文件都是强制加密的; 使用方便:不影响原有操作习惯,不需要限止端口; 于内无碍:内部交流时不需要作任何处理便能交流; 对外受阻:一旦文件离开使用环境,文件将自动失效,从而保护知识产权。 透明加密技术原理 透明加密技术是与windows紧密结合的一种技术,它工作于windows的底层。通过监控应用程序对文件的操作,在打开文件时自动对密文进行解密,在写文件时自动将内存中的明文加密写入存储介质。从而保证存储介质上的文件始终处于加密状态。 监控windows打开(读)、保存(写)可以在windows操作文件的几个层面上进行。现有的32位CPU定义了4种(0~3)特权级别,或称环(ring),如图1所示。其中0级为特权级,3级是最低级(用户级)。运行在0级的代码又称内核模式,3级的为用户模式。常用的应用程序都是运行在用户模式下,用户级程序无权直接访问内核级的对象,需要通过API 函数来访问内核级的代码,从而达到最终操作存储在各种介质上文件的目的。

常见的视频加密技术介绍

常见的视频加密技术介绍 付费观看视频的模式是很多平台的核心业务,如果视频被录制并非法传播,付费业务将受到严重威胁。因此对视频服务进行加密的技术变得尤为重要。 本文所指的视频加密是为了让要保护的视频不能轻易被下载,即使下载到了也是加密后的内容,其它人解开加密后的内容需要付出非常大的代价。 常见的视频加密技术分两种 防盗链:一种加了防盗链签名的URL,经过签名的URL能够与流服务器的安全机制进行配合,可以将URL的使用权限定在指定的APP或播放器上,恶意第三方拿到URL也不能使用和播放; 流媒体加密:通过对称加密算法加密视频内容本身,用户获得加密后的视频内容,通过验证的用户可以获取解密视频的密钥,在客户端解密后播放。这种方式实现起来流程复杂,会带来更多的计算量。 实际应用场景中,一般结合着两种技术一起使用,下面分别介绍这两种加密技术。 一、防盗链 1、Referer防盗链 Referer是HTTP协议中request header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器是从哪个页面链接过来的,服务器基于此可以获得一些信息用于处理。如果refer信息不是来自本站,就阻止访问或者跳到其它链接。 Nginx防盗链的配置:如针对文件类型的配置方法。 程序清单1 Nginx防盗链配置 这种方法是在server或者location段中加入:valid_referers none blocked,其中none表示空的来路,也就是直接访问,比如直接在浏览器打开一个文件,blocked表示被防火墙标记过的来路,*.zlg表示所有子域名。 以上表示所有来自zlg和域名中包含zlg的站点都可以访问当前站点的图片和视频文件,

企业加密软件管理规定

企业加密软件管理规定 The final edition was revised on December 14th, 2020.

加密软件管理规定 1 目的和范围 规范公司加密软件的使用,通过文件外发解密管理,防止公司商密电子文件非正常外泄,保障公司经营信息安全。 本标准适用于集团公司下属各单位。 2 引用(相关)标准和文件 《信息系统账号管理办法》(PD/WG06) 《商业秘密管理办法》(PD/IP05) 3 定义 加密软件 指集团使用的IPguard加密软件系统。 4 职责 审核人员 对已发起解密申请流程的文件和人员,审核解密申请的合理性、必要性。对不清楚的或有疑问的,不得审核通过。 解密人员 对已审核通过的解密申请流程,复核是否符合相应使用管理规定,符合后进行解密。对有疑问的,应质疑解密申请流程的申请人、审核人,要求给予明确说明,清楚后才能解密。 质量管理部 负责加密软件服务器端升级、日常维护。 负责各部门加密软件的安装、管理,以及加密软件策略设置、权限分配。 总经理 合理配置内部审核人员、解密人员,保障解密流程顺畅、管理控制有效。 5 管理流程 权限申请流程

活动描述 解密申请流程

活动描述 6 管理内容 加密软件权限申请规定 加密软件策略类别有截屏类、人力资源类、图片处理类、文档类、U盘禁用类、服务器类等,另外可根据使用、管理需要,增加加密策略类别。 申请权限按照权限申请流程在OA系统中发起流程(质-网络作业申请单),由各级领导审核通过。

质量管理部按照申请单批准的内容,开通相应权限。 质量管理部根据人员换岗或离职文件通知,或相应部门人力资源管理主管的通知,及时关闭相应权限。 文件解密规定 申请人发起解密流程时,需写清楚文档名称,保证文档名称能基本反映文档内容,并在发起解密流程界面的“描述”一栏,详细完整填写申请解密事由。无申请理由或描述模糊的、不符的,审核人员不得审核通过。对技术类相关文件,选择审核人员时,不得自己发起申请,自己审核。 审核人员只能审核本部门人员或管理范围内人员发出的解密流程申请,不得跨部门、跨范围审核。 审核人员必须对申请解密的文件进行详细查核,审核是否和申请事由相符,审核文件及人员的合理性、必要性,审核是否符合公司商业秘密管理要求,如解密文件和解密理由不相符不得通过审核,并应给申请人警告。 解密者对通过审核的申请解密文件,必须查看是否和申请理由相符,是否符合公司商业秘密管理要求,审核人一、审核人二的资质是否符合规定的要求。如有人一条不相符,不得通过审核,并对违反规定的人员,进行警告并记录。解密人员负责将异常解密信息(如多次解密、文档名称与内容不符、描述不清、审核资质等不符合规定)向一级部门领导汇报,必要时通报处理。 质量管理部每月初将各公司每月解密情况进行汇总,并发给各一级部门的第一领导。第一领导应查看解密情况报表,及时质询、核对情况,做好事后审计。 解密文件个数大于10个或每次解密文件量大于10M或解密申请次数异常频繁,需重点核查。 软件加密规定 文件加密类型包含了文档、各种电子图纸、图片、软件代码等公司规定的、涉及技术/商业秘密的可能载体类型等。 由于加密的文件,只能使用已添加到加密软件的加密策略中的程序,才能正常打开编辑。当需要使用新软件时,请在OA中发起流程(质-网络作业申请单),各级领导批准后由质量管理部添加到加密软件策略中。

易语言软件加密技术

易语言软件加密技术.txt35温馨是大自然的一抹色彩,独具慧眼的匠师才能把它表现得尽善尽美;温馨是乐谱上的一个跳动音符,感情细腻的歌唱者才能把它表达得至真至纯注:本文章是从网上转摘过来的,虽是拿易语言举例,但也适用所有的语言,包括按键脚本,关键是学习思路。 本文为全中文编写,不需要有PE文件格式知识,不需要掌握汇编或C语言的编程技巧,一些加密算法直接由易语言提供,特殊的加密算法大家可以翻译C语言代码、汇编代码或VB 代码。 本文中将“Cracker”一词翻译为“奸人”,意为“奸邪小人”之义。本人对破解者一向深恶痛绝,有人说中国的软件发展中破解者有一份功劳,可我说这话不对,看看因盗版而产生的微软对操作系统及软件业的垄断,国内软件业在盗版的夹缝中生存……,如此下去,软件作者没有收益,将不再会有优秀的软件推出。防止盗版,匹夫有责,我想通过本书的推出可以加强易语言用户的加密能力,将盗版杀死在大家共同的手中。 随着采用易语言编制程序的人们越来越多,写一个软件易被奸人破解的情况也越来越多了,有个别用户甚至于怀疑易语言是否有安全性。从技术性上来说,我只能说加密技术与编程语言无关,一个编程语言的安全性一般指所生成的机器码是否稳定、可靠,而不是防破解方面,如果想要很好地防止破解,那么掌握一门加密技术是非常必要的。 本书考虑到使用易语言的用户大部分对PE文件结构不太熟悉,因此没有采用很底层的方法去教学,而是采用与易语言直接表达的方式试图说明如何加密。 本书基本上是按以下的顺序进行讲解的: 破解技术反破解技术1 反破解技术2 反破解技术3 防改文件文件名验证 LOGO图片验证窗口标题验证 防改文件大小暴破加壳后数据签名验证加壳后CRC验证文件大小验证 防调试花指令反调试模块反调试支持库 内存注册机不进行判断,用循环代替字符串打乱器及时清内存 算法注册机 RSA算法数值计算支持库 其他多处验证点随机验证命名刻意隐蔽 本书是集体创作作品,并集成了多位作者的公开著述,在此一并表示感谢。其中部分文字内容根据易语言的特性作了修正。文中不署这些作者的姓名,以防止奸人对他们的软件的刻意破解。 本章整理:麻辣教师 目录 《易语言软件加密技术》 1 一.易语言程序加密的目的 5 1.保持软件的完整性 5 2、保护软件开发者的权益 5

软件加密锁编程技巧

软件加密锁编程技巧 本文将介绍软件加密锁的一些编程技巧,以及软件开发者将如何编写安全可靠的代码,如何对付各种各样的加密狗破解,编写加密程序时应该尽量避免的一些问题等等。以下是全文。 一、加密狗加密的基本原理 开发商程序通过调用硬件加密狗的接口模块对硬件加密狗操作,硬件加密狗响应该操作并通过接口模块将相应数据返回给开发商的应用程序。开发商的应用程序可以对返回值进行判定并采取相应的动作。如果返回无效的响应,表明没有正确的狗,开发商可以将应用程序终止运行,或者让应用程序以错误的方式执行。简要示意如下: 二、常用的解密方法 1、反汇编后静态分析: W32Dasm、IDA Pro 2、用调试工具跟踪动态分析:SoftICE、TRW2000 3、针对各种语言的反汇编工具:VB、Delphi、Java等 4、其他监视工具:FileMon、RegMon 等 三、如何提高加密强度

下面,我们以Sentinel SuperPro加密锁为例,详细介绍一下使用如何在编程的过程中提高加密强度的方法。 1、反DEBUG解密的编程方法和技巧 访问狗之后不要立即做判断,判断狗不正确后,不要立即提示,或者不提示。开发商在程序各个部分插入校验算法的代码,用以增加程序代码的复杂性,防止解密者轻易跟踪发现全部的校验代码。校验代码插入程序的频率越高,破解难度越大,软件就越安全。 重要的字符串不要在程序中以明文出现,应该使用算法动态生成。 在不影响程序效率的情况下,尽量多写一些查狗的函数,彼此要有区别,使用不同的算法,多一些查狗出错的标志,让这些标志参与运算,在不同的模块中,使用不同的查狗函数。 针对某一具体查询校验,都有三步骤组成:查询得到响应串;比较响应串和查询串是否匹配;根据校验结果执行相应的步骤。建议三个步骤要延时执行。最好将三步骤相互远离些,甚至放到不同的子程序或函数中。例如:执行“查询得到响应串”后,相隔50行执行“比较响应串和查询串是否匹配”,假如程序需要调用一个函数。那么就在这个函数里执行“执行相应的步骤”。解密者在跟踪过程中,即使发现了其中一部分程序代码,但很难发现另外两部分代码和全部三部分之间的关联。程序难于被破解。 将加密锁返回的“响应串”作为程序中的参数使用。例如:算法单元返回“响应串”是“87611123”,而程序中需要使用“123”这个参数。程序中得到“响应串”后,将“响应串”减去“87611000”得到参数。如果解密者修改代码跳过查询校验加密锁部分,参数将是错误值,从而会使程序运行紊乱。 程序在验证加密算法过程中,一般情况下验证数据不正确程序就会选择退出。这样一来很容易被解密者发现代码特征,跳过查询校验部分。开发商设计查询校验部分时,如果程序校验数据不正确,程序也不退出可以继续执行一些无用的操作使程序紊乱,用以隐蔽代码迷惑解密者。 开发商的软件可能有多个模块,查狗的模块或接口不要用显而易见的名字来命名,这样会令解密者更容易找到加密点,当然也可以利用一些名字来迷惑解密者,尤其是dll,引出函数时甚至可以不用函数名。 给查狗函数加入一定的随机性,例如,随机地执行某一API函数,或者在狗的存储区中划定一小块区域作随机读写,读写地址、读写内容、读写长度都是随机取的,这样可以很好地防止那些模拟工具。 试用版与正式版要分开,试用版不提供的功能,代码已经删掉,使得不可能利用试用版破解得到正式版。

软件加密与解密技术

题目软件的加密与解密技术 软件加密与解密技术 软件开发商通常都会使用某种加密技术来保护其软件,以防止非法使用。另外,还需要通过软件加密来实现软件的按购买内容授权,以实现销售利润的最大化。软件加密技术根据是否使用专用的硬件设备分为基于硬件的加密方式和基于软件的加密方式。基于硬件的加密方式是指加密需要与一个专用的硬件设备绑定,目前主要的硬件加密方式是加密锁,俗称加密狗。基于软件的加密方式是指不需要专用硬件设备的加密方式,一般采用与终端设备软硬件信息绑定的数字许可证,也称电子授权形式。单纯认为基于硬件的加密方式比基于软件的加密方式安全是不正确的,因为软件的安全性涉及的内容比较多,包括加密产品的安全性、加密策略的设计、应用软件本身、操作系统、驱动、硬件、数据通讯等等,是一个综合的技术范畴,不能够简单地由某个方面来断定其是否安全。 在国外,电子授权和加密锁的市场占有率是旗鼓相当。因为使用

习惯和历史原因,加密锁目前还占有一定的市场份额。但是,加密锁是网络不发达时代的产物,是一种纯客户端的技术,缺乏管理和统计功能,硬件的存在也带来了生产、物流、驱动安装等诸多不便,不仅成本高,而且无法实现软件的网络化发行和销售,正在逐渐走向衰落。而目前电子授权的发展可以说是方兴未艾。电子授权保护方式越来越多融入互联网技术、云计算技术和SaaS理念,不仅更加方便使用和管理,而且能够实现软件电子化发行,又符合当今绿色低碳的发展理念,大有取代加密锁独占软件加密市场的趋势。世界上比较著名的公司,Microsoft、IBM、Autodesk、SIEMENS、Adobe等,使用的都是电子授权软件保护方式。 在国内,软件开发商使用加密锁的比率较高,实际上,随着网络环境的日益改善,联网激活对大多数国内用户来说已经不是问题。而且前面也提到了,认为加密锁比电子授权安全的观点是偏面的、不正确的。从现实情况看,加密锁更容易通过硬件复制来破解,而且已经形成了完成的盗版产业链。反而是电子授权方式因为没有硬件无法复制,又需要网络激活和验证,实际上具有非常好的保护效果。另外,国内也已经出现了一些提供电子授权产品的公司,他们中的2-3家公司一定会随着中国软件行业的发展而成长和壮大起来。所以,软件加密行业的发展趋势是无硬件化、网络化和信息化。下面,首先对软件加密和解密方法进行一定的介绍。 一、软件加密方法 前面提到过,软件加密技术分为基于硬件的加密方式和基于软件的加密方式。 1.基于硬件的加密方式 基于硬件的加密方式主要是加密锁,一些重要信息,如加密密钥、

详解加密技术概念加密方法以及应用

详解加密技术概念加密方法以及应用 随着网络技术的发展,网络安全也就成为当今网络社会的焦点中的焦点,几乎没有人不在谈论网络上的安全问题,病毒、黑客程序、邮件炸弹、远程侦听等这一切都无不让人胆战心惊。病毒、黑客的猖獗使身处今日网络社会的人们感觉到谈网色变,无所适从。 但我们必需清楚地认识到,这一切一切的安全问题我们不可一下全部找到解决方案,况且有的是根本无法找到彻底的解决方案,如病毒程序,因为任何反病毒程序都只能在新病毒发现之后才能开发出来,目前还没有哪能一家反病毒软件开发商敢承诺他们的软件能查杀所有已知的和未知的病毒,所以我们不能有等网络安全了再上网的念头,因为或许网络不能有这么一日,就象“矛”与“盾”,网络与病毒、黑客永远是一对共存体。 现代的电脑加密技术就是适应了网络安全的需要而应运产生的,它为我们进行一般的电子商务活动提供了安全保障,如在网络中进行文件传输、电子邮件往来和进行合同文本的签署等。其实加密技术也不是什么新生事物,只不过应用在当今电子商务、电脑网络中还是近几年的历史。下面我们就详细介绍一下加密技术的方方面面,希望能为那些对加密技术还一知半解的朋友提供一个详细了解的机会! 一、加密的由来 加密作为保障数据安全的一种方式,它不是现在才有的,它产生的历史相当久远,它是起源于要追溯于公元前2000年(几个世纪了),虽然它不是现在我们所讲的加密技术(甚至不叫加密),但作为一种加密的概念,确实早在几个世纪前就诞生了。当时埃及人是最先使用特别的象形文字作为信息编码的,随着时间推移,巴比伦、美索不达米亚和希腊文明都开始使用一些方法来保护他们的书面信息。 近期加密技术主要应用于军事领域,如美国独立战争、美国内战和两次世界大战。最广为人知的编码机器是German Enigma机,在第二次世界大战中德国人利用它创建了加密信息。此后,由于Alan Turing和Ultra计划以及其他人的努力,终于对德国人的密码进行了破解。当初,计算机的研究就是为了破解德国人的密码,人们并没有想到计算机给今天带来的信息革命。随着计算机的发展,运算能力的增强,过去的密码都变得十分简单了,于是人们又不断地研究出了新的数据加密方式,如利用ROSA算法产生的私钥和公钥就是在这个基础上产生的。 二、加密的概念 数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。

相关文档