密码学基础实验报告模板课件doc.docx

上传人:b****5 文档编号:11551743 上传时间:2023-03-19 格式:DOCX 页数:6 大小:17.51KB
下载 相关 举报
密码学基础实验报告模板课件doc.docx_第1页
第1页 / 共6页
密码学基础实验报告模板课件doc.docx_第2页
第2页 / 共6页
密码学基础实验报告模板课件doc.docx_第3页
第3页 / 共6页
密码学基础实验报告模板课件doc.docx_第4页
第4页 / 共6页
密码学基础实验报告模板课件doc.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

密码学基础实验报告模板课件doc.docx

《密码学基础实验报告模板课件doc.docx》由会员分享,可在线阅读,更多相关《密码学基础实验报告模板课件doc.docx(6页珍藏版)》请在冰豆网上搜索。

密码学基础实验报告模板课件doc.docx

密码学基础实验报告模板课件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-———————

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1