论文部分内容阅读
随着信息技术的飞速发展,相关的信息安全问题也逐渐引起人们的广泛重视。利用密码技术对存储或传输的文件、数据进行加密处理,可以有效地防止数据泄露带来的隐秘信息泄露,从而保证信息安全。本文对基于身份标识的密码体系(Identity Based Cryptography,IBC)进行深入研究,针对IBC密码体系中公钥公布和私钥分发的过程,研究开发了一个基于FPGA的密钥生成系统。IBC作为一种新型的公钥加密体制,使用用户的身份标识(如身份证号码、手机号码或电子邮箱地址等)与一组公开参数相结合,作为公钥对数据进行加密。由于用户的身份标识可通过手机短信或邮件等方式进行验证,因而可以方便地确定用户与身份标识之间的对应关系,无需使用传统公钥密码体系中的数字证书方式绑定公钥,从而避免了管理大量用户证书带来的种种问题。在IBC密码体系中私钥由一个可信的第三方产生,用于对加密的数据进行解密。本课题研究的密钥生成系统即作为可信的第三方产生私钥。密钥生成系统作为IBC密码体系中至关重要的组成部分,它的安全性直接决定了整个IBC密码体系的安全。本课题研究的IBC密钥生成系统可分为两大模块设计实现:1)IBC密码卡在FPGA平台下的设计与实现,该模块实现公开参数的发布和IBC私钥的计算,并针对私钥计算过程中关键的椭圆曲线点乘运算研究并设计了基于纯软件、软硬件混合以及纯FPGA硬件的三种实现方式,可根据具体情况选择最优方式实现高速私钥运算;2)密钥生成系统服务程序的设计与实现,该模块作为IBC密码卡与外界连接的桥梁,对密钥请求者的身份进行认证,并对来自外界的请求进行部分处理,能够有效地为IBC密码卡减轻工作负荷,该模块使用Java技术开发实现,具有良好的跨平台兼容性。此外,本课题还针对公开参数和私钥的传输过程,给出了一种基于SSL安全网络协议的安全通信协议的设计,以保证公开参数与私钥传输的保密性和完整性。本论文的创新点在于IBC密钥生成及密码运算在FPGA硬件卡内进行,保证了安全性,且对于密钥生成系统服务程序,使用Java语言开发实现,从而保证IBC密钥生成系统良好的跨平台兼容性。此外,IBC密码卡支持高速PCIE总线和以太网两种方式与PC机进行通信,能够更好地适应不同的通信环境。