密码学替换密码c语言编程,古典密码学上机实验

  • Post author:
  • Post category:其他


实验一、传统密码算法

一、实验目的及任务

通过编程实现替代密码算法和置换密码算法,加深对古典密码体制的了解,为深入学习密码学奠定基础

二、实验环境

运行Windows操作系统的PC机,具有C语言编译环境。

三、实验原理

古典密码算法历史上曾被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密.它的主要应用对象是文字信息,利用密码算法实现文字信息的加密和解密.下面介绍两种常见的具有代表性的古典密码算法,以帮助读者对密码算法建立一个初步的印象.

1. 替代密码

替代密码算法的原理是使用替代法进行加密,就是将明文中的字符用其它字符替代后形成密文.例如:明文字母a,b,c,d ,用D,E,F,G做对应替换后形成密文.

替代密码包括多种类型,如单表替代密码,多明码替代密码,多字母替代密码,多表替代密码——.

1)下面我们先介绍一种典型的单表替代密码,恺撒(caesar)密码,又叫循环移位密码.它的加密方法,就是将明文中的每个字母用此字符在字母表中后面第k个字母替代.它的加密过程可以表示为下面的函数:

E(m)=(m+k) mod n

其中:m为明文字母在字母表中的位置数;n为字母表中的字母个数;k为密钥;E(m)为密文字母在字母表中对应的位置数.

例如,对于明文字母H,其在字母表中的位置数为7,设k=4,则按照上式计算出来的密文为L:

E(7) = (m+k) mod n = (7+4) mod 26 = 11 = L

2)下面是一种典型的多表替代密码:维吉尼亚密码,它选择一个词组作为密钥,密钥中每个字母用来确定一个代换表,每个密钥字母用来加密一个明文字母。例如密钥字母为a,明文字母为c,则密文字母为0+2(mod26)=2,也就是c。直到所有的密钥字母用完,后再从头开始,使用第一个密钥字母加密。也就是说,密钥循环使用。

例:明文为attack begins at five,密钥为cipher,

attack begins at five    明文

+   cipher cipher ci pher    密钥

———————————————-

=   cbihgb dmvprj cb upzv    密文

去除空格后为cbihgbdmvprjcbupzv