ATM防窥探乱序键盘及方法与流程

文档序号:12127926阅读:991来源:国知局
ATM防窥探乱序键盘及方法与流程

本发明涉及安全认证技术领域,具体涉及一种ATM防窥探乱序键盘及方法。



背景技术:

自动柜员机,即ATM(Automatic Teller Machine),是指银行在不同地点设置的高度精密的机电一体化设备。利用磁卡或智能IC卡储存用户信息,让用户可以通过ATM进行提款、存款、转账等各种交易的金融自助设备。ATM的出现减轻了银行柜面人员的工作压力,更为人类提供了安全方便的金融服务体验。

传统ATM安全认证的方式中,用户是通过在ATM上排列固定的数字键盘输入银行卡密码进行银行卡账户的各种操作,此种方式的缺点是键盘上数字的位置是固定不变的,因而极易导致不法分子捕捉到用户输入的手势动作,从而推导出密码信息,导致账户安全出现问题。



技术实现要素:

本发明所要解决的技术问题是现有ATM键盘的数字按键固定从而容易被不发分子偷窥的问题,提供一种ATM防窥探乱序键盘及方法。

为解决上述问题,本发明是通过以下技术方案实现的:

一种ATM防窥探乱序键盘,键盘本体和乱序控制电路;上述键盘本体包括至少2个数字按键,其中每个数字按键的显示内容可变,即每个数字按键由透光的数字键壳和嵌置在数字键壳内的LED数码管组成;上述乱序控制电路包括单片机、时钟模块、译码锁存模块和通信电路组成;时钟模块的输出端与单片机连接,用于提供时钟信号;通信电路将单片机与ATM后台相连,用于实现单片机与ATM后台的交互通信;单片机的输出端经译码锁存模块与LED数码管连接,用于控制LED数码管所显示的具体数字;数字按键的输出端直接连接单片机的输入端,用于反馈用户所选择的数字按键。

参与乱序的数字按键的个数可以根据不同类型的键盘和安全程度的要求进行设定,如可以是1-9这9个数字,也可以是0-9这10个数字。考虑到ATM的数字按键为10个,因而在本发明中,键盘本体的数字按键为“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”这10个数字按键。

在本发明中,键盘本体还进一步包括至少1个功能按键,其中每个功能按键的显示内容固定,即每个功能按键由透光的功能键壳和嵌置在功能键壳内的LED灯珠组成;单片机的输出端直接与LED灯珠连接,用于控制LED灯珠的亮灭;功能按键的输出端直接连接单片机的输入端,用于反馈用户所选择的功能按键。

在本发明中,键盘本体的功能按键为“.”、“00”、“取消”、“更正”、“确认”、“变序”这6个功能按键。

为了防止不法分子的偷窥,在本发明中,键盘本体的表面贴有限制视角的导光片。

为了进一步防止不法分子的偷窥,在本发明中,键盘本体的上方设有遮挡栅格。

在本发明中,乱序控制电路还进一步包括蜂鸣器提醒模块,该蜂鸣器提醒模块与单片机的输入端连接。

上述ATM防窥探乱序键盘的ATM防窥探乱序方法,包括如下步骤:

步骤1、单片机取出时钟模块中寄存器存取的时间值,并作为随机数生成的种子;

步骤2、在随机数种子的基础上,单片机调用自带的伪随机产生函数产生0~9这10个随机数,且10个随机数的数值互不重复;

步骤3、将步骤2中产生的10个随机数通过译码锁存模块分别送入到不同的LED数码管上进行显示。

与现有技术相比,本发明改变了传统ATM机上固定数字键盘的输入模式,由于乱序LED数码管显示键盘不具备固定的数字标识,用户输入密码时,必须根据具体按键上LED数码管显示的数字完成密码的输入。系统会在相应时刻调出随机乱序算法打乱键盘的布局,用户也可以在输入密码界面进行手动刷屏。此外,本发明还采用限制视角的导光片,从而使键盘发出的光线具有一定的视角限制(≤10°),即处在大于10°视角之外的人无法看到键盘上的数字。由此,本发明减少了密码被不法分子偷窥的机率,有效保障了用户账户密码的输入安全。

附图说明

图1为ATM防窥探乱序键盘的立体结构示意图。

图2为键位排布示意图。

图3为ATM防窥探乱序键盘的系统框图。

图4为LED数码管与单片机I/O口的电路连接图;

图5为LED灯珠与单片机I/O口的电路连接图;

图6为矩阵键盘与单片机I/O口的电路连接图;

图中标号:1、键盘本体;1-1、数字按键;1-2、功能按键;2、遮挡栅格。

具体实施方式

一种ATM防窥探乱序键盘,如图1所示,主要由键盘本体1和乱序控制电路组成。

(1)键盘本体1部分:键盘本体1作为用户与银行后台交互的输入设备,包括数字按键1-1和功能按键1-2,参见图2。数字按键1-1和功能按键1-2的个数根据不同键盘的类型而有所不同。

在本发明中,数字按键1-1为“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”这10个数字按键1-1。每个数字按键1-1的显示内容可变,即每个数字按键1-1由透光的数字键壳和嵌置在数字键壳内的LED数码管组成。由于数字按键1-1参与随机乱序算法,当用户处理的业务需要输入密码时,系统会调用随机乱序算法,使得0-9这十个数字在键盘上分别随机排列;因此数字按键1-1采用数码管显示,使得数字按键1-1实现随机乱序功能。

在本发明中,功能按键1-2为“.”、“00”、“取消”、“更正”、“确认”、“变序”这6个功能按键1-2。每个功能按键1-2的显示内容固定,即每个功能按键1-2由透光的功能键壳和嵌置在功能键壳内的LED灯珠组成。由于功能按键1-2不参与随机乱序算法,因此功能按键1-2并不采用数码管显示,而是直接在按键中嵌入单个高亮的LED灯珠,并在按键上贴上与之对应的字符,使得灯亮时用户能看到相应的字符。“.”、“00”、“取消”、“更正”、“确认”与现有ATM上的键盘相同,“变序”功能按键1-2为增设的按键,用户也可以自行按下该功能按键1-2,调出随机乱序算法,实现手动刷屏的效果。

为了能够更好的避免不法分子的偷窥,以进一步提高键盘的安全系数,整个键盘上方设有类似于百叶窗的遮挡栅格2,并在键盘表面贴有导光片。在本发明中,键盘表面贴有的导光片为35片导光薄塑胶片,每片薄塑胶片间都喷上不透光的黑漆,使键盘正面的左右与前后可见视角≤10°,而大于10°的范围为不可见区域。这样只有正对键盘的用户本人能够看到键盘上显示的数字,身旁的其他人处于视角盲区,无法看到键盘上数码管的显示,从而能有效防止密码的泄露。

(2)乱序控制电路部分:乱序控制电路包括电源、单片机、时钟模块、译码锁存模块、蜂鸣器提醒模块和通信电路组成,整个系统框图参见图3。

电源为5V直流源,为各个模块提供电源。时钟模块的输出端与单片机连接,用于提供时钟信号。在本发明优选实施例中,时钟模块为DS1302时钟芯片。通信电路与单片机连接,用于实现键盘与ATM的通信。蜂鸣器提醒模块与单片机的输入端连接,用于发出声音提醒。

单片机为整个键盘的核心处理芯片,通过程序的控制,该芯片实现整个系统的高效协调运行。单片机调用随机乱序算法,实现矩阵键盘中数码管的乱序排列,且能通过行列扫描,获得按键值,并控制译码器和锁存器使数码管能按照要求显示数值,同时通过串口实现与后台银行系统的交互通信。在本发明优选实施例中,单片机是51增强版单片机STC12C5A60S2。

单片机的输出端经译码锁存模块与LED数码管连接,用于控制LED数码管所显示的具体数字。10个数字按键1-1的LED数码管与单片机引脚的连接方式如图4所示。本发明采用的是动态扫描的显示方式,这样可以节省很多I/O口和空间。每个数码管的共阴极分别对应单片机的一个I/O口,数码管中的共阴极可以看作是该数码管的位选使能端,这样可以实现单独选中某个数码管。而所有数码管的七个段分别对应地连在一起,即所有数码管的“a”段是连在一起并共用一个I/O口,“b”段也是连在一起并共用一个I/O口,“c”、“d”、…、“g”亦是如此。这样,当控制位选的I/O口选中一个数码管时,控制段选的I/O口就能控制该数码管显示具体的数值了。当控制一个数码管显示特定的数值时,立马控制下一个数码管显示另一个特定的数值,中间间隔的时间非常短,而人类视觉暂留的时间为0.1至0.4秒,这样切换的时间间隔远远小于人类能够分辨的时间间隔,因此在用户看来,这些数码管是同时显示的,并不会有任何闪烁的感觉。此外,为了进一步节省单片机I/O口的开销,本发明采用四七译码器74LS48,这样就能实现用四个I/O口控制数码管的七个段位。同时,为了提高单片机的驱动能力,本发明采用专用的锁存器74LS573,不仅有锁存作用,而且能提高驱动能力,保证数码管的亮度达到要求。

单片机的输出端直接与LED灯珠连接,用于控制LED灯珠的亮灭。6个功能按键1-2的LED灯珠与单片机引脚的连接方式如图5所示。为了节省不必要的开销,这6个LED灯珠共用一个I/O口,即可同时控制他们的亮和灭(ATM机工作时亮,ATM机不工作时灭)。同时为了增加驱动能力,使得LED灯珠的亮度达到要求,这里加上一个NPN三极管S8050。

此外,数字按键和功能按键的输出端直接连接单片机的输入端,用于反馈用户所选择的按键。键盘本体1的内部电路示意图如图6所示。当有按键按下时,会触发单片机的外部中断INT0,进入单片机的中断程序,此时单片机对键盘进行行列扫描,得到对应的行列码值,然后搜索与该码值对应的数字值,并将该数字值存在缓存区中,等用户输完所有密码,按下“确认”键后,单片机将存储在缓存区的所有密码值通过MAX232通信模块传送给后台的银行系统,银行系统再对密码的正误进行验证。当用户完成密码输入业务时,系统会使键盘按照传统默认的排列方式进行排列。在本发明中,数字键壳和功能键壳与单片机之间设有4路与非门芯片。采用4路输入与非门芯片74LS20,可以对整个矩阵键盘进行监控,当有任意一个按键被按下时,该按键所在行就为高电平,通过与非门芯片就变为低电平,这时就会触发单片机的外部中断(单片机的中断触发方式我们已经设置为低电平触发了),通知单片机此时有按键按下,需要对矩阵键盘进行行列扫描,以便检测出到底是哪一个按键按下。

对键盘的主要数字按键1-1进行乱序显示的主要目的是防止远距离动作窥探,避免不法分子通过录像回放,观察手部动作来猜测用户按下的相应位置,从而猜测用户密码。本发明通过在普通按键中嵌入LED数码管,并在控制LED数码管显示的单片机中加入高效随机乱序算法,使得键盘上所显示的数字键能够随机乱序排列,且该排列不能通过某种推算获得其规律,这使得不法分子无法从用户的输入动作猜测出输入的密码。

(3)算法部分:单片机内所运行的算法部分包括主程序、随机乱序程序和中断程序。

单片机内部算法主要产生让人无法预测和复现的随机乱序数列。传统的伪随机数产生函数,由于是在固定种子的基础上生成的,因此产生的随机序列极易被预测与复现,从而影响用户密码的安全性。本发明加入了时钟模块,将时钟模块中记录的时间值作为随机数生成的种子,在此基础上生成随机数。由于时钟模块寄存器记录的时间值每时每刻都不一样,因此这种方法生成的随机数有足够的独立性与均匀性,观测者无法预测与复现。而且时钟模块采用了主电源和后备电源两种供电模式,因此即使系统掉电,时钟模块仍可以采用后备电源继续工作,这样在下一次重启后,从时钟模块中取出的时间值仍然是最新的不一样的时间值。该方法保证了随机乱序算法的高效性、不可预测性。

主程序:

令这十个数字按键1-1数码管对应的标号为Ki(i=0,1,...,9),这十个按键对应的数值为Vi(i=0,1,...,9)。

步骤1:调用随机乱序算法,建立Vi与0~9随机对应关系;

步骤2:打开外部中断INT0,并设置触发方式为电平触发;

步骤3:分别控制十个数字按键1-1Ki(i=0,1,...,9)显示对应的数字Vi(i=0,1,...,9)。

随机乱序程序:

步骤1:取出时钟芯片DS1302中寄存器存取的时间值,并作为随机数生成的种子;

步骤2:在随机数种子的基础上,调用系统自带的伪随机产生函数rand(),产生0~9的随机数,且随机数的值互不重复;采取了查重的措施,保证每次产生的十个数字为0-9中互不重复的数;

步骤3:将步骤2中产生的十个随机数,分别对应的赋给V[i](i=0,1,...,9)。

中断程序:

步骤1:控制蜂鸣器响一声;

步骤2:对矩阵键盘进行行列扫描,检测按下的按键;

步骤3:判断按下的按键:

若按下的按键为数字按键1-1Ki,则将对应的键值Vi存入缓存区;

若按下的按键为“更正”键,则将最近存入缓存区的数值删除;

若按下的按键为“取消”键,则将缓存区中的密码值全部清空;

若按下的按键为“确认”键,则将缓存区中的密码值通过串口传递给后台进行验证。

步骤4:将K0,K1,...,K9与V0,V1,...V9恢复成默认的对应方式。

用户在进入密码输入界面时,系统会自动调出随机乱序算法,使得键盘上的数字按键1-1随机乱序排列。并且主程序保证整个键盘上的LED数码管稳定显示。用户可以手动按下“变序”键,对键盘上的数字手动进行随机乱序排列。键盘上有任何按键按下时都会触发单片机的外部中断INT0,进入中断处理程序,判断是哪一个按键按下了,并进行相应的处理。中断触发后,程序会判断如果是数字按键1-1按下就会将对应的数字存入缓存区;如果按下的是“更正”功能键,则将最近存入缓存区的数字删除;如果按下的是“取消”功能键,则将缓存区中存取的所有已输入的密码值清空;如果按下的是“变序”功能键,则调用随机乱序算法,将数码管对应的数值重新打乱;如果按下的是“确认”功能键,则将缓存区中的数值通过串口通信模块传给后台的银行系统进行验证,同时将数字按键1-1恢复成传统默认的排列方式。这里需要说明的一点是,当中断触发时,主程序会被压栈,进行现场保护,等中断处理完后再接着执行主程序,而本系统中的中断程序的处理时间不会超过人类视觉暂留的时间,因此不会影响数码管的显示。

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