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

news2024/11/15 17:35:25

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

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

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

“教科书式”RSA加密

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

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

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

  • 运算过程

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

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

如果攻击者发现:

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

修复教科书RSA

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

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

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

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

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

Optimal Asymmetric Encryption Padding (OAEP) - RSA-OAEP

Factoring Hardness

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

 图片来源:Stallings

RSA中需要避免的其他问题

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

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

NIST RSA密钥大小建议

混合加密

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

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

比如:标准化DLIES/ECIES

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

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

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

公钥加密方案

广泛使用:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/731094.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【2023年成都七中NOIP联赛】游记

Day 1: 8:30: 睡懒觉,一觉睡到 8:30,“嘟嘟嘟”的电话声响起,迷迷糊糊睁开眼睛,快点,去成都七中…… 没错,我连今天要考试都不知道(其实昨天老师给我发了消息的&#…

算法 | 滑动窗口算法笔记

滑动窗口:核心思想 核心思想:维护一个窗口(又叫做子区间),通过调整窗口的起始位置(start)和终止位置(end),来寻找符合特定条件的子区间。 滑动窗口算法常常…

包管理器 | 浅谈几个常用的包管理工具

目录 🖥️ 前言 ◼️ npm ◼️ cnpm ◼️ yarn ◼️ pnpm ◼️ Bower 🖥️ 参考文献 🖥️ 参考资料 🖥️ 前言 如果你是前端开发者,或多或少都会接触到一些包管理工具,包管理工具是用于持续自动化…

17.OpenCV中的GFTTDetector类

文章目录 GFTTDetector功能OpenCV中GFTTDetector类reference 欢迎访问个人网络日志🌹🌹知行空间🌹🌹 这是使用imgproc.hpp中的goodFeaturesToTrack函数封装的类,其使用和goodFeaturesToTrack函数基本相似。 GFTTDetec…

wps如何加载mathtype和Endnote

为了支持国产化软件,弃用office套装,现在改用wps办公软件,但是写作科技论文的时候还是会出现很多的不方便,比如文献引用、公式排版编号等等。尽管wps自带了公式编辑器,然鹅这可太不方便了,因此把几个技巧总…

由于找不到libmmd.dll,无法继续执行代码有什么好的解决办法修复?

其实要解决由于找不到libmmd.dll,无法继续执行代码这个问题还是比较简单的,因为这类问题不外乎就是丢失了dll文件,我们只要下载安装回来就可以了,但有朋友还是会好奇,libmmd.dll到底是什么文件,那我们就来详细说说吧&a…

paddlenlp安装教程

一、安装cuda和cuDNN 1、安装paddlepaddle之前,要确保电脑已经安装了对应版本的cuda和cuDNN (1)安装CUDA 进入官网选择合适版本下载: 按照步骤安装完成即可。安装完成后进行验证,打开cmd命令窗口,输入nv…

Floyd算法学习笔记

Floyd算法学习笔记 前言 同步于 c n b l o g s cnblogs cnblogs 发布 如有错误,欢迎各位 dalao 批评指出。 前置芝士: 1.邻接矩阵(Floyd要用邻接矩阵存图) 2.动态规划思想(最好学过,没学过也没有太大影响&#…

无线视频传输方案|远距离无人机图传应用,+28dBm大功率wifi图传模块

针对无人机远程图片、视频传输需求,市面上就有无线模块研发厂家推出了基于大功率图传WiFi模块SKW77的无人机远程视频传输解决方案。在无人机和地面的中继器内加入串口WiFi模块,手机通过与无人机和地面的中继器内置的串口WiFi模块给无人机传递控制信号&am…

深度理解 JAVA 动态代理

本文篇幅比较长,在确定您是否需要仔细阅读本文前,可以先思考一下下面几个问题: 动态代理是什么?如何实现动态代理?所有类都能实现动态代理吗?非目标方法是否会被代理?为什么 JDK 实现动态代理必…

平安养老险广东分公司积极开展“7·8全国保险公众宣传日”系列活动

2023年是全面贯彻落实党的二十大精神的开局之年,是实施“十四五”规划承上启下的关键之年。在国家金融监督管理总局指导、中国保险行业协会组织下,平安养老保险股份有限公司广东分公司(以下简称“平安养老险广东分公司”)以“78全…

ETHERNET/IP转MODBUS-RTU协议网关

远创智控YC-EIP-RTU是自主研发的一款ETHERNET/IP从站功能的通讯网关。该产品主要功能是将各种MODBUS-RTU设备接入到ETHERNET/IP网络中。 远创智控YC-EIP-RTU连接到ETHERNET/IP总线中做为从站使用,连接到MODBUS-RTU总线中做为主站或从站使用。 2.ETHERNET/IP转MODBU…

IDEA中配置Java反编译工具javap -c

IDEA中配置Java反编译工具javap -c 一、前置条件二、新建外部工具三、使用方式 欢迎访问我的个人博客:https://wk-blog.vip 一、前置条件 确保 IDEA 已经开启了编译 javac 。默认 IDEA 是开启的。 二、新建外部工具 首先进入 Settings ---> Tools ---> Ext…

自动化测试报告样式HTMLTestRunner、BeautifulReport、HTMLReport、Allure你喜欢哪个?

自动化测试报告样式HTMLTestRunner、BeautifulReport、HTMLReport、Allure你喜欢哪个? 1 框架设计(准备工作)1.1 简易框架图1.2 common/reportOut.py1.3 report1.4 testcase/test_baidu.py1.5 mian.py 2 HTMLTestRunner2.1 下载使用2.2 reportOut.py设计2.3 报告样式…

十一、框架与大数据模型

frameset标签 1、frameset标签 这种结构&#xff0c;基本上被淘汰 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <frameset cols"25%,75%">&…

统计每列中不同值出现的次数.apply(pd.value_counts)

在Python 的pandas.DataFrame中有一种操作&#xff0c;它可以大大减轻我们的工作量&#xff0c;方便我们更快地进行数据分析&#xff0c;加快处理工作的效率。这就是 .apply(pd.value_counts) pandas 的强大&#xff0c;越使用&#xff0c;也就越爱了。现在就来夸夸它的作用啦…

统计学习导论(ISLR) 第八章树模型课后习题

统计学习导论(ISLR) 第八章树模型课后习题 🌸个人主页:JOJO数据科学📝个人介绍:统计学top3高校统计学硕士在读💌如果文章对你有帮助,欢迎✌关注、👍点赞、✌收藏、👍订阅专栏✨本文收录于【R语言数据科学】本系列主要介绍R语言在数据科学领域的应用包括: R语言…

二叉树 — 返回最大的二叉搜索子树大小

题目&#xff1a; 给定一棵二叉树的head节点&#xff0c;返回这颗二叉树中最大的二叉搜索子树的大小。 一颗二叉树来讲&#xff0c;可能整棵树不是搜索二叉树&#xff0c;但子树是一颗搜索二叉树。如下图所示&#xff0c;这时要返回这颗子搜索二叉树的最大节点个数。下图中&…

【node报错】cannot be loaded because running scripts is disabled on this system.

了解意思&#xff1a; cannot be loaded because running scripts is disabled on this system. 因为在该系统上禁用了运行脚本&#xff1b; 这个错误是由于你的系统执行策略&#xff08;Execution Policies&#xff09;禁止运行脚本导致的。Windows 系统默认情况下禁止运行…

ChatGPT前身GPT的论文-译文

写在前面 论文 Improving Language Understanding by Generative Pre-Training 地址 https://www.cs.ubc.ca/~amuham01/LING530/papers/radford2018improving.pdf ChatGPT火了&#xff0c;改论文作为ChatGPT的前身&#xff0c;可以从这里看到ChatGPT的原始影子。 摘要 自然语言…