??xml version="1.0" encoding="utf-8" standalone="yes"?>四虎久久影院,国产精品99久久久精品无码,色欲av伊人久久大香线蕉影院http://www.shnenglu.com/eday/category/3610.htmlzh-cnFri, 23 May 2008 22:37:30 GMTFri, 23 May 2008 22:37:30 GMT60软g加密技术和注册机制http://www.shnenglu.com/eday/archive/2007/02/11/18667.html??Sun, 11 Feb 2007 13:41:00 GMThttp://www.shnenglu.com/eday/archive/2007/02/11/18667.html  本文是一Y件加密技术的基础性文章,要介l了软g加密的一些基本常识和一些加密品,适用于国内Y件开发商或者个人共享Y件开发者阅d考?/p>

  1、加密技术概q?/strong>

  一个密码系l的安全性只在于密钥的保密性,而不在算法的保密性?/p>

  对纯数据的加密的是q样。对于你不愿意让他看到这些数据(数据的明文)的hQ用可靠的加密算法,只要破解者不知道被加密数据的密码Q他׃可解读这些数据?/p>

  但是QY件的加密不同于数据的加密Q它只能是“隐藏”。不你愿意不愿意让他(合法用户Q或 CrackerQ看见这些数据(软g的明文)QY件最l总要在机器上q行Q对机器Q它必L明文。既然机器可以“看见”这些明文,那么 CrackerQ通过一些技术,也可以看到这些明文?/p>

  于是Q从理论上,M软g加密技术都可以破解。只是破解的隑ֺ不同而已。有的要让最高明?Cracker 忙上几个月,有的可能不费吹灰之力Q就被破解了?/p>

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

  2、密码学?/strong>

  2.1   概念

  Q?Q?发送者和接收?/strong>

  假设发送者想发送消息给接收者,且想安全地发送信息:Ҏ信偷听者不能阅d送的消息?/p>

  Q?Q?消息和加?/strong>

  消息被称为明文。用某种Ҏ伪装消息以隐藏它的内容的q程UCؓ加密Q加了密的消息称为密文,而把密文转变为明文的q程UCؓ解密?/p>

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

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

  EQMQ?C.

  相反圎ͼ解密函数D作用于C产生M

  DQCQ?M.

  先加密后再解密消息,原始的明文将恢复出来Q下面的{式必须成立Q?/p>

  DQEQMQ)=M

  Q?Q?鉴别、完整性和抗抵?/strong>

  除了提供机密性外Q密码学通常有其它的作用Q?

  QaQ?鉴别

  消息的接收者应该能够确认消息的来源Q入侵者不可能伪装成他人?/p>

  QbQ?完整性检?/p>

  消息的接收者应该能够验证在传送过E中消息没有被修改;入R者不可能用假消息代替合法消息?/p>

  QcQ?抗抵?/p>

  发送者事后不可能虚假地否认他发送的消息?/p>

  Q?Q?法和密?/strong>

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

  如果法的保密性是Z保持法的秘密,q种法UCؓ受限制的法。受限制的算法具有历史意义,但按现在的标准,它们的保密性已q远不够。大的或l常变换的用Ll不能用它们,因ؓ每有一个用L开q个l织Q其它的用户必L换另外不同的法。如果有人无意暴露了q个U密Q所有h都必L变他们的法?/p>

  更糟的是Q受限制的密码算法不可能q行质量控制或标准化。每个用Ll必L他们自己的唯一法。这Ll织不可能采用流行的g或Y件品。但H听者却可以买到q些行产品q学习算法,于是用户不得不自q写算法ƈ予以实现Q如果这个组l中没有好的密码学家Q那么他们就无法知道他们是否拥有安全的算法?/p>

  管有这些主要缺P受限制的法对低密的应用来说还是很行的,用户或者没有认识到或者不在乎他们pȝ中内在的问题?/p>

  C密码学用密钥解决了这个问题,密钥用K表示。K可以是很多数值里的Q意倹{密钥K的可能值的范围叫做密钥I间。加密和解密q算都用这个密钥(卌都依赖于密钥,q用K作ؓ下标表示Q,q样Q加/解密函数现在变成Q?/p>

  EKQMQ?C

  DKQCQ?M.

  DKQEKQMQ)=M.

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

  EK1QMQ?C

  DK2QCQ?M

  DK2 QEK1QMQ)=M

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

  密码pȝq法、以及所有可能的明文、密文和密钥l成的?/p>

  Z密钥的算法通常有两c:对称法和公开密钥法。下面将分别介绍Q?/p>

  2.2   对称密码法

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

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

  EKQMQ?C

  DKQCQ?M

  对称法可分ZcR一ơ只Ҏ文中的单个比特(有时对字节)q算的算法称为序列算法或序列密码。另一cȝ法是Ҏ文的一l比特亚行运,q些比特l称为分l,相应的算法称为分l算法或分组密码。现代计机密码法的典型分l长度ؓ64比特——这个长度大到以防止分析破译,但又到以方便使用Q在计算机出现前Q算法普遍地每次只对明文的一个字W运,可认为是序列密码对字W序列的q算Q?/p>

  2.3   公开密码法

  公开密钥法Q也叫非对称法Q是q样设计的:用作加密的密钥不同于用作解密的密钥,而且解密密钥不能Ҏ加密密钥计算出来Q至在合理假定的长旉内)。之所以叫做公开密钥法Q是因ؓ加密密钥能够公开Q即陌生者能用加密密钥加密信息,但只有用相应的解密密钥才能解密信息。在q些pȝ中,加密密钥叫做公开密钥Q简U公钥)Q解密密钥叫做私人密钥(U私钥)。私人密钥有时也叫秘密密钥。ؓ了避免与对称法hQ此处不用秘密密钥这个名字?/p>

  用公开密钥K加密表示?/p>

  EKQMQ?C.

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

  DKQCQ?M

  有时消息用私人密钥加密而用公开密钥解密Q这用于数字{֐Q后面将详细介绍Q,管可能产生hQ但q些q算可分别表CZؓQ?/p>

  EKQMQ?C

  DKQCQ?M

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

  2.4   单向散列函数

  单向散列函数 HQMQ?作用于一个Q意长度的消息 MQ它q回一个固定长度的散列?hQ其?h 的长度ؓ m .

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

  Q?Q?l定 M Q很Ҏ计算 h Q?/p>

  Q?Q?l定 h Q根?HQMQ?= h 计算 M 很难 Q?/p>

  Q?Q?l定 M Q要扑ֈ另一个消?M?q满?HQMQ?= HQM’) 很难?/p>

  在许多应用中Q仅有单向性是不够的,q需要称之ؓ“抗撞”的条gQ?/p>

  要找Z个随机的消息 M ?M‘,?HQMQ?= HQM’) 满很难?/p>

  ׃散列函数的这些特性,׃公开密码法的计速度往往很慢Q所以,在一些密码协议中Q它可以作ؓ一个消?M 的摘要,代替原始消息 MQ让发送者ؓ HQMQ?{֐而不是对 M {֐ .

  ?SHA 散列法用于数字{֐协议 DSA中?/p>

  2.5   数字{֐

  提到数字{֐q不开公开密码pȝ和散列技术?/p>

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

  基本协议是简单的 Q?/p>

  Q?Q?A 用她的私钥对文g加密Q从而对文g{֐?/p>

  Q?Q?A 签名的文g传给B.

  Q?Q?B用A的公钥解密文Ӟ从而验证签名?/p>

  q个协议中,只需要证明A的公钥的是她的。如果B不能完成W(3Q步Q那么他知道{֐是无效的?/p>

  q个协议也满以下特征:

  Q?Q?{֐是可信的。当B用A的公钥验证信息时Q他知道是由A{֐的?/p>

  Q?Q?{֐是不可伪造的。只有A知道她的U钥?/p>

  Q?Q?{֐是不可重用的。签名是文g的函敎ͼq且不可能{换成另外的文件?/p>

  Q?Q?被签名的文g是不可改变的。如果文件有M改变Q文件就不可能用A的公钥验证?/p>

  Q?Q?{֐是不可抵赖的。B不用A的帮助就能验证A的签名?/p>

  在实际应用中Q因为公共密码算法的速度太慢Q签名者往往是对消息的散列签名而不是对消息本n{֐。这样做q不会降低签名的可信性?/p>

  3    当前行的一些Y件保护技?/strong>

  3.1   序列号保?/p>

  数学法一w是密码加密的核心Q但在一般的软g加密中,它似乎ƈ不太Zh们关心,因ؓ大多数时候Y件加密本w实现的都是一U编E的技巧。但q几q来随着序列号加密程序的普及Q数学算法在软g加密中的比重g是越来越大了?/p>

  看看在网l上大行光的序列号加密的工作原理。当用户从网l上下蝲某个shareware——共享Y件后Q一般都有用时间上的限Ӟ当过了共享Y件的试用期后Q你必须到这个Y件的公司L册后方能l箋使用。注册过E一般是用户把自qUh信息Q一般主要指名字Q连同信用卡L告诉lY件公司,软g公司会根据用L信息计算Z个序列码Q在用户得到q个序列码后Q按照注册需要的步骤在Y件中输入注册信息和注册码Q其注册信息的合法性由软g验证通过后,软g׃取消掉本w的各种限制Q这U加密实现v来比较简单,不需要额外的成本Q用戯C非常方便Q在互联|上的Y?0%都是以这U方式来保护的?/p>

  软g验证序列L合法性过E,其实是验证用户名和序列号之间的换算关系是否正确的过E。其验证最基本的有两种Q一U是按用戯入的姓名来生成注册码Q再同用戯入的注册码比较,公式表示如下Q?/p>

  序列?= FQ用户名Q?/p>

  但这U方法等于在用户软g中再C软g公司生成注册码的q程Q实际上是非怸安全的,不论其换过E多么复杂,解密者只需把你的换过E从E序中提取出来就可以~制一个通用的注册程序?/p>

  另外一U是通过注册码来验证用户名的正确性,公式表示如下Q?/p>

  用户名称 = F逆(序列P Q如ACDSEEQ?/p>

  q其实是软g公司注册码计过E的反算法,如果正向法与反向算法不是对U算法的话,对于解密者来_的确有些困难Q但q种法相当不好设计?/p>

  于是有h考虑C下的法Q?/p>

  F1Q用户名Uͼ = F2Q序列号Q?/p>

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

  特定?= FQ用户名Q序列号Q?/p>

  q个法看上ȝ当不错,用户名称与序列号之间的关pM再那么清CQ但同时也失M用户名于序列L一一对应关系QY件开发者必自q护用户名UC序列号之间的唯一性,但这g不是难以办到的事Q徏个数据库可以了。当然也可以把用户名U和序列号分为几个部分来构造多元的法?/p>

  特定?= FQ用户名1Q用户名2Q?..序列?Q序列号2...Q?/p>

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

  3.2   旉限制

  有些E序的试用版每次q行都有旉限制Q例如运?0分钟?0分钟停止工作,必须重新q行该程序才能正常工作。这些程序里面自然有个定时器来统计程序运行的旉?/p>

  q种Ҏ使用的较?/p>

  3.3   Key File 保护

  Key FileQ注册文Ӟ是一U利用文件来注册软g的保护方式。Key File一般是一个小文gQ可以是U文本文Ӟ也可以是包含不可昄字符的二q制文gQ其内容是一些加密过或未加密的数据,其中可能有用户名、注册码{信息。文件格式则pY件作者自己定义。试用版软g没有注册文gQ当用户向作者付Ҏ册之后,会收C者寄来的注册文gQ其中可能包含用L个h信息。用户只要将该文件放入指定的目录Q就可以让Y件成为正式版。该文g一般是攑֜软g的安装目录中或系l目录下。Y件每ơ启动时Q从该文件中d数据Q然后利用某U算法进行处理,Ҏ处理的结果判断是否ؓ正确的注册文Ӟ如果正确则以注册版模式来q行?/p>

  q种保护Ҏ使用也不多?/p>

  3.4   CD-check

  卛_盘保护技术。程序在启动时判断光׃的光盘上是否存在特定的文Ӟ如果不存在则认ؓ用户没有正版光盘Q拒l运行。在E序q行的过E当中一般不再检查光盘的存在与否。Windows下的具体实现一般是q样的:先用GetLogicalDriveStringsQ?Q或GetLogicalDrivesQ?Q得到系l中安装的所有驱动器的列表,然后再用GetDriveTypeQ?Q检查每一个驱动器Q如果是光驱则用CreateFileAQ?Q或FindFirstFileAQ?Q等函数查特定的文g存在与否Qƈ可能q一步地查文件的属性、大、内容等?/p>

  3.5   软g?/p>

  软g狗是一U智能型加密工具。它是一个安装在q口、串口等接口上的g电\Q同时有一套用于各种语言的接口Y件和工具软g。当被狗保护的Y件运行时Q程序向插在计算Z的Y件狗发出查询命oQY件狗q速计查询ƈl出响应Q正的响应保证软gl箋q行。如果没有Y件狗Q程序将不能q行Q复杂的软硬件技术结合在一起防止Y件盗版。真正有商业价值得软g一般都用Y件狗来保护?/p>

  qx常见的狗主要有“洋狗”(国外狗)和“土狗”(国狗)。这里“洋狗”主要指国的彩虹和以色列的HASPQ“土狗”主要有金天圎ͼ现在与美国彩虹合资,叫“彩虹天地”)、深思、尖矟뀂ȝ说来Q“洋狗”在软g接口、加壟뀁反跟踪{“Y”方面没有“土狗”好Q但在硬件上破解隑ֺ非常大;而“土狗”在软的斚w做的很好Q但在硬件上不如“洋狗”,E有单片机功力的人,都可以复制?/p>

  3.6   软盘加密

  通过在Y盘上格式化一些非标准道Q在q些道上写入一些数据,如Y件的解密密钥{等。这UY盘成为“钥匙盘”。Y件运行时用户Y盘插入,软gdq些道中的数据Q判断是否合法的“钥匙盘”?/p>

  软盘加密q有其它一些技术,如弱位加密等{?/p>

  随着q年来Y盘的没落Q这U方法基本上退Z历史舞台?/p>

  3.7   Y件与机器g信息l合

  用户得到Q买到或从网上下载)软g后,安装时Y件从用户的机器上取得该机器的一些硬件信息(如硬盘序列号、BOIS序列L{)Q然后把q些信息和用L序列受用户名{进行计,从而在一定程度上Y件和g部分l定。用户需要把q一序列LEmail、电话或邮寄{方法寄lY件提供商或开发商QY件开发商利用注册机(软gQ生该软g的注册号寄给用户卛_。Y件加密虽然加密强度比gҎ较弱Q但它具有非常廉L成本、方便的使用Ҏ{优炏V非帔R合做ؓ采用光盘QCDROMQ等方式发授软g的加密方案?/p>

  此种加密法的优?/p>

  ·    不同机器注册码不同。用戯得一个密码只能在一台机器上注册使用软g。不同于目前大多软g采用的注册方法,卛_要知道注册码Q可在Q何机器上安装注册?/p>

  ·    不需要Q何硬件或软盘

  ·    可以选择控制软gq行在什么机器、运行多长时间或ơ数{?/p>

  ·    可让软g在不注册前的功能为演CYӞ只能q行一D|间或部分功能。注册后q卛_为正式Y?/p>

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

  ·    在用注册号产生软gQ注册机Q时可采用用密码、密钥盘、L数限制等Ҏ

  ·    方便易用Qhg廉?/p>

  q种加密q有以下特点

  1?注册加密的YӞ只能在一台机器上安装使用。把软g拯到其它机器上不能q行?/p>

  2?若用h在另一机器上安装运行,必须把Y件在q一机器上运行时的序列号Q寄lY件出版商换取注册密码。当然应再交一份Y件费用?/p>

  3?此加密方法特别适应在因特网上发布的软g及用光盘发布的Y件?/p>

  注释Q?/p>

  1、“加密技术概q”部分内容参考了大学教材“密码学基础”?/p>

  2、“当前流行的一些Y件保护技术”部分内容参考了“加密与解密--软g保护技术及完全解决Ҏ”一文?/p>

? 2007-02-11 21:41 发表评论
]]>
þùŷպƷ| þþƷ| þþþӰԺС| þ۲ӰԺѿҹɫ| Ⱦþԭɫwww| þþƷAVũ帾Ů| ƷþӰԺ| þˬˬƬAV| þþþһƷɫ| þ91ƷۺϹҳ| ƷþþĻ| 2021þùԲľƷ| һձ˾þۺӰ| þùƷ99Ʒ987| 㽶þҹɫƷ| þþƷh| þˬһ| ݲݾþþר| ղƷþþþþþɫ| ۺϾþþƷɫ| þ99ֻоƷ| 99þþƷһ| ŷۺϾþþ| þ̳| 㽶þþþ| 99þùۺ| þùŷպƷ| ޾Ʒ97þĻ| þþþþaŷa| 91þþһȫ| ƷŮٸAVѾþ| ڸþþþþ| ŷ޹Ʒþ| ˼˼þ99ֻƵƷ66| ާѡþþþƷ9966| Ʒŷһþþ | þAVĻ| ŷƷ˿þþĻ | һþaþþƷۺ㽶| ۿþ| þþƷһӰԺ |