一种基于非对称算法的键盘加密系统及键盘加密方法与流程

文档序号:15272723发布日期:2018-08-28 22:37阅读:130来源:国知局

本发明涉及安全技术领域,尤其涉及一种键盘加密系统及键盘加密方法。



背景技术:

随着电子信息技术的高速发展,利用网络进行交易或传输文件越来越普及,为了保证交易过程中密码的安全性,需要对密码进行加密,防止密码被木马程序截获。

现有技术中,用户通常使用键盘作为指令和数据输入装置,实现客户端与用户端之间应用程序的响应指令运行,客户端是与服务端相对应,客户端为用户提供本地服务程序,一般安装在普通的客户机上,需要与服务端互相配合运行,服务端为客户端提供服务,并存储用户相关信息,例如用户账户密码等,用户通过客户端登录应用程序时需要通过密码认证,而如果客户端被木马病毒侵害则用户通过键盘输入密码时会被木马程序记录下来,对账户安全造成威胁,为此人们提出一种加密键盘,例如第“cn201220386190.1”号、名称为“加密键盘及使用该键盘的自助设备”的实用新型专利,该加密键盘包括存储有第一密钥的存储模块;侦测加密键盘是否被破坏的侦测模块;连接于存储模块和侦测模块的、在侦测模块侦测到加密键盘被破坏时删除存储模块内的第一密钥的第一保护电路。虽然上述加密键盘能够实现密码保护,但是其制造成本高、通用性差,使用时必须将计算机本身配备的普通键盘替换为该种加密键盘,而且加密效率不高。



技术实现要素:

本发明的目的是克服现有技术中的加密键盘通用性差的缺陷,提供一种制造成本低且通用性强的基于非对称算法的键盘加密系统及键盘加密方法。

本发明解决其技术问题所采用的技术方案是:

本发明的基于非对称算法的键盘加密系统包括:

键盘,用于输入键盘码;

加密器,用于加密,所述加密器基于加密算法对源文码进行加密得到密文,所述加密器将所述密文发送给服务端;

客户端,用于登录用户系统;

服务端,用于解密,所述服务端接收密文并根据解密算法对密文进行解密获得键盘输入的源文码,当所述服务端解密得到的源文码与服务端存储的源文码相匹配时,所述服务器认证成功,允许用户登录用户系统。

本发明所述加密器的输入端通过usb口或ps/2口与所述键盘相连,所述加密器的输出端与所述客户端相连,所述客户端与所述服务端通过有线网络或无线网络相互通信。

本发明所述加密器同时将键盘码和密文传输给所述客户端,所述客户端将密文发送给所述服务端。

本发明还提供一种基于非对称算法的键盘加密方法,使用上述的基于非对称算法的键盘加密系统,包括以下步骤:

s01写入程序算法:首先服务端随机生成公钥(e,n)和私钥(d,n),并将公钥(e,n)对应的加密程序发送到加密器,同时私钥(d,n)对应的解密程序保留在服务端;

s02加密:加密器开放数据接收功能并接收键盘输入的单个键盘码,对该单个键盘码进行处理,即对单个键盘码上继续添加机器码、时钟码、随机码组合成的源文码,加密器根据加密程序对源文码加密得到密文,加密器将密文发送给服务端;

s03解密:所述服务端接收密文并根据解密程序解密得到源文码,所述服务端判断解密所得的源文码与服务端存储的源文码是否匹配,如果匹配则允许用户登入客户端的用户系统。

本发明所述公钥(e,n)和私钥(d,n)的确定方法为,n=p1*p2.....pn,n≥3,1≤i≠j≤n,pi是质数,e*d=1mod((p1-1)*(p2-1)*......(pn-1))。

本发明所述加密程序中,利用所述公钥(e,n)和如下公式对所述源文码进行加密,得到所述密文:aemodn=b,其中,a表示所述源文码,b表示所述密文。

本发明所述解密程序中,利用私钥(d,n)和如下公式对所述密文进行解密,得到所述源文码:bdmodn=a,其中,a表示所述源文码,b表示所述密文。

本发明的基于非对称算法的键盘加密系统及键盘加密方法的有益效果是:

1.本发明的加密器基于非对称算法对源文码进行加密得到密文,加密器将密文发送给服务端,通过服务端解密认证,该加密器是一种通用的可独立使用的加密装置,加密器的输入端通过usb口或ps/2口与键盘相连,加密器的输出端与客户端的客户机连接,这样现有普通的键盘通过加密器与客户机连接后便可实现键盘加密,无需在客户机中安装安全控件,也无需对键盘本身做改装,因此通用性强;

2.本发明的加密器也可以嵌入键盘内使用,与键盘形成一体结构式的加密键盘;

3.本发明的加密器可以同时将源文码和密文传输给客户端,可以像普通键盘一样使用;

4.本发明的加密器根据加密指令,利用公钥(e,n)加密源文码得到密文,并向服务端发送密文,服务端接收到密文后,根据解密指令利用私钥(d,n)解密密文,其中,参数n由至少三个质数相乘得到,n=p1*p2.....pn,n≥3,参数e和参数d之间的关系满足e*d=1mod((p1-1)*(p2-1)*......(pn-1)),通过若干个数值较小的pi相乘就能够获得一个较大的参数n,保证加密的安全性,减少了加密前获取参数n的时间,提高了加密的效率。

附图说明

下面结合附图和具体实施方式对本发明作进一步详细的说明。

图1是本发明的基于非对称算法的键盘加密系统的原理框图;

图2是本发明的键盘加密方法流程图。

其中:键盘101、加密器102、客户端103和服务端104。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

如图1所示,本实施例的基于非对称算法的键盘加密系统包括键盘101、加密器102、客户端103和服务端104,其中,键盘101用于输入键盘码,键盘101包括但不限于机械键盘、塑料薄膜式键盘、导电橡胶式键盘和无接点静电电容键盘,加密器102获取单个键盘码后会在键盘码的基础上继续添加机器码、时钟码、随机码生成源文码。

本实施例的加密器102用于加密,加密器102基于非对称加密算法对源文码进行加密得到密文,加密器102将密文发送给服务端104,该加密器102是一种通用的可独立使用的加密装置,加密器102的输入端通过usb口或ps/2口与键盘101相连,加密器102的输出端与客户端103的客户机连接,客户端103与服务端104可以通过有线网络或无线网络相互通信,这样现有普通的键盘101通过加密器102与客户机连接后便可实现键盘101加密,无需在客户机中安装安全控件,也无需对键盘101本身做改装,因此通用性强。

需要说明的是,本实施例的加密器102也可以嵌入键盘101内使用,与键盘101形成一体结构式的加密键盘,也就是说内嵌有本实施例的加密器102的键盘也包含在本发明的保护范围内。

本实施例的加密器102可以同时将键盘码和密文传输给客户端103,这样安装加密器102后,键盘101仍然可以作为普通键盘使用,具体地,键盘101发送键盘码给加密器102,加密器102可以直接将键盘码发送给客户端103实时显示,同时加密器102临时存储键盘码并加入机器码、时钟码和随机码生成源文码,然后进行加密得到密文,客户端103可以将密文中转给服务端104,这样本实施例的加密器102连接到键盘101上之后,键盘101可以像普通键盘一样使用。

本实施例的客户端103用于登录用户系统,客户端103在普通的客户机上使用即可,客户端103在登录用户系统前需要密码认证,而密码认证并非由客户端103执行,而是由远程的服务端104进行判断,这样即使木马程序截获源文码也无法直接由客户端103进入用户系统。

当用户在用户系统上注册成功后服务端104会存储用户信息,例如账户、密码、个人认证信息等,本实施例的服务端104用于解密认证,服务端104接收密文并根据解密算法对密文进行解密获得源文码,当服务端104解密得到的源文码与服务端104存储的源文码相匹配时,服务端104认证成功,允许用户登录用户系统,否则服务端104发送提示信息到客户端103,提示密码错误。

本实施例中的加密器102可以通过客户端103将密文发送给服务端104,也可以通过无线方式直接将密文发送给服务端104,下面给出无线传输密文的实施方式,加密器102包括壳体和内置在壳体内的集成电路板,集成电路板上集成有加密芯片、无线模块以及外围电路,无线模块可以是wifi模块、3g模块或4g模块,wifi模块可以是讯扬wm200wifi模块、esp-12e串口wifi模块或esp8266串口wifi模块,3g模块可以是sl808x系列3g模块、q26系列sierra3g模块或aptgt75tl60t3g模块,4g模块可以是ui8300w4g模块或l570(tdd)4g模块,加密芯片写入加密程序,该加密程序是基于非对称算法的加密程序,集成电路板上设有多种接口,以实现与键盘或其他设备的连接,接口的具体类型不作限定,这样加密器102可以通过无线模块与服务端104直接通信,也就是说内嵌有无线模块的加密器102也包含在本发明的保护范围内。

如图1-2所示,上述的基于非对称算法的键盘加密系统的使用方法包括以下步骤:

s01写入程序算法:首先服务端104随机生成公钥(e,n)和私钥(d,n),并将公钥(e,n)对应的加密程序发送到加密器102,同时私钥(d,n)对应的解密程序保留在服务端104,公钥(e,n)和私钥(d,n)的确定方法为,n=p1*p2.....pn,n≥3,pi是质数,n为至少3个质数的乘积,e*d=1mod((p1-1)*(p2-1)*......(pn-1))。

s02加密:加密器102开放数据接收功能并接收键盘101输入的单个键盘码,对该单个键盘码进行处理,即对单个键盘码上继续添加机器码、时钟码、随机码组合成源文码,加密器102根据加密程序对源文码加密得到密文,加密器102将密文发送给服务端104,加密程序中,利用公钥(e,n)和如下公式对源文码进行加密,得到密文:aemodn=b,其中,a表示源文码,b表示密文。

s03解密认证:服务端104接收密文并根据解密程序解密得到源文码,服务端104判断解密所得的源文码与服务端104存储的源文码是否匹配,如果匹配则允许用户登入客户端103的用户系统,解密程序中,利用私钥(d,n)和如下公式对密文进行解密,得到源文码:bdmodn=a,其中,a表示源文码,b表示密文,其中,服务端104解密的具体过程为:服务端接收密文,然后根据私钥解密程序解密得到源文码中的键盘码、机器码、时钟码和随机码,并对该源文码中的字段进行分析,对时钟码与之前接受到的源文码中的时钟码进行比对,从而判断接受到的源文码是否是实时发送的源文码,对收到的机器码与服务端存储的该加密器的机器码进行对比,若源文码中的时钟码和机器码都符合要求,则将服务端解密所得的键盘码与服务端存储的键盘码(也就是注册时录入的密码)进行对比并判断是否匹配,如果匹配则允许用户登入客户端的用户系统;若源文码中的时钟码或机器码中任何一项不符合要求,则服务端发出报警信号。

在具体实施时,由于用户并不知道参数n是如何得到的,只知道参数n的数值,如果想要解密密文,则需要对参数n进行因式分解,才能得到解密时使用的私钥(d,n),而对参数n进行因式分解比较困难,因此保证了密文的安全性。

另外,由于密文的保密时效与解密耗时与参数n相关,参数n越大,保密时效和解密时间越长,为了加强密文的安全性,通常会选择数值较大的参数n;当参数n是两个质数a1和a2的乘积时,若要保证参数n很大,则需要a1和a2也很大,但是数值很大的质数比较难获得,在加密前选择参数时需要耗费比较多的时间,加密的效率受到影响;本实施例中的参数n是至少三个质数的乘积,即使pi的数值较小,要令参数n的数值需要很大,只需要多利用几个pi相乘即可,在加密前选择参数时不需要耗费较多的时间,有利于提高加密效率。

本实施例的加密器102对键盘码进行处理得到源文码然后利用公钥(e,n)加密得到密文后发送至服务端104,服务端104利用私钥(d,n)解密密文得到源文码,分析处理机器码、时钟码和随机码后可获得键盘码,在传输过程中保证了键盘码传递的安全性。此外,由于具有不良动机的用户,比如黑客,不知道公钥(e,n),即使伪造了一串字符给服务端104,服务端104利用私钥(d,n)解密也得不到正确匹配的键盘码,因此可以实现身份认证的目的。即便木马程序截获键盘101输入的键盘码,由于公钥(e,n)未知,无法得到正确的密文,无法通过服务端104的认证,仍然无法登入用户系统,大大提高了安全性。

本实施例的加密器102在键盘码的基础上添加机器码、时钟码、随机码,主要目的是为了增加破解的难度以及使得数据和时间以及机器id绑定,具有唯一性,再根据加密指令,服务端104接收到密文后,解密后获得的源文码中还会对时钟码进行时序分析,保证接收的数据的实时性和唯一性,无法通过复制数据包进行发送的形式进行混淆,每个源文码在解密后获得的时钟码只有符合要求的情况下才会进一步通过服务端104对客户端103进行数据反馈。

应当理解,以上所描述的具体实施例仅用于解释本发明,并不用于限定本发明。由本发明的精神所引伸出的显而易见的变化或变动仍处于本发明的保护范围之中。

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