密码学基础实验报告模板课件doc.docx
《密码学基础实验报告模板课件doc.docx》由会员分享,可在线阅读,更多相关《密码学基础实验报告模板课件doc.docx(6页珍藏版)》请在冰点文库上搜索。
密码学基础实验报告模板课件doc
实验总成绩:
报告份数:
西安邮电大学
通信与信息工程学院
————————————————————密——码——学——报告装
订
线
专业班级:
学生姓名:
学号(班内序号):
2015年12月25日
————————————————————————————————
实验一棋盘密码
一.实验目的
编写实现棋盘密码体制的程序并进行验证
二.实验要求
1.能对明文中出现的26个英文字母(包括大小写)及标点符号等加密。
2.从键盘输入密钥并输出棋盘进行验证。
3.能对给定的明文或密文进行正确的加密和解密。
三.实验原理
古代最早的棋盘密码体制是这样的:
将26个字母排列在一个5*5的方格
里,其中i和j填在同一个里,每个字母对应一数,其中分别是该字
母所在的行、列标号。
这样就可以将明文的字母集合转换成密文的数字集合。
四.实验步骤
1.编写实现棋盘密码体制的程序,包括加密和解密。
2.运行程序,输入棋盘密钥。
3.选择加密,并输入明文,根据棋盘验证加密结果是否正确。
4.选择解密,并输入密文,根据棋盘验证解密结果是否正确。
5.流程图:
五.实验结果
-1-
-2-
实验二仿射密码
一.实验目的
编写实现仿射密码体制的程序并进行验证。
二、实验要求
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互素。
四、实验流程
-3-
五.实验结果
-4-
实验三可逆性检验
一、实验目的:
1熟练掌握欧几里德算法,并学会利用其求逆。
1
2根据改进的欧几里德算法用VC++语言编写程序实现计算amodn
的
值。
二、实验要求:
编写出来的程序,要求可以判定a和n是否互素,a在n上是否可逆,逆
元是否唯一,相关的参数需要从键盘输入。
三、实验原理:
对于任一个正整数n,Zn是一个整环,a属于Zn,存在ba
1
属于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;所以ya
1
。
四.实验流程
五.实验结果
-5-
-6-
实验四扩展的欧几里德算法
一.实验目的
编写利用改进的欧几里得算法计算逆元的程序。
二.实验要求
1.相关参数从键盘输入。
2.判断逆元是否存在,若存在,计算逆元。
三.实验原理
对任一正整数n,Zn做成环,假设a∈Zn则a存在乘法逆的充要条件是
(a,n)=1.通过辗转相除法可求出两个正整数a和n的最大公因子r。
若r=
1,则a,n互素,将原来的ojilide算法进行如下改进后,可以在a,n互素的条
件下求的a的乘法逆。
构造两个序列:
{t0,t1,⋯m,t}和{s0,s1,⋯,sm},初始化为:
t0=0,t1=1,tj=tj-2–qj-1*tj-1,j≥2
s0=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;
-7-
r=n0-q*a0;
}while(r>0);
-1modn=tmodn验证如下:
若r=1,则a
∵(a,n)=1∴sm*n+tm*a=1
两边同取模n,得:
tm*amodn=1
因此a-1modn=tmmodn。
tm即程序中最后一步的t。
四.实验步骤
1.编写程序。
2.运行程序,输入不同范围内的a和n,求a的逆元。
3.对实验结果进行验证。
4.流程图为:
五.实验结果
-8-
-9-
实验五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,
作为该程序的公钥;
四、实验流程
-10-
五.实验结果
-11-
指导教师评语:
—————————————————————————
装
订
线
实验成绩:
指导(辅导)教师:
————————————————————————-1—2-———————