基于FPGA的ECC加解密算法研究及设计
本文关键词:基于FPGA的ECC加解密算法研究及设计
更多相关文章: ECC FPGA 软硬件协同设计 点乘算法 有限素数域
【摘要】:目前商界广泛使用的加密技术是基于大整数因子分解难题的RSA(Rivest Shamir Adleman)公钥密码技术。由于存在亚指数攻击,随着计算机计算能力的增强,RSA只能通过增加密钥长度来提高加密强度。椭圆曲线密码体系[ECQElliptic Curve Cryptosystem)是一种基于椭圆曲线群上的新的公钥密码体系,最新研究表明密钥长度为220比特的ECC加密强度比密钥长度为2048比特的RSA加密强度高。ECC是基于椭圆曲线离散对数难题,与大整数因子分解难题(RSA)相比,ECC具有密钥更短、安全性更高、运算速度更快和所需存储空间更少等优势。软件和硬件都可以实现ECC密码算法,其中软件实现的加密速度和安全级别难以满足信息安全的要求,硬件实现的加密速度和安全级别明显高于软件,能够满足信息安全的要求,但是其实现成本高。本课题采用软硬件协同设计方式,设计实现ECC加解密算法。论文选择有限素数域上的椭圆曲线作为研究对象,首先结合软硬件设计的特点分析ECC加解密算法,合理划分软硬件模块。然后重点研究硬件模块用到的算法,先从理论上对其进行改进,再结合所选FPGA器件提供的硬件资源,设计出速度和面积平衡的硬件电路。点乘运算的性能决定了ECC加解密算法的性能,本文深入分析了常用的几种点乘算法后,提出了一种点乘并行运算算法,该算法支持点加和倍点同时运算。经过深入研究Jacobian射影坐标系下点加算法和倍点算法的数据流特点后,分别设计了一种点加并行运算算法和倍点并行运算算法,该算法支持模乘和模加/减同时运算。基于改进后算法设计的点乘模块,完成一次密钥长度为256bit的点乘运算需要138612个时钟周期,在已查阅文献中本文设计实现的点乘模块运算时钟节拍数最少。最后通过Signal Tap Ⅱ逻辑分析仪完成FPGA硬件电路的板级测试,从而验证本文设计的FPGA硬件电路的功能是否正确。通过上位机测试程序,完成ECC加解密算法的功能测试、性能测试和可靠性测试。测试结果表明:本文设计实现的ECC加解密算法功能正确,能够长时间正常工作,性能和可靠性达到预期目标。其中点乘算法性能为489.8次/s,ECC加密算法性能为219.87次/s,ECC解密算法性能为402.23次/S。连续进行2千万组随机明文加解密运算,运算结果完全正确,FPGA芯片工作温度正常。
【关键词】:ECC FPGA 软硬件协同设计 点乘算法 有限素数域
【学位授予单位】:西安邮电大学
【学位级别】:硕士
【学位授予年份】:2016
【分类号】:TN918.4
【目录】:
- 摘要3-4
- ABSTRACT4-8
- 主要符号表8-9
- 第1章 绪论9-13
- 1.1 课题研究背景及意义9-10
- 1.2 国内外研究现状10
- 1.3 论文创新点10-11
- 1.4 论文的主要工作与结构安排11-13
- 第2章 椭圆曲线公钥密码体制理论基础13-23
- 2.1 数论相关概念13-14
- 2.2 有限域简介14-15
- 2.3 有限域上的椭圆曲线15-17
- 2.4 椭圆曲线密码算法简介17-21
- 2.5 本章小结21-23
- 第3章 椭圆曲线加解密算法总体方案设计23-31
- 3.1 椭圆曲线密码体制有限域F_(256)上坐标系和参数选取23-24
- 3.2 椭圆曲线加解密算法分析24-25
- 3.3 椭圆曲线加解密算法总体方案25-27
- 3.4 SOPC系统设计与搭建27-29
- 3.5 本章小结29-31
- 第4章 硬件模块设计与实现31-57
- 4.1 有限域F_(256)上基本运算模块设计与实现31-41
- 4.1.1 模加/减模块设计与实现31-33
- 4.1.2 模乘模块设计与实现33-36
- 4.1.2.1 模乘算法比较与改进33-34
- 4.1.2.2 模乘模块设计与功能仿真34-36
- 4.1.3 Montgomery数据转换模块设计与实现36-38
- 4.1.4 模逆模块设计与实现38-41
- 4.1.4.1 模逆算法比较与改进38-40
- 4.1.4.2 模逆模块设计与功能仿真40-41
- 4.2 点乘模块设计与实现41-52
- 4.2.1 点乘算法比较与改进41-43
- 4.2.2 倍点算法与点加算法改进43-46
- 4.2.3 Jacobian射影坐标向仿射坐标转换46-47
- 4.2.4 点乘模块设计47-50
- 4.2.5 点乘模块功能仿真50-52
- 4.3 Hash模块设计与实现52-55
- 4.3.1 Hash模块设计52-55
- 4.3.2 Hash模块功能仿真55
- 4.4 本章小结55-57
- 第5章 软件模块设计与实现57-67
- 5.1 NIOS Ⅱ软核程序设计57-62
- 5.1.1 Hash消息填充NIOS Ⅱ软核程序设计57-58
- 5.1.2 KDF密钥派生函数NIOS Ⅱ软核程序设计58-59
- 5.1.3 ECC加密与解密算法NIOS Ⅱ软核程序设计59-62
- 5.2 上位机测试程序设计62-66
- 5.2.1 上位机数据包格式定义62-63
- 5.2.2 功能测试程序设计63-64
- 5.2.3 性能测试和可靠性测试程序设计64-66
- 5.3 本章小结66-67
- 第6章 FPGA板级测试67-73
- 6.1 硬件模块FPGA板级测试67-68
- 6.1.1 点乘模块FPGA板级测试68
- 6.1.2 Hash模块FPGA板级测试68
- 6.2 NIOS Ⅱ软核程序FPGA板级测试68-71
- 6.2.1 ECC加解密算法功能测试68-70
- 6.2.2 ECC加解密算法性能测试和可靠性测试70-71
- 6.3 ECC加解密算法性能比较71
- 6.4 本章小节71-73
- 第7章 结论与展望73-75
- 7.1 结论73
- 7.2 展望73-75
- 参考文献75-77
- 攻读学位期间取得的研究成果77-79
- 致谢79-80
【相似文献】
中国期刊全文数据库 前10条
1 刘富星;高辉;;常用加解密算法及其时间分析[J];科技信息(科学教研);2008年01期
2 卢君明,舒妍,林争辉;基于DSP的高速RSA加解密实现[J];计算机应用与软件;2002年01期
3 朱明海;RC5加解密算法的C#实现[J];电脑编程技巧与维护;2005年06期
4 魏军;杨秀芝;;基于FPGA的IDEA加解密算法的研究和实现[J];有线电视技术;2009年11期
5 杨凤霞;;基于VB的数据加解密算法的实现[J];软件导刊;2006年13期
6 石林 ,迟增晓;用VB实现数据的加解密算法[J];电脑知识与技术;2003年31期
7 刘红;;试论RSA技术的应用[J];价值工程;2013年31期
8 朱明海;;对称加解密算法RC6的C#实现[J];电脑编程技巧与维护;2008年08期
9 朱明海;;C#的IDEA加解密算法[J];电脑编程技巧与维护;2007年03期
10 张德学;郭立;傅忠谦;;一种基于FPGA的AES加解密算法设计与实现[J];中国科学技术大学学报;2007年12期
中国重要会议论文全文数据库 前1条
1 张开;陆洪毅;张威;;RC4加解密算法的硬件实现[A];第七届中国通信学会学术年会论文集[C];2010年
中国硕士学位论文全文数据库 前6条
1 陈俊杰;基于FPGA的ECC加解密算法研究及设计[D];西安邮电大学;2016年
2 胡振波;Feistel结构加解密算法的高效硬件实现方案研究[D];上海交通大学;2010年
3 李大江;基于FFTT的非对称加解密算法的硬件设计[D];山东科技大学;2011年
4 刘文兵;一种FFTT非对称加解密算法的研究与实现[D];山东科技大学;2011年
5 秦宗庆;基于FPGA的RFID数据加解密算法研究[D];广东工业大学;2014年
6 李显龙;基于SD总线的FPGA加解密算法实现[D];华南理工大学;2012年
,本文编号:797739
本文链接:https://www.wllwen.com/kejilunwen/xinxigongchenglunwen/797739.html