凯撒加密解密上机实验报告

凯撒加密解密上机实验报告
凯撒加密解密上机实验报告

计算机安全基础

凯撒加密解密

上机实验报告

学院年级

专业班

学生姓名

学生学号

实验一凯撒加密解密

凯撒密码简介:恺撒密码的替换方法是通过排列明文和密文字母表,密文字母表示通过将

明文字母表向左或向右移动一个固定数目的位置。例如,当偏移量是左移3的时候(解密时

的密钥就是3):

明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ 密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC

使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。需要解密的人则根据事先已知的密钥反过来操作,得到原来的明文。

例如:

明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG 密文:WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ

源代码:

#include "kaisa.h"

using namespace std;

void Kaisa::setI()

{

cout << "\n请输入加密密码:";

cin >> i;

}

void Kaisa::jiami()

{

char a, b, c;

cout << "\n请输入明文:\t";

cin >> a;

b = char('z' - i%26);

c = char('Z' - i%26);

cout << "\n密文是:\t";

while(a != '\n')

{

if((a <= 'z' && a >= 'a') || ( a <= 'Z' && a >='A'))

{ if((a <= b && a >= 'a') || ( a <= c && a >='A'))

cout << char(a + i%26);

if(a > c && a <= 'Z')

cout << char(a + i%26 - 26);

if(a > b && a <= 'z')

cout << char(a + i%26 - 26);

if(a == ' ')

cout << " ";

}

else

凯撒密码

南通大学网络安全实验课 实验报告 学生姓名 所在院系 专业 学号 指导教师 南通大学 2014年 5 月

凯撒密码 一、概念与原理 它是一种代换密码。据说恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码。 凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推X将变成A,Y变成B,Z变成C。由此可见,位数就是凯撒密码加密和解密的密钥。 如恺撒使用过的偏移量为3的这种密码,若明文为: M=Casesar cipher is a shift substitution 则密文为 C=Fdvhvdu flskhu lv d vkliw vxevwlwxwlrq 二、实验内容与步骤 1、手动完成Caesar密码 (1)在实验原理部分我们已经了解了Caesar密码的基本原理,那么我们先写出当密钥k=3时,对应明文:data security has evolved rapidly的密文。 (2)进入实验平台,单击工具栏中的“密码工具”按钮,启动密码工具,在向导区点击“Caesar密码”。在明文输入区输入明文:data security has evolved rapidly。将密钥k调节到3,查看相应的密文,并与你手动加密的密文进行比较。 请根据密钥验证密文与明文对应关系是否正确。 2、Caesar加密 (1)进入“加密解密”|“Caesar密码”视图,在明文输入区输入明文(明文应为英文),单击“加密”按钮进行加密。 (2)调节密钥k的微调按钮或者对照表的移位按钮,选择合适的密钥k值,并记下该密钥k值用于同组主机的解密。加密工作完成后,单击“导出”按钮将密文默认导出到Caesar 共享文件夹(D:\Work\Encryption\Caesar\)中,默认文件名为Caesar密文.txt。 (3)通知同组主机接收密文,并将密钥k通告给同组主机。 (4)单击“导入”按钮,进入同组主机Work\Encryption\Caesar目录(\\同组主机IP\Work\Encryption\Caesar),打开Caesar密文.txt。 (5)调节密钥k的微调按钮或对照表的移位按钮,将k设为同组主机加密时的密钥k 值,这时解密已经成功。 (6)将解密后的明文与同组主机记录的明文比较,请对比明文是否相同。 3、Caesar密码分析 (1)本机进入“密码工具”|“加密解密”|“Caesar密码”,在明文输入区输入明文(要求明文有一定的意义以便让同组主机分析)。 (2)调节密钥k的微调按钮或者对照表的移位按钮,选择合适的密钥k值完成Caesar 加密,单击“导出”按钮,将密文默认导出到Caesar共享文件夹中。 (3)通告同组主机(不要通告密钥值k)密文已经放在共享文件夹中,让同组主机获

文件加密与解密实验报告

HUNAN UNIVERSITY 程序设计训练——文件加密与解密 报告 学生姓名X X X 学生学号20110102308 专业班级建环308 指导老师何英 2012-07-01至 2012-07-13

一、程序设计目的和要求 (3) 二、程序设计内容 (4) 1、总体设计 (4) 1.1主控选择模块 (4) 1.2加密模块 (4) 1.3解密模块 (4) 2、流程图 (5) 三模块详细说明 (6) 四、测试数据及其结果 (7) 五、课程设计总结 (8) 六、附录 (9) 附录1:参考文献 (9) 附录2:程序源代码 (9)

一、程序设计目的和要求 1、目的:为保证个人数据资料不被他人窃取使用,保护个人隐私及个人文件。设计一个基于c语言的文本文件加密及解密软件,可以方便对文本文件的加密与解密。本设计实现了文本文件的解密及解密,运行软件之后只需输入任意一个文本文件的文件名及后缀名即可对该文本文件进行加密或解密操作。本设计的加密与解密系统,使用了面向各类文件的方法,运用Microsoft Visual C++ 6.0实现具有加密、解密、帮助信息、读取文本文件、显示结果、退出等功能的文件加密与解密系统。 2、要求: (1)从键盘输入要进行加密的一行字符串或者需要加密的文件名。 (2)显示菜单: (3)选择菜单,进行相应的操作。加密方法是设置一加密字符串以及对文件的哪些部分进行加密;加密是将原始文件加密并保存到文件中;解密是将加了密的文件还原并保存到文件中,同时应比较与原始文件的一致性; 3、其他要求 (1)变量、函数命名符合规范。 (2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。

信息安全加密实验报告

重庆交通大学实验报告 班级:计信专业2012级2班 学号: 631206060232 姓名:娄丽梅 实验项目名称:DES加解密程序设计与实现 实验项目性质:设计性(验证性) 实验所属课程:信息安全 实验室(中心):软件实验室 指导教师:米波 实验完成时间: 2014 年12月11日

一、实验目的 1、理解DES加密与解密的程序设计算法思想。 2、编写DES加密与解密程序,实现对明文的加密与解密,加深对数据加密与解密的理解,掌握DES加密算法思想,提高网络安全的编程能力。 二、实验主要内容及原理 (一)实验内容 1、掌握DES算法; 2、编写DES算法。 (二)实验原理 1、初始置换 初始置换在第一轮运算之前执行,对输入分组实施如下表所示的变换。此表应从左向右、从上向下读。在将这64位数据分为左右两部分,每部分分别为32位,将左32位留下,将右32位按照下表进行排列 2、密钥置换 一开始,由于不考虑每个字节的第8位,DES的密钥由64位减至56位。每个字节第8位可作为奇偶校验位以确保密钥不发生错误。接着,56位密钥被分成两部分,每部分28位。然后,根据轮数,这两部分分别循环左移l位或2位。在DES的每一轮中,从56位密钥选出48位子密钥(Sub Key)。 3、S盒置换 当产生了48位密钥后就可以和右边32位明文进行异或运算了,得到48位的密文。 再经过下论的S盒跌带,其功能是把6bit数据变为4bit数据,每个S盒是一个4行、16列的表。盒中的每一项都是一个4位的数。S盒的6个位输入确定了其对应的输出在哪一行哪一列。 4、P盒置换 S盒代替运算后的32位输出依照P盒进行置换。该置换把每输入位映射到输出位,任意一位不能被映射两次,也不能被略去,这个置换叫做直接置换。 5、再次异或运算 最后,将P盒置换的结果与最初的64位分组的左半部分异或,然后左、右半部分交换,接着开始另一轮。 6、当进行到16轮后,最终进行一次末置换,形成密文

计算机上机实验内容及实验报告要求(完整版)

报告编号:YT-FS-1915-76 计算机上机实验内容及实验报告要求(完整版) After Completing The T ask According To The Original Plan, A Report Will Be Formed T o Reflect The Basic Situation Encountered, Reveal The Existing Problems And Put Forward Future Ideas. 互惠互利共同繁荣 Mutual Benefit And Common Prosperity

计算机上机实验内容及实验报告要 求(完整版) 备注:该报告书文本主要按照原定计划完成任务后形成报告,并反映遇到的基本情况、实际取得的成功和过程中取得的经验教训、揭露存在的问题以及提出今后设想。文档可根据实际情况进行修改和使用。 一、《软件技术基础》上机实验内容 1.顺序表的建立、插入、删除。 2.带头结点的单链表的建立(用尾插法)、插入、删除。 二、提交到个人10m硬盘空间的内容及截止时间 1.分别建立二个文件夹,取名为顺序表和单链表。 2.在这二个文件夹中,分别存放上述二个实验的相关文件。每个文件夹中应有三个文件(.c文件、.obj 文件和.exe文件)。 3.截止时间:12月28日(18周周日)晚上关机时为止,届时服务器将关闭。 三、实验报告要求及上交时间(用a4纸打印)

1.格式: 《计算机软件技术基础》上机实验报告 用户名se××××学号姓名学院 ①实验名称: ②实验目的: ③算法描述(可用文字描述,也可用流程图): ④源代码:(.c的文件) ⑤用户屏幕(即程序运行时出现在机器上的画面): 2.对c文件的要求: 程序应具有以下特点:a 可读性:有注释。 b 交互性:有输入提示。 c 结构化程序设计风格:分层缩进、隔行书写。 3.上交时间:12月26日下午1点-6点,工程设计中心三楼教学组。请注意:过时不候哟! 四、实验报告内容 0.顺序表的插入。 1.顺序表的删除。

随机过程上机实验报告讲解.pdf

2015-2016第一学期随机过程第二次上机实验报告 实验目的:通过随机过程上机实验,熟悉Monte Carlo计算机随机模拟方法,熟悉Matlab的运行环境,了解随机模拟的原理,熟悉随机过程的编码规律即各种随机过程的实现方 法,加深对随机过程的理解。 上机内容: (1)模拟随机游走。 (2)模拟Brown运动的样本轨道。 (3)模拟Markov过程。 实验步骤: (1)给出随机游走的样本轨道模拟结果,并附带模拟程序。 ①一维情形 %一维简单随机游走 %“从0开始,向前跳一步的概率为p,向后跳一步的概率为1-p” n=50; p=0.5; y=[0 cumsum(2.*(rand(1,n-1)<=p)-1)]; % n步。 plot([0:n-1],y); %画出折线图如下。

%一维随机步长的随机游动 %选取任一零均值的分布为步长, 比如,均匀分布。n=50; x=rand(1,n)-1/2; y=[0 (cumsum(x)-1)]; plot([0:n],y);

②二维情形 %在(u, v)坐标平面上画出点(u(k), v(k)), k=1:n, 其中(u(k))和(v(k)) 是一维随机游动。例 %子程序是用四种不同颜色画了同一随机游动的四条轨 道。 n=100000; colorstr=['b' 'r' 'g' 'y']; for k=1:4 z=2.*(rand(2,n)<0.5)-1; x=[zeros(1,2); cumsum(z')]; col=colorstr(k); plot(x(:,1),x(:,2),col);

hold on end grid ③%三维随机游走ranwalk3d p=0.5; n=10000; colorstr=['b' 'r' 'g' 'y']; for k=1:4 z=2.*(rand(3,n)<=p)-1; x=[zeros(1,3); cumsum(z')]; col=colorstr(k); plot3(x(:,1),x(:,2),x(:,3),col);

凯撒密码实验

一、实验目的 通过实验熟练掌握凯撒密码算法,学会凯撒密码算法程序设计。 二、实验环境 软件工具:Visual C++ 6.0 操作系统:windows xp 三、实验思想 在密码学中存在着各种各样的置换方式,但所有不同的置换方式都包含2 个相同的元素。密钥和协议(算法)。凯撒密码的密钥是3,算法是将普通字母表中的字母用密钥对应的字母替换。置换加密的优点就在于它易于实施却难于破解. 发送方和接收方很容易事先商量好一个密钥,然后通过密钥从明文中生成密文,即是敌人若获取密文,通过密文直接猜测其代表的意义,在实践中是不可能的。凯撒密码的加密算法极其简单。其加密过程如下: 在这里,我们做此约定:明文记为m,密文记为c,加密变换记为E(k1,m)(其中k1为密钥),解密变换记为D(k2,m)(k2为解密密钥)(在这里不妨假设 k1=k2,记为k)。凯撒密码的加密过程可记为如下一个变换: c≡m+k mod n (其中n为基本字符个数)同样,解密过程可表示为: m≡c+k mod n (其中n为基本字符个数) 四、实验数据(源代码) #include #include #include void table(char *keyword) //筛选密钥(去重复去空格) { int i,j,k; for(i=0;*(keyword+i)!='\0';i++) { for(j=i;*(keyword+j)!='\0';j++) { if(i!=j) if(*(keyword+i)==*(keyword+j)||*(keyword+j)==' ') { for(k=j;*(keyword+k)!='\0';k++) *(keyword+k)=*(keyword+k+1); j--; } } } } void newTab(char *keyword) //生成密钥表 { char ch;

数据加密实验报告

实验报告 课程:计算机保密_ _ 实验名称:数据的加密与解密_ _ 院系(部):计科院_ _ 专业班级:计科11001班_ _ 学号: 201003647_ _ 实验日期: 2013-4-25_ _ 姓名: _刘雄 _ 报告日期: _2013-5-1 _ 报告评分:教师签字:

一. 实验名称 数据加密与解密 二.运行环境 Windows XP系统 IE浏览器 三.实验目的 熟悉加密解密的处理过程,了解基本的加密解密算法。尝试编制基本的加密解密程序。掌握信息认证技术。 四.实验内容及步骤 1、安装运行常用的加解密软件。 2、掌握加解密软件的实际运用。 *3、编写凯撒密码实现、维吉尼亚表加密等置换和替换加解密程序。 4、掌握信息认证的方法及完整性认证。 (1)安装运行常用的加解密软件,掌握加解密软件的实际运用 任务一:通过安装运行加密解密软件(Apocalypso.exe;RSATool.exe;SWriter.exe等(参见:实验一指导))的实际运用,了解并掌握对称密码体系DES、IDEA、AES等算法,及非对称密码体制RSA等算法实施加密加密的原理及技术。 ?DES:加密解密是一种分组加密算法,输入的明文为64位,密钥为56位,生成的密文为64位。 ?BlowFish:算法用来加密64Bit长度的字符串或文件和文件夹加密软件。 ?Gost(Gosudarstvennyi Standard):算法是一种由前苏联设计的类似DES算法的分组密码算法。它是一个64位分组及256位密钥的采用32轮简单迭代型加密算法. ?IDEA:国际数据加密算法:使用128 位密钥提供非常强的安全性; ?Rijndael:是带有可变块长和可变密钥长度的迭代块密码(AES 算法)。块长和密钥长度可以分别指定成128、192 或256 位。 ?MISTY1:它用128位密钥对64位数据进行不确定轮回的加密。文档分为两部分:密钥产生部分和数据随机化部分。 ?Twofish:同Blowfish一样,Twofish使用分组加密机制。它使用任何长度为256比特的单个密钥,对如智能卡的微处理器和嵌入在硬件中运行的软件很有效。它允许使用者调节加密速度,密钥安装时间,和编码大小来平衡性能。 ?Cast-256:AES 算法的一种。 (同学们也可自己下载相应的加解密软件,应用并分析加解密过程) 任务二:下载带MD5验证码的软件(如:https://www.360docs.net/doc/d01720802.html,/downloads/installer/下载(MySQL):Windows (x86, 32-bit), MSI Installer 5.6.11、1.5M;MD5码: 20f788b009a7af437ff4abce8fb3a7d1),使用MD5Verify工具对刚下载的软件生成信息摘要,并与原来的MD5码比较以确定所下载软件的完整性。或用两款不同的MD5软件对同一文件提取信息摘要,而后比较是否一致,由此可进行文件的完整性认证。

实验三 随机过程通过线性系统

实验名称线性系统对随机过程的响应 一、实验目的 通过本仿真实验了解正态白色噪声随机过程通过线性系统后相关函数以及功率谱的变化;培养计算机编程能力。 二、实验平台 MATLAB R2014a 三、实验要求 (1)运用正态分布随机数产生函数产生均值为m=0,根方差σ=1的白色正态分布 序列{u(n)|n=1,2,…,2000},画出噪声u(n)的波形图。 (2)设离散时间线性系统的差分方程为 x(n)=u(n)-0.36u(n-1)+0.85u(n-2)(n=3,4,…,2000). 画出x(n)的波形图。 (3)随机过程x(n)的理论上的功率谱函数为 在[0,π]范围内对w进行采样,采样间隔0.001π,计算S(i×0.001π) (i=1,2,…,1000);画出波形图。 (4)根据步骤二产生的数据序列x(n)计算相关函数的估计值 与理论值1.1296、-0.666、0.85、0、0、0的差异。 (5)根据相关函数的估计值对随机过程的功率谱密度函数进行估计 在[0,π]范围内对w进行采样,采样间隔0.001π,计算S(i×0.001π) (i=1,2,…,1000);画出波形图,比较其与理论上的功率谱密度函数S(w)的差异。 (6)依照实验1的方法统计数据x(n)在不同区间出现的概率,计算其理论概率, 观察二者是否基本一致。

四、实验代码及结果 A、运用正态分布随机数产生函数产生均值为m=0,根方差σ=1的白色正态分布序列{u(n)|n=1,2,…,2000},画出噪声u(n)的波形图。 代码实现: 波形图: 分析:运用正态分布随机数产生函数产生均值为0,根方差σ=1的白色噪声样本序列。 B、设离散时间线性系统的差分方程为 x(n)=u(n)-0.36u(n-1)+0.85u(n-2)(n=3,4,…,2000). 画出x(n)的波形图。 代码实现:

信息安全实验要求

一、实习目的 1.熟悉java平台开发环境; 2.理解常见古典加密算法:凯撒密码、多字母替代密码、多表替代密码; 3.理解古典加密技术中的替换技术、置换技术。 二、实习要求 1.实习前认真预习第1、2章相关内容; 2.对实习内容中给定题目上机前先进行程序编写和数据准备; 3.上机编辑、调试、运行程序,并保存最终程序,然后撰写实习报告; 4.实习报告需用专门的报告纸书写,内容包括:实习名称、实习目的、内容、操作过程、程序清单,运行结果,实习中出现的问题及解决方法、实习体会等,具体要求见附录1。 三、实习内容 1.[问题描述] 凯撒密码是把字母表中的每个字母用该字母后的某个字母进行代替。 凯撒密码的通用加密算法是:C=E(P)=(P+k) mod 26 0<26<=""> 凯撒密码的通用解密算法是:P=D(C)=(P-k) mod 26 0<26<=""> 2.[阶梯任务] (1)利用课本表2-1实现凯撒密码的加密、解密算法,能够根据用户选择秘钥(移位数)和明文进行加解密,用户密钥在整数范围内; (2)对于恺撒加密实现图形界面,用户可以输入明文和密钥,在文本框中显示对应密文; (3)实现用户对文件的操作,用户可以通过指定路径文件和密钥,加密结果存储在指定文件中; (4)利用一种已经存在的编码方式,如ASCII,实现任意英文状态字符的加密; (5)学习一种中文编码方式,实现字符集加密和解密。(本项选做)。 3.[实现提示] (1) 用户可以通过命令实现密钥和明文的选择; (2) 由于字母表中共有26个字符,因此,移位前应先将移动的位数(key)和26取模。Java平台中可以实现字符和整数的自动转换,因此将字符加上一个正整数代表在字母表中右移位数。如果移动的位数为负值,则代表在字母中左移位数。

AES加密解密实验报告

信息安全工程课程 实验报告 AES加密解密的实现 课程名称:信息安全工程 学生姓名:黄小菲 学生学号: 3112041006 专业班级:系统工程2038班 任课教师:蔡忠闽 2012年11月22日

目录 1.背景 (1) 1.1 Rijndael密码的设计标准: (1) 1.2 设计思想 (1) 2.系统设计 (2) 2.1系统主要目标 (2) 2.2功能模块与系统结构 (2) 2.2.1字节替换SubByte (2) 2.2.2行移位ShiftRow (2) 2.2.3 列混合MixColumn (3) 2.2.4 轮密钥加AddRoundKey (4) 2.2.5 逆字节替换 (4) 2.2.6逆行移位InvShiftRow (4) 2.2.7 逆列混淆 (4) 3 加密模式 (5) 3.1 电子密码本ECB模式 (5) 3.2加密块链模式CBC模式 (6) 4 系统功能程序设计 (8) 4.1基本加密部分 (8) 4.1.1字节替换 (8) 4.1.2行移位 (8) 4.1.3列混合 (9) 4.1.4轮密钥加 (9) 4.1.5密钥扩展 (10) 4.1.6逆字节替换 (11) 4.1.7逆行移位 (11) 4.1.8逆列混合 (12) 4.1.9加密 (12) 4.1.10解密 (13) 5 实验结果 (14) 5.1 需要加密文件 (14) 5.2 实验加密解密结果 (15) 6 参考资料 (16)

1.背景 AES,密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。AES 有一个固定的128位的块大小和128,192或256位大小的密钥大小。Rijndael算法汇聚了安全性、效率高、易实现性和灵活性等优点,是一种较DES更好的算法。 该算法为比利时密码学家Joan Daemen和Vincent Rijmen所设计,结合两位作者的名字,以Rijndael之命名之,投稿高级加密标准的甄选流程。(Rijdael的发音近于"Rhine doll"。)AES在软体及硬件上都能快速地加解密,相对来说较易于实作,且只需要很少的记忆体。作为一个新的加密标准,目前正被部署应用到更广大的范围. 1.1 Rijndael密码的设计标准: ①抵抗所有已知的攻击。 ②在多个平台上速度快,编码紧凑。 ③设计简单。 当前的大多数分组密码,其轮函数是Feistel结构。 Rijndael没有这种结构。 Rijndael轮函数是由3个不同的可逆均匀变换 1.2 设计思想 ?分组和密钥长度可变,各自可独立指定为128、192、256比特。 ?状态 ?算法中间的结果也需要分组,称之为状态,状态可以用以字节为元素的矩阵 阵列表示,该阵列有4行,列数N b为分组长度除32 ?种子密钥 ?以字节为元素的矩阵阵列描述,阵列为4行,列数N k为密钥长度除32

C程序设计上机实验报告((完整版))

C语言程序设计上机实验报告 学院:机械工程学院 班级:机自161213 姓名:刘昊 学号:20162181310 实验时间:2017 年3 月6 号 任课老师:张锐

C语言程序设计上机实验报告 实验一 一、实验名称: C 程序的运行环境和运行C程序的方法 二、实验目的:了解在 程序 C 编译系统上如何编辑、编译、连接和运行一个 C 三、实验内容: (1). (2). (3). 输入并运行一个简单的C程序。 设计程序,对给定的两个数求和。 设计程序,对给定的两个数进行比较,然后输出其中较大的数。 四、源程序代码: 代码1: 运行结果1:

程序分析1: 该程序用来判断所输入的整数是否为一个素数,如果一个数能被除了 1 和它本身整除,还能被其它数整除,那么它就不是一个素数,因此,用for 循环来进行整除过程的简写。 代码2: 运行结果2:

程序分析2: 简单的使用printf() 和scanf() 函数进行简单的数据运算。代码3: 运行结果3:

程序分析3: 使用if 语句进行判断。 五.实验总结 C语言程序设计上机实验报告 实验二 一、实验名称:顺序结构程序设计 二、实验目的:正确使用常用运算符(算术运算符、赋值运算符)的用法, 熟练掌握算术运算符及其表达式,逻辑运算符和逻辑表达式。 三、实验内容: (1). 编写程序,实现小写字母转大写。

(2). 编写程序,实现输入两个不同类型数据后,经过适当的运算(加、减、乘、除)后输出。 (3). 编写程序,计算三角形面积、立方体的体积和表面积、圆的面积和周长。 (4). 编写程序,实现单字符getchar 和putchar 输入输出。 (5). 编写程序,实现十进制、八进制、十六进制不同数制的输出。 四、源程序代码 代码1: 运行结果1: 程序分析1:

相关正态随机过程的仿真实验报告

实验名称:相关正态随机过程的仿真 一、实验目的 以正态随机过程为例,掌握离散时间随机过程的仿真方法,理解正态分布随机过程与均匀分布随机过程之间的相互关系,理解随机过程的相关函数等数值特征;培养计算机编程能力。 二、实验内容 相关正态分布离散随机过程的产生 (1)利用计算机语言的[0,1]区间均匀分布随机数产生函数生成两个相互独立的序列 {U1(n)|n=1,2,…100000},{U2(n)|n=1,2,…100000} 程序代码: clc; N=100000; u1=rand(1,N); u2=rand(1,N);%----------------在[0,1] 区间用rand函数生成两个相互独立的随机序列 n1=hist(u1,10);%--------------------------hist函数绘制分布直方图 subplot(121);%-----------------------------一行两列中的第一个图 bar(n1); n2=hist(u2,10); subplot(122); bar(n2); 实验结果:

(2)生成均值为m=0,根方差σ=1的白色正态分布序列 {e(n)|n=1,2, (100000) [][]m n u n u n +=)(2cos )(ln 2-)(e 21πσ 程序代码: clc; N=100000; u1=rand(1,N); u2=rand(1,N);%---------------在[0,1] 区间用rand 函数生成两个相互独立的随机序列 en=sqrt(-2*log(u1)).*cos(2*pi*u2);%--------定义白色正态分布e(n) n=hist(en,100);%--------------------------hist 函数绘制分布直方图 bar(n); 实验结果: (3)假设离散随机过程x(n)服从均值为x m =0、根方差为2x =σ、相关函数为||2)(r k x x k ασ= )6.0(=α 功率谱函数为

信息安全实验-凯撒加密加法乘法变换

【实验目的】 1. 简单加密方法的原理 2. 凯撒密码的原理及程序的编写 【实验设备与环境】 (1)计算机 (2)TC 【实验步骤(内容)】 凯撒密码就是单表代替密码,它的每一个明文字符都由其右边第3个(模26)字符代替(A由D代替,B由E代替,W由Z代替,X由A代替,Y由B代替,Z由C代替)。 (1)加法变换 c≡ (m + k) mod 26 其中m是明文对应的数据,c是与明文对应的密文数据,k是加密用的参数,叫密钥。比如:data security对应数据序列4,1,20,1,19,5,3,21,18,9,20,25,当k=5时,得密文序列9,6,25,6,24,10,8,0,23,14,25,4。 (2)乘同余码: 移位或等间隔抽取码,明密文之间没有一一对应关系。(容易产生多义性)。变换按照同余乘法进行:加密变换:C=P?k (mod 26),解密变换:P=C÷k (mod 26) ,密钥:k 源程序: #include #include char sumjiami(char ch,int n) { n=n%10; while(ch>='A'&&ch<='Z') { return ('A'+(ch-'A'+n)%26);

} while(ch>='a'&&ch<='z') { return ('a'+(ch-'a'+n)%26); } while(ch>='0'&&ch<='9') { return ('0'+(ch-'0'+n)%10); } return ch; } char sumjiemi(char ch,int n) { static int k; k=n%10; while(ch>='A'&&ch<='Z') { n=26-k; return ('A'+(ch-'A'+n)%26); } while(ch>='a'&&ch<='z') { n=26-k; return ('a'+(ch-'a'+n)%26); } while(ch>='0'&&ch<='9') { n=10-k; return ('0'+(ch-'0'+n)%10); } return ch;

加密技术及密码破解实验报告

第九章、实验报告 实验一、设置Windows启动密码 一、实验目的:利用Windows启动密码保存重要文件。 二、实验步骤: 1、在Windows XP系统中选择开始——运行,在打开输入框中“syskey.exe”,点击确定,打开“保证Windows XP账户数据库的安全”对话框。 2、单击【更新】,打开【启动密码】对话框,然后输入密码,在【确认】文本框中再次输入密码,单击【确定】

实验二、为word文档加密解密 一、实验目的:保护数据的安全 二、实验步骤: 1、打开一个需要加密的文档,选择【工具】——【选项】——【安全性】然后输入想要设置打开文件时所需的密码 2、单击【高级(A)】打开加密类型对话框,选中【加密文档属性】复选框,单击【确定】。

3、打开文件的【确认密码】对话框,输入打开文件时需要的密码,单击【确定】,随即打开【确认密码】对话框,输入密码。 4、保存文件后,重新打开Word文档,打开【密码】,输入打开文件所需的密码,单击【确定】输入修改的密码,单击【确定】 破解word密码 (1)安装Advanced Office Password Recovery软件,安装完成后打开需要破解的word 文档,进行暴力破解,结果如图所示: 实验三、使用WinRAR加密解密文件

一.实验目的:加密文件,保证文件的安全性。 二.实验步骤: 1、在需要加密的文件夹上右击,选中【添加到压缩文件】打开【压缩文件名和参数】 2、选中【压缩文件格式】组合框中的【RAR】并在【压缩选项】中选中【压缩后删除源文件】然后切换到【高级】,输入密码,确认密码。 3、关闭对话框,单击确定,压缩完成后,双击压缩文件,系统打开【输入密码对话框】 破解WinRAR加密的文件 (1)安装Advanced RAR Password Recovery软件,打开WinRAR加密文件,进行暴力破解,获得密码。结果如图:

随机实验报告

随机信号实验报告 课程:随机信号 实验题目:随机过程的模拟与特征估计 学院: 学生名称:

实验目的: 1.学会利用MATLAB模拟产生各类随即序列。 2.熟悉和掌握随机信号数字特征估计的基本方法。 实验内容: 1.模拟产生各种随即序列,并画出信号和波形。 (1)白噪声(高斯分布,正弦分布)。 (2)随相正弦波。 (3)白噪声中的多个正弦分布。 (4)二元随机信号。 (5)自然信号:语音,图形(选做)。 2.随机信号数字特征的估计 (1)估计上诉随机信号的均值,方差,自相关函数,功率谱密度,概率密度。 (2)各估计量性能分析(选做) 实验仪器: PC机一台 MATLAB软件 实验原理:

随机变量常用到的数字特征是数字期望值、方差、自相关函数等。相应地,随机过程常用到的数字特征是数字期望值、方差、相关函数等。它们是由随机变量的数字特征推广而来,但是一般不再是确定的数值,而是确定的时间函数。 1.均值:m x(t)=E[X(t)]=;式中,p(x,t)是X(t)的 一维概率密度。m x(t)是随机过程X(t)的所有样本函数在 时刻t的函数值的均值。在matlab中用mea()函数求均值。 2.方差:(t)=D[X(t)]=E[];(t)是t的确定 函数,它描述了随机过程诸样本函数围绕数学期望m x(t) 的分散程度。若X(t)表示噪声电压,则方差(t)则 表示瞬时交流功率的统计平均值。在matlab中用var()函 数求均值。 3.自相关函数:Rx(t1,t2)=E[X(t1)X(t2)];自相关函数就是用来描 述随机过程任意两个不同时刻状态之间相关性的重要数 字特征。在matlab中用xcorr()来求自相关函数。 4.在matlab中可用函数rand、randn、normr、random即可生成 满足各种需要的近似的独立随机序列。 实验步骤: (一)大体实验步骤 (1)利用MATLAB编写程序。 (2)调试程序。

DES加密与解密C实现+实验报告

DES加密与解密算法 课程名称:工程实践 学生姓名: xxxx 学生学号: xxxx 专业班级: xxxx 任课教师: xxxx 论文提交日期: xxxx

DES加密与解密算法 摘要 本世纪五十年代以来,密码学研究领域出现了最具代表性的两大成就。其中之一就是1971年美国学者塔奇曼(Tuchman)和麦耶(Meyer)根据信息论创始人香农(Shannon)提出的“多重加密有效性理论”创立的,后于1977年由美国国家标准局颁布的数据加密标准。 DES密码实际上是Lucifer密码的进一步发展。它是一种采用传统加密方法的区组密码。它的算法是对称的,既可用于加密又可用于解密。 1977年1月,美国政府颁布:采纳IBM公司设计的方案作为非机密数据的正式数据加密标准(DES枣Data Encryption Standard)。 目前在这里,随着三金工程尤其是金卡工程的启动,DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键数据的保密,如信用卡持卡人的PIN的加密传输,IC卡与POS间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。 关键词:DES算法,加密,解密

Abstract This century since fifty time, cryptography research field is the most representative of the two Achievement. One was the 1971 USA scholar Tuchman (Tuchman) and Meyer (Meyer) based on information theory founder Shannon (Shannon) proposed "multiple encryption effectiveness theory" was founded, in 1977 after the National Bureau of standards promulgated by the America data encryption standard.The DES password is actually a further development of the Lucifer password. It is a traditional encryption method of block cipher. The algorithm is symmetric, which can be used for encryption and decryption can be used. In 1977 January, the government promulgated American: adopted IBM design as a non official data confidential data encryption standard (DES - Data Encryption Standard). At present here, along with three gold project especially golden card project startup, DES algorithm in POS, ATM, magnetic card and intelligent card (IC card), gas station, highway toll station and other fields are widely used, so as to realize the security of key data encryption transmission, such as credit card holders PIN, IC card and POS mutual authentication, financial transaction data package of MAC check and so on, are used in DES algorithm. Keywords: DES algorithm, encryption, decryption

信息加密与解密实验1-1 经典密码——凯撒密码

上机实验报告 一、实验目的: 本次上机实践所涉及并要求掌握的知识点。 1、理解凯撒密码的加密、解密过程 二、实验环境 PC机一台 三、实验内容 实验一移动3位的凯撒密码: 1.(1)用移动3位的凯撒密码加密“keep this secret” (2)用移动3位的凯撒密码加密你的某位老师的名字 2.破译下列谜语的答案。这些答案是用移动3位的凯撒密码来加密的。 (1)谜语:What do you call a sleeping bull?(你怎么称呼一只 睡着的公牛?) 答案: D EXOOGRCHU (2)谜语:What is the different between a teacher and a train? (老师与火车的区别是什么?) 答案:WKH WHDFKHU VDBV “QR JXP DOORZHG” WKH WUDLQ VDBV “FKHZ FKHZ” 实验二移动4位的凯撒密码: 1.请解密下面伊薇写给艾比的便条,她使用的是移动4位的凯撒密码 WSVVC PIX’W YWI GMTLIVW JVSQ RSA SR

2.谜语:What do you call a dog at the beach ?(你怎么称呼一只在海滩 上的狗?) 答案(移动4位密码):E LSX HSK 实验三凯撒密码破解: 1.凯撒密码破解 密文:NGBKGMUUJZOSK 实验四用数传递信息的方法破译以下的谜语: 1.谜语:What kind of cookies do birds like?(鸟儿喜欢什么种类的饼干?) 答案:2,7,14,2,14,11,0,19,4 2,7,8,17,15 2.谜语:What always ends everything?(什么总是能终结所有事情?) 答案:19,7,4 11,4,19,19,4,17 四、实验总结 通过上机实践,对所学内容的某个知识点有了更深入的理解,写出一些体会、学习心得,甚至是改进意见。 也可以写对界面设计、算法设计、代码编写、程序调试、程序改进等相关的收获、感悟。 五、附录(源程序清单,包含适当的注释)

古典加密实验报告

古典密码算法 一、实验目的 学习常见的古典密码学算法,通过编程实现替代密码算法和置换密码算法,加深对古典密码体制的了解,为深入学习密码学奠定基础。 二、实验要求 分析替代密码算法和置换密码算法的功能需求,详细设计实现替代密码算法和置换密码算法的数据结构和流程,给出测试用例和测试步骤,得出测试和结论。替代密码算法和置换密码算法的实现程序必须提供加密和解密两个接口:int encrypt()和int decrypt()。当加密或者解密成功时返回CRYPT_OK,失败时返回CRYPT_ERROR。 三、实验原理 古典密码算法曾被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密。它的主要应用对象是文字信息,利用密码算法实现文字信息的加密和解密。下面介绍两种算法:替代密码和置换密码。 1.替代密码的原理是使用替代法进行加密,就是将明文由其它的字母、数字或符合所代替后形成密文。这里每个明文字母对应的密文字母可能是一个,也可能是多个。接收者对密文进行逆向替换即可得到明文。 2.置换密码算法的原理是不改变明文字符,而是按照某一规则重新排列消息中的比特或字符顺序,才而实现明文信息的加密。置换密码有时又称为换位密码。 我实验过程中替代密码是单表替换,用字母的下一个字母代替:for(j = 0; j < i; j++)

{ if(96 < Mingwen[j]&&Mingwen[j] < 123) { Miwen[j] = 'a' + (Mingwen[j] - 'a' + 1) % 26; } else { Miwen[j] = 'A' + (Mingwen[j] - 'A' + 1) % 26; } } 置换加密主要是对密钥进行整理,还有就是动态分配二维数组,将明文和密文填充置的过程,换密码关键代码如下: for(a = 0; a < k; a++) { for(b = 0; b < hang; b++) { Miwen[i] = p[b][ord[j]]; i++; } j++; } for(a = 0; a < 26; a++) { for(b = 0; b < k; b++) { if(key1[b] == alphatable[a]) { ord[b] = ind++; } } } 具体加密见下图:

数据结构实验 密码的原理与实现

电气信息学院 实验报告书 课程名称数据结构 实验项目密码的原理与实现 专业班组通信202班 实验时间 2016.12.12 成绩评定 评阅老师 报告撰写人:学号: 电气信息学院专业中心实验室

一、实验内容 利用Visual C++设计合理的凯撒密码,对一段英文段落进行加密处理。以每个人学号的最后两位为key。 英文段落如下: I am Wang Yanling,a student from Sichuan University.Now I major in telecommunication engineering.I am nineteen years old and my family live in Sichuan province.It is the second year of my colleage and I am fighting for my future.I also enjoy playing games,listening to some beautiful music and going out for a date with my friends.How wonderful it is. 二、算法流程图 三、详细设计 源程序: #include #include #include char encrypt(char ch,int n)/*加密函数,把字符向右循环移位n*/

{ while(ch>='A'&&ch<='Z') { return ('A'+(ch-'A'+n)%26); } while(ch>='a'&&ch<='z') { return ('a'+(ch-'a'+n)%26); } return ch; } void menu()/*菜单,1.加密,2.解密,3.退出*/ { printf("\n----------------------"); printf("\n1.Encrypt the file"); printf("\n2.Decrypt the file"); printf("\n3.Quit\n"); printf("------------------------\n"); printf("Please select a item:"); return; } main() { int i,n; char ch0,ch1; FILE *in,*out; char infile[20],outfile[20]; menu(); ch0=getch(); while(ch0!='3') { if(ch0=='1') { printf("\nPlease input the infile:"); scanf("%s",infile);/*输入需要加密的文件名*/ if((in=fopen(infile,"r"))==NULL) { printf("Can not open the infile!\n"); printf("Press any key to exit!\n"); getch(); exit(0); } printf("Please input the key:"); scanf("%d",&n);/*输入加密密码*/

相关文档
最新文档