当前位置: 首页 > news >正文

用自底向上算法为一组整数构造一个大根堆。_Mathematical Cryptography笔记:整数分解和RSA...

b8bd62645a1af15bb60253766b967472.png

3.1 Euler’s Formula and Roots Modulo pq

Euler’s Formula for

:
为两个不相等的质数,令
,
,
(mod
)
In particular: 若 p 和 q 为奇质数
,
,
(mod pq)

Prove:

  • 根据假设可知,
  • 计算
    (
    为整数)

    (mod
    ) (费马小定理)

    (mod
    )
  • 同理可证
    (mod q)
  • 综上该定理得证

Remark:个人感觉教材这里不是很清楚,可以看出只要 g 同时是 p-1, q-1 的因素证明同样也成立 ,所以定理中 g 未必需要是最大公因数,是公因数就行了。否则 gcd 只有一个,定理里又有 “in particular” 看起来就感到矛盾。

Proposition1:

是质数,令
是一个满足
的整数. 显然
有一个关于 modulo
的 inverse,记作
(mod
). 则
(mod
) 有唯一解
(mod
).

Prove:

  • ,则
    是唯一解,齐活,故 generally,假设
    (mod
    )
  • (mod
    )即存在整数
    ,易验证
    是其一个解

(mod p)

(mod
)

(mod
)

(mod
)

(mod
)
  • 再证唯一性,假设
    均为解,根据上一条,有
    (mod
    )

Remark:如果前提

被省略,则
(mod
) 对某些
有解,即解未必存在,即便存在解,解会存在多个

推广:对于模数不再是质数

的情况下相似,If we know how to factor

Proposition2:

为两个不相等的质数,令
是一个满足
的整数,显然
有一个关于 modulo
的 inverse,记作
(mod
). 则
(mod
) 有唯一解
(mod
)

Prove:类似Proposition1的证明,但将费马小定理改为 Euler's formula,只考虑

的情况,else omitted
  • (mod
    )
    存在整数
    ,
  • 验证
    (mod
    ) 的一个解
    (mod
    )
    (mod
    )
    (mod
    )
    (mod
    )
    (mod
    )
  • 证明 uniqueness ,假设
    是一个解
    (mod
    )
    (mod
    )
    (mod
    )
    (mod
    )

    (第一个
    因为
    ,第三个
    因为开头的欧拉公式)

    since
    是一个解 所以
    (mod
    ) 的每个解都等于
    (mod
    ) ,故唯一性

Remark1:该定理提供一种求解

(mod
) 的算法,即先计算
(mod
) 中的 inverse
,再计算
mod pq

Remark2:通常可以用减小

的方式加快运算速度。
To be more specific,
,求解
(mod
) ,根据欧拉公式
(mod
) ,记
(mod
) ,故使用这个 smaller value of
mod
依旧是
(mod
) 的一个解
  • 虽然
    的值求出来可大可小能变,但取了 modulo 后是 unique 的

背景:RSA公钥密码系统基于 the difficulty of solving equations of the form

(mod
) 其中
均已知,
it is difficult to take e-th roots modulo N

同时也可以看出为什么大质数分解对解答上面的问题很 crucial


3.2 The RSA Public Key Cryptosystem

加密过程如下图:

97f464a687d5e832e45c19c1eaca4c81.png
RSA key creation, encryption, and decryption

N​ 被称为 modulus,e​ 被称为 encryption exponent,d​ 被称为 decryption exponent

为什么 RSA 是安全的

  • set up:
    为大质数,令
    为整数
  • Problem:求解
    (mod
    )
  • Easy:Bob 知道
    的值,故能轻松求解(参见上一节 Proposition 2)
  • Hard:Eve不知道
    的值,故不能轻易求解
  • Dichotomy: Solving
    (mod
    ) 对一些知道某个 trapdoor information 的人易解,但对其他所有人难解

Remark1:如果

比较小则加密比较 efficient;如果
比较小则解密比较 efficient。值得注意的是
不能同时较小,因为这两个互为逆,一个大另一个肯定小。(严格来说可以实现
,但显然这么做非常愚蠢)

Remark2:既然

需要和
互质,
可取的最小值为3,taking
is as secure as taking a larger value of
但对此有一些怀疑,既想要高效加密,又担心
太小的人通常会采用
  • 参见:
D. Boneh, R. Venkatesan, Breaking RSA may not be equivalent to factoring (extended abstract), in Advances in Cryptology—EUROCRYPT ’98, Espoo. Volume 1403 of Lecture Notes in Computer Science (Springer, Berlin, 1998), pp. 59–71

Remark3:Bob 的另一种选择是采用较小的

和较大的
,但这样可能导致安全漏洞。More precisely, if d is smaller than N1/4, then the theory of continued fractions allows Eve to break RSA.
  • 参见:
J. Blo ̈mer, A. May, Low secret exponent RSA revisited, in Cryptography and Lattices, Providence, 2001. Volume 2146 of Lecture Notes in Computer Science (Springer, Berlin, 2001), pp. 4–19
D. Boneh, G. Durfee, Cryptanalysis of RSA with private key d less than
, in Advances in Cryptology—EUROCRYPT ’99, Prague. Volume 1592 of Lec- ture Notes in Computer Science (Springer, Berlin, 1999), pp. 1–11

D. Boneh, G. Durfee, Cryptanalysis of RSA with private key d less than
IEEE Trans. Inf. Theory 46(4), 1339–1349 (2000)

M. J. Wiener, Cryptanalysis of short RSA secret exponents. IEEE Trans. Inf. Theory 36(3), 553–558 (1990)

Remark4:从上一节的 Proposition2 看出,若 Eve 知道

的值,则他可以求解
(mod
) ,Bob 的公钥已经包括
,若 Eve 能得知
的值,则可轻松求出
,因为
。此外,若同时了解
的值还能分别求出
的值(利用韦达定理构造二次式)

Remark5:已知 “it is no easier for Eve to determine

than it is for her to factor
”。但这并不说明解密一定需要 factor
。真正重要的是解
(mod
) ,可能存在未知而有效的算法在不知道
的前提下求解。这种算法是否存在暂时未知,但有一个 suggestion that computing roots modulo
may be easier than factoring
  • 参见:
D. Boneh, R. Venkatesan, Breaking RSA may not be equivalent to factoring (extended abstract), in Advances in Cryptology—EUROCRYPT ’98, Espoo. Volume 1403 of Lecture Notes in Computer Science (Springer, Berlin, 1998), pp. 59–71

注:上面所有 Remark 里面的参见仅是教材中参考文献的列举,笔者水平所限其实并没有读过


3.3 Implementation and Security Issues

中间人攻击 aka. MITM

前提:Eve 不仅是一个窃听者,同时对 Alice 和 Bob 的通信网络有完全控制权

848702277f4b008c482b2403ed3eb843.png
MITM 对大部分公钥密码系统有效,此处以 DH 交换为例

假设 Alice 和 Bob 利用 DH 交换后的

作为对称加密的密钥,则 Alice 用
加密原文
,Eve 拦截密文并用
解密,阅读后再用
重新加密发送给 Bob ,不知情的 Bob 用
解密,he is unaware that there is a breach in security
  • 注意此攻击的隐秘性,在 MITM 中 Eve 无法解决 hard mathematical problems ,但却能够解密密文,而通信双方无法意识到这一点。

RSA

如果 Eve 能说服 Alice 用她的私钥解密随机的 RSA 信息,or Eve has access to an RSA oracle ,则:

  1. 假设 Eve 已截获 Bob 的密文
    ,他可以选择随机数
    ,将信息
    (mod
    ) 发送给 Alice
  2. Alice 解密
    并返回结果
    (mod
    )
  3. 既然
    是 Eve 本人定的,他自然能读取原文

这个例子中值得注意的有:

  • 加密系统中的困难数学问题被绕过,根本未发挥任何作用
  • 既然 Eve 掩盖了 Bob 的原密文,Alice 也无法发现这次攻击

那么,没有这个 oracle 的情况下要怎么中间人攻击 RSA 密码系统呢 ?

答案是在双方公钥传输时发动

如果对于一个给定的 modulus

Alice 发布了两个 encryption exponent ,那这个加密加了和没加一样。
  • 假设 Eve 截获两个密文
    (mod
    ) 和
    (mod
    )
  • 则取一组
    满足方程
  • 计算
    (mod
    )
  • 如果
    ,那么原文就是裸奔的

推广:if several exponents

,can recover if

对于一个 modulus 只应该使用最多一个 encryption exponent


3.4 Primality Testing

更新中......

相关文章:

  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • java怎么实现自动退出功能_教你用python操作Excel 轻松实现自动读写功能
  • python 语义网络_Python好书从入门到进阶整理好送你
  • cloud压缩怎么彻底删除_财务软件T+Cloud操作指南
  • python字符串反码_python中的进制转换和原码,反码,补码
  • python假设检验和区间估计_推断统计分析(三):python实现假设检验
  • c++ char 转int_程序员每日一题-int和char还可以一起玩耍
  • java double转int_Java中的换形师-数据类型转换
  • matplotlib 标签_[Matplotlib官方教程]使用指南 0.7
  • python微信群发消息_Python3 itchat实现微信定时发送群消息的实例代码
  • easyconnect无法在mac上使用_如何在Mac上使用pyenv运行Python的多个版本
  • isdebugenabled_日志框架中为什么有isDebugEnabled方法?
  • python hashlib_python import hashlib出现问题
  • opencvpython中文文档_OpenCV中文官方文档
  • dataframe添加一列并迭代赋值_Java 泛型和迭代器详解
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • Angular Elements 及其运作原理
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • EventListener原理
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • storm drpc实例
  • webpack项目中使用grunt监听文件变动自动打包编译
  • Windows Containers 大冒险: 容器网络
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 猴子数据域名防封接口降低小说被封的风险
  • 简析gRPC client 连接管理
  • 使用 QuickBI 搭建酷炫可视化分析
  • 使用agvtool更改app version/build
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • PostgreSQL之连接数修改
  • ​Linux·i2c驱动架构​
  • ​卜东波研究员:高观点下的少儿计算思维
  • ​渐进式Web应用PWA的未来
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • ###STL(标准模板库)
  • #1015 : KMP算法
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (算法)前K大的和
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .Net 8.0 新的变化
  • .NET MVC 验证码
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .net 调用php,php 调用.net com组件 --
  • .NET 设计模式初探
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .NET开发者必备的11款免费工具
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理