(完整版)公开密钥加密算法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毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
密码学-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是不可能的。
信息安全论文——RSA加密算法介绍及实现

信息安全论文——RSA加密算法介绍及实现XXXXX信息安全xx论文RSA加密算法实现Administrator学号:xxxxxxxxxxRSA加密算法介绍及实现一、实验原理RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和Len Adleman 在(美国麻省理工学院)开发的。
RSA取名来自开发他们三者的名字。
RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。
RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。
RSA的算法涉及三个参数,n、e1、e2。
其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。
e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质;再选择e2,要求(e2*e1)mod((p-1)*(q-1))=1。
(n及e1),(n及e2)就是密钥对。
RSA加解密的算法完全相同,设A为明文,B为密文,则:A=B^e1 mod n;B=A^e2 mod n;e1和e2可以互换使用,即:A=B^e2 mod n;B=A^e1 mod n。
二、RSA 的安全性RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解 RSA就一定需要作大数分解。
假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。
目前, RSA 的一些变种算法已被证明等价于大数分解。
不管怎样,分解n是最显然的攻击方法。
现在,人们已能分解多个十进制位的大素数。
因此,模数n 必须选大一些,因具体适用情况而定。
三、本程序实现的功能本程序的功能比较简单,基于C++语言实现RSA的算法,实现英文字母的加密以及解密。
使用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算法代码的实现

实验三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。
实验五RSA算法的实现

实验五RSA算法的实现RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,被广泛应用于网络安全和数据加密领域。
RSA算法由三个数学问题组成:质数的生成、加密算法和解密算法。
它的安全性基于两个大质数之间的复杂性,因为分解大质数是困难的。
首先,RSA算法需要生成两个不同的大质数p和q。
这两个质数的大小越大,RSA算法越安全。
然后计算n=p*q,n是公共模数。
接下来,选取一个整数e,满足1<e<(p-1)*(q-1)并且e与(p-1)*(q-1)互质。
e是公钥,n和e构成公共密钥对。
再选择一个整数d,满足d*e≡1 mod((p-1)*(q-1))。
d是私钥,n和d构成私有密钥对。
加密过程中,明文m被转化为整数M,M满足0≤M <n。
加密算法为C≡M^e mod n,C是密文。
解密过程中,密文C被转化为整数,解密算法为M≡C^d mod n,M是明文。
RSA算法的实现可以分为密钥生成、加密和解密三个步骤。
密钥生成:1.选择两个大质数p和q,计算n=p*q。
2.计算(p-1)*(q-1)得到φ(n)。
3.选择一个满足条件的e,1<e<φ(n)且e与φ(n)互质。
4. 使用扩展欧几里得算法计算d,满足d*e≡1 mod φ(n)。
5.公共密钥对为(n,e),私有密钥对为(n,d)。
加密:1.将明文m转化为整数M,满足0≤M<n。
2. 计算C≡M^e mod n,C是密文。
解密:1.将密文C转化为整数。
2. 计算M≡C^d mod n,M是明文。
实现RSA算法的代码示例如下:```pythonimport randomimport mathdef is_prime(num):if num < 2:return Falsefor i in range(2, int(math.sqrt(num)) + 1):if num % i == 0:return Falsereturn Truedef generate_prime(:while True:num = random.randint(2**10, 2**11) # 生成11位的随机数if is_prime(num):return numdef gcd(a, b):while b != 0:a,b=b,a%breturn adef extended_euclidean(a, b):if b == 0:return a, 1, 0else:d, x, y = extended_euclidean(b, a % b) return d, y, x - (a // b) * ydef generate_keys(:p = generate_primeq = generate_primen=p*qphi_n = (p - 1) * (q - 1)e = random.randint(2, phi_n - 1)while gcd(e, phi_n) != 1:e = random.randint(2, phi_n - 1)_, d, _ = extended_euclidean(e, phi_n)d = d % phi_nreturn (n, e), (n, d)def encrypt(m, public_key):n, e = public_keyreturn pow(m, e, n)def decrypt(c, private_key):n, d = private_keyreturn pow(c, d, n)#密钥生成public_key, private_key = generate_keys#加密message = 'Hello, RSA!'encrypted_message = encrypt(int.from_bytes(message.encode(, 'big'), public_key)#解密decrypted_message = decrypt(encrypted_message, private_key)print(decrypted_message.to_bytes((decrypted_message.bit_leng th( + 7) // 8, 'big').decode()```通过实现以上代码,我们可以生成RSA算法所需的公钥和私钥,并使用公钥加密明文,使用私钥解密密文,还原出原始明文。
RSA公钥加密算法实现

RSA公钥加密算法实现RSA(Rivest-Shamir-Adleman)公钥加密算法是一种非对称加密算法,广泛应用于信息安全领域。
它通过生成公钥和私钥对来实现加密和解密过程。
在本文中,我们将介绍RSA公钥加密算法的原理和实现方式。
RSA算法的原理:RSA算法基于数论的原理,具体如下:1.选择两个大素数p和q,并计算它们的乘积n=p×q。
2.根据欧拉定理,计算与n互质的整数φ(n)=(p-1)×(q-1)。
3.选择一个整数e,使得1<e<φ(n),且e与φ(n)互质。
4. 计算e对于φ(n)的模逆元素d,即d × e ≡ 1 mod φ(n)。
5.公钥为(n,e),私钥为(n,d)。
加密过程:Alice想要向Bob发送一条消息m,她使用Bob的公钥(n, e)进行加密:1. Alice将消息m表示为一个整数,其中0 ≤ m < n。
2. 加密得到密文c = m^e mod n。
3. Alice将密文c发送给Bob。
解密过程:Bob使用自己的私钥(n, d)对收到的密文c进行解密:1. 解密得到明文m = c^d mod n。
1.选择两个大素数p和q。
2.计算n=p×q和φ(n)=(p-1)×(q-1)。
3.选择一个整数e,使得1<e<φ(n),且e与φ(n)互质。
4.计算e对于φ(n)的模逆元素d。
5.公钥为(n,e),私钥为(n,d)。
加密函数:1.将明文转换为整数m,其中0≤m<n。
2. 计算密文c = m^e mod n。
解密函数:1. 计算明文m = c^d mod n。
RSA算法的实现需要涉及到大数运算、模幂运算等复杂的数学运算。
在实际应用中,通常使用专门的库实现RSA算法,如OpenSSL。
以下是使用Python实现RSA算法的示例代码:```pythonimport randomdef gcd(a, b):while b != 0:a,b=b,a%bdef mod_inverse(a, m):if gcd(a, m) != 1:return Noneu1,u2,u3=1,0,av1,v2,v3=0,1,mwhile v3 != 0:q=u3//v3v1,v2,v3,u1,u2,u3=(u1-q*v1),(u2-q*v2),(u3-q*v3),v1,v2,v3 return u1 % mdef generate_key_pair(:#选择两个大素数p和qp = random.randint(2 ** 10, 2 ** 11)q = random.randint(2 ** 10, 2 ** 11)#计算n和φ(n)n=p*qphi_n = (p - 1) * (q - 1)#选择ee = random.randint(2, phi_n - 1)d = mod_inverse(e, phi_n)#返回公钥和私钥return (n, e), (n, d)def encrypt(public_key, message):n, e = public_keyreturn pow(message, e, n)def decrypt(private_key, ciphertext):n, d = private_keyreturn pow(ciphertext, d, n)#测试public_key, private_key = generate_key_pair ciphertext = encrypt(public_key, message)decrypted_message = decrypt(private_key, ciphertext) print("Message:", message)print("Ciphertext:", ciphertext)print("Decrypted Message:", decrypted_message)```在以上示例代码中,我们使用了random模块生成随机数,gcd函数计算最大公约数,mod_inverse函数计算模逆元素。
密码体制的设计及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,主要用于数字加密和数字签名,由于其很好的安全性,可以保证网络中重要数据的安全性,因此有广泛的应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
公开密钥加密算法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用户的激增,世界正步入网络经济的新时代。
如网上购物、网上银行、网上证券等。
然而,有一些人利用利用他们所掌握的技术非法侵入他人的计算机系统,窃取、篡改、破坏一些重要的数据,给社会造成巨大的损失。
密码技术的发展与应用,对解决信息交换的安全问题,保障数据信息的安全,起着不可忽视的作用。
所谓密码技术,就是针对信息进行重新编码,从而达到隐藏信息的内容,使非法用户无法获取信息真实内容的一种手段。
目前在网络中,一般采用两种密码体制:对称密钥体制和非对称密钥体制。
对称密钥体制中的加密密钥和解秘密钥是相同的,所以又称密秘密钥密码体制。
对称密钥算法运算效率高、使用方便、加密效率高,在处理大量数据时被广泛使用,但其关键是要保证密钥的安全,为安全起见,密钥要定期改变,所以,对称密钥就存在一个如何安全管理密钥的问题。
与对称密钥体制相对应的非对称密钥体制又称为公开密钥密码体制,它是在1976 年由Diffe 和Hellman 发表的《密码学的新方向》一文中提出的,从此打破了长期使用单密钥体制的束缚。
自此提出公约密码思想以后,涌现出很多的公约密钥算法体系,经过20多年的实践检验,公约系统的应用技术日趋完善,应用领域日趋广泛。
公开密钥密码体制,加密密钥和解秘密钥是分开采用一对不同的密钥进行的,分别存在一个公钥和私钥,公钥公开,私钥保密,并且知道其中一个时并不能从中推出另一个。
其典型的算法有背包密码、RSA等。