国城杯2024——Curve

相关知识链接:https://tangcuxiaojikuai.xyz/post/187210a7.html

#sagemath
from Crypto.Util.number import *def add(P, Q):(x1, y1) = P(x2, y2) = Qx3 = (x1*y2 + y1*x2) * inverse(1 + d*x1*x2*y1*y2, p) % py3 = (y1*y2 - a*x1*x2) * inverse(1 - d*x1*x2*y1*y2, p) % preturn (x3, y3)def mul(x, P):Q = (0, 1)while x > 0:if x % 2 == 1:Q = add(Q, P)P = add(P, P)x = x >> 1return Qp = 64141017538026690847507665744072764126523219720088055136531450296140542176327
a = 362
d = 7
e=0x10001gx=bytes_to_long(b'D0g3xGC{*****************}')PR.<y>=PolynomialRing(Zmod(p))
f=(d*gx^2-1)*y^2+(1-a*gx^2)
gy=int(f.roots()[0][0])assert (a*gx^2+gy^2)%p==(1+d*gx^2*gy^2)%pG=(gx,gy)eG = mul(e, G)
print(eG)#eG = (34120664973166619886120801966861368419497948422807175421202190709822232354059, 11301243831592615312624457443883283529467532390028216735072818875052648928463)

标准型的扭曲爱德华曲线:(Twisted Edwards Curves)


这一题需要安装SageMath,在kali linux中安装:

(https://www.sagemath.org/download.html)

tar xvf sage-9.4-Debian_GNU_Linux_11-x86_64.tar.bz2

在解压后的目录下输入./sage启动


但由于个人熟练度不够,不会用sagemath直接运行python文件,改用sagemath在线运行python网站来进行操作:

(https://cocalc.com/features/sage)

from Crypto.Util.number import *
p = 64141017538026690847507665744072764126523219720088055136531450296140542176327
a = 362
d = 7
e=0x10001
c=1eG = (34120664973166619886120801966861368419497948422807175421202190709822232354059, 11301243831592615312624457443883283529467532390028216735072818875052648928463)
gx=34120664973166619886120801966861368419497948422807175421202190709822232354059
PR.<y>=PolynomialRing(Zmod(p))
f=(d*gx^2-1)*y^2+(1-a*gx^2)
gy=int(f.roots()[0][0])#ECC参数转换
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)#now curve is a*x^2+y^2 = 1+dd*x^2*y^2x2 = F(1+y1) / F(1-y1)y2 = F(x2) / F(x1)#now curve is By^2 = x^3 + Ax^2 + xx3 = (F(3*x2) + F(A)) / F(3*B)y3 = F(y2) / F(B)#now curve is y^2 = x^3 + ax + breturn (x3,y3)def ECC_to_edwards(x,y):x2 = (F(x) * F(3*B) - F(A)) / F(3)y2 = F(y) * F(B)#now curve is By^2 = x^3 + Ax^2 + xx1 = F(x2) / F(y2)y1 = F(1) - (F(2) / F(x2+1))#now curve is a*x^2+y^2 = 1+dd*x^2*y^2x_ = F(x1) * F(c)y_ = F(y1) * F(c)#now curve is a*x^2+y^2 = c^2(1+d*x^2*y^2)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])))

得到flag:

D0g3xGC{SOlvE_The_Edcurv3}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/63488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第三部分:进阶概念 8.事件处理 --[JavaScript 新手村:开启编程之旅的第一步]

JavaScript 事件处理是 Web 开发中不可或缺的一部分&#xff0c;它允许开发者响应用户的交互行为&#xff08;如点击、键盘输入等&#xff09;或浏览器的行为&#xff08;如页面加载完成&#xff09;。通过事件处理&#xff0c;我们可以使网页更加动态和互动。以下是关于 JavaS…

STM32WB55 FUS烧录

FUS固件下载 Firmware Update Service&#xff08;FUS&#xff09;是一种用于在STM32WB微控制器上更新固件的功能。FUS下载是指通过FUS服务进行固件更新的过程。通过FUS下载&#xff0c;您可以通过无线方式将新的固件加载到STM32WB设备中&#xff0c;而无需使用传统的有线编程方…

BERT模型的实现

本文用 pytorch 实现一个BERT模型。 食用方法&#xff1a; 直接下载完整实现&#xff0c; 在自己本地跑一遍&#xff0c;保证不报错。先完成数据预处理阶段&#xff08;1-4&#xff09;的代码阅读&#xff0c;然后按照如下关键点的描述完成代码的实现。自己看着代码手写后续部…

Qt之第三方库‌QXlsx使用(三)

Qt开发 系列文章 - QXlsx&#xff08;三&#xff09; 目录 前言 一、Qt开源库 二、QXlsx 1.QXlsx介绍 2.QXlsx下载 3.QXlsx移植 4.修改项目文件.pro 三、使用技巧 1.添加头文件 2.写入数据 3.读出数据 总结 前言 Qt第三方控件库是指非Qt官方提供的、用于扩展Qt应用…

框架篇面试

一、Spring框架中的单例bean的安全性 Spring框架中有一个Scope注解&#xff0c;默认的值就是singleton&#xff0c;单例的&#xff1b;因为一般在spring的bean中注入的都是无状态的对象&#xff0c;所以没有线程安全问题。但是如果在bean中定义了可修改的成员变量&#xff0c;…

OpenAI 发布 o1 LLM,推出 ChatGPT Pro

OpenAI正式发布了专为复杂推理而构建的 OpenAI o1大型语言模型(LLM)。 该公司还推出了 ChatGPT Pro&#xff0c;这是一项每月 200 美元的套餐&#xff0c;包括无限制访问 OpenAI o1、o1-mini、GPT-4o 和高级语音对话。 OpenAI o1 从 9 月 12 日起在 ChatGPT 中推出预览版&…

【Linux】文件描述符fd

1.前置预备 文件 内容 属性访问文件之前&#xff0c;都必须先打开他 #include<stdio.h> int main() { FILE* fpfopen("log.txt","w"); if(fpNULL) { perror("fopen"); return 1; } fclose(fp); return 0…

字节高频算法面试题:小于 n 的最大数

问题描述&#xff08;感觉n的位数需要大于等于2&#xff0c;因为n的位数1的话会有点问题&#xff0c;“且无重复”是指nums中存在重复&#xff0c;但是最后返回的小于n最大数是可以重复使用nums中的元素的&#xff09;&#xff1a; 思路&#xff1a; 先对nums倒序排序 暴力回…

李飞飞首个“空间智能”模型发布:一张图,生成一个3D世界 | LeetTalk Daily

“LeetTalk Daily”&#xff0c;每日科技前沿&#xff0c;由LeetTools AI精心筛选&#xff0c;为您带来最新鲜、最具洞察力的科技新闻。 在人工智能技术迅速发展的背景下&#xff0c;李飞飞创立的世界实验室于近期发布了首个“空间智能”模型&#xff0c;这一创新成果引发了3D生…

Cursor+Devbox AI开发快速入门

1. 前言 今天无意间了解到 Cursor 和 Devbox 两大开发神器,初步尝试以后发现确实能够大幅度提升开发效率,特此想要整理成博客以供大家快速入门. 简单理解 Cursor 就是一款结合AI大模型的代码编辑器,你可以将自己的思路告诉AI,剩下的目录结构的搭建以及项目代码的实现均由AI帮…

机器学习--绪论

开启这一系列文章的初衷&#xff0c;是希望搭建一座通向机器学习世界的桥梁&#xff0c;为有志于探索这一领域的读者提供系统性指引和实践经验分享。随着人工智能和大数据技术的迅猛发展&#xff0c;机器学习已成为推动技术创新和社会变革的重要驱动力。从智能推荐系统到自然语…

计算机毕设-基于springboot的实践性教学系统设计与实现(附源码+lw+ppt+开题报告)

博主介绍&#xff1a;✌多个项目实战经验、多个大型网购商城开发经验、在某机构指导学员上千名、专注于本行业领域✌ 技术范围&#xff1a;Java实战项目、Python实战项目、微信小程序/安卓实战项目、爬虫大数据实战项目、Nodejs实战项目、PHP实战项目、.NET实战项目、Golang实战…

SpringMvc完整知识点二(完结)

SpringMVC获取请求参数 环境准备工作等均省略&#xff0c;可详见快速入门&#xff0c;此处只写非共有部分代码 该部分示例项目SpringMvcThree已上传至Gitee&#xff0c;可自行下载 客户端请求参数的格式为&#xff1a;namevalue&passwordvalue... ... 服务端想要获取请求…

PDF拆分之怎么对批量的PDF文件进行分割-免费PDF编辑工具分享

>>更多PDF文件处理应用技巧请前往 96缔盟PDF处理器 主页 查阅&#xff01; ——————————————————————————————————————— 当然了&#xff0c;单个文件或者其他任意的文件个数的拆分也是支持的&#xff01; 序言 我之前的文章也有…

EmoAva:首个大规模、高质量的文本到3D表情映射数据集。

2024-12-03&#xff0c;由哈尔滨工业大学&#xff08;深圳&#xff09;的计算机科学系联合澳门大学、新加坡南洋理工大学等机构创建了EmoAva数据集&#xff0c;这是首个大规模、高质量的文本到3D表情映射数据集&#xff0c;对于推动情感丰富的3D头像生成技术的发展具有重要意义…

【开源免费】基于Vue和SpringBoot的课程答疑系统(附论文)

博主说明&#xff1a;本文项目编号 T 070 &#xff0c;文末自助获取源码 \color{red}{T070&#xff0c;文末自助获取源码} T070&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…

Spring Boot 整合 Druid 并开启监控

文章目录 1. 引言2. 添加依赖3. 配置数据源4. 开启监控功能5. 自定义 Druid 配置&#xff08;可选&#xff09;6. 访问监控页面7. 注意事项8. 总结 Druid 是一个由阿里巴巴开源的高性能数据库连接池&#xff0c;它不仅提供了高效的连接管理功能&#xff0c;还自带了强大的监控和…

第二十四周机器学习笔记:动手深度学习之——统计学习知识

第二十四周周报 摘要Abstract1.监督学习和无监督学习1.1 监督学习&#xff08;Supervised Learning&#xff09;1.2 无监督学习&#xff08;Unsupervised Learning&#xff09; 2.线性回归模型3.K-means聚类算法3.1 K-means算法的具体步骤&#xff1a; 4.决策树4.1 划分选择的目…

云计算vspere 安装过程

1 材料的准备 1 安装虚拟机 vmware workstation 2 安装esxi 主机 3 在esxi 主机上安装windows 2018 dns 服务器 4 在虚拟机上安装windows 2018 服务器 6 安装vcenter 5 登入界面测试 这里讲一下&#xff0c;由于部署vspere 需要在windows 2012 服务器上部…

【青牛科技】应用于音频信号处理系统的D258 是由两个独立的高增益运算放大器组成

概述&#xff1a; D258是由两个独立的高增益运算放大器组成。可以是单电源工作&#xff0c;也可以是双电源工作,电源的电流消耗与电源电压大小无关。应用范围包括变频放大器、DC增益部件和所有常规运算放大电路。 主要特点&#xff1a; ● 可单电源或双电源 工作 ● 在一个封…