一种对计算机客户端信息安全输入的方法与流程

文档序号:12123496阅读:448来源:国知局

本发明涉及计算机客户端技术领域,具体涉及一种对计算机客户端信息安全输入的方法。



背景技术:

随着科技的发展,计算机在很多领域都得到广泛应用,由于目前计算机输入涉及到用户的隐私信息,在各种复杂的环境中无法保证用户信息的安全性;不法分子可以通过多种方式在用户输入信息和传输信息的过程中窃取用户的信息。因此,信息加密,尤其是一种对计算机输入信息的加密保护研究具有非常重要的意义。



技术实现要素:

本发明所要解决的技术问题是提供一种对计算机客户端信息安全输入的方法。

为实现本发明的目的,本发明所采用的技术方案是:

一种对计算机客户端信息安全输入的方法,包括计算机客户端,具体实现步骤为:(1)在计算机客户端上用户选择;(2)计算机客户端的键盘的按键值顺序布局或者乱序布局;(3)用户输入信息;(4)用户发送信息;(5)DES加密;(6)网络传输;(7)计算机服务器接受信息;(8)DES解密;(9)计算机服务器校验信息。

进一步的,所述步骤(2)为键盘的按键值的位置每次在键盘上的排列顺序都是随机的或者顺序的,具体实现方法是:首先定义一个数组,根据电路板原理和数码管的显示数据,定义0到9和A到Z的显示数据编码,然后再定义两个数组,分别用于存放键盘值和数码管的显示编码;然后用随机函数rand()和srand()对以上数据进行从新排序;每一次随机的是第一个数据的下标;第一次产生是从0-9之间进行产生,这样产生的数据和最后一位进行交换,对产生的随机数据序列对应数码管的编码,就是最终的显示数据;最后根据具体显示的那个数据去对照数码管的编码,实现数据的显示,同时根据显示的数据在键盘值数组对应的位置设置对应的值。

进一步的,所述DES加密由加密处理,加密变换和子密钥生成组成。

进一步的,所述加密处理具体实现方法为:(1)首先对64位的明文按初始换位表IP进行变换,例如输入的第58位,在输出的时候被置换到第1位;输入的是第7位,在输出时被置换到第64位;(2)对上述换位处理的输出经过16轮加密变换的加密处理,初始换位的64位的输出作为下一次的输入,将64位分为左、右两个32位,分别记为L0和R0,从L0、R0到L16、R16,共进行16轮加密变换;其中,经过n轮处理后的点左右32位分别为Ln和Rn,可做如下定义:

Ln=Rn-1

Rn=Ln-1

其中,kn是向第n轮输入的48位的子密钥,Ln-1和Rn-1分别是第n-1轮的输出,f是Mangler函数;

(3)进行16轮的加密变换之后,将L16和R16合成64位的数据,再进行IP-1的换位,得到64位的密文。

加密变换具体为:通过重复某些位将32位的右半部分按照扩展表3扩展换位表扩展为48位,而56位的密钥先移位然后通过选择其中的某些位减少至48位,48位的右半部分通过异或操作和48位的密钥结合,并分成6位的8个分组,通过8个S盒将这48位替代成新的32位数据,再将其置换一次。

子密钥生成具体为输入的64位密钥,通过压缩换位PC-1去掉每个字节的第8位,用作奇偶校验,减至密钥长度为56位,每层分成两部分,上部分28位为C0,下部分为D0,C0和D0依次进行循环左移操作生成了C1和D1,将C1和D1合成56位,再通过压缩换位PC-2输出48位的子密钥K1,再将C1和D1进行循环左移和PC-2压缩换位,得到子密钥K2......以此类推,得到16个子密钥。

进一步的,所述S盒输入6位,输出4位,一个S盒中具有4种替换表(行号用0、1、2、3表示),通过输入的6位的开头和末尾两位选定行,然后按选定的替换表将输入的6位的中间4位进行替代。

所述DES解密具体为:数据传输到目标机之后再根据密钥key进行解密,DES解密算法和DES加密算法相同,密钥倒序即可,最后得到正确的输入信息。

DES算法加密的关键代码为:

本发明提供的一种对计算机客户端信息安全输入的方法,本发明采用键盘顺序布局或乱序布局、DES加密方法和新的设计理念,来实现计算机用户信息输入的信息更加安全;可以应用各个行业中行业,是一种十分安全的用户信息输入;本发明提供了一种现实可行的解决方案,具有很好的推广使用价值。

具体实施方式

下列对本发明的实施作进一步的说明,以便本领域的技术人员能够更好的理解并实施。

实施例1

一种对计算机客户端信息安全输入的方法,具体实现步骤为:(1)在计算机客户端上用户选择;(2)计算机客户端的键盘的按键值顺序布局或者乱序布局;(3)用户输入信息;(4)用户发送信息;(5)DES加密;(6)网络传输;(7)计算机服务器接受信息;(8)DES解密;(9)计算机服务器校验信息。

步骤(2)为键盘的按键值的位置每次在键盘上的排列顺序都是随机的或者顺序的:首先定义一个数组,根据电路板原理和数码管的显示数据,定义0到9和A到Z的显示数据编码,然后再定义两个数组,分别用于存放键盘值和数码管的显示编码;然后用随机函数rand()和srand()对以上数据进行从新排序;由于本身芯片的资源和速度以及本身产品要求显示的实时性,在这个排序过程中,对产生随机数进行了改造,每一次随机的是第一个数据的下标;第一次产生是从0-9之间进行产生,这样产生的数据和最后一位进行交换,这样每遍历一次就会少一个值,这样就不会产生重复数据的机会,也就保证了速度。对产生的随机数据序列对应数码管的编码,就是最终的显示数据;最后根据具体显示的那个数据去对照数码管的编码,实现数据的显示,同时根据显示的数据在键盘值数组对应的位置设置对应的值,以便在用户输入信息能够正确发送出去。

DES加密(DES(key1,加密)DES(key2,解密)DES(key1,加密))由加密处理,加密变换和子密钥生成组成。加密处理具体实现方法为:(1)首先对64位的明文按初始换位表IP进行变换,例如输入的第58位,在输出的时候被置换到第1位;输入的是第7位,在输出时被置换到第64位;(2)对上述换位处理的输出经过16轮加密变换的加密处理,初始换位的64位的输出作为下一次的输入,将64位分为左、右两个32位,分别记为L0和R0,从L0、R0到L16、R16,共进行16轮加密变换;其中,经过n轮处理后的点左右32位分别为Ln和Rn,可做如下定义:

Ln=Rn-1

Rn=Ln-1

其中,kn是向第n轮输入的48位的子密钥,Ln-1和Rn-1分别是第n-1轮的输出,f是Mangler函数;

(3)进行16轮的加密变换之后,将L16和R16合成64位的数据,再进行IP-1的换位,得到64位的密文。

加密变换具体为:通过重复某些位将32位的右半部分按照扩展表3扩展换位表扩展为48位,而56位的密钥先移位然后通过选择其中的某些位减少至48位,48位的右半部分通过异或操作和48位的密钥结合,并分成6位的8个分组,通过8个S盒将这48位替代成新的32位数据,再将其置换一次。S盒输入6位,输出4位,一个S盒中具有4种替换表(行号用0、1、2、3表示),通过输入的6位的开头和末尾两位选定行,然后按选定的替换表将输入的6位的中间4位进行替代。

子密钥生成具体为输入的64位密钥,通过压缩换位PC-1去掉每个字节的第8位,用作奇偶校验,减至密钥长度为56位,每层分成两部分,上部分28位为C0,下部分为D0,C0和D0依次进行循环左移操作生成了C1和D1,将C1和D1合成56位,再通过压缩换位PC-2输出48位的子密钥K1,再将C1和D1进行循环左移和PC-2压缩换位,得到子密钥K2......以此类推,得到16个子密钥。

DES解密具体为:数据传输到目标机之后再根据密钥key进行解密(DES(key1,解密)DES(key2,加密)DES(key1,解密)),DES解密算法和DES加密算法相同,密钥倒序即可,最后得到正确的输入信息。

DES算法加密的关键代码为:

加密的关键代码为:

SymmetricStreamDecryptor ssd=des.CreateDecryptor();

cms=new CryptoMemoryStream();

ssd.SetSink(cms);

ssd.Write(encryptedData);

ssd.CloseStream();

byte[]decryptedData=cms.Data;

char[]decryptedCharArray=

utf8Encoding.GetChars(decryptedData);

Console.WriteLine("解密后数据:");

Console.Write(decryptedCharArray);

Console.WriteLine();}

}。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1