西安电子科技大学现代密码学实验四报告

实验题目(中文):

RSA大礼包(密码挑战赛赛题三)

实验摘要(中文):

本实验针对一个RSA加解密软件的加密数据进行了分析和破解。实验包括了对加密数据的截获以及尝试恢复RSA体制的相关信息。加密过程中使用了分片方法,每次加密最多8个明文字符,并对分片明文进行了512比特的填充,其中包括了64比特的标志位和32比特的通信序号。实验过程分为五个步骤:预处理、共模攻击、低指数攻击、费马分解法和Pollard p-1分解法,通过这些方法尝试破解加密信息。每个步骤都使用了Python代码来实现相应的算法,并最终得到了破解结果。

题目描述(清楚描述题目中文,写出自己的理解,请勿复制原题目)

  1. 有人制作了一个 RSA 加解密软件,发送了一些加密数据,我们对此进行了截获,并据此尽可能恢复出相关RSA体制信息。
  2. 对文本加密:每次加密最多 8 个明文字符;明文超过 8 个字符时,对明文分片,每个分片不超过 8 个字符。
  3. 分片明文填充为 512 比特消息后再进行加密,填充规则为高位添加 64 比特标志位,随后加上 32 比特通信序号,再添加若干个 0,最后 64 比特为明文分片字符对应的 ASCII 码。
  4. 数据帧格式:其中数据都是 16 进制表示,
  5. Alice 初次使用该软件,可能会重复发送某一明文分片。
    过程(包括背景,原理:必要的公式,图表;步骤,如有必要画出流程图,给出主要实现步骤代码)
    第一步: 预处理
    第二步:共模攻击
    第三步:低指数攻击
    第四步:费马分解法
    步骤五:Pollard p-1 分解

总结(完成心得与其它,主要自己碰到的问题和解决问题的方法)

实验心得

通过本次实验,我深刻体会到了密码学理论与实践的紧密结合。RSA加密作为一种广泛使用的非对称加密算法,其安全性依赖于大数分解问题的计算难度。然而,本实验让我认识到,即使是RSA这样成熟的加密体系,也可能因为实现上的疏忽或参数选择不当而变得脆弱。

实验中的每一步都是对理论知识的实践检验。共模攻击让我了解到,不同用户应使用不同的模数N来避免潜在的安全风险。低指数攻击则揭示了公钥指数e的选择需要谨慎,过低的e值会使得加密系统容易受到特定类型攻击的威胁。费马分解法和Pollard p-1分解法的应用则让我认识到了选择合适的大素数对于RSA安全性的重要性。

编写和运行Python代码实现这些攻击算法,不仅加强了我的编程技能,也提高了我对于算法有效性的直观理解。这次实验体现了理论知识与实践能力的结合,强化了我对密码学原理的理解,同时也提醒了我在设计安全系统时需要考虑的各种潜在风险。此外,实验也激发了我对于密码学更深层次问题的好奇心,比如如何设计更加安全的加密算法,以及如何评估一个加密体系的安全性。

总之,这次实验不仅是对加密技术的学习,也是对安全思维的一次锻炼。它让我更加明白,安全性是一个动态的目标,需要不断的学习和适应新的威胁,以保护信息不受未授权访问的侵害。。

在实验过程中,我还尝试了使用编程实现RSA加密算法。我学习了如何生成随机素数,如何计算欧拉函数,以及如何进行模运算。我还尝试了将字符串转换为十六进制数进行加密,这是一个非常实用的技巧。

总的来说,这次实验让我对RSA加密有了更深的理解。

相关推荐
山登绝顶我为峰 3(^v^)38 小时前
如何录制带备注的演示文稿(LaTex Beamer + Pympress)
c++·线性代数·算法·计算机·密码学·音视频·latex
应长天2 天前
密码学(斯坦福)
密码学
Turbo正则3 天前
量子计算基础概念以及八大分支
密码学·量子计算
网安INF14 天前
公钥加密与签名算法计算详解(含计算题例子)
网络·算法·网络安全·密码学
电院工程师15 天前
基于机器学习的侧信道分析(MLSCA)Python实现(带测试)
人工智能·python·嵌入式硬件·安全·机器学习·密码学
电院工程师16 天前
SM3算法C语言实现(无第三方库,带测试)
c语言·算法·安全·密码学
小七mod18 天前
【BTC】密码学原理
web3·区块链·密码学·比特币·btc·肖臻·北大区块链
电院工程师23 天前
轻量级密码算法PRESENT的C语言实现(无第三方库)
c语言·算法·安全·密码学
电院工程师23 天前
轻量级密码算法CHAM的python实现
python·嵌入式硬件·算法·安全·密码学
电院工程师24 天前
SM3算法Python实现(无第三方库)
开发语言·python·算法·安全·密码学