2023春秋杯冬季赛 --- Crypto wp

文章目录

      • 前言
      • Crypto
        • not_wiener

前言

比赛没打,赛后随便做一下题目
在这里插入图片描述

Crypto

not_wiener

task.py:

from Crypto.Util.number import *
from gmpy2 import *
import random, os
from hashlib import sha1
from random import randrange
flag=b''
x = bytes_to_long(flag)

def gen_key():
    while True:
        q = getPrime(160)
        p = 2 * getPrime(1024-160) * q+1
        if isPrime(p):
            break
    h = random.randint(1, p - 1)
    g = powmod(h,(p-1)//q, p)
    y=pow(g,x,p)
    return p,q,g,y
def cry():
    a =
    p = getPrime(512)
    q = getPrime(512)
    d = getPrime(280)
    n = p * q
    e = inverse(d, (p - 1) * (q - 1))
    c = pow(a, e, n)
    return n,e,c

p,q,g,y=gen_key()
k1 = random.randint(1, q-1)
h1 = bytes_to_long(sha1(os.urandom(20)).digest())
r1 = pow(g, k1, p) % q
s1 = ((h1 + x*r1) * invert(k1, q))% q

n,e,c= cry()

a= 
b= 17474742587088593627
k2 = a*k1 + b
h2 = bytes_to_long(sha1(os.urandom(20)).digest())
r2 = pow(g, k2, p) % q
s2 = ((h2 + x*r2) * invert(k2, q)) % q
print(n,e,c)
print(p,q,g,y)
print("h1:%s r1:%s s1:%s"%(h1,r1,s1))
print("h2:%s r2:%s s2:%s"%(h2,r2,s2))

1.txt:

n = 98871082998654651904594468693622517613869880791884929588100914778964766348914919202255397776583412976785216592924335179128220634848871563960167726280836726035489482233158897362166942091133366827965811201438682117312550600943385153640907629347663140487841016782054145413246763816202055243693289693996466579973
e = 76794907644383980853714814867502708655721653834095293468287239735547303515225813724998992623067007382800348003887194379223500764768679311862929538017193078946067634221782978912767213553254272722105803768005680182504500278005295062173004098796746439445343896868825218704046110925243884449608326413259156482881
c = 13847199761503953970544410090850216804358289955503229676987212195445226107828814170983735135692611175621170777484117542057117607579344112008580933900051471041224296342157618857321522682033260246480258856376097987259016643294843196752685340912823459403703609796624411954082410762846356541101561523204985391564

p= 161310487790785086482919800040790794252181955976860261806376528825054571226885460699399582301663712128659872558133023114896223014064381772944582265101778076462675402208451386747128794418362648706087358197370036248544508513485401475977401111270352593919906650855268709958151310928767086591887892397722958234379
q= 1115861146902610160756777713087325311747309309771
g= 61073566757714587321114447684333928353300944355112378054603585955730395524359123615359185275743626350773632555967063692889668342544616165017003197599818881844811647270423070958521148291118914198811187731689123176313367399492561288350530256722898205674043032421874788802819858438796795768177550638273020791962
y= 23678147495254433946472657196764372220306841739888385605070426528738230369489739339976134564575544246606937803367113623097260181789372915552172469427842482448570540429192377881186772226796452797182435452490307834205012154495575570994963829345053331967442452842152258650027916313982835119514473311305158299360
(h1, r1, s1) = 535874494834828755542711401117152397489711233142, 117859946800380767356190121030392492081340616512, 26966646740134065096660259687229179143947213779
(h2, r2, s2) = 236574518096866758760287021848258048065293279716, 863199000523521111517835459866422731857447792677, 517924607931342012033031470185302567344725962419

看一眼cry(),d为280bit,n为1024bit,d大概为 n 0.273 n^{0.273} n0.273,wiener的界限为 1 3 n 1 4 \frac{1}{3}n^{\frac{1}{4}} 31n41,显然超过了wiener的界,而题目名为not_wiener,那就是boneh and durfee了,boneh and durfee的界限为 n 0.292 n^{0.292} n0.292,刚好在其范围内。
简单设置一下参数,设置delta = .273,m = 7
在这里插入图片描述
最后带入跑出来的d以及已知的n和c计算得到a

n = 98871082998654651904594468693622517613869880791884929588100914778964766348914919202255397776583412976785216592924335179128220634848871563960167726280836726035489482233158897362166942091133366827965811201438682117312550600943385153640907629347663140487841016782054145413246763816202055243693289693996466579973
e = 76794907644383980853714814867502708655721653834095293468287239735547303515225813724998992623067007382800348003887194379223500764768679311862929538017193078946067634221782978912767213553254272722105803768005680182504500278005295062173004098796746439445343896868825218704046110925243884449608326413259156482881
c = 13847199761503953970544410090850216804358289955503229676987212195445226107828814170983735135692611175621170777484117542057117607579344112008580933900051471041224296342157618857321522682033260246480258856376097987259016643294843196752685340912823459403703609796624411954082410762846356541101561523204985391564
d = 1493519932573300884636712093929290985070801830526216141153447882450934993737739146621
a = pow(c,d,n)
print(a)
#a = 24601959430759983424400804734518943158892550216065342062971649989571838687333

另外一部分,看上去和DSA差不多,主要是等式的变换
此时我们已知 p , q , g , y , h 1 , h 2 , r 1 , r 2 , s 1 , s 2 p,q,g,y,h_1,h_2,r_1,r_2,s_1,s_2 p,q,g,y,h1,h2,r1,r2,s1,s2,以及有如下等式
s 1 = ( h 1 + x ∗ r 1 ) ∗ k 1 − 1   m o d   q ( 1 ) s_1 = (h_1+x*r_1)*k_1^{-1} \space mod \space q \hspace{2.5cm}(1) s1=(h1+xr1)k11 mod q(1)
s 2 = ( h 2 + x ∗ r 2 ) ∗ k 2 − 1   m o d   q ( 2 ) s_2 = (h_2+x*r_2)*k_2^{-1} \space mod \space q \hspace{2.5cm}(2) s2=(h2+xr2)k21 mod q(2)
r 1 = ( g k 1   m o d   p )   m o d   q r_1 = (g^{k_1} \space mod \space p) \space mod \space q r1=(gk1 mod p) mod q
r 2 = ( g k 2   m o d   p )   m o d   q r_2 = (g^{k_2} \space mod \space p) \space mod \space q r2=(gk2 mod p) mod q
k 2 = a ∗ k 1 + b k_2 = a*k_1+b k2=ak1+b
我们的目的是求出x,但是等式中的k1和k2也是未知的,那么我们就没办法直接求x了。因此我们可以参照DSA,先消除关于x的式子
对于式1,乘上 k 1 r 2 k_1r_2 k1r2,得到
s 1 k 1 r 2 = r 2 ( h 1 + x ∗ r 1 )   m o d   q s_1k_1r_2 = r_2(h_1+x*r_1) \space mod \space q s1k1r2=r2(h1+xr1) mod q
对于式2,乘上 k 2 r 1 k_2r_1 k2r1,得到
s 2 k 2 r 1 = r 1 ( h 2 + x ∗ r 2 )   m o d   q s_2k_2r_1 = r_1(h_2+x*r_2) \space mod \space q s2k2r1=r1(h2+xr2) mod q
k 2 = a ∗ k 1 + b k_2 = a*k_1+b k2=ak1+b带入
s 2 ( a ∗ k 1 + b ) r 1 = r 1 ( h 2 + x ∗ r 2 )   m o d   q s_2(a*k_1+b)r_1 = r_1(h_2+x*r_2) \space mod \space q s2(ak1+b)r1=r1(h2+xr2) mod q

两式相减消除x,得到
s 1 k 1 r 2 − s 2 ( a ∗ k 1 + b ) r 1 = r 2 h 1 − r 1 h 2   m o d   q s_1k_1r_2-s_2(a*k_1+b)r_1=r_2h_1-r_1h_2 \space mod \space q s1k1r2s2(ak1+b)r1=r2h1r1h2 mod q
s 1 k 1 r 2 − s 2 a k 1 r 1 − s 2 b r 1 = r 2 h 1 − r 1 h 2   m o d   q s_1k_1r_2-s_2ak_1r_1-s_2br_1 = r_2h_1-r_1h_2 \space mod \space q s1k1r2s2ak1r1s2br1=r2h1r1h2 mod q
此时x已经消除,我们的目的是求出k1
再化简一下,得到
k 1 ( s 1 r 2 − s 2 a r 1 ) = r 2 h 1 − r 1 h 2 + s 2 b r 1   m o d   q k_1(s_1r_2-s_2ar_1) = r_2h_1-r_1h_2+s_2br_1 \space mod \space q k1(s1r2s2ar1)=r2h1r1h2+s2br1 mod q
k 1 k_1 k1移到左边
k 1 = ( r 2 h 1 − r 1 h 2 + s 2 b r 1 ) ∗ ( s 1 r 2 − s 2 a r 1 ) − 1   m o d   q k_1 = (r_2h_1-r_1h_2+s_2br_1)*(s_1r_2-s_2ar_1)^{-1} \space mod \space q k1=(r2h1r1h2+s2br1)(s1r2s2ar1)1 mod q
此时式子中的变量都已知,带入即可计算出 k 1 k_1 k1
解出k1,然后带入到 s 1 = ( h 1 + x ∗ r 1 ) ∗ k 1 − 1   m o d   q s_1 = (h_1+x*r_1)*k_1^{-1} \space mod \space q s1=(h1+xr1)k11 mod q
化简一下,得到x的等式
x = ( s 1 ∗ k 1 − h 1 ) ∗ r 1 − 1   m o d   q x = (s_1*k_1-h_1)*r_1^{-1} \space mod \space q x=(s1k1h1)r11 mod q
最后转换一下x即可得到flag
exp如下:

#sage
p= 161310487790785086482919800040790794252181955976860261806376528825054571226885460699399582301663712128659872558133023114896223014064381772944582265101778076462675402208451386747128794418362648706087358197370036248544508513485401475977401111270352593919906650855268709958151310928767086591887892397722958234379
q= 1115861146902610160756777713087325311747309309771
g= 61073566757714587321114447684333928353300944355112378054603585955730395524359123615359185275743626350773632555967063692889668342544616165017003197599818881844811647270423070958521148291118914198811187731689123176313367399492561288350530256722898205674043032421874788802819858438796795768177550638273020791962
y= 23678147495254433946472657196764372220306841739888385605070426528738230369489739339976134564575544246606937803367113623097260181789372915552172469427842482448570540429192377881186772226796452797182435452490307834205012154495575570994963829345053331967442452842152258650027916313982835119514473311305158299360
(h1, r1, s1) = 535874494834828755542711401117152397489711233142, 117859946800380767356190121030392492081340616512, 26966646740134065096660259687229179143947213779
(h2, r2, s2) = 236574518096866758760287021848258048065293279716, 863199000523521111517835459866422731857447792677, 517924607931342012033031470185302567344725962419
a= 24601959430759983424400804734518943158892550216065342062971649989571838687333
b= 17474742587088593627
k1 = (r2*h1-r1*h2+s2*b*r1)*inverse_mod(s1*r2-s2*a*r1,q)%q
x = (s1*k1-h1)*inverse_mod(r1,q)%q
flag = bytes.fromhex(hex(x)[2:])
print(flag)
#l1near_k1s_unsafe

【所有远游,都是为了重逢。】

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

面试题合集

目录 二叉树和动态规划的框架图内容补充数组为什么下标从0开始?windows内存上存储数据采用是什么模式?atoi 和itoa函数的实现字节对齐方式,为什么进行内存对齐?结构体的大小二分查找有重复数字中最左边的数 最右边的数工厂模式 单…

幻兽帕鲁PalWorld服务器搭建详细教程

幻兽帕鲁PalWorld是一款由Pocketpair开发的游戏,融合了多种玩法,其独特的题材和画风吸引了很多玩家。为了更好地进行游戏体验,很多玩家选择自行搭建服务器。本文将详细介绍如何搭建幻兽帕鲁PalWorld服务器。 第一步:购买服务器 根…

面试官灵魂一问,曾写过什么剧本?我:“简单的有,使用Ansible对lnmp架构部署!”

引言:今天带大家使用ansible进行对lnmp的架构部署,并做wordpress网站项目 准备ansible端 db1(安装nginx与php和项目) db2(安装数据库) 并做好管理关联配置 一、创建角色 路径可以自定义,例/root/juben.dir #ansible-galaxy init nginx#an…

.NET 跨平台图形库 SkiaSharp 基础应用

写在前面 SkiaSharp 是适用于 .NET 和 C# 的 2D 图形系统,由开源 Skia 图形引擎提供支持,在 Google 产品中广泛使用。 可以在应用程序中使用 SkiaSharp Xamarin.Forms 绘制 2D 矢量图形、位图和文本。支持跨平台,Windows、Linux、Anroid、IO…

docker-compose搭建redis哨兵模式

文件存放如下图: docker-compose.yml文件内容如下: version: 3.3 services:master:image: redis:3.2.12restart: alwayscontainer_name: redis-mastercommand: redis-server /usr/local/redis/conf/redis.confports:- 6380:6380volumes:- /root/redis/…

java开发——《并发编程》

目录 一.jmm 二.并发了什么 1.只有一个核(单核)并发还有没有意义 2.单核,还有什么可见性问题 3.并发和并行 三.volitaile 1.变量的可见性问题 2.原因是什么 3.本次修改的变量直接刷到主内存 4.声明其他内存对于这个地址的缓存无效 …

Java Web(三)--CSS

介绍 为什么需要: 在没有 CSS 之前,想要修改 HTML 元素的样式需要为每个 HTML 元素单独定义样式属性,费心费力;CSS 可以让 html 元素(内容) 样式(CSS)分离,提高web 开发的工作效率(针对前端开发),从而…

3.chrony服务器

目录 1. 简介 1.1. 重要性 1.2. Linux的两个时钟 1.3. 设置日期时间 1.3.1. timedatectl命令设置 1.3.2. date命令设置 1.4. NTP 1.5. Chrony介绍 2. 安装与配置 2.1. 安装: 2.2. Chrony配置文件分析 2.3. 同步时间服务器 2.3.1. 授时中心 2.3.2. 实验…

ssh登录失败:connection closed by foreign host

问题1: ssh登录不上,连接上就断掉 inetd.conf显示2277已打开,ip也没有冲突。 但是这两个文件是空的(size 0k): dropbear_dss_host_key dropbear_rsa_host_key 把/etc/dropbear里面的东西删掉,重新生成秘钥文件: …

Java强训day1(选择题编程题)

选择题 class Person{//堆public String name;public int age;public double weight;//方法区public void eat(){System.out.println(name"eat()");} }public class TestDemo2 {public static void main(String[] args) {//栈Person p1new Person();Person p2new Per…

基于python豆瓣电影评论的情感分析和聚类分析,聚类分析有手肘法进行检验,情感分析用snownlp

基于Python的豆瓣电影评论的情感分析和聚类分析是一种用于探索电影评论数据的方法。 情感分析 情感分析旨在从文本中提取情感信息,并对其进行分类,如正面、负面或中性。在这里,我们使用了一个名为snownlp的Python库来进行情感分析。Snownlp是…

深入了解达梦数据库的增删查改操作:从入门到精通

目录 前言: 一.达梦数据库的增删改查 1.创建数据库 2.插入数据 3.查看数据 4.删除数据 5.数据 前言: 在当今数字化的时代,数据库已经成为企业和组织的核心资产,是实现高效数据处理、存储和管理的重要工具。达梦数据库&…

linux下msyql自动备份

环境变量配置 vim /etc/profile 追加/usr/local/mysql,MySQL数据库默认安装路径 source /etc/profile 创建定时备份脚本 mkdir /home/mysqlDump/ vim /home/mysqlDump/mysql.sh #!/bin/bash mysqldump -uroot -p123456 bim_ry_prod > /home/mysqlDump/bim…

Qt/QML编程之路:QtMultimedia/Radio(41)

Qt有一个神奇的组件,那就是Qtmultimedia,它有强大的功能: 看看很多多媒体功能,都能在这里找到,不仅audio、video,还有camera、sound和radio。 比如: import QtQuick 2.0 import QtMultimedia 5.0Text {text: "Press Me!"font.pointSize: 24Audio {id: playM…

《幻兽帕鲁》被指AI缝合,开发过程疑点重重,最后附游戏安装教程

由日本游戏工作室Pocketpair开发的《Palworld / 幻兽帕鲁》毫无疑问成为了2024年的首个巨热游戏!上周五(2024年1月19日)游戏上线抢先体验,仅在3天内销量就已突破400万!并于2024年1月21日创下了1291967名同时在线玩家的…

Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载

目录 搭建 TFTP 服务文件下载更多内容 TFTP(Trivial File Transfer Protocol,简单文件传输协议)是 TCP/IP 协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务,端口号…

Ddosify 作为压测工具的使用指南

文章目录 1. 写在最前面1.1 Kubernetes 监控1.2 Performance Testing 2. 命令行安装 & 使用2.1 安装2.2 使用2.2.1 默认的例子2.2.2 定制的例子 3. Dashboard 安装 & 使用3.1 安装3.2 使用3.2.1 简单使用3.2.3 依赖的服务介绍 4. 碎碎念5. 参考资料 1. 写在最前面 由于…

空调设计软件工程师考虑点

空调设计软件工程师考虑点 看如的下边有输入压力P,单位不同,MPG是相对压力,Kpa是绝对压力。绝对压力比相对压力大一个大气压,即100kpa。 海立压缩机直接给转速值就行。CAN数据格式,Motoral高位在前,Intel高…

解决找不到vcruntime140_1.dll无法继续执行代码的常用方法

Vcruntime140_1.dll文件的缺失是一个常见的系统问题,它可能会引发一系列不良影响。具体来说,当计算机系统中这个至关重要的动态链接库文件(vcruntime140_1.dll)丢失或损坏时,依赖于该文件运行的各种应用程序将无法获取…

【3.4数据库系统】逻辑结构设计

目录 1.关系模型的概念1.1 关系模型的基本概念1.2 关系模型相关概念 2.逻辑结构设计 1.关系模型的概念 1.1 关系模型的基本概念 关系模型属于数据模型 数据模型三要素:数据结构、数据操作、数据的约束条件。 1.2 关系模型相关概念 △目或度:关系模式中属性的个数。 △候选码…