电脑技术学习

数据加密基本概念及常见技术

dn001

  对密码系统的攻击主要有两类:一类是被动攻击,对手只是对截获的密文进行分析:另一类是主动攻击,对于通过采用删除、增添、重放和伪造等手段主动向系统注入假消息。认证是防止他人对系统进行主动攻击(如伪造,窜改信息等)的一种重要技术。

  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. 给定杂凑函数的描述,找到两个不同的输入消息杂凑到同一个值在计算上是不可行的,或给定杂凑函数的描述和一个随机选择的消息,找到另一个与该消息不同的消息使得它们杂凑到同一个值在计算上也是不可行的。

标签: