C语言学习笔记(九)---简单的RSA加密算法练习

本文介绍了使用C语言实现的简单RSA加密算法,通过将ASCII码与RSA加密结合,加密明文为数字序列。代码中预设了公开钥和秘密钥,加密和解密过程以字符'I'为例进行说明。
摘要由CSDN通过智能技术生成

写完了带有cbc的背包加密,按照课程,接下来应该学RSA,限于码力不足,仍然选用一个字符对应一个数字的加密方法,再加上cbc扩散提高加密强度。
源代码贴在下面,exe下载密码:2zpp

一、算法设计

RSA算法–百度百科
1.算法设计过程
首先考虑到明文多由各种字符组成,如“Just for fun.“。然后思考后决定加密后的密文为多个数字,每个数字对应一个字符。与字符对应的数字首先想到ASCII码,于是考虑对ASCII码进行RSA加密。(同样是限于码力不足,公开钥和秘密钥都是提前在代码里定义好的。)

2.公开钥
e、n:{11,899}

3.秘密钥
d、p、q:{611,29,31}

4.明文
Just for fun.
(初始向量为‘P’)
5.密文
769 171 92 665 697 823 351 172 605 313 730 422 844

6.加解密运算过程
1.加密(以加密’I’为例)
读取字符’I’——>得到其ASCII码值:73——>与前一位密文或初始向量密文异或:254——>使用公开钥进行加密计算得到密文:212
2.解密(以解密212为例)
读取密文数字212——>使用密钥对其求解:254——>得到其ASCII码值:73——>得到明文:I

二、简单的C语言实现

//
//  RSA
//
//  Created by passer_by_A on 2017/11/14.
//
#include <stdio.h>
int p=
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值