#Lutece0960. 易位法字符串加密

易位法字符串加密

Migrated from Lutece 960 易位法字符串加密

All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.

Description

密码学是一门既古老又年轻的学科。说它古老,是因为早在几千年前,人类就已经有了通信保密的思想,并先后出现了易位法和置换法等加密方法。到了1949年,信息论的创始人香农(C.E.Shannon)论证了由传统的加密方法所获得的密文,几乎是都可攻破的,这使得密码学的研究面临着严重的危机。

直至进入20世纪60年代,由于电子技术和计算机技术的迅速发展,以及结构代数、可计算性理论学科研究成果的出现,才使密码学的研究走出困境而进入了一个新的发展时期;特别是美国的数据加密标准DES和公开密钥密码体制的推出,又为密码学的广泛应用奠定了坚实的基础。

虽然加密方法很多,但最基本的加密方法只有两种,即易位法和置换法,其它方法大多是基于这两种方法形成的。易位法是按照一定的规则,重新安排明文中的比特或字符的顺序来形成密文,而字符本身保持不变。按易位单位的不同又可分成比特易位和字符易位两种易位方式。前者的实现方法简单易行,并可用硬件实现,主要用于数字通信中;而后者即字符易位法则是利用密钥对明文进行易位后形成密文。

具体方法是:假定有一密钥DCAB,其长度为44,字符串为I love China,去掉空格,四位四位分组,不足四位时用e补齐。具体见下图所示。输出时转化为大写输出。注意分组时要求先去掉空格,取列时按密钥的ASCII码从小到大取,输出时要求英文字母全转换为大写。

title

Input

输入有两行,第一行是密钥字符串,长度不超过2020个;第二行是待加密的字符串,不多于10001000个。

Output

输出有一行,加密后的字符串。

Samples

DCAB
I love China
OHEVIELCAIEN

Note

当密钥中字符一样时,先出现为小。

Resources

wxiaoping 2009年C语言第七次上机