RSA4(中国剩余定理)

题目

给出3组n和c

N = 331310324212000030020214312244232222400142410423413104441140203003243002104333214202031202212403400220031202142322434104143104244241214204444443323000244130122022422310201104411044030113302323014101331214303223312402430402404413033243132101010422240133122211400434023222214231402403403200012221023341333340042343122302113410210110221233241303024431330001303404020104442443120130000334110042432010203401440404010003442001223042211442001413004
c = 310020004234033304244200421414413320341301002123030311202340222410301423440312412440240244110200112141140201224032402232131204213012303204422003300004011434102141321223311243242010014140422411342304322201241112402132203101131221223004022003120002110230023341143201404311340311134230140231412201333333142402423134333211302102413111111424430032440123340034044314223400401224111323000242234420441240411021023100222003123214343030122032301042243N = 302240000040421410144422133334143140011011044322223144412002220243001141141114123223331331304421113021231204322233120121444434210041232214144413244434424302311222143224402302432102242132244032010020113224011121043232143221203424243134044314022212024343100042342002432331144300214212414033414120004344211330224020301223033334324244031204240122301242232011303211220044222411134403012132420311110302442344021122101224411230002203344140143044114
c = 112200203404013430330214124004404423210041321043000303233141423344144222343401042200334033203124030011440014210112103234440312134032123400444344144233020130110134042102220302002413321102022414130443041144240310121020100310104334204234412411424420321211112232031121330310333414423433343322024400121200333330432223421433344122023012440013041401423202210124024431040013414313121123433424113113414422043330422002314144111134142044333404112240344N = 332200324410041111434222123043121331442103233332422341041340412034230003314420311333101344231212130200312041044324431141033004333110021013020140020011222012300020041342040004002220210223122111314112124333211132230332124022423141214031303144444134403024420111423244424030030003340213032121303213343020401304243330001314023030121034113334404440421242240113103203013341231330004332040302440011324004130324034323430143102401440130242321424020323
c = 10013444120141130322433204124002242224332334011124210012440241402342100410331131441303242011002101323040403311120421304422222200324402244243322422444414043342130111111330022213203030324422101133032212042042243101434342203204121042113212104212423330331134311311114143200011240002111312122234340003403312040401043021433112031334324322123304112340014030132021432101130211241134422413442312013042141212003102211300321404043012124332013240431242

解题思路

根据加密公式,可以构造出同余方程组

me = c1 (mod n1)

me = c2 (mod n2)

me = c3 (mod n3)

而解这样的同余方程组就要用到中国剩余定理

中国剩余定理

下面给出证明:

分析一下这样构造的解x中每一项的系数

Mi的因数中包含除了mi 其他所有模数,因此对其他所有模数取模都为0

而Mi-1是Mi(mod mi)的逆元,因此MiMi-1 = 1 (mod mi),从而有aiMiMi-1 = ai (mod mi)

所以,对所有的i,x = ai (mod mi)都成立,x是该方程组的解,证明完毕

那么具体思路如下:

  1. 根据中国剩余定理求解me
  2. 题目没有给出加密指数e,但是在这种题型中e一般都比较小,我们直接遍历求解

但是题目还有一个坑,就是所给的n和c都是5进制数,不仔细观察可能会漏掉这一点

附上代码:

import gmpy2
import  binascii#利用中国剩余定理求解同余方程,aList:余数,mList:模数
def CRT(aList, mList):M = 1for i in mList:M = M * i   #计算M = ∏ mi#print(M)x = 0for i in range(len(mList)):Mi = M // mList[i]   #计算MiMi_inverse = gmpy2.invert(Mi, mList[i]) #计算Mi的逆元x += aList[i] * Mi * Mi_inverse #构造x各项x = x % Mreturn xif __name__ == "__main__":#========== n c ==========n1 = "331310324212000030020214312244232222400142410423413104441140203003243002104333214202031202212403400220031202142322434104143104244241214204444443323000244130122022422310201104411044030113302323014101331214303223312402430402404413033243132101010422240133122211400434023222214231402403403200012221023341333340042343122302113410210110221233241303024431330001303404020104442443120130000334110042432010203401440404010003442001223042211442001413004"c1 = "310020004234033304244200421414413320341301002123030311202340222410301423440312412440240244110200112141140201224032402232131204213012303204422003300004011434102141321223311243242010014140422411342304322201241112402132203101131221223004022003120002110230023341143201404311340311134230140231412201333333142402423134333211302102413111111424430032440123340034044314223400401224111323000242234420441240411021023100222003123214343030122032301042243"n2 = "302240000040421410144422133334143140011011044322223144412002220243001141141114123223331331304421113021231204322233120121444434210041232214144413244434424302311222143224402302432102242132244032010020113224011121043232143221203424243134044314022212024343100042342002432331144300214212414033414120004344211330224020301223033334324244031204240122301242232011303211220044222411134403012132420311110302442344021122101224411230002203344140143044114"c2 = "112200203404013430330214124004404423210041321043000303233141423344144222343401042200334033203124030011440014210112103234440312134032123400444344144233020130110134042102220302002413321102022414130443041144240310121020100310104334204234412411424420321211112232031121330310333414423433343322024400121200333330432223421433344122023012440013041401423202210124024431040013414313121123433424113113414422043330422002314144111134142044333404112240344"n3 = "332200324410041111434222123043121331442103233332422341041340412034230003314420311333101344231212130200312041044324431141033004333110021013020140020011222012300020041342040004002220210223122111314112124333211132230332124022423141214031303144444134403024420111423244424030030003340213032121303213343020401304243330001314023030121034113334404440421242240113103203013341231330004332040302440011324004130324034323430143102401440130242321424020323"c3 = "10013444120141130322433204124002242224332334011124210012440241402342100410331131441303242011002101323040403311120421304422222200324402244243322422444414043342130111111330022213203030324422101133032212042042243101434342203204121042113212104212423330331134311311114143200011240002111312122234340003403312040401043021433112031334324322123304112340014030132021432101130211241134422413442312013042141212003102211300321404043012124332013240431242"cList = [int(c1,5), int(c2,5), int(c3,5)]nList = [int(n1,5), int(n2,5), int(n3,5)]m_e = CRT(cList, nList) #计算m^efor e in range(1, 10):  #遍历e求解m, f = gmpy2.iroot(m_e, e) #m_e开e次根print("加密指数e = %d:"%e)m = hex(m)[2:]if len(m)%2 == 1:m = m + '0' #binascii.unhexlify()参数长度必须为偶数,因此做一下处理flag = binascii.unhexlify(m)print(flag)

运行后发现,当e = 3时get flag!

noxCTF{D4mn_y0u_h4s74d_wh47_4_b100dy_b4s74rd!}

flag

flag{D4mn_y0u_h4s74d_wh47_4_b100dy_b4s74rd!}

BUUCTF RSA4(中国剩余定理)相关推荐

  1. 中国剩余定理(孙子定理)的证明和c++求解

    <孙子算经>里面的"物不知数"说的是这样的一个题目:一堆东西不知道具体数目,3个一数剩2个,5个一数剩3个,7个一数剩2个,问一共有多少个. 书里面给了计算过程及答案: ...

  2. 解题报告(十三)中国剩余定理(ACM / OI)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  3. 中国剩余定理(Chinese Remainder Theorem)

    中国剩余定理 民间传说着一则故事--"韩信点兵". 秦朝末年,楚汉相争.一次,韩信将1500名将士与楚王大将李锋交战.苦战一场,楚军不敌,败退回营,汉军也死伤四五百人,于是韩信整顿 ...

  4. 【中国剩余定理】POJ 1006 HDU 1370 Biorhythms

    题目链接: http://poj.org/problem?id=1006 http://acm.hdu.edu.cn/showproblem.php?pid=1370 题目大意: (X+d)%23=a ...

  5. 中国剩余定理matlab非互质,中国剩余定理模板(互质版和非互质版)

    互质版: #include #include #include using namespace std; typedef __int64 int64; int64 a[15],b[15]; int64 ...

  6. POJ2891 Strange Way to Express Integers【扩展中国剩余定理】

    题目大意 就是模板...没啥好说的 思路 因为模数不互质,所以直接中国剩余定理肯定是不对的 然后就考虑怎么合并两个同余方程 \(ans = a_1 + x_1 * m_1 = a_2 + x_2 * ...

  7. 韩信点兵-中国剩余定理(练习)

    http://acm.nyist.net/JudgeOnline/problem.php?pid=34提交地址 韩信点兵-中国剩余定理. 题目能够用枚举非常easy的做出来,在这里写是为了运用一下刚刚 ...

  8. hdu 3579(中国剩余定理非互质)

    解题思路:这道题目因为不一定是互质的,所以直接套用中国剩余定理肯定是错的,,这里采用的是非互质的方法...之前的博客上面有详细的证明过程和算法,这里就不罗嗦了..但是这道题目在输出的时候有特定的要求, ...

  9. hdu 1573(中国剩余定理非互质情况)

    解题思路:这道题目有可能a[i],两两不互质,所以直接用中国剩余定理肯定是不对的..这里考虑非互质的情况 问题描述:给出bi,ni的值,且n1, n2, n3,-, ni两两之间不一定互质,求Res的 ...

最新文章

  1. Netty - I/O模型之BIO
  2. JQUERY实现放大镜
  3. 计算机函数图象,信息技术应用用计算机绘制函数图象
  4. 【转来警醒自己】最近的一些面试感悟
  5. leetcode132. 分割回文串 II
  6. python时间库_Python处理日期时间的标准库:time和datetime
  7. rc.local介绍(linux启动系列之一)
  8. 哈工大计算机考研 跨考,09哈工大计算机考研复试之我的经历_跨考网
  9. HttpComponents组件探究 - HttpClient篇
  10. Image.FrameDimensionsList 属性-----具体使用案例
  11. mysql 覆盖索引_MySQL 覆盖索引
  12. 数据结构:图的基本概念
  13. Photoshop DPI缩放比例问题
  14. 计算机类毕业设计评语导师评语,本科生毕业设计导师评语参考
  15. SpringCloudAlibaba之Nacos
  16. Pr:导出设置之编码设置
  17. 【PYNQ】PYNQ的视频资料介绍
  18. 新人学Kungfu功夫开源量化,应该这样入手
  19. vue select下拉框数据v-model绑定默认不显示的问题
  20. 计算机专业海报加文字,PS制作简洁漂亮的文字主题海报 -电脑资料

热门文章

  1. 六大设计原则之单一职责原则(SRG)
  2. 【Unity 31】 Unity中的文件读写, json,Get和Post,聚合数据接口的使用
  3. 攻防演练2021纪实与总结
  4. 快速排序法(随缘学习)
  5. excel md5 加密
  6. 项目管理——成本估算与进度控制
  7. iPad忘记密码,怎么解锁设备?
  8. 浙江大学python程序设计(陈春晖、翁恺、季江民)习题答案第二章
  9. 急,大数据实验室出了问题怎么解决
  10. “今天吃什么”项目计划