实验2-非对称加密实验报告
实验2-非对称加密实验报告

云南大学软件学院实验报告课程:信息安全学实验学期:2012-2013学年第二学期任课教师:金鑫专业:学号:姓名:成绩:实验2-非对称加密实验一、实验目的了解非对称密码的加密和解密特点,理解加密解密与数字签名的基本原理,掌握PGP加密的原理,使用PGP加密软件加密信息。
二、实验原理公钥和私钥是互补的,就是说用公匙加密的密文可以用私匙解密,反过来也一样。
假设甲要寄信给乙,他们互相知道对方的公匙。
甲就用乙的公匙加密邮件寄出,乙收到后就可以用自己的私匙解密出甲的原文。
由于没别人知道乙的私匙所以即使是甲本人也无法解密那封信,这就解决了信件保密的问题。
另一方面由于每个人都知道乙的公匙,他们都可以给乙发信,那么乙就无法确信是不是甲的来信。
认证的问题就出现了,这时候数字签名就有用了。
甲用自己的私匙加密,附加在邮件上,再用乙的公匙将整个邮件加密。
这样这份密文被乙收到以后,乙用自己的私匙将邮件解密,得到甲的原文和签名,乙的PGP也从原文计算出一个结果与甲的公匙解密签名得到的数比较,如果符合就说明这份邮件确实是甲寄来的。
三、实验步骤1、安装PGP软件,用PGP加密、解密文件密钥加密口令加密解密口令解密2、发送PGP加密和签名后的电子邮件并解密邮件将要发送的文件添加到PGP压缩包对文件进行加密输入邮件地址签名保存生成加密后的PGP文件将加密后的PGP文件发送给搭档对方收到邮件收到的PGP文件解密后得到原文件解密后的文件可以打开并还原,如果密钥不配对打开将是乱码。
四、回答问题1)简要阐述加密解密与数字签名的原理和异同数字签名和数字加密的过程虽然都使用公开密钥体系,但实现的过程正好相反,使用的密钥对也不同。
数字签名使用的是发送方的密钥对,发送方用自己的私有密钥进行加密,接收方用发送方的公开密钥进行解密,这是一个一对多的关系,任何拥有发送方公开密钥的人都可以验证数字签名的正确性。
数字加密则使用的是接收方的密钥对,这是多对一的关系,任何知道接收方公开密钥的人都可以向接收方发送加密信息,只有唯一拥有接收方私有密钥的人才能对信息解密。
实验二 数据加密标准DES及非对称RSA算法实现

实验四数据加密标准DES及非对称RSA算法实现
一、实验目的
1、了解密码学传统对称及非对称加密方法。
2、掌握对称的数据加密标准DES算法及非对称RSA算法原理。
二、实验内容
1、在VC++环境下编程并实现DES及RSA算法。
2、通过自主设定密钥及输入明文,观察每次循环加密过程。
三、实验仪器或环境
1、微型计算机
2、WindowsXP/2003操作系统
3、Visual C++可视化编程软件
四、实验原理
4.1 DES加密的算法基本思路如图1所示:
图1 DES算法流程
4.2 RSA加密的算法基本思路如下表述:
理论基础:利用数论
正:要求得到两个大素数(如大到100位)的乘积在计算机上很容易实现。
逆:但要分解两个大素数的乘积在计算上几乎不可能实现。
密钥设计:两个密钥:公钥(e,n)、私钥(d,n)
⏹加密解密:n
x
y e mod
=
⏹解密时:n
y
x e mod
=
实现步骤:
(1) 选取两个很大的素数p和q,令模数
(2) 求n的欧拉函数)1
Φq
=
n,并从2至[1
-
p
)
)(
(-
1
(
Φn]中任选一个数
(-
)
作为加密指数e;
(3) 解同余方程:1
⨯n
d
e,求得解密指数d;
Φ
)
(
mod=
(4) (e,n)即为公开密钥,(d,n)即为秘密密钥。
五、主要程序代码
请把主要实现的程序代码写入此栏
六、实验结果。
非对称密码算法实验原理

任务一 RSA算法一.非对称密钥加密概述前面讲述了对称密钥加密体制。
使用对称密钥加密体制进行保密通信时,任意不同的两个用户之间都应该使用互不相同的密钥。
这样,如果一个网络中有n个用户,他们之间彼此可能需要进行秘密通信,这时网络中将共需要n(n-1)/2个密钥(其中,每个用户都需要保存n-1个密钥),这样巨大的密钥量给密钥分配和管理带来了极大的困难。
另外,随着计算机网络,特别是因特网的发展,网络上互不相识的用户可能需要进行保密的会话(例如,如果用户在进行电子商务活动时,需要保密的连接,这时的客户对象可能根本不是固定的对象)。
最后,对称密钥加密机制难以解决签名验证问题。
非对称密钥加密也称为公开密钥加密,或者叫做公钥加密算法。
使用公开密钥密码的每一个用户都分别拥有两个密钥:加密密钥和解密密钥,它们两者并不相同,并且由加密密钥得到解密密钥在计算机上是不可行的。
每一个用户的加密密钥都是公开的(因此,加密密钥也称为公开密钥)。
所有用户的公开密钥都将记录在作用类似于电话号码薄的密钥本上,而它可以被所有用户访问,这样每一个用户都可以得到其他所有用户的公开密钥。
同时,每一个用户的解密密钥将由用户保存并严格保密(因此,解密密钥也称为私有密钥)。
非对称密码算法解决了对称密码体制中密钥管理的难题,并提供了对信息发送人的身份进行验证的手段,是现代密码学最重要的发明。
公钥加密算法一般是将对密钥的求解转化为对数学上的困难问题的求解,例如RSA算法的安全性是建立在“大数分解和素性检测”这个数论难题的基础上,已知两个大素数a、b,求出a*b是容易计算的,而已知a*b,想知道其是哪两个大素数的乘积目前还没有好的计算方法,另外也有一些非对称加密算法(如ELGamal算法)的安全性是基于求“离散对数”这个数学难题上的。
在公钥密码系统中每个实体都有自己的公钥和相应的私钥。
公钥密码系统的加密变换和解密变换分别用E和D表示。
任何实体B要向实体A发送信息m的步骤如下:实体B首先获得实体A的真实公钥的拷贝(eA),实体B使用eA计算密文 c=E(m)并发送给实体A ,实体A使用自己的私钥dA,计算m=D(c)解密密文,恢复出明文m。
数据加密应用实验报告

一、实验目的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. 数据加密技术在保障信息安全方面具有重要意义,对于保护个人隐私、商业秘密和国家信息安全具有重要意义。
现代密码算法实验报告(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)输出加密后的密文。
pgp加密实验报告

pgp加密实验报告PGP加密实验报告引言:在当今数字化时代,保护个人隐私和数据安全变得尤为重要。
随着互联网的普及,我们的个人信息和敏感数据越来越容易暴露在网络威胁之下。
为了解决这个问题,加密技术成为了一种重要的手段。
本实验旨在探究PGP(Pretty Good Privacy)加密技术,并通过实际操作来了解其原理和应用。
一、PGP加密的背景和原理PGP加密技术最早由菲尔·齐默曼(Phil Zimmermann)在1991年开发,它是一种非对称加密技术。
非对称加密技术使用了一对密钥,即公钥和私钥。
公钥可以用于加密消息,而私钥则用于解密消息。
二、实验准备在进行PGP加密实验之前,我们需要准备一些工具和材料。
首先,我们需要下载和安装PGP软件,例如GnuPG。
其次,我们需要生成一对密钥,一个用作公钥,另一个用作私钥。
生成密钥时,我们需要输入一些个人信息,如姓名和电子邮件地址。
三、实验步骤1. 生成密钥对在GnuPG软件中,我们可以使用命令行或图形界面生成密钥对。
我们需要输入一些个人信息,并设置一个密码来保护私钥。
生成密钥对后,我们将得到一个公钥文件和一个私钥文件。
2. 密钥的导入和导出我们可以将生成的公钥导出为一个文件,并与他人共享。
其他人可以使用我们的公钥来加密消息,以确保只有我们能够解密。
同样,我们也可以导入他人的公钥,并使用其公钥来加密消息。
3. 加密和解密消息使用GnuPG软件,我们可以使用对方的公钥来加密消息。
在加密过程中,只有使用私钥才能解密。
我们可以通过命令行或图形界面来进行加密和解密操作。
四、实验结果通过实验,我们成功生成了一对密钥,并将公钥导出并与他人共享。
我们还成功使用对方的公钥来加密消息,并使用私钥来解密。
实验结果表明,PGP加密技术能够有效地保护个人隐私和数据安全。
五、实验总结PGP加密技术作为一种非对称加密技术,为我们提供了一种安全保护个人隐私和数据安全的手段。
通过实验,我们深入了解了PGP加密的原理和应用。
信息安全技术实验报告

信息安全技术实验报告一.实验目的本实验旨在探究信息安全技术在网络通信中的应用,了解加密算法和数字签名的基本原理,并通过实际操作掌握其具体实现过程。
二.实验内容1.对称加密算法实验-选择一种对称加密算法,如DES或AES,了解其基本原理和加密流程。
- 使用Python编写对称加密算法的实现程序。
-在实验过程中,通过设计不同的密钥长度和明文信息,观察加密结果的变化。
2.非对称加密算法实验-选择一种非对称加密算法,如RSA,了解公钥和私钥的生成方法。
- 使用Python编写非对称加密算法的实现程序。
-在实验中,生成一对密钥,并将公钥用于加密明文,私钥用于解密密文。
观察加密和解密过程是否正确。
3.数字签名实验-了解数字签名的基本原理和应用场景。
- 使用Python编写数字签名的实现程序。
-在实验中,生成一对密钥,并使用私钥对明文进行签名,再使用公钥验证签名的正确性。
三.实验步骤及结果1.对称加密算法实验-选择了AES加密算法,其基本原理是将明文分组并通过多轮加密运算得到密文。
- 编写了Python程序实现AES加密算法,并进行了调试。
-在不同的密钥长度和明文信息下,得到了不同的加密结果。
观察到密钥长度的增加可以提高加密的安全性。
2.非对称加密算法实验-选择了RSA加密算法,其基本原理是使用两个密钥,公钥用于加密,私钥用于解密。
- 编写了Python程序实现RSA非对称加密算法,并进行了调试。
-成功生成了一对密钥,并使用公钥加密明文,私钥解密密文,观察到加密和解密结果正确。
3.数字签名实验-了解到数字签名可以保证数据的完整性和真实性。
- 编写了Python程序实现数字签名的生成和验证功能,并进行了调试。
-成功生成了一对密钥,并使用私钥对明文进行签名,再使用公钥验证签名的正确性。
四.实验总结本次实验通过对称加密算法、非对称加密算法和数字签名的实现,加深了对信息安全技术的理解和认识。
通过实际操作,掌握了加密算法和数字签名的基本原理和实现过程。
广工网络工程 网络安全试验

网络安全实验报告课程名称网络安全实验名称实验1对称密码算法DES 实验2非对称密码算法RSA学生学院自动化学院 _____专业班级网络工程班学号学生姓名指导教师曾启杰2012 年6月 14 日实验一对称密码算法DES一、实验目的通过用DES算法对实际的数据进行加密和解密来深刻了解DES的运行原理。
二、实验环境运行Windows或Linux操作系统的PC机,具有gcc(Linux)、VC(Windows)等C语言编译环境。
三、实验内容和步骤(1)对一段不少于1000字节(字符)的明文进行加密和解密,提交软件界面和执行结果。
主要的成员变量及函数:class CLab1Dlg : public CDialog{int textLength; // 明文的字节数(=密文的字节数)int fulltextLength; // 补齐明文块之后的字节数unsigned char key[8]; //用户输入的密钥unsigned char plaintext[2000]; //明文存储区unsigned char ciphertext[2000]; //密文存储区unsigned char plaintext16[6001]; //16进制明文存储区unsigned char ciphertext16[6001]; //16进制密文存储区void encryptOneBlock(unsigned char *pt, unsigned char *ct,des_key *skey);// 加密一个明文块void decryptOneBlock(unsigned char *ct, unsigned char *pt,des_key *skey);// 解密一个密文块void getText(CString fromtext, unsigned char * totext, int &textLength);//存储用户输入的明文或密文,返回其首地址和长度(字节数)void encryptAll(unsigned char *pt, unsigned char *ct);// 加密全部明文void decryptAll(unsigned char *ct, unsigned char *pt);// 解密全部密文void show16(unsigned char fromtext[], unsigned char totext[], int length);//转换成16进制程序主要代码:void CLab1Dlg::OnButton1() //加密{UpdateData(TRUE); //控件界面显示的数据传到控件变量getT ext(m_PlainT ext, plaintext, textLength); //获取编辑框的明文encryptAll(plaintext, ciphertext); //对明文进行加密m_CipherT ext = ciphertext;show16(plaintext, plaintext16, textLength);show16(ciphertext, ciphertext16, fulltextLength);m_PlainT ext16 = plaintext16;m_CipherT ext16 = ciphertext16;UpdateData(FALSE); //控件变量的数据传到控件界面显示}void CLab1Dlg::OnButton2() //解密{UpdateData(TRUE); //控件界面显示的数据传到控件变量m_CipherT ext = ciphertext;getT ext(m_CipherT ext, ciphertext, textLength); //获取编辑框的密文decryptAll(ciphertext, plaintext); //对密文进行解密m_PlainT ext = plaintext;show16(plaintext, plaintext16, textLength);show16(ciphertext, ciphertext16, textLength);m_PlainT ext16 = plaintext16;m_CipherT ext16 = ciphertext16;UpdateData(FALSE); //控件变量的数据传到控件界面显示}void CLab1Dlg::getT ext(CString fromtext, unsigned char *totext, int &textLength){textLength = fromtext.GetLength();int i;for(i=0;i<textLength;i++)totext[i] = fromtext.GetAt(i);for(i=textLength;i<2000;i++)totext[i] = 0;}void CLab1Dlg::encryptAll(unsigned char *pt, unsigned char *ct){des_key skey;unsigned char s[8]={0,0,0,0,0,0,0,0};for(int j=0;j<m_externkey.GetLength();j++)s[j] = m_externkey.GetAt(j);des_setup(s,8,0,&skey); //生成每轮所需的子密钥int dataBytes = textLength % 8; //最后一个明文块有多少字节的明文数据int i;for(i=0; i<=6-dataBytes; i++) //填充最后一个明文块plaintext[textLength+i]=0;plaintext[textLength+i] = 7 - dataBytes;//最后一个字节表示最后的明文块填充了多少字节的"00H"fulltextLength = textLength+plaintext[textLength+i]+1; //填充最后明文块的明文总长度int t;for(t = 0; t<textLength/8+1;t++) //每8个字节为一组进行加密{encryptOneBlock(pt+8*t,ct+8*t,&skey);}*(ct+8*t)=0;}void CLab1Dlg::encryptOneBlock(unsigned char *pt, unsigned char *ct,des_key *skey)// 加密一个明文块{des_ecb_encrypt(pt,ct,skey);}void CLab1Dlg::decryptAll(unsigned char *ct, unsigned char *pt){des_key skey;unsigned char s[8]={0,0,0,0,0,0,0,0};for(int j=0;j<m_externkey.GetLength();j++)s[j] = m_externkey.GetAt(j);des_setup(s,8,0,&skey); //生成每轮所需的子密钥int t;for(t = 0; t<textLength/8;t++) //每8个字节为一组进行加密{decryptOneBlock(ct+8*t, pt+8*t, &skey);}unsigned char * q = pt+8*t;*q=0;q--;textLength -= *q+1;for(int i=*q;i>0;i--)*(q-i)=0;*q=0;}void CLab1Dlg::decryptOneBlock(unsigned char *pt, unsigned char *ct,des_key *skey)// 加密一个明文块{des_ecb_decrypt(pt,ct,skey);}void CLab1Dlg::OnBUTTONsend() //发送密文{// TODO: Add your control notification handler code hereUpdateData(TRUE);CSocket sendsock;sendsock.Create(0, SOCK_DGRAM, NULL); //自动分配源端口号,数据报类型,本机地址struct sockaddr_in destination; //定义一个Internet通信域的套接字地址memset(&destination, 0, sizeof(struct sockaddr_in)); //清零destination.sin_family = AF_INET;destination.sin_port = htons( (unsigned short)(m_port) );DWORD sipadd; //32位的IP地址m_ipadd.GetAddress( sipadd ); //获得输入的IP地址destination.sin_addr.s_addr = htonl (sipadd);sendsock.SendT o( ciphertext, fulltextLength, (SOCKADDR*)(&destination), sizeof(struct sockaddr_in), 0);sendsock.Close();}void CLab1Dlg::OnBUTTONrecv(){// TODO: Add your control notification handler code hereUpdateData(TRUE);CSocket recvsock;recvsock.Create(m_port, SOCK_DGRAM, NULL); //分配用户输入的端口号,数据报类型,本机地址struct sockaddr_in source; //定义一个Internet通信域的套接字地址int addrlen = sizeof(struct sockaddr_in);for(int t=0;t<2000; t++){ciphertext[t] = 0;}recvsock.ReceiveFrom( ciphertext, 2000, (SOCKADDR*)(&source), &addrlen,0 );DWORD sipadd = ntohl( source.sin_addr.s_addr ); //32位的IP地址m_ipadd.SetAddress( sipadd ); //获得输入的IP地址m_CipherT ext = ciphertext;show16(ciphertext, ciphertext16, 200);m_CipherT ext16 = ciphertext16;UpdateData(FALSE);recvsock.Close();}程序执行结果:发送方:接收方:(2)问题回答:对输入的十六进制数加密(把输入的字符转化成整数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
云南大学软件学院实验报告
课程:信息安全学实验学期:2012-2013学年第二学期任课教师:金鑫
专业:学号:姓名:成绩:
实验2-非对称加密实验
一、实验目的
了解非对称密码的加密和解密特点,理解加密解密与数字签名的基本原理,掌握PGP加密的原理,使用PGP加密软件加密信息。
二、实验原理
公钥和私钥是互补的,就是说用公匙加密的密文可以用私匙解密,反过来也一样。
假设甲要寄信给乙,他们互相知道对方的公匙。
甲就用乙的公匙加密邮件寄出,乙收到后就可以用自己的私匙解密出甲的原文。
由于没别人知道乙的私匙所以即使是甲本人也无法解密那封信,这就解决了信件保密的问题。
另一方面由于每个人都知道乙的公匙,他们都可以给乙发信,那么乙就无法确信是不是甲的来信。
认证的问题就出现了,这时候数字签名就有用了。
甲用自己的私匙加密,附加在邮件上,再用乙的公匙将整个邮件加密。
这样这份密文被乙收到以后,乙用自己的私匙将邮件解密,得到甲的原文和签名,乙的PGP也从原文计算出一个结果与甲的公匙解密签名得到的数比较,如果符合就说明这份邮件确实是甲寄来的。
三、实验步骤
1、安装PGP软件,用PGP加密、解密文件
密钥加密
口令加密解密
口令解密
2、发送PGP加密和签名后的电子邮件并解密邮件将要发送的文件添加到PGP压缩包
对文件进行加密输入邮件地址
签名保存
生成加密后的PGP文件
将加密后的PGP文件发送给搭档
对方收到邮件
收到的PGP文件解密后得到原文件
解密后的文件可以打开并还原,如果密钥不配对打开将是乱码。
四、回答问题
1)简要阐述加密解密与数字签名的原理和异同
数字签名和数字加密的过程虽然都使用公开密钥体系,但实现的过程正好相反,使用的密钥对也不同。
数字签名使用的
是发送方的密钥对,发送方用自己的私有密钥进行加密,接收
方用发送方的公开密钥进行解密,这是一个一对多的关系,任
何拥有发送方公开密钥的人都可以验证数字签名的正确性。
数
字加密则使用的是接收方的密钥对,这是多对一的关系,任何
知道接收方公开密钥的人都可以向接收方发送加密信息,只有
唯一拥有接收方私有密钥的人才能对信息解密。
另外,数字签
名只采用了非对称密钥加密算法,它能保证发送信息的完整
性、身份认证和不可否认性,而数字加密采用了对称密钥加密
算法和非对称密钥加密算法相结合的方法,它能保证发送信息
保密性。
2)简述用PGP发送和接收加密邮件的流程
首先我们要对我们要对outlook进行相关的设置。
这样保证我们可以正确的受到邮件。
然后我们把公钥发给对方,对方
用我们提供的公钥进行加密,然后通过附件的方式发给我们。
我们从附件里面提前后在用自己电脑上的私钥进行解密,整个
加密过程就这样完成了。
3)非对称密码与古典密码的区别与联系
非对称密钥有两个密钥,即一个是公钥另一个是公钥,这样我们一般是把公钥发给对方,加密后我们用自己的私钥解
密,即使别人知道了我们的公钥也不可能解开我们的文件,安
全性提高了很多,同时用私钥加密即我们的电子签名,具有两
用途,但是非对称是从古典密码发展而来的。
但是古典密码的
安全性比较低,当你把密钥发给对方的时候,如果被截获那么
所有的加密都是白费力气了。
这样安全性非常的低。
总的来说
就是非对称是从古典密码发展而来的,但是安全性比古典密码
高很多。
而且用途方面也增加了许多。
五、实验小结
在本次实验中,首先PGP的安装就遇到了问题。
寻找自己电脑可用的高版本的PGP花费了一些时间,网络上很多资源下
载了但不可用。
最后下载了一个中文破解版的PGP10.2版本
的,但安装过程中也不顺利,上网查资料后下载注册机破解之后才能用。
首先要使用PGP创建一个密钥,然后使用PGP加密解密文件,这些比较很简单。
在第二个步骤也就是邮件加密时遇到了困难,刚开始不知道用哪个密钥加密,哪个解密,在仔细研究PGP使用指导说明以及反复实践之后才明白是用对方的公钥加密之后发送,对方使用自己的私钥解密,最终完成实验。