公开密钥加密算法RSA的Matlab实现设计

合集下载

实验4_公钥密码RSA加解密算法模拟程序

实验4_公钥密码RSA加解密算法模拟程序

实验四:公钥密码RSA加解密算法模拟程序
一、实验目的
1、编写简单的RSA加解密程序。

2、理解公钥密码体系的相关知识,尤其是RSA算法的加密与解密计算过程。

二、实验内容
编写程序实现RSA加解密算法,并通过demo验证算法的正确性。

具体要求如下:
1)能够对指定字符串加密并对加密后的密文进行解密,通过对比解密后的字符串与源字符串,证明程序加密与解密的正确性。

2)输出与加解密相关的各项参数,例如公钥、私钥、通过乘积运算构成大整数的两个素数等。

三、实验步骤及实验结果
1、实验步骤如下:
1)利用参考代码在VS2008开发工具编中写一个控制台程序
2)经过编译、链接生成可执行程序,运行程序,结果显示为:(因为调用Random函数,所以每次运行的结果都会不一样)
3)此外生成界面如下,输入明文
过乘积运算构成大整数的两个素数
5)按下“加密”,得到加密的密文;按下“解密”,得到解密的明文
四、实验结果分析
通过编写模拟RSA的加密与解密的程序,成功加密明文,得到加密的密文,并且解密后得到相应明文。

五、实验心得体会
通过学习的相应的RSA的加密与解密的知识,学会了RSA的加密解密的具体步骤。

同时了解了相关加密解密的过程。

密码学-RSA加密解密算法的实现课程设计报告

密码学-RSA加密解密算法的实现课程设计报告

密码学课程报告《RSA加密解密算法》专业:信息工程(信息安全)班级:1132102学号:************姓名:***指导老师:***时间:2014年1月10号一、课程设计的目的当前最著名、应用最广泛的公钥系统RSA是在1978年,由美国麻省理工学院(MIT)的Rivest、Shamir和Adleman在题为《获得数字签名和公开钥密码系统的方法》的论文中提出的。

RSA算法是第一个既能用于数据加密也能用于数字签名的算法,因此它为公用网络上信息的加密和鉴别提供了一种基本的方法。

它通常是先生成一对RSA 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册,人们用公钥加密文件发送给个人,个人就可以用私钥解密接受。

为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。

公钥加密算法中使用最广的是RSA。

RSA算法研制的最初理念与目标是努力使互联网安全可靠,旨在解决DES算法秘密密钥的利用公开信道传输分发的难题。

而实际结果不但很好地解决了这个难题;还可利用RSA来完成对电文的数字签名以抗对电文的否认与抵赖;同时还可以利用数字签名较容易地发现攻击者对电文的非法篡改,以保护数据信息的完整性。

此外,RSA加密系统还可应用于智能IC卡和网络安全产品。

二、RSA算法的编程思路1.确定密钥的宽度。

2.随机选择两个不同的素数p与q,它们的宽度是密钥宽度的1/2。

3.计算出p和q的乘积n 。

4.在2和Φ(n)之间随机选择一个数e , e 必须和Φ(n)互素,整数e用做加密密钥(其中Φ(n)=(p-1)*(q-1))。

5.从公式ed ≡ 1 mod Φ(n)中求出解密密钥d 。

6.得公钥(e ,n ), 私钥 (d , n) 。

7.公开公钥,但不公开私钥。

8.将明文P (假设P是一个小于n的整数)加密为密文C,计算方法为:C = Pe mod n9.将密文C解密为明文P,计算方法为:P = Cd mod n然而只根据n和e(不是p和q)要计算出d是不可能的。

密码锁编程 matlab程序

密码锁编程 matlab程序

密码锁编程 matlab程序密码锁编程 Matlab 程序引言概述:密码锁编程是一种常见的应用程序开发技术,它在现代生活中起到了重要的作用。

本文将介绍如何使用 Matlab 编程语言来开发一个密码锁程序。

通过这个程序,我们可以实现密码的输入、验证和控制等功能,以保护重要信息和财产的安全。

正文内容:1. 密码输入界面1.1 设计用户界面:使用 Matlab 的 GUI 工具箱,创建一个密码输入界面。

1.2 输入密码功能:通过文本框或按钮等控件,允许用户输入密码。

1.3 密码长度限制:设置密码的最小和最大长度,确保密码的安全性。

2. 密码验证功能2.1 密码加密算法:使用 Matlab 提供的加密函数,对用户输入的密码进行加密。

2.2 存储密码:将加密后的密码存储在数据库或文件中,以供后续验证使用。

2.3 密码比对:在用户再次输入密码时,对输入的密码与存储的密码进行比对,判断其是否一致。

3. 锁定与解锁功能3.1 密码错误次数限制:设置密码输入错误的次数限制,达到限制后锁定密码输入。

3.2 锁定时间设置:在密码输入错误次数达到限制后,设置一段时间的锁定时间,以防止暴力破解。

3.3 解锁方式:在锁定时间结束后,允许用户通过输入特定的解锁密码或通过其他验证方式解锁密码。

4. 安全性增强功能4.1 防止密码截获:使用 SSL/TLS 等安全协议,对密码传输过程进行加密,防止密码被截获。

4.2 强制密码更改:定期要求用户更改密码,以增加密码的安全性。

4.3 防止暴力破解:设置密码输入次数限制、锁定时间和复杂度要求,以防止暴力破解密码。

5. 扩展功能5.1 多用户支持:允许多个用户使用密码锁,每个用户拥有独立的密码和权限。

5.2 远程控制:通过网络连接,允许用户远程控制密码锁,进行密码的输入和验证。

5.3 日志记录:记录密码输入、验证和控制的日志,以便后续审计和追踪。

总结:通过本文的介绍,我们了解了如何使用 Matlab 编程语言开发一个密码锁程序。

使用MATLAB进行数据加密和解密

使用MATLAB进行数据加密和解密

使用MATLAB进行数据加密和解密数据加密和解密是当今信息安全领域中非常重要的问题。

加密算法的设计和实现是确保数据在传输和存储过程中不被未经授权的人访问的一种关键手段。

在本文中,我们将探讨如何使用MATLAB进行数据加密和解密,并介绍一些常用的加密算法和技术。

一、数据加密的基本原理数据加密是通过将原始数据转化为不易被理解的形式,从而防止未经授权的人获取敏感信息。

加密过程主要包括两部分:加密算法和密钥。

加密算法是对原始数据进行数学计算和转换的一种方法。

常见的加密算法有对称加密算法和非对称加密算法。

对称加密算法使用相同的密钥进行加密和解密,加密和解密过程非常高效。

其中,最常用的对称加密算法是AES(Advanced Encryption Standard)算法。

AES算法在MATLAB中有相应的函数可供使用。

非对称加密算法使用两个密钥:公钥和私钥。

公钥用于加密数据,私钥用于解密数据。

公钥可以公开,而私钥需要保密。

RSA算法是一种常见的非对称加密算法,也可以在MATLAB中使用相应的函数实现。

密钥是在加密和解密过程中起到关键作用的参数。

密钥的选择和管理直接影响到加密算法的安全性。

为了确保数据的安全性,密钥应该是足够长的随机数。

同时,密钥的保管也是一个重要的问题,只有授权的人能够访问密钥。

二、使用MATLAB进行数据加密在MATLAB中,我们可以利用现有的加密算法和函数来对数据进行加密。

接下来,我们将使用AES算法来进行示范。

首先,需要准备一个密钥。

在MATLAB中,我们可以通过randi函数生成一个随机的密钥。

例如:```MATLABkey = randi([0 255], 1, 16);```生成了一个16字节长的随机密钥。

然后,我们可以使用AES算法对数据进行加密。

在MATLAB中,通过函数aesencrypt可以实现AES加密。

例如,假设我们要加密一个文本文件:```MATLABplaintext = fileread('plaintext.txt');ciphertext = aesencrypt(plaintext, key);```上述代码将plaintext.txt文件中的内容进行AES加密,并将加密后的结果存储在变量ciphertext中。

(完整版)公开密钥加密算法RSA的Matlab实现毕业设计

(完整版)公开密钥加密算法RSA的Matlab实现毕业设计

公开密钥加密算法RSA的Matlab实现[摘要]RSA算法是基于数论的公开密钥加密算法,它已经成为现在最流行的公钥加密算法和数字签名算法之一。

其算法的安全性基于数论中大素数分解的困难性,所以RSA公钥密码体制算法的关键是如何产生大素数和进行大指数模幂运算。

本文首先介绍了RSA 公开密钥加密算法的数学原理,并介绍了几种流行的产生大素数的算法。

然后用matlab具体实现公钥加密算法RSA的加密和解密,从而实现了数据的安全传输。

[关键词] RSA算法;加密;素数The Realization of RSA Algorithm for Public Key Encryption Based on Matlab(Grade 07,Class 3,Major electronics and information engineering ,Communicationengineering Dept.,Tutor:[abstract]:The algorithm is based on the theory of RSA public key encryption algorithm, it has become the most popular public key encryption algorithm and digital signature algorithm of one. The safety of the algorithm based on number theory cuhk the difficulty of prime decomposition, so the RSA public key cryptography algorithms is key to how to produce large prime Numbers DaZhi and transmit power operation. This paper first introduced the RSA public key encr -yption algorithm of mathematical theory, and introduces several popular produce large prime Numbers of the algorithm. Then use matlab RSA public key encryption algorithm re -alization of encryption and decryption is realized, and the safety of the data trans -mission.[Key words]:RSA algorithm; encryption; prime number目录引言........................................................................................................................................... 1数据加密概述................................................................................................................1.1基本概念..........................................1.2 数据加密分类......................................2 Matlab工具介绍 ....................................................................................................2.1 MATLAB语言的主要特点 .............................2.2 Matlab的程序设计................................. 2.2.1 脚本文件和函数文件 ........................... 2.2.2 函数调用和参数传递 ............................ 2.2.3 MATLAB的程序结构和控制流程...................3 RSA公钥密码体制 .................................................................................................3.1 算法简介 (1)3.2算法的数学基础 (1)3.3 RSA公钥密码算法 (1)3.3.1 算法步骤 (1)3.3.2 参数分析 (1)3.3.3 安全性分析 (1)3.4公钥密码体制中安全大素数的生成 ...........................................................3.4.1 素数筛选 (1)3.4.2 素数检测 (1)3.5 RSA的Matlab实现 (1)3.5.1算法原理 (1)3.5.2 运行过程 (2)3.5.3结论分析 (2)4 基于RSA的数字签名 ..........................................................................................4.1 数字签名概述 (2)4.2 基于RSA的数字签名 (2)4.3RSA数字签名方案的不足 (2)5 RSA算法的实际应用和发展 ..........................................................................5.1 算法的应用 (2)5.2算法的改进 (2)结论...........................................................................................................................................致谢...........................................................................................................................................参考文献 ...............................................................................................................................附录...........................................................................................................................................附录A:英文资料及翻译 . (3)附录B:源程序 (4)引言随着Internet用户的激增,世界正步入网络经济的新时代。

实验三RSA算法代码的实现

实验三RSA算法代码的实现

实验三RSA算法代码的实现RSA算法是一种非对称加密算法,主要用于数据的加密和解密。

在本实验中,我们将实现RSA算法的加密和解密部分,并编写测试代码来验证算法的正确性。

首先,我们需要实现RSA算法的关键步骤之一,生成公钥和私钥。

以下代码展示了如何生成公钥和私钥:```pythonimport randomdef generate_keypair(p, q):n=p*qphi = (p - 1) * (q - 1)e = random.randrange(1, phi)while gcd(e, phi) != 1:e = random.randrange(1, phi)d = mod_inverse(e, phi)return ((e, n), (d, n))```在这段代码中,我们首先选择两个大素数p和q,并计算出n和phi。

然后,我们选择一个在1到phi之间互质的整数e作为公钥的指数。

最后,我们使用扩展欧几里得算法找到d,使得e * d与phi模相等,从而形成私钥。

返回的结果是一个元组,包含公钥和私钥。

接下来,我们实现RSA算法的加密过程。

以下代码展示了如何实现RSA加密:```pythondef encrypt(public_key, message):e, n = public_keyencrypted_message = [pow(ord(c), e, n) for c in message]return encrypted_message```在这段代码中,我们首先从公钥中提取出指数e和模数n。

然后,我们将明文逐字符进行加密,使用公式c=(m^e)%n计算密文。

最后,返回一个列表,包含所有加密后的字符。

最后,我们实现RSA算法的解密过程。

以下代码展示了如何实现RSA 解密:```pythondef decrypt(private_key, encrypted_message):d, n = private_keydecrypted_message = [chr(pow(c, d, n)) for c inencrypted_message]return ''.join(decrypted_message)```在这段代码中,我们首先从私钥中提取出指数d和模数n。

密码体制的设计及MATLAB语言下的实现

密码体制的设计及MATLAB语言下的实现

密码体制的设计及MATLAB语言下的实现毕业论文RSA密码体制的设计及MATLAB语言下的实现毕业论文任务书论文题目:RSA密码体制的设计及MATLAB语言下的实现1.毕业论文的主要内容及基本要求主要内容:从RSA的产生背景入手,熟悉RSA 在信息安全方面的应用,对其数学基础,数学原理,算法设计进行了详细的介绍,并给出其在MATLAB 应用软件上的实现,同时,对RSA的安全性,参数选择进行了分析。

基本要求:在明确了主要任务上做到(1)查阅文献资料,了解课题前沿,确定课题研究思路(2)理清论文思路,安排论文内容(3)撰写出思路清晰,逻辑合理的论文。

2.指定查阅的主要参考文献及说明[1]杨晓元,魏立线.计算机密码学[M].西安,西安交通大学出版社[2]朱文余,孙琦.计算机密码应用基础[M].北京,科学出版社[3]闵嗣鹤,严士健.初等数论[M].北京,高等教育出版社[4]李海涛,邓樱,MATLAB6.1基础及应用技巧[M].北京,国防工业出版社[5]李晓辉.公钥密码体制与RSA算法[J].福建电脑.2009[6]刘栋梁,陈艳萍.RSA密码体制在电子商务中的安全应用[J].大众科技.2005[7]段晓萍,李燕华.非对称密码体制RSA的原理与实现[J].内蒙古大学学报.2009摘要RSA算法是一个能同时用于加密和数字签名的算法,易于理解和操作,有较高的安全性,因此有着广泛的运用。

本文首先论述了RSA的基本运用途径,RSA的数学原理,其加密解密的具体算法,并给出了其在MATLAB应用软件上的实现,然后,对RSA的安全性进行了一定的分析,包括其可能存在的攻击和对参数的选择,以便对其有更深的了解。

关键词:RSA 公钥密码体制加密解密MATLAB 安全性ABSTRACTRSA is an algorithm which can be used for both encryption and digital signature. It is easy to understand as well as to operate, and has an upper security which makes it popular. This paper firstly delivers information on the basic purpose, the mathematic principle and the specific arithmetic of RSA. Then it presents an implementation of RSA on the application software MATLAB. After that, this article also analyzes the security of RSA, including its potential leaks, parameter options, which helps us to know further of RSA.Keywords : RSA public key cryptography encryption decrypt MATLABsecurity目录前言 (1)第1章RSA简介 (2)1.1密码体制简介 (2)1.2RSA的简介 (2)第2章相关数论知识 (4)2.1整除与互素 (4)2.2费马定理和欧拉定理 (4)2.3中国剩余定理 (5)第3章RSA的数学原理及其算法实现 (7)3.1RSA的数学原理 (7)3.2RSA的算法设计 (8)3.3RSA的MATLAB实现 (10)第4章RSA的安全性分析 (14)4.1对RSA常见的攻击方法 (14)4.2RSA的参数选择 (15)结束语 (16)参考文献 (17)致谢 (18)前言随着计算机通信技术的迅速发展,在计算机网络和通信的众多领域中,信息的安全性越来越受到人们的重视,于是,密码技术应运而生,目前计算机网络主要采用两种密码体制,即公钥密码体制和私钥密码体制,作为公钥密码体制的重要技术的RSA,主要用于数字加密和数字签名,由于其很好的安全性,可以保证网络中重要数据的安全性,因此有广泛的应用。

rsa 公钥密码算法

rsa 公钥密码算法

rsa 公钥密码算法摘要:一、RSA 公钥密码算法简介二、RSA 算法的生成过程1.随机生成两个素数P 和Q2.计算N、E 和D三、RSA 算法的加密和解密过程1.加密过程2.解密过程四、RSA 算法的Java 实现正文:RSA 公钥密码算法是一种非常常见的加密算法,其安全性高、可靠性好,被广泛应用于各种网络通信和数据存储场景。

下面我们将详细介绍RSA 公钥密码算法的生成过程、加密和解密过程以及Java 实现。

一、RSA 公钥密码算法简介RSA 公钥密码算法是一种非对称加密算法,即加密和解密所使用的密钥不同。

它由美国计算机科学家RSA(Rivest-Shamir-Adleman)三人于1977 年提出,是一种基于大数因子分解的算法。

二、RSA 算法的生成过程RSA 算法的生成过程主要分为以下几个步骤:1.随机生成两个素数P 和Q在RSA 算法中,我们需要选择两个大素数P 和Q,这两个素数是用来生成公钥和私钥的。

素数是指只能被1 和本身整除的正整数,且越大越难被分解。

2.计算N、E 和D根据P 和Q,我们可以计算出N、E 和D。

其中,N = P * Q,E 是一个与T(T = P * Q - 1)互质的正整数,且E 小于T;D 是满足D * E mod T = 1 的整数。

3.RSA 算法的加密和解密过程RSA 算法的加密和解密过程分为以下两个步骤:1.加密过程在加密过程中,发送方使用接收方的公钥(N、E)对明文进行加密。

加密公式为:M = C * E mod N,其中M 为密文,C 为明文。

2.解密过程在解密过程中,接收方使用自己的私钥(N、D)对密文进行解密。

解密公式为:M = C * D mod N,其中M 为明文,C 为密文。

三、RSA 算法的Java 实现在Java 中,我们可以通过以下步骤实现RSA 算法:1.创建一个RSA 类,其中包含N、E 和D 三个属性。

2.在RSA 类中,实现createKey() 方法,用于生成RSA 密钥。

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

(此文档为word格式,下载后您可任意编辑修改!)公开密钥加密算法RSA的Matlab实现[摘要]RSA算法是基于数论的公开密钥加密算法,它已经成为现在最流行的公钥加密算法和数字签名算法之一。

其算法的安全性基于数论中大素数分解的困难性,所以RSA公钥密码体制算法的关键是如何产生大素数和进行大指数模幂运算。

本文首先介绍了RSA 公开密钥加密算法的数学原理,并介绍了几种流行的产生大素数的算法。

然后用matlab具体实现公钥加密算法RSA的加密和解密,从而实现了数据的安全传输。

[关键词] RSA算法;加密;素数The Realization of RSA Algorithm for Public KeyEncryption Based on Matlab(Grade 07,Class 3,Major electronics and information engineering ,Communication engineeringDept.,Tutor:[abstract]:The algorithm is based on the theory of RSA public key encryption algorithm, it algorithm and digital signature algorithm of one. The safety of the algorithm based on number theory cuhk the difficulty of prime decomposition, so the RSA public key cryptography algorithms is key to . This paper first introduced the RSA public key encr -yption algorithm of mathematical theory, and introduces several popular produce large prime Numbers of the algorithm. Then use matlab RSA public key encryption algorithm re -alization of encryption and decryption is realized, and the safety of the data trans -mission.[Key words]:RSA algorithm; encryption; prime number目录引言 (1)1数据加密概述 (2)1.1基本概念 (2)1.2 数据加密分类 (3)2 Matlab工具介绍 (6)2.1 MATLAB语言的主要特点 (6)2.2 Matlab的程序设计 (6)2.2.1 脚本文件和函数文件 (6)2.2.2 函数调用和参数传递 (8)2.2.3 MATLAB的程序结构和控制流程 (8)3 RSA公钥密码体制 (10)3.1 算法简介 (10)3.2算法的数学基础 (10)3.3 RSA公钥密码算法 (10)3.3.1 算法步骤 (10)3.3.2 参数分析 (11)3.3.3 安全性分析 (12)3.4公钥密码体制中安全大素数的生成 (13)3.4.1 素数筛选 (13)3.4.2 素数检测 (14)3.5 RSA的Matlab实现 (16)3.5.1算法原理 (16)3.5.2 运行过程 (20)3.5.3结论分析 (22)4 基于RSA的数字签名 (23)4.1 数字签名概述 (23)4.2 基于RSA的数字签名 (24)4.3RSA数字签名方案的不足 (24)5 RSA算法的实际应用和发展 (25)5.1 算法的应用 (25)5.2算法的改进 (26)结论 (27)致谢 (28)参考文献 (29)附录 (30)附录A:英文资料及翻译 (30)附录B:源程序 (40)引言随着Internet用户的激增,世界正步入网络经济的新时代。

如网上购物、网上银行、网上证券等。

然而,有一些人利用利用他们所掌握的技术非法侵入他人的计算机系统,窃取、篡改、破坏一些重要的数据,给社会造成巨大的损失。

密码技术的发展与应用,对解决信息交换的安全问题,保障数据信息的安全,起着不可忽视的作用。

所谓密码技术,就是针对信息进行重新编码,从而达到隐藏信息的内容,使非法用户无法获取信息真实内容的一种手段。

目前在网络中,一般采用两种密码体制:对称密钥体制和非对称密钥体制。

对称密钥体制中的加密密钥和解秘密钥是相同的,所以又称密秘密钥密码体制。

对称密钥算法运算效率高、使用方便、加密效率高,在处理大量数据时被广泛使用,但其关键是要保证密钥的安全,为安全起见,密钥要定期改变,所以,对称密钥就存在一个如何安全管理密钥的问题。

与对称密钥体制相对应的非对称密钥体制又称为公开密钥密码体制,它是在1976 年由Diffe 和Hellman 发表的《密码学的新方向》一文中提出的,从此打破了长期使用单密钥体制的束缚。

自此提出公约密码思想以后,涌现出很多的公约密钥算法体系,经过20多年的实践检验,公约系统的应用技术日趋完善,应用领域日趋广泛。

公开密钥密码体制,加密密钥和解秘密钥是分开采用一对不同的密钥进行的,分别存在一个公钥和私钥,公钥公开,私钥保密,并且知道其中一个时并不能从中推出另一个。

其典型的算法有背包密码、RSA等。

其中RSA公约算法系统因为其可靠安全性,易于实现性,更是受大家的认可和欢迎。

RSA加密算法的最大优点就是不需要对密钥通信进行保密,所需传输的只有公开密钥,这样就省去了一条开销很大的密钥传输信道。

其保密性强,密钥管理方便,并且具有数字签名、认证和签别等多种功能,特别适合于现代保密通信的需要。

大多数使用公钥密码进行加密和数字签名的产品和标准使用的都是RSA算法。

RSA的安全性是基于大数因子分解的困难性。

目前一般认为RSA需要1024位以上的字长才有安全保障。

由于RSA所采用的模幂运算耗时太多,因此它通常只能用于加密少量数据或者加密密钥。

需要注意的是,RSA的安全性只是一种计算安全性,绝对不是无条件的安全性,这是由它的理论基础决定的。

所以,在实现RSA算法的过程中,每一步都应该尽量从安全性方面考虑。

本文就RSA算法以及如何用Matlab语言实现给于了详细的分析。

1 数据加密概述密码学是一门古老而深奥的学科,它对一般人来说是陌生的,因为长期以来,它只在很少的范围内,如军事、外交、情报等部门使用。

计算机密码学是研究计算机信息加密、解密及其变换的科学,是数学和计算机的交叉学科,也是一门新兴的学科。

随着计算机网络和计算机通讯技术的发展,计算机密码学得到前所未有的重视并迅速普及和发展起来。

在国外,它已成为计算机安全主要的研究方向,也是计算机安全课程教学中的主要内容。

密码是实现秘密通讯的主要手段,是隐蔽语言、文字、图象的特种符号。

凡是用特种符号按照通讯双方约定的方法把电文的原形隐蔽起来,不为第三者所识别的通讯方式称为密码通讯。

在计算机通讯中,采用密码技术将信息隐蔽起来,再将隐蔽后的信息传输出去,使信息在传输过程中即使被窃取或载获,窃取者也不能了解信息的内容,从而保证信息传输的安全。

任何一个加密系统至少包括下面四个组成部分:(1)未加密的报文,也称明文。

(2)加密后的报文,也称密文。

(3)加密解密设备或算法。

(4)加密解密的密钥。

发送方用加密密钥,通过加密设备或算法,将信息加密后发送出去。

接收方在收到密文后,用解密密钥将密文解密,恢复为明文。

如果传输中有人窃取,他只能得到无法理解的密文,从而对信息起到保密作用。

1.1 基本概念数据加密技术就是指将一个信息或明文经过加密钥匙及加密函数转换,变成无意义的密文,而接收方则将此密文经过解密函数.解密钥匙还原成明文。

加密技术是网络安全技术的基石。

明文,即加密前的真实的数据或信息,它是可以被外界所识别,它指代的含义比较广泛,比如用户A要将一份文件发送给用户B,那么我们就将用户A手里所拿的那份文件称之为明文。

密文,就是对信息经过一定的处理,使它变成无意义的乱码,非指定用户无法对它进行识别,例如A使用密钥K加密消息并将其发送给B,B收到加密的消息后,使用密钥K对其解密以恢复原始消息,那么在这一过程当中A在途中发送给B的东西我们就叫它密文,因为这个文件除B外,其他人得到它也没有任何意义,这就保证了信息传送的保密性。

完成加密和解密的算法成为为密码体制。

人们一方面要把自己的信号隐蔽起来,另一方面则想把别人的隐蔽信息挖掘出来,于是就产生了密码分析的逆科学——密码分析。

密码分析研究的问题是如何把密文转换成明文。

把密文转换成明文的过程称为破译。

破译也是进行函数变换,变换过程中使用的参数也叫密钥。

一般地,如果求解一个问题需要一定量的计算,但环境所能提供的实际资源却无法实现,则这种问题是计算上不可能的。

如果一个密码体制的破译是计算上不可能的。

则称该密码体制是计算上安全的。

密码体制必须满足三个基本要求:(1)对所有的密钥、加密和解密都必须迅速有效;(2)体制必须容易使用;(3)体制的安全性必须只依赖于密钥的保密性。

密码体制要实现的功能可分为保密性和真实性两种。

保密性要求密码分析员无法从截获的密文中求出明文。

一般情况下一个密码体制的保密性包括两项要求:(1)即使截获了一段密文C,甚至知道了与它对应的明文M,密码分析要从系统中求出解密变换,仍然是计算上不可行的。

(2)密码分析员要由截获的密文C中系统的求出明文M是计算上不可能的。

数据的真实性要求密码分析员无法用虚假的密文代替真是密文而不被察觉,它也包括两个要求:(1)对于给定的C,即使密码分析员知道了对应于它的明文M,要系统的求出加密变换仍然是计算上不可能的。

(2)密码分析员要系统地找到密文,使其是明文空间上有意义的明文,这在计算上是不可能的。

1.2 数据加密分类专用密钥:又称为对称密钥或单密钥,加密和解密时使用同一个密钥,即同一个算法。

如DES 和MIT的Kerberos算法。

单密钥是最简单方式,通信双方必须交换彼此密钥,当需给对方发信息时,用自己的加密密钥进行加密,而在接收方收到数据后,用对方所给的密钥进行解密。

当一个文本要加密传送时,该文本用密钥加密构成密文,密文在信道上传送,收到密文后用同一个密钥将密文解出来,形成普通文体供阅读。

在对称密钥中,密钥的管理极为重要,一旦密钥丢失,密文将无密可保。

这种方式在与多方通信时因为需要保存很多密钥而变得很复杂,而且密钥本身的安全就是一个问题。

公开密钥:又称非对称密钥,加密和解密时使用不同的密钥,即不同的算法,虽然两者之间存在一定的关系,但不可能轻易地从一个推导出另一个。

相关文档
最新文档