公钥 密钥

公钥算法一起使用的密钥对的秘密一半。
1,公钥和私钥成对出现
2,公开的密钥公钥,只有自己知道的叫私钥
3,用公钥加密的数据只有对应的私钥可以解密
4,用私钥加密的数据只有对应的公钥可以解密
5,如果可以用公钥解密,则必然是对应的私钥加的密
6,如果可以用私钥解密,则必然是对应的公钥加的密
公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。用电子邮件的方式说明一下原理。
      使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的:
      1. 我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。
      2. 必须保证是我发送的邮件,不是别人冒充我的。
      要达到这样的目标必须发送邮件的两人都有公钥和私钥。
      公钥,就是给大家用的,你可以通过电子邮件发布,可以通过网站让别人下载,公钥其实是用来加密/验章用的。私钥,就是自己的,必须非常小心保存,最好加上 密码,私钥是用来解密/签章,首先就Key的所有权来说,私钥只有个人拥有。公钥与私钥的作用是:用公钥加密的内容只能用私钥解密,用私钥加密的内容只能 用公钥解密。
      比如说,我要给你发送一个加密的邮件。首先,我必须拥有你的公钥,你也必须拥有我的公钥。
      首先,我用你的公钥给这个邮件加密,这样就保证这个邮件不被别人看到,而且保证这个邮件在传送过程中没有被修改。你收到邮件后,用你的私钥就可以解密,就能看到内容。
      其次我用我的私钥给这个邮件加密,发送到你手里后,你可以用我的公钥解密。因为私钥只有我手里有,这样就保证了这个邮件是我发送的。
      当A->B资料时,A会使用B的公钥加密,这样才能确保只有B能解开,否则普罗大众都能解开加密的讯息,就是去了资料的保密性。验证方面则是使用签 验章的机制,A传资料给大家时,会以自己的私钥做签章,如此所有收到讯息的人都可以用A的公钥进行验章,便可确认讯息是由 A 发出来的了。


   
数字证书的原理

   数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时 设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使 用自己的私钥解密,这样信息就可以安全无误地到达目的地了。通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密. 在公开密钥密码体制中,常用的一种是RSA体制。
用户也可以采用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。采用数字签名,能够确认以下两点:
(1)保证信息是由签名者自己签名发送的,签名者不能否认或难以否认;
(2)保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文件。

公钥公钥密码学中的重要概念。公钥密码的基本原理是,用接收方公钥加密可用于发送保密信息,用自己私钥加密则可用于数字签名,其关键技术是找到一个单向陷门函数,同时不同算法支持不同应用,也存在针对公钥密码的攻击手段[^1]。 密钥是一个更宽泛的概念,包含公钥和私钥。在公钥基础设施(PKI)中,公钥和私钥是成对出现的。证书是包含公钥和相关信息的数字文件,由证书颁发机构(CA)签署,用于验证公钥的真实性,在PKI中起着关键作用[^3]。 公钥密码学是一种保护个人和企业数据安全的机制。通过数字签名,能确保消息的真实来源和完整性;通过密钥交换和混合系统,可以高效且安全地传输大量数据。密钥管理和消息摘要算法是保障加密系统安全的重要组成部分[^2]。 公钥基础设施(PKI)可理解为利用公钥技术为网络应用提供加密和数字签名等密码服务以及必需的密钥和证书管理体系,是提供安全服务的基础设施,PKI技术是信息安全技术的核心,也是电子商务的关键和基础技术[^4]。 ### 代码示例 以下是一个简单的Python示例,使用`cryptography`库进行RSA公钥加密和私钥解密: ```python from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives.asymmetric import rsa, padding from cryptography.hazmat.primitives import serialization, hashes # 生成私钥 private_key = rsa.generate_private_key( public_exponent=65537, key_size=2048, backend=default_backend() ) # 从私钥中获取公钥 public_key = private_key.public_key() # 要加密的消息 message = b"Hello, World!" # 使用公钥加密消息 encrypted = public_key.encrypt( message, padding.OAEP( mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None ) ) # 使用私钥解密消息 decrypted = private_key.decrypt( encrypted, padding.OAEP( mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None ) ) print(f"Original message: {message}") print(f"Decrypted message: {decrypted}") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值