问题7119--密码学

7119: 密码学

[命题人 : ]
时间限制 : 1.000 sec  内存限制 : 256 MiB

题目描述

【题目描述】

假设您需要加密一条绝密消息,如SEND MORE MONKEYS”。您可以使用简单的替换密码,其中字母表中的每个字母都被替换为不同的字母。然而,这些密码很容易被破解,因为字母表中的某些字母(如“E”、“S”和“A”)比其他字母(如‘Q’、‘Z’和‘X’)出现得更频繁。更好的加密方案会改变每个字母的替换。一种这样的系统是自动密钥密码。

要加密消息,您首先选择一个秘密单词,比如ACM”,然后在消息前面加上前缀。这个较长的字符串被截断为消息的长度并称为密钥,密钥的第n个字母用于加密原始消息的第n字母。通过将密钥中的每个字母视为消息中相应字母的循环移位值来进行加密,其中“a”表示移位0,“B”表示移位1等等。使用“ACM”作为密码,我们将按如下方式加密消息:


注意,消息中的字母E”在第一次遇到时被加密为“G”(因为密钥中的对应字母是“C”,表示移位2),但在接下来的两次中被加密为QS

你的任务很简单:给定密文和密码,请解密出原始信息。

【输入】

输入由两行组成。第一行为密文,第二行为密钥(可能比密文长)。两行都只包含大写字母。密文和密钥单的长度都在1500个字母之间。

【输出】

显示使用给定密码生成给定密文的原始消息。

【样本输入1

SGZVQBUQAFRWSLC

ACM

【样本输出1

SENDMOREMONKEYS

样例输入 复制

SGZVQBUQAFRWSLC
ACM

样例输出 复制

SENDMOREMONKEYS

来源/分类