用密钥方阵实现字母编码

时间:2012-07-12 16:58:28
【文件属性】:
文件名称:用密钥方阵实现字母编码
文件大小:52KB
文件格式:DOC
更新时间:2012-07-12 16:58:28
encrypt 一种防止通过英文字母频率分析解密的方法是使用加密字母对(pair)对英文文本进行加 密和解密。Playfair密码就是一种采用这种方法的简单密码。 1. 建立这种密码的密钥的方法如下: ⑴ 首先选择一个单词或词组作为密钥单词。由于密钥单词是建立密钥的唯一依据, 因此加密和解密的双方只要知道密钥单词和密码建立方法(Playfair密码),就 可以方便地建立唯一的密钥。 ⑵ 删除该密钥单词中的重复字母,然后,将这些字母(按组成单词的顺序)与字母 表中(除去密钥单词字母外)的其他字母(按字母排列顺序)一起组成一个5×5 的正方形密钥矩阵。由于正方形矩阵中只有25 个位置,所以将I和J视为同一 字母(即矩阵只包含I或J)。例如,我们选择的密钥单词为Spring,则正方形 密钥矩阵中的字母排列为: S P R I N G A B C D E F H K L M O Q T U V W X Y Z 2. 使用Playfair密码对单词进行的方法是对组成单词的字母从左至右顺序逐对进行。 根据被加密字母对在密钥矩阵的位置差异,加密字母对的产生方法分为三种情况: ⑴ 被加密的两个字母在密钥正方形中位置既不同列且不同行,例如被加密字母对为 AM,在正方形中找到以这两个字母为顶点的矩形为: S P R I N G A B C D E F H K L M O Q T U V W X Y Z 则这对字母的加密字母对应是该矩形的另一对顶点字母,即GO。 ⑵ 被加密的两个字母在密钥正方形中位置是同列或同行,则只需要简单地对调这两 个字母,例如被加密字母对为HK,则加密字母对为KH;又如被加密字母对为 AF,则加密字母对为FA。 S P R I N G A B C D E F H K L M O Q T U V W X Y Z ⑶ 被加密的两个字母相同,可以视为第⑵情况的特例,则被加密字母对不进行任何 变化。 注意,在加密变换过程中字母的大、小写保持不变。 例如单词Information根据上述加密变换规则经过In ->Ni, if -> pk, ko -> ft, tr -> qi, im -> st, ta -> oc, ct -> tc, ci -> ic, co -> at, tn -> ui被变换成Npfqsotiaui 3. 解密是对加密单词的字母从右至左顺序逐对进行。方法与加密方法相同。 例如加密单词Npfqsotiaui经过iu -> nt, ta -> oc, ci -> ic, ct -> tc, co -> at, ts -> mi, iq -> rt, tf -> ok, kp -> fi, iN -> nI被还原为Information。 要求: 1. 编写一个命名为encrypt的程序,该程序运行时能通过命令行“encrypt 文件名” 将文件名指定的英文文本文件以读/写模式打开,并通过输入的密钥单词建立正方形 密钥矩阵,再使用该密钥矩阵该将文件中的文本加密后,生成一个加密文本文件。

网友评论

  • 代码很清晰,内容很丰富,对我的考试有帮助