4、密码学中的机密性:从加密编码到密钥交换

密码学中的机密性:从加密编码到密钥交换

在密码学领域,保障信息的机密性至关重要。本文将深入探讨加密编码方法以及密钥交换协议,包括PKCS#1、OAEP编码,Diffie - Hellman密钥交换等内容。

1. 加密编码方法
1.1 PKCS#1编码

PKCS#1编码在加密过程中使用特定的值来保证消息的安全性。其中,值0和2在十六进制表示中为0x00和0x02。0x00确保待加密的消息始终小于模数𝑛,而0x02保证消息“足够大”,从而始终应用模运算。随机填充字节使RSA - PKCS#1具有概率性,且填充字节必须非零,这样就可以使用0x00作为分隔符来区分填充和内容。

例如,若要使用2048位RSA加密128位AES密钥𝑘,最后16个字节包含密钥𝑘的值。在此之前,设置一个空字节0x00,前两个字节设置为0x00和0x02。这样就剩下256 - 16 - 1 - 2 = 221个字节用随机非零字节填充。

然而,PKCS#1编码存在理论和实际的弱点。攻击者随机选择的密文进行教科书式RSA解密时,有相对较高的概率得到有效编码的明文。这是因为PKCS#1编码包含的冗余信息相对较少,接收者本质上只能检查前两个字节是否为0x00 0x02,对于随机密文,此检查成功的概率为1/2¹⁶。

1.2 OAEP编码

为了改进PKCS#1编码的不足,提出了最优非对称加密填充(OAEP)方法。OAEP编码同样基于冗余和随机性,但这两个值现在是可扩展的。在加密消息𝑚之前,如图所示,有𝑘₁个零位作为冗余位,𝑘₀个随机位用于随机化。这些值与消息𝑚一起作为两个函数𝐺和𝐻以及异或运算的输入。将值𝑋和𝑌连接后

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值