2021-10-10

article/2025/9/27 21:18:25

2021-10-08鹤城杯

crypto

EASY_CRYPTO

公正公正公正诚信文明公正民主公正法治法治诚信民主自由敬业公正友善公正平等平等法治民主平等平等和谐敬业自由诚信平等和谐平等公正法治法治平等平等爱国和谐公正平等敬业公正敬业自由敬业平等自由法治和谐平等文明自由诚信自由平等富强公正敬业平等民主公正诚信和谐公正文明公正爱国自由诚信自由平等文明公正诚信富强自由法治法治平等平等自由平等富强法治诚信和谐

很明显的社会主义核心价值观,直接在线解密得到

flag{IlUqU9O5guX6YiITsRNPiQmbhNRjGuTP}

CRAZY_RSA_TECH

题目描述:Why I need to send messages to so many people…

from Crypto.Util.number import *
from Crypto.Util.Padding import *FLAG = bytes_to_long(pad(b"flag{??????}",64))
def init_key():p, q = getPrime(512), getPrime(512)n = p*qe = 9while(GCD((p-1)*(q-1),e)!=1):p, q = getPrime(512), getPrime(512)n = p*qd = inverse(e,(p-1)*(q-1))return n,e,dn_list=list()
c_list=list()
for i in range(9):N,e,d=init_key()n_list.append(N)c=pow(FLAG,e,N)c_list.append(pow(FLAG,e,N))assert(pow(c,d,N)==FLAG)
print("n_list:",n_list)
print("c_list:",c_list)

output

n_list: [71189786319102608575263218254922479901008514616376166401353025325668690465852130559783959409002115897148828732231478529655075366072137059589917001875303598680931962384468363842379833044123189276199264340224973914079447846845897807085694711541719515881377391200011269924562049643835131619086349617062034608799, 92503831027754984321994282254005318198418454777812045042619263533423066848097985191386666241913483806726751133691867010696758828674382946375162423033994046273252417389169779506788545647848951018539441971140081528915876529645525880324658212147388232683347292192795975558548712504744297104487514691170935149949, 100993952830138414466948640139083231443558390127247779484027818354177479632421980458019929149817002579508423291678953554090956334137167905685261724759487245658147039684536216616744746196651390112540237050493468689520465897258378216693418610879245129435268327315158194612110422630337395790254881602124839071919, 59138293747457431012165762343997972673625934330232909935732464725128776212729547237438509546925172847581735769773563840639187946741161318153031173864953372796950422229629824699580131369991913883136821374596762214064774480548532035315344368010507644630655604478651898097886873485265848973185431559958627423847, 66827868958054485359731420968595906328820823695638132426084478524423658597714990545142120448668257273436546456116147999073797943388584861050133103137697812149742551913704341990467090049650721713913812069904136198912314243175309387952328961054617877059134151915723594900209641163321839502908705301293546584147, 120940513339890268554625391482989102665030083707530690312336379356969219966820079510946652021721814016286307318930536030308296265425674637215009052078834615196224917417698019787514831973471113022781129000531459800329018133248426080717653298100515701379374786486337920294380753805825328119757649844054966712377, 72186594495190221129349814154999705524005203343018940547856004977368023856950836974465616291478257156860734574686154136925776069045232149725101769594505766718123155028300703627531567850035682448632166309129911061492630709698934310123778699316856399909549674138453085885820110724923723830686564968967391721281, 69105037583161467265649176715175579387938714721653281201847973223975467813529036844308693237404592381480367515044829190066606146105800243199497182114398931410844901178842049915914390117503986044951461783780327749665912369177733246873697481544777183820939967036346862056795919812693669387731294595126647751951, 76194219445824867986050004226602973283400885106636660263597964027139613163638212828932901192009131346530898961165310615466747046710743013409318156266326090650584190382130795884514074647833949281109675170830565650006906028402714868781834693473191228256626654011772428115359653448111208831188721505467497494581]
c_list: [62580922178008480377006528793506649089253164524883696044759651305970802215270721223149734532870729533611357047595181907404222690394917605617029675103788705320032707977225447998111744887898039756375876685711148857676502670812333076878964148863713993853526715855758799502735753454247721711366497722251078739585, 46186240819076690248235492196228128599822002268014359444368898414937734806009161030424589993541799877081745454934484263188270879142125136786221625234555265815513136730416539407710862948861531339065039071959576035606192732936477944770308784472646015244527805057990939765708793705044236665364664490419874206900, 85756449024868529058704599481168414715291172247059370174556127800630896693021701121075838517372920466708826412897794900729896389468152213884232173410022054605870785910461728567377769960823103334874807744107855490558726013068890632637193410610478514663078901021307258078678427928255699031215654693270240640198, 14388767329946097216670270960679686032536707277732968784379505904021622612991917314721678940833050736745004078559116326396233622519356703639737886289595860359630019239654690312132039876082685046329079266785042428947147658321799501605837784127004536996628492065409017175037161261039765340032473048737319069656, 1143736792108232890306863524988028098730927600066491485326214420279375304665896453544100447027809433141790331191324806205845009336228331138326163746853197990596700523328423791764843694671580875538251166864957646807184041817863314204516355683663859246677105132100377322669627893863885482167305919925159944839, 2978800921927631161807562509445310353414810029862911925227583943849942080514132963605492727604495513988707849133045851539412276254555228149742924149242124724864770049898278052042163392380895275970574317984638058768854065506927848951716677514095183559625442889028813635385408810698294574175092159389388091981, 16200944263352278316040095503540249310705602580329203494665614035841657418101517016718103326928336623132935178377208651067093136976383774189554806135146237406248538919915426183225265103769259990252162411307338473817114996409705345401251435268136647166395894099897737607312110866874944619080871831772376466376, 31551601425575677138046998360378916515711528548963089502535903329268089950335615563205720969393649713416910860593823506545030969355111753902391336139384464585775439245735448030993755229554555004154084649002801255396359097917380427525820249562148313977941413268787799534165652742114031759562268691233834820996, 25288164985739570635307839193110091356864302148147148153228604718807817833935053919412276187989509493755136905193728864674684139319708358686431424793278248263545370628718355096523088238513079652226028236137381367215156975121794485995030822902933639803569133458328681148758392333073624280222354763268512333515]

共给出了9对的n、c
用中国剩余定理求

from gmpy2 import *
from Crypto.Util.number import *
from functools import reduce
N = [71189786319102608575263218254922479901008514616376166401353025325668690465852130559783959409002115897148828732231478529655075366072137059589917001875303598680931962384468363842379833044123189276199264340224973914079447846845897807085694711541719515881377391200011269924562049643835131619086349617062034608799, 92503831027754984321994282254005318198418454777812045042619263533423066848097985191386666241913483806726751133691867010696758828674382946375162423033994046273252417389169779506788545647848951018539441971140081528915876529645525880324658212147388232683347292192795975558548712504744297104487514691170935149949, 100993952830138414466948640139083231443558390127247779484027818354177479632421980458019929149817002579508423291678953554090956334137167905685261724759487245658147039684536216616744746196651390112540237050493468689520465897258378216693418610879245129435268327315158194612110422630337395790254881602124839071919, 59138293747457431012165762343997972673625934330232909935732464725128776212729547237438509546925172847581735769773563840639187946741161318153031173864953372796950422229629824699580131369991913883136821374596762214064774480548532035315344368010507644630655604478651898097886873485265848973185431559958627423847, 66827868958054485359731420968595906328820823695638132426084478524423658597714990545142120448668257273436546456116147999073797943388584861050133103137697812149742551913704341990467090049650721713913812069904136198912314243175309387952328961054617877059134151915723594900209641163321839502908705301293546584147, 120940513339890268554625391482989102665030083707530690312336379356969219966820079510946652021721814016286307318930536030308296265425674637215009052078834615196224917417698019787514831973471113022781129000531459800329018133248426080717653298100515701379374786486337920294380753805825328119757649844054966712377, 72186594495190221129349814154999705524005203343018940547856004977368023856950836974465616291478257156860734574686154136925776069045232149725101769594505766718123155028300703627531567850035682448632166309129911061492630709698934310123778699316856399909549674138453085885820110724923723830686564968967391721281, 69105037583161467265649176715175579387938714721653281201847973223975467813529036844308693237404592381480367515044829190066606146105800243199497182114398931410844901178842049915914390117503986044951461783780327749665912369177733246873697481544777183820939967036346862056795919812693669387731294595126647751951, 76194219445824867986050004226602973283400885106636660263597964027139613163638212828932901192009131346530898961165310615466747046710743013409318156266326090650584190382130795884514074647833949281109675170830565650006906028402714868781834693473191228256626654011772428115359653448111208831188721505467497494581]
c = [62580922178008480377006528793506649089253164524883696044759651305970802215270721223149734532870729533611357047595181907404222690394917605617029675103788705320032707977225447998111744887898039756375876685711148857676502670812333076878964148863713993853526715855758799502735753454247721711366497722251078739585, 46186240819076690248235492196228128599822002268014359444368898414937734806009161030424589993541799877081745454934484263188270879142125136786221625234555265815513136730416539407710862948861531339065039071959576035606192732936477944770308784472646015244527805057990939765708793705044236665364664490419874206900, 85756449024868529058704599481168414715291172247059370174556127800630896693021701121075838517372920466708826412897794900729896389468152213884232173410022054605870785910461728567377769960823103334874807744107855490558726013068890632637193410610478514663078901021307258078678427928255699031215654693270240640198, 14388767329946097216670270960679686032536707277732968784379505904021622612991917314721678940833050736745004078559116326396233622519356703639737886289595860359630019239654690312132039876082685046329079266785042428947147658321799501605837784127004536996628492065409017175037161261039765340032473048737319069656, 1143736792108232890306863524988028098730927600066491485326214420279375304665896453544100447027809433141790331191324806205845009336228331138326163746853197990596700523328423791764843694671580875538251166864957646807184041817863314204516355683663859246677105132100377322669627893863885482167305919925159944839, 2978800921927631161807562509445310353414810029862911925227583943849942080514132963605492727604495513988707849133045851539412276254555228149742924149242124724864770049898278052042163392380895275970574317984638058768854065506927848951716677514095183559625442889028813635385408810698294574175092159389388091981, 16200944263352278316040095503540249310705602580329203494665614035841657418101517016718103326928336623132935178377208651067093136976383774189554806135146237406248538919915426183225265103769259990252162411307338473817114996409705345401251435268136647166395894099897737607312110866874944619080871831772376466376, 31551601425575677138046998360378916515711528548963089502535903329268089950335615563205720969393649713416910860593823506545030969355111753902391336139384464585775439245735448030993755229554555004154084649002801255396359097917380427525820249562148313977941413268787799534165652742114031759562268691233834820996, 25288164985739570635307839193110091356864302148147148153228604718807817833935053919412276187989509493755136905193728864674684139319708358686431424793278248263545370628718355096523088238513079652226028236137381367215156975121794485995030822902933639803569133458328681148758392333073624280222354763268512333515]
e = 9
def chinese_remainder(modulus, remainders):Sum = 0prod = reduce(lambda a, b: a*b, modulus)for m_i, r_i in zip(modulus, remainders):p = prod // m_iSum += r_i * (inverse(p,m_i)*p)return Sum % prod
pow_m_e = chinese_remainder(N,c)
m = iroot(pow_m_e,9)[0]
print(long_to_bytes(m))

运行得到:

b'flag{H0w_Fun_13_HAstads_broadca5t_AtTack!}\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16'

则flag{H0w_Fun_13_HAstads_broadca5t_AtTack!}

BABYRSA

from Crypto.Util.number import getPrime, bytes_to_long
from secret import flagp = getPrime(1024)
q = getPrime(1024)
n = p * q
e = 65537
hint1 = p >> 724
hint2 = q % (2 ** 265)
ct = pow(bytes_to_long(flag), e, n)
print(hint1)
print(hint2)
print(n)
print(ct)

out

1514296530850131082973956029074258536069144071110652176122006763622293335057110441067910479
40812438243894343296354573724131194431453023461572200856406939246297219541329623
21815431662065695412834116602474344081782093119269423403335882867255834302242945742413692949886248581138784199165404321893594820375775454774521554409598568793217997859258282700084148322905405227238617443766062207618899209593375881728671746850745598576485323702483634599597393910908142659231071532803602701147251570567032402848145462183405098097523810358199597631612616833723150146418889589492395974359466777040500971885443881359700735149623177757865032984744576285054725506299888069904106805731600019058631951255795316571242969336763938805465676269140733371287244624066632153110685509892188900004952700111937292221969
19073695285772829730103928222962723784199491145730661021332365516942301513989932980896145664842527253998170902799883262567366661277268801440634319694884564820420852947935710798269700777126717746701065483129644585829522353341718916661536894041337878440111845645200627940640539279744348235772441988748977191513786620459922039153862250137904894008551515928486867493608757307981955335488977402307933930592035163126858060189156114410872337004784951228340994743202032248681976932591575016798640429231399974090325134545852080425047146251781339862753527319093938929691759486362536986249207187765947926921267520150073408188188

也就是说,知道p的高300位,和q的低265位

根据
在这里插入图片描述
我们可以求出p的低位,然后再进行coppersmith定理求解

参考代码

from gmpy2 import *
from Crypto.Util.number import *p1 = 1514296530850131082973956029074258536069144071110652176122006763622293335057110441067910479
q0 = 40812438243894343296354573724131194431453023461572200856406939246297219541329623
n = 21815431662065695412834116602474344081782093119269423403335882867255834302242945742413692949886248581138784199165404321893594820375775454774521554409598568793217997859258282700084148322905405227238617443766062207618899209593375881728671746850745598576485323702483634599597393910908142659231071532803602701147251570567032402848145462183405098097523810358199597631612616833723150146418889589492395974359466777040500971885443881359700735149623177757865032984744576285054725506299888069904106805731600019058631951255795316571242969336763938805465676269140733371287244624066632153110685509892188900004952700111937292221969
mod=pow(2,265)
p0=n*invert(q0,mod)%mod
pbar=(p1<<724)+p0
PR.<x> = PolynomialRing(Zmod(n))for i in range(32):f=pbar+x*mod*32f=f.monic()pp=f.small_roots(X=2^454,beta=0.4)if(pp):breakpbar+=modp=pbar+pp[0]*32*mod
assert n%p==0
print(p)q=n//p
phi=(p-1)*(q-1)
e=65537
d=invert(e,phi)
c=19073695285772829730103928222962723784199491145730661021332365516942301513989932980896145664842527253998170902799883262567366661277268801440634319694884564820420852947935710798269700777126717746701065483129644585829522353341718916661536894041337878440111845645200627940640539279744348235772441988748977191513786620459922039153862250137904894008551515928486867493608757307981955335488977402307933930592035163126858060189156114410872337004784951228340994743202032248681976932591575016798640429231399974090325134545852080425047146251781339862753527319093938929691759486362536986249207187765947926921267520150073408188188
m=pow(c,d,n)
print(long_to_bytes(m))
#flag{ef5e1582-8116-4f61-b458-f793dc03f2ff}

(已知p的前300位,后265位,再爆破32位,再利用CopperSmith定理求解,CopperSmith定理对于已知位数是有讲究的)

A_CRYPTO

4O595954494Q32515046324757595N534R52415653334357474R4N575955544R4O5N4Q46434S4O59474253464Q5N444R4Q51334557524O5N4S424944473542554O595N44534O324R49565746515532464O49345649564O464R4R494543504N35

应该是编码,可能有移位,常见的ROT系列试一下

ROT13解码,得到

4b595954494d32515046324757595a534e52415653334357474e4a575955544e4b5a4d46434f4b59474253464d5a444e4d51334557524b5a4f424944473542554b595a44534b324e49565746515532464b49345649564b464e4e494543504a35

这次能看出来是十六进制了,hex解码:

KYYTIM2QPF2GWYZSNRAVS3CWGNJWYUTNKZMFCOKYGBSFMZDNMQ3EWRKZOBIDG5BUKYZDSK2NIVWFQU2FKI4VIVKFNNIECPJ5

base32解码得到

V143Pytkc2lAYlV3SlRmVXQ9X0dVdmd6KEYpP3t4V29+MElXSER9TUEkPA==

然后base64解码得到:

W^7?+dsi@bUwJTfUt=_GUvgz(F)?{xWo~0IWHD}MA$<

额,这又是啥玩意,

不是栅栏,因为不是f开头

搜了其他师傅的解题
应该先进行一次base85再base64解密,得到

flag{W0w_y0u_c4n_rea11y_enc0d1ng!}

http://chatgpt.dhexx.cn/article/hiQpoVOu.shtml

相关文章

爱国html源码,鼠标点击网页爱国富强民主特效(附代码)

有朋友经常问&#xff0c;网站上点击出现爱国字眼是怎么做出来的&#xff0c;鼠标点击就显示“富强、民主、和谐”等24个词语&#xff0c;这样鼠标点击特效。下面来分享一下如何实现的。 1&#xff0c;效果如下&#xff1a; 添加页面点击特效&#xff0c;点击页面会显示&#x…

JavaScript网页特效-浮现社会主义核心价值观文字动画效果

1.案例呈现 用户在页面单击鼠标左键&#xff0c;页面浮现“富强”、“民主”、“文明”、“和谐”、“自由”、“平等”、“公正”、“法治”、“爱国”、“敬业”、“诚信”、“友善”等社会主义核心价值观内容&#xff0c;并向上移动100px&#xff0c;然后消失。案例在Chrom…

JQuery 实现鼠标点击特效富强民主文明方法

最近逛好多博客发现都有一个鼠标点击弹窗的事件, 感觉非常棒 #就像这个样子的 百度了一下 发现还是实现还是比较简单的(当然我也不会),但是copy 是程序员最喜欢的事,所以我就转载这个文章,也当是自己的一个小笔记,贴上代码 # js 部分的代码 <script>//定义获取词语下标…

导数据问题处理ORA-01427:单行子查询返回多个行

解决办法: 此时只需在语句中加入and rownum<2 限制他只返回一行即可 SELECT 字段 备注,(select 被查字段 from 表2 where 字段 表1.对应字段 and rownum<2 ) 备注 FROM 表1

MySQL之单行子查询,多行子查询

单行子查询 只返回一行结果的子查询&#xff0c;称为单行子查询。对于单行子查询的结果我们可以使用单行操作符来构造外查询条件&#xff0c;如 >、<、 等等。 废话少说上代码 select * from city where population > (select population from city where nametoky…

子查询:单行子查询,多行子查询,多列子查询

#子查询 子查询使用规则&#xff1a; 子查询放在圆括号中子查询放在比较条件右边&#xff08;非强制&#xff09;子查询中不需要ORDER BY 子句在单行子查询中使用单行运算符&#xff0c;在多行子查询中用多行运算符。 单行运算符&#xff1a;子查询结果只有一个&#xff1a;…

ora-01427批量更新表的时候提示单行子查询返回多个行

这是刚开始的更新语句&#xff1a;根据AMCARD表的ACCTCOMPID和ACCTDEPID字段关联LSBMZD表的LSBMZD_DWBH和LSBMZD_BMBH,得到相对于的LSBMZD_ID&#xff0c;然后根据这个LSBMZD_ID列匹配HRORGINFO表的MAPPINGORG字段&#xff0c;最终得到HRORGINFO表的NM字段&#xff0c;将AMCARD…

update时 单行子查询返回多个行 SQL 错误 [1427] 处理方案

我遇到此错误是在多表关联update的 UPDATE EDASYS.CELL_COMPONENT_T A SET A.ARRAY_GLASS_ID (SELECT M.ARRAY_GLASS_ID FROM EDASYS.CELL_ARRAY_CF_MAPPING_T M WHERE M.CF_GLASS_ID A.COMPONENT_ID AND rownum < 2) WHERE EXISTS (SELECT 1 FROM EDASYS.CELL_ARR…

13.子查询返回多行多列的数据

假设有下面两张表: 部门表dept 雇员表emp 列出公司各个部门的经理的姓名、薪金、部门名称、部门人数、部门平均工资。 步骤1&#xff1a;查找每个部门经理的姓名和薪金。 select ename,sal from emp where jobMANAGER; 步骤2&#xff1a;连接dept表&#xff0c;查询部门名称。…

oracle单行子查询返回多个行 order by,请教单行子查询返回多个行的问题

原帖由 风铃中の鬼 于 2009-9-23 11:10 发表 写问题的时候突然蹦出来个工作..拖延了下时间..具体问题在上面3楼 我当初提供给你的语句没有问题&#xff01; 测试如下&#xff01; SQL> select * from tab_temp; TAB_ID PRO_ID NET_ID ---------- ---------- ------…

oracle单行子查询返回多个行 order by,单行子查询返回多个行 Issue分析求助

with order_base as --获取订单基础情况 ( select ou.order_key order_key, ou.order_quantity_i, ood.dispatch_time_t, ou.part_number_s, I032ZZ01 pline_name_s from order_uv ou left join at_as_om_orderdispatchstatus ood on ou.order_key ood.order_54 union all sel…

【转】ORA-01427: 单行子查询返回多个行,连表查询去重

转自&#xff1a;http://blog.chinaunix.net/uid-23 实例1 有人问题我一个问题&#xff0c;情况如下&#xff1a;他要用根据divide_act_channel_day的new_amount字段去更新divide_stat的new_amount字段。两张表关联的条件:daylog_time,channelchannel--SQL如下&#xff1a;up…

关于子查询报错返回多行数据

项目场景&#xff1a; 子查询报错返回多行数据 问题描述 在查询数据时有两个功能都在操作同一个表,导致子查询查询数据是报错子查询返回多调数据 原因分析&#xff1a; 我遇到的问题所分析是因为两个功能操作同一个表,将查询条件字段改变了,经查询是该字段本来一对一查询更改…

ORA_01427 单行子查询返回多个行

同事反馈线上生产环境在统计报表数据时报错&#xff0c;测试环境没问题&#xff0c;对比代码相同的情况下&#xff0c;将异常锁定在数据问题上面&#xff0c;于是申请了服务器日志查询&#xff0c;发现了ORA_01427&#xff08;单行子查询返回多个行&#xff09;的报错&#xff…

SQL学习之子查询,基于Oracle下的HR用户(四)

六、 子查询 1 子查询介绍 1.1 什么是子查询 子查询是一个 SELECT 语句&#xff0c;它是嵌在另一个 SELECT 语句中的子句。 可以用组合两个查询的方法解决这个问题&#xff0c;放置一个查询到另一个查询中。内查询或子查询返回一个值给外查询或主查询。使用一个子查询相当于执行…

ORA-01427:单行子查询返回多个行

今天sql进行查询时&#xff0c;执行sql语句弹出单行子查询返回多个行的错误提示 经过整改解决了这个问题 1.错误产生原因 原sql语句(为方便理解进行简化)&#xff1a; select * from 表a a where a.name (select b.name from 表b b where b.name 张三 ) 原本想通过&#…

lwl,lwr

lwl,lwr,swl,swr中的指令后缀r(right),l(left)都是相对寄存器而言&#xff0c;load操作是把取到的部分数据&#xff0c;置入寄存器的left或者right&#xff0c;store操作时将寄存器中的数据的 left或者right部分写入目标地址。无论时大端和小端寄存器的格式都是固定的&#xff…

1.9 程序示例--局部加权线性回归-机器学习笔记-斯坦福吴恩达教授

程序示例–局部加权线性回归 现在&#xff0c;我们在回归中又添加了 JLwr() 方法用于计算预测代价&#xff0c;以及 lwr() 方法用于完成局部加权线性回归&#xff1a; # coding: utf-8 # linear_regression/regression.py# ...def JLwr(theta, X, y, x, c):"""…

LWE和RLWE问题学习

LWE概念 又称误差还原&#xff0c;容错学习问题&#xff0c;即已知一个矩阵 A A A以及一个向量&#xff0c;求解 b ^ A x e \hat{b}A xe b^Axe 这里 e e e是一个固定数值范围内随机采集的一个随机噪音向量&#xff0c;所以这个问题就转化为通过 A A A和 b ^ \hat{b} b^来还…

同态加密简介

同态加密概述 基本概念 同态加密&#xff08;Homomorphic Encryption,HE&#xff09;指将原始数据经过同态加密后&#xff0c;对密文进行特定的运算&#xff0c;得到的密文计算结果在进行同态解密后的得到的明文等价于原始明文数据直接进行相同计算所得到的数据结果。 历史与…