数据加密与身份认证(RSA加密算法)
数据加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击。其重点在于数据的安全性。
身份认证是用来判断某个身份的真实性,确认身份后,系统才可以依不同的身份给予不同的权限。其重点在于用户的真实性。
公钥与私钥
现代密码体制中加密和解密是采用不同的密钥(公开密钥),也就是非对称密钥密码系统,每个通信方均需要两个密钥,即公钥和私钥,这两把密钥可以互为加解密。公钥是公开的,不需要保密,而私钥是由个人自己持有,并且必须妥善保管和注意保密。
由公钥加密的内容可以并且只能由私钥进行解密,并且由私钥加密的内容可以并且只能由公钥进行解密。即:这一对公钥、私钥都可以用来加密和解密,并且一方加密的内容可以由并且只能由对方进行解密。
公钥私钥的原则:
一个公钥对应一个私钥,
密钥对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥,必须非常小心保存。
如果用其中一个密钥加密数据,则只有对应的那个密钥才可以解密。
如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加密
公钥与私钥的作用:
用公钥加密的内容只能用私钥解密,用私钥加密的内容只能用公钥解密。
公开密钥的加密过程(必须两人都有公钥和私钥)
比如有两个用户Alice和Bob,Alice想把一段明文通过双钥加密的技术发送给Bob,Bob有一对公钥和私钥,那么加密解密的过程如下:
Bob将他的公开密钥传送给Alice。
Alice用Bob的公开密钥加密她的消息,然后传送给Bob。
Bob用他的私人密钥解密Alice的消息。
Alice使用Bob的公钥进行加密,Bob用自己的私钥进行解密。
身份认证和加密就不同了,主要用户鉴别用户的真伪。这里我们只要能够鉴别一个用户的私钥是正确的,就可以鉴别这个用户的真伪。(必须两人都有公钥和私钥)
身份认证过程如下:
还是Alice和Bob这两个用户,Alice想让Bob知道自己是真实的Alice,而不是假冒的,因此Alice只要使用公钥密码学对文件签名发送给Bob,Bob使用Alice的公钥对文件进行解密,如果可以解密成功,则证明Alice的私钥是正确的,因而就完成了对Alice的身份鉴别。整个身份认证的过程如下:
Alice用她的私人密钥对文件加密,从而对文件签名。
Alice将签名的文件传送给Bob。
Bob用Alice的公钥解密文件,从而验证签名。
Alice使用自己的私钥加密,Bob用Alice的公钥进行解密。
信息签名校验:
比如有一段明文信息从Bob发送到Alice,就是在信息的后面再加上一段内容,可以证明信息没有被修改过。一般是对信息做一个hash计算得到一个hash值,注意,这个过程是不可逆的,也就是说无法通过hash值得出原来的信息内容。在把信息发送出去时,把这个hash值加密后做为一个签名和信息一起发出去。接收方在收到信息后,会重新计算信息的hash值,并和信息所附带的hash值(解密后)进行对比,如果一致,就说明信息的内容没有被修改过,因为这里hash计算可以保证不同的内容一定会得到不同的hash值,所以只要内容一被修改,根据信息内容计算的hash值就会变化。当然,不怀好意的人也可以修改信息内容的同时也修改hash值,从而让它们可以相匹配,为了防止这种情况,hash值一般都会加密后(也就是签名,包含在公钥内)再和信息一起发送,以保证这个hash值不被修改。
数字证书
可以保证数字证书里的公钥确实是这个证书的所有者(Subject)的,或者证书可以用来确认对方的身份。也就是说,我们拿到一个数字证书,我们可以判断出这个数字证书到底是谁的。
数字证书原理相关参考资料:
http://www.williamlong.info/archives/837.html
http://www.cnblogs.com/JeffreySun/archive/2010/06/24/1627247.html (解释的非常详细,推荐仔细读读!)
http://blog.csdn.net/hwalk/article/details/2143501
相关推荐
RSA加密算法是公钥密码学中的一个重要组成部分,它在信息安全领域有着广泛的应用,例如数字签名、数据加密等。Qt是一个跨平台的C++图形用户界面应用程序开发框架,它提供了丰富的库支持来创建桌面和移动应用。在本...
这种特点使得 RSA 非对称加密算法非常适合在需要确保数据安全的场景中使用,如 HTTPS 认证、数字签名等。 在 RSA 非对称加密算法中,公开密钥用于加密数据,而私密密钥用于解密数据。加密过程是通过公开密钥对数据...
RSA加密算法.ppt
RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。 今天只有短的RSA钥匙才可能被强力方式解破。到2008年为止,世界上还没有任何可靠的攻击RSA算法...
RSA加密算法可以用于数字签名,方案是用mi^e(mod n)式签名,mi=ci^d(mod n)式验证。 五、实验程序设计 实验程序主要包括两个部分:主要程序代码和界面设计。主要程序代码包括密钥对的产生、加密和解密过程、数字...
RSA加密算法的实现,使用c++语言编程,使用dev c++平台编码,文件为cpp格式。经过反复测试代码正确,可搭配RSA讲解教程一起使用,讲解教程点击我的个人主页即可查看,希望能够对你有帮助,谢谢。
本实验报告主要涉及两种加密算法:对称加密算法DES(Data Encryption Standard)和非对称加密算法RSA。实验旨在帮助学生深入理解这两种算法的基本原理,并通过Python编程实现加密和解密过程。 ### **对称加密算法...
它在信息安全领域扮演着至关重要的角色,特别是在数据传输、数字签名和身份验证等方面。 RSA的核心原理是大数因子分解的困难性。其工作流程分为以下几个步骤: 1. **密钥生成**:首先,选择两个大素数p和q,计算...
本rsa算法是使用Java与javascript加密解密范例代码,该资料从互联网收集,加上了自己的使用体会,如果对你有帮助那是万幸! js加密部分
RSA算法是一种非对称加密算法,它在信息安全领域有着广泛的应用,例如数字签名、数据加密等。本资源提供了RSA加密解密的源码,适用于学习和理解RSA算法的工作原理及其实现。 首先,RSA算法的核心原理基于大数的因式...
在IT领域,尤其是在网络安全和数据保护方面,非对称加密算法是至关重要的技术之一。"前端 RSA 分段加密算法"正是这种技术的一个实际应用。本文将深入探讨这一主题,包括RSA算法的基本原理、分段加密的原因以及在前端...
### 基于RSA的加密算法的实验报告 #### RSA算法概述 RSA是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,其名称即来源于这三位发明者的姓氏首字母。RSA的主要特点是使用了一对密钥...
RSA加密算法是公钥密码学领域的一个里程碑,它由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因此得名RSA。这种算法基于大整数因子分解的困难性,使得它在信息安全领域被广泛用于数据加密和数字签名。在...
RSA加密算法是公钥密码学领域的一个里程碑,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因此得名RSA。它是一种非对称加密算法,即加密和解密使用不同的密钥,极大地提高了安全性。在C语言中实现RSA...
4. **数据加密与传输**:发送方使用DES密钥K加密明文和签名信息,连同RSA加密后的密钥Ck一同发送给接收方。 5. **接收与解密**:接收方使用自己的私钥Kdb解密Ck,获取DES密钥K,随后用K解密明文和签名信息。 6. **...
3. 循环加密:对于每个子数据块,使用RSA加密算法进行加密。加密过程中,可能会需要使用填充技术,以确保加密的数据长度符合RSA的要求。 4. 结果整合:将所有加密后的子数据块合并,形成最终的加密结果。 解密时,...
RSA加密算法是公钥密码学领域的一个里程碑,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年共同提出,因此得名RSA。它是一种非对称加密算法,即加密和解密使用的是两把不同的密钥,一把是公开的公钥,另一把是...
C#中RSA加密算法详解 在C#程序中,RSA加密算法是一种广泛使用的公钥加密算法。...此外,RSA加密算法也可以用于数字签名和身份验证等领域。 RSA加密算法是一种安全、可靠的加密算法,广泛应用于各种安全领域。
RSA加密算法是一种非对称加密技术,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因此得名RSA。它是现代密码学的基础之一,广泛应用于网络安全,如数据传输加密、数字签名等场景。在这个案例中,我们将...
RSA加密算法是现代密码学中的一个关键组成部分,它在数据安全、网络安全以及数字签名等领域有着广泛的应用。这个算法由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因此得名RSA。RSA是一种非对称加密算法...