写完了带有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=