$\mathcal{Crypto}$ 共模攻击原理实现以及$\mathcal{CRT}$优化
\(\mathcal{共模攻击概述}\)
共模攻击是一种攻击 \(\mathcal{RSA}\) 加密的技术,当两个密文使用相同的 \(\mathcal{RSA}\) 公共模数时,攻击者可以使用中国剩余定理\(\mathcal{(CRT)}\)和最大公因数\(\mathcal{(GCD)}\)算法,推导出明文。这种攻击技术利用的是\(RSA\)加密算法中的数学性质,特别是模运算具有分配律和结合律的属性。共模攻击只需要拥有两个使用相同的公共模数加密的密文就能够推导出明文。因此,RSA算法的安全性在很大程度上依赖于保护其公共模数的机密性。
n:RSA公共模数
e1 & e2:RSA加密密钥指数
c1 & c2:对同一明文加密后得到的两个密文
使用 \(gmpy2.gcdext()\) 函数来计算两个密钥指数\(e1\)和\(e2\)的最大公因数,以及用于计算解密密钥的系数\(s1\)和\(s2\)。这些系数可以通过下面的式子计算得出:
s1 * e1 + s2 * e2 = gcd(e1, e2)
这里的 \(gcdext\) 函数返回三个参数,其中第一个是最大公因数,第二个是 \(s1\) ,第三个是 \(s2\)。
然后,代码计算明文\(m\),通过以下公式来计算:
m = (c1^s1 * c2^s2) mod n
\(\mathcal{CRT优化}\)
可以使用中国剩余定理 \((CRT)\) 来优化这段代码,这样可以更快地计算明文 \(m\) ,从而提高解密的效率。 \(CRT\) 可以利用多个同余方程求解一个线性方程组,这个线性方程组的解就是原来的方程组的解。
假设p和q是n的两个质因数,它们分别满足以下条件:
p ≡ 1 (mod e1)
p ≡ 0 (mod e2)
q ≡ 0 (mod e1)
q ≡ 1 (mod e2)
这里 \(e1\) 和 \(e2\) 分别是RSA加密的两个密钥指数。
我们可以使用 \(CRT\) 求解 \(m\) ,其计算公式如下:
m = (c1 * q * gmpy2.invert(q, p) + c2 * p * gmpy2.invert(p, q)) mod n
在这个公式中,\(invert()\) 函数用于计算模 \(p\) 或 \(q\) 的逆元,即p或q的乘法逆元,其中 \(n = p * q\) 。
下面是优化后的代码:
p = gmpy2.powmod(c1, e1, n)
q = gmpy2.powmod(c2, e2, n)
p1 = gmpy2.invert(q, n)
q1 = gmpy2.invert(p, n)
m = (c1 * q * p1 + c2 * p * q1) % n
随机推荐
- IIS 7.0、IIS 7.5 和 IIS 8.0 中的 HTTP 状态代码
https://support.microsoft.com/zh-cn/help/943891/the-http-status-code-in-iis-7-0--iis-7-5--and-iis-8- ...
- GVINS文章暴力翻译(仅供自学)
https://blog.csdn.net/haner27/article/details/117929327
- cp 备份文件命令
cp -p system.sh ./bak2022/systecm.sh.bak_`date '+%Y%m%d'` (备份system.sh文件后缀以bak_年月日命令)cp -rf old copy ...
- VUE安装环境及项目创建
Vue环境安装配置 安装git工具,便于在wind电脑上操作命令行,自行在网上下载安装,(可以不安装)使用cmd. 安装node,检查node安装是否成功,在git工具中输入node -v(如果成功的 ...
- C#使用JSON相关
一.Json字符串转换为Dictionary /// <summary> /// JSON字符串转为 Dictionary /// </summary> /// <typ ...
- percona mongo热备
https://www.percona.com/doc/percona-server-for-mongodb/LATEST/hot-backup.html#hot-backup Hot Backup ...
- java注解-最通俗易懂的讲解
来源:秒懂,Java 注解 (Annotation)你可以这样学 Annotation 中文译过来就是注解.标释的意思,在 Java 中注解是一个很重要的知识点,但经常还是有点让新手不容易理解. 我个 ...
- Spring Boot 中处理跨域
HTML 5中新增的跨域资源访问(Cross-Origin Resource Sharing)特性可以让我们在开发后端系统的时候决定资源是否允许被跨域访问.所谓跨域指的是域名不同或者端口不同或者协议不 ...
- cadence-ADE反相器仿真
Cadence-ADE仿真 连接电路 鼠标移至schematic绘制区域,单击放置inv i键继续添加gnd, vdc(3.3V), vpulse(0-3.3V,Period 1us,Pulse wi ...
- SQL Network Interfaces, error: 50 - 发生了 Local Database Runtime 错误。无法创建自动实例
1. sqllocaldb delete MSSQLLocalDB 2. sqllocaldb create