蓝桥杯网络安全春秋赛 Crypto RSA

这篇具有很好参考价值的文章主要介绍了蓝桥杯网络安全春秋赛 Crypto RSA。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

蓝桥杯网络安全春秋赛 Crypto RSA

题目

某公司为了保护其重要数据,使用了RSA加密算法。该公司以同一个N为模数,为Alice和Bob分别生成了不同的公钥和与之相应的私钥。Alice和Bob都使用自己的公钥对同一条明文m进行加密,分别得到密文c1和c2。假设你是一名密码安全研究者,你已获取了N值、两个密文和公钥,能否使用RSA的相关知识还原出明文m呢?

#!python3.9
from Crypto.Util.number import *
from flag import flag
import gmpy2
import random

random.seed(123456)

m = bytes_to_long(flag)
e1 = random.randint(100000000, 999999999)
e2 = 65537
n = 7265521127830448713067411832186939510560957540642195787738901620268897564963900603849624938868472135068795683478994264434459545615489055678687748127470957
c1 = pow(m,e1,n)
c2 = pow(m,e2,n)
print(c1)
print(c2)

# 3315026215410356401822612597933850774333471554653501609476726308255829187036771889305156951657972976515685121382853979526632479380900600042319433533497363
# 1188105647021006315444157379624581671965264301631019818847700108837497109352704297426176854648450245702004723738154094931880004264638539450721642553435120

根据题目提示,这是共模攻击
这道题与平常的共模攻击不太一样的就是e1是随机产生、未知的
我们可以通过爆破的方式得到e1
代码如下:

import gmpy2
import random

random.seed(123456)

n = 7265521127830448713067411832186939510560957540642195787738901620268897564963900603849624938868472135068795683478994264434459545615489055678687748127470957
c1 = 3315026215410356401822612597933850774333471554653501609476726308255829187036771889305156951657972976515685121382853979526632479380900600042319433533497363
c2 = 1188105647021006315444157379624581671965264301631019818847700108837497109352704297426176854648450245702004723738154094931880004264638539450721642553435120
e2 = 65537

while True:
    e1 = random.randint(100000000, 999999999)
    s = gmpy2.gcdext(e1, e2)  # 拓展欧几里得算法,计算s1和s2
    m1 = gmpy2.powmod(c1, s[1], n)
    m2 = gmpy2.powmod(c2, s[2], n)

    m = (m1 * m2) % n
    c = pow(m, e1, n)   # 爆破e1
    if c == c1:
        print(bytes.fromhex(hex(m)[2:]))  # 16进制转文本
        break
# flag为:flag{359a1693-7bce-4fbc-87fa-111cdffaa0e8}

共模攻击是指用两个及以上的公钥(n, e)来加密同一条信息m
c1 = pow(m, e1, n)
c2 = pow(m, e2, n)
当e1, e2互质,有gcd(e1, e2) = 1
根据扩展欧几里得算法,一定存在整数x, y使gcd(a, b) = ax + by
即,e1*s1 + e2*s2 = 1
公式推导:文章来源地址https://www.toymoban.com/news/detail-739303.html

两条幂运算性质:
(a * b) % p = (a % p * b % p) % p
a^b % p = ((a % p)^b) % p
因为,
c1 = m^e1 % n,c2 = m^e2 % n,e1 * s1 + e2 * s2 = 1
所以有,
m = m % n
  = m^1 % n
  = m^(e1 * s1 + e2 * s2) % n
  = (m^(e1 * s1) % n * m^(e2 * s2) % n) % n
  = (c1^s1 % n * c2^s2 % n) % n

到了这里,关于蓝桥杯网络安全春秋赛 Crypto RSA的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 网络安全与密码学

    1、网络安全威胁 破坏网络安全的一些理论方式: 窃听:窃听信息,在网路通信双方直接进行窃听。 插入:主动在网络连接中插入信息(可以在message中插入恶意信息) 假冒:伪造(spoof)分组中的源地址,假冒客户端或服务器。 劫持:通过移除/取代发送方发或接收方“接管

    2024年02月16日
    浏览(46)
  • 网络安全:密码学基本理论.

    密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学. 目录 网络安全:密码学基本理论. 密码学基本概念: 密码安全性分析: 密码体系分析:

    2024年02月16日
    浏览(38)
  • 密码学的社会网络:如何保护社交网络的安全

    社交网络已经成为了现代人们生活中不可或缺的一部分,它们为我们提供了一种与家人、朋友和同事保持联系的方式。然而,这种联系也带来了一些挑战,因为社交网络上的数据经常被盗、篡改或泄露。因此,保护社交网络的安全至关重要。 在这篇文章中,我们将探讨密码学

    2024年02月20日
    浏览(64)
  • 【网络安全】1.4 密码学基础

    密码学是网络安全的核心组成部分,它帮助我们保护信息,防止未经授权的访问。在这篇文章中,我们将从基础开始,深入了解密码学的基本概念和原理,包括加密、解密、密钥、哈希函数等。我们将尽可能使用简单的语言和实例,以便于初学者理解。 密码学是一门研究信息

    2024年02月07日
    浏览(44)
  • 计算机网络安全——密码学入门

            网络安全是指在网络领域、专业领域的网络安全包括在基础计算机网络基础设施中所做的规定,网络管理员采取的策略来保护网络及网络可访问资源免受未经授权的访问,以及对其有效性(或缺乏)的持续不断的监控和测量的结合。 1.1.1 保密性         只有授

    2024年01月19日
    浏览(53)
  • 2023年春秋杯网络安全联赛春季赛Misc-AK

    CVE-2023-22809 可以下载任意包,考虑构造恶意的包,让他去下载 直接在setup下写反弹shell 给目录tar一下 猜单词 补文件头得压缩包密码  图片尾部有个key Keyischunqiu123 *Crypto Tips/Tools – AACC CYBER COMPETITION PRACTICE 搜索到Steg的tools 提示:捕获源端口为20,目的端口为80的TCP流量,可以获

    2024年02月12日
    浏览(36)
  • 《计算机系统与网络安全》 第四章 密码学基础

    🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬

    2024年02月11日
    浏览(50)
  • 【网络安全】【密码学】【北京航空航天大学】实验五、古典密码(中)【C语言实现】

    实验目的 和 原理简介 参见博客:古典密码(上) 1、弗纳姆密码(Vernam Cipher) (1)、算法原理 加密 原理: 加密过程可以用方程 ci = pi (+) ki 表示,其中 pi 是明文第 i 个二进制位, ki 是密钥第 i 个二进制位, ci 是密文第 i 个二进制位, (+) 是 异或 运算符。密文是通过对明

    2024年01月21日
    浏览(67)
  • 【网络安全】【密码学】【北京航空航天大学】实验四、古典密码(上)【C语言实现】

    1、 通过本次实验,了解古典加密算法的 主要思想 ,掌握 常见的 古典密码。 2、 学会 应用 古典密码,掌握针对部分古典密码的 破译方法 。 古典密码的编码方法主要有两种: 置换 和 代替 。 置换密码 重新排列明文中字符的顺序,不改变字符本身; 代替密码 不改变明文中

    2024年01月21日
    浏览(73)
  • 【网络安全】【密码学】【北京航空航天大学】实验三、数论基础(下)【C语言实现】

    1、中国剩余定理(Chinese Remainder Theorem) (1)、算法原理 m1 , m2 , … mk 是一组 两两互素 的正整数,且 M = m1 · m2 · … · mk 为它们的乘积, 则如下的同余方程组: x == a1 (mod m1) x == a2 (mod m2) … x == ak (mod mk) 对于 模M 有唯一的解 x = (M · e1 · a1 / m1 + M · e2 · a2 / m2 + … + M · ek ·

    2024年02月02日
    浏览(51)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包