可视加密创新实验报告
加密基本算法实验报告
一、实验目的1. 理解并掌握加密的基本原理和常用算法。
2. 学会使用编程语言实现简单的加密和解密过程。
3. 提高对网络安全和信息安全重要性的认识。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 工具:PyCharm三、实验内容本次实验主要涉及以下加密算法:1. 仿射密码2. 单表代替密码3. 维吉尼亚密码4. RSA算法四、实验步骤及结果1. 仿射密码(1)原理简介:仿射密码是一种基于线性代数的加密方法,其加密公式为 \(c = (ap + b) \mod 26\),其中 \(a\) 和 \(b\) 是密钥,\(p\) 是明文字符对应的数字,\(c\) 是密文字符对应的数字。
(2)代码实现:```pythondef affine_encrypt(plain_text, a, b):cipher_text = ''for char in plain_text:if char.isalpha():p = ord(char.lower()) - ord('a') c = (a p + b) % 26cipher_text += chr(c + ord('a')) else:cipher_text += charreturn cipher_textdef affine_decrypt(cipher_text, a, b):cipher_text = cipher_text.lower()a_inv = pow(a, -1, 26)plain_text = ''for char in cipher_text:if char.isalpha():c = ord(char) - ord('a')p = (a_inv (c - b)) % 26plain_text += chr(p + ord('a')) else:plain_text += charreturn plain_text```(3)测试结果:明文:HELLO WORLD密文:RQWKHU WHDP解密:HELLO WORLD2. 单表代替密码(1)原理简介:单表代替密码是一种将明文字符映射到密文字符的加密方法,其中每个明文字符只对应一个密文字符。
数字加密技术实验报告单
数字加密技术实验报告单实验目的:本实验旨在通过实践了解数字加密技术的基本原理和应用,掌握常见的加密算法,并通过编程实现加密和解密过程,加深对数字安全的认识。
实验环境:- 操作系统:Windows 10- 编程语言:Python 3.8- 开发工具:PyCharm实验原理:数字加密技术是信息安全领域的核心内容之一,它通过将原始数据(明文)转换成不可读的格式(密文),以保证数据在传输过程中的安全性。
常见的加密算法包括对称加密算法(如AES、DES)和非对称加密算法(如RSA、ECC)。
实验内容:1. 学习数字加密技术的基本理论,包括加密和解密过程、密钥的作用等。
2. 掌握Python语言中实现加密和解密的方法。
3. 编写程序实现AES对称加密算法的加密和解密过程。
4. 分析加密数据的安全性,并尝试破解简单加密算法。
实验步骤:1. 环境搭建:安装Python环境和PyCharm开发工具。
2. 理论学习:阅读相关资料,理解加密技术的基本概念。
3. 编程实践:编写AES加密和解密的Python程序。
a. 导入所需的库:`from Crypto.Cipher import AES`b. 定义密钥和初始化向量。
c. 实现加密函数,将明文转换为密文。
d. 实现解密函数,将密文还原为明文。
4. 测试程序:使用不同的明文数据测试加密和解密程序的正确性。
5. 安全性分析:尝试使用简单的方法(如暴力破解)对加密数据进行破解,分析加密算法的安全性。
实验结果:通过编写的程序,成功实现了AES加密算法的加密和解密过程。
测试结果显示,程序能够正确地将明文转换为密文,并将密文还原为原始的明文。
在安全性分析中,发现简单的暴力破解方法在面对AES加密时几乎不可能成功,证明了AES算法的安全性。
实验结论:数字加密技术是保障数据传输安全的重要手段。
通过本次实验,我们不仅学习了加密技术的理论知识,还通过编程实践加深了对加密过程的理解。
AES算法作为一种高效的对称加密算法,在实际应用中表现出了良好的安全性。
现代密码算法实验报告(3篇)
第1篇一、实验目的1. 了解现代密码学的基本原理和数论基础知识;2. 掌握非对称密码体制的著名代表RSA加密算法的工作原理和流程;3. 设计实现一个简单的密钥系统;4. 掌握常用加密算法AES和DES的原理及实现。
二、实验内容1. RSA加密算法实验2. AES加密算法实验3. DES加密算法实验三、实验原理1. RSA加密算法RSA算法是一种非对称加密算法,由罗纳德·李维斯特、阿迪·沙米尔和伦纳德·阿德曼三位密码学家于1977年提出。
其基本原理是选择两个大质数p和q,计算它们的乘积n=pq,并计算欧拉函数φ(n)=(p-1)(q-1)。
选择一个整数e,满足1<e<φ(n)且e与φ(n)互质。
计算e关于φ(n)的模逆元d。
公开密钥为(e,n),私有密钥为(d,n)。
加密过程为C=Me mod n,解密过程为M=Cd mod n。
2. AES加密算法AES(Advanced Encryption Standard)是一种分组加密算法,采用128位分组大小和128、192或256位密钥长度。
AES算法主要分为四个阶段:初始轮、密钥扩展、中间轮和最终轮。
每个轮包括字节替换、行移位、列混淆和轮密钥加。
3. DES加密算法DES(Data Encryption Standard)是一种分组加密算法,采用64位分组大小和56位密钥长度。
DES算法主要分为16轮,每轮包括置换、置换-置换、S盒替换和密钥加。
四、实验步骤及内容1. RSA加密算法实验(1)选择两个大质数p和q,计算n=pq和φ(n)=(p-1)(q-1);(2)选择一个整数e,满足1<e<φ(n)且e与φ(n)互质,计算e关于φ(n)的模逆元d;(3)生成公开密钥(e,n)和私有密钥(d,n);(4)用公钥对明文进行加密,用私钥对密文进行解密。
2. AES加密算法实验(1)选择一个128、192或256位密钥;(2)初始化初始轮密钥;(3)进行16轮加密操作,包括字节替换、行移位、列混淆和轮密钥加;(4)输出加密后的密文。
加密解码_实训报告
一、实训目的本次实训旨在通过实际操作,加深对加密和解码原理的理解,提高对加密算法的应用能力,并培养在实际工作中运用加密技术保护信息安全的能力。
通过实训,学生能够:1. 掌握常见的加密算法,如对称加密、非对称加密和哈希算法。
2. 理解加密和解码的过程,包括密钥管理、加密操作和验证过程。
3. 学会使用加密工具和库,如Python的cryptography库。
4. 能够根据实际需求选择合适的加密算法,并解决加密过程中遇到的问题。
二、实训环境1. 操作系统:Windows 102. 编程语言:Python3.83. 加密库:cryptography4. 实训工具:PyCharm三、实训原理1. 对称加密:使用相同的密钥进行加密和解密。
常见的对称加密算法有AES、DES 和3DES。
2. 非对称加密:使用一对密钥,公钥用于加密,私钥用于解密。
常见的非对称加密算法有RSA和ECC。
3. 哈希算法:将任意长度的数据映射为固定长度的哈希值,用于验证数据的完整性和一致性。
常见的哈希算法有SHA-256、MD5和SHA-1。
四、实训过程1. 对称加密实训:- 使用AES算法对一段文本进行加密和解密。
- 使用DES算法对一段文本进行加密和解密。
- 比较不同对称加密算法的效率和安全性。
2. 非对称加密实训:- 使用RSA算法生成密钥对,并使用公钥加密、私钥解密一段文本。
- 使用ECC算法生成密钥对,并使用公钥加密、私钥解密一段文本。
- 比较不同非对称加密算法的效率和安全性。
3. 哈希算法实训:- 使用SHA-256算法对一段文本进行哈希运算。
- 使用MD5算法对一段文本进行哈希运算。
- 比较不同哈希算法的效率和安全性。
4. 实际应用实训:- 使用加密工具和库对文件进行加密和解密。
- 使用加密算法保护通信过程中的数据传输安全。
- 分析加密过程中可能出现的安全问题,并提出解决方案。
五、实训结果1. 成功掌握了AES、DES、RSA、ECC和SHA-256等加密算法的原理和应用。
加密算法实验报告
加密算法实验报告加密算法实验报告引言在当今信息时代,数据安全是一个非常重要的问题。
随着互联网的发展和普及,人们在进行各种在线交易、通信和存储时,需要保护自己的个人隐私和敏感信息。
为了实现数据的保密性和完整性,加密算法应运而生。
本实验旨在通过实际操作,了解和掌握几种常见的加密算法,包括对称加密算法和非对称加密算法。
一、对称加密算法对称加密算法是指加密和解密使用相同的密钥的算法。
在实验中,我们选择了DES算法作为对称加密算法的代表。
DES算法是一种分组密码算法,将明文分成64位的数据块,并使用56位的密钥进行加密。
经过16轮的迭代运算,最终得到密文。
实验步骤:1. 生成随机的64位密钥。
2. 将明文分组,并进行初始置换。
3. 将初始置换后的明文分成左右两部分。
4. 进行16轮的迭代运算,每轮都包括扩展置换、异或运算、S盒代替、P盒置换和交换左右两部分。
5. 最后进行逆初始置换,得到密文。
实验结果:经过实验,我们成功地对明文进行了加密,并得到了相应的密文。
通过解密操作,我们可以将密文还原为明文。
二、非对称加密算法非对称加密算法是指加密和解密使用不同的密钥的算法。
在实验中,我们选择了RSA算法作为非对称加密算法的代表。
RSA算法是一种基于大素数的数论算法,其安全性基于质因数分解的难题。
实验步骤:1. 选择两个大素数p和q,并计算它们的乘积n。
2. 计算n的欧拉函数值phi(n)。
3. 选择一个整数e,使得1 < e < phi(n)且e与phi(n)互质。
4. 计算e的模反元素d。
5. 将明文转化为整数m。
6. 计算密文c,其中c ≡ m^e (mod n)。
7. 将密文c转化为明文m',其中m' ≡ c^d (mod n)。
实验结果:经过实验,我们成功地对明文进行了加密,并得到了相应的密文。
通过解密操作,我们可以将密文还原为明文。
三、加密算法的应用加密算法在现代通信和存储中起着重要的作用。
安全可视密码技术研究及应用
安全可视密码技术研究及应用随着互联网和数字化时代的到来,密码作为保护个人隐私和数据安全的一种重要手段,被广泛应用于手机、电脑、电子邮箱等多个场景。
随着黑客技术的发展和密码破解技术的不断升级,传统的密码方式已经逐渐失去其安全性。
针对这种情况,安全可视密码技术被提出并逐渐得到应用。
安全可视密码技术是指通过图形或者简单的逻辑问题来代替复杂的字母数字密码。
它的优点在于易于记忆,难以破解。
相比于传统密码,安全可视密码不仅仅是由字母数字组成,还可以由图形、颜色、音乐等因素组成,因此不仅增加了功能性,也增加了使用方便性,同时也增强了用户的记忆性和安全程度。
安全可视密码具有更高的安全性,而且更加容易被人们所接受。
使用这种密码,人们可以通过一些易于记忆的图形或者逻辑问题来设置和修改密码,这不仅简单易用,而且破解难度也大大降低。
同时,安全可视密码技术也有助于在数字化时代中保护用户隐私和数据安全,确保用户信息不被黑客攻击或其他人非法获取。
安全可视密码技术除了可以被广泛应用于电脑、手机等设备的密码保护之外,还可以在多个领域得到应用。
例如,在金融领域,安全可视密码技术可以用于身份验证以及安全操作保护。
在医疗领域,安全可视密码技术可以被用于医院病历系统的登陆保护,确保患者信息的安全性和保密性。
在教育领域,安全可视密码也可以用于学生证、教师证的认证,确保教育信息的安全性。
尽管安全可视密码技术已经取得了不错的应用成果,但是该技术也存在一些潜在的缺陷和问题。
首先,用户不一定能够以难以破解的方式来设置密码,这也会增加破解的风险;其次,安全可视密码还需要继续改进,以适应不断变化的技术和安全环境。
最后,该技术的使用性还需要进一步调查和验证,以便确保它是易于使用的。
总之,在互联网、数字化时代中,安全可视密码技术是一种非常有前途的保障数据安全的技术。
它不仅能够保护用户的数据安全性,同时也能够增加使用方便性,提高用户的使用体验。
随着技术的不断发展和应用,我们有理由相信,安全可视密码技术将会在未来得到广泛应用和推广。
简易密码锁设计实验报告
简易密码锁设计实验报告
密码锁作为一种常见的安全锁具,广泛应用于各种安全场合。
在本次实验中,我们将设计一个简易的密码锁,并通过实验验证其功能和安全性能。
原理
密码锁主要由以下几个部分组成:输入设备、控制器和输出设备。
输入设备通常是键盘或按键开关,控制器用于接收输入信号并判断是否正确,输出设备可以是电子门锁、LED 指示灯或蜂鸣器等。
在本次实验中,我们将采用单片机作为控制器,用矩阵键盘作为输入设备,用LED灯和蜂鸣器作为输出设备。
具体原理如下:
输入设备
矩阵键盘是一种常见的数字输入设备,在本次实验中我们将使用4*4矩阵键盘。
该键盘由16个按键组成,分别对应09数字和AF字母共16个字符。
控制器
我们将使用STM32F103C8T6单片机作为控制器。
该单片机具有较高的性能和丰富的外设资源,在密码锁设计中可以充分发挥其优势。
控制器主要工作流程如下:
(1) 初始化:对单片机进行初始化,并定义好输入输出引脚。
(2) 输入密码:从矩阵键盘读取用户输入的密码。
(3) 判断密码:将读取到的密码与预设的正确密码进行比较,如果相同则解锁,否则报警。
(4) 解锁/报警:如果密码正确,则点亮LED灯并发出解锁提示音;否则点亮红色LED灯并发出警示音。
输出设备
我们将使用两个LED灯和一个蜂鸣器作为输出设备,用于提示用户解锁状态。
其中绿色LED灯表示解锁成功,红色LED灯表示解锁失败,蜂鸣器用于发出提示音。
密码学的实验报告
一、实验目的1. 了解密码学的基本概念和原理;2. 掌握常用的加密算法和解密算法;3. 学会使用密码学工具进行加密和解密操作;4. 培养学生的实践能力和创新思维。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 密码学库:PyCryptodome三、实验内容1. 加密算法实验1.1 实现DES加密算法1.2 实现AES加密算法1.3 实现RSA加密算法2. 解密算法实验2.1 使用DES解密算法解密加密数据2.2 使用AES解密算法解密加密数据2.3 使用RSA解密算法解密加密数据3. 密钥管理实验3.1 生成DES密钥3.2 生成AES密钥3.3 生成RSA密钥对4. 密码学工具使用实验4.1 使用PyCryptodome库进行加密和解密操作4.2 使用在线加密工具进行加密和解密操作四、实验步骤1. 加密算法实验1.1 实现DES加密算法1.1.1 导入PyCryptodome库中的DES模块;1.1.2 生成DES密钥;1.1.3 使用DES密钥对明文进行加密;1.1.4 输出加密后的密文。
1.2 实现AES加密算法1.2.1 导入PyCryptodome库中的AES模块;1.2.2 生成AES密钥;1.2.3 使用AES密钥对明文进行加密;1.2.4 输出加密后的密文。
1.3 实现RSA加密算法1.3.1 导入PyCryptodome库中的RSA模块;1.3.2 生成RSA密钥对;1.3.3 使用公钥对明文进行加密;1.3.4 输出加密后的密文。
2. 解密算法实验2.1 使用DES解密算法解密加密数据2.1.1 导入PyCryptodome库中的DES模块;2.1.2 使用DES密钥对密文进行解密;2.1.3 输出解密后的明文。
2.2 使用AES解密算法解密加密数据2.2.1 导入PyCryptodome库中的AES模块;2.2.2 使用AES密钥对密文进行解密;2.2.3 输出解密后的明文。
文件加密实验的实训报告
一、实验目的1. 了解文件加密的基本原理和方法。
2. 掌握使用加密软件进行文件加密的操作流程。
3. 提高对数据安全保护的认识,增强实际操作能力。
二、实验环境1. 操作系统:Windows 102. 加密软件:TrueCrypt3. 实验设备:个人电脑三、实验原理文件加密是指通过特定的算法将原始文件转换成难以识别和解读的密文,只有拥有正确密钥的用户才能将密文恢复成原始文件。
本实验采用TrueCrypt加密软件,该软件使用AES-256位加密算法,具有较高的安全性。
四、实验过程1. 创建加密容器(1)启动TrueCrypt软件,选择“创建容器”选项。
(2)选择加密容器类型(如:标准容器、隐藏容器等)。
(3)设置加密容器的文件名和路径。
(4)选择加密算法(如:AES-256位)。
(5)设置加密容器的密码,并确认。
(6)选择加密容器的体积(可自定义)。
(7)开始创建加密容器。
2. 加密文件(1)将需要加密的文件复制到加密容器中。
(2)双击加密容器,输入密码进入。
(3)将需要加密的文件拖拽到加密容器内部。
(4)选择加密容器,点击“系统工具”下的“压缩文件”。
(5)选择压缩格式(如:7z)。
(6)设置压缩文件名和路径。
(7)开始压缩加密文件。
3. 解密文件(1)打开加密容器,输入密码进入。
(2)双击压缩文件,选择解压路径。
(3)设置解压格式(如:7z)。
(4)开始解压文件。
(5)解压完成后,在指定路径下找到解密后的文件。
五、实验结果通过本次实验,成功掌握了使用TrueCrypt软件进行文件加密和解密的方法。
实验过程中,加密文件和密钥均未丢失,加密效果良好。
六、实验总结1. 加密技术在现代信息安全中具有重要作用,能够有效保护用户数据安全。
2. TrueCrypt加密软件具有较高的安全性,使用方便,适合个人和企业使用。
3. 在实际操作中,应严格按照操作流程进行文件加密和解密,确保数据安全。
4. 针对重要数据,建议定期更换密码,以增强安全性。
DSP创新实验
组号:16创新性实验报告题目:可视加密学院:电子通信与物理学院专业班级:通信工程2012级2班学号:201201101341学生姓名:郑智指导教师:颜斌完成日期:2015年7月17日1、摘要可视密码技术是Naor和Shamir于1994年首次提出的,其主要特点是恢复秘密图像时不需要任何复杂的密码学计算,而是以人的视觉即可将秘密图像辨别出来。
其做法是产生n张不具有任何意义的胶片,任取其中t张胶片叠合在一起即可还原出隐藏在其中的秘密信息。
本次设计为可视加密,其所涉及的方面是有无可能将一个秘密图片发给两人,没人都无法从其中获得的加密图片获得原始图片信息,但是将二者的图片合在一起就可以获得原始图片信息。
而所用的方案是Naor方案,即对黑白图像处理,将输入文件的像素扩展为两个像素,然后替换为方案中的像素信息,实现图片信息的加密。
并且试验较好地完成了四项设计任务,对算法进行了改进,能够对给定的图片进行加密。
本设计最终可以实现最给定图片的加密,并改进了算法,可以实现图片长宽比例不变。
关键词:像素算法可视密码2、设计的目的本次创新性实验的目的是理解可视加密技术的基本原理和方法,并且进一步熟练运用MATLAB软件来完成如下几个任务:1、读入图像,将指定灰度图像转换为黑白图像;2、使用代码加密图像;3、在加密后的图片上添加噪声,重建原始图像,观察噪声对算法的影响;4、改进算法。
3、设计的原理可视密码的解密原理是通过子图片的叠加,以视觉辨别出秘密图像。
表.1是一个(2,2)可视密码的编码模型,表中的每一个黑色或白色代表一个像素的颜色,当从秘密图像中拿到一个像素,若此像素为白色,就随机选择表格中的第一行或第二行的像素组合配置在分存图像的对应位置上;若此图像像素为黑色,则随机选择第三行或第四行的像素组合配置在分存图像的对应位置上。
表格最后一列则是分存图像1与分存图像2叠加时的结果。
从此表中可以发现,当只有一张分存图像时,是无法辨识出原秘密图像的像素点的,一旦两张分存图像叠加,对应在原图像的黑点会产生全黑的两个像素点组合,而对应在原秘密图像的白点会产生一黑一白的两个像素点组合,利用视觉系统即可分辨黑点与白点的差异。
AES加密算法实验报告
AES加密算法实验报告实验报告:AES加密算法一、实验目的与背景AES(Advanced Encryption Standard,高级加密标准)是目前最常用的对称加密算法之一,被广泛应用于数据保密领域。
本实验旨在深入了解AES加密算法的原理和实现过程,掌握其加密和解密的基本操作。
二、实验原理1.初始化状态:将明文分成若干个块,并对每个块进行初始化处理,包括状态添加轮密钥、字节替代、行移位和列混淆。
2.轮函数:通过迭代轮函数,将每个块中的状态混淆,进一步增强加密强度。
3.轮密钥扩展:通过原始密钥生成一系列轮密钥,用于每轮轮函数的运算。
4.复制和结束状态:将各个加密块的状态复制到输出中,并进行最终处理,得到密文。
三、实验过程本实验采用python编程语言,在PyCryptodome库的支持下进行AES 加密算法的实验。
1. 环境准备:安装PyCryptodome库。
2.密钥生成:通过输入一个128位的密钥,生成轮密钥扩展所需的所有轮密钥。
3.加密操作:输入明文,对其进行分组,并逐个块进行加密操作。
4.解密操作:输入密文,对其进行分组,并逐个块进行解密操作。
四、实验结果与分析本实验选取了一个128位的密钥,并对一段文字进行加密和解密实验。
实验结果表明,AES加密算法能够有效保护数据的机密性。
1.加密结果:明文经过AES加密后,得到了一段密文。
密文经过解密操作后,可以得到与原明文相同的结果。
说明AES加密算法是可逆的。
2.加密强度:AES加密算法使用的128位密钥,远超传统DES算法的56位密钥。
这使得破解AES加密算法需要极大的计算成本,增强了数据的安全性。
3.加密效率:AES加密算法在实际应用中具有较高的性能指标,加密速度快,适用于大规模数据的加密保护。
五、实验总结通过本次实验,我们了解到了AES加密算法的基本原理和实现方法,了解了其分组加密和解密的整个过程,并通过实验验证了其加密强度和效果。
AES算法在保证数据安全性的同时,提供了较高的加密和解密性能,适用于信息安全领域的各种加密场景。
DES加密算法实验报告
DES加密算法实验报告DES( Data Encryption Standard)算法是一种对称加密算法,是现代密码学的基础。
DES算法将64位明文数据分为两个32位的部分,将两部分通过一系列复杂的运算和替换操作,最终输出64位的密文。
DES算法的加密过程主要包括初始置换、16轮Feistel网络、逆初始置换等步骤。
首先是初始置换,将明文数据进行位重排列,使得加密的效果更加均匀。
然后是16轮Feistel网络的操作,每一轮都包括密钥的生成和密钥的运算。
密钥的生成过程是将64位的密钥进行重排列和选择运算,生成每一轮所需要的子密钥。
密钥的运算过程是将子密钥与32位明文数据进行异或操作,然后再通过一系列的替换和置换运算,得到新的32位数据。
最后是逆初始置换,将加密后的数据进行反向重排列,得到最终的64位密文数据。
实验中,对于给定的明文和密钥,我们首先需要将明文和密钥转换成二进制形式。
然后根据初始置换表和选择运算表,将明文和密钥进行重排列。
接下来进入16轮Feistel网络的循环中,每一轮都按照密钥的生成和运算过程进行操作。
最后通过逆初始置换表,将加密后的数据进行反向重排列,得到最终的密文。
DES算法的优点是运算速度较快,加密强度较高,安全可靠,广泛应用于网络通信和数据保密领域。
但DES算法也存在一些缺点,主要是密钥长度较短,为56位,容易受到暴力破解攻击;DES算法的设计和实现已经有一定历史了,现在已经有更安全和更高效的算法可供选择。
在实验中,我使用Python语言编写了DES算法的加密程序,在给定的明文和密钥下进行了测试。
实验结果表明,DES算法可以成功加密数据,并且在解密过程中能够准确还原原始数据。
总结来说,DES加密算法是一种经典的对称加密算法,通过初始置换、Feistel网络和逆初始置换等步骤,可以将明文数据加密成密文数据。
DES算法在保证加密强度和运算速度的同时,也有一些缺点需要注意。
因此,在实际应用中需要根据具体的需求和安全要求选择合适的加密算法。
网络安全加密技术实训报告
一、实训背景随着信息技术的飞速发展,网络安全问题日益突出。
加密技术作为保障网络安全的重要手段,在信息安全领域扮演着至关重要的角色。
为了提高我国网络安全技术水平,培养具有实际操作能力的网络安全人才,我们开展了网络安全加密技术实训。
二、实训目的1. 了解加密技术的基本原理和分类;2. 掌握常用的加密算法及其应用;3. 学会使用加密工具进行实际操作;4. 增强网络安全意识,提高实际操作能力。
三、实训内容1. 加密技术基本原理加密技术是一种将明文转换为密文的过程,以保证信息在传输过程中不被非法获取和篡改。
加密技术主要分为对称加密、非对称加密和哈希算法三种。
2. 常用加密算法(1)对称加密算法:如DES、AES等,其特点是加密和解密使用相同的密钥。
(2)非对称加密算法:如RSA、ECC等,其特点是加密和解密使用不同的密钥,即公钥和私钥。
(3)哈希算法:如MD5、SHA-1等,用于生成数据的摘要,以确保数据的一致性和完整性。
3. 加密工具的使用(1)AES加密工具:用于实现对称加密,保护文件、文件夹等数据。
(2)RSA加密工具:用于实现非对称加密,实现数据传输的加密和解密。
(3)Hash工具:用于生成数据的摘要,确保数据的一致性和完整性。
4. 实际操作(1)使用AES加密工具加密文件,并验证加密和解密过程。
(2)使用RSA加密工具加密邮件,并验证加密和解密过程。
(3)使用Hash工具生成文件的摘要,并验证数据的一致性和完整性。
四、实训总结1. 加密技术在网络安全中具有重要意义,是保障信息安全的重要手段。
2. 熟练掌握常用加密算法和工具,有助于提高网络安全防护能力。
3. 在实际操作中,要注重加密密钥的安全管理,防止密钥泄露。
4. 加密技术是不断发展的,要关注新技术、新算法的应用。
五、实训心得1. 加密技术在网络安全中的重要性让我深刻认识到,只有掌握加密技术,才能更好地保障信息安全。
2. 通过实训,我对加密算法和工具有了更深入的了解,提高了实际操作能力。
密码学案例实验报告
一、实验背景随着信息技术的飞速发展,网络安全问题日益突出,加密技术作为保障信息安全的重要手段,在各个领域都得到了广泛应用。
本实验报告旨在通过实际操作,加深对密码学原理和算法的理解,提高加密和解密的能力。
二、实验目的1. 了解密码学的基本概念和分类;2. 掌握DES、AES等常用加密算法的原理和流程;3. 能够运用密码学工具进行加密和解密操作;4. 分析密码破解技术,提高安全意识。
三、实验内容1. 实验一:DES加密算法(1)实验原理DES(Data Encryption Standard)是一种经典的对称加密算法,它采用64位密钥和64位明文,经过16轮加密操作,生成64位密文。
(2)实验步骤① 编写程序实现DES加密算法的加解密功能;② 使用密钥对一段英文文本进行加密和解密;③ 分析加密和解密结果,验证算法的正确性。
2. 实验二:AES加密算法(1)实验原理AES(Advanced Encryption Standard)是一种广泛使用的对称加密算法,它支持128位、192位和256位密钥长度,具有速度快、安全性高等优点。
(2)实验步骤① 编写程序实现AES加密算法的加解密功能;② 使用不同长度的密钥对一段英文文本进行加密和解密;③ 分析加密和解密结果,验证算法的正确性。
3. 实验三:密码破解技术(1)实验原理密码破解技术是指通过尝试各种可能的密钥,来破解加密信息的技术。
常见的密码破解方法有穷举攻击、字典攻击、暴力破解等。
(2)实验步骤① 使用密码破解工具对加密文本进行破解;② 分析破解结果,了解不同破解方法的特点和适用场景;③ 提高安全意识,防范密码破解攻击。
四、实验结果与分析1. 实验一和实验二的结果表明,DES和AES加密算法能够正确地对文本进行加密和解密,验证了算法的正确性。
2. 通过实验三,我们了解到密码破解技术的种类和特点,提高了安全意识。
在实际应用中,应选择合适的加密算法和密钥长度,以提高安全性。
设计加密算法的实验报告
一、实验目的1. 了解加密算法的基本原理和设计方法;2. 掌握加密算法的评估标准;3. 提高对加密算法的安全性分析和改进能力。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3. 开发工具:PyCharm三、实验内容1. 设计一个简单的加密算法;2. 对算法进行安全性分析;3. 改进算法,提高安全性。
四、实验步骤1. 设计加密算法(1)算法原理:采用异或(XOR)运算对明文进行加密,加密密钥为随机生成的密钥。
(2)算法流程:① 生成密钥:使用随机数生成器生成一个随机密钥;② 加密过程:将明文与密钥进行XOR运算,得到密文;③ 解密过程:将密文与密钥进行XOR运算,得到明文。
2. 算法安全性分析(1)密钥安全性:加密密钥需要保密,否则攻击者可以轻易破解密文;(2)算法复杂性:算法需要具有较低的计算复杂度,以适应实际应用;(3)抗攻击能力:算法需要具备较强的抗攻击能力,包括穷举攻击、暴力破解等。
3. 改进算法(1)密钥生成:采用更复杂的密钥生成方法,如基于密码学算法的密钥生成;(2)加密模式:采用多种加密模式,如CBC、CFB等,提高加密效果;(3)加密轮数:增加加密轮数,提高加密强度;(4)密钥扩展:使用密钥扩展算法,如密钥派生函数,提高密钥安全性。
五、实验结果与分析1. 实验结果(1)加密算法实现:完成加密算法的设计和实现;(2)安全性分析:对加密算法进行安全性分析,发现存在一定的安全隐患;(3)改进算法:根据安全性分析结果,对加密算法进行改进,提高安全性。
2. 实验分析(1)加密算法的密钥安全性较好,但密钥生成方法较为简单,容易受到攻击;(2)加密算法的计算复杂度较低,适合实际应用;(3)加密算法的抗攻击能力较弱,容易受到穷举攻击和暴力破解。
六、实验结论1. 通过本次实验,掌握了加密算法的基本原理和设计方法;2. 了解加密算法的评估标准,能够对加密算法进行安全性分析;3. 提高了加密算法的安全性分析和改进能力,为后续研究奠定了基础。
可视密码技术的研究
可视密码技术的研究可视密码技术的研究随着计算机技术的不断发展,传统的密码技术逐渐显露出一些安全性问题。
为了增强密码的安全性,可视密码技术应运而生。
可视密码技术是一种基于图像或视觉元素的身份验证方法,通过用户对图像或视觉元素的选择或操作,达到身份验证的目的。
本文将对可视密码技术的研究进行探讨。
可视密码技术的目的是替代传统的文本密码,并为用户提供更便捷、易于记忆的身份验证方式。
与传统的文本密码相比,可视密码技术具有以下优势:首先,可视密码技术更直观、易于使用。
用户只需通过视觉操作,如点击图像、拖动元素等,就能完成身份验证过程。
相比起记住复杂的文本密码,使用可视密码技术更容易理解和记忆。
其次,可视密码技术具有较高的安全性。
可视密码技术不仅仅依赖于用户选择的视觉元素,还考虑了其选择顺序、位置等因素。
这样一来,即使黑客获得了用户的可视密码序列,也很难还原出其真实的密码。
第三,可视密码技术在一定程度上可以防止密码盗取。
在传统的文本密码中,用户的密码可能被揭示给旁观者,导致密码被盗取。
而可视密码技术可以将用户的密码隐藏在选择的视觉元素中,增加了密码的安全性。
然而,可视密码技术也存在着一些挑战与问题。
首先,可视密码技术的安全性高度依赖于用户的选择和操作习惯。
如果用户选择过于简单或容易被猜测的密码,那么安全性就大打折扣。
同时,用户也需要严格保护自己的可视密码序列,避免被他人获取。
其次,可视密码技术在使用便捷性方面还有待改进。
对于一些特殊人群,如视力受损人士,使用可视密码技术可能存在困难。
因此,在设计可视密码系统时,需要考虑到不同用户的特殊需求,提供适应性更强的方案。
另外,可视密码技术在应用于特定领域时,也需要进行一定的适应和优化。
例如,在金融领域,可视密码技术需要承受更高的安全性要求,以防止黑客攻击和欺诈行为。
为了进一步提高可视密码技术的安全性和可靠性,许多研究已经展开。
研究者们尝试通过改进可视密码系统的设计和算法,提高密码的难以猜测性和密码的变化性。
数字加密技术实验报告单
一、实验目的1. 理解数字加密技术的基本原理和常用算法。
2. 掌握数字加密技术的实现方法。
3. 学会使用加密工具进行数据加密和解密。
4. 提高网络安全意识和数据保护能力。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.73. 加密工具:PyCrypto库三、实验内容1. AES加密算法实验2. RSA加密算法实验3. 数字签名实验4. 数据加密与解密实验四、实验步骤1. AES加密算法实验(1)导入PyCrypto库```pythonfrom Crypto.Cipher import AESfrom Crypto.Random import get_random_bytes ```(2)生成密钥和初始化向量```pythonkey = get_random_bytes(16) # 生成16字节的密钥iv = get_random_bytes(16) # 生成16字节的初始化向量```(3)创建加密对象并加密数据```pythoncipher = AES.new(key, AES.MODE_CBC, iv) # 创建AES加密对象plaintext = b"Hello, World!" # 待加密的明文ciphertext = cipher.encrypt(plaintext) # 加密数据```(4)解密数据```pythoncipher_dec = AES.new(key, AES.MODE_CBC, iv) # 创建AES解密对象decrypted_text = cipher_dec.decrypt(ciphertext) # 解密数据print(decrypted_text.decode('utf-8')) # 输出解密后的明文```2. RSA加密算法实验(1)导入PyCrypto库```pythonfrom Crypto.PublicKey import RSAfrom Crypto.Cipher import PKCS1_OAEP```(2)生成RSA密钥对```pythonkey = RSA.generate(2048) # 生成2048位的RSA密钥对private_key = key.export_key() # 导出私钥public_key = key.publickey().export_key() # 导出公钥```(3)使用公钥加密数据```pythoncipher_rsa = PKCS1_OAEP.new(RSA.import_key(public_key)) # 创建RSA加密对象plaintext = b"Hello, World!" # 待加密的明文ciphertext = cipher_rsa.encrypt(plaintext) # 加密数据```(4)使用私钥解密数据```pythoncipher_rsa_dec = PKCS1_OAEP.new(RSA.import_key(private_key)) # 创建RSA 解密对象decrypted_text = cipher_rsa_dec.decrypt(ciphertext) # 解密数据print(decrypted_text.decode('utf-8')) # 输出解密后的明文```3. 数字签名实验(1)导入PyCrypto库```pythonfrom Crypto.Signature import pkcs1_15from Crypto.Hash import SHA256```(2)生成RSA密钥对```pythonkey = RSA.generate(2048) # 生成2048位的RSA密钥对private_key = key.export_key() # 导出私钥public_key = key.publickey().export_key() # 导出公钥```(3)创建SHA256哈希对象并计算哈希值```pythonhash_obj = SHA256.new(b"Hello, World!") # 创建SHA256哈希对象hash_value = hash_obj.digest() # 计算哈希值```(4)使用私钥生成签名```pythonsignature = pkcs1_15.new(RSA.import_key(private_key)).sign(hash_obj) # 生成签名```(5)使用公钥验证签名```pythonpkcs1_15.new(RSA.import_key(public_key)).verify(hash_obj, signature) # 验证签名```4. 数据加密与解密实验(1)使用AES加密数据```pythonkey = get_random_bytes(16) # 生成16字节的密钥iv = get_random_bytes(16) # 生成16字节的初始化向量cipher_aes = AES.new(key, AES.MODE_CBC, iv) # 创建AES加密对象plaintext = b"Hello, World!" # 待加密的明文ciphertext = cipher_aes.encrypt(plaintext) # 加密数据```(2)使用RSA加密密钥```pythoncipher_rsa = PKCS1_OAEP.new(RSA.import_key(public_key)) # 创建RSA加密对象encrypted_key = cipher_rsa.encrypt(key) # 加密密钥```(3)使用RSA加密的数据和加密后的密钥进行传输(4)接收方使用RSA解密密钥```pythoncipher_rsa_dec = PKCS1_OAEP.new(RSA.import_key(private_key)) # 创建RSA 解密对象decrypted_key = cipher_rsa_dec.decrypt(encrypted_key) # 解密密钥```(5)使用AES解密数据```pythoncipher_aes_dec = AES.new(decrypted_key, AES.MODE_CBC, iv) # 创建AES解密对象decrypted_text = cipher_aes_dec.decrypt(ciphertext) # 解密数据print(decrypted_text.decode('utf-8')) # 输出解密后的明文```五、实验结果与分析通过本次实验,我们成功实现了以下内容:1. AES加密算法实验:实现了AES加密和解密过程,验证了AES算法的可靠性和安全性。
可视密码术——精选推荐
山东科技大学通信工程系创新性实验设计报告实验项目名称____可视图像加密______姓名____学号__手机Email *******************专业班级___指导教师及职称____开课学期2011 至_2012 学年第_2 _学期提交时间2012 年7 月13 日一、实验摘要二、实验目的三、实验设计方案图4.解密图像与原图像的比较上图中第三幅图为未混入噪声的解密图像,第四、五副图像分别为在密码图IM1_ace 和IM2_ace中混入了高斯噪声和椒盐噪声后的解密图像,第六幅图是将IM1_gnoise和IM2_snoise重合后的解密图像。
可以看到,噪声对图像的解密有很大的干扰作用,当噪声达到一定阈值时,我们就无法还原到理想可辨认的图像,有趣的是,从几幅图的对比中,我们发现,高斯噪声对图像解密的干扰作用远大于椒盐噪声,混入小额度的高斯噪声即可几乎将原图像淹没,而混入椒盐噪声的解密图像依然可以依稀辨认。
可视密码加密技术可以保密传输并较好地还原图像,是一种有效的加密方式,噪声对密码图像的还原很大的影响。
五、指导老师对实验设计方案的意见:六、创新实验室负责教师审查意见及工位分配:教你如何用WORD文档(2012-06-27 192246)转载▼标签:杂谈1. 问:WORD 里边怎样设置每页不同的页眉?如何使不同的章节显示的页眉不同?答:分节,每节可以设置不同的页眉。
文件――页面设置――版式――页眉和页脚――首页不同。
2. 问:请问word 中怎样让每一章用不同的页眉?怎么我现在只能用一个页眉,一改就全部改了?答:在插入分隔符里,选插入分节符,可以选连续的那个,然后下一页改页眉前,按一下“同前”钮,再做的改动就不影响前面的了。
简言之,分节符使得它们独立了。
这个工具栏上的“同前”按钮就显示在工具栏上,不过是图标的形式,把光标移到上面就显示出”同前“两个字来。
3. 问:如何合并两个WORD 文档,不同的页眉需要先写两个文件,然后合并,如何做?答:页眉设置中,选择奇偶页不同与前不同等选项。
数据加密应用实验报告
一、实验目的1. 理解数据加密的基本原理和方法。
2. 掌握常用的数据加密算法及其应用。
3. 熟悉数据加密在实际应用中的操作流程。
4. 提高信息安全意识和技能。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 加密工具:PyCrypto库4. 实验数据:随机生成的文本文件三、实验内容1. 数据加密原理介绍2. 常用数据加密算法(1)对称加密算法(2)非对称加密算法(3)哈希算法3. 数据加密应用实例(1)文件加密(2)网络通信加密(3)数字签名四、实验步骤1. 导入PyCrypto库2. 生成随机密钥3. 选择加密算法4. 加密数据5. 解密数据6. 验证加密和解密结果五、实验结果与分析1. 对称加密算法(1)实验步骤- 生成随机密钥- 选择AES加密算法- 加密数据- 解密数据- 验证加密和解密结果(2)实验结果- 加密和解密结果一致,说明加密算法正确2. 非对称加密算法(1)实验步骤- 生成公钥和私钥- 选择RSA加密算法- 使用公钥加密数据- 使用私钥解密数据- 验证加密和解密结果(2)实验结果- 加密和解密结果一致,说明加密算法正确3. 哈希算法(1)实验步骤- 选择SHA-256哈希算法- 对数据进行哈希处理- 验证哈希结果(2)实验结果- 哈希结果正确,说明哈希算法正确4. 数据加密应用实例(1)文件加密- 加密实验数据文件- 解密文件- 验证加密和解密结果(2)网络通信加密- 使用SSL/TLS协议进行加密通信- 验证加密通信效果(3)数字签名- 使用私钥对数据进行签名- 使用公钥验证签名- 验证数字签名正确性六、实验总结1. 通过本次实验,我们对数据加密的基本原理和方法有了更深入的了解。
2. 掌握了常用的数据加密算法及其应用,如AES、RSA和SHA-256等。
3. 熟悉了数据加密在实际应用中的操作流程,提高了信息安全意识和技能。
七、实验心得1. 数据加密技术在保障信息安全方面具有重要意义,对于保护个人隐私、商业秘密和国家信息安全具有重要意义。
可视秘密共享研究的开题报告
可视秘密共享研究的开题报告一、研究背景随着互联网技术的快速发展,数据的产生和传输越来越方便,并且数据量越来越大,数据安全和隐私问题也越来越引人注目。
特别是在金融、医疗等领域需要对敏感数据进行保护,但同时也需要共享数据进行应用的场景,如何在数据保护的前提下实现数据共享就成了一个重要的问题。
传统的数据共享方法存在很多问题,比如将数据直接发送给其他用户,容易造成数据泄露;通过加密后的数据进行共享,虽然能够保护数据隐私,但会增加数据处理的难度和计算资源的消耗。
因此,可视秘密共享技术得到了越来越多的关注和研究。
可视秘密共享技术能够保证数据的隐私性和安全性的同时,也能够实现数据的有效共享,成为了解决数据安全和数据共享之间矛盾的新思路。
二、研究目的本次研究的主要目标是探究可视秘密共享技术的原理和应用,分析其在现实场景中的可行性和优劣势,并建立一套高效、安全、实用的可视秘密共享方案。
三、研究内容和方法1. 研究可视秘密共享技术的原理和应用,包括门限秘密共享、属性秘密共享、基于身份的加密等技术,并分析其优缺点及适用范围。
2. 探究可视秘密共享技术在金融、医疗等领域的应用场景,分析其在现实场景中的可行性及安全性,并提出相应的解决方案。
3. 建立一套可视秘密共享方案,包括系统设计、算法实现和安全验证等环节,验证该方案的可行性和实用性。
4. 采用文献调研、案例分析和实验验证相结合的方法进行研究,并结合实际需求进行方案设计和应用实践。
四、研究预期成果1. 对可视秘密共享技术的理论和应用有深入的了解。
2. 在金融、医疗等领域提出应用可视秘密共享技术的方案,并验证其可行性和可信度。
3. 提出一套高效、安全、实用的可视秘密共享方案,并完成实现和验证。
4. 在相关领域推广可视秘密共享技术的应用,促进数据的安全共享和创新发展。
五、研究进度安排本研究计划用时12个月,具体进度安排如下:第1个月:调研可视秘密共享技术第2-3个月:深入学习可视秘密共享技术的原理和应用第4-5个月:分析可视秘密共享技术在金融、医疗等领域的应用场景,并提出相应的解决方案第6-9个月:建立可视秘密共享方案,并完成实现和验证第10个月:对方案进行优化,并加以改进第11-12个月:撰写研究报告和论文并进行专业论文答辩六、研究意义和价值本研究的意义在于:1. 探究可视秘密共享技术的原理和应用,为金融、医疗等领域数据保护和共享提供新思路。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
组号:
创新性实验报告
题目:________可视加密
学院:________电子通信与物理_____________ 专业班级:_________通信工程12-2______________ 学号:_________201201101303______________ 学生姓名:____________邓海斌_________________ 指导教师:_____________颜斌__________________ 完成日期:___________________________________
1.摘要
可视密码术始自1994 年。
它涉及的问题是:有无可能将一个秘密图片分发给两个人,每个
人都无法从其获得的加密图片获得原始图片信息,但是将图片合在一起就可以获得原始的图
片的信息。
本项实验是用可视密码术的提出者设计的一套算法实现简单的可视密码方案。
可视密码方案提供了一种将一个秘密的黑白图像分割成多个子秘密的方案,不需要任何密码学的计算就可以通过这些子秘密获得原来的秘密图像。
关键词:
可视加密, matlab, 噪声.
2.设计的目的
1.理解可视图像加密术的基本思想和方法。
2.进一步熟悉 matlab 软件的使用。
3.使用 matlab 编程加密二值图像并重建。
4.提高分析问题、发现问题和解决问题的能力。
3.设计的原理
可视密码的解密原理是通过投影片的叠加,以视觉辨别出秘密图像,在人类视觉系统分辨色彩时,会依据色块与周围环境之间所产生的色彩对比来进行辨识。
例如同一个灰点在黑纸与白纸上,人类视觉系统会认为在黑纸的灰点会比在白纸上的灰点看起来亮,这就是视觉系统在辨别灰度差异的识别能力,可视密码就是由此概念来建构的。
表.1是一个(2,2)可视密码的编码模型,表中的每一个黑色或白色代表一个像素的颜色,当从秘密图像中拿到一个像素,若此像素为白色,就随机选择表格中的第一行或第二行的像素组合配置在分存图像的对应位置上;若此图像像素为黑色,则随机选择第三行或第四行的像素组合配置在分存图像的对应位置上。
表格最后一列则是分存图像1与分存图像2叠加时的结果。
从此表中可以发现,当只有一张分存图像时,是无法辨识出原秘密图像的像素点的,一旦两张分存图像叠加,对应在原图像的黑点会产生全黑的两个像素点组合,而对应在原秘密图像的白点会产生一黑一白的两个像素点组合,利用视觉系统即可分辨黑点与白点的差异。
根据表1编码模型,可将此概念延伸到(k,n)可视密码,即将图像加密为n张分存图像,当取k张(或k张以上)分存图像同时叠加即可辨识出秘密图像,但取k-1张(或以下)分存图像同时叠加则无法辨识出秘密图像。
Naor 方案用于处理二值图像。
该方案将原图像的一个像素分解为两个像素,如下图所示:
如果当前像素是0,则以概率0.5 分别取第一二行,如果当前像素是1,则以概率0.5 分别取第三四行。
最后一列给出了将两部分合成到一起的效果。
原来的黑像素还是黑的,但是原来
的白像素变成了一边黑一边白。
4.设计的过程
1.程序流图如图1所示
2.读入文件并扩展像素。
我们将每个像素扩展为两个像素,这样才能实现替换。
使用如下程序实现。
Img_in = imread('lena.tiff');
[Nr, Nc] = size(Img_in);
Img_scaled = zeros(Nr, 2*Nc);
Img_scaled((1:Nr), 2*(1:Nc))=Img_in;
Img_scaled((1:Nr), 2*(1:Nc)-1)=Img_in;
3.根据像素值替换原始像素
Share1 = zeros(Nr,2*Nc);
Share2 = zeros(Nr,2*Nc);
for i=1:Nr
for j=1:2:2*Nc
if Img_scaled(i,j) == 0 % white pixel
randomflip = normrnd(0,1,1,1)>0;
if randomflip
Share1(i,j)=0;
Share1(i,j+1)=1;
Share2(i,j)=0;
Share2(i,j+1)=1;
else
Share1(i,j)=1; Share1(i,j+1)=0;
Share2(i,j)=1; Share2(i,j+1)=0;
end
else
randomflip = normrnd(0,1,1,1)>0;
if randomflip
Share1(i,j+1)=1; Share1(i,j)=0;
Share2(i,j)=1; Share2(i,j+1)=0;
else
Share1(i,j)=1; Share1(i,j+1)=0;
Share2(i,j+1)=1;Share2(i,j)=0;
end
end% end of if
end
end
figure(1);
subplot(4,1,1); imshow(Img_scaled,[]);
subplot(4,1,2); imshow(Share1,[]);
subplot(4,1,3); imshow(Share2,[]);
subplot(4,1,4); imshow(Share1+Share2>1,[]);
A=50; % 噪声系数A
noise=A*randn(size(Img_scaled));
Share1=Share1+noise; % 叠加噪声
Share2=Share2+noise; % 叠加噪声
figure(2)
subplot(1,3,1); imshow(Share1,[]);
subplot(1,3,2); imshow(Share2,[]);
subplot(1,3,3); imshow(Share1+Share2>1,[])
5.实验测试条件、配置和结果
在matlab环境下运行程序,得到的结果如下:
图2,不加噪声的情况下,原图, Share1 和Share2,和解密后的图
图3.分别为加噪声后的Share1 和Share2,和解密后的图
6.结论
可视加密技术可以很好的保密传输并且能较好的还原出原图,是一种有效的加密方式,然而从实验中得知,噪声对可是加密还原出原图的影响比较大,在本实验中自己有很多不知道的地方,很感谢给与我帮助的同学。
7.参考文献
附录程序:
function visualcryptography()
clear all; close all;
Img_in = imread('lena.tiff');
[Nr, Nc] = size(Img_in);
Img_scaled = zeros(Nr, 2*Nc);
Img_scaled((1:Nr), 2*(1:Nc))=Img_in;
Img_scaled((1:Nr), 2*(1:Nc)-1)=Img_in;
for i=1:Nr
for j=1:1:2*Nc
if Img_scaled(i,j) > 128
Img_scaled(i,j)=1;
else
Img_scaled(i,j)=0;
end
end
end
Share1 = zeros(Nr,2*Nc);
Share2 = zeros(Nr,2*Nc);
for i=1:Nr
for j=1:2:2*Nc
if Img_scaled(i,j) == 0 % white pixel randomflip = normrnd(0,1,1,1)>0; %
if randomflip
Share1(i,j)=0; Share1(i,j+1)=1;
Share2(i,j)=0; Share2(i,j+1)=1;
else
Share1(i,j)=1; Share1(i,j+1)=0;
Share2(i,j)=1; Share2(i,j+1)=0;
end
else
randomflip = normrnd(0,1,1,1)>0;
if randomflip
Share1(i,j)=0; Share1(i,j+1)=1;
Share2(i,j)=1; Share2(i,j+1)=0;
else
Share1(i,j)=1; Share1(i,j+1)=0;
Share2(i,j)=0; Share2(i,j+1)=1;
end
end% end of if
end
end
figure(1);
subplot(4,1,1); imshow(Img_scaled,[]);
subplot(4,1,2); imshow(Share1,[]);
subplot(4,1,3); imshow(Share2,[]);
subplot(4,1,4); imshow(Share1+Share2>1,[]);
A=50; % 噪声系数
noise=A*randn(size(Img_scaled));
Share1=Share1+noise; % 叠加噪声
Share2=Share2+noise; % 叠加噪声
figure(2)
subplot(3,1,1); imshow(Share1,[]);
subplot(3,1,2); imshow(Share2,[]);
subplot(3,1,3); imshow(Share1+Share2>1,[])。