基于格理论来破解RSA公钥密码(3)【完结篇】

Lattices and Cryptography(格理论与密码学) 本文是阅读 Introduction of Mathematical Cryptography Second Edition 一书中关于格密码一章的Review,只讲述简单的总结,具体内容请翻阅该书的第七章(下文中大部分图片均来自此书) 同余密码体系与背包密码 同余(Congruence)密码 可以看做一个低维的格密码,破解该种密码可以相当于找一个向量,这个向量就是私钥 将上面这个问题用向量的形... 阅读详情

目录

一. 介绍

二. RSA明文求解算法

2.1 定理解释

2.2 定理证明

三. 分析

四. 推荐文献

五. 小结


一. 介绍

系列文章:

基于格理论来破解RSA公钥密码(1)-优快云博客

基于格理论来破解RSA公钥密码(2)-优快云博客

在以上文章中,我们证明了一个非常重要的定理,此处我们来简单回顾一下该定理想表达的内容。

令N代表一个整数,f代表“首1”且次数为d的多项式,也就是满足:

f\in Z_N[x]

其中“首1”的含义是最高次数项x^d的系数为1。下标N代表多项式的每个系数均小于N,类似于模N的效果。

如果现在我们想求解一个方程为:

f(x)=0\quad mod\ N

该方程的本质就是求根。本身求一个应该难度不大,但如果需要满足如下两个限制条件的情况下,以上定理告诉我们可以求出对应的整数解x:

x\in Z\quad |x|\leq B

B=N^{1/d}

将以上过程可以形式化表达为一定定理:

此处的定理很类似网络空间安全中的小整数解问题,我们知道一般求小整数都是很难的。但该定理告诉我们可以求,所以也常被用于攻击RSA公钥密码系统。

在以上过程中,整数N是由两个大素数相乘得到(RSA公钥密码系统的公钥来源),我们是不知道这两个大素数具体等于多少。如果可以找出这两个大素数,那么RSA密码系统则可以直接被攻破,也就是可以利用欧拉定理直接求出私钥,反应在此处的问题上,当然也就会存在更有效的寻找根的算法。

以上问题的本质则是在模数情况下,求根的问题。

二. RSA明文求解算法

2.1 定理解释

假定有k个两个互素的整数,也就是我们把明文传递给了k个不同的人,如下:

N_1,\cdots,N_k

其中必定存在一个最小的N,我们将其记为:

N_{min}=min_iN_i

N相当于RSA中的公钥,所以都是公开的。

将RSA的加密过程抽象成多项式的运算过程,那么也就是有k个多项式,这些多项式中最大的次数设定为d,如下:

g_i\in Z_{N_i}[x]

很明显明文M的大小肯定小于所有N的值,也就是可得:

M<N_{min}

正如刚才所提到的,把RSA的加密过程看成多项式的运算过程,那么也就有k个密文,如下:

g_i(M)=C_i\quad i=1,\cdots,k

我们要求密文的个数要满足:

k\geq d

综合以上在给定如下信息的情况:

(N_i,g_i,C_i)_{i=1}^k

我们可以直接攻破RSA密码系统,并获得明文M

将以上过程形式化表达为一个定理,如下:

2.2 定理证明

原多项式为g,所求的值为C,我们将其换个新的多项式,如下:

h_i=g_i-C_i\quad 1\leq i\leq k

那么原来的问题,则变为:

h_i(M)=0\quad mod\ N_i\quad i=1,\cdots,k

不失一般性,也可以假设此处的多项式hi也是“首1”(monic)的多项式。那如果不是怎么办?

那就求mod Ni下的逆,则可以把其系数转变为1.那如果该数没有模逆,怎么办?

没有模逆说明两者不互素,这不就找到形成N的素数了吗!RSA系统直接被攻破。

同样,假设所有的多项式hi的次数均为d,当然如果不够d的话,两边同时乘以x相应的次数即可,该过程不改变多项式的根。

接下来,借助中国剩余定理(Chinese Remainder Theorem)讲这些多项式hi合并成一个多项式h,我们可以将其计算为:

简单分析下此处的中国剩余定理:

以上等式的来源于Ti到底应该怎么选取,我们的原则是当下标相等时,模的结果为1,也就是:

T_i\quad mod\ N_i=1

当下标不等时,模完的结果为0,也就是:

i\neq j\quad T_i\quad mod\ N_j=0

借助中国剩余定理的性质,我们总结出最终的多项式h(x)需要满足三个性质:

(1)次数

h(x)的次数与原始的多项式保持一致,均为d

(2)首1

h(x)的最高次数x^d的系数为1,模任何的Ni均为1

(3)根不变

很明显最终的h(M)依旧为0,模最大的相乘结果的N

综上我们可以利用已有的性质证明:

第一个不等式:明文M需要满足的基本条件

第二个不等式:最小的N满足的结论

第三个不等式:来源k>d可得

如果明文M满足如上条件,那么我们可以直接利用已有的求根定理得出最终的结果M。

定理证明完毕。

三. 分析

在数学领域有一个问题,如果我们将自变量的取值限定为:

x\in\lbrace -B,\cdots,0,\cdots,B\rbrace

那么一个多项式的次数为d时,且模N的情况下有多少个根呢?

以上的分析告诉我们,当此处的B限定为:

那么至少可以求出一个根。

当把次数d提高到2d-1时,上限B设定为:

也可以多项式时间内求出一个根x出来。

需要注意的是,本文章分析出的定理所使用B的上限为:

有的时候并不能把所有满足的根全求出来,通常只能求出一部分。比如举一个例子,我们的N可以取:

N=p^2

多项式举一个简单的例子:

f(x)=x^2

那么根据以上的结果,我们求根的范围可以限定成:

那么在这个范围内,该多项式有很多根,其根的个数大约有:

N^\epsilon

这是一个类似指数个数的空间,大概率不能全部求出来。

四. 推荐文献

(1)攻击RSA密码系统的方法合集

Dan Boneh. Twenty years of attacks on the RSA cryptosystem. Notices of the American Mathematical Society (AMS), 46(2):203–213, 1999.
(2)模多项式根的求解分析

Don Coppersmith. Finding small solutions to small degree polynomials. Lecture Notes in Computer Science, 2146:20–31, 2001.
 

五. 小结

RSA编码私钥获取RSA公钥原理解析     本文目的在于在逆向破解过程中遇见一个RSA私钥字符串,以为仅仅含有私钥信息,无法获取公钥进行数据解密。但是经过后面的发现才知道自己理解错误。 先看java层的代码: 可以看出在这里私钥是一种叫PKCS8编码格式的,其实这里带入arg10编码串是能够导出公钥的。 但是刚开始很迷惑,私钥(d,n)对怎么可能能生成公钥(e,n)。为了搞清查看了一下公私钥的生成方式,网上找到如下步骤: ... 阅读详情

相关推荐

公钥密码体系崩溃风险:Shor算法可在多项式时间内破解RSA、ECC等基于大整数分解和离散对数问题的公钥算法。4099量子位的量子计算机运行Shor算法可在10秒内破解RSA2048

量子计算颠覆密码体系是确定性事件,但工程瓶颈延缓了威胁时间表。主动布局PQC迁移是平衡安全与成本的核心路径。当前量子位规模距破解RSA2048差2个数量级。注:逻辑量子位需纠错,实际需物理量子位约。数据来源:ETSI/NIST安全强度标准。

百态·数智思维 | 聚焦大数据、量化与未来AI 1057

【密码学】RSA破解的部分方法(PYTHON实现)

源自于密码学的一次大作业~ sbcsdn又锁vip了,开放了

Mr_Fmnwon的博客 7331

格密码入门

文章目录前言Lattice CryptographyCongruential Public Key SystemSubset-sum problems and knapsack cryptosystemsVector SpaceLattice:Definition and PropertyShort vectors in latticesBabai’s AlgorithmCryptosystems based on hard lattice problemsThe GGH public key crypto

fa1c4的blog 2756

渗透测试之突破RSA加密进行暴力破解

渗透测试过程中,在遇到登陆界面的时候,第一想到的就是爆破。如果系统在传输数据时没有任何加密,没有使用验证码时,还有很大机会爆破成功呢。但是如果使用了验证码切用户名或密码被js加密时,该如何爆破呢?通常使用的方法:简单的验证码,可以通过python库进行识别;加密的数据,往往会通过审计加密方法,然后进行重新计算后,再进行爆破。个人项目经历,在某国企单位驻场渗透时,经常发现以下情况的站点:1、 登陆界面password数据通过js加密;2、 使用验证码,但大多数系统的验证码可以重复利用。

2301_80115097的博客 1142

RSA算法简述

52tangzong b+TR/9sbreGJhbKT5U5rQCTUebfRngB0uhNMnvMClf0f/IpPTsM5+7zWJyT9drzVKzV4oR0J8lyMSWepKvv3BR/3Ab6vC8dmo7NDbzuDtLaDLYhYG+bggQNVvuA5C3TolntxdL4+mGZwfd86WoznJM+Y5TO/0C5MSxvaAMTMZuga7yyBKTH4Wl+7GFHDDZqAXmvPHW/Dz0i45vlToz/+E/RnznY5dBhkw3nnNoNsJIutAUDm4T18J

weixin_57186409的博客 3587万+

❿⁄₃ ⟦ OSCP ⬖ 研记 ⟧ 密码攻击 ➱ 密码破解理论(上)

本文系统阐述了密码破解的核心原理与方法。首先明确了加密(可逆)与哈希(不可逆)的根本区别,指出密码破解本质是离线哈希比对攻击。其次,详细对比了主流破解工具Hashcat(GPU优先,速度快)与John the Ripper(CPU优先,更通用)的差异。关键环节是破解时间计算,其中GPU凭借海量并行核心在破解常见哈希时具有压倒性速度优势。最后,介绍了Hashcat的实战参数(如 -b 基准测试、-m 指定算法)。

“被信息安全硌得牙疼?来这儿,包你嚼得动、咽得香!😋”核心知识掰开嚼碎,攻防大战揭秘如追剧,政策法规解读不瞌睡!每周两顿“安全小灶”,保准有趣有料还不胖!觉得有用?点赞❤️收藏⭐ 鼓励一下呗!+关注😉= 永久VIP席位,速来!!! 1450

RSA加密解密原理

引言:         CTF密码学类题目中,RSA加密可谓是很重要且常见的加密类型,今天就总结下 RSA加密的原理及解密方法。 文章目录RSA算法简介:1、什么是非对称加密算法:2、RSA 加密原理:3、RSA加密算法过程详解:1、找出质数 :2、计算公共模数:3、计算欧拉函数 φ(n):4、计算公钥 e:5、计算私钥 d:6、加密生成密文:7、解密生成明文:4、示例: RSA算法简介: RSA加密算法是一种 非对称加密

未完成的歌~的博客 1万+

OpenSceneGraph编译、安装、开发环境

详细描述WIndows 10下使用Visual Studio 2019编译OpenSceneGraph 3.6.5的操作流程

国产CAx(CAD/CAE/CAM)软件研发 8769

【字符加解密】RSA算法明文字符串加解密【含Matlab源码 3544期】

RSA算法明文字符串加解密 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 1691

语言随机效应模型_线性混合效应模型 VS 方差分析

线性混合效应模型相比方差分析具有很多优点。为了让大家更直观的了解,我们来做一下两者的对比。基于模拟的方法,生成了以下数据dat_sim:这种数据格式是长格式,也就是从实验软件导出来的那种数据格式。这种数据格式可以直接使用线性混合效应模型进行分析。该实验设计是被试内项目间的单因素两水平设计。category是自变量,两个水平分别是outgroup和ingroup,outgroup比ingr...

weixin_31960565的博客 2688

带你了解如何分析Jmeter监听器常用图表并定位瓶颈

1.1 Jmeter监听器常用图表 目录 1.1 Jmeter监听器常用图表 1.1-1 查看结果树 1.1-2 汇总报告 1.1-3 集合报告 1.1-4 综合图 1.1-5 断言结果 1.1-6 图形结果 1.1-7 响应时间图 1.2 Jmeter性能瓶颈定位 1.2-1 性能瓶颈产生的原因 1.2-2 性能瓶颈的解决方法 1.2-3 性能瓶颈如何定位 1.1-1 查看结果树 查看结果树:调试利器。可以查看每个请求具体的详情,方便进行测试的比对。有点类似我...

weixin_49029722的博客 4450

基于格理论来破解RSA公钥密码(2)

但是,我们可以将f乘以某个整数,然后再mod N,此过程相当于对系数进行重组,一共有N个整数可以乘,那么应该会存在至少一种结果符合我们的要求,也就是该多项式的系数都相对较小。这样的话,当我们求出多项式g所有的根的时候,也就可以寻找到满足多项式f的小根。很显然,对这些多项式进行整数倍的组合,在mod N下与原始的多项式f的根是一样的。如果没有模运算的话,我们知道f(x)=0的解一定有d个,那么直接找出所有符合的解,并保留整数解,就可以了。在接下来的讨论中,大家可以把d想象成一个很小的常数,比如像d=3这类。

forest_LL的博客 2062

发那科机器人编程软件fanuc roboguide授权补丁_工业机器人离线编程与应用:ROBOGUIDE V8.3版本的工程文件创建...

欢迎关注我们ROBOGUIDE是发那科机器人公司提供的一个离线编程工具,可模拟现实中的机器人和周边设备的布局,通过虚拟TP示教来模拟机器人的运动轨迹,同时可以验证方案的可行性和准确的周期时间。ROBOGUIDE是一款核心应用软件,具体的还包括搬运、弧焊、喷涂等其他模块。以最新的8.3版本为例进行讲解,对于未注册的版本将有30天的免费使用期限。开始菜单击开始菜单中的HandingPRO启动程序,第一...

weixin_39791446的博客 2922

基于格理论来破解RSA公钥密码(1)

我们生活中常使用的网络浏览器,智能卡片都有RSA公钥密码的影子。从1977年,RSA密码系统提出,五十年来涌现出了大量的攻击算法。Hastad和Coppersmith创新性的用格密码理论来攻击RSA系统,尤其是公开指数较小的时候。实际上,对于低次数的多项式,可以利用LLL算法来找到其小解。这种思想便可以用来攻击RSA系统。由于智能卡片的运算能力有限,电池供能限制等等,如果在这些系统内部部署RSA时,加密过程的运算我们希望越简单越好。比如可以让以上公开的指数r尽可能小一点,比如r=3等等。

forest_LL的博客 2044

DIY必备:如何用N-MOS管搭建低成本DC有刷电机驱动电路(附原理图+避坑指南)

本文详细介绍了如何使用N-MOS管搭建低成本、高可靠性的DC有刷电机驱动电路。针对DIY爱好者,从核心原理、电路设计、元件选型到焊接调试,提供了完整的实战指南,并重点解析了续流二极管选型、栅极驱动设计等关键避坑要点,帮助读者成功驱动电机并确保电路稳定运行。

delta的博客 773

路径规划 | 图解RRT*算法(附ROS C++/Python/Matlab仿真)

RRT*算法针对传统RRT算法进行了渐进最优改进,在添加节点到搜索树的过程中进行重连选择。本文图解RRT*算法原理,并采用ROS C++、Python、Matlab三种语言实现算法,加深理解

FRIGIDWINTER的博客 9401

RSA加密的原理——为什么被公钥加密的可以被私钥解密?

RSA加密的原理——为什么被公钥加密的可以被私钥解密? 目录 一,RSA 数学理论基础 二,RSA实现原理 三,RSA加密的过程 四,参考文献 引言 在密码学最开始,都是使用的普通加密模式 A 用加密规则加密了字符串m 然后发给B B 用A的加密规则来解密,得到原始信息m 在这个过程中A必须把自己的加密规则告诉B,否则B无...

一个想写小说的程序员 4万+

计算机视觉入门:从像素到理解的旅程

计算机视觉入门:从像素到理解的旅程,计算机视觉是人工智能领域的核心方向之一,旨在让计算机具备理解和解释视觉信息的能力。本文以系统化的知识框架,结合 Python 代码与经典案例,带您从像素级操作逐步掌握计算机视觉核心技术。涵盖图像处理、特征工程、传统机器学习到深度学习模型,助您构建从基础到进阶的完整能力体系。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 18万+

格密码学4:基于格上困难问题的密码系统和 GGH 公钥密码系统

《An Introduction to Mathematical Cryptography》格密码学一章学习4:基于格上困难问题的密码系统和 GGH 公钥密码系统

Jason_Cheng667的博客 1544

桌面运维工程师面试题汇总(高频完整版)

岗位,覆盖:电脑硬件、系统安装与故障、网络、办公软件、安全、AD域、打印机、日常排错、服务意识。

老韩的Linux云计算架构师进阶之路 905

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

实现RSA公钥密码设计

前言:   自己动手实现RSA公钥密码,加强理解。 一、实验目的   通过实际编程了解非对称密码算法RSA的加密和解密过程,加深对非对称密码算法的认识。   二、实验原理   对称密码算法要求通信双方通过交换密钥实现使用同一个密钥,这在密钥的管理、发布和安全性方面存在很多问题,而非对称密码算法解决了这个问题。   非对称密码算法是指一个加密系统的加密密钥和解密密钥是不同的,或者说不能用其中一个推导出另一个。在非对称密码算法的两个密钥中,一个是用于加密的密钥,它是可以公开的,称为公钥;另一个是用于

1ance's blog 2077

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

公开密钥加密算法RSA的理论概述

RSA加密算法的最大优点就是不需要对密钥通信进行保密,所需传输的只有公开密钥,这样就省去了一条开销很大的密钥传输信道。其保密性强,密钥管理方便,并且具有数字签名、认证和签别等多种功能,特别适合于现代保密通信的需要。大多数使用公钥密码进行加密和数字签名的产品和标准使用的都是RSA算法。RSA的安全性是基于大数因子分解的困难性。目前一般认为RSA需要1024位以上的字长才有安全保障。由于RSA所采用的模幂运算耗时太多,因此它通常只能用于加密少量数据或者加密密钥。

FPGA/MATLAB学习教程/源码/项目合作开发 4057

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

剑指RSA——量子计算Shor算法对经典密码体制的威胁

RSA 加密算法是目前广泛使用的一种公钥加密系统,由Rivest,Shamir 和 Adleman 于 1978年在美国麻省理工学院研制出来的(RSA是三位设计者的名字首字母的组合),是迄今为止理论上最为成熟和完善的一种公钥密码体制。所谓公钥加密系统,就是可以分为公开的“公钥”和保密的“私钥”。两者在生成时是成对的,公钥加密的信息,只能其对应的私钥才能解密。下文将从RSA加密基础知识、算法原理及加密、解密过程介绍RSA算法。密钥配制过程:首先选择一对不同的大素数p与q,使得N=pq;

weixin_62697873的博客 4885

RSA加密算法及特定条件下的破解

在对称加密算法中,信息的发送方和接收方用同样的密钥对信息进行加密和解密,而如何安全传递key本身成为了一个十分严重的问题,因此产生了公开密钥密码体制。 公开密钥密码体制使用不同的密钥来进行加密和解密,加密密钥公开(公钥),而解密密钥私有(私钥),加密算法和解密算法都是公开的。解密密钥由加密密钥决定,但却无法从加密密钥运算得到。 由于公钥和加密算法的公开,理论上攻击者可以尝试所有可能的原文并对其

6149

从 RSA 公钥体系原理 引出量子计算

RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,使用公钥加密、私钥解密,或者私钥签名、公钥验签。预计算攻击(Precomputation Attack),即预先计算大量大整数的质因数分解并存储,然后在破解 RSA 时直接查询。2048-bit RSA:n 是 2048 位(约 617 位十进制数),p 和 q 各约 1024 位。4096-bit RSA:n 是 4096 位,p 和 q 各约 2048 位。2048-bit RSA(推荐),4096-bit(更高安全需求)。

eloudy的专栏 1094

现代密码学入门:CyberSecurity课程教你理解RSA与公钥加密的核心原理

想要在数字时代保护隐私安全吗?CyberSecurity课程中的现代密码学模块为你揭开RSA公钥加密的神秘面纱!🚀 公钥加密技术是当今互联网安全的基石,从在线支付到即时通讯,无处不在保护着我们的数字生活。本文将带你轻松理解这一复杂概念,掌握RSA算法的核心原理。 ## 为什么需要公钥加密?🔐 在传统的对称加密中,加密和解密使用相同的密钥,就像用同一把钥匙锁门和开门。但问题来了:如何安全地把

gitblog_00426的博客 855
上一篇: 详解一次一密
下一篇: 【格密码基础】基于LWE问题的密码系统
唠嗑!
唠嗑! 优质创作者: 信息安全技术领域 优质创作者: 信息安全技术领域
博客等级 码龄5年 3万+粉丝 169原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唠嗑!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值