现代密码学概论|密码学基础–仿射密码实验C语言(文末附上C语言源代码)

实验内容:
编程实现仿射密码,要求有加密步骤和解密步骤。若输入参数a,b不合法,则报错。
实验操作步骤:
仿射加密
输入a和b,先判断a和26的最大公因数是否是1,运用辗转相除法

 如果a和26的最大公因数不是1,则密钥输入错误,需要重新输入。

 对明文的每个字符进行:密文字符=(a*明文+b)mod26的计算。查表可知,A对应65,Z对应90,a对应97,z对应122。

 同理,仿射解密,对密文进行编码,计算k1在模m意义下的逆元kni,代码如下

 在对密文的每个字符进行如下计算:明文=(kni*(密文-k2))mod26,同样对照ASCII码表进行大写和小写字母的假设。

 主函数部分是用来做交互选择

 实验结果:
操作前

选择1,第一次输入密钥不满足gcd(k1,26)=1

选择2,密钥为7和21

代码
#include
#include
#include
int gcd(int a,int b) // 辗转

现代密码学概论|密码学基础–仿射密码实验C语言(文末附上C语言源代码)最先出现在Python成神之路

版权声明:
作者:congcong
链接:https://www.techfm.club/p/26181.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>