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

实验题目(中文):
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加密有了更深的理解。

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

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

相关文章

C++初阶——基础知识(函数重载与引用)

目录 1.命名冲突 2.命名空间 3.缺省参数 4.函数重载 1.函数重载的特点包括: 2.函数重载的好处包括: 3.引用 引用的特点包括 引用的主要用途包括 引用和指针 引用 指针 类域 命名空间域 局部域 全局域 第一个关键字 命名冲突 同一个项目之间冲…

[原创][R语言]股票分析实战[5]:加载股票数据

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX QQ联系: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、D…

二分查找--二分查找算法(朴素二分模板)

个人主页:Lei宝啊 愿所有美好如期而遇 本题题目链接https://leetcode.cn/problems/binary-search/description/ 算法原理 二段性,我们发现这个数组可以找到某种规律将其分为两段,不断划分下去,最终可以找到target 图示 我们分…

图灵日记之java奇妙历险记--继承和多态

目录 继承概念继承语法父类成员访问子类中访问父类的成员变量子类中访问父类的成员方法 super关键字子类构造方法super和this初始化protected关键字继承方式final 关键字继承与组合 多态条件向上转型重写动态绑定&&静态绑定多态再理解向下转型多态的优缺点好处缺陷 继承…

Element|InfiniteScroll 无限滚动组件的具体使用方法

目录 InfiniteScroll 无限滚动 基本用法 详细说明 v-infinite-scroll 指令 infinite-scroll-disabled 属性 infinite-scroll-distance 属性 总结 需求背景 : 项目统计管理列表页面,数据量过多时在 IE 浏览器上面会加载异常缓慢,导致刚…

如何通过易舟云财务软件,查看会计账簿的明细账?

如何通过易舟云财务软件,查看会计账簿的明细账? 前言1、会计账簿2、会计明细账 财务软件操作步骤 前言 1、会计账簿 财务软件是一种用于管理和记录企业财务活动的电子工具。会计账簿是财务软件中的一个重要功能,用于记录和管理企业的会计信…

小程序wx:if 和hidden的区别?

在小程序中,wx:if 和 hidden 是用于条件渲染的两种不同方式。 选择使用哪种方式取决于具体情况。如果条件变化频繁或节点包含复杂的子节点,可以考虑使用 wx:if 进行条件渲染;如果条件变化较少且节点结构简单,可以使用 hidden 控制…

centos7.9安装图形远程控制桌面工具rdesktop

背景:受现场网络环境限制,有的时候会有linux远程windows的需求,这时候就得用上了linux上的一个远程工具了。。。 环境: centos7.9(前置条件,需要图形化界面功能并启动) rdesktop1.8.3 基础包 …

superset利用mysql物化视图解决不同数据授权需要写好几次中文别名的问题

背景 在使用superset时,给不同的人授权不同的数据,需要不同的数据源,可视化字段希望是中文,所以导致不同的人需要都需要去改表的字段,因此引入视图,将视图中字段名称设置为中文 原表数据 select * from …

将按键次数写入AT24C02,再读出并用1602LCD显示

#include<reg51.h> //包含单片机寄存器的头文件 #include<intrins.h> //包含_nop_()函数定义的头文件 sbit RSP2^0; //寄存器选择位&#xff0c;将RS位定义为P2.0引脚 sbit RWP2^1; //读写选择位&#xff0c;将RW位定义为P2.1引脚 s…

【面试】 Maven 的八大核心概念

Maven 的八大核心概念 在这里&#xff0c;举出这个标题&#xff0c;自然大家知道Maven是干啥的&#xff0c;就不过多进行赘述&#xff01;我们主要对于Maven的八大核心概念做一个解释补充&#xff0c;这也是我自己的一个学习历程&#xff0c;我们一起共勉&#xff01; 文章概述…

我国低代码平台汇总对比,强烈建议收藏!!!

对于低代码平台如何选择&#xff1f;在考虑功能&#xff0c;品牌知名度、契合度的同时&#xff0c;也要考虑价格。 近期整理了部分低代码平台的功能和价格汇总如下&#xff1a; 主要针对私有化部署版本进行对比&#xff1a; 微搭异行星爱速搭简道云明道云宜搭价格15w9.8K15W…

word中MathType公式编号

直接上效果图&#xff1a; 步骤如下&#xff1a; 安装MathTypeword中安装MathType选项卡。设置MathType选项卡添加分隔符插入公式&#xff0c;自动生成右编码 接下来介绍每一步。 文章目录 1. 安装MathType2. Word中安装MathType选项卡3. 配置MathType选项4. 添加分隔符5. 插…

Java注解以及自定义注解

Java注解以及自定义注解 要深入学习注解&#xff0c;我们就必须能定义自己的注解&#xff0c;并使用注解&#xff0c;在定义自己的注解之前&#xff0c;我们就必须要了解Java为 我们提供的元注解和相关定义注解的语法。 1、注解 1.1 注解的官方定义 注解是一种元数据形式。…

几种取时间的方法(附代码)

1.上古版 最原始的取时间的方法大概就是timelocaltime了&#xff0c;见代码&#xff1a; #include <stdio.h>#include <time.h>// gcc -o time_1 time_1.cint main(){time_t tm_now;time(&tm_now);// 或者写成 tm_now time(NULL);//1.直接打印&#xff1a;197…

Python入门学习篇(十二)——内置函数匿名函数

1 内置函数——数学函数 1.1 绝对值函数 1.1.1 语法 abs(参数) # 里面的参数既可以是整数,也可以是小数1.1.2 示例代码 m -1.99 n -9 print(f"{m}的绝对值为: {abs(m)}") print(f"{n}的绝对值为: {abs(n)}")1.1.3 运行截图 1.2 求商和余数 1.2.1 语…

文件管理练习

文件管理练习一&#xff0e;单项选择题&#xff1a; 1.在UNIX系统中&#xff0c;文件的索引结构存放着在&#xff08;C&#xff09; A.超级块 B.目录项 C.i-node D.空闲块 2.文件系统采用树形目录结构后&#xff0c;对于不同用户的文件&#xff0c;其文件名&#xff08;C&#…

Linux基础知识学习

开发工具&#xff1a;Xshell7VMware 首先要明确的是在Linux系统中“目录”文件夹 而所谓"家目录"指的是每个用户所拥有的一个目录&#xff0c;通常默认在 /home 目录下&#xff0c;其名称与用户的用户名相同。 ~代表的是就就是家目录 cd ~就可以直接进入当前用户下…

PostgreSQL 作为向量数据库:入门和扩展

PostgreSQL 拥有丰富的扩展和解决方案生态系统&#xff0c;使我们能够将该数据库用于通用人工智能应用程序。本指南将引导您完成使用 PostgreSQL 作为向量数据库构建生成式 AI 应用程序所需的步骤。 我们将从pgvector 扩展开始&#xff0c;它使 Postgres 具有特定于向量数据库…

Prometheus监控Linux

Linux 客户端安装docker export DOWNLOAD_URL"http://mirrors.163.com/docker-ce" curl -fsSl https://get.docker.com/ |sh apt install docker-compose -y 创建node-exporter mkdir -p /data/docker-compose cd /data/docker-composecat >docker-compose.ya…