现代密码学基础实验——多项式代码
1.实验内容
自选一种编程语言,实现古典密码中多项式代换密码的加解密过程。由于多项式代换密码可一般化移位密码、乘数密码、仿射密码,分别对多项式代换密码参数进行设置,完成这三个特例的实现。
多项式代换密码加密方程为:
f (l)=ktl t+kt-1l t-1+…+k1l +k0 mod q。
其中,kt, …, k0Zq,lZq。
2.实验理解
(1)因为移位密码,乘数密码,放射密码是特殊的多项式密码,根据多项式代码参数选择的不同而不同。
(2)定义两个不同的参数k1,k2来区别三个不同的密码类型,输入参数进行匹配
代码如下:
#include <stdio.h>
#include<stdlib.h>
#include<math.h>
int euclidean(int d, int f);
#define MAX 100
void choose1()//首界面操作选择函数
{
int test = 1;
while (test)
{
int k1 = 0;
int k2 = 0;
printf("请输入k1,k2的值\n");
scanf_s("%d %d", &k1, &k2);//输入不同的参数
if (k1 == 0 && k2 != 0)
{
printf("调用移位密码函数");
printf("\n请输入操作序号(1:加密 2:解密 0:退出):\n");
int n;