最近在研究数据安全和数据加密,以下信息都是来源于网络,收集起来以便有同样需要的人查看!
数据加密技术
现代社会对信息安全的需求大部分可以通过密码技术来实现。密码技术是信息安全技术中的核心技术,它主要由密码编码技术和密码分析技术两个分支组成。密码编码技术的主要任务是寻求产生安全性高的有效密码算法。以满足对消息进行加密或认证的要求。密码分析技术的主要任务是彼译密码或伪造认证码,实现窃取机密信息或进行诈骗破坏活动。这两个分支既相互对立,又相互依存。信息的安全性主要包括两个方面即信息的保密性和信息的认证性。保密的目的是防止对手破译系统中的机密信息,认证的目的是验证信息的发送者是真正的,而不是冒充的。验证信息的完整性,即验证信息在传送或存储过程中未被窜改、重放或延迟等。信息的保密性和信息的认证性是信息安全性的两个不同方面,认证不能自动地提供保密性,而保密也不能自然地提供认证功能。在用密码技术保护的现代信息系统的安全性主要取决于对密钥的保护,而不是依赖于对算法或硬件本身的保护,即密码算法的安全性完全寓于密钥之中。可见,密钥的保护和管理在数据系统安全中是极为重要的。人们目前特别关注的是密钥托管技术。
一、信息保密技术
信息的保密性是信息安全性的一个重要方面。保密的目的是防止对手破译信息系统中的机密信息。加密是实现信息保密性的一种重要手段,就是使用数学方法来重新组织数据,使得除了合法的接收者外,任何其他人要想恢复原先的"消息"(将原先的消息称作"明文")或读懂变化后的"消息"(将变化后的消息称作"密文")是非常困难的,将密文变换成明文的过程称作解密。可见,加密技术可使一些重要数据存储在一台不安全的计算机上,或可以在一个不安全的信道上传送,只有持有合法密钥的一方才能获得"明文"。所谓加密算法就是对明文进行加密时所采用的一组规则,解密算法就是对密文进行解密时所采用的一组规则。加密算法和解密算法的操作通常都是在一组密钥控制下进行的,分别称为加密密钥和解密密钥。根据加密密钥和解密密钥是否相同,可将现有的加密*分为两种:一种是私钥或对称加密*、这种*的加密密钥和解密密钥相同,其典型代表是美国的数据加密标准(D E S):另一种是公钥或非对称加密*,这种*的加密密钥和解密密钥不相同并且从其中一个很难推出另一个。加密密钥可以公开,而解密密钥可由用户自己秘密保存,其典型代表是R S A*。
根据明文加密方式的不同,又可将私钥加密*分为两类:一类是流密码,在这类*中,明文按字符逐位地被加密;另一类是分组密码,在这类*中,先将明文分组(每组含有多个字符),然后逐组地进行加密。
从社会应用密码的需求来看,目前国际上最关心的加密技术有两种:一种是分组密码。另一种是公钥密码。
1. 分组密码技术
DES是日前研究最深入、应用最广泛的一种分组密码。己有长达20年的历史。DES的研究大大丰富了设计和分析分组密码的理论、技术和方法。针对DES,人们研制了各种各样的分析分组密码的方法,比如差分分析方法和线性分析方法,这些方法对DES的安全性有一定的威胁,但没有真正对16轮D E S的安全性构成威胁。自从DES公布之日起,人们就认为DES的密钥长度太短(只有56比特),不能抵抗最基本的攻击方法--穷搜索攻击。
目前,国际上公开的分组密码算法有100多种,比如,Lucifer、IDEA、SAFER,k-64、RC5、Skipjack、RC2、FEAL一N、REDOC一II、L0KI、CAST、Khuf u、Khafre、MMB、3一WAY、TEA、MacGuffin、SHARK、BEAR、LION、CA.1.1、CRAB、Biowfish、G0 ST、SQUARE和MISTY等。对这些算法感兴趣的读者可在Schneier所著的《Applied Cry ptography:Protocals,Algorithms,and Source CodeinC》一书和会议论文集《FastSoftware Encryption》中找到它们的详细讨论,也可以通过Internet查询到。美国目前正在制定和评估新的数据加密标准,替代1998年到期的DES。
2. 公钥加密技术
私钥密码*的缺陷之一是通信双方在进行通信之前需通过一个安全信道事先交换密钥。这在实际应用中通常是非常困难的。而公钥密码*可使通信双方无须事先交换密钥就可建立起保密通信。公钥算法要比私钥算法慢得多。在实际通信中,一般利用公钥密码*来保护和分配(交换)密钥,而利用私钥密码*加密消息。公钥密码*主要用于认证(比如数字签名,身份识别等)和密钥管理等。公钥密码*的出现为解决私钥密码*的密钥分配开辟了一条广阔的道路。
值得一提的是,在有些文献中,公钥密码*的含义很广,不仅包括公钥加密*,而且还包括各种公钥协议比如数字签名、身份识别协议、密钥交换协议等,但我们这里所说的公钥密码*,除了特别声明外,特指公钥加密*。
目前国际上已经有许多种公钥密码*,但比较流行的和被人们认可的公钥密码主要有两类,一类是基于大整数因子分解问题的,其中最典用的代表是RSA公钥密码*:另--类是基于离散对数问题的,比如E lGamal公钥密码*和椭圆曲线公钥密码*。由于分解大整数的能力日益增强,所以对RSA公钥密码的安全带来了一定的威胁,512比特模长的RSA*已经不安全。人们建议使用l024比特模长,要保证20年的安全就要选择1280比特模长,增大模长带来了实现上的难度。而基于离散对数问题的公钥密码在目前技术下有512比特模长;就能够保证其安全性。特别是椭圆曲线上的离散对数的计算要比有限域上的离散对数的计算更困难,能设计出密钥更短的公钥密码*,因而受到了国际上广泛的关注,RSA等一些公司已经开发出了符合IEEEP l363标准的椭圆曲线公钥密码。
RSA算法的安全性是基于分解大整数的困难性。在RSA*中使用了这样一条基本事实:一般地说,分解两个大素数之积是一利很困难的事情。
下面是A使用一个公钥密码*发送信息给B的过程:
(1)A首先获得B的公钥。
(2)A用B的公钥加密信息,然后发送给B。
(3)B用自己的私钥解密A发送的信息。
已经制造出了许多不同的RSA加密芯片。RSA算法在美国已申请了专利,将于2000年9月20日到期。破译RSA的一个直接的方法是分解n,目前的分解能力大概为130位十进制数,但512比特(l54位十进制数)模长的RSA*安全性已经受到一定的威胁,人们建议使时l024比特(308位十进制数)模长。关于RSA*,也有一些别的分析方法,比如选择密文攻击、同模攻击和低指数攻击等。这些攻击告诫人们在选择RSA*的参数和使用RSA*时必须遵循一定的规则。
除了RSA外,还有一些别的公钥加密算法,比如E lGamal算法、Rabin算法、McEliece算法、Merkie一Hellman背包算法、Chor一Rivest背包算法、有限自动机公钥算法、椭圆曲线的密码算法、细胞自动机公钥密码算法、LU公钥密码算法、多重密钥的公钥密码算法和概率加密算法等。
二、信息认证技术
信息的认证性是信息安全性的另一个重要方面。认证的目的有两个:一是验证信息的发送者是真正的,而不是冒充的:二是验证信息的完整性.即验证信息在传送或存储过料中是否被窜改,重放或延迟等。
对密码系统的攻击主要有两类:一类是被动攻击,对手只是对截获的密文进行分析:另一类是主动攻击,对于通过采用删除、增添、重放和伪造等手段主动向系统注入假消息。认证是防止他人对系统进行主动攻击(如伪造,窜改信息等)的一种重要技术。
1. 数字签名技术
政治、军事、外交等活动中签署文件,商业上签定契约和合同以及日常生活中在书信、从银行取款等事务中的签字,传统上都采用手写签名或印鉴。签名起到认证、核准和生效作用。随着信息时代的来临,人们希望通过数字通信网络进行远距离的贸易合同的签名,数字签名应运而生,并开始时了商业通信系统,如电子邮递、电子转帐、办公室自动化等系统中。
一个数字签名算法主要由两个算法组成,即签名算法和验证算法。签名者能使用一个(秘密)签名算法签一个消息,所得的签名能通过一个公开的验证算法来验证。给定一个签名,验证算法根据签名是否真实来作出一个"真"或"假"的问答。
目前已有大量的数字签名算法,如RSA数字签名算法、EIGamal数字签名算法、Fiat一Shamir数字签名算法、Guillou一Quisquarter数字签名算法、Schnorr数字签名算法、0ng一Schnorr一Shamir数字签名算法、美国的数字签名标准/算法(D S S/D S A)、椭圆曲线数字签名算法和有限自动机数字签名算法等。
A使一个签名算法对消息x签名和B验证签名(x,y)的过程可描述为:
(l)A首先使用他的秘密密钥对x进行签名得y。
(2)A然后将(x,y)发送给B。
(3)最后B用A的公钥验证A的签名的合法性
DSA是美国国家标准技术学会(NIST)的一个标准,它是ElGamal数字签名算法的一个修改。当选择p为512比特的素数时,ElGamal数字签名的尺寸是1024比特,而在DSA中通过选择一个160比特的素数可将签名的尺寸降低为320比特,这就大大地减少了存储空间和传输带宽。关于DSA也有一些批评意见,但它已被人们广泛地接受和应用,它的确为数字签名技术的应用提供了一个适当的内核。
2. 身份识别技术
通信和数据系统的安全性常常取决于能否正确识别通信用户或终端的个人身份。比如银行的自动取款机(ATM)可将现款发放给经它正确识别的帐号持卡人。对计算机的访问和使用、安全地区的出入和放行、出入境等都是以准确的身份识别为基础的。身份识别技术能使识别者让对方识别到自己的真正身份,确保识别者的合法权益。但是从更深一层意义上来说,它是社会责任制的体现和社会管理的需要。
进入电子信息社会,虽然有不少学者试图使用电子化生物唯一识别信息(如指纹、掌纹、声纹、视网膜、脸形等),但由于代价高、准确性低、存储空间人和传输效率低,不适合计算机读取和判别,只能作为辅助措施应用。而使用密码技术,特别是公钥密码技术,能够设计出安全性高的识别协议,受到人们的青睐。
身份识别的常用方式主要有两种,一种是使用通行字的方式;另一种是使用持证的方式。通行字是使时最广泛的一种身份识别方式,比如中国古代调兵用的虎符和现代通信网的拔入协议等。通行字一般由数字、字母、特殊字符、控制字符等组成的长为5--8的字符串。其选择规则为:易记,难于被别人猜中或发现,抗分析能力强,还需要考虑它的选择方法、使用期、长度、分配、存储和管理等。通行字方式识别的办法是:识别者A先输入他的通行字,然后计算机确认它的正确性。A和计算机都知道这个秘密通行字,A每次登录时,计算机都要求A输入通行字。这样就要求计算机存储通行字,一旦通行字文件暴露,就可获得通行字。为了克服这种缺陷,人们建议采用单向函数。此时,计算机存储通行字的单项函数值而不是存储通行字。其认证过程为:
1.A将他的通行字传送给计算机。
2.计算机完成通行字的单向函数值的计算。
3.计算机把单向函数值和机器存储的值比较。
由了计算机不再存储每个人的有效通行字表,某些人侵入计算机也无法从通行字的单向函数值表中获得通行字。当然,这种保护也抵抗不住某些攻击。不过,它的确是一种简单而有效的识别方法。
持证(token)是一种个人持有物,它的作用类似于钥匙,用于启动电子设备。使用比较多的是一种嵌有磁条的塑料卡,磁条上记录有用于机器识别的个人信息。这类卡通常和个人识别号(PIN) 一起使用。这类卡易于制造,而且磁条上记录的数据也易于转录,因此要设法防止仿制。为了提高磁卡的安全性,人们建议使用一种被称作"智能卡"的磁卡来代替普通的磁卡,智能卡与普通的磁卡的主要区别在于智能卡带有智能化的微处理器和存储器。智能卡已成为目前身份识别的一种更有效、更安全的方法。智能卡仅仅为身份识别提供了一个硬件基础,要想得到安全的识别,还需要与安全协议配套使用。
从实用角度来讲,人们最关心的是设计简单而且能在一个智能卡上实现的安全识别协议。一个安全的身份识别协议至少应满足以下两个条件:
1.识别者A能向验证者B证明他的确是A。
2.在识别者A向验证者B证明他的身份后,验证者B没有获得任何有用的信息,B不能模仿A向第三方证明他是A。
目前已经设计出了许多满足这两个条件的识别协议。比如Schnorr身份识别协议、Okanmto身份识别协议、Guillou-Quisquater身份识别协议和基于身份的识别协议等.这些识别协议均为询问-应答式协议。询问-应答式协议的基本观点是:验证者提出问题(通常是随机选择一些随机数,称作口令),由识别者回答,然后验证者验证其真实性。另一类比较重要的识别协议是零知识身份识别协议。零知识的基本思想是:称为证明者的一方试图使被称为验证者的另一方相信某个论断是正确的,却又不向验证者提供任何有用的信息。Feige、Fiat和Shamir基于零知识的思想设计了第一个零知识身份识别协议,称为Feige-Fiat-Shamir零知识身份识别协议。
3. 杂凑技术和消息的完整性
杂凑函数(也称杂凑算法)就是把任意长的输入串变化成固定长的输出串的一种函数。因为杂凑函数是多对一的函数,所以一定将某些不同的输入变化成相同的输入。这就要求给定一个杂凑值,求其逆是比较难的,但给定的输入计算杂凑值必须是很容易的。
一个安全的杂凑函数应该至少满足以下几个条件:
1. 输入长度是任意的.
2. 输出长度是固定的,根据目前的计算技术应至少取128比特长,以便抵抗生日攻击。
3. 对每一个给定的输入,计算输出其杂凑值是很容易的。
4. 给定杂凑函数的描述,找到两个不同的输入消息杂凑到同一个值在计算上是不可行的,或给定杂凑函数的描述和一个随机选择的消息,找到另一个与该消息不同的消息使得它们杂凑到同一个值在计算上也是不可行的。
攻击杂凑函数的典型方法是生日攻击,生日攻击的基本观点来自于生日问题:在一个教室里最少有多少学生时,可使得在这个教室里至少有两个学生的生日在同一天的概率不小于50%?这个问题的答案是23。
目前已研制出适合于各种用途的杂凑算法,这些算法都是伪随机函数,任何杂凑值都是等可能的。输出并不以可辨别的方式依赖于输入。任何输入串中单个比特的变化,将会导致输出比特串中大约一般的比特发生变化。利用某些数学难题比如因子分解问题和离散对数问题等设计的杂凑函数有Davies-Price平方杂凑算法、CCITT建议、Juene man杂凑算法、Damgard平方杂凑算法、Damgard背包杂凑算法、Schnorr的FFT杂凑算法等。这些算法中有的已不安全,而有的仍然是安全的。利用某些私钥密码*比如DES等设计的杂凑函数有Rabin杂凑算法、Winternitz杂凑算法、Quisquater-Girault杂凑算法、Merkle杂凑算法、N-Hash算法等,这种杂凑函数的安全性与所使用的基础密码算法有关。不基于任何假设和密码*直接设计杂凑函数是当今比较流行的一种设计方法。美国的安全杂凑算法(SHA)就是这类算法,另外还有MD4、MD5、MD2、RIPE-MD、HAVAL等算法。
美国国家标准与技术局和美国国家安全局共同设计了一个与美国数字签名算法(DSA)一起使用的安全杂凑算法(SHA),标准是安全杂凑标准(SHS),SHA是用于该标准的算法。SHA的设计原则与MD4算法的设计原则极其相似,它很象是MD4算法的一种变形,但SHA的设计者没有公开SHA的详细设计决策。SHA输入的长度限制在2比特之内,输出长度为160比特。
消息认证是指使意定的接收者能够检验收到的消息是否真实的方法。检验的内容包括:证实消息的源和宿、消息的内容是否被窜改过(即消息的完整性)、消息的序号和时间性。可见,消息认证可使接收者识别消息的源和内容的真伪、时间性和意定的信宿。
消息的源和宿的认证可使用数字签名技术和身份识别技术,常用的方法有两种:一种方法是通信双方事先约定发送消息的数据加密密钥,接收者只需证实发送来的消息是否能用该密钥还原成明文就能鉴定发送者。如果双方使用同一个数据加密密钥,那么只需在消息中嵌入发送者的识别符即可。另一种方法是通信双方事先约定各自发送消息所使用的通行字,发送消息中含有此通行字并进行加密,接收者只需判别消息中解密的通行字是否等于约定的通行字就能鉴定发送者。为了安全起见,通行字应该是可变的。
消息的序号和时间性的认证主要是阻止消息的重放攻击。常用的方法有:消息的流水作业号、链接认证符,随机数认证法和时戳等。消息内容的认证即消息的完整性检验常用的方法是:消息发送者在消息中加入一个认证码并经加密后发送给接收者检验(有时只需加密认证码即可),接收者利用约定的算法对解密后的消息进行运算,将得到的认证码与收到的认证码进行比较,若二者相等,则接收,否则拒绝接收。目前实现这种方法的基本途径有两条:一条是采用消息认证码(MAC),另一条是采用窜改检测码(MDC)。MAC法利用函数f(x)(f(x)必须满足一定的条件)和密钥k将要发送的明文x或密文y变换成r比特的消息认证码f(x,k)或称其为认证符附加在x或y 之后发出,通常将f选为带密钥的杂凑函数。MDC法利用函数f(x)(f(x)必须满足一定的条件)将要发送的明文x变换成r比特的窜改检测码f(x)附加在x之后,在一起加密事先保密认证。当然,也可以只对窜改检测码f(x)加密。通常将f选为不带密钥的杂凑函数。接收者收到发送的消息后,按照发送这同样的方法对接收的数据或解密后的数据的前面部分进行计算,得到相应的r比特串,然后与接收恢复的r比特串逐位进行比较,若完全相同,则认为收到的消息未被窜改,否则,认为收到的消息已被窜改。
三,密钥管理技术
根据密码假设,一个密码系统的安全性取决于对密钥的保护,而不是对系统或硬件本身的保护。即使在密码*公开或密码设备丢失的情况下,同一型号的密码机仍可继续使用。然而一旦密钥丢失或出错,不但合法用户不能提取信息,而且可能会是非法用户窃取信息。密钥的保密和安全管理在数据系统安全中是极为重要的 。
密钥管理包括密钥的产生、存储、装入、分配、保护、丢失、销毁等内容.其中密钥的分配和存储可能是最棘手的问题.密钥管理不仅影响系统的安全性,而且涉及到系统的可靠性、有效性和经济性。当然,密钥管理过程中也不可能避免物理上、人事上、规程上等一些问题。
1. 密钥分配协定
密钥分配协定是这样的一种机制:系统中的一个成员先选择一个秘密密钥,然后将它传送另一个成员或别的成员。传统的方法是通过邮递或信使护送密钥。这种方法的安全性完全取决于信使的忠诚和素质,当很难完全消除信使被收买的可能性。另外,这种方法的传输量和存储量都很大。人们希望能设计出满足以下两个条件的密钥分配协议:
1.传输量和存储量都比较小。
2.每一对用户U和V都能独立地计算一个秘密密钥K。
目前已经设计出了大量的满足上述两个条件的密钥分配协议,诸如Blom密钥分配协议,Diffie-Hellman密钥预分配协议、Kerboros 密钥分配协议、基于身份的密钥分配协议等。
密钥协定是一个协议,它通过两个或多个成员在一个公开的信道上通信联络建立一个秘密密钥。在一个密钥协定方案中,密钥的值是由两个成员提供的输入的一个函数。现有的密钥协定方案有Diffie-Hellman密钥交换协议、MTI密钥协定方案、Girault密钥协定方案等。
2. 秘密共享技术
存储在系统中所有密钥的安全性可能最终取决于一个主密钥。这样做存在两个明显的缺陷:一是若主密钥偶然或有意地被暴露,整个系统就易受攻击;二是若主密钥丢失或损坏,系统中的所有信息就不能用了。关于这个问题,Shamir于1979年提出了一种解决方法,称为门限法,实质上是一种秘密共享的思想。这种方法的基本观点是:讲一个密钥K按下述方式破成n个小片k1,k2,......,kn:
1.已知任意t个Ki的值易于计算出K。
2.已知任意t---1个或更少个Ki,则由于信息短缺而不能确定出k。
将n个小片分给n个用户。由于要重构密钥需要t个小片,故暴露一个小片或大到t-1个小片不会危及密钥,且少于t-1个用户不可能共谋到密钥,同时,若一个小片被丢失或损坏,认可恢复密钥(只要至少有t个有效的小片)。
人们基于拉格朗日内插多项式法、射影几何、线性代数、孙子定理等提出了许多秘密共享方案。
3. 密钥托管技术
加密技术既可以帮助守法公民和企业保密,又可以被犯罪分子用于掩护其犯罪事实,这就为*管理社会,法律执行部门跟踪犯罪分子带来了一定的困难。从国家的利益考虑,应该能控制加密技术的使用。美国于1993年提出的密钥托管加密技术正符合这种要求。密钥托管有时也叫做密钥恢复。现在密钥托管已经是一些系统的派生术语,包括密钥恢复、受信任的第三方、特别获取、数据恢复等。近几年,密钥托管加密技术已成为密码技术研究和应用的焦点。
数据加密算法
数据加密是实现网络安全的关键技术之一,本文首先介绍加密的基本概念,然后着重讨论两类最常见的加密技术:私用密钥加密和公开密钥加密,并详细探讨了它们的特点、发展及今后的研究方向。
加密算法
由于Internet的快速发展,网络安全问题日益受到人们的重视。面 临计算机网络存在的潜在威胁与攻击,一个计算机网络安全管理者要为自己所管辖的网络建造起强大、安全的保护手段,可以通过以下六个安全层次完成:即修补和阻止网络漏洞,加密,认证,防火墙,安全协议和法律事务。
数据加密技术是网络中最基本的安全技术,主要是通过对网络中传输的信息进行数据加密来保障其安全性,这是一种主动安全防御策略,用很小的代价即可为信息提供相当大的安全保护。
一、加密的基本概念
"加密",是一种限制对网络上传输数据的访问权的技术。原始数据(也称为明文,plaintext)被加密设备(硬件或软件)和密钥加密而产生的经过编码的数据称为密文(ciphertext)。将密文还原为原始明文的过程称为解密,它是加密的反向处理,但解密者必须利用相同类型的加密设备和密钥对密文进行解密。
加密的基本功能包括:
1. 防止不速之客查看机密的数据文件;
2. 防止机密数据被泄露或篡改;
3. 防止特权用户(如系统管理员)查看私人数据文件;
4. 使入侵者不能轻易地查找一个系统的文件。
数据加密是确保计算机网络安全的一种重要机制,虽然由于成本、技术和管理上的复杂性等原因,目前尚未在网络中普及,但数据加密的确是实现分布式系统和网络环境下数据安全的重要手段之一。
数据加密可在网络OSI七层协议(OSI是Open System Interconnect的缩写,意为开放式系统互联。国际标准组织(国际标准化组织)制定了OSI模型。这个模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。)的多层上实现、所以从加密技术应用的逻辑位置看,有三种方式:
①链路加密:通常把网络层以下的加密叫链路加密,主要用于保护通信节点间传输的数据,加解密由置于线路上的密码设备实现。根据传递的数据的同步方式又可分为同步通信加密和异步通信加密两种,同步通信加密又包含字节同步通信加密和位同步通信加密。
②节点加密:是对链路加密的改进。在协议传输层上进行加密,主要是对源节点和目标节点之间传输数据进行加密保护,与链路加密类似.只是加密算法要结合在依附于节点的加密模件中,克服了链路加密在节点处易遭非法存取的缺点。
③端对端加密:网络层以上的加密称为端对端加密。是面向网络层主体。对应用层的数据信息进行加密,易于用软件实现,且成本低,但密钥管理问题困难,主要适合大型网络系统中信息在多个发方和收方之间传输的情况。
二、加密技术及其相关问题
1.加密的分类
加密类型可以简单地分为三种:
1. 根本不考虑解密问题;
2. 私用密钥加密技术;
3. 公开密钥加密技术。
第一种加密技术主要是针对一些像口令加密这样的类型,它只需要被加密,并与以前的加密进行比较;第二种和第三种加密技术是按如何使用密钥上的不同来划分的。以下主要介绍第二种和第三种加密技术。
(1)私用密钥加密技术
私用密钥加密利用一个密钥对数据进行加密,对方接收到数据后,需要用同一密钥来进行解密。这种加密技术的特点是数学运算量小,加密速度快,其主要弱点在于密钥管理困难,而且一旦密钥泄露则直接影响到信息的安全性。
* 美国数据加密标准及其改进算法
对称密钥加密技术中最具有代表性的算法是IBM公司提出的DES(Data Encryptiorn Standard)算法,该算法于1977年被美国国家标准局NBS颁布为商用数据加密标准。DES综合运用了置换、代替、代数多种密码技术,把消息分成64位大小的块,使用56位密钥,迭代轮数为l6轮的加密算法。它设计精巧,实现容易,使用方便。
DES正式公布后,世界各国的许多公司都推出自己实现DES的软硬件产品。美国NBS至少已认可了30多种硬件和固件实现产品。硬件产品既有单片式的,也有单板式的;软件产品既有用于大中型机的,也有用于小型机和微型机的。
三重DES(Triple DES)则是DES的加强版。是一种比较新的加密算法,它能够使用多个密钥,主要是对信息逐次作三次加密。
随机化数据加密标准(RDES)算法是日本密码学家Nakao Y.Kaneko T等人于1996年初提出的一种新的DES改进算法。它只是在每轮迭代前的右半部增加了一个随机置换,其他均与DES相同,目前看来它比DES安全性要好。
* 美国新数据加密标准CLIPPER和CAPSTONE
l984年,美国总统里根签署154号国家安全决策会(NSDDl45)命令,国家保密局NSA着手制定美国*非机要机构使用新的加密标准。NSA推行的商业安全通信签署计划CCEP完全改变了其密码政策,密码的算法不再公开,对用户只提供加密芯片及其硬件设备。NSA所推出加密芯片命名为CLIPPER,其加密算法命名为SKIPJACK,属于64位分组编码的对称密钥*。
CLIPPER主要是用于商用计算机网和通信网中对数据和语言进行加密,它被设计成允许法律监听的保密通信方式。在使用前需在一种称为SCIF的安全设备中进行编程,加解密时需将CLIPPER芯片装入加密设备中进行。
l993年4月,美国白宫推出了EES(EscrowedEncryption Standard)加密标准,作为解决美国国家安全与美国公民需求之间的平衡问题。欲用EES来进行通信的双方都必须拥有带Clipper芯片的电信安全设备。
美国NSA在推出CLIPPER的同时,还推出了军事通信网中进行数据加密的密码芯片CAPSTONE,并着手对CAPSTONE进行改进,以作为继CLIPPER之后的下一代的数据加密标准。CAPSTONE是在CLIPPER的基础上加入了数字签名算法,密钥交换及相关的数学函数。
* 新一代加密算法IDEA
IDEA(International Data Encryption Algorithm)是一种国际信息加密算法。它是1991年的瑞士ETH Zurich由James Massey 和Xueiia Lai发明的),于l992年正式公开,是一个分组大小为64位,密钥为l28位,迭代轮数为八轮的迭代型密码*。密钥主要是通过二元和,模216加及216+l乘三种运算来完成,IDEA另一特点是用户可以根据需求选用64位或128位密钥以满足所需的安全要求。
(2)公开密钥加密技术
l976年,Diffie和Hellman首次提出公开密钥加密*,即每个人都有一对密钥,其中一个为公开的,一个为私有的。发送信息时用对方的公开密钥加密,收信者用自己的私用密钥进行解密。公开密钥加密算法的核心是运用一种特殊的数学函数一单向陷门函数,即从一个方向求值是容易的。但其逆向计算却很困难,从而在实际上成为不可行的。公开密钥加密技术它不仅保证了安全性又易于管理。其不足是加密和解密的时间长。
公开密钥算法有很多,一些算法如著名的背包算法和McELiece算法都被破译,目前公认比较安全的公开密钥算法主要就是RSA算法及其变种Rabin算法,离散对数算法等。
RSA是Rivet,Shamir和Adleman于1978年在美国麻省理工学院研制出来的,它是一种比较典型的公开密钥加密算法,其安全性是建立在"大数分解和素性检测"这一已知的著名数论难题的基础上,即:将两个大素数相乘在计算上很容易实现,但将该乘积分解为两个大素数因子的计算量是相当巨大的,以至于在实际计算中是不能实现的。RSA被应用于保护电子邮件安全的Privacy Enhanced Mail(PEM)和Pretty Good Privacy(PGP)。
我国学者陶仁骥。陈世华提出一种基于有限自动机的公开密钥加密方法:FAPKC0,FAPKC1,FAPKC2,FAPKC3。这是国际上的第一个时序公开密钥算法,其安全性是建立在非线性有限自动机求逆的困难上的。因为从数学上,线性有限自动机已有完美的可逆性理论,但迄今为止未解决非线性有限自动机可逆性理论,它可用于保密通信、数字签名,易于实现,密钥量适中,加解密速度快,已受到国际上的关注。此种密码*的深人研究方向有:
①用大规模集成电路技术实现有限自动机公开密钥密码*;
②对有限自动机公开密钥密码*的安全做类似于针对RSA或流密码那样的充分分析。
公开密钥加密技术在密钥管理上的优势使它越来越受到人们的重视,应用也日益广泛。
2.加密技术发展趋势
①私用密钥加密技术与公开密钥加密技术相结合:鉴于两种密码*加密的特点,在实际应用中可以采用折衷方案,即结合使用DES/IDEA和RSA,以DES为"内核",RSA为"外壳",对于网络中传输的数据可用DES或IDEA加密,而加密用的密钥则用RSA加密传送,此种方法既保证了数据安全又提高了加密和解密的速度,这也是目前加密技术发展的新方向之一。
②寻求新算法:跳出以常见的迭代为基础的构造思路,脱离基于某些数学问题复杂性的构造方法。如刘尊全先生提出的刘氏算法,是一种基于密钥的公开密钥*,它采用了随机性原理构造加解密变换,并将其全部运算控制隐匿于密钥中,密钥长度可变。它是采用选取一定长度的分割来构造大的搜索空间,从而实现一次非线性变换。此种加密算法加密强度高、速度快、计算开销低。
③加密最终将被集成到系统和网络中,例如IPV6协议就已有了内置加密的支持,在硬件方面,Intel公司正研制一种加密协处理器。它可以集成到微机的主极上。
3.密钥管理
对于私用密钥加密和公开密钥加密系统来讲、并不强调对加密/解密算法的保密。计算机网络加密的安全性主要是依赖于算法本身的安全性和对密钥的保护。密钥主要有会话密钥(Session Key)、基本密钥(Basic Key)和主密钥(Master Key)三种。会话密钥是通信双方在会话中使用的密钥,此种密钥只在一次会话中有效,会话结束时密钥就失效;在网络中用来传送会话密钥的密钥,就是基本密钥;而对基本密钥进行加密的密钥则称为主密钥。网络中一般是采用这种三级密钥方案来进行保密通信的。
从技术上看,密钥管理包括密钥的产生、存储、分配、使用和销毁等一系列技术问题,密钥分配是其中最重要的问题。从根本上讲,主要存在两种网络密钥管理:KDC(Key Distribution Center)和Diffie-Hellman方法。KDC使用可信第三方来验证通信双方的真实性,产生会话密钥,并通过数字签名等手段分自己密钥。Diffie-Hellmarl方法则不需KDC,通信发起方产生通信会话的私用密钥,并通过数字签名或零知识证明等方式安全传递通信密钥。IETF现在正在开发一种基于Diffi-Hellman技术的密钥交换协议Okaley,从而具有更好的安全性和强立性。目前多密钥分配是有待深入研究的领域。
随着网络的应用与发展,网络安全问题日益突出。数据加密是确保计算机网络安全的一种重要的机制,虽然由于成本、技术和管理上的复杂性,目前尚未在网络中普及,但数据加密作为实现网络环境下数据安全的重要手段之一,必将得到广泛应用,设计优秀的现代加密技术还融入了防篡改和防否认等数字签名技术,故其不但适用于企业,而且也适用于其他用户。