Simple RSA

這是 ISITDTU 的一道RSA題

題目是這樣的

from Crypto.Util.number import *
import random
flag = 'Hidden'


def egcd(a, b):
    if a == 0:
        return (b, 0, 1)
    else:
        g, y, x = egcd(b % a, a)
        return (g, x - (b // a) * y, y)


def modinv(a, m):
    g, x, y = egcd(a, m)
    if g != 1:
        #raise Exception('modular inverse does not exist')
        print "aaa"
    else:
        return x % m


def next_prime(n):
    num = n + 1
    while True:
        if isPrime(num):
            return num
        num += 1


p = random.randint(1 << 251, 1 << 252)
i = 10
p = next_prime(p)
p1 = next_prime(p*10)
p2 = next_prime(p1*10)
p3 = next_prime(p2*10)


N = p*p1*p2*p3
e = 65537
c = pow(bytes_to_long(flag), e, N)
print c
# 153348390614662968396805701018941225929976855876673665545678808357493865670852637784454103632206407687489178974011663144922612614936251484669376715328818177626125051048699207156003563901638883835345344061093282392322541967439067639713967480376436913225761668591305793224841429397848597912616509823391639856132
print N
# 603040899191765499692105412408128039799635285914243838639458755491385487537245112353139626673905393100145421529413079339538777058510964724244525164265239307111938912323072543529589488452173312928447289267651249034509309453696972053651162310797873759227949341560295688041964008368596191262760564685226946006231

這題思路就很清晰,就是要求信息 m
入手點(diǎn)在 next_prime漠嵌,因?yàn)?next_prime 往往和原數(shù)相差很小弓摘,就出現(xiàn)了漏洞導(dǎo)致N可分解
考慮N的四個(gè)質(zhì)因子,分別表示為

p = p
p1 = p*10+x
p2 = p*100+x*10+y
p3 = p*1000+x*100+y*10+z

所以用 yafu 分解大N凡辱,得 p*p3p1*p2 兩個(gè)因子
兩個(gè)因子相減 得到 p = (t + x*y + 10*x*x) / (z - 100*x)
因?yàn)?xyz 都很小
所以爆破 xyz 可以得到 p

#coding: utf-8

t = -76478092637783866041186253218284943370377825118125630644332110668682405063331370
n = 603040899191765499692105412408128039799635285914243838639458755491385487537245112353139626673905393100145421529413079339538777058510964724244525164265239307111938912323072543529589488452173312928447289267651249034509309453696972053651162310797873759227949341560295688041964008368596191262760564685226946006231

for x in xrange(600):
    print x
    for y in xrange(500):
     for z in xrange(600):
       if z != 100*x:
           p = (t + x*y + 10*x*x) / (z - 100*x)
           if n % p == 0:
               print "p = {}".format(p)

然后可以用 next_prime(p*10) 依次求出 p1, p2, p3
接著求 fn(phi) 和 d侨舆,最后解出 m

ps: 注意不確定 p*p3p1*p2 哪個(gè)大秒紧,所以要小心 t 的正負(fù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市挨下,隨后出現(xiàn)的幾起案子熔恢,更是在濱河造成了極大的恐慌,老刑警劉巖臭笆,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叙淌,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡愁铺,警方通過查閱死者的電腦和手機(jī)鹰霍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茵乱,“玉大人茂洒,你說我怎么就攤上這事∑拷撸” “怎么了督勺?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長斤贰。 經(jīng)常有香客問我智哀,道長,這世上最難降的妖魔是什么荧恍? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任瓷叫,我火速辦了婚禮,結(jié)果婚禮上送巡,老公的妹妹穿的比我還像新娘摹菠。我一直安慰自己,他們只是感情好授艰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布辨嗽。 她就那樣靜靜地躺著,像睡著了一般淮腾。 火紅的嫁衣襯著肌膚如雪糟需。 梳的紋絲不亂的頭發(fā)上屉佳,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音洲押,去河邊找鬼武花。 笑死,一個(gè)胖子當(dāng)著我的面吹牛杈帐,可吹牛的內(nèi)容都是我干的体箕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼挑童,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼累铅!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起站叼,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤娃兽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后尽楔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體投储,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年阔馋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了玛荞。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡呕寝,死狀恐怖勋眯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情下梢,我是刑警寧澤凡恍,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站怔球,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏浮还。R本人自食惡果不足惜竟坛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望钧舌。 院中可真熱鬧担汤,春花似錦、人聲如沸洼冻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽撞牢。三九已至率碾,卻和暖如春叔营,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背所宰。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國打工绒尊, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人仔粥。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓婴谱,卻偏偏與公主長得像,于是被迫代替她去往敵國和親躯泰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子谭羔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354