实验总成绩:——————————————————————————装订线—————————————————————————————————报告份数:邮电大学通信与信息工程学院密码学报告专业班级:学生:学号(班序号): (包括大小写)及标点符号等加密。从键盘输入密钥并输出棋盘进行验证。能对给定的明文或密文进行正确的加密和解密。 古代最早的棋盘密码体制是这样的:将26个字母排列在一个5*5的方格里,其中i和j填在同一个里,每个字母对应一数,其中分别是该字母所在的行、列标号。这样就可以将明文的字母集合转换成密文的数字集合。,包括加密和解密。运行程序,输入棋盘密钥。选择加密,并输入明文,根据棋盘验证加密结果是否正确。选择解密,并输入密文,根据棋盘验证解密结果是否正确。:。二、实验要求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),b为密钥,密钥空间为26×26。在加密的过程中,要使所加密有唯一的解,必须满足a与26互素。这是由下面的定理得出。定理:设a∈Zm,a为任意的,b∈Zm,同余方程:a*x≡bmodm有唯一解的充要条件是:a与m互素。四、实验流程实验结果实验三可逆性检验一、实验目的:1熟练掌握欧几里德算法,并学会利用其求逆。2根据改进的欧几里德算法用VC++语言编写程序实现计算的值。二、实验要求:编写出来的程序,要求可以判定a和n是否互素,a在n上是否可逆,逆元是否唯一,相关的参数需要从键盘输入。三、实验原理:对于任一个正整数n,Zn是一个整环,a属于Zn,存在属于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;所以。 编写利用改进的欧几里得算法计算逆元的程序。。判断逆元是否存在,若存在,计算逆元。 对任一正整数n,Zn做成环,假设a∈Zn则a存在乘法逆的充要条件是(a,n)=。若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≥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; r=n0-q*a0; }while(r>0);若r=1,则a-1modn=tmodn验证如下:∵(a,n)=1∴sm*n+tm*a=1两边同取模n,得:tm*amodn=1因此a-1modn=tmmodn。tm即程序中最后一步的t。。运行程序,输入不同围的a和n,求a的逆元。对实验结果进行验证。流程图为:
密码学基础实验报告模板 来自淘豆网m.daumloan.com转载请标明出处.