算法分析作业-字母方阵

Description

现有N*N个方格按正方形整齐排列,现从左上角逆时针依次填充所有方格,直到填满为止。为方便起见,约定所有字母全为大写。由于方格可能较大,很容易超过26,因此要求当字母超过Z时,又回到A重新开始循环。

例如:对3*3个方格,可有如下排列:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一种防止通过英文字母频率分析解密的方法是使用加密字母对(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 文件名” 将文件名指定的英文文本文件以读/写模式打开,并通过输入的密钥单词建立正方形 密钥矩阵,再使用该密钥矩阵该将文件中的文本加密后,生成一个加密文本文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值