电脑技术学习

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

dn001

  攻击杂凑函数的典型方法是生日攻击,生日攻击的基本观点来自于生日问题:在一个教室里最少有多少学生时,可使得在这个教室里至少有两个学生的生日在同一天的概率不小于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年提出的密钥托管加密技术正符合这种要求。密钥托管有时也叫做密钥恢复。现在密钥托管已经是一些系统的派生术语,包括密钥恢复、受信任的第三方、特别获取、数据恢复等。近几年,密钥托管加密技术已成为密码技术研究和应用的焦点。

  美国政府于1993年4月16日通过美国商业部颁布了具有密钥托管功能的加密标准(EES)。该标准规定使用专门授权制造的且算法(将该算法称之为Skipjack算法,目前已公布)不予公布的Clipper芯片实施商用加密。Clipper芯片是实现了EES标准的防窜扰芯片,它是由美国国家安全局(NSA)主持开发的硬件实现的密码部件。由于加密体制具有在法律许可时可以进行密钥合成的功能,所以政府在必要时无须花费巨大代价破译密码,而能够直接侦听。目前我们可以从网上搜集到近40种不同功能的密钥托管系统。

标签: