软件加密技术和注册机制

软件加密技术和注册机制
软件加密技术和注册机制

本文是一篇软件加密技术的基础性文章,简要介绍了软件加密的一些基本常识和一些加密产品,适用于国内软件开发商或者个人共享软件开发者阅读参考。

1、加密技术概述

一个密码系统的安全性只在于密钥的保密性,而不在算法的保密性。

对纯数据的加密的确是这样。对于你不愿意让他看到这些数据(数据的明文)的人,用可靠的加密算法,只要破解者不知道被加密数据的密码,他就不可解读这些数据。

但是,软件的加密不同于数据的加密,它只能是“隐藏”。不管你愿意不愿意让他(合法用户,或Cracker)看见这些数据(软件的明文),软件最终总要在机器上运行,对机器,它就必须是明文。既然机器可以“看见”这些明文,那么Cracker,通过一些技术,也可以看到这些明文。

于是,从理论上,任何软件加密技术都可以破解。只是破解的难度不同而已。有的要让最高明的 Cracker 忙上几个月,有的可能不费吹灰之力,就被破解了。

所以,反盗版的任务(技术上的反盗版,而非行政上的反盗版)就是增加Cracker 的破解难度。让他们花费在破解软件上的成本,比他破解这个软件的获利还要高。这样Cracker 的破解变得毫无意义——谁会花比正版软件更多的钱去买盗版软件?

2、密码学简介

2.1 概念

(1)发送者和接收者

假设发送者想发送消息给接收者,且想安全地发送信息:她想确信偷听者不能阅读发送的消息。

(2)消息和加密

消息被称为明文。用某种方法伪装消息以隐藏它的内容的过程称为加密,加了密的消息称为密文,而把密文转变为明文的过程称为解密。

明文用M(消息)或P(明文)表示,它可能是比特流(文本文件、位图、数字化的语音流或数字化的视频图像)。至于涉及到计算机,P是简单的二进制数据。明文可被传送或存储,无论在哪种情况,M指待加密的消息。

密文用C表示,它也是二进制数据,有时和M一样大,有时稍大(通过压缩和加密的结合,C有可能比P小些。然而,单单加密通常达不到这一点)。加密函数E作用于M得到密文C,用数学表示为:

E(M)=C.

相反地,解密函数D作用于C产生M

D(C)=M.

先加密后再解密消息,原始的明文将恢复出来,下面的等式必须成立:

D(E(M))=M

(3)鉴别、完整性和抗抵赖

除了提供机密性外,密码学通常有其它的作用:.

(a)鉴别

消息的接收者应该能够确认消息的来源;入侵者不可能伪装成他人。

(b)完整性检验

消息的接收者应该能够验证在传送过程中消息没有被修改;入侵者不可能用假消息代替合法消息。

(c)抗抵赖

发送者事后不可能虚假地否认他发送的消息。

(4)算法和密钥

密码算法也叫密码,是用于加密和解密的数学函数。(通常情况下,有两个相关的函数:一个用作加密,另一个用作解密)

如果算法的保密性是基于保持算法的秘密,这种算法称为受限制的算法。受限制的算法具有历史意义,但按现在的标准,它们的保密性已远远不够。大的或经常变换的用户组织不能使用它们,因为每有一个用户离开这个组织,其它的用户就必须改换另外不同的算法。如果有人无意暴露了这个秘密,所有人都必须改变他们的算法。

更糟的是,受限制的密码算法不可能进行质量控制或标准化。每个用户组织必须有他们自己的唯一算法。这样的组织不可能采用流行的硬件或软件产品。但窃听

者却可以买到这些流行产品并学习算法,于是用户不得不自己编写算法并予以实现,如果这个组织中没有好的密码学家,那么他们就无法知道他们是否拥有安全的算法。

尽管有这些主要缺陷,受限制的算法对低密级的应用来说还是很流行的,用户或者没有认识到或者不在乎他们系统中内在的问题。

现代密码学用密钥解决了这个问题,密钥用K表示。K可以是很多数值里的任意值。密钥K的可能值的范围叫做密钥空间。加密和解密运算都使用这个密钥(即运算都依赖于密钥,并用K作为下标表示),这样,加/解密函数现在变成:EK(M)=C

DK(C)=M.

DK(EK(M))=M.

有些算法使用不同的加密密钥和解密密钥,也就是说加密密钥K1与相应的解密密钥K2不同,在这种情况下:

EK1(M)=C

DK2(C)=M

DK2 (EK1(M))=M

所有这些算法的安全性都基于密钥的安全性;而不是基于算法的细节的安全性。这就意味着算法可以公开,也可以被分析,可以大量生产使用算法的产品,即使偷听者知道你的算法也没有关系;如果他不知道你使用的具体密钥,他就不可能阅读你的消息。

密码系统由算法、以及所有可能的明文、密文和密钥组成的。

基于密钥的算法通常有两类:对称算法和公开密钥算法。下面将分别介绍:

2.2 对称密码算法

对称算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称算法中,加/解密密钥是相同的。这些算法也叫秘密密钥算法或单密钥算法,它要求发送者和接收者在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对消息进行加/解密。只要通信需要保密,密钥就必须保密。

对称算法的加密和解密表示为:

EK(M)=C

DK(C)=M

对称算法可分为两类。一次只对明文中的单个比特(有时对字节)运算的算法称为序列算法或序列密码。另一类算法是对明文的一组比特亚行运算,这些比特组称为分组,相应的算法称为分组算法或分组密码。现代计算机密码算法的典型分组长度为64比特——这个长度大到足以防止分析破译,但又小到足以方便使用(在计算机出现前,算法普遍地每次只对明文的一个字符运算,可认为是序列密码对字符序列的运算)。

2.3 公开密码算法

公开密钥算法(也叫非对称算法)是这样设计的:用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来(至少在合理假定的长时间内)。之所以叫做公开密钥算法,是因为加密密钥能够公开,即陌生者能用加密密钥加密信息,但只有用相应的解密密钥才能解密信息。在这些系统中,加密密钥叫做公开密钥(简称公钥),解密密钥叫做私人密钥(简称私钥)。私人密钥有时也叫秘密密钥。为了避免与对称算法混淆,此处不用秘密密钥这个名字。

用公开密钥K加密表示为

EK(M)=C.

虽然公开密钥和私人密钥是不同的,但用相应的私人密钥解密可表示为:

DK(C)=M

有时消息用私人密钥加密而用公开密钥解密,这用于数字签名(后面将详细介绍),尽管可能产生混淆,但这些运算可分别表示为:

EK(M)=C

DK(C)=M

当前的公开密码算法的速度,比起对称密码算法,要慢的多,这使得公开密码算法在大数据量的加密中应用有限。

2.4 单向散列函数

单向散列函数H(M)作用于一个任意长度的消息M,它返回一个固定长度的散列值 h,其中 h 的长度为 m .

输入为任意长度且输出为固定长度的函数有很多种,但单向散列函数还有使其单向的其它特性:

(1)给定 M ,很容易计算 h ;

(2)给定 h ,根据 H(M) = h 计算 M 很难;

(3)给定 M ,要找到另一个消息 M…并满足 H(M) = H(M?)很难。

在许多应用中,仅有单向性是不够的,还需要称之为“抗碰撞”的条件:

要找出两个随机的消息 M 和 M…,使 H(M) = H(M?)满足很难。

由于散列函数的这些特性,由于公开密码算法的计算速度往往很慢,所以,在一些密码协议中,它可以作为一个消息M 的摘要,代替原始消息M,让发送者为H(M)签名而不是对 M 签名 .

如 SHA 散列算法用于数字签名协议 DSA中。

2.5 数字签名

提到数字签名就离不开公开密码系统和散列技术。

有几种公钥算法能用作数字签名。在一些算法中,例如RSA,公钥或者私钥都可用作加密。用你的私钥加密文件,你就拥有安全的数字签名。在其它情况下,如DSA,算法便区分开来了??数字签名算法不能用于加密。这种思想首先由Diffie和Hellman提出 .

基本协议是简单的:

(1) A 用她的私钥对文件加密,从而对文件签名。

(2) A 将签名的文件传给B.

(3) B用A的公钥解密文件,从而验证签名。

这个协议中,只需要证明A的公钥的确是她的。如果B不能完成第(3)步,那么他知道签名是无效的。

这个协议也满足以下特征:

(1)签名是可信的。当B用A的公钥验证信息时,他知道是由A签名的。

(2)签名是不可伪造的。只有A知道她的私钥。

(3)签名是不可重用的。签名是文件的函数,并且不可能转换成另外的文件。

(4)被签名的文件是不可改变的。如果文件有任何改变,文件就不可能用A 的公钥验证。

(5)签名是不可抵赖的。B不用A的帮助就能验证A的签名。

在实际应用中,因为公共密码算法的速度太慢,签名者往往是对消息的散列签名而不是对消息本身签名。这样做并不会降低签名的可信性。

3 当前流行的一些软件保护技术

3.1 序列号保护

数学算法一项都是密码加密的核心,但在一般的软件加密中,它似乎并不太为人们关心,因为大多数时候软件加密本身实现的都是一种编程的技巧。但近几年来随着序列号加密程序的普及,数学算法在软件加密中的比重似乎是越来越大了。

看看在网络上大行其道的序列号加密的工作原理。当用户从网络上下载某个shareware——共享软件后,一般都有使用时间上的限制,当过了共享软件的试用期后,你必须到这个软件的公司去注册后方能继续使用。注册过程一般是用户把自己的私人信息(一般主要指名字)连同信用卡号码告诉给软件公司,软件公司会根据用户的信息计算出一个序列码,在用户得到这个序列码后,按照注册需要的步骤在软件中输入注册信息和注册码,其注册信息的合法性由软件验证通过后,软件就会取消掉本身的各种限制,这种加密实现起来比较简单,不需要额外的成本,用户购买也非常方便,在互联网上的软件80%都是以这种方式来保护的。

软件验证序列号的合法性过程,其实就是验证用户名和序列号之间的换算关系是否正确的过程。其验证最基本的有两种,一种是按用户输入的姓名来生成注册码,再同用户输入的注册码比较,公式表示如下:

序列号 = F(用户名)

但这种方法等于在用户软件中再现了软件公司生成注册码的过程,实际上是非常不安全的,不论其换算过程多么复杂,解密者只需把你的换算过程从程序中提取出来就可以编制一个通用的注册程序。

另外一种是通过注册码来验证用户名的正确性,公式表示如下:

用户名称 = F逆(序列号)(如ACDSEE)

这其实是软件公司注册码计算过程的反算法,如果正向算法与反向算法不是对称算法的话,对于解密者来说,的确有些困难,但这种算法相当不好设计。

于是有人考虑到以下的算法:

F1(用户名称) = F2(序列号)

F1、F2是两种完全不同的的算法,但用户名通过F1算法计算出的特征字等于序列号通过F2算法计算出的特征字,这种算法在设计上比较简单,保密性相对以上两种算法也要好的多。如果能够把F1、F2算法设计成不可逆算法的话,保密性相当的好;可一旦解密者找到其中之一的反算法的话,这种算法就不安全了。一元算法的设计看来再如何努力也很难有太大的突破,那么二元呢?

特定值 = F(用户名,序列号)

这个算法看上去相当不错,用户名称与序列号之间的关系不再那么清晰了,但同时也失去了用户名于序列号的一一对应关系,软件开发者必须自己维护用户名称与序列号之间的唯一性,但这似乎不是难以办到的事,建个数据库就可以了。当然也可以把用户名称和序列号分为几个部分来构造多元的算法。

特定值 = F(用户名1,用户名2,...序列号1,序列号2...)

现有的序列号加密算法大多是软件开发者自行设计的,大部分相当简单。而且有些算法作者虽然下了很大的功夫,效果却往往得不到它所希望的结果。

3.2 时间限制

有些程序的试用版每次运行都有时间限制,例如运行10分钟或20分钟就停止工作,必须重新运行该程序才能正常工作。这些程序里面自然有个定时器来统计程序运行的时间。

这种方法使用的较少。

3.3 Key File 保护

Key File(注册文件)是一种利用文件来注册软件的保护方式。Key File一般是一个小文件,可以是纯文本文件,也可以是包含不可显示字符的二进制文件,其内容是一些加密过或未加密的数据,其中可能有用户名、注册码等信息。文件格式则由软件作者自己定义。试用版软件没有注册文件,当用户向作者付费注册之后,会收到作者寄来的注册文件,其中可能包含用户的个人信息。用户只要将该文件放

入指定的目录,就可以让软件成为正式版。该文件一般是放在软件的安装目录中或系统目录下。软件每次启动时,从该文件中读取数据,然后利用某种算法进行处理,根据处理的结果判断是否为正确的注册文件,如果正确则以注册版模式来运行。

这种保护方法使用也不多。

3.4 CD-check

即光盘保护技术。程序在启动时判断光驱中的光盘上是否存在特定的文件,如果不存在则认为用户没有正版光盘,拒绝运行。在程序运行的过程当中一般不再检查光盘的存在与否。Windows下的具体实现一般是这样的:先用GetLogicalDriveStrings()或GetLogicalDrives()得到系统中安装的所有驱动器的列表,然后再用GetDriveType()检查每一个驱动器,如果是光驱则用CreateFileA()或FindFirstFileA()等函数检查特定的文件存在与否,并可能进一步地检查文件的属性、大小、内容等。

3.5 软件狗

软件狗是一种智能型加密工具。它是一个安装在并口、串口等接口上的硬件电路,同时有一套使用于各种语言的接口软件和工具软件。当被狗保护的软件运行时,程序向插在计算机上的软件狗发出查询命令,软件狗迅速计算查询并给出响应,正确的响应保证软件继续运行。如果没有软件狗,程序将不能运行,复杂的软硬件技术结合在一起防止软件盗版。真正有商业价值得软件一般都用软件狗来保护。

平时常见的狗主要有“洋狗”(国外狗)和“土狗”(国产狗)。这里“洋狗”主要指美国的彩虹和以色列的HASP,“土狗”主要有金天地(现在与美国彩虹合资,叫“彩虹天地”)、深思、尖石。总的说来,“洋狗”在软件接口、加壳、反跟踪等“软”方面没有“土狗”好,但在硬件上破解难度非常大;而“土狗”在软的方面做的很好,但在硬件上不如“洋狗”,稍有单片机功力的人,都可以复制。

3.6 软盘加密

通过在软盘上格式化一些非标准磁道,在这些磁道上写入一些数据,如软件的解密密钥等等。这种软盘成为“钥匙盘”。软件运行时用户将软盘插入,软件读取这些磁道中的数据,判断是否合法的“钥匙盘”。

软盘加密还有其它一些技术,如弱位加密等等。

随着近年来软盘的没落,这种方法基本上退出了历史舞台。

3.7 将软件与机器硬件信息结合

用户得到(买到或从网上下载)软件后,安装时软件从用户的机器上取得该机器的一些硬件信息(如硬盘序列号、BOIS序列号等等),然后把这些信息和用户的序列号、用户名等进行计算,从而在一定程度上将软件和硬件部分绑定。用户需要把这一序列号用Email、电话或邮寄等方法寄给软件提供商或开发商,软件开发商利用注册机(软件)产生该软件的注册号寄给用户即可。软件加密虽然加密强度比硬件方法较弱,但它具有非常廉价的成本、方便的使用方法等优点。非常适合做为采用光盘(CDROM)等方式发授软件的加密方案。

此种加密算法的优点

·不同机器注册码不同。用户获得一个密码只能在一台机器上注册使用软件。不同于目前大多软件采用的注册方法,即只要知道注册码,可在任何机器上安装注册。

·不需要任何硬件或软盘

·可以选择控制软件运行在什么机器、运行多长时间或次数等

·可让软件在不注册前的功能为演示软件,只能运行一段时间或部分功能。注册后就立即变为正式软件

·采用特别技术,解密者很难找到产生注册号码的规律

·在使用注册号产生软件(注册机)时可采用使用密码、密钥盘、总次数限制等方法

·方便易用,价格低廉。

这种加密还有以下特点

1、注册加密的软件,只能在一台机器上安装使用。把软件拷贝到其它机器上不能运行。

2、若用户想在另一机器上安装运行,必须把软件在这一机器上运行时的序列号,寄给软件出版商换取注册密码。当然应再交一份软件费用。

3、此加密方法特别适应在因特网上发布的软件及用光盘发布的软件。

注释:

1、“加密技术概述”部分内容参考了大学教材“密码学基础”。

2、“当前流行的一些软件保护技术”部分内容参考了“加密与解密--软件保护技术及完全解决方案”一文。

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

课程设计任务书 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算法产生的私钥和公钥就是在这个基础上产生的。 二、加密的概念 数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。

相关文档
最新文档