在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 初探的更多相关文章

  1. (课内)信安数基RSA-基础&&解密加速

    RSA基本实现 首先获得N比特的伪随机数:使用Random库中内容. randint(n,m) 表示生成一个在n和m之间的随机数, **表示乘幂. getPrime找素数,or 1运算是一种优化:如果 ...

  2. (课内)信安数基RSA-level3-5

    emmmm感觉其实自己对这个的理解完全不够,原理只能写出这么个东西(悲) 代码完全是 攻击方式中(1)(2)内容的实现. lambda是一种可以理解为匿名函数的写法:写在这里看起来很酷炫(bushi) ...

  3. (课内)信安数基RSA-level1&&2

    注:(不求甚解的)攻击原理 以及(浅层的)算法解释已在图片中给出:文字部分主要讲一些python语法的东西. 代码需要库 gmpy2和libnum:加密算法还需要Crypto.Util.number ...

  4. 1284-Primitive Roots,学信安的路过

                                                      Primitive Roots 此题通过率如此之高,料想不会很难,但是再简单小菜还是不会.. 嗯,下 ...

  5. 信安周报-第03周:DB系统表

    信安之路 第03周 前言 这周自主研究的任务如下: 任务附录的解释: 文件读写在通过数据库注入漏洞获取webshell的时候很有用 系统库和表存放了很多关键信息,在利用注入漏洞获取更多信息和权限的过程 ...

  6. 站内信,群发与全部发送。Gson解析result

    /** * 发送站内信 */@Permission(Module.TZGL)@RequestMapping(value = "/sendznx", method = Request ...

  7. 信安周报-第02周:SQL基础

    信安之路 第02周 Code:https://github.com/lotapp/BaseCode/tree/master/safe 前言 本周需要自行研究学习的任务贴一下: 1.概念(推荐) 数据库 ...

  8. 第一届“信安杯”部分WriteUp

    第一届"信安杯"部分WriteUp------OooooohLeeGay队! 小队成员(按姓氏):郭泽坤.李江川.赵乐祺 以下这部分是做出来的 2019.11.23-24 ++Re ...

  9. ASP.NET 实现站内信功能(点对点发送,管理员群发)

    正好这段时间在研究这个功能,还是得感谢这位大神,没有他的引路,我就不可能把站内信做出来. http://www.cnblogs.com/grenet/archive/2010/03/08/168065 ...

随机推荐

  1. kubernetes使用jenkins Pipeline 部署Nginx

    文章原文 环境需求 kubernetes 未安装参考使用kubeadm安装kubernetes 1.21 jenkins github/gitee/gitlab 静态页面 镜像仓库(我使用的 hub. ...

  2. C# Equals方法和==有什么区别

    开发工具:VS2019 一.关于这两个比较,需要从值类型和引用类型两方面来说 (A)先说值类型 上图: 因为在对值类型进行比较时候,不管 .Equals() 方法还是 == 方法,都是对值类型变量(图 ...

  3. Docker Compose 实践及梳理

    Docker Compose 可以实现 Docker 容器集群的编排,可以通过 docker-compose.yml 文件,定义我们的服务及其需要的依赖,轻松地运行在测试.生产等环境 文档 Produ ...

  4. JAVA反序列化漏洞基础原理

    JAVA反序列化漏洞基础原理 1.1 什么是序列化和反序列化? Java序列化是指把Java对象转换为字节序列的过程: Java反序列化是指把字节序列恢复为Java对象的过程: 1.2 为什么要序列化 ...

  5. 批量ip段/子网转换

    #coding=utf-8 import re import struct from sys import argv class CIDRHelper(object): def ipFormatChk ...

  6. Vue个人博客关于标题自动打字机效果Typewriter

    最近在写个人Blog 中间看过很多个人博客的开发 一大部分用的是Hexo框架或者vuePress框架 导入各种主题样式插件等等 但是看多了就会发现 很多博主的个人博客基本都很相似 并没有什么新东西呈现 ...

  7. 383 day10缓冲流、转换流、序列化流

    day10[缓冲流.转换流.序列化流] 主要内容 缓冲流 转换流 序列化流 打印流 教学目标 [ ] 能够使用字节缓冲流读取数据到程序 [ ] 能够使用字节缓冲流写出数据到文件 [ ] 能够明确字符缓 ...

  8. Java多线程-1(3)

    本份随记主要为狂神老师的Java多线程教学的学习笔记,记载了视频中一些有关基础概念以及部分代码示例.随机分为1-3共三份,知识点记录的不是很深入,以后的学习过程中随时补充. 1 有关基础概念 1.1 ...

  9. 查看Win10商店应用更新日期

    查看Win10商店应用更新日期 需要用到一个工具--WP Snitch,网址 https://wpsnitch.appspot.com/ 打开网址后他会给出一个示例,比如给出的是 https://ww ...

  10. 鸿蒙内核源码分析(工作模式篇) | CPU是韦小宝,七个老婆 | 百篇博客分析OpenHarmony源码 | v36.04

    百篇博客系列篇.本篇为: v36.xx 鸿蒙内核源码分析(工作模式篇) | CPU是韦小宝,七个老婆 | 51.c.h .o 硬件架构相关篇为: v22.xx 鸿蒙内核源码分析(汇编基础篇) | CP ...