新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > USB安全钥功能扩展与优化设计

USB安全钥功能扩展与优化设计

作者:时间:2009-04-09来源:网络收藏

1 钥的完整

本文引用地址:http://www.eepw.com.cn/article/173794.htm

钥最早基于的热插拔、速度以及硬件等优势,结合加密算法,用于办公文件、软件等的存储和加密。但USB钥的用武之地远不止这些,与网络技术结合,用于时下最时尚的电子商务中,才使其大显神通。USB安全钥结合传统的电子商务核心技术和新兴的USB技术,用于实现电子商务中的关键技术――身份识别,在未来电子商务领域具有广阔的应用前景。USB安全钥集数据加密和数据存储两大于一体,推动了电子商务的发展。

传统的电子商务或是网络email等的身份认证基本上是通过两种方式来实现的。一种是密码机制,双方约定好规则。这是目前最为普遍的方式,但是这种方式的严重缺点显而易见。密码作为最重要的信息,在网络上传输,很容易被黑客攻击截获,经常发生密码被盗。第二种方式是通过第三方的认证,双方共同信任第三方公司提供的信息,从而进行交易。微软在.NET计划中推出的认证服务器就提供这种服务。但是,信誉度建立在第三方上,便会受到第三方的制约,掏钱不说,还要担心第三方是否会倒闭。USB安全钥解决了这两种方式无法解决的问题。

完整的USB安全钥系统由三部分组成:安全钥端,采用Motorola公司带USB接口的8位MC68HC908JB8构成;PC端,由任何一台可接入网络的PC构成,并安装PC端的用户身份认证软件;Server端,任何一台网络服务器安装用于身份认证的Server端软件。

USB安全钥系统结构体系及流程如图1所示,列出了九个步骤,描述了USB安全钥从插入PC到完成一次身份识别的完整流程。

需要强调的是,在上述步骤中,PC仅仅起一个Media(媒介)的作用。任何重要的数据都没有经过PC,在网络上传输的仅仅是8个字节的随机数(它只在Server服务器和安全钥端有意义,只对特定的加密算法和密钥有意义),被黑客截取也不会有问题。这8个字节的随机数由网络Server产生,经由PC传递给USB安全钥加密;加密后的随机数再由PC不加任何改变地传递给Server;Server去调用解密算法解开加密的随机数,与原来未加密的随机数比较,如果相同则说明USB安全钥的持有者身份合理。整个身份认证也告结束。这里,USB安全钥体现出两大优点:(1)没有任何重要的个人信息在网上传递,保证了安全性;(2)Server由网络商自己维护,安全钥由用户携有,双方的认证没有依靠第三方,快捷、安全、信誉度高。当然,USB安全钥还有其他很多优点,例如可以在PC上热插拔,可以在任何一台支持USB的PC上工作(现在几乎所有的PC都应该支持USB)等。

2 USB安全钥的技术细节

USB安全钥技术,从上可以分为三个模块:Server端的网络通讯和加密算法、PC端的和网络通讯、安全钥端的和加密算法设计。涉及到的计算机技术包括Socket网络编程技术、设计技术和加密算法技术。可以说整个设计内容庞杂,技术难度高。因此,设计时就需细化,一步步完成单个功能,再进行联调,将单个模块融合成完整的USB安全钥。

后期的功能设计也是针对三个模块,应用三大技术完成。主要是:服务器(Server)端DES加密算法的研究,设计加密算法的,提供给客户最简单的API;PC和安全钥端驱动程序的研究,实现PC端友好的程序界面,动态在线修改存储在安全钥内的用户产品信息。本文将详细介绍的设计方法,从而揭示USB安全钥的技术细节。

2.1 如何设计Server端加密算法及其DLL

密码算法(Algorithm)就是指加密函数(Encryption)和解密函数(Decryption)。有加密函数,那么必然有一套与它对应的解密函数。现代密码学用密钥技术解决了保密性不够的问题。密钥用K表示。K的取值范围叫做密钥空间。可以用如下式子来表示加密和解密函数之间的关系:

DK(EK(M))=M

其中,E为加密函数,D为解密函数,M为被加密的原文。有一个重要的结论:所有算法的安全性都基于密钥的安全性,而不是算法细节的安全性。这就是说,算法可以公开,只要密钥是保密的,则这个算法就是安全的。简单地说,密钥就是与密文叠加在一起的一组数。

作为ANSI的数据加密算法和ISO的DEA-1,成为世界范围内的标准已经20多年。就目前密码学的发展情况来说,DES的安全性还是能够满足用户需求的。由于完整的DES算法相当复杂,这里仅简单介绍算法的结构。

DES是分组加密算法,以64位为一组对明文进行分组,然后进行加密和解密。加密和解密的算法相同,只是密钥的编排不同。密钥长度为56位,通常是64位,但是每字节第8位都用来作为奇偶校验位,因此实际上只有56位。DES共有16轮,即对同一组明文结合密钥进行16轮相同的加密过程,最终达到加密要求。

具体到每一轮的加密过程是这样的:每一轮中,密钥位移位,然后从密钥中选出48位。数据的32位右半部分数据成48位,与密钥结合。然后再将这48位数据变换为32位,并与数据的32位左半部分相与后作为新的32位右半部分。而32位左半部分基本不变。最后,左右各32位数组合在一起便构成了一轮加密后的64位密文。重复同样运算16次,便完成了加密/解密功能[4]。


上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭