利用一次函数加密
2018-02-26王云峰
王云峰
为安全起见,现代生活中设置密码已是习以为常的现象了,如银行储蓄单、信用卡、电子邮箱账户登录、开启手机等,所设密码绝大多数采用的是阿拉伯数字、英文字母等.
密码的应用,历史悠久,过去常应用于一些非常重要的领域,如军事、政治、经济中.在战争中,上级将领想把信息传递给自己的下属,但又担心在传递过程中,信息被截获导致机密泄漏,如何才能避免这种可怕的后果呢?一种有效的方式就是对信息进行加密,从而隐藏信息.对原始的信息,我们称之为明文;加密后的信息,我们称之为密文.信息的发送方把明文转化为密文,信息的接收方再把收到的密文转化为明文.在此过程中,关键是信息的发送方与信息的接收方事先协商好某种要保密的“钥匙”(可称为密钥),用来加密和解密,谍战剧中的密码本就是这种密钥.传统的密码方案中,加密方和解密方必须知道同样的密钥,并用同一个密钥进行加密和解密,而且只要有密钥,加密与解密都很容易进行.但是在没有密钥的情况下,破译信息是不可能的或者是非常困难的,这正是谍战剧中敌对方为什么要如此费心费力去得到密码本的原因.
一次函数也可用于密码的加密或解密.如:有一种密码,将英文26个字母a,b,c,…,z(不分大小写)依次对应1,2,3,…,26这26个自然数(见表格),当明文对应的序号x为奇数时,密文对应的序号满足一次函数y=[x+12];当明文对应的序号x为偶数时,密文对应的序号满足一次函数y=[x2+13].
按上述规定,将明文“love”译成密文是什么呢?
容易知道,这是给明文加密,密钥是:当明文对应的序号x为奇数时,密码对应的序号是一次函数y=[x+12];当明文对应的序号x为偶数时,密码对应的序号是一次函数y=[x2+13].
觀察表格,明文“love”中l对应的序号是12,12是偶数,代入一次函数y=[x2+13]得y=19,再观察表格,序号19对应的字母是s,所以l的密文是s.
明文“love”中o对应的序号是15,15是奇数,代入一次函数y=[x+12]得y=8,再观察表格,序号8对应的字母是h,所以o的密文是h.
类似地,v的密文是x,e的密文是c.
综合可知,明文“love”的密文是shxc.
(作者单位:江苏省盐城市葛武初级中学)endprint