【字符加解密】RSA算法明文字符串加解密【含Matlab源码 3544期】

💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab武动乾坤博客之家💞💞💞💞💞💞💞💞💞💥💥💥💥💥💥💥💥
🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀
在这里插入图片描述
🔊博主简介:985研究生,Matlab领域科研开发者;

🚅座右铭:行百里者,半于九十。

🏆代码获取方式:
优快云 Matlab武动乾坤—代码获取方式

更多Matlab图像处理仿真内容点击👇
Matlab图像处理(进阶版)

⛳️关注优快云 Matlab武动乾坤,更多资源等你来!!

⛄一、RSA算法明文字符串加解密简介

1 RSA产生公私钥对
1.1 随机选择两个不相等的质数p和q。
(实际应用中,这两个质数越大,就越难破解。)
1.2 计算p和q的乘积n。
n的长度就是密钥长度。3233写成二进制是110010100001,一共有12位,所以这个密钥就是12位。实际应用中,RSA密钥一般是1024位,重要场合则为2048位。
1.3 计算n的欧拉函数φ(n)。称作Q
根据公式φ(n) = (p-1)(q-1)
1.4 随机选择一个整数e,也就是公钥当中用来加密的那个数字
条件是1< e < φ(n),且e与φ(n) 互质。
1.5 计算e对于φ(n)的模反元素d。也就是密钥当中用来解密的那个数字
所谓"模反元素"就是指有一个整数d,可以使得ed被φ(n)除的余数为1。ed = 1 (mod φ(n))
1.6 将n和e封装成公钥,n和d封装成私钥。

2 RSA加密
首先对明文进行比特串分组,使得每个分组对应的十进制数小于n,然后依次对每个分组m做一次加密,所有分组的密文构成的序列就是原始消息的加密结果,即m满足0<=m<n,则加密算法为:
c= m^e mod n; c为密文,且0<=c<n。

3 RSA解密
对于密文0<=c<n,解密算法为:
m= c^d mod n;

⛄二、部分源代码

%%RSA算法加解密过程
%%key1代表明文字符串,key代表分割后的字符串
%1.明文有多个数据时,采用数组方式分组写入数据[20,19];
%2.如果明文含字母,换成ASCII的十进制数算
%3.字母–>ASCII:abs(‘a’),ASCII–>字母:char(97),多个char([97,98])
key1=‘Hello01’;
disp(‘输入的明文字符串为:’);
disp(key1);
length_key1=length(key1);%求字符串长度
key=[];%用于放置分割后的明文
m=1;
j=1;
%分割明文,一个一个的分割
for i=1:j:length_key1
str1=str2double(key1(i));
if isnan(str1) %是否是无效字符
key(m)=abs(key1(i));
else
key(m)=str2double(key1(i));
end
m=m+1;
end
%rsa_pq函数用于随机获取p,q,n,Q,e,d;也可自定义
[p,q,n,Q,e,d]=rsa_pq();
%rsa_encrypt函数用于实现RSA加密过程,输出的rsa1为密文
rsa1=rsa_encrypt(key,e,n);
%rsa_encrodet函数用于实现RSA解密过程,输出的rsa2为明文
rsa2=rsa_encode(rsa1,d,n);
%把rsa2明文转回字符串
length_rsa2=length(rsa2);
mingwen=‘’;
for i=1:1:length_rsa2
if rsa2(i)>=65&&rsa2(i)<=90%判断是否是大写字母
mingwen=[mingwen,char(rsa2(i))];%拼接字符串
elseif rsa2(i)>=97&&rsa2(i)<=122%判断是否是小写字母
mingwen=[mingwen,char(rsa2(i))];
else
mingwen=[mingwen,num2str(rsa2(i))];
end
end
disp(‘解密出的明文字符串为:’);
disp(mingwen);

⛄三、运行结果

在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]李文亮.RSA算法原理及实现[D].计算机科学. 2003,(12)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值