下载此文档

古典密码和RSA算法代码.doc


文档分类:IT计算机 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
.页眉. .页脚. 中北大学软件学院实验报告专业: 软件工程方向: 软件开发与测试课程名称: 信息安全原理与技术班级: 10210A 01 学号: 1021010113 姓名: 郝娜娜辅导教师: 李瑞红 2013 . .页脚. 成绩: 实验时间年月日时至时学时数 1. 实验名称实验一:古典密码算法 2. 实验目的通过编程实现替代密码算法和置换密码算法,加深对古典密码体制的了解,为深入学习密码学奠定基础。 3. 实验内容⑴根据实验原理部分对替代密码算法的介绍,自己创建明文信息,并选择一个密钥,编写替代密码算法的实现程序,实现加密和解密操作。⑵根据实验原理部分对置换密码算法的介绍,自己创建明文信息,并选择一个密钥,编写置换密码算法的实现程序,实现加密和解密操作。 4. 实验原理或流程图⒈替换密码替换密码算法的原理是使用替代法进行加密,就是将明文中的字符用其它字符替代后形成密文。例如明文字母 a、b、c、d ,用 D、E、F、G 做对应替换后形成密文。替换密码包括多种类型,如单表替代密码、多明码替代密码、多字母替代密码、多表替代密码等。下面我们介绍一种典型的单表替代密码—凯撒密码,又叫循环移位密码。它的加密方法就是将明文中的每个字母用此字符在字母表中后面第 k 个字母替代。它的加密过程可以表示为下面的函数: E k(m )=( m+k) mod n 其中,m 为明文字母在字母表中的位置数;n 为字母表中的字母个数;k 为密钥;E k(m) 为密文字母在字母表中对应的位置数。⒉置换密码置换密码算法的原理是不改变明文字符, 只将字符在明文中的排列顺序改变, 从而实现明文信息的加密。置换密码有时又称为换位密码。矩阵换位法是实现置换密码的一种常用方法。它将明文中的字母按照给定的顺序安排在一个矩阵中,然后用根据密钥提供的顺序重新组合矩阵中的字母,从而形成密文。.页眉. .页脚. 5. 实验过程或源代码一、替换密码#include<> #include<> #define CRYPT_OK 1 #define CRYPT_ERROR 0 // 替换; int encrypt(); int decrypt(); char cipher[45];// 密文 char procla[45];// 明文 int main(){ int k;// 替换密码的密钥 int n=26;// 字母表中字母的个数 printf(" 加密:\n"); encrypt(); printf(" 解密:\n"); decrypt(); return 0; } int encrypt(){ int n=26; int k; int i; printf(" 请输入密钥"); scanf("%d",&k); getchar(); printf(" 该实验的字符仅限小写字母 a到 z\n"); printf(" 请输入明文:\n"); gets(procla); int len=strlen(procla); for(i=0;i<len;i++){ cipher[i]=(procla[i]-k-97+26)%n+97; } printf(" 密文是:"); puts(cipher); return CRYPT_OK; } int decrypt(){ int n=26; int k; int i; printf(" 请输入密钥"); .页眉. .页脚. scanf("%d",&k); getchar(); printf(" 该实验的字符仅限小写字母 a到 z\n"); printf(" 请输入密文\n"); gets(cipher); int len=strlen(cipher); for(i=0;i<len;i++) { procla[i]=(cipher[i]-97+k)%n+97; } printf(" 明文是:"); puts(procla); return CRYPT_OK; } 运行结果: 二置换密码#include<> #include<> #define CRYPT_OK 1 #define CRYPT_ERROR 0 #define keyLen 6 #define charNum 26 #define cipherLen 48 // 替代与置换; void juzheng(int k2[]); int encrypt(); int decrypt(); .页眉. .页脚. char cipher[cipherLen];// 密文 char procla[cipherLen];// 明文 int main() { printf(" 加密:\n"); encrypt(); printf("

古典密码和RSA算法代码 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人2286107238
  • 文件大小0 KB
  • 时间2016-03-09
最近更新