CTFlearn: RSA BEGINNER

原題:

RSA BEGINNER

90?points

182?solves

Cryptography

Hard

intelagent

I found this scribbled on a piece of paper. Can you make sense of it? https://mega.nz/#!zD4wDYiC!iLB3pMJElgWZy6Bv97FF8SJz1KEk9lWsgBSw62mtxQg

下載了鏈接中的文件,如下:

e: 3

c:219878849218803628752496734037301843801487889344508611639028

n:245841236512478852752909734912575581815967630033049838269083

很明顯,e是公鑰指數(shù),c是密文,n是大數(shù)

首先我嘗試了用lowe的方法,將密文用3開方,如果不行加上n再開方。但是嘗試了加上很多的n都沒有開方成整數(shù)。

又看到n的數(shù)值不大,應(yīng)該可以找到n的兩個素數(shù)因子p和q。利用因式分解數(shù)據(jù)庫http://factordb.com,發(fā)現(xiàn)n可以分解成兩個素數(shù)。知道了兩個素數(shù)后我們就可以很快地通過公鑰e來得到私鑰了。

python代碼如下:

import gmpy2

e=gmpy2.mpz(3)

c=gmpy2.mpz(219878849218803628752496734037301843801487889344508611639028)

n=gmpy2.mpz(245841236512478852752909734912575581815967630033049838269083)

# 因式分解得到的p和q

p=gmpy2.mpz(590872612825179551336102196593)

q=gmpy2.mpz(416064700201658306196320137931)

phi=gmpy2.mul(p-1,q-1)#計算(p-1)*(q-1)得到phi

d=gmpy2.invert(e,phi)#計算e對于phi的摩反

m=int(gmpy2.powmod(c,d,n))#c的d次方mod n

mt=bytes.fromhex(hex(m)[2:])#將int轉(zhuǎn)換成byte

print(mt)

得到結(jié)果:

b'abctf{rs4_is_aw3s0m3}'

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 學(xué)一點有趣的數(shù)論知識 在探究RSA算法的原理之前,我們先來學(xué)習(xí)一點有趣的數(shù)論知識(數(shù)學(xué)分支之一,主要研究整數(shù)的性質(zhì)...
    24f464006eaf閱讀 2,296評論 0 5
  • 姓名:于川皓 學(xué)號:16140210089 轉(zhuǎn)載自:https://baike.baidu.com/item/RS...
    道無涯_cc76閱讀 2,811評論 0 1
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些閱讀 2,153評論 0 2
  • 1.感情還在,感覺已經(jīng)不在了 過年這段時間沒更新,一打開后臺,發(fā)現(xiàn)大家都在后臺各種吐槽,最多的就是關(guān)于春節(jié)期間的親...
    蘇小鹿lu閱讀 2,381評論 2 25
  • 孩子補(bǔ)完課,想要做的第一件事情是去姥姥家,給姥姥燒一次鍋,吃一塊在姥姥家烤的燒紅薯,我欣然同意了。 孩子從小在鄉(xiāng)下...
    我是慕一閱讀 603評論 0 3

友情鏈接更多精彩內(nèi)容