密码学概述(3)
前面我们说到N多种密码算法的问题,但是我们忽略了一个问题,就是如果我们的密码协议设计得漏洞百出的话,黑客们就压根不需要费时费力去攻击和猜测你的密码了——就象古时候听过的一个著名的战争故事说某个国家的国王为了防御外敌入侵,修了一个长长的防御工事,没想到敌人却从后面直杀进来了——那叫什么来着?反正不是秦始皇。
其实密码协议的研究范围也不是那么简单的,包括什么网络安全协议的设计和分析,密钥管理协议的设计与分析,密钥托管协议的设计与分析,以及与它们相关领域的研究,如身份或信息认证。信息的完整性。秘密分享。零知识证明。有限状态机。模态逻辑,捆绑机制。密钥恢复等等。复杂得我都不敢说了,而其间有两个很具代表性的密码协议:安全套接字层协议(SSL)和托管加密标准协议(EES),下面我们就来看一看这两个协议吧!
1、安全套接字层协议(SSL)
安全套接字层协议是美国Netscape公司于1996年推出的一种著名安全协议。此协议是一个建立在TCP/IP协议之上提供客户和服务器双方网络应用安全通讯的开放式协议。
SSL协议建立在传送层和应用层之间,由记录协议和握手协议组成,其中记录协议在握手协议下端。
SL记录协议主要完成分组和组合,压缩和解压缩,以及消息认证和加密等功能。加密过程如图1所示,解密过程如图2所示。
图1加密过程
图2解密过程
SSL握手协议描述安全连接建立的过程,在客户和服务器传送应用层数据之前,完成加密算法,密钥加密密钥算法的确定,以及交换预主密钥,并最后产生相应的客户和服务器MAC秘密、会话加密密钥等功能,协议由下面不同的连续过程组成:
其中,*表示由情况而定,不一定要传送的项:[]表示可以自由选择的项。OK,通过这几个图,基本上清楚了SSL协议,下面我们就看一看托管加密标准(EES),它是由防窜扰的Clipper芯片来实现的,一个Clipper芯片安装了一个固定的操作程序和SKIPJACK算法,还有一个唯一的设备密钥UKA,一个族密钥FK。
EES的加密和解密过程是这样的:假设你刚刚得到一个Clipper芯片,想牛刀小试,于是你打算给你表姐传送一条加密消息w,你首先用密钥分配协议和你表姐交换会话密钥,然后把会话密钥k 和消息w输入Chipper芯片A。芯片A就产生两部分信息E(k,M)和LEAF(A,k),其中E(k,M)是用SKIPJACK算法和密钥k对消息w加密所得的密文,LEAF(A,k)是用族密钥FK对一个128比特串加密的密文,其形式如下:
LEAF(A,k)=E(FK,D(A,k))
D(A,k)=<IDA,E(UKA,k),f(A,k,IV)>
其中 D(A,k)含有一个32bit的身份号IDA(是你的),一个80bit长的会话密钥加密拷贝,一个16bit长的校验和f(A,k,IV),当你表姐收到这个一团乱码的消息后,虽然知道会话密钥A,但不知道SKIPJACK算法,还是无法解密,所以她只有利用Chipper芯片才能解密。每个Chipper芯片的解
密过程被按照如下程序固化:
1、clipper芯片首先使用族密钥FK解密 LEAF(A,k)得到D(A,k)=<IDA,E(UKA,k),f(A,k,IV)>
2、clipper芯片计算f(A,k,IV),并把结果与收到的校验和相比较,如果相等,则转到下一步,否则停止计算。
3、clipper芯片使用SKIPJACK算法和密钥汾对E(k,M)解密,恢复出明文w。
OK,讲的我一头大汗,其实现在大家非常熟悉和通用的一个协议是SSL,这里我们对SSL只是简单的做了个介绍,后面还会比较详细和全面的讲一讲。好了,今天就到这里了,下课!