您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 密码学基础实验报告模板
西安邮电大学通信与信息工程学院密码学报告专业班级:学生姓名:学号(班内序号):2015年12月25日——————————————————————————装订线—————————————————————————————————报告份数:实验总成绩:-1-实验一棋盘密码一.实验目的编写实现棋盘密码体制的程序并进行验证二.实验要求1.能对明文中出现的26个英文字母(包括大小写)及标点符号等加密。2.从键盘输入密钥并输出棋盘进行验证。3.能对给定的明文或密文进行正确的加密和解密。三.实验原理古代最早的棋盘密码体制是这样的:将26个字母排列在一个5*5的方格里,其中i和j填在同一个里,每个字母对应一数,其中分别是该字母所在的行、列标号。这样就可以将明文的字母集合转换成密文的数字集合。四.实验步骤1.编写实现棋盘密码体制的程序,包括加密和解密。2.运行程序,输入棋盘密钥。3.选择加密,并输入明文,根据棋盘验证加密结果是否正确。4.选择解密,并输入密文,根据棋盘验证解密结果是否正确。5.流程图:五.实验结果-2--3-实验二仿射密码一.实验目的编写实现仿射密码体制的程序并进行验证。二、实验要求1给出仿射密码的的加密程序。2要求密钥从键盘输入。3掌握仿射密码的密码译制,弄清其加密过程。三、实验原理令P=C=Z26,K={(a,b)∈Z26*Z26},对任意的(a,b)∈K,定义:加密:y=ek(x)=(a*x+b)mod26,解密:dk(y)=a-1(y-b)mod26.a,b为密钥,密钥空间为26×26。在加密的过程中,要使所加密有唯一的解,必须满足a与26互素。这是由下面的定理得出。定理:设a∈Zm,a为任意的,b∈Zm,同余方程:a*x≡bmodm有唯一解的充要条件是:a与m互素。四、实验流程-4-五.实验结果-5-实验三可逆性检验一、实验目的:1熟练掌握欧几里德算法,并学会利用其求逆。2根据改进的欧几里德算法用VC++语言编写程序实现计算namod1的值。二、实验要求:编写出来的程序,要求可以判定a和n是否互素,a在n上是否可逆,逆元是否唯一,相关的参数需要从键盘输入。三、实验原理:对于任一个正整数n,Zn是一个整环,a属于Zn,存在ab1属于Zn使得a*b≡1modn的充要条件是gcd{n,a}=1(gcd{n,a}表示n和a的最大公约数);若gcd{n,a}=1,由最大公约数定理,存在x和y,使得gcd{n,a}=x*n+y*a=1即存在y使得b*y≡1modn;所以ay1。四.实验流程五.实验结果-6--7-实验四扩展的欧几里德算法一.实验目的编写利用改进的欧几里得算法计算逆元的程序。二.实验要求1.相关参数从键盘输入。2.判断逆元是否存在,若存在,计算逆元。三.实验原理对任一正整数n,Zn做成环,假设a∈Zn则a存在乘法逆的充要条件是(a,n)=1.通过辗转相除法可求出两个正整数a和n的最大公因子r。若r=1,则a,n互素,将原来的ojilide算法进行如下改进后,可以在a,n互素的条件下求的a的乘法逆。构造两个序列:{t0,t1,…,tm}和{s0,s1,…,sm},初始化为:t0=0,t1=1,tj=tj-2–qj-1*tj-1,j≥2s0=1,s1=0,sj=sj-2–qj-1*sj-1,j≥2且:对于0≤j≤m,rj=sj*r0+tj*r1改进的ojilide算法描述如下:初始化:a0=a;n0=n;s0=1;t0=0;s=0;t=1;q=n0/a0;r=n0-q*a0;算法流程:do{temp=t0-q*t;t0=t;t=temp;temp=s0-q*s;s0=s;s=temp;n0=a0;a0=r;q=n0/a0;-8-r=n0-q*a0;}while(r0);若r=1,则a-1modn=tmodn验证如下:∵(a,n)=1∴sm*n+tm*a=1两边同取模n,得:tm*amodn=1因此a-1modn=tmmodn。tm即程序中最后一步的t。四.实验步骤1.编写程序。2.运行程序,输入不同范围内的a和n,求a的逆元。3.对实验结果进行验证。4.流程图为:五.实验结果-9--10-实验五RSA加密算法一、实验目的:1.用VC++实现RSA加密算法,并且该算法应该具备素性检测的功能。2.熟悉RSA加密算法的原理以及欧拉定理在其中的应用,加深对RSA密码体制的理解,并能运用该算法中所使用的基本定理。二、实验要求:1、复习RSA密码体制、欧几里德算法以及欧拉定理;2、在VC++中编写该密码体制,并运行出其结果,将结果保存在实验报告中。三、实验原理:1RSA加密体制:设n=pq,其中p和q是两个素数,P=C=Z,定义:K={(n,p,q,a,b)|ab%Q(n)=1},对于k属于K,其中:x,y属于Z(n)公钥:(n,b);私钥:(p,q,a);2成两个大的素数p和q:用来作为加密算法中的私钥,并且用来生成n,作为该程序的公钥;四、实验流程-11-五.实验结果-12-指导教师评语:实验成绩:指导(辅导)教师:——————————————————————————装订线—————————————————————————————————
本文标题:密码学基础实验报告模板
链接地址:https://www.777doc.com/doc-1766318 .html