导航:首页 > 文档加密 > 高阶密码学加密方法

高阶密码学加密方法

发布时间:2022-06-17 01:24:08

Ⅰ 密码锁课程设计

软件狗[Dongles]

1、认识软件狗。[首先我对软件狗作一简单介绍,在后面我们将对各种软件狗的加密和解密做详细的讲解。]

软件狗是插在微机并行口上的一个软件保护装置,它包括主机检查程序和密钥(也称加密盒)两部分。主机检查程序就是前面说的加密代码的一部分,加密盒是用来存放密码的。一般来说,软件狗插在并行口上,不会影响打印机的正常工作。常见的软件狗加密盒外形,如两个一公一母的D行25针连接器倒接在一起,公头(DB25/M)插在并行口上,母头(DB25/F)可接打印机,相当于原来的并行口。整个软件狗的硬件电路板就在这约5厘米见方的加密盒子里。
电路板上的公头(DB25/F)之间的管脚是一一对应、直接相联结的,以保证并行口的作用不变。存储密码或起信号加密变换作用的器件及其它辅助元件就跨接在这25根线上面,应用程序以特定的方式跟他们沟通、核对。除了某些设计不良的情况之外,一般不会影响打印机的正常工作,打印机工作时也不会影响它们。
为了防止程序被非法复制,所做的加密保护措施一般都包括两部分。首先是要有保存密码数据的载体,即密钥;其次是夹杂在应用程序中的主机检查程序,即加密代码。密钥应该能保证不易被解密、复制;如一般用磁盘做加密时,加密部分无法用一般的工具复制。另外,当检查程序用特殊方法去读密码时,密码应该能很容易地被读出,而不致影响应用程序的正常执行。当发现密码不对或密钥不存在时,就让主机挂起、重新起动或采用被的措施。

软件狗经历的“时代”
软件狗的发展经历了好几代,至2001年初就已发展到了第四代。
第一代是存储器型的加密锁。这是最有历史的加密锁,内部只有存储体,厂商只能对锁进行读、写。软件狗起信号加密变换作用的器件,最多只简单采用一些电阻、二极管等,检查方法也比较简单,很容易被人解密.常见的有原金天地的“软件狗”、深思洛克的Keypro型、Rainbow的Cplus等。这种锁的主要特点是厂商可以预先把自己的保密数据设置到锁内,然后在软件运行时随机读取,这样防止了解密者通过简单重复并口数据来解密,但解密者进一步分析一下数据规律就可以解决了,这就是常说的“端口”层的数据分析。这种加密锁原理非常简单,是种正在被逐步淘汰的产品,但是其原料成本极低,即使在很低的价位也有很好的利润,加密厂商一般都不愿放弃这种锁;而很多厂商由于成本原因又不得不采用,因此这种锁仍有一定的市场份额;
第二代是算法不公开的加密锁。硬件内部增加了单片机,即所谓内置CPU,厂商主要是利用算法功能进行加密。加密锁通常还增加了一些辅助功能,比如倒计数器、远程升级等。软件狗采用了低功耗TTL,COMS等逻辑元件,在电路上做了一些加密工作,检查时也要比第一代软件狗多一道手续,解密的难度自然也增加了。常见的有深思洛克的“深思Ⅰ”型,彩虹天地的SuperPro、微狗,ALADDIN的MemoHASP等。利用单片机,软件与锁之间的数据通讯建立了一个保密协议,数据都是经过加密的,解密者就难以分析出数据内容和规律了,因此对于这种锁的数据分析就不是停留在“端口”层了,解密者转向了“功能”层,就是对软件中的函数调用进行分析。为了抵挡功能层的数据分析,这种锁来了个“软硬”兼施的策略。
“软”的是指驱动程序内反跟踪、外壳加密等等软件工作,让解密者难以在功能层上仿真,谁都靠的是对操作系统、微机系统的精确理解。谁都无法决胜,结果是加密驱动程序在不断更新、膨胀。
“硬”的就是加密锁内的算法功能,这大大增加了解密难度,这是掌握在加密者手中的武器。但是,加密者只能设置算法的参数,即所谓内含多少种算法可选,而算法内容并不知道。这样就限制了厂商对算法的使用,要么预先记录算法结果然后在软件运行时核对(使用码表);要么在软件中至少变换两次然后比较结果是否一致。如果解密者截获这些数据,通过统计、分析就有可达到解密目的;
第三代加密锁,即所谓“可编程”的加密锁。1999年初,以北京深思洛克为代表推出了第三代加密锁,“可编程”加密锁概念的推出是软件加密技术的一次进步。“可编程”加密锁设计初衷是希望用户能够将软件中重要的代码或模块“移植”到加密保护设备中运行,使软件与加密锁实现真正无缝链接。但由于成本限制,早期推出的几款“可编程”加密锁采用的低档单片机给 “可编程”性造成了很大的局限,主要表现在:1、算法变换的复杂度不够高,2、指令编码空间较小,3、程序区的空间较小。这些局限性使得用户根本不可能利用“可编程”加密锁实现理想的高强度加密方案。 软件狗采用了PAL(Programmable Array Logic)、PEEL(Programmable Electrically Erasable Logic Device)、GAL(Generic Array Logic)等可编程器件,但目前流行的期间大概要算串行读写的EEPROM(Serial Electrically Erasable PROM)了。这些器件由于密码编制的灵活性和制成密钥后在程序中插入检查的方便性,极大地增加了解密的难度。从使用的角度来看PAL、PEEL、GAL 等逻辑器件只能读取数据,不能随时写入数据,密码的重新设置比较麻烦;而EEPROM芯片可随意读写,用在软件狗上灵活性相当大,譬如可以为每一个软件狗单独设一个密码,以增加解密的难度;另外,从EEPROM器件的电器性能上来说也非常适合做软件狗;因此这种器件在软件狗的设计中获得了广泛的应用,是当时软件狗制作者的首选芯片。它象一般RAM存储器一样可读写(只不过读写是串行的),即使断电后也能保存数据不变。常用的EEPROM型号是93C46,它是64×16bit的结构,也就是说一个93C46具有64个16位bit单元的容量,每次处理数据也都是16位。有的93C46,如 Microchip、ATMEL、CSi等品牌的93C46可以通过切换,变为128×8bit或64×16bit两种模式,这对软件狗制作来说就更灵活了,其加密效果也更好。当然也有人采用更大容量的93C56、93C66或容量小一点的93C06、93C26等EEPROM芯片。因为软件狗是插在微机的并行口上,所以检查程序是通过并行口的I/O地址去读写EEPROM。具体的读写方式跟硬件线路以及EEPROM的时序有关,因此,一般的检查程序针对某一种硬件线路;但是这些程序大同小异,大体上是差不多的。
第四代软件够在第三代软件狗基础上,加入一个单片机芯片,如PIC16C5X。此芯片中存有特定的算法程序,可将读出的密钥数据进行加密变换,以对抗逻辑分析仪。可以说,软件狗发展到第四代,已经非常成熟了。在此技术上,各软件狗研制公司又加入自己的电路设计,形成了各自的产品特色。
平时常见的狗主要有“洋狗”(国外狗)和“土狗”(国产狗)。这里“洋狗”主要指美国的彩虹和以色列的HASP,“土狗”主要有金天地(现在与美国彩虹合资,叫彩虹天地)、深思、坚石。总的来说,“洋狗”在软件接口、加壳、防跟踪等“软”方面做得没有“土狗”好,但在硬件上绝对“无法” pj(应当说pj难度非常大):而“土狗”在“软”的方面做得绝对称得上世界第一,许多技术,如噪音、自检测、算法可变、码表变换等等,可以说都很先进,而在硬件上不及国外,只要稍有单片机功力的人,都可复制。

现在狗的技术发展很快,针对不同的应用场合有不同的类型,如:
强劲狗:自由定义算法的高强度加密方案
微狗: 面向单片机环境的高强度加密方案
USB狗: USB接口的微狗全兼容产品
软件狗:面向单机环境的低成本加密方案
网络狗:面向网络环境的加密方案
卡式狗:面向网络环境的加密方案

软件狗采取了各种的加密技术,目前较先进的加密技术有以下几种:
AS技术:API函数调用与SHELL外壳加密结合,即使外壳被破坏,加密程序依然不能正常运行。
反跟踪:
a.数据交换随机噪音技术:有效地对抗逻辑分析仪分析及各种调试工具的攻击。
b.迷宫技术:在程序入口和出口之间包含大量判断跳转干扰,动态改变执行次序,提升狗的抗跟踪能力。
抗共享:可从硬件对抗并口共享器,由开发商选择是否共享狗。
口令: 可由软件开发商设置32位口令,口令错误将不能对存储区进行读写。
时间闸:某些狗内部设有时间闸,各种操作必须在规定的时间内完成。狗正常操作用时很短,但跟踪时用时较长,超过规定时间狗将返回错误结果。
单片机:硬件内置单片机,固化的单片机软件保证外部不可读,从而保证狗不可仿制。
存储器:提供20字节掉电保持存储器供开发商存放关键数据、配置参数等信息。

市场上常见几种软件狗的简单介绍
彩虹天地:在中国应该算是老大了,从第一代到第四代的产品都有,但它的主要产品还是第三代的微狗(TD-MH),该代产品中有干扰芯片,能随时产生无用的干扰信号,更加有效的对抗逻辑分析仪;虽然有第四代的强劲狗(CS-QA),但好象有不少问题,所以推出的USB接口的加密锁还是兼容微狗的。彩虹天地的加密强度不高,最简单的pj方法就是随便买一个狗,然后复制成要解的狗。
深思洛克:也是一个比较有名的,至2001年初最主要的产品就是第四代的深思Ⅲ型加密狗,特点就是用户可在狗中定义自己的算法,这大大加强了其保护能力,但它的CPU功能还不够强,算法上有漏洞,而且只提供一种加密方式,所以也是可以击破的,并且也能硬件复制原狗。此类狗加密的产品有Pkpm 结构计算软件、分析家股票软件、圆方cad软件等等。
深思 Ⅲ 的n阶黑箱模型法:
深思 Ⅲ 的n阶黑箱模型法并不是简单的记忆,而是通过深思 Ⅲ 独特的完全可编程使得深思 Ⅲ 锁对于输入和输出呈现高阶黑箱控制模型的特征。每次调用代码运行时使用锁内存储作为运算变量和参数,改变锁的状态影响后续的调用。用户自定义的代码没有任何的说明书和特征,甚至两次相同的调用会返回不同的有用的结果。这是深思 Ⅲ 独特之处。
以上加密范例并不要求加密者寻找复杂并难以预料的函数关系加以移植。
如果是采用0阶黑箱模型那么输入与输出具有直接的对应关系 y=f(x1,x2),其中x1,x2为本次输入,y为本次输出。这时如果函数关系简单就很容易被解密者破译,比如用迭代法、插值法和列表法等方法逼近;这就迫使加密者寻求复杂函数来防止解密者的破译和仿真。但由于锁内资源的限制使得软件移植几乎不可能。现在采用n阶黑箱模型,就使得输入与输出的对应关系复杂化: yn=f(yn-1,yn-2,yn-3,...,y1,xn1,xn2),其中,y1,y2,...,yn-1为以前n-1次调用输出或隐藏的结果, xn1,xn2为本次(第n次)调用的输入参数。
面对这样的复杂关系,解密者简单地取消中间的任何一次调用都可能使后边的结果发生错误,既使是简单的函数关系也可以被这高阶黑箱过程隐藏得难以推测。这样,借助于高阶黑箱模型法很容易找到应用软件中可以利用的公式或函数作为加密的对象。
n阶黑箱模型法使用过程中一样可以使用码表法,例如,范例中的第一次调用。
但是,这样的码表法不同的加密点互相关联,必须进行整体解密,这就大大地提高了加密强度。使用传统的0阶黑箱模型时,不同的加密点之间互不关联只需各个击破分别解密即可,其复杂度无法与n阶黑箱模型相比。对于比较复杂的函数,尽管锁内没有足够的资源,还是可以通过n阶模型法进行加密处理我们可以将复杂函数化为简单函数的运算组合,例如:y=(a-b)*(a+b)+c可以先计算(a-b)和(a+b)然后将结果相乘再加c。
n阶模型严格说是不可解的(只是目前理论上,也请深思公司记住这一点),因为第n次输出依赖于前n-1次输入和输出,而前n-1次输出可能已部分或全部被隐藏,所以第n次输出无法推测,至少推测n-1次输入产生的输出要比一次输入产生的输出复杂度有质的飞跃。
深思 Ⅲ 具有完备的指令系统,可以通过编程实现n阶或任意阶黑箱模型,每次调用互相关联,并且可以绝对隐藏中间结果,只要使用得当,理论上是不可解的( 我的理论是没有不可解的:)
飞天诚信:是新崛起的一家,主要产品是ROCKEY-IV和相兼容的USB狗,技术支持比较好,功能比较多,它的外壳加密程序很不错,用在加密上主要是8号功能(种子码)和14、15、16号功能(都是自定义算法),它的自定义算法比深思的产品好,“没有”漏洞(目前理论上说)。如果很好地使用它加密,是极难pj的。但大多数开发商都很偷懒,比如就只用8号功能(种子码)来加密。
制作和出售软件狗的公司很多,你只要注意一下计算机杂志上的广告就能得知。各公司生产的软件狗除了上述特点外,一般都有一些为吸引用户而附加的功能,主要是一些工具软件,其核心技术却是大同小异。

加密狗的一般特点
1、不占用并行口,因为它虽然插在并行口上,但是它又提供了一个跟原来一致的并行口。
2、软件具有防解密功能,可对抗各种调试工具的跟踪。
3、一狗一密码或一种线路,软硬件不可互换,就像一把锁一把钥匙那样。
4、提供各种语言的编程接口以及一套实用工具,方便用户在自己开发的程序中嵌入加密模块。
5、提供对可执行文件的加密工具,以便用户对已有的产品进行加密。

目前主流软件加密锁的不足
对软件加密保护产品而言,使用者最关心的是加密的有效性,产品的兼容性和稳定性。目前市场上主要的软件加密锁硬件内部均含有单片机,即所谓内置CPU,软件厂商主要是利用算法功能进行加密。加密锁通常还增加了一些辅助功能,比如倒计数器、远程升级等。这类型加密锁主要产品有彩虹天地的“微狗” “SuperPro”、深思洛克的“深思Ⅰ、III型”、 ALADDIN的HASP3、4等。通过对这些软件锁进行分析,认为从安全性上讲他们至少有三方面致命的薄弱点:
薄弱点1:设计原理有很大缺陷
目前主流的加密锁硬件提供了读、写和算法变换功能,且算法变换关系难以pj和穷举。但这类加密锁最大的缺陷是算法不向软件厂商公开,锁内的变换算法在出厂时已经固定,软件加密者只能设置算法的参数。这样就限制了厂商对算法的使用,要么预先记录算法结果然后在软件运行时核对(使用码表),要么在软件中至少变换两次然后比较结果是否一致;如果解密者截获这些数据,通过统计、分析就有可达到解密目的。
薄弱点2:加密锁受处理能力的限制,无法为软件提供强有力的保护
市场上曾先后推出了几款“可编程”加密锁。这类型加密锁最大的特点就是可以让用户自行设计专用算法。“可编程”加密锁的出现的确是软件加密技术的一次进步。深思洛克的“深思III”、飞天诚信的“Rockey4”均属此类产品。
但由于成本限制,这类型加密锁往往只能采用10~20元人民币的通用8位单片机或同档次的ASIC芯片作为核心微处理器。这种低档单片机的处理运算能力是相当弱的,这就给 “可编程”加密锁造成了很大的局限性,主要表现在:1、算法变换的复杂度不够高,2、指令编码空间较小,3、程序区的空间较小。这些局限性使得用户根本不可能利用“可编程”加密锁实现理想的高强度加密方案。
薄弱点3:硬件本身抵抗恶意攻击的能力较弱
随着集成电路设计、生产技术的发展,安全产品的核心芯片硬件本身受到攻击的可能性越来越大。典型的硬件攻击手段有电子探测攻击(如SPA和DPA)和物理攻击(探测,如采用SiShell技术),下面我们就这方面进行简要的分析。
电子探测(SPA和DPA)攻击技术的原理是:单片机芯片是一个活动的电子元器件,当它执行不同的指令时,对应的电功率消耗也相应的变化。通过使用特殊的电子测量仪和数学统计技术,来检测和分析这些变化,从中得到单片机中的特定关键信息。
物理攻击的方法有:通过扫描电子显微镜对芯片内部存储器或其它逻辑直接进行分析读取;通过测试探头读取存储器内容;通过从外部无法获取的接口(例如厂家测试点)对存储器或处理器进行直接数据存取;再激活单片机的测试功能等。
由于通用低档单片机并非定位于制作安全类产品,没有提供有针对性的防范物理攻击手段,因此比较容易通过电子探测(SPA和DPA)攻击直接读出存储器内的数据。虽然大多数普通单片机都具有熔丝烧断保护单片机内代码的功能,但此类芯片应用场合广、发行批量大,随着厂商间委托加工与频繁技术转让,使得利用该类芯片下载程序的设计漏洞,利用厂商的芯片测试接口,通过特殊的烧写时序和数据读出信息成为比较容易的事情。
ASIC芯片是完全根据用户需求而特别定做,属于小批量生产。由于其采用特殊的逻辑电路且不会轻易公开测试功能接口,因此只要以其为基础开发的系统不是保存重要的信息或者不用于高级别的安全场合还是可以防范一般情况下的物理攻击。
加密锁性能判定
加密锁很小巧,包含的技术内容却很丰富。一般我们从三个方面分析加密锁的性能:
第一个是加密原理,或者说加密锁有些什么功能,这往往是针对一些解密方法发展起来的,最需要创造性的地方就是这里。国内产品在这个方面一直与国外产品具备足够的竞争能力。
第二个是加密锁的可靠性、稳定性、兼容性、透明性等。这些是对锁的基本要求,但是做完整并不容易,尤其是兼容性、透明性问题,加密厂家在这方面有着丰富的经验,但是没有谁可以100%保证。透明性是锁的一个比较特殊的指标,由于锁是工作在并口(打印口),并口还会有其他设备,比如打印机、绘图仪、硬盘、光驱等,锁如果影响到原来设备的正常工作就是透明性不够好,完全的透明是难以做到的,一般的加密厂家不保证锁对并口硬盘、光驱等设备的透明性。
最后一个是锁的易学性、易用性。

软件狗加解密技术的简单介绍(我将在以后陆续加入并详细介绍)
涉及到加、解密的技术可以说是包罗万象,基本的有汇编语言、调试工具、操作系统等,还需要一些密码学的基本常识,如果对数据结构、编译原理等有一定的了解会更有帮助。当然,这并不是说没有这些基础就做不好加密,在使用加密锁时,很多工作已经由加密厂家完成了,其实加密者只要对“随机性”有一些基本的认识,就可以完成很出色的加密。这个随机与一般意义上的随机有所不同,这里强调的是“不可预测性”。如果解密者可以预知加密锁返回的数据,就可以用程序代替锁来返回,软件就无法知道锁是否真正存在,就是被解密了。这就是我们常说的“仿真”,在密码学中就是假冒攻击。所以,加密的一个重要思路就是让解密者看来:锁输入输出数据有很强的随机性。目前,加密设计中最迫切解决的就是构造随机性的问题。
常有人这样加密:在软件中反复检查锁内的数据,而且运用了很复杂的检查方法,比如中间插入一些运算或者垃圾程序等,加密的工作量很大,以为“我查了那么多次锁还不够吗?”。但这在解密者眼里不值一提,只要发现锁返回数据的规律性就足够解密了,根本不必理会软件是怎么使用的。这种加密失败在于,只是用了些读操作,没有构成返回数据的随机性。那么,如果扩大加密锁存储容量,或者进行些写操作就行吗?显然还是随机性太差。因为这点,第一代加密锁很难胜任真正的加密工作了。也因为这点,过去比较繁荣软加密技术难以深入发展。这提醒我们,如果加密原理不合理,再大的加密工作量也是徒劳无益的。
使用算法变换就可以增强随机性,但是有人这样加密:在软件中大量调用算法变换,变换的数据量也很大(即算法码表很大),可还是被轻易解密了。为什么呢?是不是算法被破了?不是。这种加密方法在解密者看来和上个没有什么不同,只要把每次变换的数据内容都记录下来,如果软件再用同样的数据调用算法,解密者自然知道应该返回什么数据了。失败原因是,码表内容是固定的,被解密者穷举了,没有构成随机性,这说明可以穷举的东西是不具备随机性的。那么怎么才能防止被穷举呢?由于加密者也不知道算法方程,实际上是做不到的。但是,我们可以给解密者增加很多穷举困难。我们知道,只要让解密者抓到一次,这个数据就再也没有加密作用了,因此不能让软件运行一次就用完所有码表,另外还可以用些随机数来做变换,这就考验解密者的分辨能力了。这是个技巧性比较高的问题,需要不小的工作量,但这的确对加密强度有贡献。
如果加密者知道算法内容,而解密者不知道,这样就可以用任何数据来访问加密锁的算法功能,解密者就无法穷举了,第三代“可编程”加密锁就能实现这种思想。
由于第三代锁的出现,需要补充另外一个话题,就是加密锁的功能。如果解密者可以通过数学方法解析出锁的内部功能,就可以“仿真”了。如何设计锁的功能才不易被破呢?这涉及到一点密码学,一般的加密者只要能够将不同类型的运算混合使用就够。对于第一、二代加密锁,解密者没有必要去分析程序是如何使用锁返回数据的(仿真的思路),而对于第三代锁,这种方法常成了解密者唯一希望,寄希望于通过跟踪锁返回数据的使用过程而推测出锁的内部功能。这时候几乎任何能够降低程序可读性的手段都会提高加密效果,比如程序垃圾、反复的数据搬动、嵌入汇编、插入浮点运算等等。这点很吸引人,即使你刚明白加密,也能让解密专家围着你团团转。
加密者往往远不如解密者专业,随着互联网的发展,解密技术正以更快的速度传播,这给加密带来了更大的挑战。

软件狗的加密技术介绍
解密一个软件狗可以从两方面入手,其一是软件,只要把检查软件狗的那部分代码解除,那么软件狗就成了一只“死狗”。其二是从硬件入手的解密方法,其含义是要仿制一个加密盒,不管机密做的如何好,如果加密盒被仿制了,那么软件狗的加密作用也就不存在了。因此,从硬件入手的解密跟从软件入手的解密其效果是一样的,只不过后者需要付出一定的额外代价—硬件成本而已。
那么既然从软件、硬件着手都能解密,用它来保护软件还有什么作用?不用着急,让我们来谈谈如何更地保护您的软件。
针对解密的两种方法,我们也从这两方面来加强软件的加密功能。

增强软件狗加密功能的方法
一、软件加密
全面我们说,从软件入手的解密方法很多,针对这种情况,人们也研制出了很多行之有效的防解密措施,在次,我们把一些常用的防止软件跟踪解密的措施列于下面:
1、计算程序执行时间,并判断程序的执行时间是否过长;
2、关键程序部分禁止 键盘中断,并检查键盘中断是否被开放;
3、关键程序部分禁止显示输出和打印输出;
4、在软件中多做几次软件狗检查;
5、把程序的重要部分加以编码加密,在运行时才解密;
6、修改断点中断功能;
7、利用除零中断或溢出中断是否有程序跟踪;
8、利用时钟中断检查是否有程序跟踪;
9、在程序中调用INT 7;
10、程序不要写得很结构化,要多一些“废话”;
11、若干种加密方法综合使用;
12、用黄玫瑰软件制作组出品的BITSHELL作外层防护;
...... ......
==================================================
[ 附:外壳反跟踪反破译程序BITSHELL简介
一、系统简介
BITSHELL是一套可反跟踪反破译的软件加密系统,主要用语保护软件开发者的合法权益,防止未经授权的复制、算法解读及目标码反汇编。它是我们应高级开发者的要求从BITLOK中提炼出来的,专为应用软件提供pj保护的系统。应用软件开发者可以充分发挥自己的才智编写或精巧或复杂的程序,有 BITSHELL的保护不用担心竞争者对商品软件进行逆向分析。应用软件开发者更可以设计自己的反拷贝介质(加密卡、加密狗等),然后用BITSHELL 进行外层保护,从而不必担心访问反拷贝介质的代码被截获。应用软件开发者也可以购买商品化的加密卡,加密狗等,在应用系统内部秘密地存取加密卡、加密狗,用BITSHELL作外层保护,防止访问反拷贝介质的代码被截获。
主要功能和性能如下:
千变万化的加密方案
内含随机可选的二十套加密算法,构造出千变万化的反跟踪反破译方案,特别适合加密有多个单独执行程序的软件。
先进超强的反跟踪技术
采用加密虚拟机、多层间址多 链解等独创的世界领先技术,结合传统的加密方法,具备超强的动态反跟踪能力。防范各种软硬件调试器对其破译。不仅防止了国际上通用的调试器,如:Soft-ICE,Turbo Debugger,Symdeb等,还重点防范了国内开发的各种专用调试器。
可靠性高、兼容性好、使用面最广泛
经BITSHELL1.0加密过的软件日夜运行在超过60万台机器上,经过了最广泛、最严格的测试。BITSHELL2.0具备同样可靠的性能,加密过的软件可以在各种厂牌各种机型上正常运行,兼容各种流行的DOS系统。
功能全面、使用方便
可加密各种带覆盖模块的执行文件,特别适合加密有Clipper,FoxPro等编译的各种数据库应用系统。
提供OBJ嵌入式加密模块。这样,用户还可以在源程序里加入加密模块,与外壳部分相互关联,有效地提高破译难度。
可以为用户定制专用BITSHELL反跟踪反破译系统,可以满足用户的独特需求。
二、快速入门
BITSHELL经过了用户严格的检验,作者对其精雕细琢反复修正,现在的版本使用极容易。确保BITSHELL硬盘或网络安装已经成功,或BITSHELL源盘在软驱中,加密方法如下:
BITSHELL<源文件><目标文件>
例如:
把TEST.EXE加密成TESTOK.EXE。输入以下命令
BITSHELL TEST.EXE TESTOK.EXE
把TEXE.EXE加密不保留未加密的程序。输入以下命令。
三、操作指南
1、BITSHELL参数的详细说明
BITSHELL可以用KEY环境变量来设定一些参数,这样可以简化使用过程。设置方法如下:
SET KEY=[SCHEMExx,][STAY,][CHECKOVL]
BITSHELL各项参数的意义如下:
(1)参数SCHEMExx,若给出则依用户的要求使用指定的变形算法,否则将随机抽取一种加密算法。BITSHELL2.0共有20种算法可选。
每一种算法都有自己

Ⅱ 目前常用的加密方法主要有两种是什么

目前常用的加密方法主要有两种,分别为:私有密钥加密和公开密钥加密。私有密钥加密法的特点信息发送方与信息接收方均需采用同样的密钥,具有对称性,也称对称加密。公开密钥加密,又称非对称加密,采用一对密钥,一个是私人密钥,另一个则是公开密钥。
私有密钥加密

私有密钥加密,指在计算机网络上甲、乙两用户之间进行通信时,发送方甲为了保护要传输的明文信息不被第三方窃取,采用密钥A对信息进行加密而形成密文M并发送给接收方乙,接收方乙用同样的一把密钥A对收到的密文M进行解密,得到明文信息,从而完成密文通信目的的方法。

这种信息加密传输方式,就称为私有密钥加密法。

私有密钥加密的特点:

私有密钥加密法的一个最大特点是:信息发送方与信息接收方均需采用同样的密钥,具有对称性,所以私有密钥加密又称为对称密钥加密。

私有密钥加密原理:

私有加密算法使用单个私钥来加密和解密数据。由于具有密钥的任意一方都可以使用该密钥解密数据,因此必须保证密钥未被授权的代理得到。

公开密钥加密

公开密钥加密(public-key cryptography),也称为非对称加密(asymmetric cryptography),一种密码学算法类型,在这种密码学方法中,需要一对密钥,一个是私人密钥,另一个则是公开密钥。

这两个密钥是数学相关,用某用户密钥加密后所得的信息,只能用该用户的解密密钥才能解密。如果知道了其中一个,并不能计算出另外一个。因此如果公开了一对密钥中的一个,并不会危害到另外一个的秘密性质。称公开的密钥为公钥;不公开的密钥为私钥。

Ⅲ 密码学当中有什么类型的密码

大体上分为经典密码学和现代密码学经典密码学中最古典的两个加密技巧是移位式和替代式还有就是多字符加密法现代密码学的研究主要在分组密码和流密码及其应用上你说的只是某个地区或部门所用的密码 就像当年二战时美军通过当地土着人所发明的纳瓦霍密码一样还有摩登密码

Ⅳ 常用的加密算法有哪些

对称密钥加密

对称密钥加密 Symmetric Key Algorithm 又称为对称加密、私钥加密、共享密钥加密:这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单的相互推算的密钥,对称加密的速度一般都很快。

Ⅳ 计算机密码学中有哪些加密算法

、信息加密概述

密码学是一门古老而深奥的学科,它对一般人来说是莫生的,因为长期以来,它只在很少的范围内,如军事、外交、情报等部门使用。计算机密码学是研究计算机信息加密、解密及其变换的科学,是数学和计算机的交义学科,也是一门新兴的学科。随着计算机网络和计算机通讯技术的发展,计算机密码学得到前所未有的重视并迅速普及和发展起来。在国外,它已成为计算机安全主要的研究方向,也是计算机安全课程教学中的主要内容。

密码是实现秘密通讯的主要手段,是隐蔽语言、文字、图象的特种符号。凡是用特种符号按照通讯双方约定的方法把电文的原形隐蔽起来,不为第三者所识别的通讯方式称为密码通讯。在计算机通讯中,采用密码技术将信息隐蔽起来,再将隐蔽后的信息传输出去,使信息在传输过程中即使被窃取或载获,窃取者也不能了解信息的内容,从而保证信息传输的安全。

任何一个加密系统至少包括下面四个组成部分:

( 1)、未加密的报文,也称明文。

( 2)、加密后的报文,也称密文。

( 3)、加密解密设备或算法。

( 4)、加密解密的密钥。

发送方用加密密钥,通过加密设备或算法,将信息加密后发送出去。接收方在收到密文后,用解密密钥将密文解密,恢复为明文。如果传输中有人窃取,他只能得到无法理解的密文,从而对信息起到保密作用。

二、密码的分类

从不同的角度根据不同的标准,可以把密码分成若干类。

(一)按应用技术或历史发展阶段划分:

1、手工密码。以手工完成加密作业,或者以简单器具辅助操作的密码,叫作手工密码。第一次世界大战前主要是这种作业形式。

2、机械密码。以机械密码机或电动密码机来完成加解密作业的密码,叫作机械密码。这种密码从第一次世界大战出现到第二次世界大战中得到普遍应用。3、电子机内乱密码。通过电子电路,以严格的程序进行逻辑运算,以少量制乱元素生产大量的加密乱数,因为其制乱是在加解密过程中完成的而不需预先制作,所以称为电子机内乱密码。从五十年代末期出现到七十年代广泛应用。

4、计算机密码,是以计算机软件编程进行算法加密为特点,适用于计算机数据保护和网络通讯等广泛用途的密码。

(二)按保密程度划分:

1、理论上保密的密码。不管获取多少密文和有多大的计算能力,对明文始终不能得到唯一解的密码,叫作理论上保密的密码。也叫理论不可破的密码。如客观随机一次一密的密码就属于这种。

2、实际上保密的密码。在理论上可破,但在现有客观条件下,无法通过计算来确定唯一解的密码,叫作实际上保密的密码。

3、不保密的密码。在获取一定数量的密文后可以得到唯一解的密码,叫作不保密密码。如早期单表代替密码,后来的多表代替密码,以及明文加少量密钥等密码,现在都成为不保密的密码。

(三)、按密钥方式划分:

1、对称式密码。收发双方使用相同密钥的密码,叫作对称式密码。传统的密码都属此类。

2、非对称式密码。收发双方使用不同密钥的密码,叫作非对称式密码。如现代密码中的公共密钥密码就属此类。

(四)按明文形态:

1、模拟型密码。用以加密模拟信息。如对动态范围之内,连续变化的语音信号加密的密码,叫作模拟式密码。

2、数字型密码。用于加密数字信息。对两个离散电平构成0、1二进制关系的电报信息加密的密码叫作数字型密码。

(五)按编制原理划分:

可分为移位、代替和置换三种以及它们的组合形式。古今中外的密码,不论其形态多么繁杂,变化多么巧妙,都是按照这三种基本原理编制出来的。移位、代替和置换这三种原理在密码编制和使用中相互结合,灵活应用。

Ⅵ 密码加密的方法有那些

用户密码加密方式

用户密码保存到数据库时,常见的加密方式有哪些?以下几种方式是常见的密码保存方式:

1. 明文保存

比如用户设置的密码是“123456”,直接将“123456”保存在数据库中,这种是最简单的保存方式,也是最不安全的方式。但实际上不少互联网公司,都可能采取的是这种方式。

2. 对称加密算法来保存

比如3DES、AES等算法,使用这种方式加密是可以通过解密来还原出原始密码的,当然前提条件是需要获取到密钥。不过既然大量的用户信息已经泄露了,密钥很可能也会泄露,当然可以将一般数据和密钥分开存储、分开管理,但要完全保护好密钥也是一件非常复杂的事情,所以这种方式并不是很好的方式。

总结

采用PBKDF2、bcrypt、scrypt等算法可以有效抵御彩虹表攻击,即使数据泄露,最关键的“用户密码”仍然可以得到有效的保护,黑客无法大批量破解用户密码,从而切断撞库扫号的根源。

【加密软件编辑推荐】
易控网盾加密软件--重要文件防泄密专家!轻松实现单位内部文件自动加密保护,加密后的文件在单位内部正常流转使用。未经许可,任何私自拷贝加密文件外发出去,都将打开为乱码,无法使用!对于发送给客户等第三方的文件,可实现控制打开时间和打开次数等防泄密参数!同时可设置对员工电脑文件自动备份,防止恶意删除造成核心数据的遗失!从源头防止企业核心文件被外泄!
相关页面:加密软件,文件加密,文档加密,图纸加密软件,防泄密软件,CAD加密软件,文件外发加密

Ⅶ 加密方式有几种

加密方式的种类:

1、MD5

一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。这套算法的程序在 RFC 1321 标准中被加以规范。

2、对称加密

对称加密采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。

3、非对称加密

与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密。

如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

(7)高阶密码学加密方法扩展阅读

非对称加密工作过程

1、乙方生成一对密钥(公钥和私钥)并将公钥向其它方公开。

2、得到该公钥的甲方使用该密钥对机密信息进行加密后再发送给乙方。

3、乙方再用自己保存的另一把专用密钥(私钥)对加密后的信息进行解密。乙方只能用其专用密钥(私钥)解密由对应的公钥加密后的信息。

在传输过程中,即使攻击者截获了传输的密文,并得到了乙的公钥,也无法破解密文,因为只有乙的私钥才能解密密文。

同样,如果乙要回复加密信息给甲,那么需要甲先公布甲的公钥给乙用于加密,甲自己保存甲的私钥用于解密。

Ⅷ 数据加密主要有哪些方式

主要有两种方式:“对称式”和“非对称式”。
对称式加密就是加密和解密使用同一个密钥,通常称之为“Session Key ”这种加密技术目前被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式”加密法,它的Session Key长度为56Bits。
非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。这里的“公钥”是指可以对外公布的,“私钥”则不能,只能由持有人一个人知道。它的优越性就在这里,因为对称式的加密方法如果是在网络上传输加密文件就很难把密钥告诉对方,不管用什么方法都有可能被别窃听到。而非对称式的加密方法有两个密钥,且其中的“公钥”是可以公开的,也就不怕别人知道,收件人解密时只要用自己的私钥即可以,这样就很好地避免了密钥的传输安全性问题。
一般的数据加密可以在通信的三个层次来实现:链路加密、节点加密和端到端加密。(3)
链路加密
对于在两个网络节点间的某一次通信链路,链路加密能为网上传输的数据提供安全证。对于链路加密(又称在线加密),所有消息在被传输之前进行加密,在每一个节点对接收到消息进行解密,然后先使用下一个链路的密钥对消息进行加密,再进行传输。在到达目的地之前,一条消息可能要经过许多通信链路的传输。
由于在每一个中间传输节点消息均被解密后重新进行加密,因此,包括路由信息在内的链路上的所有数据均以密文形式出现。这样,链路加密就掩盖了被传输消息的源点与终点。由于填充技术的使用以及填充字符在不需要传输数据的情况下就可以进行加密,这使得消息的频率和长度特性得以掩盖,从而可以防止对通信业务进行分析。
尽管链路加密在计算机网络环境中使用得相当普遍,但它并非没有问题。链路加密通常用在点对点的同步或异步线路上,它要求先对在链路两端的加密设备进行同步,然后使用一种链模式对链路上传输的数据进行加密。这就给网络的性能和可管理性带来了副作用。
在线路/信号经常不通的海外或卫星网络中,链路上的加密设备需要频繁地进行同步,带来的后果是数据丢失或重传。另一方面,即使仅一小部分数据需要进行加密,也会使得所有传输数据被加密。
在一个网络节点,链路加密仅在通信链路上提供安全性,消息以明文形式存在,因此所有节点在物理上必须是安全的,否则就会泄漏明文内容。然而保证每一个节点的安全性需要较高的费用,为每一个节点提供加密硬件设备和一个安全的物理环境所需要的费用由以下几部分组成:保护节点物理安全的雇员开销,为确保安全策略和程序的正确执行而进行审计时的费用,以及为防止安全性被破坏时带来损失而参加保险的费用。
在传统的加密算法中,用于解密消息的密钥与用于加密的密钥是相同的,该密钥必须被秘密保存,并按一定规则进行变化。这样,密钥分配在链路加密系统中就成了一个问题,因为每一个节点必须存储与其相连接的所有链路的加密密钥,这就需要对密钥进行物理传送或者建立专用网络设施。而网络节点地理分布的广阔性使得这一过程变得复杂,同时增加了密钥连续分配时的费用。
节点加密
尽管节点加密能给网络数据提供较高的安全性,但它在操作方式上与链路加密是类似的:两者均在通信链路上为传输的消息提供安全性;都在中间节点先对消息进行解密,然后进行加密。因为要对所有传输的数据进行加密,所以加密过程对用户是透明的。
然而,与链路加密不同,节点加密不允许消息在网络节点以明文形式存在,它先把收到的消息进行解密,然后采用另一个不同的密钥进行加密,这一过程是在节点上的一个安全模块中进行。
节点加密要求报头和路由信息以明文形式传输,以便中间节点能得到如何处理消息的信息。因此这种方法对于防止攻击者分析通信业务是脆弱的。
端到端加密
端到端加密允许数据在从源点到终点的传输过程中始终以密文形式存在。采用端到端加密,消息在被传输时到达终点之前不进行解密,因为消息在整个传输过程中均受到保护,所以即使有节点被损坏也不会使消息泄露。
端到端加密系统的价格便宜些,并且与链路加密和节点加密相比更可靠,更容易设计、实现和维护。端到端加密还避免了其它加密系统所固有的同步问题,因为每个报文包均是独立被加密的,所以一个报文包所发生的传输错误不会影响后续的报文包。此外,从用户对安全需求的直觉上讲,端到端加密更自然些。单个用户可能会选用这种加密方法,以便不影响网络上的其他用户,此方法只需要源和目的节点是保密的即可。
端到端加密系统通常不允许对消息的目的地址进行加密,这是因为每一个消息所经过的节点都要用此地址来确定如何传输消息。由于这种加密方法不能掩盖被传输消息的源点与终点,因此它对于防止攻击者分析通信业务是脆弱的。

Ⅸ AES什么加密方式,起到什么作用!

AES是高级加密标准,但是对普通的地电脑用户是不需知道的,我们能用到的都是基于此标准开发的各种加密方法,EFS,MD5,无线网络的WEP,WAP等

Ⅹ 密码学是怎么样通过加密和解密的,

你是想知道密码学怎样加解密还是?
近代密码学:编码密码学主要致力于信息加密、信息认证、数字签名和密钥管理方面的研究。信息加密的目的在于将可读信息转变为无法识别的内容,使得截获这些信息的人无法阅读,同时信息的接收人能够验证接收到的信息是否被敌方篡改或替换过;数字签名就是信息的接收人能够确定接收到的信息是否确实是由所希望的发信人发出的;密钥管理是信息加密中最难的部分,因为信息加密的安全性在于密钥。历史上,各国军事情报机构在猎取别国的密钥管理方法上要比破译加密算法成功得多。

密码分析学与编码学的方法不同,它不依赖数学逻辑的不变真理,必须凭经验,依赖客观世界觉察得到的事实。因而,密码分析更需要发挥人们的聪明才智,更具有挑战性。

现代密码学是一门迅速发展的应用科学。随着因特网的迅速普及,人们依靠它传送大量的信息,但是这些信息在网络上的传输都是公开的。因此,对于关系到个人利益的信息必须经过加密之后才可以在网上传送,这将离不开现代密码技术。

1976年Diffie和Hellman在《密码新方向》中提出了着名的D-H密钥交换协议,标志着公钥密码体制的出现。 Diffie和Hellman第一次提出了不基于秘密信道的密钥 分发,这就是D-H协议的重大意义所在。
PKI(Public Key Infrastructure)是一个用公钥概念与技术来实施和提供安全服务的具有普适性的安全基础设施。PKI公钥基础设施的主要任务是在开放环境中为开放性业务提供数字签名服务。

要查看具体的某个密码体系的知识可参考《密码学概论》。

阅读全文

与高阶密码学加密方法相关的资料

热点内容
产品经理和程序员待遇 浏览:439
解忧程序员免费阅读 浏览:107
录像免压缩 浏览:504
总结所学过的简便算法 浏览:360
南昌哪些地方需要程序员 浏览:759
三台服务器配置IP地址 浏览:173
如何用命令方块连续对话 浏览:278
win7linux共享文件夹 浏览:304
命令符打开本地服务 浏览:599
android应用程序源码 浏览:703
安卓开发工程师简历怎么写 浏览:61
热水器水量服务器是什么意思 浏览:117
stk卫星编译 浏览:480
对后台程序员的要求 浏览:761
ios大文件夹图标 浏览:626
生的计划pdf 浏览:715
oppoa93加密便签在哪查找 浏览:21
两个数字的加减乘除运算编程 浏览:227
给手机加密码忘记了怎么办 浏览:601
单片机运算符 浏览:297