USB 安全钥模型的设计研究 目录: 摘 要.......................................................................................................................................4 ABSTRACT....................................................................................................................................6 1.绪论..............................................................................................................................................9 1.1 研究的背景.............................................................................................................................9 1.2 研究的目的和意义..............................................................................................................11 1.2.1 研究的目的....................................................................................................................11 1.2.2 研究的意义....................................................................................................................11 1.3 目前已经取得的研究成果...................................................................................................16 1.4 论文的组织结构................................................................................................................16 2.USB安全钥模型的特征分析......................................................................................................18 2.1 USB安全钥的概念与特点...................................................................................................18 2.1.1 USB安全钥的概念........................................................................................................18 2.1.2 USB安全钥的特点........................................................................................................18 2.2 USB安全钥的功能...............................................................................................................19 2.3 USB安全钥系统模型...........................................................................................................21 2.3.1 USB安全钥系统结构体系............................................................................................21 2.3.2 USB安全钥的功能流程................................................................................................21 2.4 USB安全钥系统的实现.......................................................................................................24 2.4.1 USB安全钥系统的设计组成........................................................................................24 2.4.2 USB安全钥端的设计组成............................................................................................24 2.5 小结:.................................................................................................................................24 3.USB安全钥中密码体制的研究..................................................................................................26 3.1 密码学概述...........................................................................................................................26 3.1.1 密码学的发展................................................................................................................26 3.1.2 密码系统的构成与安全性............................................................................................26 3.2 密码体制...............................................................................................................................28 3.2.1 私钥密码体制................................................................................................................28 3.2.2 公钥密码体制...............................................................................................................29 3.2.3 两种密码体制的比较....................................................................................................30 3.3 DES私钥密码体制的研究...................................................................................................31 3.3.1 DES加密思想................................................................................................................31 3.3.2 DES 解密思想..............................................................................................................35 3.3.3 提出3DES算法............................................................................................................36 3.4 RSA公钥密码体制的研究...................................................................................................37 3.4.1 RSA的构成....................................................................................................................37 3.4.2 RSA思想的证明............................................................................................................37 3.4.4 RSA安全性分析............................................................................................................39 3.5 混合密码体制.......................................................................................................................39 3.5.1 混合密码体制的提出....................................................................................................39 3.5.2 混合密码体制的应用....................................................................................................40 3.6 小 结....................................................................................................................................40 4.USB安全钥中的认证与签名......................................................................................................41 4.1 身份认证技术的研究...........................................................................................................41 4.1.1 什么是身份认证............................................................................................................41 4.1.2 基于X.509 证书的身份认证协议方案.........................................................................42 4.1.3 一种基于RSA的身份认证协议....................................................................................44 4.2 数字签名技术的研究...........................................................................................................45 4.2.1 什么是数字签名............................................................................................................45 4.2.2 几种基本的数字签名方式............................................................................................46 4.2.3 基于3DES的RSA的数字签名方案的提出..................................................................47 4.2.4 基于3DES的RSA数字签名协议.................................................................................48 4.3 USB安全钥中的签名认证协议...........................................................................................49 4.3.1 USB安全钥中的认证协议............................................................................................49 4.3.2 USB安全钥中的数字签名协议....................................................................................50 4.3.3 USB安全钥系统中的签名认证协议............................................................................51 4.4 小 结....................................................................................................................................51 5.USB安全钥芯片的设计与实现..................................................................................................53 5.1 USB技术背景与发展趋势...................................................................................................53 5.1.1 USB技术背景及研究意义............................................................................................53 5.1.2 USB技术发展过程与趋势............................................................................................54 5.2 片上系统(SOC)的技术与发展(SOC5)......................................................................55 5.2.1 片上系统的设计方法....................................................................................................55 5.2.2 片上系统的设计技术....................................................................................................56 5.3 USB安全钥芯片的设计方法与实现手段...........................................................................57 5.3.1 设计方法.......................................................................................................................57 5.3.2 实现手段.......................................................................................................................58 5.3.3 设计和实现流程...........................................................................................................59 5.4 USB安全钥的设计...............................................................................................................59 5.4.1 安全钥芯片硬件的设计...............................................................................................60 5.4.3 USB安全钥整体功能分解............................................................................................70 5.5 USB安全钥芯片的实现.......................................................................................................71 5.5.1 器件的选择....................................................................................................................71 5.5.2 系统编译约束................................................................................................................72 5.5.3 编译的输出....................................................................................................................72 5.5.4 布局布线的结果............................................................................................................72 5.6 小结......................................................................................................................................72 6.USB设备控制器的设计与实现..................................................................................................73 6.1 USB控制器功能分析...........................................................................................................73 6.1.1 通用USB控制器功能分析............................................................................................73 6.1.2 安全钥USB控制器功能分析.......................................................................................74 6.2 USB设备控制器模块划分...................................................................................................75 6.3 USB控制器模块设计...........................................................................................................77 6.3.1 时钟单元(CLK)........................................................................................................77 6.3.2 事件检测单元(EDU).....................................................................................................77 6.3.3 串行接口引擎(SIE)..................................................................................................79 6.3.4 功能接口单元(FIU) .................................................................................................80 6.3.5 错误检测机制...............................................................................................................83 6.4 系统描述与功能仿真...........................................................................................................83 6.4.1 系统的描述方法及层次结构划分................................................................................83 6.4.2 系统的VHDL描述........................................................................................................84 6.5 USB控制器的综合布线与测试验证...................................................................................86 6.5.1 系统的综合....................................................................................................................86 6.5.2 系统的FPGA实现.........................................................................................................87 6.5.3 系统的测度验证............................................................................................................88 6.6 小 结....................................................................................................................................89 7.RSA协处理器的设计与实现......................................................................................................90 7.1 RSA并行算法设计与分析...................................................................................................90 7.1.1 RSA并行算法总体结构................................................................................................90 Fig 7-3 Whole Structure of Parallel Arithmetic ......................................................................92 7.1.2 加密与解密过程分析....................................................................................................92 7.2 并行算法实现的关键分析...................................................................................................93 7.3 RSA的基本算法分析与设计...............................................................................................93 7.3.1 快速求模算法设计........................................................................................................93 7.3.2 快速大数模乘算法设计................................................................................................96 7.3.3 快速模加算法设计........................................................................................................98 7.3.4 快速模幂[62]算法设计...................................................................................................98 7.3.5 快速模逆算法设计........................................................................................................99 }..............................................................................................................................................99 7.4 RSA协处理器设计...............................................................................................................99 7.4.2 协处理器电路结构......................................................................................................101 7.4.3 性能分析......................................................................................................................102 7.4.4 实现结果.....................................................................................................................103 7.5 小结...................................................................................................................................103 8 结论.........................................................................................................................................104 参 考 文 献..........................................................................................................................106 摘 要 随着信息技术的发展,特别是电子商务的发展,网络信息的安全传输问题逐渐成为人们 最为关心和头痛的事情。密码安全芯片的研究与设计是当前密码学和微电子学交叉学科领域 的热点问题。现代电子系统集成技术的快速发展和密码理论日趋完善,为安全芯片的诞生提 供了强有力的支持。本文就在这种技术背景下,结合当前信息安全系统的需要,提出了一种 基于USB 接口技术的安全钥芯片的思想,并遵循片上系统先进的设计方法和工具,初步完 成了USB 安全钥芯片的设计、实现及验证。本文针对这种问题,结合当前信息流通速度快 的特点,提出了一种基于USB 技术的硬件安全加密方法,并在此基础上进行了研究和设计。 下面是本文主要的研究内容和研究成果的概述。 首先对USB 安全钥的基本知识进行了系统的概括和阐述,分析了USB 安全钥的特点和 功能,指出利用USB 技术和密码学技术相结合是解决当前的安全问题的重要方法。在此基 础上,本文构建了USB 安全钥的系统模型,并对此模型的各部分进行了分析和研究,指出 了USB 安全钥中最重要的密码协议的建立和密码方法的选择。 对当前主流密码体制进行了分析和研究。对公钥密码体制和私钥密码体制进行了分析和 研究,并对这两种密码体制进行了比较。对公钥密码体制和私钥密码体制的代表RSA 和DES 进行了研究和比较,提出了3DES 密码,并对RSA 的安全性进行了分析,提出构造安全素 数。结合公钥和私钥密码体制的特点,提出了利用RSA 和DES 来构建的混合密码体制。 对USB 安全钥中的安全方法进行了分析和研究,指出身份认证和数字签名是解决信息 安全传输的重要技术。对身份认证技术和数字签名技术进行了分析和研究,分别提出了身份 认证协议和数字签名协议。结合身份认证和数字签名,提出了USB 安全钥中的签名认证协 议,提高了信息传输的可靠性。 分析了影响USB 安全钥处理速度的相关问题。通过对RSA 和DES 密码体制的分析和 研究,指出提高RSA 密码体制的处理速度是提高USB 安全钥处理速度的关键,给出了提高 RSA 密码体制运行速度的有效方法。设计了RSA 密码体制快速实现的并行算法,优化、改 进了RSA 密码体制的基本算法。结合RSA 密码的特点,提出了快速的模加、模乘、模逆和 模幂运算算法,大大加快了RSA 运算的速度,提高了USB 安全钥的硬件处理速度。 本文利用VLSI 技术对USB 安全钥进行了设计,将USB 安全钥从功能的角度分为USB 控制器设备和密码协处理器实现两个模块。运用片上系统(SOC)自底到顶的设计方法和电子 设计自动化(EDA)工具实现了USB 安全钥功能芯片。在速度和面积上进行折衷考虑,在满 足在线操作速度的要求下,面积尽可能小,为USB 安全钥走向实际应用打好了基础。 将密码学的研究成果和集成电路的设计、生产技术相结合从而研制出具有高运算速度、 高安全性能的密码专用芯片是近年来密码学界和微电子学界的重要研究课题,但是这方面的 研究成果却并不丰硕,这也成为这一领域近期研究的主要方向和难点。本文对适于在片上系 统(SOC)上实现的混合密码体制进行了研究,分析了混合密码体制的安全性基础以及其在 芯片中实现的可行性和优越性。分析研究了混合密码体制在芯片中应用的许多相关问题如 RSA 密钥长度的选择等问题。同时我们考虑到在实际应用过程中,在满足安全性的前提下还 应当降低计算复杂度,提高信息加、解密的速度,便于在芯片中实现,降低成本,利于推广 应用等因素,进一步提出了基于USB 安全钥芯片的数字签名和认证协议。这为以后密码安全 专用芯片的研究和开发在理论和实际应用经验上提供很有价值的资料。 在实际应用中,在混合密码体制中占有重要地位的RSA 算法在芯片上实现时存在着计算 复杂、运行速度慢的问题。本文分析了影响RSA 算法执行速度的相关问题,提出了加快RSA 运行速度的有效方法,优化改进了RSA 的基本算法。目前国内外对RSA 算法实现的研究大多 是在运算速度很高的计算机上,在芯片中实现大多采用串行处理,这样虽然算法和硬件结构 便于实现,但是对于时钟频率相对较低的芯片来说,为提高速度,安全性必然相对较差,相 反,为提高安全强度,则运算处理速度又会降低。本文基于这种矛盾,提出了在各个层次上 并行实现混合密码体制的思想。尤其是对RSA 算法的研究,并行思想渗透到其基本算法中, 这些基本算法主要包括模加、模乘、模逆和模幂运算。大数运算是很费时间的,尤其是大整 数的模逆和模幂运算。为了得到较快的加/解密速度,本文对这些基本算法进行了深层次的 优化,大大提高了RSA 算法实际应用时的运行速度和执行效率。 关键词:USB 安全钥,密码体制,数字签名,身份认证,快速算法 论文类型:应用基础研究 ABSTRACT Along with the development of information technology (IT), especially electronic business, the safety of information transmitting via Network is becoming the toughest matter about which is most concerned. Research and design of cript security chip is a very popular subject in the cross field between criptogram and micro-electronics. Rapid development of modern electronic system integration technology and gradual perfect of crip theory provides strong support to the “birth” of security chip. Under this background, a thought of security key chip based on USB interface technology is brought up in this essay to meet the requirement of information safety. Following advanced design method and tools of SOC, design, prototype and evaluation of USB security key chip was initialized. Considering the high-speed circulation of current information, a hardware-encrypt method based on USB technology was proposed to solve this problem. Main research and outcome of this essay was described briefly as follows. USB Security Key basic knowledge was described and explained sysmetically, its function and characteristics was analyzed. It was pointed out that the combination of USB technology and cryptogram technology was an important solution to current security problem. The model of USB Security Key was developed, and each part of the model was studied and analyzed. A conclusion was drawn that the most important thing in designing USB Security Key was the establishment of cryptogram protocol and the selection of cryptogram method. Analysis and research was done on the current mainstream cryptosystem, which includes public-key cryptosystem and private-key cryptosystem, and a comparison was made too. Research and comparison on RSA that is the representative public-key cryptosystem and DES that is the representative private-key cryptosystem were done, and then 3DES was brought up. With the analysis on RSA security, the construction of safe prime number was proposed. Hybrid cryptosystem based on RSA and DES was constructed through combining both traits of the public-key cryptosystem and the private-key cryptosystem. The security methods implemented in USB Security Key were analyzed and studied. It was pointed out that ID Authentication and Digital Signature were the most important technologies to deal with secure transmission of information. The protocol of ID Authentication and the protocol of Digital Signature were designed based on the careful analysis and research. Depending on ID Authentication and Digital Signature, the protocol of Signature and Authentication to be used in USB Security Key was proposed, so the reliability of information transmission was improved. Some factors that influence the processing speed of the USB Security Key were analyzed. The key to improve the processing speed of USB Security Key is to improve the processing speed of RSA cryptosystem, based on the analysis and research on the cryptosystem of RSA and DES. An effective method to enhance the processing speed of RSA cryptosystem was given. The fast parallel algorithm of RSA cryptosystem was designed and optimization of the base algorithm of RSA cryptosystem was done too. According to the feature of RSA cryptosystem, the fast algorithms including modular addition, modular multiply, modular inverse and modular power were designed. These fast algorithms improve the processing speed of RSA cryptosystem substantially, and then the processing speed of USB Security Key was improved. The technology of VLSI was implemented while analyzing USB Security Key. From the functional angle, the USB Security Key is divided into two modules that are the USB controller and the cryptogram coprocessor. Utilizing the from-bottom-to-top design method of SOC and the tool of EDA, the chip of USB Security Key was designed. A compromise was made between the speed and the area, that is to say, the area of chip is made as small as possible while satisfying the linear speed of operation. This is the foundation of the application of USB Security Key. In recent years, it has been being an important research subject both in criptogram and micro-electronics field that how to design a specialized cript chip with high security function and high speed algorithm by combining criptogram achievement and design, production technology of integrated circuit (IC). But unfortunately, there is not much achieved. It is the main direction and difficulty of recent research in the field. Hybrid criptosystem suitable for SOC was studied, its safety basis, feasibility on chip and advantage was also analyzed, as well as many problems related to the application of hybrid criptosystem in chips. Such as, selection of RSA criptokey length. At the same time, in practical application, not only safety but also aspects of decreasing calculation complexity, improving addition, decoding speed was considered so as to realize in chips, cut cost and easily promote. Protocol of digital signature and authentication based on USB security chip key was further brought up. It provides valuable information to research and development of cript security specialized chip both in theory and practical application. In practical application, RSA algorithm that has important position in hybrid criptosystem has problem of complicated calculation and slow operation. Issues affected RSA algorithm speed was analyzed, effective solution to speed up RSA operation was proposed, RSA basic calcuation was optimized and improved. At present, in home and abroad, most of resarch of realization of RSA algorithm is performed on high speed computer, serial processing method is mostly adopted for realization in chips. It is convenient to realize algorithm and hardware construction, the safety is poor for low clock frequency chip in order to increase speed, oppositely, process speed must reduce in order to enhance safety. In order to resolve this contrary, the idea of realizing hybrid criptosystem in parallel at every levels was brought up. Specially research on RSA algorithm, parallel idea penetrate into its basic algorithm including modular addition, modular multiply, modular inverse and modular power. Big numbers processing takes time, specially modular inverse and modular power processing of big integrits. In order to obtain high encode/decode speed, these basic algorithms were deeply optimized. Processing speed and efficiency of RSA algorithm was improved a lot in application. Key Words: USB Security Key, Cryptosystem, Digital Signature, ID Authentication, Fast Algorithm, Parallel Implementation Essay Type: Application Fundamental Research 1.绪论 信息安全是一个综合性的交叉学科领域,广泛涉及数学、密码学、计算机、通信、控制、 人工智能、安全工程、人文科学等诸多学科,是近几年迅速发展的一个热点学科领域。信息 对抗和网络安全是信息安全的核心热点,它的研究和发展又将刺激、推动和促进相关学科的 研究与发展。至今,密码技术是取得信息安全性最有效的一种方法, 密码技术是信息安全的 核心技术[1]-[2]。通过数据加密,人们可以有效地保证通信线路上的内容不被泄露,而且还可 以检验传送信息的完整性。进一步,密码技术可以应用于数字签名、身份认证和信息鉴定, 这些应用对于资源存取控制以及其它安全措施是必须而且有效的。信息安全产品从应用类型 上可以分为防火墙类产品、防病毒类产品、防攻击类产品、密码类产品、认证类产品和访问 控制类产品。相对于防病毒软件和防火墙软件来说,基于密码技术密码类产品、认证类产品 份额相对较小,但随着金融、电信、政府等行业信息化建设对于网络安全整体解决方案需求 的增加,将会有较大的增长。在目前最炙手可热的信息安全产品市场的推动下,密码产品的 研究与开发成了一个新的热点[3]-[4]。 1.1 研究的背景 信息安全问题涉及计算机安全和密码使用,有关的政策法规也因此而分为计算机安全管 理政策法规和关于密码使用的政策法规。在信息安全问题出现的早期阶段,世界各国立法和 管理的重点集中在计算机犯罪方面。近几年,立法和管理的热点逐渐转移到对于密码的应用 管理方面。 美欧等国对于密码使用的管理政策集中在使用密码进行信息加密和使用数字签名实施 证书授权两个重要方面。主要内容为:政府组织制定技术标准与管理条例;政府鼓励使用标 准商用密码算法;政府不参与商用密码算法安全产品的商业经营活动;商用密码信息安全产 品可以经过中性技术权威的测评认证机构进行测评认证(经过中性机构测评认证的产品有利 于进入市场);各开发公司使用标准密码算法所开发的安全产品的质量与系统安全性由开发 者负责,毋须向政府申报批准或由政府组织专家审定;产品完全由市场来检验、选择,优胜 劣汰;标准商用密码算法不一定需要硬件保护;保密的关键在于保护密钥,解密的关键则在 于如何得到密钥;政府限制对不同国家出口不同密钥长度的安全产品,出口控制标准必须执 行美国联邦条例法典和国际武器贸易条例(ITAR)关于安全产品出口的规定(目前已有所放 松)。美国限制对中国和俄罗斯出口密钥长于40 位的安全产品,尤其严格限制高强度密码产 品(密钥超过45 位)对我国的出口。目前尚未见到有政府限制商用密码安全产品进口条例 的规定。 根据我国的有关法律,涉及密码的产品只能使用国家密码管理委员会批准的密码产品。 属于计算机信息系统安全专用产品的销售和使用,将遵照公安部于一九九七年十二月发布的 《计算机信息系统安全专用产品检测和销售许可证管理办法》执行。《管理办法》明确规定 中华人民共和国境内的安全专用产品进入市场销售,实行销售许可证制度。这将使信息安全 产品的销售和使用更加规范化,法制化,以确保国家的安全。目前, 国内信息安全产品的公 司主要有两类:一类是将国外的安全加密软件包作二次开发或应用层次开发后再作为自己的 主导产品;还有一类是代理国外安全产品和提供安全解决方案。国内密码类占有市场的绝大 多数产品均是采用基于国外有关技术进行的二次开发。 美欧发达国家在密码技术的理论和应用研究上都处于世界领先地位,但是世界各国出于 对自身国家利益的考虑,并不是简单地采用美欧的密码技术,而是纷纷开展了自己密码技术 的研究。在我国,有关信息对抗、网络信息安全方面的研究近几年也异常活跃,各种学术会 议相继召开,已经出版了许多专著发表了许多论文,在一些高校也开设了相关课程。但是由 于信息安全学科新、涉及面广,尚未形成完整的学科体系,其研究成果更是难以支撑网络信 息安全自主性新产品的开发和产业发展。显然,从基础研究着手,在信息与网络安全体系上 开展强有力的研究,为我国的信息与网络安全构筑自主的、创新的、整体的理论指导和基础 构件的支撑实属当务之急。我国现在从事安全产品研发的企业和研究院所虽然很多,但是其 中绝大多数属于较低层次的研究与开发。分析我国的密码学研究现状, 我们应该本着独立自 主的方针, 在大胆借鉴外国先进经验的基础上, 自己设计我国自己的加密算法, 并且保持 同世界通用标准的同步以保持国家的整体信息安全。 在密码学中,根据密钥的特点,密码可以划分为对称密码和非对称密码。对称密码又称 为单钥密码或私钥密码,常见加密标准为DES 等, 当使用DES 时, 用户和接受方采用64 位 密钥对报文加密和解密, 当对安全性有特殊要求时, 则要采取IDEA 和三重DES 等,但是并不 适合Internet 环境;非对称密码又称为双钥密码或公钥密码, 常用的公钥加密算法是RSA 算法, 由于加密强度高, 而且并不要求通信双方事先要建立某种信任关系或共享某种秘密, 因此十分适合Internet 网上使用。 在私钥密码中,加密密钥和解密密钥是一样的或彼此之 间容易相互确定。在公钥密码中,加密密钥和解密密钥不同,从一个难以推出另一个,可以 将加密和解密能力分开。 对于RSA 算法,密钥越长,其算法的安全等级越高,只要密钥长度超过100 位,特别是在 200 位以上,RSA 算法在实际中就是绝对安全的。可以说,没有谁会花上几百万年去破解一个 密码系统。但是,密钥越长,RSA 算法加、解密的速度就会变得非常慢。虽然私钥密码体制 处理速度较快,但私钥密码体制的解密密钥和加密密钥相同或容易从加密密钥导出,因而加 密密钥的暴露会使系统变得不安全。结合有关国家对我国采取禁运的政策以及我国在密码管 理上实行专控不准使用进口技术和产品以及我国和欧美等国在密码产品研究差距主要是在 硬件上的现状,我们必须研究与开发采用先进密码技术,具有自主知识产权,高安全性的密 码产品。 1.2 研究的目的和意义 1.2.1 研究的目的 本文在深入分析当前信息安全系统不安全性根源和当前密码产品研究现状的基础上, 结合新兴的USB和信息安全系统新理念,提出了具有更广泛应用前景的密码产品USB安全钥及 其在系统中的应用模型。随后,在深入研究私钥和公钥加、解密算法的基础上,对这两种密 码体制取长补短,建立起适合于片上系统[72]-[78](System On a Chip SOC)实现在线加密, 数字签名和身份认证等模块功能的综合密码体制。为了具有良好的通用性,整个密码体制的 设计都尽量遵循国际标准;为了确保安全性,力求能够抵御现有的攻击方法;为了提高实现 速度,研究了用VLSI技术实现的快速加、解密算法[65]。最后,运用VLSI技术,结合当前SOC 的设计方法和设计工具EDA,设计出具有USB安全钥功能的芯片并作了测试, 使得所设计的 USB 安全钥可以取代当前的数据加密卡、IC卡读写器和IC卡,应用或嵌入到桌面安全、计算 机信息、Internet以及电子商务等的加/解密、数字签名及认证等安全系统中。 1.2.2 研究的意义 目前,“全球一体化”的浪潮席卷全球,而“全球化”是和网络化紧密联系在一起的。 随着Internet 在全世界的扩展,计算机信息安全也被上升到国家安全的高度。2000 年3 月, 传媒有消息说,在Intel 公司的PentiumⅢ和Microsoft 公司的Windows98 中均暗藏了“机 关”,可以任由他们秘密窃取网上客户的保密资料。2000 年伊始,轰动世界的“黑客”攻击 战便开始了。专家认为,在信息战战略中,黑客对某一网站的攻击还只具有战术意义,而网 络控制权和网络自主权才具有战略意义。我们必须在网络上制定自己的安全规则,才能实现 对网络安全的保障。对国家而言,没有网络安全解决方案,就没有信息基础设施的安全保证, 就没有网络空间上的国家主权和国家安全,国家的政治、军事、经济、文化、社会生活等就 将处于信息战的威胁之中。目前,Internet 和众多的专用计算机网络以及以计算机为核心 的全球移动通信网已经成为人们不得不依赖的信息系统,因此越来越成为世界各国信息战的 战略目标。在这些网络上,窃密与反窃密、破坏与反破坏的斗争是全方位的,不仅是个人、 集团级的行为,而且是国家级的行为。在这场斗争中,要立于不败之地、掌握主动权,就必 须对信息系统的服务、传输媒介和协议等的各个环节进行必要的安全防护和加固。从功能上 讲,计算机网络被攻击包括截取、篡改、控制、破坏、讹用信息,摧毁信息系统使其丧失信 息能力等内容。当能够有效地分析网络信息安全隐患并能有效地了解其可能的攻击方法时, 就可以有针对性地采取安全措施。 据美国FBI 调查,美国每年因为网络安全问题造成的经济损失超过170 亿美元,75%的 公司的财政损失是由计算机安全问题造成的。中国的网络安全问题更加严重。2000 年,公 安部邀请一些国内著名网络安全专家对国内多家网站进行安全测试,测试的结果是90%的网 站都存在着不同程度的安全问题。对国家经贸委等8 个部委的计算机系统进行检测,发现存 在安全漏洞的达846 个;对国家计委17 台服务器抽查中发现用户账号都可以从网上获得; 在对银行证券系统的1564 个营业部的23 万台计算机检测中发现全部都有安全漏洞。网络不 安全不仅会造成巨大的经济损失,甚至会危及国家安全。 我国信息安全产业存在的主要问题是,产品过度集中在网络周边防护设备和加密设备 上,桌面安全领域很少有人涉足。桌面安全产品在2003 年开始浮出水面,并显示出了巨大 的市场潜力。中国国家信息安全评测认证中心的调查结果显示,政府和企业因信息被窃取所 造成的损失超过病毒破坏和黑客攻击所造成的损失,超过80%以上的安全威胁来自泄密和内 部人员犯罪。这等于是说即便充分利用现有的防火墙、入侵检测系统、防病毒软件和VPN 技术也只能解决五分之一的信息安全问题,这些解决方案并不能消除来自内部的安全危害。 目前在桌面安全领域,无论是防范意识还是核心技术、安全产品,几乎是一片空白。每 年各种重要数据、文件的滥用、泄露、丢失、被盗给国家、企业和个人造成的巨大损失。与 竞争日趋激烈的网络安全产品市场相比,桌面安全市场还是一块肥沃的处女地。全社会电脑 保有量超过2000 万台,仅2002 年,中国主机市场就实现销量1011.8 万台。我国的电脑年 销量和整体保有量还在不断增加之中。如果将这些电脑通过电脑安全产品升级为能确保信息 不被破坏、不泄露的安全电脑,就意味着至少每年都有数十亿元的市场需求。这么大的市场 不是几个公司能吞得下的。 在2003 年以前,就有很多PC 厂商提出了安全电脑的概念并有自己的产品面市,但多数 仅局限于对数据的口令/密码保护,算不上是真正的安全电脑,也就没有真正打开桌面安全 这个市场。而国外部分厂商已经做好了进军桌面安全市场的准备。 2002 年底,IBM 个人电脑事业部发布了嵌入式安全子系统(ESS),ESS 利用基于硬件和 软件的技术为计算机提供更高级别的安全保护,这一系统已经应用在IBM 的部分机型中,并 逐步进入中国市场。微软公司也在2002 年披露了一个内部秘密计划,将在PC 机硬件中增加 安全芯片,在Windows 操作系统核心中增加新的安全处理组件,构建出与今天PC 相对而言 的“安全PC”。 当前,国内大多数PC 机,运行Windows 操作系统。可惜的是,Windows 系统并不是我们 自己开发的,从系统上,要提高它的安全性也不是我们能轻易做到的。为了使国内技术不落 后于国外厂商,唯一的解决办法便是借助于硬件的支持,将计算机的身份认证和文件保密的 关键部分(加密算法和个人数据)从PC 转移到硬件中去。目前最常用的硬件设备按功能分为 两类:一是用于加密,例如PC 内安装的加密卡,网络中安装的安全网关等等;二是用于个人 数据存储,例如IC 卡,磁卡等,在银行系统使用十分广泛。PC 机内安装的加密卡等硬件虽然 大大的增强了系统的安全性,但他们价格昂贵,安装,使用不方便,是普通的pc 用户无法接 受;而IC 卡,磁卡等存储卡则需要再pc 机上安装读卡器,读卡器价格昂贵,兼容性差,也 不是任意一台PC 机就能轻易安装得上的。因此,开发拥有自主知识产权,用来维护桌面系统 的安全性的硬件产品是科研工作者们责无旁贷的事。 同时,信息技术的高速发展及网络在各领域越来越广泛的应用,使信息安全成为网络应 用与服务进一步发展所亟待冲破的屏障,同时也成为信息产业中发展最快、最具市场前景的 高新技术产业。网络安全性问题成为进一步发展和开拓以网络技术为支撑的银行、证券、外 贸、电信、电子商务等领域网络业务的瓶颈和障碍。下面就以具有典型代表性的电子商务来 加以说明。 随着Internet 的快速发展和网络的普及,人们的经营及消费理念正在发生着深刻的变 化,厂家、消者及分销商等都期望能利用网络来进行采购和交易。这种打破传统面对面的营 销模式,而代之以浩瀚、看似虚拟的网络营销模式导致了电子商务(E-Commerce)的出现,使得 电子商务在各领域得以广泛应用与推广,它已经成为未来商业发展的必然趋势。信息的共享 和高速传递大大地方便了人们的生活,但与此同时,交易的风险性和不确定性也大大增加,电 脑“黑客”取得了更多的机会,网络犯罪现象给们留下了许多的忧患,信息安全问题已成为电 子商务的关键问题,成为阻碍电子商务发展的瓶颈。 美国一项抽样调查显示,超过60%的人由于担心电子商务的安全问题而不愿进行网上购 物。可想而知,任何个人、企业或金融机构等都不可能通过一个不安全的网络系统进行商务 交易,这样会导致商业机密信息或个人隐私等敏感数据的泄漏,从而导致巨大的利益损失。所 有这些都对电子商务系统的安全性、可靠性提出了更高的要求。其中,数据加密技术又是电 子商务安全性的基础部分。 既然电子商务的安全性这么重要,那么对于一个安全的电子商务体系来说,有哪些具体 的安全性要求呢?通过对电子商务的运作实践,我们知道其安全性要求很多,归纳起来,主要 有信息的机密性、信息的完整性、不可抵赖性及身份认证性四种,其它还有数据传输的可靠 性以及一些人为的因素,如道德素质、法制观念等。 (1)信息的机密性,又称数据保密性,它是指在电子商务的信息传播中,信息不会被非法 窃取,或即使被窃取,窃取者也不能读懂信息,这就要求对数据进行加密。这样才能为电子商 务的应用及全面推广创造一个可靠的环境。 (2)信息的完整性,它是电子商务应用的基础,包括两层含义:一是数据传输的真实性,即 信息在网络传输过程中没有被篡改,保持与原信息的一致性;二是数据传输的统一性,即数据 传输的次序和模式的固定性,不能任意改变。只有保持信息传输的完整性,才能保证商务交易 的公正性与合法性。 (3)不可抵赖性,又称不可否认性,是指信息的发送方或接收方在发送或接收信息之后, 有充分的证据证明双方已经发生过的收发行为,而这些证据一般也是对双方公开的,这样就 保证了收发双方都不能对收到和发送的信息抵赖,减少了交易纠纷。 (4)身份认证性,是指在电子商务的网上交易过程中,能够确定对方的真实身份及从事的 真实业务,尤其在涉及到一些敏感信息如信用卡、账号等的真实有效性,以防止不必要的利益 损失。可见,身份认证是电子商务中的一个重要环节。 上述这些安全要求所涉及到的技术包括防火墙、防病毒、数据加密、数字签名、数字证 书等技术。数据加密技术是一种主动的信息安全防范措施,它是保证电子商务信息安全的重 要手段,是许多软件安全保护的基础。其实,加密技术上百年前就有人开始研究,并用于政治、 军事、外交等各个方面,特别是第二次世界大战期间,由于军事需要,一大批优秀的专家和学 者大力投入密码技术的研究,并产生了许多突破性的进展。在战争中,美国和英国就先后破译 了德国的部分军事机密,为以后战争的胜利奠定了良好的基础。 最近五十年来,由于计算机和网络技术的迅猛发展和普及,特别是近年来电子商务的产 生和推广,对加密技术产生了更迫切的需求和更高的要求,加密技术也因此获得了充分的发 展,产生了许多优秀的密码算法和先进的加密体系[50]。 RSA 算法是数据加密中的一种最重要、最常用的公钥加密算法,其安全性、可靠性是有 目共睹的,可以说它是数据加密技术的核心,也是电子商务安全得以保障的关键技术。但它也 有公钥加密算法共同的弱点:加密速度太慢,大概相当于对称加密算法(如DES)速度的千分 之一,因此不适宜加密大批量的数据,而常用来加密一些较短的信息,如密钥、个人信息、数 字签名等,这一点是需要以后改进的。同时,为保证RSA 算法有足够的加密强度,就必须选 取足够长的密钥。这一点,在下面例子中可以得到证明。 RSA 算法的实践及科学家的研究都显示:破解RSA 密码至少和大整数的素因子分解问题 同样困难。由R·Schroeppel 算法得知,整数的素因子分解需exp(sqrt(ln(n)ln(ln(n)))) 次运算,其中sqrt 函数为开平方运算,ln 为自然对数运算。假设计算机已达到一秒钟可运算 1 亿次(目前尚未达到),则如表1,显示了最理想的运算次数数与时间。 表1-1 整数的素因子分解复杂性表 Table 1-1 Analyzation complexity Table of Prime Factor of Integer N 的是十进制位数 分解因子运算次数 分解因子运算时间 50 1.4×109 2.4 分钟 100 2.3×1013 270 天 200 1.2×1021 3.8×107年 300 1.5×1027 4.9×1013年 500 1.3×1037 4.2×1023年 由表1 可见,密钥越长,RSA 算法的安全等级越高,只要密钥长度超过100 位,特别是在 200 位以上,RSA 算法在实际中就是绝对安全的。可以说,没有谁会花上几百万年去破解一个 密码系统,即使有,到那时密钥也早已更换了,因为一个密钥的使用周期不可能太长,适时地 更换密钥也是防止破译的一种很好的策略。 在电子商务的SET(Secure Electronic Transaction)协议中,规定CA(Certificate Authority )使用2048 比特的RSA 密钥,其他实体使用1024 比特的RSA 密钥,以保证其加 密强度。但是,由于运用RSA 算法对数据进行加解密运算需要进行大量的模幂运算,较长的 密钥势必大大降低RSA 处理数据的速度。因此,如何提高RSA 处理数据的速度就成为RSA 得到普遍应用的关键问题之一。而且,随着科技的发展,也许会出现一种不进行整数的素因子 分解就能破译RSA 加密密文的有效算法,当然,到那时,整数的素因子分解难题也会不攻自破, 这些都是需要每一个密码研究者所共同努力的。因此,对RSA 加密算法核心和加解密速度的 研究是非常有必要的。同时,在加密大批量的数据时,私钥密码体制是非常方便和快捷的, 但私钥密码体制的脆弱性又是我们在密码产品中完全使用它的忧虑和障碍。因此,在深入研 究公钥和私钥密码的体制上,设计出一套在片上系统(SOC)中实现的密码体制是非常有必 要的。 另外,传统的电子商务或是网络email 等的身份认证基本上是通过两种方式来实现的。 一种是密码机制,双方约定好规则。这是目前最为普遍的方式,但是这种方式的严重缺点显 而易见。密码作为最重要的信息,在网络上传输,很容易被黑客攻击截获,经常发生密码被 盗。第二种方式是通过第三方的认证,双方共同信任第三方公司提供的信息,从而进行交易。 微软在.net 计划中推出的认证服务器就提供这种服务。但是,信誉度建立在第三方上,便 会受到第三方的制约,掏钱不说,还要担心第三方是否会倒闭。 USB 安全钥解决了这两种方式无法解决的问题。USB 安全钥结合传统的电子商务核心技 术和新兴的USB 技术,用于实现电子商务中的关键技术———身份识别,在未来电子商务领 域具有广阔的应用前景。不仅如此,集数据加密和数据存储两大功能于一体的USB 安全钥提 供的信息安全保护技术还填补了国内安全电脑空白,开拓了信息安全产品的新市场,为寻求 发展中的PC 市场打开了一个突破口。 尽管目前国内外厂商对USB 安全钥产品的实现作了初步的尝试,但其产品在功能、安全 性及实现速度上有着极大的改进空间。同时,随着集成电路制造工艺的发展,芯片内电路的 规模越来越大,线路越来越复杂,现在已经能够将一个电子系统集成在一个芯片之中(System On a Chip-SOC)。为了应付日益复杂的集成电路设计,集成电路设计方法学的研究得到了广 泛的重视,新的设计方法不断出现,同时电子设计自动化(EDA)工具不断地改进也促进了 VLSI 设计技术的发展。USB 安全钥必然要朝着集在线加密、数字签名、身份认证等多项功能, 更高安全性能,更高处理速度的片上系统(SOC)方向发展。 电信网络及Internet 的爆炸性增长,使网络安全成为诸如电子商务等信息服务主要考 虑的问题.基本的网络安全需要包括数据签名、数据加密和身份验证等.数据加密技术是网络 中最基本的安全技术,它是通过对网络传输的信息进行加密来保障其安全性的.同时,有着巨 大的市场潜力的桌面安全领域很少有人涉足。研究与开发能够同时满足上述安全领域的密码 体制并且将基于该密码体制的集签名、认证功能以及USB 接口集成在一个芯片中是很有意义 的。 本文的研究成果有助于利用当前流行公钥和私钥密码体制建立片上实现的密码体制的 规范化,扩展已有USB 安全钥功能,提出了具有更多功能、更高性能的USB 安全钥模型,并 设计出了具有USB 安全钥功能的片上系统(SOC)。为信息安全产品的研究与开发提供了更开 阔的视野,对我国开发具有自主知识产权的计算机网络信息安全产品具有重要的意义。 1.3 目前已经取得的研究成果 本文主要在以下方面进行了研究并取得了相应的成果: (1)提出了适合于在片上系统(SOC)实现数字加密、数字签名、身份认证功能的综合密码体制, 该密码体制具有安全性强、运算和验证简便以及易于实现的特点,适合于桌面PC 安全、电 子商务、电子投票以及电子货币等应用场合。应用本文提出的密码体制构建的片上系统能够 灵活、快速、安全地满足多种安全系统的要求。 (2)结合USB 技术,提出了基于综合密码体制适于多种应用场合的多功能USB 安全钥模型, 并且构建了USB 安全钥在安全系统中应用构架,为USB 安全钥在其他领域中的应用提供了很 好的参照。本文建立的USB 安全钥模型能够主动防御来自内部和外部的安全危害,在满足安 全性要求的前提下,具有形式简单、运算快速以及易于实现的特点。 (3) 设计实现了综合密码体制的快速基本算法、改进的Montgomery[59]-[61]模乘算法和快速流 水加、解密算法,这些算法运算量小、时间复杂度低并且易于在片上系统中实现,这样,不 仅减少了硬件资源,也提高了运算速度,保证了综合密码体制的快速完成。 (4)将USB 安全钥从功能的角度分为USB 控制器设备和密码体制实现两个模块,运用片上 系统(SOC)自底到顶的设计方法和电子设计自动化(EDA)工具实现了具有USB安全钥功能芯 片。该芯片具有灵活性高、通用性好、功能扩充简便、价格便宜等特点,具有广阔的应用前 景和市场潜力。 1.4 论文的组织结构 本文共分为8 章: 第一章:绪论:对本文研究的背景、意义以及主要研究内容和成果进行阐述。 第二章:USB 安全钥模型的特征分析:对USB 安全钥概念和思想进行了更为详细的阐述,提 出了扩展功能后USB 安全钥的应用模型和特征。最后,通过对当前信息安全系统受危害原因 的分析,以及与当前已有安全产品进行比较,进一步明确了USB 安全钥在密码产品中的重要 地位。 第三章:USB 安全钥中密码体制的研究:对适于USB 安全钥使用的私钥和公钥密码体制进行 详细分析,从运算速度和安全强度的角度分析它们的优缺点,同时,给出提出了在USB 安全 钥中使用RSA 和DES 相结合的混合密码体制的新思想。 第四章:USB 安全钥中的认证与签名:运用混合密码体制来研究身份认证与数字签名技术, 并且针对身份认证与数字签名分别提出了一种安全协议,最后结合两者提出了一种具有高安 全的USB 安全钥身份认证、数字签名协议。 第五章:USB 安全钥芯片的设计与实现:介绍了USB 技术背景、发展趋势和当前流行的片上 系统(SOC)的设计方法和设计工具。然后从设计方法、设计手段以及软硬件设计与实现方 面对USB 安全钥芯片进行了详细分析。最后从布线、编译、测试等方面来实现了USB 安全钥 芯片。 第六章:USB 设备控制器的设计与实现:对USB 安全钥芯片中的USB 控制器模块进行详细的 分析和设计,文中利用VHDL 语言和一些现成或经过测试的宏功能模块来设计IPCore 的方法, 实现适合于安全钥芯片的控制器模块,并对最终的仿真、综合、实现与验证进行讨论。 第七章:RSA 协处理器的设计与实现:设计了RSA 协处理器,它可以在芯片内部主微处理器 的控制下完成RSA 加解密运算。在此设计中采用了适合硬件实现的改进快速算法,在保持硬 件规模较小的同时加速模乘、模幂运算速度。在本章最后设计了USB 安全钥的协处理器的实 现电路,并从性能对这个设计进行了分析。 第八章:结论:对论文的研究成果进行了自我总结和评价,进一步明确了我们在相关领域的 研究成果和贡献。同时,总结了我们的研究中的不足和缺陷。最后针对我国在密码学和微电 子学领域与国外的差距,得出了密码安全芯片在我国巨大的发展潜力和无限商机。 2.USB 安全钥模型的特征分析 绪论的内容说明了利用USB 安全钥能够很好地解决当前桌面PC 安全的需求和网络安全 体系中加密、签名、认证等关键性问题。本章首先阐述USB 安全钥的概念、特点,并分析了 现有的USB 安全钥的特点与局限性。然后结合USB 安全钥在系统中的具体应用,深入分析 USB 安全钥和系统中其他组成部分在实现加密、数字签名、身份消息认证时相互之间的逻辑 关系,构建了适用于多个应用领域的系统模型。最后详细讲述了在本文构建的系统中USB 安全钥所具有的功能。 2.1 USB 安全钥的概念与特点 2.1.1 USB 安全钥的概念 当今社会,随着信息技术的发展,人们从中获得了不少利益,然而也出现了不少问题, 其中信息的安全问题是最让人头疼的问题。为了解决这种问题,结合当前信息流通速度快的 特点,人们就提出了一种基于USB 技术的硬件安全加密产品,用来解决信息安全问题。 USB 是通用串行总线(Universal Serial Bus)的简称,已成为计算机与外设之间进行 数据交换的主流总线协议,并将取代传统的并口和串口而成为最主要的PC 标准接口。USB 具有热插拔、传输速度快、接口简单以及价格便宜等特点。USB 安全钥就是利用USB 的这些 优点,结合USB 技术,以现代密码学的先进密码体制为基础,在硬件上实现的,集加密、认 证以及数字签名技术于一体的,具有高安全性、高处理速度的硬件安全产品。 2.1.2 USB 安全钥的特点 USB 安全钥的研究是安全技术方面的一大突破,成为人们研究的热点,综述人们的研究 成果,结合USB 技术的特点,可以总结出USB 安全钥所具有的一些共同特点: 1.体积小 、重量轻、无需外接电源,便于携带; 2.兼容性好:由于设备本身符合USB 各项协议定义,在不同的计算机平台(PC,MAC 等) 和操作系统(Windows,Linux)中均能使用; 3.使用方便:支持热插拔,具有即插即用功能,用户可以在交易过程中将安全钥插入网络 终端,使用完毕后可以立即拔出,不需要中止程序或操作系统的运行; 4.功能强大:同时具有数据加密和数据存储两大功能,并提供了几种加密方案; 5.安全性好:在网络体系中使用过程中将网络终端的功能弱化为一个数据传输的媒介, 所有有关安全性的操作都在USB 安全钥和安全主机内部完成,极好的保护了安全数据。在这 一前提下,用户可以携带USB 安全钥在任意一台网络终端机上进行交易,而不必担心会有任 何重要数据留在使用过的网络终端上; 6.价格便宜:USB 安全钥实际上就是一个带有USB 接口的微控制器,故制造成本比较低。 7.可扩展性好:USB 系统具有良好的可扩展性,能支持127 个外设接驳能力 基于以上诸多优点,把USB 安全钥引入到信息安全工程中去具有重要的现实意义。 2.2 USB 安全钥的功能 由于对USB 安全钥的研究只是最近几年的事,虽然在实际应用中取得了一些成就,相 应的应用模型也在慢慢地形成,但对USB 安全钥应用功能的挖掘还远远不够,而且目前的 USB 安全钥产品大都是针对专用的应用环境开发的,这些大大限制了USB 安全钥作为安全产 品的通用性。因此,应致力于研究出具有通用功能,更高安全强度和实用价值的USB 安全钥 产品,力争实现一钥多用功能。我们首先从通用性USB 安全钥应具备的功能入手分析。 本文要设计的产品不仅适用于传统的网络认证,而且还要扩展加密、数字签名功能, 应用到网络信息安全与桌面安全中。以下概述了本文所设计产品应具备的功能: (1)文件加密功能 USB 安全钥可以对本机上的任何文件及文件夹加密,不仅可以防止别人打开您的文件, 还可以禁止更改文件的属性、名称和时间,更可以禁止删除文件,为您的文件设立保险箱。 (2)数字签名功能 USB 安全钥通过混合密码结合数字签名技术,实现了两个拥有USB 安全钥的用户之间的 信息的安全传输以及身份认证功能,可以防止信息在传递过程中泄漏、被非法修改以及对信 息的伪造,为现代电子商务提供了非常安全的网上交易保障。 (3)身份认证功能 USB 安全钥利用CA 机构的X.509 证书实现了不同用户之间的身份的认证,这两个用户 虽然可能互不认识,但通过CA 机构提供的X.509 证书,可让这两用户互相信任。 (4)信息存储功能 主要是根据具体的硬件条件,在USB 安全钥内提供一定容量的密钥信息和重要的档案信 息的存储,可用来实现对用户持有USB 安全钥权限的控制,以及对加密、认证、数字签名中 用到密钥的存储,防止这些信息的泄漏。 (5)软件保护功能 软件开发人员将USB 安全钥捆绑在软件中销售,只有合法用户才能从软件服务网站上 下载使用加密的驱动程序,不仅保护软件开发者的版权,还使软件使用者增加了个人文件的 加密功能,提高了软件的附加值,增加了软件的卖点。 (6)电子邮件加/解密功能 对于商业往来的重要电子邮件以公钥加密,只有持有相同公钥的用户可以打开阅读电子 邮件,或者从公司网站上下载资料和软件,防止商业机密的泄漏。 (7)系统安全登录功能 可以为系统增加了严格的登录用户身份验证,阻止非法用户侵入系统的企图。有系统软 件验证和USB 安全钥硬件验证两种方式可选,为操作系统的安全登录提供了全面的解决方 案,对基于NT 内核的系统的登录安全性也有较好的增强。 (8)自动锁屏功能 用户登录进入系统后,当暂时离开计算机时,可以通过拔出USB 安全钥的方式锁定计 算机,以保护自己的工作现场不被他人偷窥篡改。 (9)访问权限设置功能 考虑到网络用户的需求,USB 安全钥可以设定公钥和私钥2 级管理,使用户不仅可以加 密个人文件,还可以加密共享文件。在防止非法用户盗取机密的同时,保障了合法用户能够 方便地使用共享资源。网管可以设定公钥,管理服务器及客户端的重要文件;还可以设定登 录服务用户名及密码,防止客户端的使用者误删重要的程序和文件,简化日常的维护工作。 由管理人员设定与网管不同的公钥,管理整个网络中共享的文件,一方面防止文件泄密,另 一方面可以减少病毒的传播。各用户设定与服务器相对应的用户名及密码,用来登录服务器, 可以防止非法用户登录使用计算机。自行设定私钥,管理个人文件,防止个人资料泄漏。 以上功能描述是我总结了现有产品的功能,并将它们汇总后,实现在本文中要实现的 芯片中,随着对USB 安全钥研究的深入,人们对USB 安全钥的特点的认识更加深刻,USB 安 全钥的功能也越来越强大,它会在越来越多的实际应用中发挥更重要的作用。 PC PC USB 安全钥 USB 安全钥 INTERNET CA 服务中心 图2-1 USB 安全钥系统体系结构 Fig 2-1 System Structure of USB Security Key 桌面 安全 网上双方 认证、签 名系统 2.3 USB 安全钥系统模型 一般来说,针对不同的应用环境,USB 安全钥在整个安全系统中的作用不同,而且实现 的功能也不同。无论是用在什么系统中,都是依赖于密码技术中加/解密、数字签名和认证 技术。比如,应用于桌面安全模型中的USB 安全钥主要是用到加密,身份认证技术;应用于 电子商务中,主要是身份认证;应用在网络传输中,主要用到加/解密、数字签名技术。由 此可见,加/解密算法、数字签名和身份/信息认证技术是USB 安全钥有广泛应用前途的有力 保证。 2.3.1 USB 安全钥系统结构体系 USB 安全钥总是作为系统中的一部分,在系统中扮演着“安全卫士”的作用。图2.1 概 括了USB 安全钥在各种应用场合的体系结构。实线椭圆圈内代表桌面PC 安全系统,点划线 椭圆圈内代表网络系统中A、B 双方认证、签名的结构体系。 整个图代表了涉及到第三方的三方认证系统的结构体系。 2.3.2 USB 安全钥的功能流程 在介绍各个体系结构的功能流程之前,对X.509 证书和CA 的先介绍一下。 CA(Certificate Authority)是一个认证机构,此认证机构是具有很高信任度,所有向此机 构申请认证证书的个人或企业都对CA 机构有着相当的信任。而X.509 是一种规范,X.509 证书就是由可信的第三方权威机构――CA 颁发的符合X.509 规范的公钥证书。X.509 证书包 含了用户的身份信息、公钥信息、颁发证书的CA 的身份信息和CA 对证书的签名信息。通过 X.509 证书,绑定了用户身份和密钥对,并且经过权威机构CA 的签名确保了证书的可信性。 X.509 证书由CA 发布在网上的公开证书库中,用户可以方便的从证书库获取证书来进行身 份认证。下面就针对上一小节介绍的各体系结构分别详细描述各个独立系统的功能流程: 1) 由USB 安全钥、PC、Internet 以及CA 所构成的系统,此系统是用来生成X.509 证书的, 其功能是在CA 机构注册。其结构图(图2.2)及功能流程如下: CA USB 安全钥 PC 1 3 2 6 5 4 7 图2-2 用户注册协议图 Fig 2-2 Protocol Diagram of User Registered ① 插入USB 安全钥到PC 上,并利用USB 安全钥生成公钥与私钥对,分别为e 和d; ② USB 安全钥将自己的KeyID、公开密钥e 以及其他的一些身份信息通过CA 机构发布 的公开密钥加密; ③ 将加密后的数据通过PC 传送给CA; ④ CA 在接收到传过来的数据后,利用自已的私有密钥将数据解密,取得原始数据; ⑤ CA 从原始数据中取得USB 安全钥发过来的公开密钥e、KeyID 以及身份信息,然后 利用自己的私有密码生成X.509 数字签名证书; ⑥ CA 再将e、KeyID 以及USB 安全钥的身份信息用自己的私有密钥加密,并将加密后 的数据和X.509 数字签名证书发给USB 安全钥。 ⑦ USB 安全钥接收到数据后对发过来的数据进行验证,是否与原来发过去的消息一致。 2) 由USB 安全钥与PC 构成的系统,此系统实现本地数据的简单加密、认证。用于桌面PC 安全系统以及当网络终端由于各种原因脱机工作等环境中。如下图(图2.3)所示为上 体系结构的功能流程图: PC 2 1 5 3 USB 安全钥 4 图2-3 单机工作结构 Fig 2-3 Running Structure of Stand-alone Terminal ① 用户将USB 安全钥插入PC 的USB 接口,PC 机获得安全钥的ID 号; ② 用户输入KeyID、用户名以及密码,验证是否为合法的使用者; ③ 利用PC 将要加密的数据传入USB 安全钥; ④ USB 安全钥利用一定的加密方法对传入的数据进行加密; ⑤ USB 将加密后的数据传入PC。 3) 由USB 安全钥、PC、CA 机构、Internet 和服务中心构成的身份认证系统,此系统可实现 服务中心对USB 安全钥持有者身份的认证,并赋予此用户使用此USB 安全钥进行安全传输的 权利。结构图(图2.4)及其功能流程如下: ① USB 安全钥用户插入USB 安全钥; ② 输入用户名和密码; ③ USB 安全钥将用户名和密码以及USB 安全钥的KeyID 加密后通过PC 发送给服务中心; ④ 服务中心接到此信息后,从CA 机构获得此用户的X.509 证书,并通过此证书获得解 密USB 加密信息的密钥; ⑤ 服务中心解密信息后通过验证这些信息来确认用户的身份; ⑥ 对用户身份确认后,发送信息给用户确认此用户拥有使用USB 安全钥进行安全传输的 权利。 USB 安全钥 CA 服务中心 PC 1 2 6 5 4 图2-4 单向认证结构 Fig 2-4 Structure of Unilateral Authentication 3 4) USB 安全钥A、安全钥B、两台PC 以及CA 所构成的系统,此系统可实现USB 安全钥用户 A 与B 之间的安全通信(假设A 要向B 发送信息)。结构图(图2.5)及其功能流程如下: 4 2 CA 中心 1 USB 安全钥 PC PC USB 安全钥 1 7 6 5 3 图2-5 三方认证结构 Fig 2-5 Structure of Three-Side Authentication ①USB 用户A 和B 将各自的USB 安全钥插入两台PC 的USB 接口; ②USB 安全钥A 从CA 获得B 的X.509 证书; ③USB 安全钥A 从X.509 证书中获得B 的公开密钥; ④USB 安全钥A 利用数字签名技术将要发送的信息以及所用到的对称密码的私钥利用自 己的公开密钥、B 的公开密钥进行数字签名,然后发送给USB 安全钥B; ⑤USB 安全钥B 接收到签名数据后,从CA 获得A 的X.509 证书; ⑥USB 安全钥B 从A 的X.509 证书中获得A 的公开密钥; ⑦USB 安全钥B 利用A 的公开密钥和自己的私有密钥从签名信息中获得A 发给B 的信息, 并可对此信息进行验证,防止信息被修改。 总结如上体系结构及其功能流程,本文设计的USB 安全钥集中了如下思想: 1.采用基于X.509 证书的第三方认证; 2.此模型中,要实现安全通信的两用户都应该拥有USB 安全钥; 3.此USB 安全钥还可以实现单机上的文件加密,使用户拥有一个安全保密文件箱; 4.实现两用户之间的消息秘密传输的数字签名功能; 5.要想拥有使用USB 安全钥的权利,必须要对用户身份进行认证; 2.4 USB 安全钥系统的实现 2.4.1 USB 安全钥系统的设计组成 USB 安全钥系统,从设计上可以分为三个模块:服务中心的网络通讯和加密算法设计、 PC 端的USB 驱动程序和网络通讯设计、安全钥端的USB 安全钥硬件和软件的设计。服务中 心加密算法的研究主要涉及到对用户身份的认证、通过X.509 证书获得公开密钥;PC 和安 全钥端驱动程序的研究,实现PC 端友好的程序界面,动态在线修改存储在安全钥内的用户 产品信息;涉及到的计算机技术包括Socket 网络编程技术、USB 驱动程序设计技术和加密 算法技术。可以说整个设计内容庞杂,技术难度高。因此,设计时就需细化,一步步完成单 个功能,再进行联调,将单个模块融合成完整的USB 安全钥。本论文主要研究在安全钥端实 现的密码体制和设计出具有USB 安全钥功能的芯片。 2.4.2 USB 安全钥端的设计组成 USB 安全钥端的设计是本论文研究的主要内容,对USB 安全钥端的设计所涉及到的内容, 从上面的模型就可看出。在设计USB 安全钥端时,考虑到其所具有的强大功能,可将其设计 分为几个部分,其组成部分如下: (1) USB 安全钥内的几种加密解密模块; (2) USB 安全钥中读进数据与向PC 传送数据的模块; (3) 对拥有USB 安全钥的用户的身份的认证模块; (4) 对网络数据进行数字签名的签名模块。 本论文在设计USB 安全钥时主要涉及到上面几个方面,在下面的几个章节中,将对它们 进行详细的分析。 2.5 小结: 本文在现有USB 安全钥系统模型的基础上,提出了新的USB 安全钥系统模型,此模型在 现有基础上进一步加强了USB 安全钥的应用功能,并且针对现今的网络结构技术,提出了第 三方认证的思想,为USB 安全钥在应用方面开阔了视野。在提出扩展后的USB 安全模型后, 对此模型的各个组成部分进行了分析,并对其所能实现的功能进行描述。最后对USB 安全钥 系统的设计所应涉及到的几个部分作了简单的讲解,提出了本论文所要研究的主要内容。明 确了本论文的研究目的:即结合新兴的USB 技术和SOC 设计方法、工具,开发出拥有自主知 识产权的安全钥端芯片。 3.USB 安全钥中密码体制的研究 在USB 安全钥的设计中,密码体制的选择是USB 安全钥最为重要的部分,所选择的密码 体制的好坏决定着USB 安全钥的安全性能的高低。考虑到密码体制选择的重要性,本章通过 对密码技术的简介,首先讨论了私钥密码体制和公钥密码体制,并在此基础上深入研究了适 合USB 安全钥使用的DES 和RSA 这两种当前应用广泛的密码体制,并进一步提出了混合密码 体制,利用混合密码体制将RSA 和DES 相结合,为USB 安全钥的安全应用做好了最为基本的 准备。 3.1 密码学概述 3.1.1 密码学的发展 密码技术的发展经历了几千年的时间,但密码学真正成为一门学科是最近几十年的事。 在这密码技术发展的长河中,根据人们对密码的认识,可将它的发展历史划分为三个阶段: 第一阶段是从古代到1949 年,在这一时期,密码学专家常常是凭直觉和信念来进行密码设 计和分析的,而不是推理证明。第二个阶段是从1949 年到1976 年,Shannon在1949 年发表 了“保密系统的信息理论”一文[5],将密码学的研究纳入了科学的轨道。第三个阶段是从1976 年开始至今。1976 年Diffie W.和Hellman M.发表了“密码学的新方向”一文[6],提出了一 种崭新的密码体制,冲破了长期以来一直沿用的私钥密码体制,开创了公钥密码学的新纪元, 使得密码学发生了一场变革。他们首次证明了在发送端和接收端无密钥传输的保密通信是可 能的。并在1977 年由Rivest、Shamir和Adleman提出了第一个比较完善的公钥密码体制,这 就是著名的RSA公钥密码体制体制[7]。从那时起,人们基于不同的计算问题提出了许多公钥 密码体制。 3.1.2 密码系统的构成与安全性 加密解密都是在密码系统框架内进行的,一个密码系统的构成如下: ⑴一个明文空间PT,即所有可能明文pt 的集合。 ⑵一个钥空间K,K 中的每个k 确定一个加密方法Ek 和一个解密方法Dk。如果先将Ek 作用 到一个明文pt 上,然后再将Dk 作用到所得的结果上,则得到的仍是pt。 ⑶一个密文空间CT,即所有可能密文ct 的集合。将PT 的元素用Ek 加密后得到CT 的元素, 其中k 遍历K。 在密码系统中,原来的消息称为明文,发送者对明文进行加密,而所得的东西称为密文。 密文通过不安全信道传送,最后,接收者对密文解密即可得到明文。因此,在一个密码系统 中,发送者的变换工作是:将明文加密成密文。接收者的变换工作是倒过来:将密文解密成 明文。下面就是1949 年shannon 提出的保密通信系统模型图: 加密 Alice 解密 Bob 秘密钥 秘密钥 秘密信道 不安全信道 密文 图3-1 保密通信系统模型 Fig 3-1 Structure Model of Secure Communication 窃听者 明文 明文 在该系统中,Alice 是发送者,Bob 是接收者。Alice 利用秘密钥将明文加密得密文, 然后通过不安全信道将密文传递给Bob,即接收者,Bob 接收到密文后,利用秘密钥将密文 解密得到明文。值得注意的是,在此系统中,秘密钥是通过秘密信道传送的,没有人能窃听 到,而密文是通过不安全信道传送的,可能有窃听者窃听信息。 一般的密码系统中,密文在传送中有可能被截获,那么明文信息就有可能被泄漏,这样 为了防止明文的泄漏,应该构造一个好的密码系统。一个好的密码系统可简单由以下三个条 件来判断,这三个条件是由Francis Bacon 提出的,如下: ⑴ 给定Ek 和pt 时,计算Ek(pt)容易。给定Dk 和ct 时,计算Dk(ct)容易。 ⑵ 在不知道Dk 的情况下,不可能由ct 推知pt。 ⑶ 密文看起来不应该使别人产生怀疑。 上述条件可总结为一个基本条件:在不知道解密方法Dk时,有密文ct计算明文pt是不可 行的。还有要特别注意的是,在密码系统设计时:千万不可低估密码分析者。 一个密码系统形成后,在实际应用中总会遇到各种各样的攻击,一般在考虑受到的攻击 时,总是假设密码分析者知道所用的密码系统。根据密码分析者破译时已经具备的前提条件, 通常将攻击类型分为四种: (1)唯密文攻击:密码分析者有一个或更多的用同一个密钥加密的密文,通过对这些截获的 密文进行分析得出明文或密钥。 (2)已知明文攻击:除了待解密的密文以外,密码分析者还有一些明文和用同一个密钥加密 这些明文所对应的密文。 (3)选择明文攻击:密码分析者可以得到所需要的任何明文所对应的密文,这些密文与待解 密的密文是用同一个密钥加密得到的。 (4)选择密文攻击:密码分析者可以得到所需要的任何密文所对应的明文,解密这些密文所 使用的密钥与解密待解密的密文的密钥是相同的。 上面四种攻击类型的强度按顺序递增。面对各种攻击,为了保护信息的机密性,抵抗密 码分析,保密系统应当满足以下要求: (1)系统即使达不到理论上是不可破解的,也应当是实际上不可破解的。也就是说,从截获 的密文或某些已知的明文——密文对,要确定密钥或任意明文在计算上是不可行的。 (2)系统的保密性不依赖于对加密体制或算法的保密,而依赖于密钥。 (3)加密和解密算法适用于所有密钥空间中的元素。 (4)系统既易于实现又便于使用。 衡量一个保密系统的安全性有两种基本方法,一种是计算安全性,又称为实际保密性。 另一种是无条件安全性,又称为完善保密性。一个保密系统说是计算上安全的是指利用最好 的算法(已知的或未知的)破译该系统需要至少n 次运算,这里的n 是某一个确定的、很大 的数。目前还没有一个实际的密码体制能被证明是计算上安全的。在实际应用当中,人们说 一个密码体制是“计算上安全的”意指利用已有的最好的方法破译该体制所需要的努力超过 了敌手的破译能力(诸如时间、空间、设备和资金等资源)或破译该体制的难度等价于解数 学上的某个已知难题。当然,这只是提供了保密系统是计算上安全的一些证据,并没有真正 证明该系统是计算上安全的。一个保密系统说是无条件安全的是指具有无限计算资源(诸如 时间、空间、设备和资金等)的密码分析者也无法破译该系统。 通常假设在无干扰的条件下,密码分析者可以得到密文,知道明文的统计特性、加密体 制、密钥空间及其统计特性,但不知道加密截获的密文所用的特定密钥。这个假设称为 Kerckhoff假设[8]。当然,如果密码分析者或敌手不知道所使用的密码体制,那么破译是更 难的。但是,不应当把保密系统的安全性建立在敌手不知道所使用的密码体制这个前提之下。 因此,在设计一个密码系统时,其目的应当是在Kerckhoff假设下达到一定的安全程度。 3.2 密码体制 根据密钥的特点,密码体制[40]-[42]可以划分为对称密码体制和非对称密码体制。对称密 码体制又称为单钥密码体制或私钥密码体制,非对称密码体制又称为双钥密码体制或公钥密 码体制。在私钥密码体制中,加密密钥和解密密钥是一样的或彼此之间容易相互确定。在公 钥密码体制中,加密密钥和解密密钥不同,从一个难以推出另一个,可以将加密和解密能力 分开。 下面几节就对两种密码体制——公钥密码体制和私钥密码体制——进行研究。 3.2.1 私钥密码体制 从一定意义上说,密码学的基本目的是保护隐私。也就是使通信双方通过某一不安全的 信道传递信息时,只有对方才能破译这一信息。在过去,这一愿望是通过私钥密码体制来实 现的。私钥密码体制是一种传统密码体制,在过去,最有代表性的私钥密码体制有Caesar、 Hill、Vigenere 等。而当代最有代表性的有:DES、AES、IDEA、RC5 等,它们的安全性都是 基于复杂的数学运算。 若以M 表示所有的明文信息,C 表示密文信息,K 是所有的密钥。则私钥密码体制是由 这样一组函数对构成的: Ek:M→C Dk:C→M , k∈K 在这里,对于所有的m∈M及k∈K,都有Dk(Ek(m))=M。 使用这一体制时,通信的双方A和B需要事先达成某一秘密钥k∈K,他们可以通过直接会 晤或者可以信赖的信使来互相得到对方的秘密钥。之后,若A想发送一组明文给B,他传送的 是密文信息C∈Ek(m)。根据C,B通过解码函数Dk复原信息。显而易见,解码系统应当具有的 特点是:Dk和Ek易于应用以及在第三方了解除选用密钥的方法之外的保密系统的信息之后, 仍然不可能根据C得到M(或k)。 现今,使用最广泛的一种私钥密码体制是DES(Data Encrypt Standard)。DES 由IBM 公司开发,而后在1977 年由NBS(美国国家标准局,现称为NIST)定为美国国家标准,用 来保护一些未公开的档案。DES 中的密钥只有56 个字节,正是由于其密钥数目小,它能不 能抵御全部的密钥搜索法尚属未知。因而,关于DES 的安全性存在着广泛的争议。但是直到 目前为止,这一担心并未变成现实,对DES 最有力的攻击在常规情况下是不容易实现的。DES 具有的优点是它在硬件和软件方面的完成速度都很快。 3.2.2 公钥密码体制 自从1976 年公钥密码的思想提出以来,国际上已经提出了许多种公钥密码体制,如基 于大整数因子分解问题的RSA 体制和Rabin 体制、基于有限域上的离散对数问题的 Diffie-Hellman 公钥体制和ElGamal 体制、基于椭圆曲线上的离散对数问题的 Diffie-Hellman 公钥体制和ElGamal 体制、基于背包问题的Merkle-Hellman 体制和 Chor-Rivest 体制、基于代数编码理论的MeEliece 体制、基于有限自动机理论的公钥体制 等等。 用抽象的观点来看,公钥密码体制就是一种陷门单向函数。我们说一个函数f是单向函 数,若对它的定义域中的任意x都易于计算f(x),而对f的值域中的几乎所有的y,即使当f 为已知时要计算f-1(y)在计算上也是不可行的。若当给定某些辅助信息(陷门信息)时易 于计算f-1(y),就称单向函数f是一个陷门单向函数。公钥密码体制就是基于这一原理而设 计的,将辅助信息(陷门信息)作为秘密密钥。这类密码的安全强度取决于它所依据的问题 的计算复杂性。 目前比较流行的公钥密码体制主要有两类:一类是基于大整数因子分解问 题的,其中最典型的代表是RSA体制。另一类是基于离散对数问题[23]-[24]的,如ElGamal公钥 密码体制和影响比较大的椭圆曲线公钥密码体制。由于分解大整数的能力日益增强,因此为 保证RSA体制的安全性总是要增加模长。目前768bit模长的RSA体制已不安全,一般建议使 用1024bit模长。而基于离散对数问题的公钥密码,虽然在安全性上有很大提高,但目前正 处于研究阶段,技术在实现上还是不很成熟。 目前,公钥密码的重点研究方向为: 1)用于设计公钥密码的新的数学模型和陷门单向 函数的研究; 2)针对实际应用环境的公钥密码的设计; 3)公钥密码的快速实现研究,包 括算法优化和程序优化、软件实现和硬件实现; 4)公钥密码的安全性评估问题。 3.2.3 两种密码体制的比较 在私钥密码体制和公钥密码体制的日益广泛应用中,人们逐渐对这两种密码体制有了比 较深刻的认识,下面就对这两种密码体制进行了分析比较。 像上面介绍的私有密码体制中指出的那样,私有密码体制在实现数据加密解密的运算速 度上很快,它是基于复杂的数学运算的,在实际应用中满足了许多应用要求,但是,私有密 码体制存在以下几方面存在缺点: (1)密钥分布问题。如上所述,传送信息的双方在不安全的信道上交流之前,需要预先选定 某一秘密钥。在某些情况下,选用秘密钥的秘密信道是不存在的。 (2)密钥管理问题。对于有n 个网络用户的网络系统来讲,每一对用户之间存在着一个秘密 钥,总共需要n(n−1)/2 个秘密钥。如果系统比较大的话,密钥则会因为变得太大而不容易 管理。 (3)难以实现数字签名。数字签名是手写体的电子信号,它可以使信息的收到方向第三者确 认该条信息是从发送者传送来的。在一个私钥密码系统中,A 和B 双方具有相同的加密和解 密能力,也就是说B 无法向第三方证明来自A 的信息确实是由A 发出的。 (4)密钥难以传输。私钥密码体制的解密密钥和加密密钥相同或容易从加密密钥导出,因而 加密密钥的暴露会使系统变得不安全[9]。私钥密码体制的一个严重缺陷是在任何密文传输之 前,发送者和接收者必须使用一个安全信道预先传送密钥,在实际应用中这一点是很难做到 的。例如,假定发送者和接收者之间的距离很远,他们要使用电子邮件来通信,在这种情况 下,通信双方可能没有合理的安全信道。 公钥密码体制[10]采用的加密密钥(公开钥)和解密密钥(秘密钥)是不同的。由于加密 密钥是公开的,密钥的分配和管理就很简单,而且能够很容易地实现数字签名,因此最适合 于电子商务应用的需要。但在实际应用中,公钥密码体制并没有完全取代私钥密码体制,这 是因为公钥密码体制在应用中存在以下几个缺点: (1) 公钥密码是基于尖端的数学难题[11]-[12],计算非常复杂,它的速度远比不上私钥密码 体制; (2) 公钥密码中要将相当一部分密码信息予以公布,势必对系统产生影响; (3) 在公钥密码中,若公钥文件被更改,则公钥被攻破; 因此,公钥密码体制和私钥密码体制各自有优缺点,在实际应用中可以利用二者各自的 优点,采用私钥密码体制加密文件,而采用公钥密码体制加密“加密文件”的密钥,这就是 混合加密体制[13]-[14]。混合加密体制较好地解决了运算速度问题和密钥分配管理问题。 3.3 DES 私钥密码体制的研究 DES[33]是一种分组密码,它是美国国家标准局于1997 年公布的由IBM公司研制的一种加 密算法,并把它批准作为非机要部门使用的数据加密标准,它的全称是Data Encryption Standard。自公布以来,它一直成为国际上商用保密通信和计算机通信的最常用加密算法, 是私钥密码体制的最佳代表,也是在硬件实现[34]中所经常用到的密码体制。由于DES主要是 利用对二进制数进行反复的置换、代替、代数等多种变换,故在USB安全钥中选用它对数据 进行加密解密,既便于硬件和软件的实现,又提高了实现的效率。下面将从其加、解密思想 等方面对此密码体制进行分析和研究,并提出了在USB安全钥中使用3DES来进一步加强安全 性的思路。 3.3.1 DES 加密思想 在DES 加密算法中,明文m 是由0 和1 组成的长度为64 比特的符号串,假设如下: m=m1m2…m64 密钥k 也为由0 和1 组成的长度为64 比特的符号串,假设如下: k=k1k2…k64 但实际上这64 比特中只有56 比特有效,其中第8,16,24,32,40,48,56,64 这8 位是奇偶校验位,在算法中不起作用。 DES 加密过程可用公式表达如下: DES(m)=IP-1.T16.T15…T2.T1.IP(m) 其加密流程图如下图3.2: 下面逐一介绍各个组成部分的功能。 1) IP是初始置换,IP-1是它的逆置换,即若有 m− − =IP(m) 则有 m= IP-1(m),也就是IP* IP −− -1= IP-1*IP=I 其中 m=m …m , = … 1 m2 64 m− − m58 m50 m7 IP与IP-1都是按照一定的置换表进行置换操作的,它们的作用是将明文信息进行置乱, 防止信息的泄漏。 IP L0 R0 f L1=R0 R1=L0⊕f(R0,k1) f L2=R1 R2=L1⊕f(R1,k2) f R16=L15⊕f(R15,k16) L16=R15 L15=R14 R15=L14⊕f(R14,K15) 图3-2 DES 加密流程 Fig 3-2 Encryption Flow of DES K16 K2 K1 IP-1 明文m 2) DES 的迭代过程。DES 要迭代加密16 次,第i 次迭代的流程如下图3.3: 其中Li-1和Ri-1分别是第i-1 次迭代的结果的左右两部分,各32 比特。且 Li=Ri-1,Ri=Li-1⊕f(Ri-1,ki) L0和R0是初始输入经IP置换的结果。 Li-1(32 比特) f Li Ri 图3-3 DES 迭代流程图 Fig 3-3 Congruence Flow of DES Ri-1(32 比特) ki ⊕是按位做不进位的加法运算,即 1⊕0=1,0⊕0=1⊕1=0 ki是由64 比特密钥产生的子密钥,ki是48 比特的字符串,ki的产生见后面介绍。 在DES的迭代算法中,f函数是非常重要的。f(Ri-1,ki)将32 比特的Ri-1和48 比特的ki相 运算,然后产生32 比特的输出。其原理图如下图3.4: 在上原理图中,E 的作用是将32 比图特3的-4输 入f 函膨数胀原为理48图比 特。 Fig 3-4 Principle Diagram of F Function 32 比特 Ki (48 比特) S1 S2 S3 S4 S5 S6 S7 S8 32 比特 P 48 比特 Ri-1(32 比特) E 由上图可知,经E膨胀为48 比特后,将这膨胀后的结果与ki进行⊕操作,设进行⊕操 作后的结果为D。将D分成8 组,每组6 比特,分别通过如上图的8 个S盒,每6 比特通过一 个S盒以后将按照一定规则输出4 比特,于是这48 比特又收缩为32 比特。 其中S盒遵循的规则为:假定输入si盒的6 比特为b1b2b3b4b5b6,则可根据提供的si表找出 第b1b6行,第b2b3b4b5列的元素,即si(b1b6,b2b3b4b5),在S表中的元素是在0—15 之间的数, 每一行都是0—15 这16 个数的某一种排列。得到si(b1b6,b2b3b4b5)后,将其编码为4 位的 2 进制数输出,8 个S盒输出便是32 比特。 从S 盒中输出的结果还要经过一次P 置换才算得到最后结果,这个P 置换也是按照一定置换 PC-1 C0 LS1 C1 PC-2 LS2 C2 PC-2 K2(48 比特) LS16 LS16 C16 D16 PC-2 K16(48 比特) 图3-5 子密钥产生流程图 Fig 3-5 Flow of Generating Sub-Key D2 LS2 K1(48 比特) D1 LS1 D0 56 比特 64 比特 k 表进行的,经过P 置换后,0、1 串又被置乱,从而提高了加密的复杂性。 3)子密钥的生成 子密钥的生成也是DES 中比较关键的一环,它利用64 比特的密钥k 生成16 个子密钥,其子密钥产生的流程图如上图3.5: 在上图中,PC-1 是对56 比特(注意:密钥k是64 比特,但第8、16、24、32、40、48、 56、64 比特为奇偶校验位,不在PC-1 中出现)的输入进行重新排序。C0、D0是进行PC-1 变 换后输出56 比特的左右各一半,都是28 比特,LSi 是循环左移,左移的位数如下图3.6: 迭代顺序 左移位数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 图3-6 循环左移数据图 Fig 3-6 Data Diagram of Left Circular Movement PC-2 是从56 比特中按照确定的下标列表从中选出48 比特输出。 3.3.2 DES 解密思想 DES 的解密思想和加密思想差不多,只不过加密和解密的子密钥使用顺序 颠倒了,加密公式为: DES(m)=IP-1.T16.T15…T2.T1.IP(m) 而解密公式为: DES-1=IP-1.T1.T2…T15.T16.IP(c) 其中c 为密文。 我们可对它进行验证,即有 DES-1(DES(m))=m ,DES(DES-1 (m))=m 由于 IP* IP-1= IP-1*IP=I 故有 DES-1(DES(m))= IP-1.T1.T2…T15.T16.(T16.T15…T2.T1.IP(m)) 又有 T16.T15…T2.T1.IP(m)表示DES(m)第16 轮迭代后R16和 L16的结果,由上面的加密流程图可知 R16=L15⊕f(R15,k16),L16=R15 故 T16.(T16.T15…T2.T1.IP(m))迭代后有 L=R15,R=L15⊕f(R15,k16)⊕f(R15,k16)=L15 同样,经过DES-1(c)第二轮变换后有 L=R14,R=L14 依此类推 DES-1(DES(m))=m 成立。 3.3.3 提出3DES 算法 DES确实是一个比较好的加密算法,从保密学的角度来看,它满足这样一个要求:即明 文或密钥中的一个小变化导致密文中的一个大变化,这也就是所谓的雪崩现象[32]。由于DES 算法进行几乎都是二进制运算,利用对数据的反复扩充、置乱和左移来加强数据的保密性, 故它的硬件实现速度非常快,对于我们的研究来说比较合适。 但由于它的加密算法完全公开,包括算法中的参数,于是人们对它的研究也更深入透 彻,随着人们的研究,逐渐发现了DES 存在的一些问题,如:弱密钥、半弱密钥问题,密钥 长度太短的问题。特别是在1998 年7 月电子边境基金会(EEF)上,使用一台25 万美元的 电脑在56 小时内就破解了56 比特的DES,并在1999 年1 月RSA 数据安全会议期间,电子 边境基金会用22 小时15 分钟就宣布完成RSA 公司发起的对DES 的第三次挑战。这样,人们 发现仅仅使用64 比特(即56 比特)的DES 已经远远达不到现在加密的要求,于是科学家们 便提出了使用128 比特(即112 比特)的3DES 加密技术。 3DES 加密技术是完全以DES 加密技术为基础的,它还是利用DES 技术,只不过将要加 密的数据进行了三次DES 运算,如下图3.7 和3.8 分别为它们的加密和解密的简单流程图: DES DES−1 DES K1 K2 K1 图3-7 3DES 加密流程图 Fig 3-7 Encryption Flow of Triple DES m c DES −1 DES −1 K1 K2 K1 c DES m 图3-8 3DES 解密流程图 Fig 3-8 Decryption Flow of Triple DES 由上图可见,3DES只运用了两个不同的密钥k1和k2,那么就将复杂度从DES的O( )增至 3DES的O( ),大大的增强了信息的抗攻击性。 256 2112 3.4 RSA 公钥密码体制的研究 RSA密码体制是美国麻省理工学院(MIT)Rivest、Shami和Adleman于1978 年提出来的, 它是第一个理论上最为成功的公开密钥密码体制,它的安全性基于数论中的Euler定理和计 算复杂性理论[25]-[31]中的下述论断:求两个大素数的乘积是很容易计算的,但要分解两个大素 数的乘积,求出它们的素数因子却是非常困难的,它属于NP-完全类,是一种幂模运算的加密 体制。除了用于加密外,它还能用于数字签字和身份认证。考虑到RSA的广泛应用以及RSA公 钥密码体制的成熟性[15],可以将RSA密码体制运用到USB安全钥中,以实现其身份认证和数字 签名功能。下面将从各个方面来详细对RSA公钥密码体制进行研究。 3.4.1 RSA 的构成 RSA 系统由以下几部分组成: (1) 随机选取的大素数p 和q,还有n,其中n=p*q,p 和q 保密,n 公开。 (2) 取Φ(n)=(p-1)(q-1),其中Φ(n)表示比n 小的素数的个数,随机选取e∈N, 且(e,Φ(n))=1,e 为加密秘钥,公开。 (3) 计算d,使e*d≡1(modΦ(n)),称d 为e 对模Φ(n)的逆,其中d 为解密秘钥, 保密。 在RSA 系统中,设m 为明文,且明文块的数值大小小于n,c 为密文,则其加密和解密 算法如下: 加密算法: c=E(m)≡me(modn) 解密算法: m=D(c)≡cd(modn) 在RSA 系统中(e,n)构成加密秘钥,即公钥,(d,n)构成解密秘钥,即 私钥。 3.4.2 RSA 思想的证明 RSA 是基于数论中的Euler 定理和其它同余性质的,在证明RSA 系统思想正确性之前, 先给出Euler 定理和同余式相乘的性质: Euler 定理:设(a,n)=1,即a 和n 互素,则有 aΦ(n) ≡1(modn)。 同余式相乘性质:设有 a≡b(modn),c≡d(modn) 则有 a*c≡b*d(modn)。 证明RSA 系统思想正确性主要是看能否从密文c 和解密秘钥d 恢复明文m,即由c 和d, 计算出m=D(c)≡c (modn)。 d 下面就证明是否能从密文c 和解密秘钥d 恢复明文m, ∵ e*d≡1(modΦ(n)) ∴ e*d=k*Φ(n)+1,其中k 为任意整数。 由解密公式D(c)≡c (modn)有 d D(c)≡cd(modn)=me*d=m k*Φ(n)+1=m k*Φ(n)*m 又由Euler 定理有 m k*Φ(n) ≡(mΦ(n))k≡1(modn) 同样由同余式相乘性质有 D(c)≡c (modn)=m d e*d=m k*Φ(n)+1=m k*Φ(n)*m≡m(modn) 由于明文块数值大小小于n,则有 D(c)≡c (modn)=m d e*d=m k*Φ(n)+1=m k*Φ(n)*m≡m(modn)=m 故RSA中,能利用e和c恢复明文m,则RSA的系统思想被证明是正确的。但,众所周知RSA 是基于整数因子分解[35]-[36]的密码体制,它利用的是:求两个大素数的乘积是很容易计算的, 但要分解两个大素数的乘积,求出它们的素数因子却是非常困难的,这样一个数学难题,它 属于NP-完全类[12]。因此RSA的安全性完全依赖于因子分解的困难性[22],只要n=p*q被因子分 解,则RSA便被击破,这样在RSA系统中怎样选取大的素数p,q才是关键所在。 3.4.3 RSA中素数的选取[37]-[39] 在RSA中,因为n=pq,若p,q被知道,即能将n因子分解,则有Φ(n)=(p-1)(q-1) 可算出[18]。由于e是公开密钥,且解密秘钥d关于e满足: d*e≡1(modΦ(n)) 则d 也不难求得,这样RSA 系统便被完全攻破。 但是,目前因子分解速度最快的方法,其时间复杂性为: exp(sqrt(ln(n)lnln(n))) 因此RSA的创始人Rivest、Shamir和Adleman建议取p和q为100 位十进制数(≈2332), 这样n为200 位的十进制数。要分解200 位的十进制数,按每秒107次运算的计算机,也要 108年,在亿次机上也要进行55 万年,在计算时间上为RSA系统保证了安全性[19]-[21]。 由上可知,RSA 中的素数都是上百位的十进制数,怎样才能选择好的p 和q,怎样才能 生成这样的数,并且判断它是否为素数,这是一个RSA 系统中关键的问题。 针对素数p 和q 的选择,1978 年Rivest 等人在正式发表的RSA 公开密钥体制的论文中, 就建议对素数p 和q 的选择应当满足: (1)p、q 要足够大,在长度上应相差几位,且二者之差最好与p、q 位数相近; (2)p-1 与q-1 的最大公约数gcd(p-1,q-1)应尽量小; (3)p-1 与q-1 均应至少含有一个大的素数因子。 并把满足这些条件的素数称为安全素数。 在RSA 的构造过程中,我们就应该按照安全素数的要求选择安全素数,这样,RSA 的安 全性才能达到最高。 3.4.4 RSA 安全性分析 在公布RSA 算法之后,在使用RSA 密码体制和分析RSA 算法中发现了一系列的算法本身 脆弱性及其存在的问题。 (1)RSA 公钥密码体制在加密或解密变化中涉及大量的数值计算,其加密和解密的运算时间 比较长,这比数据加密标准DES 的计算量开销大,在一定程度上限制了它的应用范围,以致 于实际使用RSA 密码体制无法用软件产品,必须用超大规模集成电路的硬件产品。 (2)虽然提高n=pq 的位数会大大提高RSA 密码体制的安全性,但其计算量将呈指数增长, 以致使其实现的难度增大,实用性降低。 (3)RSA 公钥密码体制的算法完整性(指密钥控制加密或解密变换的唯一性)和安全性(指 密码算法除密钥本身外,不应该存在其它可破译密码体制的可能性)尚有待进一步完善。 (4)RSA算法面临着数学方法的进步和计算机技术飞跃发展带来的破译密码能力日趋增强的 严重挑战。因子分解问题有了长足的发展,1995 年人类成功地分解了128 位十进制数RSA密 码算法,破译512 位长的RSA指日可待[20]-[21]。 尽管如此,自1978 年RSA 算法公布以来,公开密钥密码已从理论研究进入实际应用研 究阶段。RSA 公开密钥密码算法在信息交换过程中使用比较广泛,安全性比较高。以当前的 计算机水平,如选择1024 位长的密钥(相当于300 位十进制数字)就认为是无法攻破的。 3.5 混合密码体制 3.5.1 混合密码体制的提出 由上介绍可知,私钥密码体制由于只使用了替代和置换等简单的比特处理组合形式,因 此处理速度很快且使用简便,但在密钥分配和管理方面存在一定的问题,并且在分布式系统 上使用较为困难,而公钥密码体制无须秘密分配密钥,密钥分配和管理比较容易,特别适合 在分布式系统中应用,其缺点是需进行诸如200 位或300 位整数的乘幂与取模等复杂运算, 一般会比对称密码体制慢上百乃至千倍。 根据上面的比较,为了充分利用私钥密码体制和公钥密码体制的优点,改进安全保密系 统常用加密体系中密钥分配和交换不足之处,提高密码技术在保证信息安全传输中的应用, 于是一些密码专家提出了一种基于混合密码体制的数据加密方案。 3.5.2 混合密码体制的应用 混合密码体制的核心是:利用私钥密码技术对明文进行加解密,再利用公钥密码技术来 传递加密明文时所用到的私钥密码。由于将公钥密码技术和私钥密码技术相结合,在加解密 明文方面提高了处理速度和运算效率,并且利用公钥密码技术加强了密钥管理和分配的方便 性,故混合密码体制成为当今安全领域中使用最为广泛的加密认证安全体制。 自从混合密码体制提出后,就在安全领域引起了强烈的反响,基于混合密码体制的身 份认证技术、数字签名技术相继出现,对这方面的研究也成为密码专家关注的热点。 在应用方面,混合密码体制也逐渐显示出它的价值,它可广泛应用在防火墙规划和构 造企业内部网络的管理及安全规划以及互联网络用户身份认证体系等场合,还可很好地应用 于当前网络应用技术的一个研究热点——移动代理和多代理混合密码体制的安全保障体系 中。 在下一章节中,将详细研究混合密码体制在身份认证和数字签名方面的应用,并基于 3DES 和RSA 技术提出了一种应用于USB 安全钥的认证和数字签名方案。 3.6 小 结 USB 安全钥的设计过程中,选择使用怎样的密码体制是USB 安全钥安全性的重要保障。 本章结合对当前几种主流密码体制的研究比较,以及USB 安全钥的自身特点,重点提出了在 USB 安全钥中使用当前应用广泛的DES 私钥密码体制和RSA 公钥密码体制,并对这两种密码 体制进行了分析,通过对它们的研究,不仅提出了3DES 的思想,而且提出了将RSA 和DES 相结合使用的混合密码体制。 通过本章对当前主流密码体制比较,可以更加清楚在USB 安全钥中应该选用怎样的密码 体制才可以更加充分的发挥USB 安全钥的作用,并且使它在安全性和处理速度方面达到较好 的均衡,为它的广泛应用打好了基础。 4.USB 安全钥中的认证与签名 本论文研究的USB 安全钥是一种重要的网络安全产品,它主要应用在当前的电子商务、 网络e-mail 以及网上重要数据的安全传输等方面。在USB 安全钥的这些应用中主要涉及到 网上的用户身份认证和数字签名技术,它也是本论文所设计的USB 安全钥中用到的关键技 术。本章将首先就身份认证和数字签名技术进行研究,并分别就RSA 和DES 密码体制提出了 身份认证协议和数字签名协议,在本章最后,结合第二章提出USB 安全钥模具体提出了适合 此模型的USB 安全钥身份认证协议和数字签名协议,并将此两种协议相结合提出了USB 安全 钥应用中的认证签名协议。 4.1 身份认证技术的研究 4.1.1 什么是身份认证 身份识别(Identification)是指用户向系统出示自己的身份证明过程。身份认证 (Authentication)是系统查核用户的身份证明的过程,实质上是查明用户是否具有他所请 求资源的存储和使用权。人们常把这两项工作(Identify Authentication)统称为身份认 证(或称身份鉴别或称身份验证),它是判明和确认通信双方真实身份的两个重要环节。 身份认证必须做到准确无二义地将对方辨认出来,同时还应该提供双向的认证,即相互 证明自己的身份。身份认证是授权控制的基础,但实现起来较困难。通常在单机状态下的身 份认证概括起来有三种:根据人的生理特征进行身份认证;根据约定的口令进行身份认证; 采用硬件设备进行身份认证。 而在网络环境下的身份认证则较为复杂,你要知道是谁在访问你的网络?规定什么人可 以在网络上做什么事情?追踪什么人在什么时候曾经做过什么事情?还要考虑到验证身份 的双方一般都是通过网络而非直接交互,像根据指纹等手段就难以实现。同时大量的黑客随 时地都可能尝试向网络渗透,截获合法用户的口令并冒名顶替以合法身份入网。所以目前一 般采用高强度的密码技术来进行身份认证。 身份认证是网络安全的重要机制之一[51]-[53]。在安全的网络通信中,涉及的通信各方必 须通过某种形式的身份验证机制来证明他们的身份,验证用户的身份与所宣称的是否一致。 在此机制下,用户使用基于Kerberos审核协议的DCE身份验证协议进行身份验证。国际上, DCE/Kerberos是事实上的工业安全标准,广泛应用于外交、军队和金融领域。PKMS用来对采 用其他网络安全形式(例如SSL等公开密钥加密技术)的Internet用户进行身份验证。即身 份认证可以使用基于DCE和Kerberos的认证技术,也可以使用基于公钥系统的SSL. (1)基于DCE/Kerberos 的认证 基于DCE/Kerberos 的身份认证是通过用户在安全服务器上登录,获得身份的证明。当 然在登录前该用户必须已经注册,同时在客户端必须运行客户端软件。DCE/Kerberos 是一 种被证明为非常安全的双向身份认证技术。DCE/Kerberos 的身份认证强调了客户机对服务 器的认证;而其他产品,只解决了服务器对客户机的认证。以自动取款机ATM 为例,客户必 须防止来自服务端的欺骗,因为如果存在欺骗,那么客户将泄漏自己的帐户信息。 (2)基于公共密钥的认证 目前在Internet 上也使用基于公共密钥的安全策略进行身份认证。具体而言,使用符 合X.509 的身份证明。使用这种方法必须有一个第三方的证明授权(CA)中心为客户签发身 份证明。客户和服务器各自从CA 获取证明,并且信任该证明授权中心。在会话和通信时首 先交换身份证明,其中包含了将各自的公钥交给对方,然后才使用对方的公钥验证对方的数 字签名、交换通信的加密密钥等。在确定是否接受对方的身份证明时,还需检查有关服务器, 以确认该证明是否有效。 针对上面提出的两种认证技术,且考虑到公开密码技术在当今的广泛应用,在下面的几 小节中主要来讲述基于公钥密码的身份认证技术。 4.1.2 基于X.509 证书的身份认证协议方案 在基于公钥密码技术的身份认证技术中,一般都是基于X.509 证书的,这个X.509 证书 是第三方(CA)提供的,一般都认为这个X.509 证书是可信的,故称这种认证技术为X.509 身份认证。 X.509 身份认证协议提供了三种认证方案:单向身份认证、双向身份认证和三向身份认 证。 1) 单向身份认证。 单向身份认证涉及消息从一个用户(A)到另一个用户(B)的单向传送,包括以下步骤,如 图4.1 所示: ① 用户B 用户A ② 图4-1 单向身份认证 Fig 4-1 Single-Line Identity Authentication ① A生成一个非重复的随机数rA,用来抗重放攻击,接着向B发送消息:A{tA,rA,B}。 其中,tA表示时间戳,一般由两个日期组成:消息的生成时间和期满时间,时间戳用来防 止信息传递的延迟及抗重放攻击。A{}表示A对{}里的信息利用A的私有密钥进行加密;B表示 消息的接收者为B。 ② B 收到消息后执行以下动作:获取A 的X.509 证书,并验证证书的有效性。 从A的证书中提取A的公开密钥,验证A的身份是否属实,同时检验消息的完整性。检查B 自己是否是消息的接收者。验证时间戳tA是否为当前时间。检查rA是否被重放(可选)。 2)双向身份认证 双向身份认证也就是对单向认证中的第二步进行了确认,包括以下步骤,如图4.2 所示: ③ ② ① 用户B 用户A ① A生成一个非重复的随机数rA,用来抗重放攻击,接着向B发送消息:A{tA,rA,B}。 图4-2 双向身份认证 Fig 4-2 Bidirectional Identity Authentication ② B 收到消息后执行以下动作: 获取A 的X.509 证书,并验证证书的有效性,接着从A 的证书中提取A 的公开密钥,验证 A 的身份,同时检验消息的完整性;检查B 自己是否是消息的接收者; 验证时间戳tA是否为当前时间;检查rA是否被重放(可选);最后B生成一个非重复的随机数 rB,作用与rA相同,并向A发送消息:B{tB,rB,A,rA}。 ③ A 收到消息后执行以下动作: 获取B的X.509 证书,并验证证书的有效性,接着从B的证书中提取B的公开密钥,验证B的 身份,同时检验消息的完整性;检查A自己是否是消息的接收者;验证时间戳tB是否为当前 时间,并检查rB是否被重放(可选)。 3)三向身份认证 三向身份认证也是对双向身份认证的一种加强,包括以下步骤,如图4.3 所示: ④ ③ ② ① 用户B 用户A 图4-3 三向身份认证 Fig 4-3 Three Time Identity Authentication ① A 生成一个非重复的随机数rA,用来抗重放攻击,并向B发送消息:A{tA,rA,B}。 ② B 收到消息后执行以下动作: 获取A的X.509 证书,并验证证书的有效性,接着从A的证书中提取A的公开密钥,验证A的 身份,同时检验消息的完整性;检查B自己是否是消息的接收者;验证时间戳tA是否为当前时 间;检查rA是否被重放(可选);最后B生成一个非重复的随机数rB,作用与rA相同并向A发送 消息:B{tB,rB,A,rA}。 ③ A 收到消息后执行以下动作: 获取B的X.509 证书,并验证证书的有效性,接着从B的证书中提取B的公开密钥,验证B的 身份,同时检验消息的完整性;检查A自己是否是消息的接收者;验证时间戳tB是否为当前时 间,并检查rB是否被重放(可选);检查接收到的rA是否与发送的rA相等;最后A向B发送消 息:A{rB,B}。 ④ B 收到消息后执行以下动作: 验证A的身份,同时检验消息的完整性;检查收到的rB是否与B所发送的rB相等。 4.1.3 一种基于RSA 的身份认证协议 上面就X.509 证书讲述了三种协议方案,可见每种协议都是对前一种协议的加强,在本 节就结合当前应用广泛的RSA 公钥密码技术以及X.509 证书,将具体提出一种基于X.509 证书的RSA 的身份认证协议,此协议是双向身份认证协议,具体如下。 在提出协议之前,首先对一些符号作一下说明:A,B分别表示两用户,CertA、CertB分 别表示A和B的X.509 证书,PKC表示CA机构公布的公开密钥,PKA、PKB、SKA、SKB分别表示A和 B的公开密钥和私有密钥,IDA、IDB分别表示A和B的标志信息。 (1) A生成一个非重复的随机数rA,并获得当前时间tA与有效时间t,再用rA、tA、t、IDB组成 明文mA; (2) 加密明文mA得到密文cA,如下: cA≡(mA)SKA(mod(nA)),其中nA为A的公钥密码系统所依赖的模; (3) A将cA发送给B,等待t时间,若B没有回信,则转(1); (4) B接收到cA后,取得A的X.509 证书; (5) B利用A的X.509 证书取得PKA,如下: PKA≡(CertA)PKc(mod(nC)),其中nC为CA机构公钥密码系统所依赖的模; (6) B利用取得的PKA来解密cA得到mA,如下: mA≡(cA)PKA(mod(nA)) (7) B从mA中取得IDB,并验证是否为发给自己的信息;接着取得rA、tA和t,验证是否消息过 期或重放,若消息不是自己的或消息过期或重放,则转(4); (8) B生成一个随机数rB,并取得时间tB,接着利用rB、tB、t、rA和IDA组成明文mB; (9) B将明文mB加密成密文cB后发送给A,如下: cB≡(mB)SKB(mod(nB)),其中nB为B的公钥系统的模; (10) A收到cB后,取得B的X.509 证书,从中取得PKB,如下: PKB≡(CertB)PKC(mod(nC)); (11) A利用PKB从cB中取得mB,如下: mB≡(cB)PKB(mod(nB)); (12) A从mB中取得IDA、rA、rB、tB和t,利用IDA检验是否自己为接收者,利用rA看是否等 于发送时的rA,可看出这是否为B对A消息的回答,接着利用rB、tB和t看是否消息是否过 期和重放,否则转(10); (13)结束; 4.2 数字签名技术的研究 4.2.1 什么是数字签名 数字签名[43]-[46]是实现消息认证的一个重要手段,它依赖的是公钥密码技术。一般 来说,一个数字签名方案由安全参数、消息空间、签名、密钥生成算法、签名算法和验证算 法等成分构成。 数字签名的定义在数字签名技术出现之前,曾经出现过一种“数字化签名”技术,简单地 说就是在手写板上签名,然后将图像传输到电子文档中。然而,这种“数字化签名”可以被剪 切,然后粘贴到任意文档上,这样就使得非法复制变得非常容易,所以这种签名的方式是不安 全的。数字签名技术与数字化签名技术是两种截然不同的安全技术,数字签名与用户的姓名 和手写签名形式毫无关系,它实际使用了信息发送者的私有密钥变换所需传输的信息。对于 不同的文档信息,发送者的数字签名并不相同。没有私有密钥,任何人都无法完成非法复制。 从这个意义上来说[47]-[48],“数字签名”是通过一个HASH函数对要传送的报文进行处理得到的, 用以认证报文来源并核实报文是否发生变化的一个字母数字串。 数字签名可以解决否认、伪造、篡改及冒充等问题。它可实现:发送者事后不能否认发 送的报文签名、接收者能够核实发送者发送的报文签名、接收者不能伪造发送者的报文签名、 接收者不能对发送者的报文进行部分篡改、网络中的某一用户不能冒充另一用户作为发送者 或接收者。 数字签名的目的是:(1)使收方能够确证发方的签名,但不能伪造;(2)发方发出签了 名的消息给收方后,就不能否认它所签发的消息;(3)一旦收发双方就消息的内容和来源发 生争执时,应能给仲裁者提供发方对所发消息签了名的数据。 数字签名的原理如下: 1) 发送文件采用某种算法(如:哈希算法)对原始报文进行运算,得到一个固定长度的数字 串,称为报文摘要(MessageDigest),不同的报文所得到的报文摘要各异,但对于相同的 报文的报文摘要却是唯一的。 2) 发送方生成报文的报文摘要,用自己的私钥对摘要进行加密来形成发送方的数字签名。 3) 这个数字签名将作为报文的附件和报文一起发送给接收方。 4) 接收方首先从接收到的原始报文中用同样的算法计算出新的报文摘要,再用发送方的公 钥对报文附件的数字签名进行解密,比较两个报文摘要,如果值相同,接收方就能确认该 数字签名是发送方的。 4.2.2 几种基本的数字签名方式 由于数字签名技术现在被广泛应用,故数字签名的算法很多,应用最为广泛的三种 是:HASH 签名、DES 签名和RSA 签名。 1) HASH 签名 HASH 签名不属于强计算密集型算法,应用较广泛。它可以降低服务器资源的消耗,减轻 中央服务器的负荷。HASH 的主要局限是接收方必须持有用户密钥的副本以检验签名,因为双 方都知道生成签名的密钥,较容易攻破,存在伪造签名的可能。 2) DES 签名 数据加密标准DES 是由IBM 公司研制,并于1977 年被美国定为联邦信息标准,DES 被公 认为世界上第一个实用的密码算法标准。它的出现适应了电子化和信息化的要求,是一种加/ 解密标准,适合于硬件实现,因此它的算法被制成专门的芯片,应用于加密机中。DES 采用了 私钥算法,是一种单钥加密体制,这种体制的加密密钥和解密密钥相同或者本质上等同。DES 对64 位二进制数据加密,产生64 位密文数据。使用的密钥为64 位,实际密钥长度为56 位(有 8 位用于奇偶校验)。解密时的过程和加密时相似,但密钥的顺序正好相反。DES 的保密性仅 取决于对密钥的保密,而算法是公开的。DES 的保密性仅取决于对密钥的保密,由于位数太 短,64 位的DES 比较容易地被软件和硬件破解,但DES 内部的复杂的算法结构是值得采用的。 因此,现在已经有了改良的128 位(112 位有效)、192 位(168 位有效)、256 位的DES 出现。 3) RSA签名[49] 1978 年出现了著名的RSA 算法。它通常是先生成一对RSA 密钥,其中之一是保密密钥, 由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提高保密强 度,RSA 密钥至少为500 位长,一般推荐使用1024 位。这就使加密的计算量很大。为减少计 算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改 进的DES 对话密钥加密,然后使用RSA 密钥加密对话密钥和信息摘要。对方收到信息后,用不 同的密钥解密并可核对信息摘要。RSA 采用了公钥算法,不存在HASH 的局限性。RSA 是最流 行的一种加密标准,是利用素因数分解的困难性的高级算法,RSA 算法的加密密钥和加密算 法分开,使得密钥分配更为方便。它特别符合计算机网络环境。对于网上的大量用户,可以将 加密密钥用电话簿的方式印出。如果某用户想与另一用户进行保密通信,只需从公钥簿上查 出对方的加密密钥,用它对所传送的信息加密发出即可。对方收到信息后,用仅为自己所知的 解密密钥将信息脱密,了解报文的内容。由此可看出,RSA 算法解决了大量网络用户密钥管理 的难题。与DES 不同,RSA 既可以用来加密数据,也可以用于身份认证。和HASH 签名相比,在 公钥系统中,由于生成签名的密钥只存储于用户的计算机中,安全系数大一些。RSA 并不能替 代DES,它们的优缺点正好互补。RSA 的密钥很长,加密速度慢,而采用DES,正好弥补了RSA 的缺点。即DES 用于明文加密,RSA 用于DES 密钥的加密。由于DES 加密速度快,适合加密较 长的报文;而RSA 可解决DES 密钥分配的问题。美国的保密增强邮件(PEM)就是采用了RSA 和DES 结合的方法,目前已成为E-MAIL 保密通信标准。 4.2.3 基于3DES 的RSA 的数字签名方案的提出 由上几种常用的数字签名方式,可以看出各自有自己的优缺点,考虑到数字签名的安全、 加密速度以及对资源的要求,在本节就结合HASH 函数、3DES 和RSA 提出一种数字签名方案, 下面就对数字签名的要考虑的主要部分:报文摘要的生成、明文的加密和加密明文的密钥的 传输以及身份的确认,来利用HASH 函数、3DES 和RSA 进行解决,具体如下: (1) 报文摘要的生成 报文摘要就是利用特殊的单向函数,计算明文消息所得到的值。一般报文摘要具有下列 属性: ①对于特定的报文摘要,计算上不可能算出产生这个值的原消息; ②计算上不可能找出两个取得相同消息摘要值的明文消息; 报文摘要生成中主要是单向函数的构造,在这可利用3DES 构造一个HASH 函数,然后 利用此HASH 函数来生成报文摘要,此HASH 函数的构造图和方法如下: 3DES 3DES 3DES m1 m2 图4-4 HASH 函数构造图 Fig 4-4 Structure of HASH Function k HASH(m) mn S1.k1←k,i←1; S2.ki+1←3DESki(mi),i←i+1; S3.若i≤n则转S2,否则HASH(m) ←kn。 其中m为明文,k为3DES的密钥,为128 比特,mi表示明文m的128 比特的明文块,HASH(m) 表示生成的报文摘要。 由上可知,m 的每一位的变化都将引起HASH(m)的剧烈变化,而且由HASH(m)不可能恢 复m,故此HASH 函数生成的报文摘要是完全符合数字签名要求的。 (2) 明文的加密 由于私有密码实现加密的速度比公钥密码实现加密的速度要快上上千倍,在这就可用 3DES 来实现对明文m 的加密,而且3DES 的密钥是128 位的,故对利用3DES 加密产生的密 文几乎是不可破的,具有非常高的安全性。 (3) 3DES 密钥的传输以及对发送者和接收者身份的确认 利用对称密码对明文进行了加密后,最重要的就是加密密钥的传输问题。由于用公钥密 码可以解决这种密钥的传输问题,故可用RSA 来实现3DES 密钥的传输。而且可以利用发送 方的RSA 私有密钥和接收方的RSA 公开密码来实现对发送者和接收者身份的确认,只有具有 接收方的RSA 私有密钥的用户才可获得3DES 的加密密钥,也只有拥有发送方RSA 的私有密 钥的用户对3DES 的密钥加密后,接收方才能用发送方的RSA 公开密钥解密得到3DES 的密钥。 其实现如下图4.5: 在上图中,k表示3DES的加密密钥,SKA表示发送方的RSA私有密码,PKB表示接收方的RSA 公开密码。 上述三点构造了数字签名的骨架部分,利用搭造的基于3DES 的RSA 数字签名骨架,可 知其简单的数字签名方案为:首先利用HASH 函数对明文生成报文摘要;然后利用3DES 对明 文进行加密,生成密文;再接着利用RSA 公钥密码,用发送方的私有密码加密报文摘要以及 3DES 密钥,用接收方的公开密钥再对上加密后的报文摘要和3DES 密钥进行二次加密;最后 发送方将利用3DES 加密的密文以及进行了二次加密的数据发送给接收方。 RSA RSA 图4-5 RSA 实现密钥传输 Fig 4-5 Transmission of Key With RSA SKA PKB K 4.2.4 基于3DES 的RSA 数字签名协议 此基于3DES 的RSA 数字签名协议也是基于X.509 证书的,在此协议的介绍中,一些符 号的意义同上,且3DES 的加密密钥定义为k,此协议的具体如下: (1) 发送方A 利用3DES 对明文m 进行加密得密文c,如下: c=3DESk(m) (2) A 利用上面构造的HASH 函数对明文m 生成报文摘要s,如下: S=HASHk(m) (3) A利用自己的私有密钥将k和s加密得到k1和s2,如下: k1≡(k)SKA(mod(nA)),s2≡(s)SKA(mod(nA)) (4) A 获得接收方B 的X.509 证书,然后解密得到B 的公开密钥,如下: PKB≡(CertB)PKC(mod(nC)) (5) A利用B的公开密码加密k1和s1得到k2和s2,如下: k2≡(k1)PKB(mod(nB)),s2≡(s1)PKB(mod(nB)) (6) A将(c,k2,s2)发送给B; (7) B接收到(c,k2,s2)后,利用自已的私有密钥解密,如下: k1≡(k2)SKB(mod(nB)),s1≡(s2)SKB(mod(nB)) (8) B 获得A 的X.509 证书,然后解密得到A 的公开密钥,如下: PKA≡(CertA)PKC(mod(nC)) (9) B解密k1和s1得到k和s,如下: k≡(k1)PKA(mod(nA)),s≡(s1)PKA(mod(nA)) (10)B 利用k 和3DES 算法计算出明文m,如下: m=3DESk−1 (C) (11)B 利用m 和k 以及HASH 函数产生报文摘要s′,如下: s′=HASHk(m) (12)B 检验s 与s′是否相等,若相等则消息没被修改,否则消息被修改了; (13)结束; 4.3 USB 安全钥中的签名认证协议 在第二章中就提出了USB 安全钥系统模型,在此模型中要实现对身份的认证,以及对信 息的安全传输,也就是信息的数字签名,以下几小节将重点研究USB 安全钥系统中的签名认 证协议。 在开始USB 安全钥中的签名认证协议研究之前,除了上面定义的一些符号外,还要对另 一些符号进行定义:KeyID 为USB 安全钥的标识符,UN 为用户名,UP 为用户密码。 4.3.1 USB 安全钥中的认证协议 USB 安全钥系统模型中,考虑到只有合法的USB 安全钥用户才可以拥有利用此USB 安全 钥进行安全通信以及对用户在服务中心注册信息的更改,故在实现这些功能之前要实现服务 中心对USB 安全钥及其合法用户的身份认证,只有拥有合法身份,服务中心才允许用户使用 USB 安全钥进行安全信息通信,才允许用户对注册信息进行更改。 结合上面提出的基于RSA 的身份认证协议,以及USB 安全钥本身具有的特点,下面根据 如下的USB 身份认证模型图提出USB 安全钥中的身份认证协议,如下: PC USB 安全钥A 服务中心 图4-6 USB 身份认证模型 Fig 4-6 Identity Authentication Model of USB (1) 用户A 插入USB 安全钥A 到PC 的USB 接口上,并输入UN 和UP,若要修改用户名和密码 则应再输入更改后的用户名和密码UN′和UP′,否则自动默认UN′=UN 和UP′=UP; (2) USB安全钥A生成随机数rA,并取得tA和t,并将自身的KeyID以及UN、UP、UN′、UP′、rA、 tA、t组成明文mA; (3) 将mA加密得密文cA,并将cA发往服务中心,如下: cA≡(mA)SKA(mod(nA)) 发完cA后t时间内若没有收到答复则重发消息; (4) 服务中心接收到cA后,获得A的X.509 证书,解密此证书得PKA,如下: PKA≡(CertA)PKC(mod(nC)) (5) 服务中心将cA解密得到mA,如下: mA≡(cA)PKA(mod(nA)) (6)服务中心从mA中取得tA和t检验此信息是否有效,否则放弃此消息; (7)通过KeyID、UN 以及UP 检测此用户是否为合法用户; (8)通过比较UN 与UN′,UP 与UP′看是否用户想更改用户名和密码,若不相同,则通过更 改服务中心的数据库来更改此用户的用户名和密码分别为UN′和UP′; (9)服务中心生成随机数rKDC,并用rKDC和rA一起构成明文信息mKDC,然后用USB安全钥的公开密 钥加密mKDC,得到cKDC,并将cKDC发给USB安全钥A,如下: cKDC≡(mKDC)PKA(mod(nA)) (10)USB安全钥A取得cKDC后,解密cKDC得到mKDC,如下: mKDC≡(cKDC)SKA(mod(nA)) (11)USB安全钥比较获得的rA和发送的rA,若相同则表示服务中心认证了USB安全钥A的身份, 并且对用户名和密码进行了更改,USB安全钥A获得使用此安全钥进行安全通信的权限; (12)结束。 4.3.2 USB 安全钥中的数字签名协议 PC PC USB 安全钥A USB 安全钥B 图4-7 USB 安全钥数字签名模型 Fig 4-7 Digital Signature Model of USB Security Key USB 安全钥中的数字签名协议和上面提出的基于3DES 的RSA 数字签名协议基本上一致, 只是所有的加密解密功能都是在USB 安全钥中实现的,下面仅仅提出其数字签名模型图4.7, 如上。 在上面的模型中,PC 只是作为一个中间媒介,负责对信息的发送和接收,而所有的加 密和解密所实现的数字签名操作都在USB 安全钥中完成。每个USB 安全钥都有对应的RSA 加密解密功能、3DES 加密解密功能以及实现生成报文摘要的功能。值得注意的是,在数字 签名实现信息的安全传输时,双方的通信其实是对称的,故在上面提出的协议只是单向实现 了数字签名。 4.3.3 USB 安全钥系统中的签名认证协议 USB 安全钥的主要是针对当前的网络不安全因素而提出的,从上面提出的USB 安全钥的 身份认证和数字签名协议可以看出,它们各自只是在身份或消息的传输方面实现了安全保密 性,综合总的USB 安全钥用途,可以将身份认证和数字签名结合起来实现网络上用户之间的 安全交流,其USB 安全钥中的身份认证和数字签名相结合的模型图如下图4.8。 USB 安全钥的签名认证协议就是基于以下模型提出的,此协议主要是将单独的USB 的身 份认证协议和数字签名协议相结合起来,利用身份认证来实现服务中心对USB 安全钥的使用 人的认证,认证后才允许持有此USB 安全钥的用户来使用它进行网上的信息的安全传输,也 就是利用数字签名来实现信息的安全传输。值得注意的是,在用户A 和B 使用安全钥之前, 双方都要进行身份认证,以取得合法使用各自的USB 安全钥的权限。由于USB 安全钥的身份 认证和数字签名协议已经提出,故在本小节就不作重复。 PC USB 安全钥A PC 服务中心 USB 安全钥B 图4-8 USB 安全钥签名认证模型 Fig 4-8 Signature and Authentication Model of USB Security Key 4.4 小 结 身份认证和数字签名技术是USB 安全钥中用到的关键技术,USB 安全钥利用此两种技术 就可广泛适应各种网络安全应用的需要,不仅可对用户的身份进行认证,而且可以对要传输 的信息可进行数字签名,保证信息在网络中的安全传输。考虑到身份认证和数字签名在USB 安全钥设计中的重要作用,在本章,就主要做了以下工作来对USB 安全钥中的身份认证和数 字签名进行研究: (1) 对身份认证技术进行了研究,并结合当前的公钥密码体制,提出了一种基于X.509 的RSA 身份认证协议; (2) 对数字签名技术进行了研究,讲到了当前应用广泛的几种数字签名技术,最后结合这几 种技术,提出了一种3DES 和RSA 相结合的基于混合密码体制的数字签名协议; (3) 结合USB 安全钥,以及第二章提出的USB 安全钥模型,分别描绘了实现身份认证和数字 签名的USB 安全钥模型,并结合各自的模型,实现了USB 安全钥中的身份认证协议和数 字签名协议,最后将身份认证和数字签名技术相结合提出了一种USB 安全钥签名认证模 型和协议。 5.USB 安全钥芯片的设计与实现 本章在第二章系统总体方案设计的基础上,介绍了USB 技术背景、发展趋势和当前流行 的片上系统(SOC)的设计方法和设计工具。然后从设计方法、设计手段以及软硬件设计与 实现方面对USB 安全钥芯片进行了详细分析。最后从布线、编译、测试等方面来实现了USB 安全钥芯片。 5.1 USB 技术背景与发展趋势 5.1.1 USB 技术背景及研究意义 计算机技术与通信技术始终相对独立的发展,而计算机技术与通信技术相结合的技术 将成为下一代应用品的基础,因此计算机数据与通信数据在两种环境下的交换需要一种通用 而低成本的连接方式。 随着计算机硬件的飞速发展,外围设备日益增多,键盘、鼠标、调制解调器、打印机、 扫描仪早为人所共知,数码相机、MP3 随身听接踵而至,而由于端口限制使得电话机、传真 机等外设与计算机直接的信息传递无法充分进行。如果对于每一种外设都提供一个专用的接 口,不但会极大提高计算机的成本,而且也不利于计算机用户的方便使用。而且目前X86 个人电脑的外接规格十分混乱,每个周边外设都单独与电脑连接,电脑很容易出现“纠结” 现象。除了线路紊乱与安装模糊混淆外,连接线路都必须在开机前安装妥当才可以正常使用, 不支持热插拔,无法即插即用,这些都是计算机外围设备接口的弊端。 制造商和用户在旧的外围设备连接体制上已经发现了许多缺点,作为一种新的解决方 案应该克服这些现存的缺点,而且要求能够提供进一步的发展和扩充空间。在这样的情况下 USB 技术应运而生。 USB 是Universal Serial Bus 的英文缩写,即通用串行总线接口。它为以上问题提供 了一种解决途径,是一种新的外围设备连接技术,它为个人电脑与其外围设备之间的连接提 供了一种标准化、单一化的接口。其主要的特征是高速、双向、同步、低成本、可动态连接, 并且可以与当今乃至将来的计算机平台兼容。是对计算机体系结构的一种工业标准扩展,在 具体的实现上具有以下特征: ● 实现一个便于任何计算机外围设备的简单连接器类型; ● 提供把很多外围设备连接到同一个连接器的能力; ● 自动检测和配置外围设备; 自动配置功能对于满足终端用户的需求非常关键,实现即插即用,不需要通过开 关的设置和手工跳线来配置设备,当新的外围设备连接到计算机上时,不需要安装新的 软件。热插拔,当新的外围设备被连接到计算机上时,系统能够自动检测到它,并为该 设备安装相应的软件,使该设备能够被访问到; ● 提供可升级/扩展的空间,支持外围设备的更新换代: 提供支持使电话功能集成进个人电脑变得更容易。对于新的智能外围设备提供充 分的灵活性,如家族自动化、数字音频、电话、压缩视盘等; ●较低成本实现系统和外围设备的连接; ●支持旧的硬件和软件:能够和旧的外围设备进行通信的应用程序在新的外围设备上也 能正常工作,新旧外围设备能够协同工作; ●资源占用与低功率实现: USB 接口不再使用IRQ 的中断控制以及输入输出的地址位资源,而是依靠开机后操作 系统分配给设备一个逻辑位置来做数据传输,USB 接口有自己的保留中断,不会争夺其它周 边的有限资源。为保证电源电压在传输中不被消耗过多,在USB 规格中规定设备接线不超过 5 公尺,USB 设备被设计为3.3v—5v 之间的低耗电(高耗电设备都设计为带外接电源)。 USB 的众多优势将会它的应用越来越广泛,越来越多的控制芯片、开发工具、操作系 统支持USB 接口,USB 已成为外围设备的最新标准接口。一些业界人士预测,未来的PC 将 是一个密封设备,所有外设都将通过USB 或其他外部接口连接。 5.1.2 USB 技术发展过程与趋势 USB 规范的前身是ACCESS.bus 规范,由Philips 与数字设备公司(Digital Equipment Corporation)所制定而成公开的标准。ACCESS.bus 则是由I2C synchronics serial bus 发 展而来。 现在开发的接口,通常是由一群有共同利益的公司或组织所联合开发。USB 技术就是 由Compaq\Digtial\IBM\Intel\Microsoft\NEC 以及Northern telecom 七家公司共同开发 的,这一技术将最终解决对串行设备和并行设备如何与计算机相连的争论,从而大大地简化 计算机与外设的连接过程。 USB 最初的公开版本是1994 年11 月发布的USB0.7,之后不断更新.USB1.0 发表于1996 年1 月。目前广泛使用的是1998 年9 月发布的USB1.1,修订了1.0 版本的问题,并且新增 了一个新的传输类型(中断输出)。USB1.1 是目前推的在支持USB 的计算机与外设上普遍采 用的标准.该版本支持两种数据传输速率:12 MB/S 与1.5MB/S。高速率USB 接口(12MB/S), 与标准的串行端口相比,大约快出100 倍,与标准的并行端口相比,也快出近10 倍。多设备 连接每一个端口,最多可在一个计算机上同时支持127 种设备。支持即插即用,还可在不关 闭电源的情况下进行热插拔。内置电源供给USB 电源能向低压设备提供5 伏的电源,新的设 备不需要专门的交流电源.在Windows 98 操作系统的支持\驱动程序和应用软件的开发的规 范开发\主板硬件的支持下,USB 硬件设备已经开始大量进入市场。 个人电脑的性能不断提高,可以处理更越来越大量的数据,同时外围设备功能与性能 也大大提高,在计算机与外围设备之间需要交换更多、更快的数据。USB1.X 已经成为个人 电脑标准的数据通讯配置,生产商、用户和个人电脑OEM 商人,都采用了这个接口。但USB 设备的速度仍无法令人满意。USB2.0 的研制便是基于此种背景。 随着计算机性能的不断提高,计算机可以处理越来越大量的数据,同时计算机外围设 备的功能与速度也在不断增强。随之而来的需求便是希望USB 可处理更快的数据传输速度, 目前最新版本的USB2.0 可以支持三个级别数据传输率:480MB/S\12MB\SGN 1.5MB\S。对于 诸如数码相机这样的设备,需要与计算机有高性能的连接方式,高速的USB 尤为适用。目前 该版本USB 控制器也已投入市场,但因高速率外设的尚未普及导致该版本的USB 控制器在国 内也仍未被广泛使用,对于一些相对低速度的设备USB1.1 仍有相当的市场。但是,随着时 代的发展,更灵活\通用性更好的USB 接口无疑是发展的趋势。 由于USB 系统较为复杂,并且USB 各版本之间可以很好的向下兼容,同时USB 控制器 内部功能可重用,因此本论文作为初期设计实现,拟对USB1.1 系统规范进行研究并设计实 现1.1 版本的USB 控制器。更高的版本可以在此基础扩展。以下章节,除特殊说明外,皆为 USB1.1 版本。 5.2 片上系统(SOC)的技术与发展(soc5) SoC(System on a Chip)被我国专业研究的学者译为片上系统,是指以嵌入式系统为核心, 集软、硬件于一体,并追求产品系统最大包容的集成芯片,是目前嵌入式应用领域的热门话题. 电子产品设计工程师、微电子设计工程师、计算机专业人士等都在讨论与研究。SoC 又可以 译为“系统集成芯片”,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系 统并有嵌入软件的全部内容;SoC 也可以译为“系统芯片集成”,意指它是一种技术,用以实 现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程. 5.2.1 片上系统的设计方法 在SOC 设计中功能组装正在逐渐代替功能设计,成为主流的设计方法。在传统的设计 方法中,无论是HDL 还是原图设计,重点都在于设计新的电路来实现系统功能。现在,集成 电路中包含了各种IP 模块如微处理器、DSP、存储器等,对于这些电路,人们关注的焦点是 应该选择哪些功能块、功能模块如何使用、如何进行软硬件的功能划分、如进行模块互联、 如何进行系统验证等。因而,以功能组装以设计复用为基础的方法更能适应SOC 的设计需要。 SOC 设计方法与传统设计方法之间有4 个主要的区别:第一,对系统设计阶段的要求 更严格,软硬件开发人员必须起深入分析软硬件的功能划分,合理选择IP 模块并仔细安各 个设计阶段的接口;第二,以SOC 为中心的嵌入式软件设计;第三,多层次的验证方法:充 分利用设计前期阶段的真技术,进行软硬件并行设计与验证,将分析调试工作对期设计验证 的依赖程度降到最低;第四,由于IP 模块、EDA 工具或者模型技术还处于不断改进的阶段, 通过专业厂商的咨询服务来弥补工具和设计经验等方面的不足。 系统开发的第一步就是系统分析。在这一阶段需要分析统需求,探讨可能的体系结构, 并最终确定软硬件的功能分配。体系结构方面的考虑主要包括:确定芯片内部的总线构、系 统平台、测试与调试结构、IP 模块的选择。这个过程的结果就是形成一组设计规格。规格 的一部分成为软件开发的指导文档,另一部分定义了硬件需要实现的功能。系统设计阶段的 工作由体系结构设计工程师、软件和硬件设计人员完成。 在当前的设计环境中,许多系统构件要么由已有的IP 模块组成,要么由它们衍生而来。 选择IP 模块的一个重要因素是IP 与目标系统的配合程度。目前的大多数情况是设计人员在 获得了IP 模块后必须进行修改,修改的范围包括各个设计层次上的IP 模型。为了尽可能少 修改IP 模块,可在相对某个系统来说不太重要的功能上作出妥协,如牺牲一点芯片面积或 者是功耗或者是延时,以便直接使用一些功能模块。如果目标系统中含有可以编程的IP 模 块,就必须考虑嵌入式软件的设计,在SOC 领域,软件开发必须与硬件同步进行。利用面向 SOC 的嵌入式软件开发工具,可以在设计的早期阶段进行软件开发与验证。如功能验证、建 立原型环境、基于测试与调试结构的硬件原型开发等。 5.2.2 片上系统的设计技术 设计片上系统的工作是一项艰巨的任务。需要利用已验证的、可重复使用和可重复综 合的IP 模块。如何使用过去自行设计或第三方的IP 模块以及如何对系统级进行验证,在片 上系统的设计技术中都是十分关键的。 IP模块不同于传统意义上的单元库,它是指具有很高知识含量、规模更大并被系统设 计者认可的具有知识产权的功能单元块。根据设计层次的不同,IP模块分为软核、硬核和固 核3 种[84]。 (1)利用HDL 语言描述并能够被完全综合的称为IP 软核。SOC 设计者可以将其重新布局 布线,方便地重复使用于各种不同的工艺技术上,也可以根据不同的应用加以修改,以实现 所需要的电路系统设计。但是,软核的时序不能准确预测,增加了系统设计后测试的难度。 (2)由IP 提供者完成的芯片版图设计的IP 模块称为IP 硬核。它与硅工艺、时序等紧 密联系,并对芯片密度、速度和功率等进行了最优化设计。硬核的设计与工艺已完成而不能 修改,用户得到的仅是产品功能而不是产品设计。常用的硬核有存储器、模拟器件和总线器 件等。不能对硬核进行任何改动,而只能当成一个完整的库单元来处理。 (3)固核是一种介于软核和硬核之间的IP。固核模块IP 通常以门级网表的形式提供, 可根据用户的要求做部分修改。如一些模拟电路和射频电路等。但是固核的知识产权不易保 护,因此缺乏固核的提供商。 IP复用技术[79]-[82],即重复使用已经设计并验证过的集成电路模块IC,是提高片上系统 设计效率,缩短设计周期的一个关键。预计在未来几年内,50%以上的片上系统设计要不同 程度地以可复用IP的内核为基础。 复用IP 模块分为复用自行设计的IP 模块和复用第三方提供的IP 模块两种情况。可复 用的IP 设计与其他工程设计问题没有本质不同随着集成度的提高,测试在集成电路设计中 所占的比重越来越大,已经成为制约设计周期缩短的主要障碍。对于片上系统来说,由于需 要测试的矢量太多,仅采用早期的扫描技术完成SOC 的测试任务变得越来越困难,而且十分 耗时。现在SOC 设计者开始广泛关注可测性设计(DFT)和内置自检技术(BIST),并在设计 的初期就考虑测试的问题,以便得到最优的DFT/BIST 策略。设计人员利用VHDL 或Verilog 自行编写测试代码,然后借助于EDA 工具来完成大量的DFT/BIST 任务。在进行测试时,要 充分考虑可能出现的各种问题,同时结合全扫描、部分扫描和边界扫描技术以便于获得较高 的故障覆盖率。 对于仿真的IP 模块,可在更高的抽象层次用C 或C++进行行为级仿真,然后通过与 系统级仿真环境的接口连接到整个仿真平台。 5.3 USB 安全钥芯片的设计方法与实现手段 目前,SOC 设计所关注的不再是某个新功能的设计实现,而是如何去评估、验证和集成 多个已经存在的软硬件模块。SOC 的设计方法将以组装为基础,形成自己的鲜明特色,包括 更深入的系统设计、软硬件并行设计与验证、在设计流程的所有层次上进行验证以及合理利 用外界的设计咨询服务等。 本文拟采用已有的第三方提供的IP 模块和自己开发IP 模块相结合的方式和自顶向下 (Top-Down)的设计方法来完成USB 安全钥芯片的设计,基于所选IP 模块与目标系统的配 合程度和实用程度的考虑,本文将所选择的IP 模块进行个别修改,修改的范围包括各个设 计层次上的IP 模型,以使所设计系统的规模和性能达到最佳。但大规模对成熟的IP 模块修 改又会造成开发周期过长和修改后IP 模块的不稳定性,因此,本文将在相对某个系统来说 不太重要的功能上作出妥协,如牺牲一点芯片面积或者是功耗或者是延时,以便直接使用一 些功能模块。 5.3.1 设计方法 考虑当前片上系统设计方法的优缺点,本论文采用自顶向下(Top-Down)的设计方法。 自顶向下(Top-Down)方法整体考虑了片上系统(SOC)芯片软、硬件系统设计的要求。把 系统需求、处理机制、芯片体系结构、各层次电路及器件、算法模型、软件结构、协同验证 等紧密结合起来,从而用极少几个IP 模块完成整个芯片的功能,其设计流程如图5.1 所示, 分为以下几个主要步骤: (1) 系统总体方案设计:芯片系统功能、指标定义、需求分析、产品市场定位,软/硬件划 分、指标分解等整体方案论证; (2) 软、硬件方案设计:确定软、硬件体系结构,模块功能的详细描述及技术指标要求, 时序及接口定义等工作; (3) 模块设计开发:完成硬件模块的开发,行为及时序仿真测试,底层硬件驱动程序编写, 算法设计及仿真,协议和应用软件的设计与开发。对于复杂的功能模块,可进一步划分成子 模块。在算法仿真时,根据系统指标的要求划分出信号处理硬件加速模块; (4) 软、硬件协同仿真测试:主要测试系统方案和软、硬件模块设计功能的正确性; (5) 样机平台的测试:主要是自建或专用的验证平台,测试整个设计的功能、性能指标是 否达到要求。 硬件方案、模块划分 软件分层结构、模块划分 模块1 模块2 模块n 硬件驱动程序算法设计、仿真 协议、应用软件 软、硬件协同仿真、验证 基于功能样机平台的验证 图5-1 自顶向下设计流程图 Fig 5-1 Flow of From Top To Bottom Design 系统总体方案设计 Top-Down 设计过程体现了层次化及目标化的系统设计思想。在SOC 芯片设计时具有如 下的优点: (1) 整体考虑了SOC 芯片中软件及硬件设计。SOC 芯片通常内嵌了MCU 和DSP 处理器,软件 包含了硬件驱动、算法、协议、应用程序、实时操作系统等。在设计工作中软件占有相当大 的比例,软件的难度和工作量随芯片复杂度的增加而进一步提高; (2) 采用软、硬件协同设计,使软、硬件开发、测试工作并行进行; (3) 有利于知识产权核(IP Cores)的采用和可重用IP 模块成果的产生; (4) 更加完善的测试、验证手段,由于ASIC 的集成度、复杂度不断增加和投片费用较高, 芯片功能和性能测试以及验证在SOC 开发工作中起着越来越重要的作用; (5) 增加了对流片厂家选择的灵活性,符合当今芯片设计中,系统及前端设计与后端工作无 关性的准则。 综上所述,采用Top-Down 方法设计SOC 芯片,可充分保证芯片功能和性能技术指标达 到设计要求,有利于缩短开发周期,降低开发成本及产品的单片价格。 5.3.2 实现手段 按照Top-Down方法,当我们确定了系统总体方案设计和软、硬件方案设计,我们就应该 着手IP模块的设计开发[83]。在选择IP核时,一个好的IP核应该符合以下特点:可移植和可综 合;灵活和易参数化;易于集成;针对工艺可进行调整;适应与设计环境。否则选用的IP 将不能和外界的其他模块和电路很好配合,这时如果设计人员仍希望能很好地利用它们,就 必须对这些IP进行修改,这个过程可能会使设计的工作量大到无法承受的程度。因此如何选 择一个良好的IP模块是SOC设计面临的第一个问题。 另外,SOC 的设计往往会包含处理器模块,从而使其更加复杂。如果包含多个处理器构 成并行处理系统的话,复杂程度还会进一步增加。这时,这些处理器之类的强大功能和高速运 算将使得集成后的模块验证非常复杂。此外,当SOC 采用处理器之类的可编程IP 模块后,嵌 入式软件的设计也被集成到了SOC 的设计流程中,这就使得SOC 的设计需要软件面临的第二 个问题。 从以上叙述可以看出,为了解决SOC设计中遇到的难题,将SOC推向更广泛的使用,设计方 法必须革命。为此, Altera公司提出了基本FPGA[87]的SOC设计方案——“片上可编程系统 (Systems-on-a-ProgrammableChip,SOPC)”, 配合该公司开发的最新EDA设计工具Quartus Ⅱ,复杂SOC系统的设计问题可以很好地解决。 本文拟采用高层设计(HLD,High Level Design)技术。HLD 技术的方法就是把系统的行 为(Behavior)和功能(Function)用硬件描述语言(HDL,Hardware Description Language) 描述出来,在完成功能仿真(Function Simulation)后,交给综合工具去综合出相应的实际 电路,再由布局布线(Placing And Routing)工具将电路映射到集成电路中去,最后完成系 统设计。高层次设计与综合技术已不仅仅是实现IC 及ASIC 的设计方法,而且成为电子系统 的设计与实现方法,为系统的集成提供了可靠的设计与实现手段。用VHDL 对系统进行描述, 使用ALDEC 公司的ACTIVE-HDL 软件进行高层的前后仿真,使用Synplicity 公司的综合软件 Synplify 进行综合优化,使用Altera 公司的后续软件QuartusⅡ完成布局布线。 对于系统芯片的最终实现选择著名的可编程逻辑器件生产厂家美国Altera 公司大力倡 导基于PLD 的SOC(SOPC)设计方案,采用FPGA 的嵌入式处理器解决方案,它将可编程逻辑与 处理器的能力结合到了一起。在基于IP 模块技术的基础上,遵从VHDL 描述---系统仿真--- 系统综合---FPGA 实 |