(计算机软件与理论专业论文)rsa密码硬件实现方法研究.pdf_第1页
(计算机软件与理论专业论文)rsa密码硬件实现方法研究.pdf_第2页
(计算机软件与理论专业论文)rsa密码硬件实现方法研究.pdf_第3页
(计算机软件与理论专业论文)rsa密码硬件实现方法研究.pdf_第4页
(计算机软件与理论专业论文)rsa密码硬件实现方法研究.pdf_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

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

文档简介

青岛科技人学研究生学位论文 r s a 密码硬件实现方法研究 摘要 本课题源自青岛市科技局发展计划项目可移动高性能电脑加密机的研究与 设计,本文主要研究并实现可移动高性能电脑加密机的核心部件一r s a 密码芯片 的硬件实现。 本文根据项目要求,对r s a 密码算法进行了深入的研究与分析,深入探讨了 r s a 密码算法的两大核心运算一模幂运算和模乘运算,经过广泛查阅文献资料比较 分析之后,本文采用基2 的蒙哥马利算法与从左到右的密钥扫描相结合的方法来 实现r s a 算法。基于此种算法,讨论并分析了硬件实现环境全定制逻辑、现场可 编程逻辑( f p g a ) 、专用集成电路( a s i c ) 、片上系统( s o p c ) 的可行性,结合实际情 况与具体要求,本文采用的是基于f p g a 的可编程逻辑环境来实现r s a 密码算法。 基于以上方案,本论文提出了一系列的基于r s a 算法的硬件电路的设计方法,包 括r s a 算法的整体系统结构设计与子模块的电路设计,并根据具体的硬件实现环 境,解决了r s a 算法中复杂运算的硬件实现问题。设计实现了一款基于f p g a 的 1 0 2 4 位r s a 密码芯片,并进行了大量的数据测试,测试结果表明设计符合项目要 求,达到了预期功能。 本设计采用自顶向下的分析方法和自底向上的设计方法,采用v e r i l o gh d l 进行r t l 级代码编写,并利用e d a 工具对系统进行功能仿真、逻辑综合、布局布 线等前端设计步骤,在a l t e r a 公司的c y l o n e 系列芯片上进行验证。经验证,设 计符合项目要求,达到了预期目标。 关键字:r s a ;m o n t g o m e r y 算法;f p g a r s a 密码硬件实现方法研究 t h er e s e a r c ho fh a r d 根ei m p l e m e n t a t i o n m e 田h o d0 ft h e r s a a b s t r a c t t h i st o p i ci sf r o mt h e “q i n g d a ob u r e a uo fs c i e n c ea n dt e c h n o l o g yd e v e l o p m e n t p r o j e c t - - t h ed e s i g na n dr e s e a r c ho fm o b i l eh i g h - p e r f o r m a n c ec o m p u t e rs e c u r i t y d e v i c e t h em a i nr e s e a r c ha b o u tt h i st o p i ci st h ed e s i g na n dr e s e a r c ho fi t sm a i n i m p l e m e n t a t i o n - 一t h ei m p l e m e n t a t i o n o f1 0 2 4 - b i tr s a c h i p a c c o r d i n gt o t h i sp r o j e c t ,t h i st o p i ct h o r o u g h l yr e s e a r c h e sa n da n a l y s i st h e a l g o r i t h mo fr s a , s t u d i e st h et w om a i no p e r a t i o n s - m o d u l a re x p o n e n f i a f i o na n d 青岛科技大学研究生学位论文 目录 1 绪论“”l 1 1 课题来源1 1 2 课题的研究背景及意义1 1 3r s a 密码发展历史简介3 1 4 论文主要内容及创新之处4 1 5 论文的组织结构4 2 开发环境及工具简介”6 2 1 硬件开发环境6 2 1 1 可编程逻辑器件( p l d ) ”6 2 1 2 现场可编程逻辑阵列( f p g a ) 7 2 1 3 专用集成电路( a s i c ) 7 2 1 4 可编程片上系统( s o p c ) 7 2 1 5 本论文的设计环境“8 2 2 可编程器件结构“8 2 2 1 可编程逻辑阵列的结构”8 2 2 2 可编程阵列逻辑的结构8 2 2 3 现场可编程门阵列的结构8 2 2 4 本论文采用的可编程器件结构1 2 2 3 基于f p g a 的开发流程一1 2 r s a 密码硬件实现方法研究 2 4 开发工具简介1 4 2 4 1v e r i l o gh d l 语言1 4 2 4 2m o d e l s i m6 0 s e 仿真软件1 5 2 4 3s y n p l i f yp r o 综合软件1 6 2 4 4o u a r t u s1 1 集成软件1 7 2 5a l t e r a 公司主流可编程逻辑器件简介“1 8 2 6 本章小结。1 9 3r s a 密码算法简介” 2 0 3 1 密码学简介2 0 3 2 数论基础。2 1 3 3r s a 算法2 2 3 3 1r s a 算法描述2 2 3 3 2r s a 安全性2 5 3 4 本章小结一2 5 4 相关研究工作总结与分析2 6 4 1 素数的选择2 6 4 2 模幂运算及实现。2 7 4 2 1 从右到左模式2 7 4 2 2 从左到右模式一2 9 4 3 模乘运算及实现3 0 4 3 1m o n t g o m e r y 算法3 1 i v 青岛科技人学研究生学位论文 4 3 2m o n t g o m e r y 算法改进3 2 4 4r s a 硬件实现3 3 4 5 本章小结3 5 5r s a 密码芯片的总体结构设计3 6 5 1r s a 密码芯片总体设计”3 6 5 1 1 需求分析3 6 5 1 2 实现方案一3 7 5 1 3 总体架构一4 0 5 1 4 外部引脚4 2 5 2r s a 密码芯片u s b 接口设计“4 3 5 3 本章小结“4 4 6r s a 各子模块的设计与实现” 6 1 系统控制模块设计“4 5 6 1 1 控制模块功能介绍4 5 6 1 2 控制模块外部接口4 5 6 1 3 控制模块的实现4 6 6 2 模乘运算模块设计5 2 6 2 1 模块功能介绍5 2 6 2 2 模块外部接口”5 2 6 2 3 模乘模块实现5 3 6 3 存储模块设计5 4 v r s a 密码硬件实现方法研究 6 4 接口模块设计“ 6 4 1 分组传送模块设计” 6 4 2 交互模块设计 6 5 本章小结 7r s a 密码芯片的仿真验证 7 1 本系统芯片的设计流程” 7 2 功能仿真”5 9 7 2 1 系统控制模块功能仿真5 9 7 2 2 模乘模块功能仿真6 1 7 2 3 接口模块功能仿真6 2 7 2 4 系统总体功能仿真”6 3 7 3 系统综合优化6 5 7 3 1 系统控制模块综合逻辑图6 5 7 3 2 模乘模块综合逻辑图6 6 7 3 3 接口模块综合逻辑图”6 6 7 3 4 系统总体模块综合与性能分析6 7 7 4f p g a 实现与测试7 0 7 5 本章小结7 4 结论 参考文献” 致谢 v i 7 5 7 6 7 9 青岛科技人学研究生学位论文 攻读学位期间发表的学术论文8 0 声明” 青岛科技人学研究生学位论文 1 1 课题来源 1 绪论 本论文来源于青岛市科技发展计划项目一一可移动电脑加密机的研究与设 计。项目可移动电脑加密机是一种新型的信息安全设备,可以对电脑上的文件进 行n 解密,可实现信息加密、数字签名、身份认证等高级功能。本论文研究的 主要内容是可移动电脑加密机的研究与设计的核心内容一- - r s a 密码芯片的硬件 实现。 1 2 课题的研究背景及意义 自从进入2 1 世纪以来,人类就已经进入了数字时代,互联网的出现和电脑 科技的迅速发展,使得人与人的交流越来越多的体现在了网络上。人们在足不出 户的情况下,可以完成购物、汇款等活动,几乎替代了人与人直接交流的方式。 虽然网络上的交流日益增多甚至替代了传统的交流,进而这种交流方式也变得方 便起来,但是随之而来的就会带来很多负面问题,首屈一指的就是安全问题,在 人与人直接交流的过程中,不存在安全的隐患,但是转到互联网和网络上之后, 安全隐患就随之而来,特别是在牵扯到密码问题时,安全问题就显得更为突出。 在数字时代,交流无非就是信息的传递,信息就是指“o ”和“l 。所有能 够处理的信息都是用“0 ”和“1 来组成,在互联网上的信息的传递就是指“0 和“1 ”的传递。数字时代的信息传递就面临着数的简单化,就面临着数很容易 被窃取甚至是被盗用。从而就威胁到在日常生活中,每个人的隐私安全。从而使 本来在互联网上能够安全完成的各项活动,就变的不安全起来。 因此,信息的安全性变得尤为重要,信息的安全性不仅是为了保护信息的安 全性,更重要的是保护个人隐私的安全。密码技术是信息安全中用途最广泛的安 全技术。密码技术就是指信息在网络的传输和处理与接收的过程中,对信息进行 加密的技术,从而保证信息在传输过程中不会被盗取,即使信息丢失,也不用担 心泄露消息的内容。 密码加密技术在实现的过程中可以用软件实现,也可以用硬件实现。在软件 实现的过程中,软件加密虽然灵活,但软件加密复杂,而且在软件实现的整体加 r s a 密码硬件实现方法研究 密过程中,算法很容易被破解,因此安全性差,而且软件加密速度较慢。硬 密过程实现比较简单,安全性高,加密速度较快,虽然软件加密比较节省成 硬件加密成本相对较高,但是在科技信息高速发展的信息化社会,特别电子 高速发展的情况下,相对于信息安全的重要性来讲,安全还是最重要的。 随着科学技术的飞速发展,硬件加密技术不仅仅应用到航空、航天等技 域,还广泛运用到民营企业和日常生活中。因此设计一款便携的电脑加密设 使之具有体积小,重量轻,加密速度快等特点具有非常重要的意义。 数据加密是指对要求进行保护或者不让外人知道的资料内容或者是文件数 据按照某种算法进行处理,得到一些杂乱无章的不可读的和不可破译的代码的过 程。得到这些代码之后再经过某种处理才能够显现出原先的资料内容或者文件的 过程叫解密。加密和解密的过程是互为逆过程,对文件进行加密的目的就是要起 到对文件进行保护,不让非法个体得到。现代加密技术主要分为非对称的加密技 术和对称的加密技术【1 1 。非对称加密也叫公钥加密技术,是指加密密钥和解密密 钥所使用的不是同一个密钥,而是两个不同的密钥,一个叫做“公钥,一个叫 做“私钥”,这两个密钥必须成对使用才能打开加密文件,这里所说的“公钥 是指对外公开的密钥,“私钥 是不能对外公开,只能由持有人拥有。非对称加 密的优越性就在于,当在网络上进行传输信息的时候,发信人将加密后的信息和 公钥一起传给接收者,当接收者得到这个经过加密后的信息之后再用自己持有的 私钥进行解密,在信息传递的过程中,都不用担心密钥的安全性问题,因为私钥 是不在网络上传输的。很多种加密算法都是采用非对称加密技术,例如r s a 。对 称加密也叫私钥加密技术,是指加密密钥和解密密钥是相同的,加密过程和解密 过程只用一个密钥,因此这个密钥肯定是保密的,因此才叫做私钥加密技术。a e s 加密技术就是一种采用加密密钥和解密密钥相同的一种加密算法。本论文主要采 用r s a 加密算法实现电脑加密机的设计。 综上所述,本论文的主要研究意义: 1 、现代加密算法的研究已经非常成熟,进而能够应用到日常生活中,所以 设计一款能够进行信息加密从而能够对重要信息提供保护的设备具有非常重要 的意义。 2 、本论文主要研究r s a 算法的硬件实现,解决大数运算带来复杂问题,并 且能够在f p g a 上实现。 3 、本论文设计面向可移动电脑加密机的设计中,可以广泛的应用到数字签 名、身份验证、电子商务中,具有非常广泛的应用l j 景。 2 青岛科技人学研究生学位论文 1 3r s a 密码发展历史简介 r s a 密码算法可以用软件实现,也可以用硬件去实现,用软件去实现的加密 时间长,而且安全性不高,硬件实现可以提高加密的效率而且安全性更高一些。 r s a 算法的主要是运算就是进行大数运算,包括大数的模幂和模乘运算,因此如 何提高模幂、模乘运算的速度和可执行性就成为了r s a 密码算法可实现的与否的 关键问题。 对于速度的问题,有好几种优化方法,其中之一的就是中国的剩余定型2 1 , 另外一个就是采用蒙哥马利算法构造模乘和模幂算法来实现。对于此种方法国内 外人员主要从三方面进行研究:第一个是采用冗余基数表达方法【3 】,主要采用的 是高基结构;第二种是脉动阵列实现方法【4 l ;第三种是采用b o o t h 编码技术f 5 】【6 】【7 】 结合改进的加法器实现。 r s a 算法中很多都用到模幂的运算,古代的孙子算经中出现过,也叫中 国的剩余定理。剩余定理实际上就是同余运算,这是中国最早的有关同余的记载, 中国的剩余定理就是模数运算的基础。 进入新世纪以来,信息系统和计算机的快速普及,直接带动了人类对数字信 息以及安全服务的要求。在历史上密码学最有成就的发展是在1 9 7 6 年,d i f f i e 和 h e u m a n 两个人提出的n e wd i r e c t i o n si nc r y p t o g r a p h y 文章中出现的。在这篇论文 中,两人引入了对公钥密码学的革命性的概念,而且提出了一种创造性的密钥方 法,因此就在整个世界的密码学领域引起了极大的研究。1 9 7 8 年由r i v e s t ,s h a m i r 和a d l e m a n 三人发现了第一个实际的公钥加密及签名方案,现在称为r s a 方案【8 】。 r s a 方案的基本原理是基于困难数学的问题,大整数因子分解。这种困难的大整 数因子分解的数学难题使得人们寻找更有效的分解的方法,并且在2 0 世纪后期 得到一些进展,但是这些并不能说明r s a 的算法是不安全的。另外一个实用的公 钥方案是1 9 8 5 年由e l g a m a l 提出的 9 1 ,该方案是属于离散对数的数学问题。 公钥密码体制是现代密码学的最能体现信息安全的发展体制。在很多人眼 里,密码学肯定就是只保护信息的安全和机密性。但是以上所说的仅仅是密码学 的一个小的方面,现代密码学还包括,发信者和接受者的个人身份验证,对所发 出的信息的完整性具有很强的保障作用等等。 公钥密码体制对以上两个问题做出了很好的解答,公钥密码体制一个很明显 的特点就是加密密钥和解密密钥分开,而且两者是不同的。加密密钥是已知的, 公开的,谁都可以用加密密钥进行文件的加密等,但解密密钥只能是接收者,也 就是信息最后要到达的那个人拥有。到目前为止,在所有的公钥密码体制中,r s a 3 r s a 密码硬件实现方法研究 算法是应用最广的一种。 以下是r s a 密码算法的发展历程: 1 9 7 6 年,公钥密码体制被提出,公钥密码体制的原理是加密密钥和解密密钥 是分开的,这就很好的保证了解密密钥的安全问题,不用担心解密密钥会在信息 传输的过程中的安全问题,加密密钥可以公之于众,而解密密钥只有信息的发送 者保留。任何人通过信息传输将r s a 算法和加密密钥向接受者发送加密信息,都 可以将之还原。 1 9 7 8 年,正式提出了公钥密码体制的具体实施方案,就是r s a 密码方案。 1 9 9 1 年,r s a 算法被广泛运用到数字签名等方面。 r s a 算法的主要目的是保证网络信息的传输安全性,主要是解决私钥在传输 时的不安全性,利用r s a 算法不仅解决了密钥在传输中的安全问题,而且还可以 用完成数字签名功能,同时可以很容易发现信息的篡改性,用来保护信息的完整 性和安全性。 1 4 论文主要内容及创新之处 青岛科技人学研究生学位论文 进行了大量的实践验证与测试,测试结果表明本论文设计的r s a 密码芯片符合功 能要求和项目要求,成功的完成了预期任务。 1 5 论文的组织结构 意义 工具 第三 研究 系统 绍了 本论文分为七大章。第一章是绪论,主要讲述了课题的来源和本课题的研究 r s a 密码硬件实现方法研究 2 1 硬件开发环境 2 开发环境及工具简介 2 1 1 可编程逻辑器件( p l d ) 可编程逻辑器件( p r o g r a m m a b l el o g i cd e v i c e ,p l d ) 1 1 0 是二十世纪七十年代开 始出现,这种器件是在专用集成电路的基础之上发展起来的,是一种新型的逻辑 器件,当今数字电路设计中主要的设计平台,最大的特点是用户自己可以完全进 行自主的配置和编程,从而可以完成用户要求的某种功能,并且可以重复编写和 操作。从这种角度上很明显的可以体会到可编程逻辑器件的优点。 可编程逻辑器件在进行修改、维护和升级时,可以不用改变印制电路板,只 改变电脑上的程序或者更新源程序即可,从这一点上来说,可编程逻辑器件可以 缩短软件的设计开发周期,提高了实现的可行性和效率性,并且降低了成本,而 且从某种意义上讲,还可以将硬件开发转变成为了软件开发。因此可编程逻辑器 件获得了很多高级硬件工程师的青睐,从而形成了巨大的发展规模。 现在市场上常见的可编程逻辑器件有只读存储器( r e a do n l ym e m o r y ) 、现场 可编程逻辑阵列( f i e l dp r o g r a m m a b l el o g i ca r r a y ) 、可编程逻辑阵列( p r o g r a m m a b l e a r r a yl o g i c ) 、可擦除的可编程逻辑阵y t j ( e r a s a b l ep r o g r a m m a b l el o g i c a r r a y ) 1 1 1 】。 可编程逻辑器件的发展经历四个阶段,从二十世纪七十年代到九十年代,在 这短短的二十年里可编程逻辑器件的结构从简单的搭配发展到了高复杂度的架 构具体经过以下过程: 二十世纪七十年代初到二十世纪七十年代中期【1 2 1 ,可编程逻辑器件就是简单 的可编程只读存储器等等,由于结构简单,因此只能完成简单的逻辑电路的功能。 二十世纪七十年代中期到八十年代中期【1 2 】,可编程逻辑器件在结构上发生了 变化,结构稍微变得复杂了,而且可编程器件结构中多了阵列,很多功能都是由 阵列实现的,此时期的可编程逻辑器件可以实现大量的逻辑乘积运算。 二十世纪八十年代中期到九十年代末【1 2 1 ,这是可编程逻辑器件的第三个阶 段,这个时期可编程逻辑器件飞速发展,很有代表性的两大生产厂商x i l i n x 和 a l t e r a ,分别推出了标准门阵列的器件,这类器件称为现场可编程逻辑门阵列低e l d p r o g r a m m a b l eg a t ea r r a y ) i 简称f p g a 1 3 】,这类器件具有集成度高、体系结构和逻 辑单元灵活、适应范围非常广的特点。而且在功能上兼容了通用可编程器件的优 6 青岛科技大学研究生学位论文 点,能够实现非常复杂的逻辑电路的设计,编程方式也很灵活。在这一阶段,可 编程逻辑器件尤其是f p g a 器件在制造工艺上和性能上有了很大的发展,直接就 是奠定了可编程逻辑器件的基础。 二十世纪九十年代末到目前,出现了新的可编程器件,叫做可编程片上系统 ( s y s t e mo np r o g r a m m a b l ec h i p ) 。这类器件是在p l d 和f p g a 基础之上产生出来 了,这类器件主要用于高速信号的数据收发、复杂计算以及嵌入式系统、数字信 号的处理技术等方面。这一阶段的可编程器件的发展从规模和功能上超越了传统 意义上的可编程逻辑器件的概念,但是却使可编程器件的应用范围从单片级扩展 到了系统级,目前,可编程逻辑器件正在朝这个方向不断发展。 2 1 2 现场可编程逻辑i 嘞q ( f p g a ) 现场可编程门阵列( f i e l dp r o g r a m m a b l eg a t ea r r a y ) 是在可编程阵列逻辑、通 用阵列逻辑、可擦除的可编程逻辑阵列、复杂的可编程逻辑器件基础之上发展起 来的新兴产物。f p g a 作为专用集成电路领域中的一种半定制的电路出现的,优 点是克服了原先可编程逻辑器件有限的门电路资源和不便,使得f p g a 可以完成 更加复杂的逻辑电路。 系统设计师在用现场可编程逻辑阵列时,可以依照需要,将f p g a 中的逻辑 通过内部连线连接起来,就好像是印制电路板放到了芯片中。因此成形的f p g a 芯片可以根据设计者的要求改变而改变内部连接,就可以实现所需要的功能。 2 1 3 专用集成电路( a s i c ) 专用集成电路是a s i c 的简称,i l l ( a p p l i c a t i o ns p e c i f i ci n t e g r a t e dc i r c u i t s ) 【1 4 1 , 是按照专门的用户或者是特殊的用户要求而进行设计、制作的集成电路。a s i c 很明显的特点就是符合特定用户要求,体积小,性能高,功耗低,成本低等优点。 专用集成电路a s i c 分为:半定制和全定制。全定制就是指设计用户要将所 有的功能模块设计出来,包括所有逻辑关系都要进行设计,因此就会花费很大的 劳力和财力,灵活性好但是效率低;半定制是指用户在设计过程中,不用将所有 的模块功能设计出来,可以借助e d a 工具中自带的库进行设计。这样在设计过 程中就会提高设计效率。 2 1 4 可编程片上系统( s o p c ) 可编程片上系统【1 5 l ( s y s t e mo i lap r o g r a m m a b l ec h i p ) 就是指使用可编程逻辑 7 r s a 密码硬件实现方法研究 技术将整个系统放到芯片上。可编程片上系统是一种比较特殊的系统,包含两方 面:第一个它是指片上系统,就是说整个逻辑功能都要装在一个芯片上。第二可 编程,就是指有着和可编程逻辑系统一样的特点:可以反复编写和修改,灵活性 好。 2 1 5 本论文的设计环境 本论文根据项目要求和具体实际情况,采用现场可编程逻辑门阵列( f p g a ) 进行设计。 2 2 可编程器件结构 2 2 1 可编程逻辑阵列的结构 可编程逻辑阵列是在上个世纪的七十年代中期才出现的一种器件。从名字上 可以知道逻辑阵列,肯定会和逻辑有关系。因此可编程逻辑阵列就是有一系列的 大量的与阵列和或阵列组成。在可编程逻辑阵列的与阵列中,通过对不同的连接 点的操作就是指选择或者是不选择,可以对不同的输入信号进行与操作,通过与 阵列中的连接点。而在或阵列中,就是通过选择不同信号的进行或操作,最后再 输出。此种电路只能实现某种特定功能的电路,因为无法将所有信号的逻辑全部 概括。可编程逻辑阵列器件由于价格成本高,资源利用率非常低,为此,此种器 件没有被得到广泛的应用。 2 2 2 可编程阵列逻辑的结构 可编程阵列逻辑是可编程逻辑阵列的变形,不同点是可编程阵列逻辑中的或 阵列是固定的。从可编程阵列逻辑结构上看,此种器件的缺点就不言而喻了:首 先是由于固定,因而不能改写;其次就是可编程阵列逻辑的输出是固定,不能编 程,一旦芯片型号选定,结构也就决定了;最后就是由于不同的输出要对应不同 的结构,因此这会给用户的使用带来极大的不便。 2 2 3 现场可编程门阵列的结构 f p g a 的特点是可以反复烧写, 专用电路通过固定的与非门来实现, 因此用f p g a 实现组合逻辑电路就不可能像 只能采用一种可以反复配黄的结构,查找表 8 青岛科技大学研究生学位论文 就是一个很好的方法。 目前主流f p g a 都是采用的s r a m ( s t a t i cr a n d o ma c c e s sm e m o r y 静态随机 存储器1 工艺的查找表结构【1 6 l ,可以通过对查找表的反复烧写和改变存储内容就可 以实现对f p g a 的重复配置。根据数字逻辑电路的基本知识我们可以知道,在数 字电路中数据的取值只有两种,“0 ”和“19 9 9 因此对于一个n 输入的逻辑运算, 不管是与运算还是或运算还是非运算,最多可能的结果有2 “种结果。所以事先将 所有的输入情况能够产生的输出情况存放到一个表格中,就相当于实现了所有的 与非电路的功能。f p g a 的工作原理就是如此,通过反复的烧写就是为了反复的 配置查找表的内容,从而可以在相同的电路结构基础之上实现不同的逻辑功能。 查找表( l o o ku pt a b l e ) 简称l u t ;目前,常用的f p g a 根据不同的生产厂商 有不同的输入u j l ,基本上都是使用四输入的l u t ,所以每一个u j l r 可以看成 是具有四位地址线的r a m 。当用硬件描述语言或者是电路原理图描述一个某种 r s a 密码硬件实现方法研究 图2 - 1f p g a 器件平面图 f i 9 2 - 2t h ep l a nv i e wo ff p g a 各个部分的功能简述如下: 1 、可编程输入、输出单元( 1 0 8 1 可编程输入、输出单元简称为i o 单元,主要起到了连接芯片和外部电路的 连接作用的,主要是为了能够完成在不同的电气特性下对输入信号和输出信号的 匹配与驱动要求。外部输入信号接入到芯片时,可以通过本i o 接口将此信号存 储到f p g a 内部,当外部信号通过输入和输出端口接入到f p g a 时,其保持时间 通常默认为o 。在输入输出端口里面,通常就会被划分为不同的b a n k 即“组 。 每一组b a n k 有不同的接口标准,这个接口标准是由接口电压v c c o 决定的。 一个b a n k 对应着一个v c c o ,接口在连接时有个标准就是在端口连接时,只有 端口电压标准相同的情况下才能将端口连在一起【1 8 1 。 2 、可编程逻辑模块( l a b ) 可编程逻辑模块是f p g a 内部基本的逻辑单元。l a b 的数量和特性会依照器 件的不同而不同。在每一个l a b 中都包含多个l u t 即查找表,每一个查找表都 包含四个输入。l a b 可以有多个l u t 组成,每个l a b 可以不仅实现组合逻辑电 路,而且还能实现时序逻辑电路和配置r a m 等功能。而x i l i n x 公司出产的芯 片其内部结构是s l i c e ,每一个s l i c e 是由四输入或者是六输入的l u t 组成,不管 是六输入还是四输入,其原理基本相似【1 8 l 。 3 、可编程互联资源 1 0 青岛科技大学研究生学位论文 互联资源的目的就是为了连接f p g a 内部的所有单元,而且各个器件之间的 连接线的长度和连接方式甚至走线决定着信号在互联资源上的驱动能力和传输 速度【1 8 l 。根据连接线的不同和分布位置的不同常把连接线分为四个部分t 3 9 :全局 r s a 密码硬件实现方法研究 2 2 4 本论文采用的可编程器件结构 本论文设计中采用的现场可编程门阵列,即f p g a ( f i e l dp r o g r a m m a b l eg a t e a r r a y ) 。 2 3 基于f p g a 的开发流程 f p g a 是可编程逻辑器件,从名字上来看,包括两种设计:软件设计和硬件 设计。硬件设计包括f p g a 芯片、输入输出接口等硬件部分,还有就是芯片周围 的外围电路;软件设计就是指的硬件描述语言的设计【1 8 1 。 对于一个复杂的系统,要按照一定的方法进行设计:首先应该将整个设计的 任务划分成很多个模块,并对各个模块进行端口声明,然后将各个模块分给下一 层。这样就可以使不同的人同时进行同一个系统的设计,最后再整合成系统进行 功能仿真。 青岛科技大学研究生学位论文 可以返回到设计输入对代码进行修改,因此功能仿真提高了逻辑设计的可靠性, 节省了成本,并提高了整个系统的设计效率。 ( 4 ) 逻辑综合( s y n t h e s i z et o c r e a t en e t l i s t ) 逻辑综合就是将电路用比较高层次 的描述转换为低层次的描述。综合优化是指根据目标和要求将所设计的逻辑电路 进行层次上的平面化,将设计编译成由与门、或门、非门、r a m 、触发器等基本 逻辑单元组成的逻辑连接网表,而并非真实的逻辑门。当功能仿真正确,说明用 语言描述的逻辑功能没有语法问题,所有错误已经消除。可以用综合工具综合成 最优的布尔描述,去除繁冗的逻辑,实现逻辑的最简化【2 1 】。从而产生对应于f p g a 某一器件型号的逻辑网表。逻辑网表就是门级的功能描述结构。 ( 5 ) 实现与布局布线( i m p l e m e n t ) 实现是指将逻辑综合产生的逻辑网表配置到 对应的f p g a 芯片上,其中最重要的过程就是布局布线。布局是指将综合产生的 网表中的硬件描述原语和底层的逻辑单元像各类门合理的配置到对应的芯片内 部固有的结构上,并且不论在速度上还是面积上都要实现布局的最优化。布线是 指在布局完成后,利用芯片内部的互联资源将各个元件进行合理的连接1 2 1 1 。 ( 6 ) 时序仿真( t i m i n gs i m u l a t i o n ) 时序仿真又称为后仿真【2 1 1 ,将实现与布局布 线后的信息反馈到设计网表中,用来检测一下有没有时序上的违规,即有没有不 满足条件或者是不满足建立时间、保持时间等现象。时序仿真所反映的问题最全、 最准确,能够反映芯片的实际工作情况。由于不同的芯片工作性能和布局布线不 同等情况,对延时信息也会有不同程度的影响。因此在设计逻辑功能的时候,要 进行时序仿真,只有通过时序仿真才能消除不必要的逻辑竞争和冒险,而且最终 的是可以解决时序问题,才能使程序下载到芯片以后能正常运行。 ( 7 ) 芯片的变成与调试( c r e a t eb i tf i l e ) f p g a 设计流程的最后一步是将设计 的文件下载到f p g a 上,然后进行功能的调试。下载是指将产生的文件( 位数据流 文件1 下载到f p g a 芯片中。设计流程图如下图所利硐: r s a 密码硬件实现方法研究 青岛科技大学研究生学i 奇= 论文 整体的仿真和测试,用综合工具转换为门级网表,最后通过布局布线下载到具体 的芯片上得到具体的电路结构。 硬件描述语言一般有下列特础2 5 】: ( 1 ) 硬件描述语言不仅仅包含高级的设计描述语言,而且还可以描述数字硬 件电路的线路连接; ( 2 ) 通过硬件描述语言可以描述不同层次的结构设计。 ( 3 ) 硬件描述语言是并行设计,在同一时间可以同时执行多种任务,这和以 往的高级语言是顺序执行的特征是不同的。 h ) 硬件描述语言具有时序的概念。像c 语言这样高级语言是没有时序的。 但是在硬件电路的设计中,时序很重要,从输入到输出是有延迟的,因此就必须 引入时序的概念,从这点上讲,硬件描述语言不仅仅可以实现组合逻辑电路,而 且可以实现时序逻辑电路的设计。 本论文采用的硬件描述语言是v e r i l o gh d l ;v e r i l o gh d l 和v h d l 两者区别 不大,都能够形象化的描述电路结构和行为;支持不同的逻辑层次的设计;支持 电路不同层次的相互转换;便于管理与设计的重复性使用。前者的最大的特点就 是易学易用,如果有c 语言的编程经验,可以在很短的时间内能够掌握v e r i l o g h d i 。 2 4 2m o d e i s i l l l6 o s e 仿真软件 m o d e l s i m 是m e n t o r 公司出产的一款功能非常强大的仿真软件,具有仿真速 度快、仿真精度高和便于操作等特点,还具有代码分析和代码覆盖率功能,是唯 一的单内核支持v e r i l o gh d l 和v h d l 混合仿真的仿真工具。它采用的是如下技 术:优化编译技术、t c l 瓜技术、和单内核仿真技术,编译和仿真速度快,编译 的代码与系统环境无关,全面提高用户的修改代码调试速度【硐。 此软件有三种不同版本,分别是s e 、p e 、l e 、o e m ,其中s e 是此软件的 最高版本,s e 运行速度最快,并且支持多种混合平台,像p c 、l i n u x 等平台。 本论文采用的仿真软件是m o d e l s i m6 0 s e 。 m o d e l s i m 出了具有以上的优点之外,m o d e l s i m 具有强大的功能体现在,可 以对模块的接口进行调试;可以追踪每个端口的数据变化,而且还能够得到模块 与模块之问的连接及其数据变化等。m o d e l s i m 具有友好的界面:可以支持 s y s t e m v e r i l o g 的设计功能等。m o d e l s i m 仿真界面如下图所示: r s a 密码硬件实现方法研究 f _ i l e e d i t v j e w f o r m a tq o m p i l e 主1 m u l a t ea d d 工o o l sw j n d o w h _ e l p 种工 表, 提供 键连 有限 了出 青岛科技大学研究生学位论文 r s a 密码硬件实现方法研究 的可编程逻辑软件。q u a r t u si i 开发设计提高了硬件设计的效率、并减小了潜在 的设计延迟等等。a l t e r aq u a r t u si i 作为一种全新的可编程逻辑环境,就是由于其 强大的设计开发能力和直观易懂的操作界面,受到了越来越多的数字系统设计者 的欢迎。 q u a r t u si i 操作界面如下图所示: d i ee 献v _ i e wp _ r o l e c ta s s i g n m e n t sp r o c e s s l n g t o o l sw _ i n d o wh p i p d 窖缁;詹;薹龟魏l 奶 | 嫒谬辔移;豢| 眵 p r o j e c tn a v i g a l :叫。_ 。 彰镶 荔,7 荔荔彩i 貉? 黪 锨i 豫劳, i s ? 澎戮j 缓锡:戮锄 ,“一魂慨p 口口。0 旗娩黼。抟 毋g l ,”一嘞i 篪囊爹二。,鬓黧鬓 ,镳 7 镊 地豇! 垡u i n f o r m a t i o n 【囝d o c u m e n t a t i o n ,z _ _ _ _ _ _ _ - - - - - _ f o rh e l p jp r e s sf 1 r 隧溺辫荔广_ i 蕊一么 图2 - 6q u a r t u si i 操作界面 f i 9 2 - - 6t h e i n t e r f a c eo fo u a r t u si i 2 5a l t e r a 公司主流可编程逻辑器件简介 a l t e r a 公司是非常有名的可编程逻辑器件的生产商,一直以来都占据着制造 1 8 鞋=强讷拿丘n 青岛科技大学研究生学位论文 可编程逻辑器件的领先地位。a l t e r a 公司生产的可编程逻辑器件具有性能高、集 成度高、性价比高的特点,而且器件的延迟可以预测,再加上逻辑器件上加上了 多功能的核等复杂的功能,因此使得a l t e r a 器件越来越受到数字电路设计者的 青睐。 a l t a r a 可编程逻辑器件主要包括:a p e x 、a p e xi i 、m a x 、m a xi i 、s t r a t i x 、 s t r a t i xi i 、c y c l o n e 、c y c l o n ei i 等。a l t e r a 器件采用互联形式连接,主要优点 是延时具有可预测性【硼。a l t e r a 的基本结构是逻辑单元简称l e 。 a p e x 是2 5 v 1 8 v 基于s r a m 工艺的期间,带有p l l 、c a m 、e a b 、l 、,d s , 集成度从三万门道1 5 0 万门,采用多核结构设计的芯片【2 9 1 。 s t r a t i x 器件是a l t e r a 出产的高端芯片,属于大容量的高性能的f p g a ,采用 新的逻辑结构,1 2 v 、9 0 n m 的s r a m 工艺制造,速度高,容量大,具有1 7 9 4 0 0 个逻辑单元【砌。强大的s t r a t i x 器件族有以下特点:容量很大的存储资源、具有 多功能的d s p 模块、可以支持多种的输入输出标准、具有时钟管理功能、可以 进行嵌入式开发等。 可编程逻辑器件在过去的几十年里,已经得到了飞速的发展,性能在不断的 提高,在以后的发展中,会有以下几个方面的趋势: ( 1 ) 向着规模大、集成度高的方向进一步发展; ( 2 ) 向着电压低、功耗低的方向发展; ( 3 ) 向速度高、延迟可预测性的方向发展; ( 4 ) 在可编程逻辑器件中汇嵌入更多功能的逻辑模块; ( 5 ) 可编程逻辑器件会集成更多的模拟电路,以促进模数电路的进一步发展; 2 6 本章小结 本章主要介绍了可编程逻辑器件及f p g a 开发环境,并对本论文所用的相关 软件进行了简单介绍。 1 9 r s a 密码硬件实现方法研究 3 1 密码学简介 3r s a 密码算法介绍 密码学是用来研究为了保护信息传递的隐秘性而编制密码和破译密码的一 门科学【砌。密码学有两个分支:寻求具有某种规律的密码来保护信息传递的安全 性的方法叫做密码编码学;通过研究加密消息从而得到信息情报的方法叫做密码 破译学,总称为密码学。 密码是传递信息的双方按照某种规定对要传递的信息进行特殊的变换的一 种保护手段。要传递的信息叫做明文【加1 ,对要传递的信息进行的加密之后的叫做 密文。将明文按照某种规定变为密文叫做加密操作,将密文转换为明文叫做解密 操作。加解密的具体运作由两部分组成:一个是算法,另一个是密钥。密钥是一 个用于进行加解密算法的不对外公开的参数,一般情况下只有通讯者拥有。一般 情况下,密钥是未经过验证和测试直接用于密码机上的。 随着科学技术的不断发展,现在

温馨提示

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

评论

0/150

提交评论