首页 > 其他分享 >RSA - leak=d-q

RSA - leak=d-q

时间:2023-09-22 10:36:10浏览次数:34  
标签:phi g1 pmod leak RSA print eq equiv

kotori - RSA - \(d-q\)

推导

\(a ^ {\phi(n)} \equiv 1 \pmod{n}\) (欧拉定理)

\[\begin{aligned} ed & \equiv 1 \pmod{\phi(n)} \\ ed & = 1 + k \times \phi(n) \\ \end{aligned} \]


\[\begin{aligned} m ^ {e(d - q)} & \equiv m ^ {ed - eq} \pmod{n} \\ & \equiv m ^ {1 + k \times \phi(n) - eq} \pmod{n} \\ & \equiv m ^ {1 - eq} \pmod{n} \\ & \equiv m \times m ^ {-eq} \pmod{n} \\ & \equiv m \times (m ^ {-e}) \pmod{q} \\ \end{aligned} \]


上式最后一步转换 \(\pmod{q}\) 的过程

\[\begin{align} a ^ {\phi(p)} & \equiv 1 \pmod{p} \\ \because \phi(p) & = p - 1 \quad \text{欧拉函数} \\ \therefore a ^ {p - 1} & \equiv 1 \pmod{p} \\ \therefore a ^ {p} / a & \equiv 1 \pmod{p} \\ \therefore a ^ {p} / a * a & \equiv 1 * a \pmod{p} \\ \therefore a ^ p & \equiv a \pmod{p} \quad \text{费马小定理} \\ \text{把} m ^ {-e} \text{代入} a \\ m ^ {-ep} & \equiv m ^ {-e} \pmod{p} \\ \end{align} \]

from Crypto.Util.number import *

print('[+] Enc')
e = 0x10001
p = getPrime(1024)
q = getPrime(1024)
n = p * q
phi = (p - 1) * (q - 1)
d = inverse(e, phi)
print(f'{d.bit_length() = }')
m = bytes_to_long(b'flag{this_is_a_flag}')
print(f'{m.bit_length() = }')
c = pow(m, e, n)
d_sub_q = d - q
print(f'{d_sub_q = }')
print(f'{d_sub_q.bit_length() = }')
print(f'{c = }')
print(f'{n = }')

print('[+] Dec')
g1 = 2 * pow(2, -e, n) - pow(2, e * (d_sub_q), n) # 用未知数推导,计算时带入小值方便计算
print(f'{g1 = }')
def gcd(a, b):
    while b:
        a, b = b, a % b
    return a
g1_n_gcd = gcd(g1, n)
p = g1_n_gcd
q = n // p
phi = (p - 1) * (q - 1)
d = inverse(e, phi)
m = pow(c, d, n)
print(f'{long_to_bytes(m) = }')

标签:phi,g1,pmod,leak,RSA,print,eq,equiv
From: https://www.cnblogs.com/ChmG/p/17721711.html

相关文章

  • The 2nd Universal Cup. Stage 2: SPb
    链接:https://contest.ucup.ac/contest/1356A.MixedMessages#include"bits/stdc++.h"usingnamespacestd;usingi64=longlong;intmain(){ios::sync_with_stdio(false);cin.tie(nullptr);intn;strings;cin>>n......
  • C#实现RSA加密与解密、签名与认证
    https://www.cnblogs.com/itjeff/p/8953308.html一、RSA简介RSA公钥加密算法是1977年由RonRivest、AdiShamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为......
  • java RSA 私钥解密、公钥解密
    importorg.apache.commons.codec.binary.Base64;importsun.security.rsa.RSAPrivateCrtKeyImpl;importorg.bouncycastle.util.encoders.Hex;importjavax.crypto.Cipher;importjava.io.ByteArrayOutputStream;importjava.security.Key;importjava.security.KeyFactory......
  • c# mvc+RSA 加密
    密钥生成:http://web.chacuo.net/netrsakeypair生成一套密钥 前端引用 <scriptsrc="https://cdn.bootcdn.net/ajax/libs/jsencrypt/3.3.2/jsencrypt.min.js"></script>functionEncryptLogin(){varpublicKey="";varencrypt......
  • Java安全架构____RSA加密配置第三方加密库问题_javax.crypto.BadPaddingException: De
    刚要写一个JCE组件是未使用第三方加密库时bug如下javax.crypto.BadPaddingException:Decryptionerroratsun.security.rsa.RSAPadding.unpadV15(UnknownSource)atsun.security.rsa.RSAPadding.unpad(UnknownSource)atcom.sun.crypto.provider.RSACipher.doFinal(RSACipher.j......
  • RSA加密 too much data for RSA block
    场景:RSA加密//RSA加密 这样处理byte[]bytes=ci.doFinal(data.getBytes(StandardCharsets.UTF_8));returnBase64.getEncoder().encodeToString(bytes);//解密时这样处理byte[]bytes=ci.doFinal(Base64.getDecoder().decode(base64Data));returnnewString(bytes);......
  • 二叉树 遍历 hdu-1710-Binary Tree Traversals
    给出二叉树的前序遍历和中序遍历,求后序遍历。。 算法:由前序遍历的第一个元素可确定左、右子树的根节点,参照中序遍历又可进一步确定子树的左、右子树元素。如此递归地参照两个遍历序列,最终构造出二叉树。 由前序和中序结果求后序遍历结果树的遍历: 给你一棵树的先......
  • Paper Reading: Hashing-Based Undersampling Ensemble for Imbalanced Pattern Class
    目录研究动机文章贡献本文方法整体流程基于哈希的子空间划分方法基于距离的样本选择实验结果数据集和实验设置不同子空间划分方法的影响不同加权方案的抽样与其他方法比较优点和创新点PaperReading是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限,可能有理解不到......
  • Crypto++库实现AES和RSA加密解密
    本文介绍使用Crypto++进行AES加密和RSA加密Crypto++库在VS中配置方法Crypto++库下载地址:https://www.cryptopp.com/,目前已经更新到8.1版本。本文使用的是8.1版本的Crypto++。下载压缩包后解压,然后用vs中编译cryptopp。生成debug和Realease版本的cryptlib.lib静态库。在使用时......
  • PGP:一种基于RSA公钥加密体系的邮件加密软件
    PGP(PrettyGoodPrivacy)是一种基于RSA公钥加密体系的邮件加密软件。它可以让您对邮件进行加密,以防止非授权者阅读。PGP还能对邮件加上数字签名,使收信人可以确认邮件的发送者,并能确信邮件没有被篡改。除此之外,PGP还可以用来加密文件,以及代替UUencode生成RADIX64格式的编码文件等。P......