跳转至

实验步骤

1.加密

  1. 随机选取满足条件的𝑝、𝑞 (𝑝 和 𝑞 的距离不要太近) ,要求𝑝和𝑞的二进制长度不小于14bit(4位数的十进制,不小于1000);
  2. 根据欧几里德算法找到一个随机整数 e (e不要选取太小的数比如 3,7,11等);
  3. 根据扩展的欧几里得算法找到整数 d;
  4. 文件字符的处理,可以参考下面提供的两种参考方式,也可以用其他方式;
  5. 用公钥加密私钥解密。

2.文件字符的处理

  1. 每个英文字母对应一个数字,规则如下:每个字母或数字与一个两位的十进制数字对应,(如:数字为00 - 09,𝑎-z = 10-35,𝐴-Z = 36-61),明文的一个分组块由4个十进制数字组成, 即两个字母。去掉空格和其他标点符号。
  2. 直接将字符的ASCii码两个字符组成一个四位十进制数处理。

说明 ✨

  1. RSA中加密解密用10进制来算;
  2. 加密时明文4个十进制位一组明文加密,也就是一个4位数。
  3. 如果最后一个分组不足4位,比如1个字母,明文分组可以自己设定一个2位数的值进行填充。这个2位数自己设定(大于61的数字,针对第一种转换方式,第二种方式可以直接填0),解密时删除。4. 明文加密后的密文分组需要处理长度,否则解密时不知道如何分组。为保险起见,设置密文的分组长度为m分组的长度。此长度小于n的长度。
  4. 对于长度不足的情况,要前面补0
  5. 解密时如果明文长度不足4位也是前面补0