#include<stdio.h> #include<conio.h> char encrypt(char ch,int n)/*加密函数,把字符向右循环移位n*/ { wh
作者:吴真 密钥增加作为预白化处理,经8轮无密钥的向前混合,8轮有密钥的向前变换,8轮有密钥的向后变换,8轮无密钥的向后混合,以及作为后白化处理的密钥减法。
作者:吴真 2.1密钥的生成 MARS算法支持128~448位变长密钥,定义一个临时容器ULONG32 T用于存放用户输入的密钥, T = K T = n ; T = 0 ; 其中n是用户输入密
作者:吴真 二、算法原理
作者:吴真 一、背景知识
作者:吴真 2.2.2第二步密码核 把输入的128位数据分成四块D,D,D,D ,其中D作为源数据(Source),剩下的3个作为目标数据 该步骤中有一个称为E-Fun(见下一节)的操作,把
作者:吴真 2.2明文加密 2.2.1 第一步前向混合 输入的128位明文分成四块D,D,D,D,选取生成的40个密钥的前四个分别与上述四块数据进行加操作 D += K; D += K; D +
作者:吴真 2.3 密文解密 用于密文解密的40个子密钥的生成和明文加密时的40个子密钥的生成方法相同. 2.3.1 第一步前向混合 输入的128位密文分成四块D,D,D,D,选取生成的40个密钥的
作者:吴真 2.2.4 第三步后向混合 把输入的128位数据分成四块D,D,D,D第一轮: 输入的四块数据D,D,D,D,其中D作为源数据(Source),剩下的3个作为目标数据,把32位的
作者:吴真 2.3.2第二步密码核 把输入的128位数据循环左移32位后分成四块D,D,D,D,其中D作为源数据(Source),剩下的3个作为目标数据, 把Source循环右移13位的结果返回