刷题记录 7.8

博客内容涉及大数计算,使用 Sage 进行运算,并探讨了基于共模攻击的解密方法,通过 egcd 算法解决密文。同时,文章包含了异或操作用于解密的步骤,最后给出了相关的编程代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大数计算

直接用sage跑就行
在这里插入图片描述
然后转16进制

together

myflag1和2 base64解密 解不开
以为是网站问题 发现都解不开 找到了一个可以转为16进制的网站https://www.qqxiuzi.cn/bianma/base64.htm

\x47 \x73 \x68 \xcb \xaa \xf7 \x58 \xb2 
\x2d \xca \xd0 \x26 \x6f \x81 \x66 \x1c 
\x4c \xa0 \xa2 \x29 \x6e \x70 \x41 \x19 
\x6c \xef \x59 \x61 \x7c \x79 \x24 \xdd 
\x37 \x1c \xda \x41 \x2c \x3c \x7b \x7d 
\x77 \x76 \x7e \x5f \x94 \x2f \x9f \xb5 
\xd5 \x10 \xac \xff \x2d \x2a \x95 \x31 
\x94 \x45 \x65 \x83 \xb4 \x6e \xba \x78 
\xd2 \xf3 \x1b \x03 \x69 \x00 \xa8 \x95 
\x8f \xa2 \x3b \x46 \xd5 \x09 \x97 \x63 
\xdc \x9b \x73 \x6f \x15 \xe0 \x05 \xc0 
\x8f \x54 \xb1 \x54 \x44 \xca \x1e \xf3 
\x21 \x5e \xac \x23 \xd6 \x4f \xf2 \x5f 
\xf6 \x19 \x50 \xe8 \xac \xb0 \x33 \xe5 
\x42 \xd6 \xf9 \xfd \x0e \x20 \xd1 \xa1 
\x26 \x66 \x66 \xf0 \x52 \xff \x68 \x39 
\xe5 \x7d \x31 \x25 \x85 \x0f \x3b \x2c 
\xf8 \x9c \x5a \x95 \xd8 \xa0 \xcb \x72 
\xaf \xa5 \xab \xc6 \x32 \xba \x3a \x7b 
\x67 \xf0 \x1a \x82 \xb7 \x41 \x23 \x43 
\xb4 \xde \x5d \x98 \x71 \x20 \x7f \x55 
\x4c \xf5 \xa3 \x0e \x61 \x5d \x98 \xea 
\x9a \xa9 \xd5 \x48 \x4f \xe2 \xd9 \x7a 
\x64 \xe0 \x2c \xd1 \x12 \xc0 \xce \x67 
\x9f \x88 \x39 \x4b \x76 \x85 \x0c \x5c 
\x23 \xd5 \x88 \x83 \x62 \x5d \x3f \xfb 
\xc7 \xad \xbc \xa7 \xce \xad \xfa \x0a 
\x3b \x04 \x74 \x0b \x1b \x11 \x1d \xa8 
\x30 \x75 \x45 \x13 \x11 \x2f \x04 \x70 
\x72 \xe6 \x30 \x60 \xb1 \x0a \x40 \xd9 
\x9f \x74 \xb3 \x9a \x60 \x3a \x35 \xbd 
\xe5 \x80 \xb7 \x92 \x80 \x6f \x0f \xd4 



\x3b \xea \xd1 \x09 \x72 \x37 \x69 \x30 
\x7a \x3f \x5a \xd8 \x20 \xe3 \xd4 \x75 
\xa9 \x54 \xa7 \xab \xa3 \xa7 \x01 \x2a 
\xe0 \x8d \xb4 \x0a \x85 \x80 \xf8 \x72 
\x0b \xf3 \x1c \x46 \xb6 \xa6 \x3a \x37 
\x98 \x29 \xaf \x48 \x2e \x66 \xff \x59 
\x80 \xe1 \x00 \x30 \x59 \xc1 \xc4 \xea 
\x8c \x75 \x53 \x67 \x07 \xd1 \xa0 \x9e 
\x19 \x97 \xb6 \xdd \x59 \x5b \x27 \x4f 
\xa8 \x87 \x07 \xbe \x57 \xf0 \xa5 \xdf 
\xcb \xc9 \xdd \x17 \x4a \x35 \xe7 \x8d 
\xac \xf7 \x3f \x7b \xce \x42 \xf4 \x7b 
\xd5 \xc0 \xff \xb9 \x7c \x81 \x03 \x45 
\xcf \xce \x69 \xd3 \x20 \xc8 \x04 \x86 
\xe1 \x89 \x54 \x59 \xbc \x9a \x29 \xf4 
\x2f \xfd \xaa \x23 \xbc \x20 \xfd \x9e 
\xf0 \xd7 \xee \x26 \x3a \x68 \xba \xe7 
\x92 \x48 \x5d \xe0 \xa2 \x1b \x6d \xee 
\x90 \x3b \xfa \x97 \xd6 \xd9 \xba \xa7 
\xc6 \xbd \x60 \x9a \xd4 \xa2 \x97 \x58 
\x33 \xf7 \xd6 \x72 \xdb \xa7 \x46 \x4d 
\xda \x86 \xd4 \xb3 \xa8 \xc4 \x01 \xad 
\x6a \x55 \x36 \x97 \xe8 \xce \x0c \xcb 
\xeb \x24 \xb3 \xed \x15 \xbc \x70 \x13 
\xac \x05 \x2e \x0a \xb9 \x8c \xc1 \x51 
\x22 \xbe \xa2 \x09 \xfe \x74 \xba \xca 
\x61 \x95 \x11 \x13 \x7a \x3a \x19 \xf3 
\xca \xbd \x7a \xf2 \x49 \xc4 \x04 \xa3 
\x95 \x8f \x41 \x40 \x3b \x1d \xd8 \x2d 
\xfa \x69 \x30 \xcf \x97 \x6c \xe1 \x87 
\x7a \xa7 \x4a \x25 \x12 \xe9 \x32 \xfa 
\x85 \x5c \x33 \x06 \x40 \x89 \xd3 \xdf 

不知道有啥用
public key 发现n一样 共模攻击
可是还差c1和c2
上面两个就是c1 和c2了
把符号去掉连起来

import gmpy2
from Crypto.Util.number import long_to_bytes
import  binascii
import  rsa
import math
def egcd(a, b):
    if a == 0:
        return (b, 0, 1)
    else:
        g, y, x = egcd(b % a, a)
        return (g, x - (b // a) * y, y)

def CMA(n,e1,e2,c1,c2):
    s = egcd(e1, e2)
    s1 = s[1]
    s2 = s[2]
    if s1<0:
        s1 = - s1
        c1 = gmpy2.invert(c1, n)
    elif s2<0:
        s2 = - s2
        c2 = gmpy2.invert(c2, n)
    m = pow(c1,s1,n)*pow(c2,s2,n) % n
    return m

e1 = 2333
n = 14853081277902411240991719582265437298941606850989432655928075747449227799832389574251190347654658701773951599098366248661597113015221566041305501996451638624389417055956926238595947885740084994809382932733556986107653499144588614105694518150594105711438983069306254763078820574239989253573144558449346681620784979079971559976102366527270867527423001083169127402157598183442923364480383742653117285643026319914244072975557200353546060352744263637867557162046429886176035616570590229646013789737629785488326501654202429466891022723268768841320111152381619260637023031430545168618446134188815113100443559425057634959299
e2 = 23333
c1=0x477368cbaaf758b22dcad0266f81661c4ca0a2296e7041196cef59617c7924dd371cda412c3c7b7d77767e5f942f9fb5d510acff2d2a953194456583b46eba78d2f31b036900a8958fa23b46d5099763dc9b736f15e005c08f54b15444ca1ef3215eac23d64ff25ff61950e8acb033e542d6f9fd0e20d1a1266666f052ff6839e57d3125850f3b2cf89c5a95d8a0cb72afa5abc632ba3a7b67f01a82b7412343b4de5d9871207f554cf5a30e615d98ea9aa9d5484fe2d97a64e02cd112c0ce679f88394b76850c5c23d58883625d3ffbc7adbca7ceadfa0a3b04740b1b111da830754513112f047072e63060b10a40d99f74b39a603a35bde580b792806f0fd4
c2=0x3bead109723769307a3f5ad820e3d475a954a7aba3a7012ae08db40a8580f8720bf31c46b6a63a379829af482e66ff5980e1003059c1c4ea8c75536707d1a09e1997b6dd595b274fa88707be57f0a5dfcbc9dd174a35e78dacf73f7bce42f47bd5c0ffb97c810345cfce69d320c80486e1895459bc9a29f42ffdaa23bc20fd9ef0d7ee263a68bae792485de0a21b6dee903bfa97d6d9baa7c6bd609ad4a2975833f7d672dba7464dda86d4b3a8c401ad6a553697e8ce0ccbeb24b3ed15bc7013ac052e0ab98cc15122bea209fe74baca619511137a3a19f3cabd7af249c404a3958f41403b1dd82dfa6930cf976ce1877aa74a2512e932fa855c33064089d3df
m=long_to_bytes(CMA(n,e1,e2,c1,c2))
print(m)



EasyProgram

将file文件16进制
得到flagx
^异或再异或变为原来的

s=[]
t=[]
key='whoami'
for i in range(256):
    s.append(i)
for i in range(256):
    t.append(key[i%6])
j=0
for i in range(256):
    j=(j+s[i]+ord(t[i]))%256
    s[i],s[j]=s[j],s[i]
i=0
j=0
x=0
flag=''
flagx=[0x00,0xBA,0x8F,0x11,0x2B,0x22,0x9F,0x51,0xA1,0x2F,0xAB,0xB7,0x4B,0xD7,0x3F,0xEF,0xE1,0xB5,0x13,0xBE,0xC4,0xD4,0x5D,0x03,0xD9,0x00,0x7A,0xCA,0x1D,0x51,0xA4,0x73,0xB5,0xEF,0x3D,0x9B,0x31,0xB3]
for m in range(38):
    i=(i+1)%256
    j=(j+s[i])%256
    s[i],s[j]=s[j],s[i]
    x=(s[i] + (s[j]%256))%256
    flag+=chr(flagx[m] ^ s[x])
print(flag)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值