(半课内)信安数基 RSA-OAEP 初探
在RSA攻击中,存在着“小明文攻击“的方式;
在明文够小时,密文也够小,直接开e次方即可;
在明文有点小时,如果e也较小,可用pow(m,e)=n*k+c穷举k尝试爆破
所以,比如说,在选择明文攻击中,单纯的RSA非常容易被破解。
于是,我们就像将密文进行一下填充,最好让密文都等长。
但是填充方式也是很讲究的;不好的填充规则往往仅仅有限的增加了攻击的难度,或者难以实现等长密文。
于是我们就查到了(bushi)OAEP——最优非对称加密填充。
最优非对称加密填充:
(1)准备工作:
将k比特内容转化为m比特内容的 公共单向函数G
将m比特内容转化为k比特内容的 公共单向函数H
(2)Alice的加密过程:
最初有一个小于m比特的信息。它填充这个信息来获得一个m比特的信息M
选择一个k比特的随机数r。
运用G和r生成一个m比特的整数G(m,r),并丢弃r。
运用G(m,r)生成明文的第一部分c1=M xor G(m,r),并生成明文的第二部分c2=H(P1) xor r
最后,运用c1,c2生成密文C
(3)Bob的解密过程(?):
大概是,运用H找到G(m,r)并,运用G(r)找到信息。
当OAEP与RSA结合:


关于“在加密中引入随机化的作用”:
大量对教科书式加密算法的攻击都是这样采样一种通用技术:篡改密文从而以一种可控的方式修改相应的明文。
然而,OAEP有良好的特性;因此,如果攻击者想篡改密文,就会导致明文的改变是不可控的,
因为使用了杂凑函数,在保证杂凑函数的安全性下(比若说单向性、抗碰撞性等),很难找到一个有效的hash值,其对应的明文是有效的。
即:如果攻击者试图以适应性的方式修改密文,那么数据完整性检验将以“压倒性”概率失败,并且解密结果为一条没有任何意义的明文。
注:因为在查阅相关资料和文献时,几乎没有背景知识,甚至是初次接触“填充”;
所以,我对“在加密中引入随机化的作用”可能有偏差;并留下疑问作为可能会填的坑:
(1)其实感觉一切都没完全懂。
(2)关于填充。(加密描述和“作用”中都直接跳过了这部分的叙述)
参考:
https://www.cnblogs.com/akira90/archive/2012/11/19/2778234.html
https://blog.csdn.net/qq_39743001/article/details/117249884?utm_source=app&app_version=4.16.0
(半课内)信安数基 RSA-OAEP 初探的更多相关文章
- (课内)信安数基RSA-基础&&解密加速
RSA基本实现 首先获得N比特的伪随机数:使用Random库中内容. randint(n,m) 表示生成一个在n和m之间的随机数, **表示乘幂. getPrime找素数,or 1运算是一种优化:如果 ...
- (课内)信安数基RSA-level3-5
emmmm感觉其实自己对这个的理解完全不够,原理只能写出这么个东西(悲) 代码完全是 攻击方式中(1)(2)内容的实现. lambda是一种可以理解为匿名函数的写法:写在这里看起来很酷炫(bushi) ...
- (课内)信安数基RSA-level1&&2
注:(不求甚解的)攻击原理 以及(浅层的)算法解释已在图片中给出:文字部分主要讲一些python语法的东西. 代码需要库 gmpy2和libnum:加密算法还需要Crypto.Util.number ...
- 1284-Primitive Roots,学信安的路过
Primitive Roots 此题通过率如此之高,料想不会很难,但是再简单小菜还是不会.. 嗯,下 ...
- 信安周报-第03周:DB系统表
信安之路 第03周 前言 这周自主研究的任务如下: 任务附录的解释: 文件读写在通过数据库注入漏洞获取webshell的时候很有用 系统库和表存放了很多关键信息,在利用注入漏洞获取更多信息和权限的过程 ...
- 站内信,群发与全部发送。Gson解析result
/** * 发送站内信 */@Permission(Module.TZGL)@RequestMapping(value = "/sendznx", method = Request ...
- 信安周报-第02周:SQL基础
信安之路 第02周 Code:https://github.com/lotapp/BaseCode/tree/master/safe 前言 本周需要自行研究学习的任务贴一下: 1.概念(推荐) 数据库 ...
- 第一届“信安杯”部分WriteUp
第一届"信安杯"部分WriteUp------OooooohLeeGay队! 小队成员(按姓氏):郭泽坤.李江川.赵乐祺 以下这部分是做出来的 2019.11.23-24 ++Re ...
- ASP.NET 实现站内信功能(点对点发送,管理员群发)
正好这段时间在研究这个功能,还是得感谢这位大神,没有他的引路,我就不可能把站内信做出来. http://www.cnblogs.com/grenet/archive/2010/03/08/168065 ...
随机推荐
- 机械硬盘换到SSD后系统引导报错代码0xc000000e
由于机械硬盘IO不够用,系统使用起来非常的缓慢,特意购买了新的SSD进行了替换.机械硬盘的IO在70左右,SSD的IO在1000-4000左右指普通消费SSD. 由于不想安装系统,就直接把机械硬盘的数 ...
- Redis的配置文件redis.conf的解析
1.redis的配置文件为redis.conf 2.redis配置文件redis.conf中关于网络的配置 3.redis配置文件redis.conf中的日志配置 4.redis配置文件redis.c ...
- Docker(36)- docker run 的流程和原理
背景 目前项目组上, Docker 用的非常重,所有微服务都是通过 docker 来部署的 所以不能仅仅会命令,还得会一些原理的东西,特此补一篇基础点的,后面再更加深入一些 docker 原理 本篇学 ...
- 一行Java代码实现游戏中交换装备
摘要:JDK 1.5 开始 JUC 包下提供的 Exchanger 类可用于两个线程之间交换信息. 本文分享自华为云社区<一行Java代码实现两玩家交换装备[并发编程]>,作者:陈皮的Ja ...
- tomcat快速发布备份脚本
一.说明 我们每次在tomcat中发布新war包,总是要经历[备份-停机-上传-启动]这几个部分,其中上传的环节和网速有极大相关性,要是网速很慢,那么整个发布的时间就会很长. 如果我们不借助于自动化发 ...
- 从零开始学习SQL SERVER(2)--- 基本操作及语句
声明:仅为本人随笔及经验之谈,有错误敬请指出. # 后的文字为注释 Microsoft SQL Server Management Studio 中的SQL命令 添加数据库 1 CREATE DATA ...
- 288 day05_异常,线程
day05 [异常.线程] 主要内容 异常.线程 教学目标 [ ] 能够辨别程序中异常和错误的区别 [ ] 说出异常的分类 [ ] 说出虚拟机处理异常的方式 [ ] 列举出常见的三个运行期异常 [ ] ...
- CodeForce-808C Tea Party(结构体排序贪心)
Tea Party CodeForces - 808C 现在有 n 个杯子,每个杯子的容量为 a1, a2, ..., an.他现在一共有 w 毫升茶 (w ≤ a1 + a2 + ... + an) ...
- 如何写出安全又可靠的PHP脚本
前言 咔咔目前所做的项目是一个saas系统,在开发新功能之后,需要为用户角色添加相应的权限,这时整个系统的所有用户都需要添加相应的权限. 因为以前系统的缺陷现在只能用脚本来处理这些工作,所以接下来咔咔 ...
- Docker系列(10)- 常用命令小结
#橙色前面笔记已记录,黑色后面笔记将完善#勤加练习!!!attach Attach to a running container # 当前 shell 下 attach 连接指定运行镜像 build ...