PolarD&N2023秋季个人挑战—Crypto全解

这篇具有很好参考价值的文章主要介绍了PolarD&N2023秋季个人挑战—Crypto全解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

EasyRSA

(额。。这个题看错了不是挑战赛的。这里当做好题记录下来了)

题目信息:500 分 5 Polar币

from Crypto.Util.number import bytes_to_long, long_to_bytes, getPrime
import gmpy2, os

p = getPrime(512)
q = getPrime(512)
n = p*q
e = 65537
c = pow(flag1,e,n)
print(hex(n).strip("L"))
print(hex(c).strip("L"))
q = getPrime(512)
n = p*q
c = pow(flag2,e,n)
print(hex(n).strip("L"))
print(hex(c).strip("L"))

# 0x6364991c9ff97120fa450866ab1a3a0bd4e16bd71c8f7a0a4229b1307531fef6e2cb2410c3283db91e49476a8afcd590aedc3384b5045b2fb57208587a242e94e7528ea4998b66f3a57c7ac66b806d9631f8cff3e73557630a0e70467b5f6246ee3fbc6ed89d00af1e931cfabbc5f1deddb99a14dfac51820ffe48f2841bc1a1

# 0x17343966398f483e121de6c2515d630ebc31b0cbdbed5cdc2c09c2b253fc0bc9a055e222eac108e189b6bd6a705d2972c5ce435fa5a4469602bb7a0d0ee95c3f397a3fa4985e6cb7531eb1b5603be134d0dce2c47069d216063b5aea135681edebcfb20c86c3ab09c350901639ee5f74831b056b33c7c26fcef7a34fd39e9dab

# 0x4bf20122dc9f3fbd31bf4389d2a497392caa3de045fe217b692620874ce7a63146c6348c3f65a08bd3f9ec893236e904ceac4e54acdf04e198e7d2bb085c4d646be300158bafc27615875f65d2d1b196d14c024de581f511519631da1d727d6b4fd9c02298b6334938e5a6a7616389948fb9f35677fad6d596d95e5e67aa5549

# 0x2583826196498e3c4b5e1c9c967a74337e85f2b4f9827f2e0a164e3923644a3859c85bf8248ddfcb90f03c31f8704548d7dfd071581eee8a268ef715f93636485b56e559eef55ceee7a54706cf12717d035cc1f6fca838e8ce32fcbd413565ff78500c9810ff8c22ae09d3746b927b4768fc92e6d46a2dfb395cd14ae1321fd0

n不互素问题,利用欧几里得求公约数

exp:

import gmpy2
import binascii
e = 65537
n1 = 0x6364991c9ff97120fa450866ab1a3a0bd4e16bd71c8f7a0a4229b1307531fef6e2cb2410c3283db91e49476a8afcd590aedc3384b5045b2fb57208587a242e94e7528ea4998b66f3a57c7ac66b806d9631f8cff3e73557630a0e70467b5f6246ee3fbc6ed89d00af1e931cfabbc5f1deddb99a14dfac51820ffe48f2841bc1a1

c1 = 0x17343966398f483e121de6c2515d630ebc31b0cbdbed5cdc2c09c2b253fc0bc9a055e222eac108e189b6bd6a705d2972c5ce435fa5a4469602bb7a0d0ee95c3f397a3fa4985e6cb7531eb1b5603be134d0dce2c47069d216063b5aea135681edebcfb20c86c3ab09c350901639ee5f74831b056b33c7c26fcef7a34fd39e9dab

n2 = 0x4bf20122dc9f3fbd31bf4389d2a497392caa3de045fe217b692620874ce7a63146c6348c3f65a08bd3f9ec893236e904ceac4e54acdf04e198e7d2bb085c4d646be300158bafc27615875f65d2d1b196d14c024de581f511519631da1d727d6b4fd9c02298b6334938e5a6a7616389948fb9f35677fad6d596d95e5e67aa5549

c2 = 0x2583826196498e3c4b5e1c9c967a74337e85f2b4f9827f2e0a164e3923644a3859c85bf8248ddfcb90f03c31f8704548d7dfd071581eee8a268ef715f93636485b56e559eef55ceee7a54706cf12717d035cc1f6fca838e8ce32fcbd413565ff78500c9810ff8c22ae09d3746b927b4768fc92e6d46a2dfb395cd14ae1321fd0
e = 65537

p = gmpy2.gcd(n1, n2)
q = n1 // p  # 这里用n1求第一部分,
phi = (p - 1) * (q - 1)
d = gmpy2.invert(e, phi)
m = gmpy2.powmod(c1, d, n1)
print(binascii.unhexlify(hex(m)[2:]))
#flag{c9bee33232dbbf

q = n2 // p  # 这里用n2求第二部分,
phi = (p - 1) * (q - 1)
d = gmpy2.invert(e, phi)
m = gmpy2.powmod(c2, d, n2)
print(binascii.unhexlify(hex(m)[2:]))
#7872763d69d769c74d}

天干地支

题目信息:100 分 1 Polar币

小李某一天收到一条微信,微信中写了几个不同的年份
          丁丑 丙子 戊辰 壬午 丁丑 丙子 戊辰 壬午 壬辰 壬辰 辛未 丙戌
          微信的后面还写有“+甲子”,请解出这段密文。
flag格式:flag{XXX}

PolarD&N2023秋季个人挑战—Crypto全解

查表把附件里的年份转为数字,分别得到:14,13,5,19,14,13,5,19,29,29,8,23,提示加上甲子,就是加60

然后转ASCII码得到:JIAOJIAOYYDS,套上flag:flag{JIAOJIAOYYDS}

全世界都在说中国话

题目信息:100 分 1 Polar币

663867570008258541046114143248220132000152072143
时代在进步 中文也可以被翻译哦
得到flag用MD532位小写加密并套上flag{}

中国电码转一下得到这都不会的话就给你一脑拍

PolarD&N2023秋季个人挑战—Crypto全解

md5加密后再套上壳:flag{679384ffaee1e8145a52408ac7ad6bfd}

小精灵来喽

题目信息:300 分 3 Polar币

PolarD&N2023秋季个人挑战—Crypto全解

压缩包有密码。。。但打开解压右边有提示哈哈,好好好

PolarD&N2023秋季个人挑战—Crypto全解

观察右边的密文eag'expxwxjkey=itsme,维吉尼亚解密得到who'stheelf

然后解压拿到里面文档

PolarD&N2023秋季个人挑战—Crypto全解

一种图形密码,结合题目名称可以想到是古精灵语

PolarD&N2023秋季个人挑战—Crypto全解

PolarD&N2023秋季个人挑战—Crypto全解

查表得到herec0mesthee1f,MD5大写得到flag{08460AE514ACCC54E5D8D4B690A75D29}

眼见非实

题目信息:300 分 3 Polar币

1111011111111011000110010101111111110010111011011110000110001101101110101110110111001100011000111100
得出的结果用md5加密后套上flag{}

二进制解码不行,题目名称眼见非实也就是说看到的不一定是真的,那么看到01我们可以想到培根的变型。

1 -> A,0 -> B,再培根密码解码

AAAABAAAAAAAABAABBBAABBABABAAAAAAAAABBABAAABAABAAAABBBBAABBBAABAABAAABABAAABAABAAABBAABBBAABBBAAAABB
baconiancipherisgood

MD5加密后:flag{68e5987347d955690d9782edc531ddf3}

Round

题目信息:500 分 5 Polar币

BRUEIFYRGBEUNVUICRHFU
FYURGUAROINNIEURYVYRU
E3BYUGDUWRNYUTFSRDE5W
FURYGRUTGUTUNAWGDUIEB
UYGIGNGIHFYBFYURGFURB
TFRUBYFUVOVNERTWINDUE
HUGRURBIGGNSUITIMTQEI
GBUTNGUIJTINGIEGFURYU
TYVCTYSAIBYEIFWIRHUGF
TRTUBGUYTRGSONIUONRRI
6YMUYTNYTIUWABRWBTESS
BRUHGUFGTJNUBAFDEGTEF
DHYEUBFYEYFTYUEBFIUBA
CTBRTNUKMIWGRBEHSDDVC
RUEBFUIRGFRBVXUAVTYEF
YUGRTFBUKCZUIWEIHUEFB
FRVRUIYUFRLNRUYGQEBYE
这里有两串密码,来找找flag在哪吧
(听说阿拉伯数字全世界通用哦)

和谐民主和谐富强和谐民主和谐自由和谐富强和谐民主和谐自由和谐富强和谐文明和谐富强和谐民主和谐自由和谐富强和谐爱国和谐爱国和谐民主和谐富强和谐爱国
和谐爱国和谐自由和谐文明和谐民主和谐富强和谐民主和谐富强和谐爱国和谐爱国和谐自由和谐民主和谐富强和谐爱国和谐爱国和谐文明和谐富强和谐民主和谐富强和谐爱
国和谐爱国和谐自由和谐文明和谐富强和谐爱国和谐爱国和谐自由和谐文明和谐民主和谐富强和谐爱国和谐爱国和谐自由和谐文明和谐民主和谐富强和谐爱国和谐爱国和谐
自由和谐文明和谐民主和谐富强和谐爱国和谐爱国和谐自由和谐文明和谐民主和谐富强和谐爱国和谐爱国和谐自由和谐文明和谐民主

lqbehgfdajmopcikn

将找到的字符串进行md5加密后套上flag{}即可

社会主义核心价值观解码

1014014020140881088421010884108820108842088421088421088421088421088421

发现只有01248,云影密码解码

AEEBEQWAURAVWWWWW

再看第一个文件

托马斯杰斐逊 转轮密码

原理:给一个密码表,n行的26个字母,key是 1 - n 的数列, 密文是 n 个英文字母,根据 key 找对应行的密码表,然后在密码表上找密文字母,以这个字母为开头,重新排序。

先把lqbehgfdajmopcikn转成数字得到:12,17,2,5,8,7,6,4,1,10,13,15,16,3,9,11,14,密文是AEEBEQWAURAVWWWWW

比如第一个key是11,就要把第11行变为以A开头的串

6YMUYTNYTIUWABRWBTESS –> ABRWBTESS6YMUYTNYTIUW

以此类推

exp:

import re
text=""
code = [
"BRUEIFYRGBEUNVUICRHFU",
"FYURGUAROINNIEURYVYRU",
"E3BYUGDUWRNYUTFSRDE5W",
"FURYGRUTGUTUNAWGDUIEB",
"UYGIGNGIHFYBFYURGFURB",
"TFRUBYFUVOVNERTWINDUE",
"HUGRURBIGGNSUITIMTQEI",
"GBUTNGUIJTINGIEGFURYU",
"TYVCTYSAIBYEIFWIRHUGF",
"TRTUBGUYTRGSONIUONRRI",
"6YMUYTNYTIUWABRWBTESS",
"BRUHGUFGTJNUBAFDEGTEF",
"DHYEUBFYEYFTYUEBFIUBA",
"CTBRTNUKMIWGRBEHSDDVC",
"RUEBFUIRGFRBVXUAVTYEF",
"YUGRTFBUKCZUIWEIHUEFB",
"FRVRUIYUFRLNRUYGQEBYE"
]
print(code)
codetext="AEEBEQWAURAVWWWWW"
codenum = "12,17,2,5,8,7,6,4,1,10,13,15,16,3,9,11,14"
codenum=codenum.split(",")#把这些数字都弄到一个里面去
#print(codenum)
a=0
print("解密后的:")
for i in codenum:
    index=code[int(i)-1].index(codetext[a])
    a=a+1
    code[int(i)-1]=code[int(i)-1][index:]+code[int(i)-1][:index]
    print(code[int(i)-1])

#完成了变形了

print("下面是每一列的")
for i in range(len(code[0])):
      str=""
      print("第{}列的是:".format(i),end="")
      for j in codenum:
          str+=code[int(j)-1][i]
      print(str.lower())

flagisvucuuub3ayr

注意将flag转化为大写后再MD5加密,MD5加密后:flag{52c85c0bb38a8fc993d335401b56d9b6}

low encryption exponent RSA

题目信息:500 分 5 Polar币

【2023秋季个人挑战赛】 小王在学习了RSA加密后知道了,当n非常大时,将n拆分成两个素数相乘就变得十分困难,从而能够保证加密的安全性, 于是小王自以为是的使用了函数自动生成了很大的n,以为这样就很安全了,但他似乎没有考虑e对c的影响。

# -*- coding = utf-8 -*-
# @software:PyCharm
from Crypto.Util.number import *
import libnum

flag = b'***********************'
m = bytes_to_long(flag)
n = getRandomNBitInteger(2048)
e = 5
c = pow(m, e, n)
print(n)
print(c)
#n=18049146130359556157811138499355569967231668855528566823643376144155931993553424757354835027829037263429007310779886281743425186527415596058004878860570474866413182148724803537036078612785180550377667299555519230603647447077725080756322343538156406080031959768393145744701092093127752647143419553963316375696232038952573236311522683541862835602321038621904842874356522524316864553501304106884213097353522958546518042728628006318129608745487662533959888992223736595503203451378533217004433230837006796341055201266431153548000348148960250455415972226546646460918890401484239320725539304914347952245606818833495867312063
#c=377041108412334062897923100149371833160065752130578483588828849399791858197434981428466047315212724764223394695011882740933537996983126187094472520344493047769519118482187945467176598341785927269390299847888131061799861412055502165865052720513992259109503509827127768615772091500352075827289290029872935215672798059068944088543667111296361405639896493856695176145088430237388172420390881291650155157688737470414069130558367036786376549227175617218017578125

哈哈哈,小明文

exp:

from Crypto.Util.number import long_to_bytes
from gmpy2 import iroot
c1 = 377041108412334062897923100149371833160065752130578483588828849399791858197434981428466047315212724764223394695011882740933537996983126187094472520344493047769519118482187945467176598341785927269390299847888131061799861412055502165865052720513992259109503509827127768615772091500352075827289290029872935215672798059068944088543667111296361405639896493856695176145088430237388172420390881291650155157688737470414069130558367036786376549227175617218017578125
m = iroot(c1,5)[0]
print(long_to_bytes(m).decode())
#flag{fea80b814dcb0ff0a17e36c1e72569e7}

 文章来源地址https://www.toymoban.com/news/detail-711410.html

到了这里,关于PolarD&N2023秋季个人挑战—Crypto全解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2023年第四届MathorCup大数据挑战赛(B题)|电商零售商家需求预测及库存优化问题|数学建模完整代码+建模过程全解全析

    让我们来看看MathorCup的B题! 这是一个电商零售商家需求预测及库存优化问题的描述。这个问题涉及到电商平台上的上千个商家,它们将商品放在不同的仓库中,而电商平台需要进行供应链管理,以降低库存成本并保证按时交货。主要问题包括需求预测和库存优化。 问题一:

    2024年02月08日
    浏览(46)
  • 2023年SWPU NSS 秋季招新赛 (校外赛道) MISC复盘WP

    题目描述: 给了一个含二维码的动图,分离一下得到九张二维码碎片,根据文件名数字按顺序组装,在线扫码即可 题目描述: 010查看,base64转图片 但是打不开,因为宽高有问题,修改下宽高 题目描述: 文件过大,但是我们熟悉的类型,base64,32反复解 exp:  题目描述:   第

    2024年02月08日
    浏览(42)
  • [UMDCTF 2023] crypto 部分

    这个小赛只作了8个crypto简单部分,后边5个都不会 密码签到,给了堆字符,细看就两种,每行8组 CHU! 开头,显然是替换成01。然后出来就是flag,这个flag有1364个字符。是我见过最长的。  CHU! PIKA CHU! PIKA CHU! PIKA CHU! PIKA  CHU! PIKA CHU! CHU! PIKA PIKA CHU! PIKA  CHU! PIKA CHU! CHU! CHU! PIKA

    2024年02月02日
    浏览(30)
  • 2023省赛-CRYPTO-RSA

    1、标题:RSA 2、:共模攻击变形 3、比赛:2023年省赛 4、工具:python 1、题目 2、分析 (1)初步看是共模攻击,即n相同,不同的c1、c2、e1、e2 (2)再分析下加密过程,发现加密的m不同,m是经过一次RSA的。 (3)比赛的时候直接懵逼了,没有想到去推演下计算过程,而

    2024年02月10日
    浏览(27)
  • FSCTF 2023(公开赛道)CRYPTO WP

    1、题目信息 2、解题方法 exp 1、题目信息 2、解题方法 阴阳怪气密码解码 1、题目信息 2、解题方法 1、题目信息 2、解题方法 dp泄露 exp 1、题目信息 2、解题方法 exp1:维纳攻击1 exp2: 维纳攻击2 1、题目信息 2、题目信息 共e攻击 1、题目信息 2、解题方法 cyber一把梭 1、题目信

    2024年02月08日
    浏览(46)
  • NKCTF 2023-misc全解(有脚本,有详解)

    目录 misc题目附件连接 前言 hard-misc NKCTF2023问卷调查  Blue THMaster easy_bmp 方法一 方法二  三体 easy_rgb 方法一  方法二  easy_word first spam of rabbit year 密文(记得去掉tip:4713) 密钥 baby_music Easymusic  密码一 密码二 密码三 Easypic 加油各位( •̀ ω •́ )y 期待与君再相逢 链接:ht

    2023年04月19日
    浏览(27)
  • NewStarCTF 2023 公开赛道 WEEK2|Crypto

    T1.滴啤 T2.不止一个pi T3.halfcandecode T4.Rotate Xor T5.broadcast T6.partial decrypt     下载题目附件,我们获得到以下代码。      观察代码得到,这是一道DP泄露题。面对DP泄露题的破解关注点就在于 对于各个数学关系的利用 。大体证明流程如下。        , 那么,我们可以获得    

    2024年02月06日
    浏览(52)
  • [BUUCTF NewStar 2023] week5 Crypto/pwn

    最后一周几个有难度的题 也是个板子题,不过有些人存的板子没到,所以感觉有难度,毕竟这板子也不是咱自己能写出来的。 给了部分p, p是1024位给了922-101位差两头。 直接用双值copper这个双值和多值还是有些区别的,应该是作了些优化。 这个题有9个人完成,我估计有一半

    2024年02月05日
    浏览(39)
  • 2023抖音电商福利,商品卡流量怎么玩?一文全解

    大家好,我是电商年年 最近一直在分享 抖音商品卡流量 的玩法,为什么? 因为抖音商品卡流量确实是2023年整个抖音电商的 红利 ,包括抖音现在推出的 超级商品卡 ,其实也是在给我们传达这个信息。 想要做好抖音商品卡流量,首先我们要先了解什么是抖音商品卡。 用户

    2023年04月23日
    浏览(82)
  • NewStarCTF 2023 公开赛道 WEEK4|CRYPTO 部分WP

    1、题目信息 提示: \\\"Schmidt Samoa\\\" 附件信息 2、解题方法 学了一个新技巧,哈哈哈。 简介 : Schmidt-Samoa密码系统,像rabin加密一样,其安全性基于整数因式分解的难度。但 Rabin 解密时会得到四个解,而 Schmidt-Samor 得到的是唯一解。 密钥生成 1.选取两个大的质数p和q并进行计算

    2024年02月08日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包