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

合集下载

PGP实验报告

PGP实验报告

PGP实验报告一、实验目的本次 PGP(Pretty Good Privacy)实验的主要目的是深入了解和掌握PGP 加密技术的原理、应用以及其在保障信息安全方面的有效性。

通过实际操作和实验分析,提高对加密技术的认识和应用能力,为信息安全领域的学习和实践打下坚实的基础。

二、实验环境1、操作系统:Windows 102、软件工具:Gpg4win 套件,包括 GnuPG(GPG)、Kleopatra 等3、网络环境:稳定的互联网连接三、实验原理PGP 是一种混合加密系统,结合了对称加密算法(如 IDEA、CAST 等)和非对称加密算法(如 RSA)的优点。

其工作原理大致如下:首先,生成一对密钥,包括公钥和私钥。

公钥可以公开分享,用于加密发送给拥有对应私钥的用户的信息;私钥则必须保密,用于解密使用对应的公钥加密的信息。

当要发送加密信息时,使用接收方的公钥对明文进行加密。

接收方收到加密后的信息后,使用自己的私钥进行解密,从而获取明文。

为了提高加密和解密的效率,对于较大的明文数据,通常先使用对称加密算法生成一个随机的会话密钥,然后使用会话密钥对明文进行加密。

接收方使用私钥解密获取会话密钥,再用会话密钥解密真正的明文数据。

此外,PGP 还提供了数字签名功能,确保信息的完整性和来源的可靠性。

发送方使用自己的私钥对信息的摘要进行签名,接收方使用发送方的公钥验证签名,以确认信息未被篡改且确实来自声称的发送方。

四、实验步骤1、安装 Gpg4win 套件在官方网站下载 Gpg4win 安装程序,按照默认设置进行安装。

2、生成密钥对打开 Kleopatra 工具,选择“新建密钥对”。

在向导中,输入个人信息,如姓名、电子邮件地址等。

选择密钥长度和有效期,然后等待密钥生成完成。

3、导出和导入公钥生成密钥对后,将自己的公钥导出为文件,并分享给其他实验参与者。

同时,导入其他参与者的公钥,以便进行加密通信。

4、加密和解密文件选择一个明文文件,使用其他参与者的公钥进行加密。

数据加密应用实验报告

数据加密应用实验报告

一、实验目的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. 数据加密技术在保障信息安全方面具有重要意义,对于保护个人隐私、商业秘密和国家信息安全具有重要意义。

数字签名算法实验报告

数字签名算法实验报告

竭诚为您提供优质文档/双击可除数字签名算法实验报告篇一:数字签名实验报告附件2:北京理工大学珠海学院实验报告ZhuhAIcAmpAusoFbeIJIngInsTITuTeoFTechnoLogY实验题目数字签名实验实验时间20XX.4.8一、实验目的:(1)掌握数字签名技术的原理;(2)熟悉密钥的生成及其应用。

二、实验内容以及步骤:RsA-pKcs签名算法(一)签名及验证计算(1)进入实验实施,默认选择即为“RsA-pKcs”标签,显示RsA-pKcs签名实验界面。

(2)选择明文格式,输入明文信息。

点击“计算shA1值”按钮,生成明文信息的散列值。

(3)选择密钥长度,此处以512bit为例,点击“生成密钥对”按钮,生成密钥对和参数。

选择“标准方法”标签,在标签下查看生成的密钥对和参数。

(4)标准方法签名及验证点击“标准方法”标签下的“获得签名值”按钮,获取明文摘要的签名值,签名结果以十六进制显示于相应的文本框内;点击“验证签名”按钮,对签名结果进行验证,并显示验证结果;上述过程如图1.1.8-3所示。

(5)选择“中国剩余定理方法”标签,在标签下查看生成的密钥对和参数。

(6)中国剩余定理方法签名及验证点击“中国剩余定理方法”标签下的“获得签名值”按钮,获取明文摘要的签名值,签名结果以十六进制显示于相应的文本框内;点击“验证签名”按钮,对签名结果进行验证,并显示验证结果。

eLgAmAL签名算法(1)在“RsA-pKcs”标签下的扩展实验中,点击“eLgAmAL 扩展实验”按钮,进入eLgAmAL签名算法扩展实验窗体。

(2)设置签名系统参数。

在文本框“大素数p”内输入一个大的十进制素数(不要超过8位);然后在文本框“本原元a”内输入一个小于p的十进制正整数,点击“测试”。

(3)注册用户,在“用户名”文本框中输入一个“注册用户列表”中未出现的用户名,如“alice”,点击“注册”按钮。

(4)在“用户注册”窗口中的文本框“私钥x”中输入一个小于素数p的十进制非负整数,点击“确定”按钮;然后,点击“计算公钥”按钮,系统会为该用户生成一对公私钥。

数字签名系统实验报告

数字签名系统实验报告

一、实验目的1. 理解数字签名的概念和原理;2. 掌握数字签名算法的设计与实现;3. 了解数字签名在信息安全中的应用。

二、实验环境1. 操作系统:Windows 102. 开发工具:Visual Studio 20193. 编程语言:C#三、实验内容1. 数字签名算法的选择与设计本实验选用RSA算法作为数字签名算法,RSA算法是一种非对称加密算法,具有较好的安全性。

2. 数字签名算法的实现(1)RSA密钥对的生成RSA算法首先需要生成一对密钥,包括公钥和私钥。

公钥用于加密和解密,私钥用于签名和验证签名。

(2)数字签名生成使用公钥对数据进行加密,得到数字签名。

数字签名是对原始数据的加密,只有使用对应的私钥才能解密。

(3)数字签名验证使用公钥对数字签名进行解密,得到解密后的数据。

将解密后的数据与原始数据进行比较,若一致,则验证成功。

3. 数字签名系统设计(1)系统架构数字签名系统采用分层架构,包括以下层次:- 应用层:负责用户交互、数据处理和存储;- 业务逻辑层:负责数字签名算法的实现;- 数据访问层:负责数据存储和读取。

(2)功能模块- 用户注册与登录:用户注册账号,登录系统;- 数据上传与下载:用户上传待签名的数据,系统生成数字签名,用户下载签名后的数据;- 数字签名验证:用户上传签名后的数据,系统验证签名是否有效。

四、实验步骤1. 创建RSA密钥对在Visual Studio 2019中,使用C#语言创建RSA密钥对。

2. 实现数字签名算法(1)生成数字签名使用公钥对原始数据进行加密,得到数字签名。

(2)验证数字签名使用公钥对数字签名进行解密,得到解密后的数据,并与原始数据进行比较。

3. 设计数字签名系统(1)创建系统架构根据系统需求,设计系统架构。

(2)实现功能模块编写代码实现用户注册、登录、数据上传、下载、签名生成、签名验证等功能。

五、实验结果与分析1. 实验结果本实验成功实现了数字签名系统,用户可以上传待签名的数据,系统生成数字签名,用户可以下载签名后的数据,并对签名进行验证。

数字加密技术实验报告单

数字加密技术实验报告单

一、实验目的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算法的可靠性和安全性。

数字签名及安全电子邮件详细步骤

数字签名及安全电子邮件详细步骤

数字签名及安全电子邮件一、背景知识使用个人证书,在电子邮件中至少有以下功能。

 保密性:你可以使用收件人的数字证书对电子邮件进行加密。

这样,只有收件人的私钥才能解密这封邮件,即使第三方截获邮件,由于没有收件人的私钥,也无法阅读该邮件。

当然,要发送加密电子邮件,必须先拥有对方的数字证书。

认证身份:你可以使用你本人的数字证书对电子邮件进行数字签名,这样,收件人通过验证签名就可以确定你的身份,而不是他人冒充的。

完整性:如果验证数字签名有效,收件人不仅可以认证你的身份,还可以确信收到的邮件在传递的过程中没有被篡改。

不可否认性:数字签名要使用你本人数字证书中的私钥,而私钥仅你个人所有,所以,你不能对发送过的签名邮件进行否认。

1、电子邮件的重要性由于越来越多的人通过电子邮件发送机密信息,因此确保电子邮件中发送的文档不是伪造的变得日趋重要。

同时保证所发送的邮件不被除收件人以外的其他人截取和偷阅也同样重要。

通过使用 Outlook Express 和 Foxmail,可以在电子事务中证明身份,就象兑付支票时要出示有效证件一样。

也可以使用数字证书来加密邮件以保护邮件的保密性。

数字证书结合了 S/MIME 规范来确保电子邮件的安全。

2、对电子邮件进行数字签名对电子邮件进行数字签名,能够确保电子邮件中发送的文档不是伪造的,即收件人能够确信该邮件来自于其声称的发件人,同时邮件从发件人的机器传达到接收人的机器没有经过任何改动。

当发件人在待发邮件中添加数字签名时,发件人就在邮件中加入了数字签名和自己的数字证书。

邮件的接收方接收到该邮件后,首先判断发件人的证书是否有效(该证书是否是可信任的CA签发的,该证书是否在有效期内,该证书是否已经被撤销),如果证书有效,从发件人的证书中提取公钥信息,来验证邮件的数字签名是否有效。

3、对电子邮件进行加密对电子邮件进行加密(使用接收人的数字证书中的公钥进行加密)可以保证所发送的邮件不被除收件人以外的其他人截取和偷阅。

rsa实验报告

rsa实验报告

rsa实验报告RSA实验报告引言:RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,广泛应用于信息安全领域。

本实验旨在通过实际操作,深入了解RSA算法的原理和应用。

一、RSA算法原理RSA算法基于数论中的大数分解问题,其核心原理是利用两个大质数的乘积很容易计算得到,但是将这个乘积分解为两个大质数却非常困难。

以下是RSA算法的具体步骤:1. 选择两个不相等的大质数p和q,并计算它们的乘积n=p*q。

2. 计算n的欧拉函数φ(n)=(p-1)*(q-1)。

3. 选择一个小于φ(n)且与φ(n)互质的整数e作为公钥指数。

4. 计算e的模反元素d,即满足(e*d)%φ(n)=1的整数d,作为私钥指数。

5. 公钥为(n, e),私钥为(n, d)。

6. 加密时,将明文m通过公式c=(m^e)%n计算得到密文c。

7. 解密时,将密文c通过公式m=(c^d)%n计算得到明文m。

二、实验过程1. 生成密钥对首先,我们使用Python编程语言生成RSA密钥对。

通过调用相关库函数,我们可以轻松地生成公钥和私钥。

2. 加密与解密接下来,我们使用生成的密钥对进行加密与解密操作。

我们选择一段文字作为明文,将其转化为整数形式,并使用公钥进行加密。

然后,使用私钥对密文进行解密,还原为明文。

3. 安全性分析RSA算法的安全性基于大数分解的困难性。

由于大质数的乘积很容易计算得到,而将其分解为两个大质数却非常困难,因此RSA算法在理论上是安全的。

然而,在实际应用中,如果选择的大质数不够大或者密钥管理不当,可能会导致算法的安全性受到威胁。

三、实验结果与分析经过实验,我们成功生成了RSA密钥对,并进行了加密与解密操作。

实验结果表明,RSA算法能够有效地实现信息的加密和解密。

四、应用领域RSA算法在信息安全领域有着广泛的应用。

以下是一些常见的应用场景:1. 数字签名RSA算法可以用于生成数字签名,确保数据的完整性和真实性。

数字签名 实验报告

数字签名 实验报告

(一)下载数字签名证书,本次作业以支持PDF格式为例,探究其功能例如下方所示的pdf文件下载数字证书aloaha PDF Signator,进行解压安装:选择语言为英文安装结束后运行软件其软件界面如下所示在菜单栏或工具栏中打开将要进行签名的文件在工具栏中选择数字签名格式设置:可添加签名日期、姓名,也可以用图片格式在右上角则需下载Transportation Security Administration list另外还应向***************申请evaluation key最终设置完数字签名后进行签名跟保存由于只是试用版软件且没有成功注册,因此所显示的数字签名仅仅是上图所示以上仅为数字签名部分,在验证方面则以网上数字签名进行验证:(二)验证数字签名,以下为已签名的pdf文件点击签名可显示(已验证):在其属性中可以查看到相应证书信息以及公钥信息验证签名时,点击“签名属性”下方的“验证签名”即可完成,在左下图中可以看出,其验证签名后并为承认其签名的有效性,原因出在签名者自身身份不在其信任列表导致其签名不能完全有效,本文档中还包含了其他签名均因信息被更改而导致签名无效(右下图)。

点击签名是可查看其验证后的状态(三)导入数字证书1)以Acrobat Reader 9中文版为例运行Acrobat软件依次点击“文档”-“安全性设置”请选择左边的“数字身份证”,然后单击“添加身份证”。

选择“浏览现有的数字身份证文件”,再点击“下一步”请单击“浏览”选择“数字身份证”并单击“打开”输入证书口令:假如口令为ieltswritingskill点击“完成”回到了刚才的界面,说明我们成功地导入了证书之后运行相应文件,只要正确输入口令即可访问浏览文件(四)原理简述:此类型的数字签名过程,即通过互联网发布的PDF文档可以使用PDF文档签名证书进行身份签名或确认签名,签名后的文档则可以向用户证实PDF文档签署人的真实身份,签署人的真实身份是通过权威的第三方进行审核并确认,同时也保护了PDF文档在传输的过程中没有被非法篡改,从而使得签名后的PDF文档可以安全可靠的用于企业之间电子文档交换和电子合同签署。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、实验目的
●了解什么是数字签名与加密
●掌握用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)鼠标单击“数字标识”按钮。

鼠标单击“下一步”按钮,安装对方数字证书。

发送时从“工具”菜单中选择“加密”,收件人地址栏后面出现“加密”标志。

对方成功收到我的加密:
五、实验总结
实验遇到的问题:
错误代码:由于服务器拒绝接受发件人的电子地址,这封无法发送。

发件人的电子地址“sycyjj163.”。

主题 '发送电子: 腾讯QQ', : 'pop.163.', 服务器: 'smtp.163.', 协议: SMTP, 服务器响应: '553 authentication is required,smtp11,wKjADgsARRb5PcxFLX24FA==.37715S2 1171013113', 端口: 25, 安全(SSL): 否, 服务器错误: 553, 错误号: 0x800CCC78
解决方案:还没有做好SMTP认证:
1.[工具]--->[]
2.选择您要设置的,点选"属性"按扭
3.点选"服务器"选项卡
4.在发送服务器"版块中的"我的服务器要求身份验证"前的复选框打勾.确定即可.
心得:
通过本次实验我知道了如何发送加密文件,在日常生活中我们很少关注的收发是否真正处于一种安全的状态,尤其是如今我们身处互联网发达的时代,信息的安全度大幅度降低。

如果使用加密,不仅是对自己的隐私的一种保护,也有利于营造安全的互联网环境。

相关文档
最新文档