(通信与信息系统专业论文)商用加密芯片预研.pdf_第1页
(通信与信息系统专业论文)商用加密芯片预研.pdf_第2页
(通信与信息系统专业论文)商用加密芯片预研.pdf_第3页
(通信与信息系统专业论文)商用加密芯片预研.pdf_第4页
(通信与信息系统专业论文)商用加密芯片预研.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 现代信息安全理论以密码算法、协议的研究为核心,在与各种威胁信息安全 的手段斗争过程中,得到不断地提高。信息安全技术作为信息安全理论在现实生 活中的实践,具有多样性和独特性。 在本课题中,作者的主要工作成果如下: 1 基于混合加密系统的应用思想,完成了商用加密芯片的硬件和安全方案的设 计,并搭建了一个基于该芯片u s b 接口方式的加密系统。 2 提出了面向功能的芯片设计思想,使芯片既能满足功能需求,又减少了芯片内 的程序量,同时提高了芯片的灵活性和兼容性。 3 完成了e m 7 8 p 4 4 7 单片机内核的修改方案,对其功能进行扩展。 4 该商用加密芯片具有u s b 接口和f i f o 接口两种工作模式,因此设计了在两 种接口模式下的两套安全机制。 5 设计了一个基于公钥体制的对等实体交互认证和密钥协商协议,是利用加密芯 片和p k 卡协作完成的。 6 使用e m 7 8 p 4 4 7 单片机汇编语言实现了u s b 接口的固件驱动程序和读写i c 卡的1 2 c 总线程序,并使用c 语言实现了a e s 算法。 关键词:加密芯片u s b n 9 6 0 3f i f o智能卡 a b s t r a c t m o d e m t h e o r yo f i n f o r m a t i o ns e c u r i t yi sc o n c e n t r a t e do n t h ec r y p t o g r a ma l g o r i t h m a n dp r o t o c 0 1 d u r i n gt h ep r o c e s so fc o n t e n d i n gw i t hv a r i o u sm e n a c e s ,i th a sg a i n e d g r e a ti m p r o v e m e n t a st h er e a l i z a t i o no ft h e o r yo fi n f o r m a t i o ns e c u r i t y i np r a c t i c a l w o r l d ,t h et e c h n o l o g y o fi n f o r m a t i o n s e c u r i t y h a sc h a r a c t e r i s t i co f v a r i e t y a n d u n i q u e n e s s t h em a i nw o r ki nt h i st h e s i si sa sf o l l o w s : 2 3 4 5 6 t h ed e s i g n so ft h eh a r d w a r ea n ds e c u r i t ys c h e m eo ft h ec o m m e r c i a lc r y p t o g r a m a s i ch a v e b e e na c c o m p l i s h e db a s e do nh y b r i dc r y p t o s y s t e m a ni n t e g r a t e d c r y p t o s y s t e m h a sb e e nb u i l du po nt h ew o r k i n gm o d e lw i t ht h ei n t e r f a c eo f u s b t h ea m o u n t o f p r o g r a m i na s i ci sd e c r e a s e do nt h eb a s i so f f u n c t i o nm o d e l s t h ek e m e lo f m c ue m 7 8 p 4 4 7h a sb e e nm o d i f i e di no r d e rt oe x p a n di t sf u n c t i o n s t w os e c u r i t ys c h e m e sh a v eb e e np u tf o r w a r dw h e nt h ea s i cw o r k so nt w o d i f f e r e n tw o r k i n gm o d e l st h r o u g hu s b o rf i f o , a u t h e n t i c a t i o na n dk e ya g r e e m e n tp r o t o c o lb e t w e e nt w oe q u a l i t ye n t i t i e s a r e b r o u g h t f o r w a r dw h i c ha r eb a s e do n p u b l i ck e ys y s t e m i t i sr e a l i z e db y c r y p t o g r a m a s i ca n dp kc a r dt o g e t h e r t h ed r i v e ro fu s bf i r ma n dp r o g r a mo f1 2 cb u sf o rr e a d i n ga n dw r i t i n gi cc a r da r e r e a l i z e db ya s s e m b l el a n g u a g eo fe m 7 8 p 4 4 7m c u a n dt h ep r o g r a mo fa e s a l g o r i t h mi sr e a l i z e db y c l a n g u a g e k e y w o r d :c r y p t o g r a m a s i cu s b n 9 6 0 3f i f os m a r tc a r d 创新性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若不实之处 本人签名: 彝趣墨 本人承担一切相关责任。 日期 ? 柙川 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生 在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕业 离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。学 校有权保留送交论文的复印件,允许查阅和借阅论文:学校可以公布论文中的全 部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。( 保密的论 文在解密后遵守此规定) 本人签名: 导师签名: 日期 日期 第一章绪论 第一章绪论 信息安全与保密技术是个古老的话题,密码学最早被应用于战争中。从古 罗马的恺撒( c a e s a r ) 密码体制到二次世界大战的多种密码体制,都体现了作 为信息安全的核心技术密码学的重要性。现代密码学的应用领域已经不仅 仅限于军事和政治领域,它已经渗透到社会的各个领域,如电子商务、电子政 务、版权保护、个人隐私保护等。美国相继提出d e s ( d a t ae n c r y p t i o ns t a n d a r d ) 和a e s ( a d v a n c e de n c r y p t i o ns t a n d a r d ) ,以满足个人和企业对秘密保护的需 求。 1 1 信息安全受到的威胁 在各种环境下,尤其是分布式网络环境下,非法用户可以采用多种手段对 系统进行攻击【1 】1 2 】【3 】【4 1 。 1 窃取口令:通过在线侦听截获、离线猜测、字典攻击等手段,获得合 法用户身份的口令,并冒充该用户获得其无权访问的资源。 2 流量分析:对通信双方交换的信息进行分析,获得一些不需要完全恢 复消息就可以得到的信息,如金融系统的交易量,敌方军事系统的工 作状态等信息。 3 重放攻击:截获信息,然后转发,这是一种常用的主动攻击方法,使 得在不被通信双方觉察的情况下,截获他们的通信信息,并冒充其中 一方与另一方通信。 4 篡改:截获消息后,用另一个消息或篡改后的消息,发送给接收者, 或者冒充通信的一方与另一方通信。 5 拒绝服务:通过大量的请求操作,导致网络无法正常运行,阻止经过 授权的用户无法访问系统资源。 6 渗透:滥用某参与方的权限,以运行敌意的或恶意的程序。 1 2 信息安全理论与技术的发展 信息论的提出者c l a u ds h a n n o n 在1 9 4 9 发表的论文“c o m m u n i c a t i o n t h e o r yo fs e c r e c ys y s t e m ”【5 】中提出了保密通信系统的理论。 “完善保密” ( p e r f e c ts e c r e c y ) 的系统需要满足:在密文被敌人截获后,这个密文所代表 商用加密芯片预研 的消息的后验概率与被截获前的先验概率是相同的,即日( 埘) = h ( m ir ) ,m 表 示明文,f 表示密文。也就是说,敌手截获密文对其猜测明文消息毫无帮助。 在这种理想系统中,当消息是有限时,需要至少有等数量的密钥:如果消息是 以一定的信息速率月产生的,则密钥也必须至少以同样的速率生成。 理论上,这种一次一密的概率密码的理想系统是存在的,而在日常实践中, 我们讨论加密系统的安全性是采用相对的观点,用当前可利用资源和攻击带来 的收益与付出的代价之间的关系来衡量一个保密系统的安全性。 加密系统的实现方式是千姿百态的。影响系统安全性的不仅仅是算法的安 全性,还会涉及到很多非数学理论上的问题。所以,我们需要尽可能地预计我 们设计的加密系统可能遇到的攻击。我们设计的加密系统的应用方式也是不尽 相同的。可以自己组成一个单一功能的加密产品,还可以经过二次开发,作为 一个提供加密功能的子功能模块嵌入到大的应用系统中。 当前,在商用加密产品中,使用最为广泛的是智能卡( s m a r t c a r d ) 或叫c p u 卡,通称为i c 卡1 6 j ( i n t e g r a t e dc i r c u i tc a r d ) 。这种i c 卡集成了丰富的资源, 具有较强的运算和存储能力,在信息安全领域得到了广泛的应用,比如手机 s i m 卡、各种金融卡等,他们的多样性适用于不同的应用场合。 a t m e l 公司最近推出了一款高效加密的智能芯片a t 9 1 s c 3 2 1 r c ,这款 芯片有着极强的加密功能,可应用在政府和各种商业场合。这款芯片可以代替 以往多芯片组成的昂贵系统,同时,可以更快的加密文件。这款芯片不仅能制 成智能卡片,而且可以应用在嵌入式系统中。由于包含了3 2 位的a r m 内核, 再加上集成了数据加密引擎和高速的u s b 接口,a t 9 1 s c 3 2 1 r c 中的高速d e s 加密引擎算法速度能达到2 m b y t e s s 。同时,芯片上集成的不对称加密引擎支 持2 0 4 8 位的公钥密码体系,i s o7 8 1 6 接口也集成在了芯片中。这种加密芯片 不仅仅制成智能卡模块,由于其强大的加密能力,这种芯片还主要作为加密模 块嵌入到诸如机顶盒、售货终端、v p n 等应用系统中。 我们所做的商用加密芯片的预研,首先要明确使用的场合,使用方式,确 定系统应该具有的必要资源和需要达到的性能指标。 1 3 商用加密芯片研究的方向与目的 我们所要开发的商用加密芯片的主要用途有:一个是可以作为计算机加密 的外设,保护计算机上的文件;另一个用途是嵌入到别的应用系统中,为其它 存储介质( 如r o m ) 中的少量数据实现安全存储。 要对计算机上的文件进行加密,需要较高速度的数据传输接口,计算机低 第一章绪论3 速外设的标准接口有u s b ( u n i v e r s a ls e r i a lb u s ) ,这种接口运行u s b i 1 版本, 最高能达到1 5 m b y t e s s 的传输速率,基本能承担从计算机到加密芯片的数据 传输任务【7 】【引。而如果将芯片作为一个嵌入加密模块,需要它与应用系统的主 c p u 之间有可靠的数据命令交换接口。所以,这两种不同的用途决定了加密 芯片至少需要两种数据接口。 我们知道,加密算法一般运算量较大,要求其实现速度要满足大批量的数 据加密的要求。硬件实现加密算法是一种切实可行的方法,而且利用硬件实现 具有更高的安全性能。 在实际应用中,会涉及用户之间交换加密文件的需求,这就要求加密芯片 应该具有会话密钥的交换功能,或提供基本的底层子功能,供二次开发,来实 现复杂的密钥管理系统和分发协议。 在用户与芯片之间,用户与服务器之间,用户与用户之间都需要有多种单 向或交互的认证,从而保证信息来源的可信赖性( c r e d i t ) 、完整性( i n t e g r a l i t y ) 、 不可抵赖性( n o n r e p u d i a t i o n ) ,并对系统资源进行访问控制( a c c e s s c o n t r 0 1 ) 。 这些身份认证过程我们可以描述成各种身份认证协议。通过分析典型的协议, 我们可以看到,以下几种功能可以组合成多种多样的身份认证协议:单钥加密 算法、公钥加密算法、h a s h 函数、随机数发生器、网络时钟同步( 分布式网 络) 、口令比较器等。 单钥加密算法具有高速的特性,可以用作大批量数据流的加密。而公钥算 法可以在会话密钥分发或交换的过程中起重要作用。不仅如此,辅以h a s h 函 数的公钥算法在身份认证和信息认证( 数字签名) 中也发挥主导作用。 强随机数发生器可以提供密码特性较好的伪随机序列,可以作为密钥种子 的发生装置,经过变换,可以得到适合使用的密钥,另一方面,在交互认证协 议实现中,可以提供“新鲜的”信息,防止身份认证中的重放攻击,在分布式 网络条件下,与网络时钟同步一起保证分布式网络身份认证的安全可靠。而口 令比较器这种传统而实用的p i n 身份认证加上防止“穷举法口令攻击”的功 能,可有效地阻止非法用户对加密芯片的攻击。 一个加密芯片将以上的大部分功能集成进去,通过一个集成单片机和固化 在其中的c o s ( c h i po p e r a t i o ns y s t e m ) ,除了获得一些基本的功能之外,还具 有自己的特性。它不仅可以完成那种多芯片搭建的系统的加密功能,还有其他 优点。 首先,它具有同等数量级的加密性能,高速的加密算法实现模块使得加密 芯片具有毫不逊色的加密速度,并且,经过集成封装,其运算的中间结果难以 截获,对密码分析设置了一道天然屏障,这是集成的优良特性之一。 其次,由于经过功能的集成,可以实现加密设备的小型化,低功耗。由于 商用加密芯片预研 其具有u s b 接口,可以方便地实现与计算机的高速连接。加上从计算机获得 电源,可以降低设备的复杂性。 第三,加密芯片内部集成了多种数据命令接口,可以灵活地嵌入到其他 应用系统中。 另外,我们还有一个需要考虑的问题。信息安全理论与技术包括一些相互 矛盾的问题:一方面,用户之间的通信需要私有化。合法用户之间需要保护他 们的隐私和秘密,而另一方面,这些秘密通信要受到法律的监控,在法律许可 ( 授权) 的情况下,受托人可以获得通信双方的秘密信息或解开用户加密的存 储文件,这就是受争议的密钥托管问题。这种功能也应该在设计芯片时考虑进 去。当然,实现该功能的方式可以由上层协议实现,但没有底层实现来得更加 高效可靠。 1 4 本文主要内容 项目中主要工作有:芯片的功能的总体设计,芯片中单片机内核的改造, 芯片的硬件电路的设计,芯片内部的c o s 的软件的设计和实现,u s b 固件驱 动程序实现。文章正文的章节安排如下: 第二章基础知识:根据所需的安全服务,介绍了需要采用的安全机制, 对于加密芯片涉及的一些密码学基本知识进行叙述和分析。 第三章加密芯片的系统组成设计:主要针对系统功能,增加所需的硬件 资源,进行相应的硬件电路设计。 第四章加密系统的软件设计:依据i c 的系统安全机制的概念,对密码机 的安全方案进行系统分析设计,论述了分组加密算法的两种工作方式、系统的 身份认证过程和协议实现、密钥管理和恢复、重要数据的安全存储。 第五章结束语:对全文进行概要的总结,并对以后研究方向提出一些自 己的想法。 第二章基础知识5 第二章基础知识 绪论中论述了来自各方面信息安全的威胁,在实际的安全系统中,还需要对 实际可能受到的威胁进行风险评估,然后采用相应的安全策略,利用现有的资源 给被保护对象以恰当地保护,也就是说,实现加密系统的“相对”安全。 本章内容: 1 针对各种信息安全的威胁,给出信息安全系统提供的信息安全服务和相应采用 的信息安全机制。 2 详细介绍信息安全机制设计技术 3 介绍实际系统中,对不同的被保护对象采用相应的保护方式。 2 1 安全服务 安全系统可能提供的安全服务有以下几种: 9 1 认证确保参与方的身份及数据来源真实可靠: 访问控制确保只有通过授权的用户才能访问受保护的资源; 数据机密性确保只有经过授权的参与方才能恢复受保护的数据( 又称隐私 性) : 数据完整性确保数据没有被未授权的用户改动; 不可否认性确保参与方无法否认自己对数据的特定操作( 如授权、发送、 接收等) 。 这些安全服务是通过与之相对应的安全机制来实现的。比如数据机密性是通 过加密机制实现的,不可否认性是通过数据签名机制实现的,诸如此类。 2 2 安全机制 为了实现上文的安全服务,可以采用以下安全机制来实现,这些安全机制可 以单独使用,也可以相互结合使用:加密机制、数字签名机制、访问控制机制、 数据完整性机制、认证交换机制、流量填充机制、路由控制机制和公证机制等。 2 2 1 加密机制 在加密机制中,必然涉及的问题是加密算游在用于实际系统中,不同的应 商用加密芯片预研 用系统,同样的加密算法保护的对象也是不同的。 一、加密算法 加密算法主要可以分成对称加密体制和非对称加密体制两种。对称加密体制 又可以分成序列密码和分组密码。分组密码是对一个大的明文数据块进行分块加 密的操作。序列密码是将明文划分成字符( 如单个字母) ,或其编码的基本单元( 如 0 ,1 数字) ,字符分别与密钥流作用进行加密,解密时以同步产生的同样密钥流实 现。 在对称密码系统中,加密与解密是平等的,而且很容易从一个推导出另一个, 如果待加密的消息( 明文) 用m 表示,而加密后的消息( 密文) 用c 表示,密钥 用足表示,则对称的加密变换e 及解密变换d 的表示如下: e r ( m ) 。c d f ( c ) 2 m 加密与解密使用相同的密钥,该密钥叫秘密密钥,秘密密钥要么通过安全通 道( 如密封的信封) 传输,要么必须以加密的方式传输。可以使用公钥加密体制 来实现对称密钥的传输。 二、数据加密标准( d e s ) 数据加密标准( d e s ) 是由m m 公司和美国n i s t ( 国家标准技术研究所) 于 1 9 7 6 年联合开发的,随后被指定为联邦信息处理标准【1 0 1 。 d e s 是一种分组加密算法,它对6 4 比特数据块进行加密,如果待加密数据更 长的话,则将其划分成6 4 比特的数据块,最后一个数据块很可能比6 4 比特更短, 在这种情况下,通常用0 将最后一个数据块填满( 填充) 。d e s 加密的结果仍然是 6 4 比特的数据块,密钥长度为5 6 比特,并包括8 比特的校验位。加密和解密使用 相同的算法,但是子密钥编排顺序相反。 d e s 中使用的最重要的密码技术是混淆和扩散,两种技术的历史都比d e s 要 长,但是在d e s 中它们得到完美的结合,从而能抵抗密码学家们长达2 0 多年的分 析,至今仍不能被完全攻破。 混淆的目的就是使明文与密文之间的关系模糊。替换是常用的混淆的技术, 然而如果仅仅使用替换技术对英文段落进行加密的话( 例如字母k 替换字母a ) , 则分析者可以通过比较明文中字母出现的频率而判斯出字母之间的替换对应关 系,这是因为英文中字母出现的频率是已知的。在d e s 中,替换并不是针对字母 进行,而是针对比特串进行的。d e s 有8 个不同替换表,叫做s 盒,每个s 盒将 6 比特的输入映射成4 比特的输出,s 盒是一个4 行1 6 列的表。尽管替换本身是 不够强大的安全技术,但s 盒对于d e s 的安全仍然是重要的,s 盒是非线性的, 对其进行分析是十分困难的。d e s 加密运算采用1 6 轮的迭代运算,每轮是一个 第二章基础知识 7 f e i s t e l 网络结构。 三、高级加密标准( a e s ) 高级加密标准( a e s ) 的设计目标是找到d e s 的替代算法。通过三轮评估, 最后从1 5 个候选算法中确定r i j n d a e l 为a e s 算法f l l 】【1 2 】【1 3 1 。 a e s 的评估准则分为三个主要类别:1 ) 安全性,2 ) 代价,3 ) 算法盒实现特 性。安全性是评估中的重要因素,包括以下几个重点,算法对抗密码分析的强度、 稳固的数学基础、算法提出的随机性、与其它候选算法比较的相对安全性:代价 是评估的第二个重要方面,包括许可要求、在各种平台上的计算效率( 速度) 和 内存空间的需求:第三个评估要求是算法的实现特性。例如:灵活性、硬件和软 件适应性、算法的简单性。 图2 1r i j n d a e l 算法1 2 8 位明文和1 2 8 位密钥加密流程图 a e s 算法的分组长度是1 2 8 比特,密钥长度是可变的:1 2 8 、1 9 2 、2 5 6 比特。 它的许多运算都是按照字节定义的,用字节表示有限域g f ( 2 8 ) 中的元素。这种 运算是利用模一个8 次不可约多项式r e ( x ) = 苫8 + 工4 + 工3 + x + 1 ( 十六进制“1 1 b ”) 略去加法进位。其它变换是按照4 字节的方式定义的。具体的加密流程图如图2 1 所示。 轮变换中,字节替换的s 盒是可逆的,是由两个变换合成构造出来的。首先, 字节用自己的乘法逆代替,然后经过一个仿射变换。 在行位移变换中,状态的第一行保持不变。后3 行以不同的位移值循环右移, 军莘 商用加密芯片预研 右移量与分组长度有关。 在列混淆变换中,把状态中的每- n 与一个固定多项式c 相乘,然后模多项 式x 4 + 1 ,其中c 0 ) = 0 3 x 3 + 0 1 x 2 + 0 1 卅0 2 。 轮密钥加是将轮密钥简单的与状态比特异或。轮密钥是通过加密密钥扩展后 得到的。 四、公钥加密体制 公钥密码学的出现成功地解决了对称密码系统中的密钥管理问题。在公钥密 码系统中,加密密钥与解密密钥完全不同,使得从其中一个密钥推出另一个密钥 在实现上是非常困难的。其中一个密钥称为私钥,必须保密,而另一个密钥称为 公钥,是公开的【1 引。 公钥加密变换e 。及解密变换d ? r k 表示为; e p “( m ) = c d e , x ( c ) 2d e r x ( e 脒( m ) ) = m 具有代表性的算法有背包算法、r s a 算法、e i g a m a l 算法、r a b i n 算法、椭圆曲 线算法等。下面对本系统采用的r s a 算法进行描述。 r s a 密码体制是由r o n a l dr i v e s t ,a d is h a m i r 及l e o n a r d a d l e m a n 于1 9 7 8 年 合作开发的。是世界上迄今为止使用最为广泛的公钥密码体制【1 6 1 。目前r s a 被广 泛应用于各种安全或认证领域。它的安全性是基于大数分解的难问题。 r s a 密码体制描述如下: 首先,明文空间p = 密文空间c = - z n a 密钥的生成 选择p 、q ,p 、g 为互异素数计算n 印+ g ,须厅) = ( p - 1 ) ( g - 1 ) ,选择整数e 使 ( ( p ( h ) ,e ) = l ,1 e ( p ( n ) ,计算吐使d = e 1 ( r o o d 牛( 疗) ) ,公钥p k = e ,h ) ;私钥s k = - a , v ,q ) 。 b 加密( 用e ,月) 明文:m n 密文:c = m 。( r o o d n ) 。 c 解密( 用以p ,q ) 密文:c 明文m = c 。( m o d g ) 有m 9 = 1 + 幻对其两边周乘m = - c 有 第二章基础知识 9 有m 。“= m + 印g = m + k e n 于是 有m “i m ( m o d n ) 实现的步骤如下:( b o b 为实现者) ( 1 ) b o b 寻找出两个大素数p 和g : ( 2 ) b o b 计算出一i p + q 和妒( n ) = ( p - 1 ) ( g - 1 ) : ( 3 ) b o b 选择一个随机数p ( 0 勺 中( ) ) 满足( p ,币( n ) ) = 1 ; ( 4 ) b o b 使用辗转相除法 7 1 计算出p 。( m o d 平( 珂) ) : ( 5 ) b o b 在目录中公开n 和e 作为她的公开钥。 密码分析者攻击r s a 体制的关键点在于如何分解大整数n 。若分解成功使 n = p + q ,则可以算出妒( n ) = ( p 1 ) ( g 一1 ) ,然后由公开的e ,解出秘密的d 。 2 2 2 数据完整性机制 数据完整性是使消息的接收者能够验证消息在传送过程中没有被修改,入侵 者不可能用假消息代替合法消息。在发送文件的同时,生成一个文件的摘要,接 收者收到文件时,也作相同的运算,与发送来的文件的摘要比较,可以知道文件 是否被篡改。生成这种文件指纹的方法就是使用单向散列函数( o n e - w a yh a s h f u n c t i o n ) ,也称为:压缩函数、摘要算法、信息完整性校验m i c ( m e s s a g ei n t e g r i t y c h e c k ) 等。它是密码系统中不可或缺的功能模块,在本系统中也多次用到。 散列函数就是把可变输入长度串( 叫做预映射) 转换成固定长度输出串( 叫 做散列值) 的一种函数。简单的散列函数就是对预映射的处理,并且返回由所有 输入字节异或组成的一字节。单向散列函数是在一个方向上工作的散列函数,从 预映射的值很容易计算其散列值,但要使其散列值等于一个特殊值却很难。好的 散列函数也是无碰撞的( c o l l i s i o n - f r e e ) :难于找到两个预映射的值,使他们的散 列值相同。散列函数是公开的,对处理过程不用保密。其安全性是它的单向性, 预映射的值单个位的改变,将引起散列值中一半位的改变。 在本系统中,主要用m d 5 算法【i s l 1 9 】。m d 5 以5 1 2 位分组来处理输入文本, 每一分组又划分为1 6 个3 2 位长的子分组。算法的输出由四个3 2 位分组组成,将 它们级联形成一个1 2 8 位散列值。 首先,填充消息使其长度恰好为一个比5 1 2 的倍数仅小6 4 位的数。填充方法 是附一个i 在消息后面,再接所要求的多个0 ,然后在其后附上6 4 位的消息长度 ( 填充前) 。这两步的作用是使消息长度恰好是5 1 2 位的整数倍,同时确保不同的 消息在填充后不相同。四个3 2 位变量初始化为: 商用加密芯片预研 爿= o x 0 1 2 3 4 5 6 7 b = 0 x 8 9 a b c d e f c = 0 x f e d c b a 9 8 d = 0 x 7 6 5 4 3 2 1 0 它们称为链接变量( c h a i n i n g v a r i a b l e ) 。 接着进行算法的主循环,循环的次数是消息中5 1 2 位消息分组的数目。 将上面四个变量复制到另外的变量中:一到口,b 到6 ,c 到c ,d 到d 。 主循环有四轮( 如图2 2 ) ,每轮很相似。每一轮进行1 6 次操作。每次操作对 。,b ,c 和d 中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变 量,文本的一个子分组和一个常数。再将所得结果循环右移一个不定的数,并加 上a ,b ,c 或d 中之一。最后用该结果取代口,6 ,c 或d 中之一。 图2 2 m d 5 主循环 以下是每次操作中用到的四个非线性函数: f ( x ,y ,z ) = ( x y ) v ( ( 叫) 八z ) g ( x ,y ,z ) = ( x z ) v ( 】,八( 吃) ) n ( x ,y ,z ) = x o y 审z ,( 义,y ,z ) = y e ( zv ( z ) ) 图2 3 中蝎表示消息的第_ ,个字分组,“( s ”表示循环移位s 位。常数f 为在第f 步中, 是2 ”a b s ( s i n ( i ) ) 的整数部分,f 的单位是弧度。 图2 3 m d 5 一个执行过程 在所有这些完成之后,将a ,b ,c ,d 分别加上口,b ,c ,d ,然后用下分 组数据继续进行运算,最后的输出是彳,b ,c 和d 的级联。 第二章基础知识 2 2 3 认证交换机制 认证机制包括用户合法身份认证和消息认证。这两个方面有相关之处,采用 的认证协议有共同之处,某些时候两者可以融合在同一过程中完成。当然,还是 存在差别的。 身份认证大体有三种方式:传统的通行字( 口令) 验证的方法,基于单钥算 法的身份认证【1 】【2 0 】,基于公钥体制的身份验证【2 ”。前两种主要还是利用参与认证 的双方共享一个秘密,后一种是基于公钥基础设施( p k i ) 的认证方法。 a ) 传统的口令认证是当前运用的非常广泛的身份认证方法,结合智能卡技 术,系统首先判断智能卡的合法性,然后由智能卡鉴别用户身份,若用户 身份合法,再将智能卡中的随机数送给a s 作迸一步认证,而最安全的方 式是采用一次口令机制,即每次用户登录系统时口令互不相同。 b ) 基于单钥体制认证方案算法比较简单,认证方案计算复杂度较低,易于实 现,与系统中的单钥模块可共用一个算法模块,但认证双方必须共享一个 秘密密钥。而在公钥体制的认证方案中,通常是用被验证者自己的私钥对 验证者所发的随机数进行签名,验证者通过用被验证者公钥进行验证,就 可以完成身份的验证。公钥体制可以在事先不共享任何秘密的情况下,实 现安全认证。但公钥算法计算量较大,而且需要建立一个公钥基础设施, 需要第三方c a 间接参与,用户的私钥也需要安全存储。 c ) 在同等实体的相互认证时,通常与会话密钥交换协议相结合,在身份认证 的同时,也可完成两者的会话密钥的建立或交换。对s c h n o r r 身份认证体 制修改,可以在身份认证的同时,完成密钥交换。它的安全性在于求离散 对数的难问题基础上的。基于公钥体制的验证方案也可以在交换会话密钥 的过程中,完成身份验证。 对消息的验证,一般是借助于公钥体制的数字签名来实现的。发送者对自己 所发送的消息生成指纹文件,用自己的签名私钥签名,接收者可以通过发送者的 签名公钥验证文件。利用公钥体制,可以实现信息完整性验证、身份验证、防抵 赖等多种功能。 2 3 密码系统保护对象 安全系统就像一个戒备森严的城堡,或者可以描述为一只由很多木板拼接起 来的水桶,或者是一根链条,它的安全性取决于它最薄弱的地方,安全系统的每 一件东西都必须安全:加密算法、协议、密钥管理、设备管理、人员管理等各方 商用加密芯片预研 面。所以在设计一个安全系统时需要考虑的问题根本是密码学的问题,同时也 需要考虑实际应用环境。 安全加密对象可以是一个通信信道,也可以是本地的数据文件。对于通信信 道的加密可以放在开放系统互联o s i ( o p e ns y s t e mi n t e r c o n n e c t ) 通信模型的任何 层进行。事实上,加密一般在最底层( 第一或第二层) 或较高层。如果在最底层 就成为链一链加密( l i n k b y l i n ke n c r y p t i o n ) ,通过特定数据连接的任何数据都要 被加密;如果发生在较高的层就成为端一端加密( e n d t o e n de n c r y p t i o n ) ,数据被 选择性地加密,并且只在最后的接收端进行解密。 最容易加密的地方是在物理层,它将通信线路上的所有信息进行加密,包括 数据、路由信息、协议信息等,这种加密非常有效,因为任何东西都被加密,密 码分析者得不到任何关于消息结构的信息。缺点是,所在系统的各节点都必须具 有加解密功能,系统实现起来较复杂,基本建立在一个专有网络的基础之上或者 是小范围的网络,否则其开支是很大的。 端到端加密,是将加密设备放在网络层和传输层之闷,加密设备必须根据低 三层的协议理解数据,并且只加密传输层的数据单元,这种方式运用的较为广泛。 在传输层进行加密,需要使加密算法逶合网络的协议。每一个通信协议都有自己 的特点,通信协议接口也并不是完全确定的,这给开发会造成较大的困难。还可 以在通信系统的高层进行加密,它可以独立于网络所用的通信结构运行。它的最 大缺点是允许流量分析( t r a f f i c a n a l y s i s ) ,密钥管理系统复杂。 对于本地文件的加密,主要是对计算机硬盘驱动嚣进行加密。这种加密分为 两种等级:文件级和驱动器级。文件级加密是指每一个文件被单独加密。驱动器 加密是为用户建立一个逻辑扇区,用户的秘密信息都存放在这个逻辑扇区中,其 加解密操作对用户是透明的。而对于未授权用户,该扇区是不可见的,当然更是 无法访问的。本地文件的存储在上层软件实现时。根据需要与操作系统的文件结 构相结合,对于w i n d o w s 9 5 9 8 操作系统可以通过挂接文件钩子v x d 截获所有与 文件i o 操作有关的系统调用。对于w i | l d o w s n t 和基于n t 内核的w i n d o w s 2 0 0 0 x p 操作系统( w i i l d o w s2 0 0 0 是n t 5 0 ,w i n d o w sx p 是n t 5 1 ) 来说,就要 通过开发文件系统过滤驱动程序来实现。 2 4 混合密码系统 公开密钥算法的提出,开创了密码学的新篇章。解决了单钥体制中的密钥分 发和管理的问题。 在现实世界中,公开密钥算法与对称密码算法相辅相成,发挥各自的特点: 第二章基础知识 1 对称密码算法加密速度快,而公开密钥算法一般要慢一千倍,所以对诸如文件 这些大数据量的加密,直接使用对称密码算法是合适的。 2 公开密钥密码系统对选择明文攻击是脆弱的。如果c = e ,当尸是n 个可 能明文集中的一个明文,那么攻击者只需要加密所有胛个可能的明文,并能与 c 比较结果( 因为加密密钥是公开的) 。用这种方法,他不能恢复解密密钥, 但他能够确定p 。 实际系统采用公开密钥密码用来保护和分发会话密钥( s e s s i o nk e y ) 。这些会 话密钥用在对称算法中,对通信消息进行保密,称这种系统为混合密码系统( h y b r i d c r y p t o s y s t e m ) 。 1 b o b 将他的公开密钥发给a l i c e 。 2 a l i c e 产生随机会话密钥足,用b o b 的公开密钥加密,并把加密的密钥e s ( k ) 送给b o b 3 b o b 用他的私人密钥解密a l i c e 的消息,恢复出回话密钥:d 。( 岛( k ) ) = k 。 4 他们两人用统一会话密钥对他们的通信消息进行加密。 把公开密钥密码用于密钥分配解决了很重要的密钥管理问题。对对称密码而 言,数据加密密钥直到使用时才起作用。如果e v e 得到了密钥,那么她就能够用 解密这个密钥加密的消息。在前面的协议中,当需要对通信加密时,才产生会话 密钥,不再需要时就销毁,这极大的减少了会话密钥遭到攻击的风险。当然,私 人密钥面对泄露是脆弱的,但风险较小,因为只有每次对通信的会话密钥加密时 才用它。 2 5 密钥恢复和托管问题 密钥恢复问题是指当加密设备丢失或损坏情况下能够恢复加密文件或加密密 钥。对于混合密码加密系统中,重点是恢复用户的公开密钥对。可以通过密钥对 的备份来防止意外情况。就像我们将自己家里的钥匙放在你信任的人手里保管备 份一样。 密钥托管【2 2 i 【2 3 】【2 4 】【2 5 】是美国政府的c i i p p e r 计划和它的托管加密标准( e s c r o w e d e n c r y p t i o ns t a n d a r d ) 的核心,主要用在其加密电话的加密芯片中。每个加密芯片 有一个唯一i d 号和秘密密钥,密钥被分成两部分,并与i d 号一起由两个不同的 托管机构存储。芯片每次加密数据文件,它首先用唯一的秘密密钥加密会话密钥, 然后通过信道发送加密的会话密钥和它的i d 号。当一些法律执行机构要解密用这 些芯片中的一个加密的消息序列时,他监听i d 号,从托管机构收集适当的密钥, 把它们异或起来,解密会话密钥,然后使用会话密钥解密消息序列。为了防止欺 商用加密芯片预研 诈,其托管密钥的格式是不公开的,并且是可以防欺诈的。 我们开发自己的商用密码系统,用户用它保护自己的隐私但同时又要允许经 过法律授权的机构对其能够进行监听。密码产品有两种管理方式,一种是集中式, 一种为分布式,这两种方式下密钥托管是有所不同的1 2 6 j 。 在集中式管理中,比如一个公司职员用加密设备加密公司的文件,他需要将 他的公开密钥对的私钥在公司密码管理人员处提交备份,私钥采用分拆形式存储, 而分布式管理的密钥托管就要复杂的多。 用户加密个人文件,密钥托管面临一个可接受度的问题,但这有时也是必要 的。在国内,对政府机构的密码管理一般采用集中式的管理方式,管理比较容易。 个人使用加密产品通信有时会存在社会问题,一些非法组织之间的通信有的采用 p g p 加密软件,使得执法机构无法对其监控。 2 6 小结 本章主要介绍了密码学的基本知识,并对本文用到的密码技术进行较详细地 阐述。论述了加密系统安全体制的概念,对加密算法、数据完整性、加密算法使 用、密钥恢复和托管有较详细介绍。如何合理地运用这些密码理论知识,是文章 后面部分的主要工作。 第三章系统组成设计 第三章系统组成设计 加密芯片的主要应用:一是采用u s b 接1 :3 与计算机通信,能对计算机文 件或磁盘数据进行加解密和安全传输:二是采用内部的8 位f i f o 与外部应用 系统的c p u 、单片机或d s p 相连,进行数据交换,对应用系统的程序进行加 密存储,并配合系统完成多种身份认证功能。另外,芯片必须具有良好的兼容 特性,能否将其功能方便地嵌入到其他应用软件和硬件系统中是决定芯片价值 所在的一个非常重要的因素。 本章主要内容: 1 基于混合加密系统的思想,完成了商用加密芯片的硬件设计,并搭建了一 个基于该芯片u s b 接口方式的加密系统。 2 提出了面向功能的芯片设计思想,使芯片既能满足功能需求,又减少了芯 片内的程序量,同时提高了芯片的灵活性和兼容性。 3 完成了e m 7 8 p 4 4 7 单片机内核的修改方案,对其功能进行了必要地扩展。 3 1 对密码机及芯片功能的需求 加密芯片是组成密码机的一个重要的功能模块,其功能设计是与密码机实 现的功能紧密相关的。要对芯片进行合理地功能设计,需要结合密码机功能的 分析和综合各方面的需求来确定其必须具有的功能模块,继而提出完整可行的 硬件系统方案【2 ”。 根据上文提到的密码机和加密芯片的应用方向,密码机应该具有的功能 是:利用单钥算法对数据流进行加密,利用公钥算法来交换“会话密钥”,实 现“基于公钥算法的身份认证协议”,“数字签名”功能,以及“私钥恢复”功 能。 在这样的密码机中,芯片应具有的功能模块:两种可选择的数据命令接 口模块、分组算法模块、与p k 卡的接口等。 利用外挂的一块p k 卡( p u b l i ck e yc a r d ,公钥卡或智能卡) ,完成密码机 的r s a 公钥算法模块、随机数生成器、p i n 验证模块、数据安全存储模块【2 8 】。 3 2 系统硬件组成的要求 根据前一部分提出的加密芯片的功能模块,我们的硬件设计要满足这些功 商用加密芯片预研 能要求。设计实际硬件电路时,使用一个单片机e m 7 8 p 4 4 7 内核作为整个系 统的控制单元,负责控制各种数据接口、加密模块,执行通信控制和流程控制 的工作。而算法单元是需要快速的运算能力,显然单片机是无法承担这项工作, 进而,我们在单片机外围增加了相应的资源和接口,而对于这些必须资源的访 问,单片机有着特殊要求,归纳起来有以下几点: 1 该单片机要具有外部数据扩展功能,即需要有可扩展的地址线,数据 线。外部扩展的数据r a m 、f i f o 、u s b 接口、f p g a 的f i f o 都是通 过扩展总线访问的。 2 1 2 c 接口,是提供给e e p r o m 的总线接口,用于存储较大量的数据或 程序。 3 与p k 卡连接的串口。单片机通过该串口与p k 卡交换指令数据,其 通信协议遵循i s 0 7 8 1 6 标准。 4 两个外部中断,一个提供给f p g a ,一个给u s b f i f o 。后一个中断是 u s b 与f i f o 接口共用的,两者通过一个选通线进行选择,一块芯片只 有一个接口有效。 5 一块具有微电保护的数据r a m ,保存一些重要数据,在攻击者解剖芯 片对j 这些数据将会丢失,不被敌手获取。 采用什么样的方式将这些功能模块有机的连接起来呢? 加密芯片在加密机中。其应用场合不同时,接入其他加密机系统或其他应 用系统( 如v p n ,a t m 等) 的方式是不尽相同的。我们把利用u s b 接口与计 算机连接通信的加密芯片工作模式称为芯片主模式

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论