欢迎来到天天文库
浏览记录
ID:5997034
大小:28.50 KB
页数:6页
时间:2017-12-30
《基于智能卡csp设计和实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于智能卡CSP设计和实现 摘要:智能卡由于其安全性高、携带方便、价格便宜等特点被广泛应用,基于智能卡的CSP也得以迅速发展。在分析微软加密理论的基础上,详细介绍了一种基于智能卡的CSP设计方法和实现流程,应用程序通过CryptoAPI方便、快捷地完成了智能卡提供的一整套加密操作。关键词:智能卡;CSP;CryptoAPI中图分类号:TP319文献标识码:A文章编号:1672-7800(2012)010-0130-02作者简介:许梦华(1984-),女,硕士,武汉瑞达信息安全产业股份有限公司程序员,研究方
2、向为计算机软件开发。0引言智能卡由于安全性高、携带方便、价格便宜等特点被广泛应用于信息加密技术领域,而要在Windows操作系统上使用智能卡完成加密操作,则必须设计和实现基于智能卡的CSP,智能卡从硬件上提供密钥保护,应用程序通过CryptoAPI选择相应的CSP,方便、快捷地完成了智能卡提供的一整套加密操作。目前,基于智能卡的CSP在PKI系统中广泛流行,不同智能卡需要开发基于自身特定的CSP,因此将不同智能卡的CSP统一起来具有广阔的市场前景。1CSP简介6CSP(CryptographicServic
3、eProvider)加密服务提供层,是Microsoft公司用来在Windows平台上提供第三方加密模块的接口标准,它提供一套基于软件或者硬件的加解密服务,包含加密标准和加密算法的实现。作为一个CSP,它包含一个动态链接库DLL文件和一个签名文件,签名文件用于验证CSP,以保证CSP未被非法篡改。CryptoAPI(CryptoApplicationProgrammingInterface)是PKI推荐使用的一组加密API,它是由操作系统开发商提供给应用程序的开发接口。CryptoSPI(CryptoSys
4、temProgrammingInterface)也是一组API接口,它是由操作系统开发商提供给密码服务开发商的系统接口,其实际应用如图1所示。应用程序的开发者安装CSP后,通过CryptoAPI把来自应用程序的调用交给操作系统,操作系统内部选择指定的CSP,通过CryptoSPI来驱动CSP执行实际的操作,完成加密解密、签名认证、证书导入导出等一系列完整的加密服务。2基于智能卡的CSP设计与实现2.1智能卡的文件系统设计6一个CSP有一个密钥库,如图2所示。密钥库是用来存储密钥的,每个密钥库中包含一个或多个
5、密钥容器(KeyContainers),而每个密钥容器中包含属于一个特定用户的所有密钥对,CSP利用密钥容器来管理密钥,一般来说,一个密钥容器中有两对公私密钥对,即交换密钥对、签名密钥对。不同智能卡可以建立不同的CSP,应用程序可以通过CryptoAPI选择相应的CSP以及其中相应的密钥容器来完成智能卡提供的一整套加密操作。智能卡(SmartCard)是IC卡的一种,它的特点是安全性高、价格便宜、携带方便。它内含有集成电路芯片,本身具有存储能力和计算能力,可以存储私钥和证书,实现RSA、ECC、HASH等复
6、杂的算法,被广泛应用于身份认证、访问控制、密钥存储和算法实现等方面。本设计使用的智能卡是武汉天喻智能卡(Version1.2),根据CSP中密钥容器的结构,对天喻智能卡的文件系统进行的设计如图3所示,其中主控文件(MF)是整个文件系统的根,每张卡有且只有一个MF,它在卡的个人化过程中首先被建立起来,在卡的整个周期内一直存在并保持有效,可存储卡的公共数据信息并为各种应用服务,它所对应的是密钥容器结构中的密钥库。专用文件(DF)是MF下针对不同的应用建立起来的一种文件,它所对应的是密钥容器结构中的密钥容器;基本
7、文件(EF)是用于存储各种应用的数据和密钥,它存在于MF和DF下,它所对应的是密钥容器结构中的密钥对和证书。2.2基于智能卡的CSP设计6基于智能卡的CSP设计可以基于软件实现、硬件实现和软硬件结合实现。基于软件实现的CSP,安全性不高;基于硬件实现的CSP虽然安全性高,但是费用昂贵;基于软硬件结合实现的CSP,费用不高、安全性好,这种实现方法的密钥对在智能卡内产生,其私钥不能被导出,利用私钥进行的解密和签名操作也在卡内进行,而对称加密、产生哈希值的操作则由软件完成。本设计采用的是基于软硬件结合实现,HAS
8、H算法和对称加密算法的实现采用软件方式,而RSA密钥对和随机数则在智能卡建立完文件系统后由智能卡内部产生和使用。6CryptoAPI包括初始化函数、密钥生成函数、加解密函数、数字签名验证函数、密钥操作函数和散列函数等25个基本函数,应用程序通过这25个函数来调用CSP模块,完成连接上下文、产生密钥、导入导出密钥、产生哈希值、加密解密、签名验证、销毁密钥和释放上下文等操作。在CryptoAPI的25个基本函数中CP
此文档下载收益归作者所有