首页 > 其他分享 >2024国城杯-Crypto

2024国城杯-Crypto

时间:2024-12-11 18:43:42浏览次数:3  
标签:y1 国城杯 eG Crypto 2024 x2 print import

babyRSA

考察的是Schmidt-Samoa 密码体系

img

from Crypto.Util.number import *
import gmpy2
n = 539403894871945779827202174061302970341082455928364137444962844359039924160163196863639732747261316352083923762760392277536591121706270680734175544093484423564223679628430671167864783270170316881238613070741410367403388936640139281272357761773388084534717028640788227350254140821128908338938211038299089224967666902522698905762169859839320277939509727532793553875254243396522340305880944219886874086251872580220405893975158782585205038779055706441633392356197489
d = 58169755386408729394668831947856757060407423126014928705447058468355548861569452522734305188388017764321018770435192767746145932739423507387500606563617116764196418533748380893094448060562081543927295828007016873588530479985728135015510171217414380395169021607415979109815455365309760152218352878885075237009
c = 82363935080688828403687816407414245190197520763274791336321809938555352729292372511750720874636733170318783864904860402219217916275532026726988967173244517058861515301795651235356589935260088896862597321759820481288634232602161279508285376396160040216717452399727353343286840178630019331762024227868572613111538565515895048015318352044475799556833174329418774012639769680007774968870455333386419199820213165698948819857171366903857477182306178673924861370469175

pq = gmpy2.gcd(pow(2, d* n, n) - 2, n)
m=pow(c,d,pq)
print(long_to_bytes(m))
#b'D0g3xGC{W1sh_Y0u_Go0d_L@ucK-111}'

Curve

原题,通过曲线之间的映射来解题

assert (agx2+gy2)%p==(1+dgx2*gy2)%p

可知这是标准型的扭曲爱德华曲线

解题过程和脚本参考:Crypto趣题-曲线 | 糖醋小鸡块的blog

from Crypto.Util.number import *
p = 64141017538026690847507665744072764126523219720088055136531450296140542176327
a = 362
d = 7
e=0x10001
eG = (34120664973166619886120801966861368419497948422807175421202190709822232354059, 11301243831592615312624457443883283529467532390028216735072818875052648928463)
c=1

F = GF(p)
dd = F(d*c^4)
A = F(2) * F(a+dd) / F(a-dd)
B = F(4) / F(a-dd)
a = F(3-A^2) / F(3*B^2)
b = F(2*A^3-9*A) / F(27*B^3)

def edwards_to_ECC(x,y):
    x1 = F(x) / F(c)
    y1 = F(y) / F(c)
    

    x2 = F(1+y1) / F(1-y1)
    y2 = F(x2) / F(x1)
   

    x3 = (F(3*x2) + F(A)) / F(3*B)
    y3 = F(y2) / F(B)
   
    return (x3,y3)
 
def ECC_to_edwards(x,y):
    x2 = (F(x) * F(3*B) - F(A)) / F(3)
    y2 = F(y) * F(B)
    

    x1 = F(x2) / F(y2)
    y1 = F(1) - (F(2) / F(x2+1))
    

    x_ = F(x1) * F(c)
    y_ = F(y1) * F(c)
    
    
    return (x_,y_)
 
E = EllipticCurve(GF(p), [a, b])
order = E.order()
eG = E(edwards_to_ECC(eG[0],eG[1]))
t = inverse(e,order)
G = t*eG
G = ECC_to_edwards(G[0],G[1])
print(long_to_bytes(int(G[0])))
#b'D0g3xGC{SOlvE_The_Edcurv3}'

EZ_sign

b = 829396411171540475587755762866203184101195238207
(H1, r1, s1) = 659787401883545685817457221852854226644541324571, 334878452864978819061930997065061937449464345411, 282119793273156214497433603026823910474682900640
(H2, r2, s2) = 156467414524100313878421798396433081456201599833, 584114556699509111695337565541829205336940360354, 827371522240921066790477048569787834877112159142
PR.<k1>=PolynomialRing(Zmod(b))
f=(s1*k1*r2-s2*k1^2*r1)-(H1*r2-H2*r1)
res=f.roots()
print(res)
k=9455554284687443083
x=(s1*k-H1)*inverse(r1,b)%b
print(x)

b'e = 44519'

通过C = p^2 + q^2这个条件来解出p,q

一开始用res=two_squares(C)来解,发现解出来的p,q不对,又换了一种方法

from sage.all import *

N=179093209181929149953346613617854206675976823277412565868079070299728290913658

#将N转换为复数域上的整数
f = ZZ[I](N)

#获取所有因子
divisors_f = divisors(f)

#遍历所有因子,寻找满足条件的p和q
for d in divisors_f:
    a,b = d.real(), d.imag()
    if a**2 + b**2 == N:
        p = abs(int(a))
        q = abs(int(b))
        if is_prime(p) and is_prime(q):
            print(p)
            print(q)
            break
from Crypto.Util.number import *
import random
k=1865444199836044046649
print(long_to_bytes(k))
e = 44519
c = 18947793008364154366082991046877977562448549186943043756326365751169362247521
p=302951519846417861008714825074296492447
q=295488723650623654106370451762393175957
phi=(p-1)*(q-1)
d=inverse(e,phi)
m=pow(c,d,p*q)
print(long_to_bytes(m))

标签:y1,国城杯,eG,Crypto,2024,x2,print,import
From: https://www.cnblogs.com/WTT001/p/18600457

相关文章

  • 2024鹏城杯-misc
    网安第一课改zip解压找到key1key26iMmn76ucYG9PDtsvu解压之后上脚本fromPILimportImageimages=[Image.open(f"{i}.png")foriinrange(1,38)]qr_code=Image.new("RGB",(128,128),(255,255,255))foriinrange(37):img1=images[i]......
  • (2024最新毕设合集)基于的同城学校二手交易平台|可做计算机毕业设计JAVA、PHP、爬虫、AP
    同城学校二手交易平台设计与实现摘 要利用SpringBoot框架和相关Uni-app技术,设计和实现一个高效、可靠的同城学校二手交易平台。该系统将提供闲置、发布、求购等主要功能,旨在促进二手交易平台的便捷和透明化。本研究首先介绍了同城学校二手交易平台的研究背景和现状,包括同城......
  • 软件著作权申请教程(超详细)(2024新版)软著申请
                        目录一、注册账号与实名登记二、材料准备三、申请步骤1.办理身份2.软件申请信息3.软件开发信息4.软件功能与特点5.填报完成一、注册账号与实名登记    首先我们需要在官网里面注册一个账号,并且完成实名认证,一般是......
  • 20222304 2024-2025-1 《网络与系统攻防技术》实验七实验报告
    一、实验内容及要求本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法。具体实践有(1)简单应用SET工具建立冒名网站(2)ettercapDNSspoof(3)结合应用两种技术,用DNSspoof引导特定访问到冒名网站。二、实验过程2.1简单应用SET工具建立冒名网站SET(Social-......
  • 20222304 2024-2025-1 《网络与系统攻防技术》实验八实验报告
    一、实验内容二、实验过程(一)Web前端HTML开启Apache服务理解HTML,理解表单,理解GET与POST方法(二)Web前端javascipt理解JavaScript的基本功能,理解DOM编写登陆成功的php文件尝试注入攻击(三)Web后端:MySQL基础:正常安装、启动MySQL,建库、创建用户、修改密码、建表(四)Web后端:编写......
  • 【2024最新】基于Springboot+Vue的休闲娱乐代理售票系统Lw+PPT
    作者:计算机搬砖家开发技术:SpringBoot、php、Python、小程序、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。专栏推荐:SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码精品专栏:Java精选实战项目源码、Python精选实战项目源码、大数据精选实战项目源码......
  • 【2024最新】基于Springboot+Vue的学生就业管理系统Lw+PPT
    作者:计算机搬砖家开发技术:SpringBoot、php、Python、小程序、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。专栏推荐:SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码精品专栏:Java精选实战项目源码、Python精选实战项目源码、大数据精选实战项目源码......
  • 微信小程序中使用miniprogram-sm-crypto实现SM4加密攻略
    在微信小程序开发过程中,数据安全至关重要。本文将为大家介绍如何在微信小程序中使用miniprogram-sm-crypto插件进行SM4加密,确保数据传输的安全性。一、SM4加密简介SM4是一种对称加密算法,由国家密码管理局发布,适用于商密领域。它的密钥长度为128位,分组长度为128位,加密过程采用......
  • java八股面试文(2024年带答案,万字总结,精心打磨)
    前言2025即将来临,很多同学会问Java面试八股文有必要背吗?我的回答是:很有必要。在准备Java面试时,很多人会提到“八股文”,这通常指的是那些经典且经常被问到的技术问题和答案。但你可以讨厌这种模式,但你一定要去背,因为不背你就进不了大厂,以下是一些关于是否需要背诵八股文的建议......
  • 2024年如何选择项目管理软件?8大评测标准帮你轻松选择
    一、引言在当今竞争激烈的商业环境中,项目管理的重要性日益凸显。无论是大型企业的复杂项目,还是小型团队的创新任务,都离不开高效的项目管理。而项目管理软件作为现代项目管理的重要工具,能够帮助团队更好地规划、执行和监控项目,提高项目的成功率。随着信息技术的不断发展,市场上......