密码学学习笔记(九):Public-Key Encryption - 公钥加密2

这篇具有很好参考价值的文章主要介绍了密码学学习笔记(九):Public-Key Encryption - 公钥加密2。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Rivest-Shamir-Adleman (RSA) - 经典非对称加密算法

如果我们知道𝑝, 𝑞 (即𝑁 = 𝑝𝑞) 我们可以在mod N中进行反幂运算。
比如:

密码学学习笔记(九):Public-Key Encryption - 公钥加密2,密码学,密码学,学习,笔记

我们有一个单向陷门函数,非常适合加密。

“教科书式”RSA加密

  •  取两个大素数,然后N = 𝑝𝑞, 然后挑选一对𝑒, 𝑑

密码学学习笔记(九):Public-Key Encryption - 公钥加密2,密码学,密码学,学习,笔记

  •  加密:给定𝑃𝐾 = (𝑁, 𝑒) 和一条消息𝑚 在里面 计算密文𝑐 :

密码学学习笔记(九):Public-Key Encryption - 公钥加密2,密码学,密码学,学习,笔记

  •  解密:给定一个密文𝑐 将原始消息计算为

密码学学习笔记(九):Public-Key Encryption - 公钥加密2,密码学,密码学,学习,笔记

  • 运算过程

密码学学习笔记(九):Public-Key Encryption - 公钥加密2,密码学,密码学,学习,笔记

教科书式RSA加密并不是IND-CPA

教科书(又名Plain,Vanilla)RSA是确定性的,即相同的明文总是产生相同的密文,因此攻击者能够发现重复。

如果攻击者发现:

  • 71F63EA被RSA加密为卖
  • 6AE81B4被RSA加密为买
攻击者下次看到6AE81B4时就知道这是“购买”的加密。
教科书RSA满足了一周的安全概念:整个消息无法从密文中恢复。

修复教科书RSA

  • 好的通用加密必须是概率性的,即每次加密明文时,都应该得到一个新的随机密文
  • 确定性加密对于特殊目的非常有用,例如保留格式的加密

如果我们只是用随机填充来填充消息呢?

密码学学习笔记(九):Public-Key Encryption - 公钥加密2,密码学,密码学,学习,笔记

𝑟 需要足够长,才能让暴力破解不可行。

PKCS#1 v1.5使用了这个想法:

密码学学习笔记(九):Public-Key Encryption - 公钥加密2,密码学,密码学,学习,笔记

  • 被认为是IND-CPA安全的
  • CCA攻击是可能的,例如Bleichenbacher的攻击

Optimal Asymmetric Encryption Padding (OAEP) - RSA-OAEP

密码学学习笔记(九):Public-Key Encryption - 公钥加密2,密码学,密码学,学习,笔记

Factoring Hardness

在实践中,RSA模数大小为2048或3072位。

密码学学习笔记(九):Public-Key Encryption - 公钥加密2,密码学,密码学,学习,笔记

 图片来源:Stallings

RSA中需要避免的其他问题

  • 不要共用一个共同的模数 -- 共模攻击。
  • 不要共用公共素数。公共素数可以通过有效的gcd算法找到,例如:

密码学学习笔记(九):Public-Key Encryption - 公钥加密2,密码学,密码学,学习,笔记

  • 不要使用小公钥𝑒 加快加密速 -- 低加密指数攻击,尽管OAEP可以阻止此攻击
  • 不要使用小密钥𝑑 以加快解密速度 -- 低解密指数攻击

NIST RSA密钥大小建议

密码学学习笔记(九):Public-Key Encryption - 公钥加密2,密码学,密码学,学习,笔记

混合加密

公钥加密比对称加密慢得多,但不需要事先就共享密钥达成一致。

  • 在实践中,几乎总是使用混合加密(也称为KEM-EM):
  • 为对称加密生成新密钥
  • 使用公钥加密对密钥进行加密(密钥封装机制)
  • 使用对称加密和密钥来加密数据(数据封装机制)

比如:标准化DLIES/ECIES

密码学学习笔记(九):Public-Key Encryption - 公钥加密2,密码学,密码学,学习,笔记

混合加密的安全性和有效性

混合加密方案是IND-CPA安全的,如果

  • 公钥加密方案PKEnc是IND-CPA安全的
  • 对称加密方案SymEnc在窃听情况下无法区分

公钥加密方案

广泛使用:文章来源地址https://www.toymoban.com/news/detail-538505.html

  • 基于因子分解:RSA家族、Rabin、Paillier
  • 基于离散对数:ElGamal家族,Cramer–Shoup

到了这里,关于密码学学习笔记(九):Public-Key Encryption - 公钥加密2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 密码学学习笔记(十七 ):Edwards曲线数字签名算法 - edDSA

    Edwards曲线数字签名算法(Edwards-curve Digital Signature Alogorithm, edDSA)由Daniel J. Bernstein等人在2011年提出,它是一种使用基于扭曲爱德华兹曲线的Schnorr签名变体的数字签名方案。 EdDSA的一个特殊之处在于,该方案不要求每次签名都是用全新的随机数,而且该算法是确定性的。 EdDSA不直

    2024年02月16日
    浏览(48)
  • 密码学学习笔记(二十一):SHA-256与HMAC、NMAC、KMAC

    SHA-2是广泛应用的哈希函数,并且有不同的版本,这篇博客主要介绍SHA-256。 SHA-256算法满足了哈希函数的三个安全属性: 抗第一原像性 - 无法根据哈希函数的输出恢复其对应的输入。 抗第二原像性 - 给定一个输入和它的哈希值,无法找到一个不同于该输入的新输入,使得这两

    2024年02月11日
    浏览(83)
  • 密码学学习笔记(二):对称加密(二) IND-CPA、IND-CCA安全以及分组密码操作模式

    书接上篇笔记,假设声称对手可以在给定我们方案的密文的情况下找出明文的第一位。我们如何检验这一说法? 通过加密以0或1开头的明文生成密文 将密文交给对手,等待对手决定是哪种情况,检查决定是否正确 不可区分性:  如果我们想模拟任何泄漏怎么办? 为了模拟任

    2024年02月04日
    浏览(55)
  • 密码学学习笔记(二十三):哈希函数的安全性质:抗碰撞性,抗第一原象性和抗第二原象性

    在密码学中,哈希函数是一种将任意长度的数据映射到固定长度输出的函数,这个输出通常称为哈希值。理想的哈希函数需要具备几个重要的安全性质,以确保数据的完整性和验证数据的来源。这些性质包括抗碰撞性、抗第一原象性和抗第二原象性。 抗碰撞性指的是在合理的

    2024年02月05日
    浏览(53)
  • CRYPTO现代密码学学习

    简单介绍 :RC4加密算法是一种对称加密算法,加密和解密使用同一个函数 初始化分为以下几个步骤 初始化存储0-255字节的Sbox(其实就是一个数组) 填充key到256个字节数组中称为Tbox(你输入的key不满256个字节则初始化到256个字节) 交换s[i]与s[j] i 从0开始一直到255下标结束. j是 s

    2024年02月03日
    浏览(64)
  • 图形学学习笔记1:基础变换矩阵

    变换矩阵 (Transformation Marices) ,一切物体的缩放,旋转,位移,都可以通过变换矩阵作用得到,在光栅化中会用到,同时在投影 (projection) 变换也有很多应用 将如下图所示的简单矩阵乘法定义为对向量的线性变换。 最简单的缩放变换 ,如图,即除了(0,0)不变之外都乘以某个系

    2024年03月12日
    浏览(46)
  • 【SEED Labs 2.0】Public-Key Infrastructure (PKI) Lab

    本文为 SEED Labs 2.0 - Public-Key Infrastructure (PKI) Lab 的实验记录。 如今,公钥密码学已经成为了安全通信的基础。但是当通信的一方将其公钥发送给另一方时,它会受到中间人攻击。问题在于无法验证公钥的所有权——即给定公钥及其声称的所有者信息。我们如何确保公钥确实由

    2024年02月07日
    浏览(54)
  • Public Key Retrieval is not allowed

    我在使用 DBeaver 连接本地 mysql server 的时候,连接失败,报错: Public Key Retrieval is not allowed 。 据 https://blog.csdn.net/white0718/article/details/131790493 所讲:mysql server 从 8.0 开始默认使用 caching_sha2_password 插件做密码加密工作。 解决方案有两种 先用某个具有权限的账号,登录到 mysq

    2024年04月28日
    浏览(36)
  • Public Key Retrieval is not allowed解决

    一、导致“Public Key Retrieval is not allowed”原因 当禁用 SSL/TLS 协议传输后,客户端会使用服务器的公钥进行传输,默认情况下客户端不会主动去找服务器拿公钥,进而会出现错误。 出现 Public Key Retrieval 的场景可以概括为: 禁用 SSL/TLS 协议传输切当前用户在服务器端 没有登录缓

    2024年01月23日
    浏览(39)
  • PKI(Public Key Infrastructure)公钥基础设施浅谈

    公钥基础设施(PKI)是一种提供公钥加密和数字签名服务的系统或平台,它能够管理密钥并提供安全服务,使得用户可以在安全的环境下使用和管理自己的密钥。以下是关于PKI的详细技术阐述: 证书管理:PKI的核心组成部分是证书管理,它包括证书的生成、分发、更新和撤销

    2024年01月21日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包