资源描述:
《2015密码学课程设计报告 (7)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、课程设计报告题目:SPN和RSA密码算法的快速实现与安全性分析课程名称:密码学原理与实践专业班级:信息安全1302班学号:姓名:指导教师:报告日期:2015.9.29计算机科学与技术学院目录1实验目的12实验内容及基本要求12.1分组密码SPN的实现12.2RSA的加/解密及快速加/解密12.3RSA配合SPN的文件加/解密12.4随机性检测13实验原理23.1分组密码SPN的实现23.1.1迭代密码23.1.2代替-置换网络(Substitution-PermutationNetwork)23.1.3SPN密码体制设计33.1.4线性密码分析43.1.5差分密码分析63.1.6密钥穷举攻击7
2、3.2RSA的加/解密及快速加/解密83.2.1公开密钥算法83.2.2RSA算法83.2.3快速实现RSA算法83.3RSA配合SPN的文件加/解密113.3.1增强SPN的安全性113.3.2RSA管理密钥113.3.3SPN对文件加/解密113.4随机性检测114实验过程124.1分组密码SPN的实现124.1.1SPN加密124.1.2线性分析144.1.3差分分析154.1.4随机生成明文函数174.1.5穷举攻击174.2RSA的加/解密及快速加/解密194.2.1生成RSA参数214.2.2RSA加解密过程224.2.3快速实现RSA234.3RSA配合SPN的文件加/解密24
3、4.3.1加强SPN的安全性244.3.2RSA管理密钥294.3.3加强后SPN对文件加解密294.4随机性检测305实验结果315.1分组密码SPN的实现315.1.1SPN加密315.1.2线性分析315.1.3差分分析315.1.4穷举攻击325.2RSA的加/解密及快速加/解密335.2.1生成RSA参数335.2.2RSA加密335.2.3RSA解密345.2.4CRT快速解密RSA345.2.5蒙哥马利算法加解密345.3RSA配合SPN的文件加/解密355.3.1SPN文件加密355.3.2SPN文件解密365.4随机性检测366实验总结431实验目的1)通过课程设计,使学
4、生进一步熟悉密码算法以及算法安全性的基本概念和原理;2)培养学生将密码理论和技术应用于实际的能力,使学生具备实施数据加/脱密和基本的密码分析的能力。2实验内容及基本要求2.1分组密码SPN的实现1)加密:实现《密码学原理与实践(第三版)》Page.59例3.1的加密过程。2)线性分析:通过对明密文对的线性分析,破解出初始加密密钥;3)差分分析:通过对明密文对的差分分析,破解出初始加密密钥;4)密钥攻击:求出例3.1所有32比特密钥;2.2RSA的加/解密及快速加/解密1)生成RSA算法的参数:(如p、q、N、私钥、公钥等);2)编写RSA的加/解密过程;3)快速实现RSA(对比模重复平方、蒙哥
5、马利算法和中国剩余定理);2.3RSA配合SPN的文件加/解密1)增强以上SPN的安全性(如增加分组的长度、密钥的长度、S盒、轮数等);2)RSA管理密钥;3)SPN对文件加/解密2.4随机性检测密文的随机性反映了密码的强度,通过设计随机性测试算法或运用工具对SPN生成的密文进行随机性检测,来测试SPN的密码强度。431实验原理1.1分组密码SPN的实现1.1.1迭代密码迭代密码的核心是一个密钥编排方案和一个轮函数密钥编排方案对密钥k进行变换,生成Nr个子密钥(也叫轮密钥),记为k1,k2,...,kNr轮函数g是一个状态加密函数,以ki为密钥对当前状态wr-1进行变换,输出新的状态值wr,即
6、g(wr-1,ki)=wr;轮函数是单射函数,存在一个逆变换g-1,有g-1(wr,ki)=wr-1迭代密码的加密为将密钥k编排成Nr个轮密钥k1,k2,...,kNr,将明文x定义为初始状态w0,经过Nr轮变换得到wNr为密文y,即w0=x,w1=g(w0,k1),w2=g(w1,k2),...wNr-1=g(wNr-2,kNr-1),wNr=g(wNr-1,kNr)y=wNr迭代密码的解密为将密文y定义为初始状态wNr,经过Nr轮逆变换得到w0为明文x,即y=wNr,wNr-1=g-1(wNr,kNr),wNr-2=g-1(wNr-1,kNr-1)...w1=g-1(w2,k2),w0=g
7、-1(w1,k1),x=w01.1.2代替-置换网络(Substitution-PermutationNetwork)代替-置换网络(Substitution-PermutationNetwork)是一种简单的迭代密码。处理的明文单元和状态值长度为l×m,轮函数g包括两个核心变换——代替和置换,分别记为πs和πp,有πs:{0,1}l→{0,1}lπp:{1,2,...,lm}→{1,2,...,