第十个知识点:RSA和强RSA问题有什么区别?
第十个知识点:RSA和强RSA问题有什么区别
这个密码学52件事数学知识的第一篇,也是整个系列的第10篇.这篇介绍了RSA问题和Strong-RSA问题,指出了这两种问题的不同之处.
密码学严重依赖于这样的假设,某些数学问题难以在有限的时间内解决.让我们看公钥(非对称)密码学,这也是这篇文章中我们使用的一个假设----单向函数(One-Way function)存在.例如,一个函数在一种情况下很容易计算,而在另一种情况下不容易计算.我们使用数论算法来产生这样的函数.
分解
数论中最先讨论的问题就是分解.给一个合数\(N\),分解问题就是找出正整数\(p\),\(q\)使得\(N=pq\).尽管这面临的似乎是一个简单的问题,但事实上它是很难的,值得深入研究的问题.我们可以在指数时间检查所有的\(p=2,...,\sqrt N\).然而解决问题在指数时间不是足够快的.尽管有多年的研究,还没有多项式算法可以解决分解大数的问题.很显然对\(N\)的某个特定的值很容易解决.例如\(N\)是偶数.但是,我们讨论的密码学构造中,\(N\)是一个非常大的数,同时被连个大素数构造\(p,q\).
RSA问题
在RSA公钥加密中,Alice使用Bob的公钥\((n,e)\)加密明文\(M\)生成\(C\),计算方法为\(C=M^e(mod\space n)\),其中\(n\)是由两个大素数产生的,\(e\ge 3\)并且是一个奇数且和\(Z^*_n\)互质,\(Z_n\).Bob知道私钥\((n,e)\),其中\(de=1(mode(p-1)(q-1))\)意味着\(M=C^d(mod\space n)\).攻击者能够窃听\(C\)同时知道公钥\((n,e)\).然而为了计算\(M\),攻击者必须找到\(n\)的分解.因此,这意味着RSA问题并不比整数因子分解困难,但是如果选择合适的\(n\),这仍然是一个很难解决的问题.
强RSA假设
强RSA假设不同于RSA假设主要在对手可以选择奇数的公共指数\(e\ge3\).对手的任务就是计算出\(M\)从一个给定的\(C=M^e(mod \space n)\).这个问题至少和RSA一样简单,这意味着这个假设更强.他的问题至少和RSA问题一样简单这意味着强RSA假设是一个更强的假设。RSA问题已经有25年的历史了。公钥加密方案的优点完全来自于RSA问题.
[1] - http://people.csail.mit.edu/rivest/RivestKaliski-RSAProblem.pdf
(注:觉得它这篇写的有些混乱,可以直接参考这个链接的pdf).
第十个知识点:RSA和强RSA问题有什么区别?的更多相关文章
- 第四十个知识点 一般来说SPA和DPA的区别是什么
第四十个知识点 一般来说SPA和DPA的区别是什么 原文地址:http://bristolcrypto.blogspot.com/2015/07/52-things-number-40-what-is ...
- C# RSA和Java RSA互通
今天调查了C# RSA和Java RSA,网上很多人说,C#加密或者java加密 ,Java不能解密或者C#不能解密 但是我尝试了一下,发现是可以的,下面就是我尝试的代码,如果您有什么问题,我想看看, ...
- Linux新手要了解的十个知识点
Linux对于有的新手来说,感觉无从下手,或者不知道从哪儿学起?怎么学?针对这些问题,我给大家说说新手学习Linux需要了解的十个知识点. 注意大小写 Linux是大小写敏感的系统,举个例子,Mozi ...
- 第五十个知识点:什么是BLS基于对的签名方案?
第五十个知识点:什么是BLS基于对的签名方案? BLS签名方案使用了椭圆曲线上了Weil对,本质上是一个在曲线上除n划分的双线性形式,使用 \(n^{th}\) 个单位根. 假设我们有一个椭圆曲线\( ...
- 第二十个知识点:Merkle-Damgaard hash函数如何构造
第二十个知识点:Merkle-Damgaard hash函数如何构造 这里讲的是MD变换,MD变换的全称为Merkle-Damgaard变换.我们平时接触的hash函数都是先构造出一个防碰撞的压缩函数 ...
- 第三十个知识点:大致简述密钥协商中的BR安全定义。
第三十个知识点:大致简述密钥协商中的BR安全定义. 在两方之间建密钥共享是一件密码学中古老的问题.就算只考虑定义也比标准加密困难的多.尽管古典的Diffie-Hellman协议在1976年思路解决了这 ...
- ****ural 1141. RSA Attack(RSA加密,扩展欧几里得算法)
1141. RSA Attack Time limit: 1.0 secondMemory limit: 64 MB The RSA problem is the following: given a ...
- RSA加解密&RSA加验签详解
RSA 加密算法是目前最有影响力的 公钥加密算法,并且被普遍认为是目前 最优秀的公钥方案 之一.RSA 是第一个能同时用于 加密 和 数字签名 的算法,它能够 抵抗 到目前为止已知的 所有密码攻击,已 ...
- python爬虫破解带有RSA.js的RSA加密数据的反爬机制
前言 同上一篇的aes加密一样,也是偶然发现这个rsa加密的,目标网站我就不说了,保密. 当我发现这个网站是ajax加载时: 我已经习以为常,正在进行爬取时,发现返回为空,我开始用findler抓包, ...
随机推荐
- LeetCode最富有客户的资产总量
最富有客户的资产总量 题目描述 给你一个 m * n 的整数网格 accounts,其中 account[i][j]是第 i 位客户在第 j 家银行托管的资产数量.返回最富有客户所拥有的资产总量. 客 ...
- Flink(二)【架构原理,组件,提交流程】
目录 一.运行架构 1.架构 2.组件 二.核心概念 TaskManager . Slots Parallelism(并行度) Task .Subtask Operator Chains(任务链) E ...
- Spark(二)【sc.textfile的分区策略源码分析】
sparkcontext.textFile()返回的是HadoopRDD! 关于HadoopRDD的官方介绍,使用的是旧版的hadoop api ctrl+F12搜索 HadoopRDD的getPar ...
- [转] Java中对数据进行加密的几种方法
加密算法有很多种:这里只大约列举几例: 1:消息摘要:(数字指纹):既对一个任意长度的一个数据块进行计算,产生一个唯一指纹.MD5/SHA1发送给其他人你的信息和摘要,其他人用相同的加密方法得到摘要, ...
- linux之sar命令详解
sar(System Activity Reporter系统活动情况报告)是目前Linux上最为全面的系统性能分析工具之一,可以从多个方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用情况 ...
- spring-boot aop 增删改操作日志 实现
1.注解接口:import com.github.wxiaoqi.security.common.constant.Constants; import java.lang.annotation.*; ...
- 测试数据库并发压力的shell脚本
本节内容:一例用于测试数据库并发压力的shell脚本代码. 例子: #!/bin/bash #********************************# #并发后台运行fun # #for w ...
- jQuery - 按回车键触发跳转
键盘事件有三种: keyup:按键按下去,抬上来后,事件才生效 (推荐) keydown:按键按下去就生效 keypress:与 keydown 事件类似,当按钮被按下时,会发生该事件,与 keydo ...
- Linux系统的文件复制移动删除与VIM编辑
目录 今日内容概要 内容详细 复制文件 移动文件 删除文件 系统别名(针对 rm 改别名) vim编辑器 今日内容概要 复制文件 移动文件 删除文件 vim编辑器 内容详细 复制文件 # 命令: cp ...
- matplotlib 坐标轴刻度能见度问题
matplotlib 画图时如果图像太大就会挡住了坐标轴,刻度就看不到了.可以利用zorder设置level,level越小越先绘制. 例子: 1 import matplotlib.pyplot a ...