文档库 最新最全的文档下载
当前位置:文档库 › 古典加密实验报告

古典加密实验报告

古典加密实验报告
古典加密实验报告

古典密码算法

一、实验目的

学习常见的古典密码学算法,通过编程实现替代密码算法和置换密码算法,加深对古典密码体制的了解,为深入学习密码学奠定基础。

二、实验要求

分析替代密码算法和置换密码算法的功能需求,详细设计实现替代密码算法和置换密码算法的数据结构和流程,给出测试用例和测试步骤,得出测试和结论。替代密码算法和置换密码算法的实现程序必须提供加密和解密两个接口: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++;

}

}

}

具体加密见下图:

详细加密代码见附件。

四、实验总结

本次实验主要让我了解了古典加密算法的具体过程,而且也对自己的编程有了一定程度的温习,实验过程出现过多次问题,置换加密我一开始弄错了,以为是简单的按照密钥字母顺序进行排序,后来才知道是置换;解密的过程中二维数组常出现数据丢失,经常多次debug 才发现是循环逻辑出错。错误一点点改过后,终于成功了,看来自己还要加强编程的联系,当然更要理解所要编写的内容,总而言之,这次实习收获很大!

古典密码学实验

一、实验背景与目的 通过实现简单的古典密码算法,理解密码学的相关概念如明文(plaintext)、密文(ciphertext)、加密密钥(encryption key)、解密密钥(decryption key)、加密算法(encryption algorithm)、解密算法(decryption algorithm)等。 二、实验环境 Visual C++6.0 三、实验内容 (1)用C\C++语言实现仿射变换(Affine)加/解密算法;2) (2)用C\C++语言实现统计26个英文字母出现的频率的程序; (3)利用仿射变换加/解密程序对一段较长的英文文章进行加密,再利用统计 软件对明文和密文中字母出现的频率进行统计并作对比,观察有什么规 律。 其中a, b为密钥, 25 , 0≤ ≤b a ,且gcd(a, 26)=1 实验要求:加/解密程序对任意满足条件的a、b都能够处理。仿射变换: 加密: ()26 mod , b am m E c b a + = = 解密: ()()26 mod 1 , b c a c D m b a - = =- 四、实验原理 一个仿射变换对应于一个矩阵和一个向量的乘法,而仿射变换的复合对应于普通的矩阵乘法,只要加入一个额外的行到矩阵的底下,这一行全部是0除了最右边是一个1,而列向量的底下要加上一个1。仿射变换原理在基于MQ问题的多变元公钥密码中,公钥一般是方程组,但是这种没有处理的方程组很容易受到插值法的攻击,例如:首先在q元有限域上选取个变量以及个变量。构造方程组:这里面公钥信息方程组就是:其中是明文信息,而则是密文。可以看出这样的公钥信息很容易受到插值法的攻击,下面使用仿射将

信息安全加密实验报告

重庆交通大学实验报告 班级:计信专业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轮后,最终进行一次末置换,形成密文

计算机网络信息安全中数据加密技术的分析

计算机网络信息安全中数据加密技术的分析 发表时间:2018-10-10T10:02:54.457Z 来源:《建筑模拟》2018年第20期作者:葛晴 [导读] 随着科学技术的不断发展,计算机逐渐被应用于各个领域,为各行各业的进一步发展奠定了基础。 葛晴 中国汽车工业工程有限公司天津市 300113 摘要:随着科学技术的不断发展,计算机逐渐被应用于各个领域,为各行各业的进一步发展奠定了基础。信息化社会需要更加便捷的信息资源交流传递方式,而计算机信息安全也在一次次的冲击中得到了创新与发展。数据加密技术的开发为新时代计算机信息网络安全提供了保障,也为祖国的社会主义现代化建设做出了卓越的贡献。本文对数据加密技术在计算机信息安全中的应用进行了分析,希望对计算机信息安全的落实有所助益。 关键词:计算机网络;信息安全;数据加密技术 引言 社会科学技术不断发展,计算机信息技术和互联网技术的出现改变了人们的生活方式,但是网络时代在给人们带来便利的同时也会带来一定的风险,比如说个人和集体的计算机设备很容易受到网络病毒甚至是黑客的入侵,影响计算机内部数据和信息的安全性,也会给社会发展带来不可预计的负面影响,因此计算机网络信息数据加密技术的研究工作具有重要的现实意义。 1 计算机网络信息安全中数据加密技术的重要性 我国互联网信息技术不断发展,市场中的互联网企业变得越来越多,同时也会存在一些网络安全隐患问题,比如说黑客攻击或者是网络漏洞等,这些问题的出现影响了企业信息数据的安全性,因此加强计算机网络数据的加密技术非常重要。科技改变了生活,人们在工作和生活中都越来越依赖于网络,尤其是电子商务领域,更是需要计算机网络来传输大量的数据。比如,人们在使用网络购买商品时,需要买家通过网络来查看想要购买的物品信息,然后与卖家联系之后下单完成商品购买。购买的过程中需要使用支付宝进行网络支付,如果在付款过程中发生支付密码泄漏的情况,会对用户的财产造成很大的威胁。还有一部分社会企业在传输重要的企业文件时,也需要使用数据信息加密技术,能够有效防止重要文件被他人窃取。在计算机安全体系当中最重要的就是密码,如果发生密码泄露问题会导致计算机个人信息面临被入侵的威胁,人们在使用电脑登录个人信息时,如果密码泄露,那么黑客就能够使用密码登录电脑,破坏用户的服务器,很多用户会在再次登录时出现提醒登录异常的信息。因此为了能够保障信息的安全性,需要应用数据加密技术来提升计算机的安全防护能力。 2 计算机的安全问题 2.1 人为的因素 人为的因素主要是计算机网络安全的防范技术和安全管理不完善,安全管理措施也不完善。网络内部人员安全意识非常差,导致了文件的以及数据的泄密。人为侵入检测技术原本是为了保证现在的计算机的安全而设计产生的技术,但是现在由于技术的进步也有许多人通过此类技术对计算机进行侵入以及破坏。而且现在随着计算机的发展,攻击计算机网络的方法也越来越多,并且更加容易。用来攻击计算机网络的技术工具也逐渐增强,而现在的黑客也越来越多,所以导致我们计算机网络的数据安全也受到了威胁。 2.2 计算机病毒的不断增加,传播的速度也非常的迅速 计算机病毒可以分为操作时病毒、外壳型病毒,以及源码型病毒。而新型网络病毒会伴随着信息网络硬件设备的不断提升以及计算机的网络快速的传播。因为计算机网络的系统体系很大所以使得这些病毒相互传播,导致计算机的危害,从而也导致了网络信息的数据泄露或错乱等。 3 计算机网络信息安全中数据加密技术 3.1 链路数据加密技术的应用 在各种计算机数据加密技术中,链路数据加密技术能够有效地划分网络数据信息的传输路线,对不同传输区间的数据信息进行加密,大大提高了信息传输过程中的安全性。即使传输信息遭到非法窃取,也无法被即时解密。应用链路数据加密技术,数据传输中的加密过程不再只是简单的函数运算,针对不同传输区域的数据改变长度,有效地解决了数据窃取问题,窃取人员面对极其复杂的数据加密模式往往难以及时进行数据破译,使计算机网络工程的安全性得到了很大的提升。 3.2 节点加密技术 节点加密技术具体是指在信息传递链接节点位置对信息进行加密处理,以便对传递过程中的信息加以保护。利用节点加密技术要注意加密过后的数据在经过通信节点时同样不能以明文的形式出现,还是照旧以密文的形式来传递。在通信节点存在一个安全模块,安全模块和节点机器连接在一起,在整个通信过程中发挥信息保障的重要作用,数据加密和解码不是在节点同步进行的,而是在这个节点连接的安全模块中实施。 3.3 端端数据加密技术的应用 区别于链路数据加密技术,端端数据加密技术的应用过程十分简单。以专业密文作为信息传输基础,在应用时不必对信息数据进行不断地加密与解密过程,进一步提升了计算机信息安全性。无需大量成本维护的端端数据加密技术为计算机信息处理提供了全新的创新途径,也为社会的发展提供了保障。具备独立传输路线的加密方式不会受到其它线路的干扰,在出现意外情况时仍然可以继续运行,为计算机网络故障维修降低了成本。 3.4 数字签名信息认证技术的应用 随着科学技术的发展,数字签名信息认证技术在不断变化的网络环境中逐渐受到了广大人民群众的喜爱,应用范围也随之扩大。数字签名信息技术可以对用户的身份信息进行鉴别,杜绝用户信息被非法利用的情况发生,进一步保障了人民群众的合法权益。应用口令认证方式可以实现简单快捷的用户信息认证,并且节约了使用成本。随着社会的进步,数字签名信息认证方式必将使计算机信息安全得到更有效的保障。 3.5 VPN加密 通常局域网在生活中很常见,许多企业、商户都组建了独有的局域网络,通过专线将处于不同区域的用户所在的各局域网连接在一

文件加密与解密实验报告

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)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。

实验二 古典密码

实验2 古典密码 1.实验目的 (1)了解古典密码中的基本加密运算。 (2)了解几种典型的古典密码体制。 (3)掌握古典密码的统计分析方法。 2.实验内容 (1)古典密码体制 ①简单移位加密(单表代换) 该加密方法中,加密时将明文中的每个字母向前推移K位。经典恺撒密码加密变换就是这种变换,取k=3。 步骤1:打开CAP4软件,并加载实验一附带的“mw.txt”,如图2-1所示。 图2-1加载文件

步骤2:采用恺撒加密方法手工加密“mw.txt”;打开CAP4菜单栏“Cipher”菜单项选择“simple shift”选项,并选择移位值“shift value”为3,加密步骤1中加载的文件,如图2-2所示。 图2-2 参数设置 图2-3加密文件

步骤3:比较二者的加密结果是否相同。 步骤4:点击CAP4软件中的“Simple analysis”下的“shift”键,观察恺撒加密法的可能密钥值,并分析其攻击的难度,如图2-4所示。 图2-4密钥分析 ②仿射密码加密(单表代换) 在仿射密码加密(affine cipher)中,字母表中的字母被赋予一个数字,例如,a=0,b=1,c=2,…,z=25.仿射密码加密法的密钥为0~25之间的数字对(a,b)。a与26的最大公约数必须为1,这就是说能整除a和26的数只有1.现在假设m为明文字母的数字,而c为密文字母的数字,那么,这两个数字之间有如下关系: c=(am+b)(mod 26) m=a-1(c-b)(mod 26) 其中,(mod 26)的操作是:除以26,得其余数。 例如,选取密钥为(7,3)。因为7与26互素,也就是只有公约数1,所以(7,3)可以作为仿射密码的加密钥。将“hot”转换成数字7、14、19,利用仿射等式生成: c(H)=(7×7+3) mod 26=52 mod 26=0,即为字母“a“。 c(O)=(7×14+3) mod 26=101 mod 26=23,即为字母“x“. c(T)=(7×19+3) mod 26=136 mod 26=6,即为字母”g”. 这样,对于这个密钥,”hot”变成了“axg“.

数据加密实验报告

实验报告 课程:计算机保密_ _ 实验名称:数据的加密与解密_ _ 院系(部):计科院_ _ 专业班级:计科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.wendangku.net/doc/395813794.html,/downloads/installer/下载(MySQL):Windows (x86, 32-bit), MSI Installer 5.6.11、1.5M;MD5码: 20f788b009a7af437ff4abce8fb3a7d1),使用MD5Verify工具对刚下载的软件生成信息摘要,并与原来的MD5码比较以确定所下载软件的完整性。或用两款不同的MD5软件对同一文件提取信息摘要,而后比较是否一致,由此可进行文件的完整性认证。

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

计算机网络信息的数据加密技术分析

计算机网络信息的数据加密技术分析 摘要数据挖掘技术主要指的是一种数据库技术与人工智能技术结合的技术,其通过一定算法,可以从大量的数据信息中搜索到所需信息。在电力调度自动化控制系统中应用数据挖掘技术具有重要意义,所以有必要对其进行分析和探讨。 关键词计算机;网络信息;数据加密技术 引言 计算机网络安全是指通过使用各种的技术和管理措施,来保证计算机当中网络的硬件和软件系统能够很好地运行,能使网络中的数据以及服务器运行,同时也要保证网络信息的保密性和完整性,使网络在传输数据的时候不会让数据发生一些错乱的信息或者是出现丢失、泄露的情况等。计算机网络对世界的影响很大,随着计算机网络技术的应用范围不断地扩大,网络信息的安全以及数据的泄露等问题也越来越明显。只有找到正确的方法并且进行有效的监控才能很好地解决这一问题。计算机网络信息安全也与多种学科相联系着,如何解决这计算机网络安全的问题已经成了现在的一个重要的课题。 1 数据加密技术在计算机网络信息安全中应用的意义 计算机网络信息的概念属于一种宏观概念,主要是由数据载体构成的。因此,计算机网络信息既能够被人为窃取或修改,又能够被人为破坏。为解决计算机网络信息的安全问题,在计算机网络信息安全中应用数据加密技术,即使数据加密文件被第三方人员窃取,未能正确的输入数据密码是无法阅读数据加密文件内容的,这样可以让计算机网络信息的传输获得了更加安全的保护。数据加密技术具有较好的信息保密性、安全性以及信息可辨识性,能够有效保证数据加密文件的收发双方收到安全可靠的网络信息文件[1]。 2 计算机网络信息安全常见的问题 在电脑或者手机上登录个人账户时,常会出现一些个人信息曝光的问题,很多个人信息被一些不法分子利用。除此之外,有些企业的数据也会出现泄漏。据不完全统计,网络信息安全问题正呈现不断上升的趋势。 2.1 计算机授权用户被伪造 计算机数据信息被窃取之后,窃取者多会对信息内容进行修改并加以利用,网络攻击者可以冒充计算机授权用户侵入计算机系统内部。 2.2 网络安全信息被窃取

信息安全 实验一 古典密码算法C语言

信息安全实验报告 课程名称: _ 专业:计算机科学与技术 _2010_级_02班 实验编号:实验项目_ 指导教师_ _ 姓名:闫斌学号: 2010012854 实验成绩:___ 实验一古典密码算法 实验名称:古典密码算法 实验类型: 设计性实验 学时:4 适用对象: 信息安全 1.实验原理 古典密码算法历史上曾被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密。它的主要应用对象是文字信息,利用密码算法实现文字信息的加密和解密。下面介绍两种常见的具有代表性的古典密码算法,以帮助读者对密码算法建立一个初步的印象。 2.实验目的 通过变成实现替代密码算法和置换密码算法,加深对古典密码体质的了解,为深入学习密码学奠定基础。 3.实验环境 运行windows或linux操作系统的pc机,具有gcc(linux)、VC(Windows)等C语言编译环境。 4.实验内容 4.1替代密码算法 4.1.1 根据实验远离部分对替代密码算法的介绍,创建明文信息,并选择一个密钥k,编写替代密码算法的实现程序,实现加密和解密操作。 替代密码包括多种类型,如单表替代密码、多明码替代密码、多字母替代密码、多表替代密码等。 4.1.2 替代密码算法的远离是使用替代法进行加密,就是将明文的字符用其他字符替代后形成密文。例如字母a、b、c、d,用D、E、F、G做对应替换后形成密文。 4.1.3 代码

#include #include #include #define N 500 int main() { /*--------------------------------*/ int i=0,k,m,n,l; char str1[N],str2[N]; /*C=M+K...K is key...*/ clrscr(); /*--------------------------------*/ printf("This is a code password program......\n"); printf("Please input proclaimed in writing(M)::\n"); gets(str1);/*输入要加密的明文M*/ printf("Please input the key(K)(int)::\n"); scanf("%d",&k);/*输入密钥K*/ m=strlen(str1);/*测试明文的长度*/ printf("The M length is %d\n",m); printf("\n *\n *\n *\n***\n *\n"); printf("ciphertext(C) is ::\n\n"); for(i=0;i96&&n<123)/*对小写进行加密*/ { n=(n-97+k)%26; if(n<0) n=26+n; l=(char)(n+97); printf("%c",l); str2[i]=l; } else if(n>64&&n<91)/*对大写进行加密*/ { n=(n-65+k)%26; if(n<0)

发送数字签名和加密邮件-实验报告

一、实验目的 ●了解什么是数字签名与加密 ●掌握用Outlook Express发送签名的方法 ●掌握用Outlook Express 发送加密的方法。 二、实验环境 ●实验室所有机器安装了Windows 操作系统,并附带Outlook Express。 三、实验容和步骤 1、设置Outlook Express收发QQ (1)打开OUTLOOK EXSPRESS方法为开始/所有程序/OUTLOOK EXPRESS; (2)申请方法:OUTLOOK EXSPRESS的工具//添加//输入显示名/输入你的QQ地址/设置电子服务器名pop.qq. smtp.qq./输入电子的名称和密码/下一步/完成 2、申请免费数字证书

查看证书: 3、在 Outlook Express 设置数字证书 (1)在 Outlook Express 中,单击“工具”菜单中的“”(2)选取“”选项卡中用于发送安全的,然后单击“属性”。

(3)选取安全选项卡中的签名标识复选框,然后单击选择按健 (4)在弹出的“选择默认数字标识”窗口中,选择要使用的数字证书,就选择你刚才申请的个人电子保护证书 (5)点击“确定”按钮,完成证书设置。至此,你可以发送带数字签名的。 4、发送签名 发送时从“工具”菜单中选择“签名”,收件人地址栏后面出现“签名”标志。

本次实验我给为 qq. 发送一个签名。 发送成功: 5、发送加密 发送加密前必须正确安装了对方的“电子保护证书”,只要请对方用他的“电子保护证书”给你发送一个签名,证书会自动安装,并与对方Email地址绑定,否则就要手工安装对方“电子保护证书”。(1)从Outlook Express“工具”菜单中选择“选项”。 (2)鼠标单击“数字标识”按钮。

数据保密之透明加密技术分析

数据保密之透明加密技术分析 透明加密技术是近年来针对企业数据保密需求应运而生的一种数据加密技术。所谓透明,是指对使用者来说是透明的,感觉不到加密存在,当使用者在打开或编辑指定文件时,系统将自动对加密的数据进行解密,让使用者看到的是明文。保存数据的时候,系统自动对数据进行加密,保存的是密文。而没有权限的人,无法读取保密数据,从而达到数据保密的效果。 自WindowsNT问世以来,微软提出的分层的概念,使透明加密有了实现的可能。自上而下, 应用软件,应用层APIhook(俗称钩子), 文件过滤驱动,卷过滤驱动,磁盘过滤驱动,另外还有网络过滤驱动,各种设备过滤驱动。其中应用软件和应用层apihook在应用层(R3),从文件过滤驱动开始,属于内核层(R0).数据透明加密技术,目前为止,发展了3代,分别为第一代APIHOOK应用层透明加密技术; 第二代文件过滤驱动层(内核)加密技术; 第三代内核级纵深加密技术; 第一代:APIHOOK应用层透明加密技术 技术及设计思路:应用层透明加密技术俗称钩子透明加密技术。这种技术就是将上述两种技术(应用层API和Hook)组合而成的。通过windows的钩子技术,监控应用程序对文件的打开和保存,当打开文件时,先将密文转换后再让程序读入内存,保证程序读到的是明文,而在保存时,又将内存中的明文加密后再写入到磁盘中。应用层APIHOOK加密技术,特点是实现简单,缺点是可靠性差,速度超级慢,因为需要临时文件,也容易破解。但由于直接对文件加密直观感觉非常好,对于当初空白的市场来讲,这一旗号确实打动了不少企业。 第二代:文件过滤驱动加密技术 驱动加密技术是基于windows的文件系统(过滤)驱动技术,工作在windows的内核层,处于应用层APIHook的下面,卷过滤和磁盘过滤的上面。设计思想是建立当应用程序(进程)和文件格式(后缀名)进行关联,当用户操作某种后缀文件时对该文件进行加密解密操作,从而达到加密的效果。 内核层文件过滤驱动技术,分IFS和Minifilter2类。IFS出现较早,Minfilter出现在xp 以后。两者的区别可以理解为VC++和MFC的区别,IFS很多事情需要自己处理,而Minifilter 是微软提供了很多成熟库,直接用。由于windows文件保存的时候,存在缓存,并不是立即写入文件,所以根据是否处理了双缓bug,后来做了些细分,但本质还是一样,都是问题的修正版本而已。但由于工作在受windows保护的内核层,运行速度比APIHOOK加密速度快,解决了很多问题和风险。 文件过滤驱动技术实现相对简单,但稳定性一直不太理想。 第三代:内核级纵深沙盒加密技术 之所以叫内核级纵深沙盒加密技术,主要原因是使用了磁盘过滤驱动技术,卷过滤驱动技术,文件过滤驱动技术,网络过滤驱动(NDIS/TDI)技术等一系列内核级驱动技术,从上到下,纵深防御加密。沙盒加密,是当使用者操作涉密数据的时候,对其过程进行控制,对其结果进行加密保存,每个模块只做自己最擅长的那块,所以非常稳定。加密的沙盒是个容器,

信息安全实验报告一

实验成绩 《信息安全概论》实验报告 实验一古典密码实验 专业班级:学号:姓名:完成时间:2016/ 05/ 09 一、实验目的 理解简单加密算法的原理;掌握凯撒密码的原理,完成凯撒密码加解密程序的编写;通过实验,加深对古典密码体制的了解,掌握对字符进行灵活处理的方法。 二、实验内容 根据凯撒密码的原理编写程序,对输入的符号串能够根据设置的密钥分别正确实现凯撒加密和解密功能。 三、实验环境和开发工具 1.Windows 7 系统 2.Eclipse 3.JDK 1.7 四、实验步骤和结果 首先获取要加密的内容以及密钥,凯撒密码的密钥即字符移动的位数。由于凯撒密码器的移位是针对字符的,因此需要将待加密的内容中每个字符取出,然后针对每个字符分别加以移位。主要步骤如下: (1)读取要加密的字符串、密钥。 (2)取出字符串中每个字符。 使用字符串类的 charAt()方法取出每个字符,分别加以移位。

(3)对每个字符进行移位。 由于字母表中共26个字符,因此移位前先将移动的位数(key)和26取模。由于Java中字符和整型可自动转换,因此将字符加上一个正整数即代表在字母表中右移多少位。如果移动的位数是负值,则代表在字母表中左移多少位。 尽管在移动之前已经将移动的位数和26取了模,但通过这种方式实现右移或左移仍可能发生超界。如字母x右移4位应该是字母b,但将字母x增加4后超出26个字母的范围。因此移位后使用两个if语句判断一下,如果向左超界(c<'a')则增加26;向右超界(c>'z')则减去26。 源程序: package Caesar; import java.io.*; import java.util.Scanner; /** * @author SiRuYan */ public class Caesar { // 声明一些全局变量 public static String path; public static String estr = ""; public static char c; /** * 凯撒密码加密方法 * * @param str * @param n */ public static void Encode(String str, int n) { for (int i = 0; i < str.length(); i++) { c = str.charAt(i); if (c >= 'a' && c <= 'z') if (c + n % 26 <= 'z') // 移位后的字母不大于小写字母z,直接移位 estr += (char) (c + n % 26); else // 移位后的字母大于小写字母z,需要在26个字母之间循环 estr += (char) ('a' + ((n - ('z' - c) - 1) % 26)); else if (c >= 'A' && c <= 'Z')

DES加密算法实验报告

苏州科技学院 实验报告 学生姓名:杨刘涛学号:1220126117 指导教师:陶滔 刘学书1220126114 实验地点:计算机学院大楼东309 实验时间:2015-04-20 一、实验室名称:软件实验室 二、实验项目名称:DES加解密算法实现 三、实验学时:4学时 四、实验原理: DES算法由加密、子密钥和解密的生成三部分组成。现将DES算法介绍如下。1.加密 DES算法处理的数据对象是一组64比特的明文串。设该明文串为m=m1m2…m64 (mi=0或1)。明文串经过64比特的密钥K来加密,最后生成长度为64比特的密文E。其加密过程图示如下:

图2-1:DES算法加密过程 对DES算法加密过程图示的说明如下: 待加密的64比特明文串m,经过IP置换(初始置换)后,得到的比特串的下标列表如下: 表2-1:得到的比特串的下标列表

该比特串被分为32位的L0和32位的R0两部分。R0子密钥K1(子密钥的生成将在后面讲)经过变换f(R0,K1)(f变换将在下面讲)输出32位的比特串 f1,f1与L0做不进位的二进制加法运算。运算规则为: f1与L0做不进位的二进制加法运算后的结果赋给R1,R0则原封不动的赋给L1。L1与R0又做与以上完全相同的运算,生成L2,R2……一共经过16次运算。最后生成R16和L16。其中R16为L15与f(R15,K16)做不进位二进制加法运算的结果,L16是R15的直接赋值。 R16与L16合并成64位的比特串。值得注意的是R16一定要排在L16前面。R16与L16合并后成的比特串,经过置换IP-1(终结置换)后所得比特串的下标列表如下: 表2-2:置换后所得比特串的下标列表 经过置换IP-1后生成的比特串就是密文e。 变换f(Ri-1,Ki): 它的功能是将32比特的输入再转化为32比特的输出。其过程如图2-2所示:

数据加密技术在计算机网络信息通信 安全中的应用分析

数据加密技术在计算机网络信息通信安全中的应用分析 摘要:计算机网络通信技术已广泛应用于各行各业,成为人们生活中不可缺少 的重要技术,人们对于计算机网络通信的依赖性也越来越高,对于计算机网络通 信安全面临的各种问题也越来越重视,为了保障计算机网络通信安全,人们采取 了各种技术手段和防护策略,其中一个常用且十分有效的措施就是数据加密技术,采取数据加密技术可以实现数据的完整性、保密性和有效性,保证信息安全,促 进计算机网络通信技术健康有序发展。 关键词:数据加密技术;计算机;网络信息;通信安全;应用 1数据加密方法 1.1对称式加密 这一种加密方式最为突出的一项特征即采用同一个密钥来完成加密与解密过程。一般采用的对称加密算法,尽管较为简单但安全性较高,要想破译加密算法 难度极大。考虑到计算机网络系统的保密性主要是由密钥本身的安全性所决定的,因此,在公开化的计算机网络上安全传输与存储密钥均十分困难。也正是因为在 对称密码学内数据发送方与接收方均采取的是同一种密钥,所以难以确保数据签 名功能的实现。此外,考虑到加密与解密的便捷,这一种加密方式目前已经得到 了十分广泛的应用,如得到广泛应用的DES对称式加密方式,其作为分组加密算 法的典型代表,可将数据分成64位,8位通过奇偶性校对检验,其余位数表示密码长度。这一种加密方法在实际应用过程中先是将原文转换为64位数据组,且 数据组的构成无任何规律,然后把数据组等分为两部分,最终植入密钥,采用函 数实施运算处理,通过数次带入以后即可获取到经过加密处理的密文。但同时也 需注意到这一种加密方式,针对单一密钥管理安全性较差。 1.2非对称式加密 非对称式加密方法不同于对称式加密方法使用单一密钥,非对称式加密在加 密和解密的操作中使用完全不同的密钥,它使用两组密钥,分别是公钥和私钥。 在使用非对称式加密方法的过程中,公钥和私钥需要进行配对使用,否则不可以 打开加密文件,其中公钥可以进行公开使用,但是私钥只能由持有人保管,必须 绝对保密。非对称式加密相对于对称式加密的优点就在于不需要将私钥在网络中 进行传输,数据接收人在接收数据后将自己保管的私钥输入即可,这样便可以有 效避免密钥传递安全问题,但同时,非对称式加密相对耗时较长,加密和解密的 速度赶不上对称式加密方法。 2数据加密技术常见类型 2.1节点加密技术 节点加密顾名思义,发生的场所是在数据节点。在这种方法中,数据在到达 节点前采用的仍旧是普通编码方法,而在到达数据节点时,节点上预先设置的安 全模块就会启动,与数据进行有效互联,通过特定加密方式完成对数据的加密。 同理,在另一节点也可按照同样的方法对数据进行解密。这种技术有利于数据在 通信过程中的保密性和安全性。但其也有一定不足,即加密接收的数据或解密后 的数据均为普通编码方法,外部非法人员可在这两个区域内对数据进行窃取攻击。 2.2链路加密技术 所谓链路加密指的是在计算机网络通信链路上进行加密,这是对数据保护的 首次加密,通过反反复复的加密解密过程,保证信息传播过程中用户信息、数据 的安全。由于其在数据加密过程中处于先锋的位置,因此加密的程度偏弱,需要

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

第九章、实验报告 实验一、设置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加密文件,进行暴力破解,获得密码。结果如图:

实验一 古典密码-Vigernere算法

实验一古典密码-Vigenere算法 班级:学号:姓名: 一、实验目的 1、理解简单加密算法的原理; 2、掌握Vigenere密码的原理,完成Vigenere密码加解密程序的编写; 3、通过实验,加深对古典密码体制的了解,掌握对字符进行灵活处理的方法。 二,实验要求 根据Vigenere密码的原理编写程序,对输入的符号串能够根据设置的密钥分别正确实现Vigenere加密和解密功能。 三,实验过程及内容 源程序 #include "stdio.h" #include "string.h" #define BUF_MAX 100 static int square[27][27]; //密钥统一转换为大写字母 void UpperKey(char key[]) { int key_length = strlen(key); for(int i = 0; i < key_length; i++) { if (key[i] >= 'a' && key[i] <= 'z') { key[i] -= 32; } } } //Vigenere加密 void VigenereEncrypt(char word[], char key[]) { char text[BUF_MAX]; int key_length = strlen(key);

int word_length = strlen(word); int i, j, k; for(i = 0; i < word_length; i++) { j = i % key_length; if (word[i] >= 'a' && word[i] <= 'z') { k = word[i] - 'a'; k = (k + key[j] - 'A') % 26; text[i] = k + 'a'; } else if (word[i] >= 'A' && word[i] <= 'Z') { k = word[i] - 'A'; k = (k + key[j] - 'A') % 26; text[i] = k + 'A'; } else { text[i] = word[i]; } } text[i] = '\0'; printf("Encrypt string:"); puts(text); } //Vigenere解密 void VigenereDecript(char en_word[], char key[]) { char word[BUF_MAX]; int key_length = strlen(key); int word_length = strlen(en_word); int i, j, k; for(i = 0; i < word_length; i++) { j = i % key_length; if (en_word[i] >= 'a' && en_word[i] <= 'z')

相关文档