【虚空】【ISCTF2024】ISCTF2024 Crypto 全wp

免责声明:下列wp除我本人出的题外,其他题目wp不具备官方性质,仅作为参考。

然后我简单说两句啊()
今年的密码,我个人感觉不算很难,都是老套路套到了新题上,很多都是常见的解题思路。同时也有一些创新,但是也没有跳出固定的框架(毕竟密码学又不是misc,谁天天脑洞(乐))
总之,这次我还是尽力给大家带来全套证明了。希望大家看的愉快。

蓝鲨的费马

在这里插入图片描述

题目:

import libnum
import gmpy2
from Crypto.Util.number import *

flag=b'ISCTF{********}'
m=bytes_to_long(flag)

p=libnum.generate_prime(1024)
q=libnum.generate_prime(1024)
n=p*q
e=0x10001
c=pow(m,e,n)
d=inverse(e,(p-1)*(q-1))
leak = (d+(pow(p,q,n)+pow(q,p,n)))%n

print("c=", c)
print("n=", n)
print("leak=", leak)

"""
c= 8989289659072309605793417141528767265266446236550650613514493589798432446586991233583435051268377555448062724563967695425657559568596372723980081067589103919296476501677424322525079257328042851349095575718347302884996529329066703597604694781627113384086536158793653551546025090807063130353950841148535682974762381044510423210397947080397718080033363000599995100765708244828566873128882878164321817156170983773105693537799111546309755235573342169431295776881832991533489235535981382958295960435126843833532716436804949502318851112378495533302256759494573250596802016112398817816155228378089079806308296705261876583997
n= 13424018200035368603483071894166480724482952594135293395398366121467209427078817227870501294732149372214083432516059795712917132804111155585926502759533393295089100965059106772393520277313184519450478832376508528256865861027444446718552169503579478134286009893965458507369983396982525906466073384013443851551139147777507283791250268462136554061959016630318688169168797939873600493494258467352326974238472394214986505312411729432927489878418792288365594455065912126527908319239444514857325441614280498882524432151918146061570116187524918358453036228204087993064505391742062288050068745930452767100091519798860487150247
leak= 9192002086528025412361053058922669469031188193149143635074798633855112230489479254740324032262690315813650428270911079121913869290893574897752990491429582640499542165616254566396564016734157323265631446079744216458719690853526969359930225042993006404843355356540487296896949431969541367144841985153231095140361069256753593550199420993461786814074270171257117410848796614931926182811404655619662690700351986753661502438299236428991412206196135090756862851230228396476709412020941670878645924203989895008014836619321109848938770269989596541278600166088022166386213646074764712810133558692545401032391239330088256431881
"""

根据费马小定理,有

q = p q ( m o d n ) q = p^q \pmod{n} q=pq(modn)
p = q p ( m o d n ) p = q^p \pmod{n} p=qp(modn)

然后我们化简式子。
l e a k = ( d + p + q ) ( m o d n ) leak = (d + p + q) \pmod{n} leak=(d+p+q)(modn)
l e a k = d + p + q + k n , k ∈ Z leak= d + p+q + kn, k \in Z leak=d+p+q+kn,kZ
e ∗ l e a k = e d + e ( p + q ) + k e n , k ∈ Z e*leak = ed + e(p+q) + ken,k \in Z eleak=ed+e(p+q)+ken,kZ
k 1 = e ∗ k , k 1 ∈ Z k_1 = e*k,k_1 \in Z k1=ek,k1Z
e ∗ l e a k = e d + e ( p + q ) + k 1 n , k 1 ∈ Z e*leak = ed + e(p+q) + k_1n,k_1 \in Z eleak=ed+e(p+q)+k1n,k1Z
因为 e d ≡ 1 ( m o d φ ( n ) ) ed \equiv 1 \pmod{\varphi(n)} ed1(modφ(n))
e d = 1 + t ∗ φ ( n ) , t ∈ Z ed = 1+t*\varphi(n),t \in Z ed=1+tφ(n),tZ
代入上式
e ∗ l e a k = 1 + t φ ( n ) + e ( p + q ) + k 1 n , k 1 ∈ Z , t ∈ Z e*leak = 1+t\varphi(n) + e(p+q) + k_1n,k_1 \in Z,t \in Z eleak=1+(n)+e(p+q)+k1n,k1Z,tZ
φ ( n ) = ( p − 1 ) ( q − 1 ) = p q − ( p + q ) + 1 = n − ( p + q ) + 1 \varphi(n) = (p-1)(q-1) = pq-(p+q)+1 = n-(p+q)+1 φ(n)=(p1)(q1)=pq(p+q)+1=n(p+q)+1
代入
e ∗ l e a k = 1 + t ( n − ( p + q ) + 1 ) + e ( p + q ) + k 1 n , k 1 ∈ Z , t ∈ Z e*leak = 1+t(n-(p+q)+1) + e(p+q) + k_1n,k_1 \in Z,t \in Z eleak=1+t(n(p+q)+1)+e(p+q)+k1n,k1Z,tZ
整理化简
e ∗ l e a k = 1 + t n − t ( p + q ) + t + e ( p + q ) + k 1 n , k 1 ∈ Z , t ∈ Z e*leak = 1+tn -t(p+q)+t+ e(p+q) + k_1n,k_1 \in Z,t \in Z eleak=1+tnt(p+q)+t+e(p+q)+k1n,k1Z,tZ
e ∗ l e a k = 1 + t + ( e − t ) ( p + q ) + ( k 1 − t ) n , k 1 ∈ Z , t ∈ Z e*leak = 1+t+ (e-t)(p+q) + (k_1-t)n,k_1 \in Z,t \in Z eleak=1+t+(et)(p+q)+(k1t)n,k1Z,tZ
等式两边对n取模
e ∗ l e a k ≡ ( e − t ) ( p + q ) + t + 1 ( m o d n ) , t ∈ Z e*leak \equiv (e-t)(p+q)+t+1 \pmod{n},t \in Z eleak(et)(p+q)+t+1(modn),tZ
l ≡ e ∗ l e a k ( m o d n ) l \equiv e*leak \pmod{n} leleak(modn)
l − t − 1 ≡ ( e − t ) ( p + q ) ( m o d n ) , t ∈ Z l-t-1 \equiv (e-t)(p+q) \pmod{n},t \in Z lt1(et)(p+q)(modn),tZ
分析
p+q大于0
l − t − 1 l-t-1 lt1的正负号仅由 e − t e-t et决定
t > e t >e t>e,则 t > l − 1 t>l-1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值