CN105353889B - 一种随机扫描键盘及其扫描方法 - Google Patents
一种随机扫描键盘及其扫描方法 Download PDFInfo
- Publication number
- CN105353889B CN105353889B CN201510852427.9A CN201510852427A CN105353889B CN 105353889 B CN105353889 B CN 105353889B CN 201510852427 A CN201510852427 A CN 201510852427A CN 105353889 B CN105353889 B CN 105353889B
- Authority
- CN
- China
- Prior art keywords
- scanning
- keyboard
- random number
- control unit
- random
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000003825 pressing Methods 0.000 claims description 23
- 238000003860 storage Methods 0.000 claims description 17
- 230000007246 mechanism Effects 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000013500 data storage Methods 0.000 claims description 3
- 210000000352 storage cell Anatomy 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 2
- 239000011159 matrix material Substances 0.000 description 17
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 7
- 230000005611 electricity Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/0202—Constructional details or processes of manufacture of the input device
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
本发明提出一种随机扫描键盘及其扫描方法,其中该方法包括:控制部件生成随机扫描顺序,控制部件对键盘部件按照随机数对应的扫描顺序进行扫描生成电平,控制部件对得到的输出电平及输入电平解析,得到按键值。相对于现有技术,本申请的技术方案通过增加随机数发生器和扰码装置,对键盘的扫描过程进行加密干扰,外部仪器再分析波形时,无法找到扫描的规律,即便被监听,也无法准确检测到具体哪一个按键被按下,从而保护输入信息的安全。
Description
技术领域
本发明涉及一种通信技术,特别是涉及一种随机扫描键盘及其扫描方法。
背景技术
键盘是电脑、手机、POS机等电子产品中主要的人机对话设备。现在有很多触摸屏式键盘,其通过编程实现按键随机分布,但是使用编程实现的方式容易被黑客等利用而沦为盗取用户隐私的工具,所以在一些涉及高私密度的情况下,如涉及金融、安全的情况下,具有物理按键的键盘有着更广泛的应用。
物理按键键盘的逻辑电路提供按键的矩阵排列方式,现有的矩阵键盘电路大多使用单片机I/O口来进行键盘扫描以控制键盘的按键部分。现有的4×4矩阵键盘电路,如图1所示,包括4行4列排列的4×4个按键,4个电阻器R1-R4,2×4个I/O口。依次类推,N×N矩阵键盘电路,则需要2N个I/O口。在矩阵键盘电路中,N根行线和N根列线交叉放置形成N×N个交叉点,每个交叉点都设置一个按键。按键的两端分别与相应的行线和列线连接,每根行线与一个I/O口连接。依次设置I/O口为低电平输入口,当无按键按下时,列线与行线断开,列线呈高电平状态;当有按键按下时,按键对应的列线与该行线连接获得一低电平,进而确定按键所处的列,从而识别按键的位置。
矩阵键盘电路通常采用行列扫描方法来确定按下之按键所在的行列位置。行列扫描法是指:把键盘的行线所对应的I/O口设置为输出口,列线所对应的I/O口设置为输入口;在扫描时,轮流将输出口设置为低电平,如图2所示,其他的输入口设置为高电平;再读取输入口的电平状态,并根据输入口发生的电平变化判断所按的按键。使用这种键盘电路,如控制键盘的I/O口数为2N,最大按键数量是N×N。但是当某个按键被按下时,被CPU顺序扫描到,如果配合示波器等工具,通过分析顺序扫描时,按键的波形,很容易在外部被检测到哪一个按键被按下,会造成泄密,危害使用者的资料财产安全。
发明内容
为了解决上述问题,本发明提出一种随机扫描键盘,还提出一种随机扫描键盘的扫描方法。
本申请提出的一种随机键盘扫描方法,所述方法包括:
步骤R1:控制部件生成随机扫描顺序;
步骤R2:控制部件对键盘部件进行扫描生成电平;
步骤R3:控制部件对电平解析,得到按键值。
优选的,所述控制部件生成随机扫描顺序的方法包括:
步骤R101:控制部件对键盘部件I/O接口进行设置;
步骤R102:随机数发生器生成随机数;
步骤R103:控制部件对随机数进行条件判定,若判定失败,则执行步骤R104;
步骤R104:控制组件将随机数对应的扫描顺序进行备份。
优选的,所述控制部件对键盘进行扫描生成电平的方法包括:
步骤R201:控制组件将随机数对应的扫描顺序发给键盘部件;
步骤R202:键盘部件按随机数对应的扫描顺序扫描;
步骤R203:键盘部件向控制部件发出输出信号;
步骤R204:控制部件对接收到的输出信号进行存储,并记录扫描次数;
步骤R205:对扫描次数进行条件判定,若判定失败,则完成该方法。
优选的,所述控制部件对电平解析,得到按键值的方法包括:
步骤R301:控制部件对存储的输入信号及输出信号进行调用;
步骤R302:控制部件对输入信号及输出信号进行解析,得到按键值;
步骤R303:对键值进行条件判定,若判定失败,则完成该方法,进行下次扫描。
本申请还提出一种随机扫描键盘,所述键盘包括:
控制部件:用于对键盘部件I/O接口进行设置,生成随机数,并对随机数进行条件判定,将随机数对应的扫描顺序进行备份,将随机数对应的扫描顺序发给键盘部件,并按随机数对应的扫描顺序扫描,接收键盘部件发出输出信号,并存储接收到的输出信号,记录扫描次数,对扫描次数进行条件判定,对存储的输入信号及输出信号进行调用,并对调用的信号进行解析,得到按键值,并对键值进行条件判定;
键盘部件:用于接收用户的物理操作,接收控制部件发送的随机数对应的扫描顺序,并向控制部件发出输出信号。
优选的,所述控制部件包括:
扫描顺序生成模块:用于对键盘部件I/O接口进行设置,生成随机数,并对随机数进行条件判定,将随机数对应的扫描顺序进行备份;
电平生成模块:用于将随机数对应的扫描顺序发给键盘部件,并按随机数对应的扫描顺序扫描,接收键盘部件发出输出信号,并存储接收到的输出信号,记录扫描次数,对扫描次数进行条件判定;
键值生成模块:用于对存储的输入信号及输出信号进行调用,并对调用的信号进行解析,得到按键值,并对键值进行条件判定。
优选的,所述扫描顺序生成模块包括:
接口设置单元:用于对键盘部件I/O接口进行设置;
随机数发生器:用于生成随机数;
判定单元:对随机数进行条件判定;
存储单元:用于将随机数对应的扫描顺序进行备份。
优选的,所述电平生成模块包括:
发送单元:用于将随机数对应的扫描顺序发给键盘部件;
扫描单元:用于按随机数对应的扫描顺序扫描;
接收单元:用于接收键盘部件发出输出信号;
数据存储单元:用于对接收到的输出信号进行存储,并记录扫描次数;
判定单元:对扫描次数进行条件判定。
优选的,所述键值生成模块包括:
数据调用单元:用于对存储的输入信号及输出信号进行调用;
数据解析单元:用于对输入信号及输出信号进行解析,得到按键值;
判定单元:用于对键值进行条件判定。
优选的,所述键盘部件包括:
I/O接口:用于接收控制部件发送的随机数对应的扫描顺序,并向控制部件发出输出信号;
键盘本体:用于接收用户的物理操作。
本发明提出的一种随机扫描键盘及随机扫描方法,通过增加随机数发生器和扰码装置,对键盘的扫描过程进行加密干扰,外部仪器再分析波形时,无法找到扫描的规律,即便被监听,也无法准确检测到具体哪一个按键被按下,从而保护输入信息的安全。
附图说明
图1是现有技术中矩阵扫描键盘电路图
图2是现有技术中行扫描的输入电平流程示意图
图3是本申请随机扫描键盘的系统框架图
图4是本申请控制部件结构示意图
图5是本申请控制部件中扫描顺序生成模块结构示意图
图6是本申请控制部件中电平生成模块结构示意图
图7是本申请控制部件中键值生成模块结构示意图
图8是本申请键盘部件结构示意图
图9是本申请键盘扫描方法总体流程图
图10是本申请扫描顺序生成的方法流程图
图11是本申请电平生成的方法流程图
图12是本申请键值生成的方法流程图
图13是本申请扰码机制流程示意图
图14是本申请实施例按键示意图
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本申请提供一种随机扫描键盘,如图3所示,包括控制部件301和键盘部件302,下面介绍各个组成部分,其中:
一、控制部件301:用于生成随机扫描顺序,对键盘部件302进行扫描生成电平,并对电平进行解析,得到按键值;
具体为:对键盘部件302的I/O接口进行设置,生成随机数,并对随机数进行条件判定,将随机数对应的扫描顺序进行备份,将随机数对应的扫描顺序发给键盘部件,并按随机数对应的扫描顺序扫描,接收键盘部件发出的输出信号,并存储接收到的输出信号,记录扫描次数,对扫描次数进行条件判定,对存储的输入信号及输出信号进行调用,并对调用的信号进行解析,得到按键值,并对键值进行条件判定,开启/关闭控制部件的采集功能,产生扰码顺序。
二、键盘部件302:用于接收用户的物理操作,接收控制部件301发送的随机数对应的扫描顺序,并向控制部件301发出输出信号;
具体为:控制部件301通过与键盘部件302的I/O接口相连,向I/O接口发送扫描顺序,键盘部件检测用户是否有对按键进行物理操作,并返回电平值到I/O接口,通过I/O接口将电平发回给控制部件301。
以上简单介绍了该系统的构成,下面详细介绍部件控制部件301和键盘部件302的具体内部构成。
其中控制部件301扫描得到电平并解析电平得到按键,其结构如图4所示,包括:扫描顺序生成模块401、电平生成模块402、键值生成模块403和扰码模块404,具体的:
扫描顺序生成模块401:用于对键盘部件I/O接口进行设置,生成随机数,并对随机数进行条件判定,将随机数对应的扫描顺序进行备份。
具体的,如图5所示,所述扫描顺序生成模块401包括:
接口设置单元501:用于对键盘部件I/O接口进行设置。
具体的,将键盘横列所对应的I/O接口的设置为输入口,输入口用于对控制部件301发送的扫描顺序进行接收,将键盘纵列所对应的I/O接口设置为输出口,输出口将扫描得出的输出电压值发送给控制部件301。
更具体的,如果使用的是4×4的矩阵键盘,故现有技术的扫描顺序,即输入口的电压值在不加随机数的情况下,是以输入口电压值第一位为低电平后三位为高电平作为第一次扫描,输入口电压值第二位为低电平其他三位为高电平作为第二次扫描,输入口电压值第三位为低电平其他三位为高电平作为第三次扫描,输入口电压值第四位为低电平其他三位为高电平作为第四次扫描的顺序为一个扫描序列,对输出口的电压值进行扫描。
随机数发生器502:用于生成随机数。
更具体的,由于随机数发生器在控制部件内部,外部设备对所述键盘进行监听时无法监听随机数是否生成。
更具体的,本实施例中产生的随机数为3位二进制代码,即从000到111一共8个随机数。
判定单元503:对随机数进行条件判定。
对所述随机数进行条件判定可以为以下一种或多种:
所述随机数是否为某值;所述随机数是否大于/小于某值;所述随机数是否为奇/偶数等。
存储单元504:用于将随机数对应的扫描顺序进行备份。
以4×4的矩阵键盘为例,产生随机数与扫描顺序的列表如表1所示,随机数为3位二进制代码,第一位为0时,前两次扫描后两位输入电平均为高,后两次扫描前两位输入电平都为高,第一位为1时,前两次扫描前两位输入电平均为高,后两次扫描后两位输入电平都为高;第一位为0第二位为0时,前两次扫描与无随机数时前两次键盘扫描顺序相同,第一位为1第二位为0时,前两次扫描与无随机数时后两次键盘扫描顺序相同,第一位为0第二位为1时,前两次的扫描与无随机数时前两次键盘扫描顺序相反,第一位为1第二位为1时,前两次扫描与无随机数时后两次键盘扫描顺序相反;第一位为0第三位为0时,后两次扫描与无随机数时后两次键盘扫描顺序相同,第一位为1第三位为0时,后两次扫描与无随机数时前两次键盘扫描顺序相同,第一位为0第三位为1时,后两次扫描与无随机数时后两次键盘扫描顺序相反,第一位为1第三位为1时,后两次扫描与无随机数时前两次键盘扫描顺序相反。
随机数 | 键盘扫描顺序 |
无 | 第一轮0111第二轮1011第三轮1101第四轮1110 |
000 | 第一轮0111第二轮1011第三轮1101第四轮1110 |
001 | 第一轮0111第二轮1011第三轮1110第四轮1101 |
010 | 第一轮1011第二轮0111第三轮1101第四轮1110 |
011 | 第一轮1011第二轮0111第三轮1110第四轮1101 |
100 | 第一轮1101第二轮1110第三轮0111第四轮1011 |
101 | 第一轮1101第二轮1110第三轮1011第四轮0111 |
110 | 第一轮1110第二轮1101第三轮0111第四轮1011 |
111 | 第一轮1110第二轮1101第三轮1011第四轮0111 |
表1
电平生成模块402:用于将随机数对应的扫描顺序发给键盘部件,并按随机数对应的扫描顺序扫描,接收键盘部件发出输出信号,并存储接收到的输出信号,记录扫描次数,对扫描次数进行条件判定。
具体的,如图6所示,所述电平生成模块402包括:
发送单元601:用于将随机数对应的扫描顺序发给键盘部件。
更具体的,控制部件301只将扫描顺序发送给键盘部件,即使被监听,监听到的只是错误的输入口电压值,而真正的输入口电压值只存储于控制组件301中,无法被监听到,便不知道按下的是哪个按键。
扫描单元602:用于按随机数对应的扫描顺序扫描。
接收单元603:用于接收键盘部件发出输出信号。
以4×4的矩阵键盘为例,所述输出信号与输入信号对应,为4位二进制代码,在没有按键按下时,输入电压值的所有位数均为高电平,在第一列有按键按下时,输出信号的第一位为低电平其他三位为高电平,第二列有按键按下时,输出信号的第二位为低电平其他三位为高电平,第三列有按键按下时,输出信号的第三位为低电平其他三位为高电平,第四列有按键按下时,输出信号的第四位为低电平其他三位为高电平。
数据存储单元604:用于对接收到的输出信号进行存储,并记录扫描次数。
其中记录的可以是扫描次数,也可以是扫描时间,并对扫描时间进行条件判定。
判定单元605:对扫描次数进行条件判定。
对所述扫描次数进行条件判定可以为以下一种或多种:
所述扫描次数是否为达到某值;所述扫描次数是否为奇/偶数;所述扫描次数是否为刚好等于扫描一个扫描序列的倍数等。
键值生成模块403:用于对存储的输入信号及输出信号进行调用,并对调用的信号进行解析,得到按键值,并对键值进行条件判定。
如图7所示,所述键值生成模块403包括:
数据调用单元701:用于对存储的输入信号及输出信号进行调用。
控制部件调取随机数,和随机数对应的扫描顺序,再调用存储的输出信号。
数据解析单元702:用于对输入信号及输出信号进行解析,得到按键值。
控制器由于有随机数对应的扫描顺序,将真正的输入电平与输出电平结合可以分析出按键值。以4×4的矩阵键盘为例,具体为:
首先,控制器将扫描顺序和随机数按对照表进行解析,得到真正的输入电压值,输入电压值所对应的4次扫描顺序分别对应着4次扫描行,若输入电压值第一位为低电平,其他三位为高电平,则认为是扫描第一行,若输入电压值第二位为低电平,其他三位为高电平,则认为是扫描第二行,以此类推,可以知道扫描所有四行的顺序;然后对输出电平进行判断,如果有任一输出压值的电平为低,则认为该低电平所在的输出电压值所对应的输入电压值所对应的行有按键按下;最后分析输出电压值,若该低电平在输出电压值的第一位,则该行第一个按键按下,若该低电平在输出电压值的第二位,则该行第二个按键按下,以此类推,即能得到按键值。
判定单元703:用于对键值进行条件判定。
更具体的,所述键值是否为为某一键值;所述键值是否处于某一列/行上;所述键值是否为奇/偶数等。
扰码模块404:用于开启/关闭控制部件的采集功能,产生扰码顺序。
所述扰码模块404的工作流程为:
步骤S1:关闭控制部件的采集功能。
步骤S2:扰码装置开启,产生扰码扫描顺序。
步骤S3:将扰码扫描顺序发送给键盘部件。
步骤S4:键盘部件按扰码顺序扫描,产生输出电平。
步骤S5:键盘部件将输出电平发送给控制部件。
步骤S6:关闭扰码模块,开启控制部件采集功能。
以上结合图4-7介绍了控制部件301的结构,以下结合图8介绍键盘部件302的结构。
所述随机扫描键盘的所述键盘部件302如图8所示,包括I/O接口801和键盘本体802。具体的:
I/O接口:用于接收控制部件发送的随机数对应的扫描顺序,并向控制部件发出输出信号。
键盘本体:用于接收用户的物理操作。
基于上述随机扫描键盘,本申请还提出一种随机键盘扫描方法,如图9所示,包括:
步骤R1:控制部件生成随机扫描顺序;
具体的,如图10所示,所述步骤R1:控制部件生成随机扫描顺序的方法包括:
步骤R101:控制部件对键盘部件I/O接口进行设置。
具体的,将键盘横列所对应的I/O接口的设置为输入口,输入口用于对控制部件301发送的扫描顺序进行接收,将键盘纵列所对应的I/O接口的设置为输出口,输出口将扫描得出的输出电平发送给控制部件301。
更具体的,以4×4的矩阵键盘为例,按照现有技术的扫描顺序,即输入口的电压值在不加随机数的情况下,是以输入口电压值第一位为低电平后三位为高电平作为第一次扫描,输入口电压值第二位为低电平其他三位为高电平作为第二次扫描,输入口电压值第三位为低电平其他三位为高电平作为第三次扫描,输入口电压值第四位为低电平其他三位为高电平作为第四次扫描的顺序为一个扫描序列,对输出口的电压值进行扫描。
步骤R102:随机数发生器生成随机数。
更具体的,由于随机数发生器在控制部件内部,外部设备对所述键盘进行监听时无法监听随机数是否生成。
以4×4的矩阵键盘为例,产生的随机数为3位二进制代码,即从000到111一共8个随机数。
步骤R103:控制部件对随机数进行条件判定,若判定失败,则执行步骤R104,若判定成功,触发扰码机制。
更具体的,对所述随机数进行条件判定可以为以下一种或多种:
所述随机数是否为某值;所述随机数是否大于/小于某值;所述随机数是否为奇/偶数等。
更具体的,如图13所示,所述扰码机制包括:
步骤S1:关闭控制部件的采集功能。
步骤S2:扰码装置开启,产生扰码扫描顺序。
更具体的,所述扰码扫描顺序可以是一个扫描序列,也可以是一次或多次扫描。
步骤S3:将扰码扫描顺序发送给键盘部件。
步骤S4:键盘部件按扰码顺序扫描,产生输出电平。
步骤S5:键盘部件将输出电平发送给控制部件。
步骤S6:关闭扰码模块,开启控制部件采集功能。
更具体的,由于扰码机制发生时间很短,在按键输入的时候不会对用户输入造成影响。
更具体的,扰码模块平时处于等待状态,在扰码机制触发时才开始工作,在扰码机制结束后,重新进入等待状态。
以4×4的矩阵键盘为例,I/O口输出电平值为4位二进制代码,在没有按键按下并且没有随机数的情况下完整输出电压值全为高电平,所以产生的扰码扫描的输出电压值也与之相同采用四位二进制代码,产生的输入电压值和输出电压值均与正常信号相同。
更具体的,关闭控制部件的采集功能,控制部件不会对输入电压值和输出电压值进行存储,也不会对输入电压值和输出电压值进行解析运算,只对输出电压值进行发送和对输出电压值进行接收,被监听时,监听端不能监听到控制部件内部操作,便不能分辨出哪些是真正的输入输出信号哪些是扰码。
步骤R104:控制组件将随机数对应的扫描顺序进行备份。
以4×4的矩阵键盘为例,产生随机数与扫描顺序的列表如表1所示,本实施例中,随机数为3位二进制代码,第一位为0时,前两次扫描输入电压值的后两位输入电平均为高,后两次扫描输入电压值的前两位输入电平都为高,第一位为1时,前两次扫描输入电压值的前两位输入电平均为高,后两次扫描输入电压值的后两位输入电平都为高;第一位为0第二位为0时,前两次扫描与无随机数时前两次键盘扫描顺序相同,第一位为1第二位为0时,前两次扫描与无随机数时后两次键盘扫描顺序相同,第一位为0第二位为1时,前两次的扫描与无随机数时前两次键盘扫描顺序相反,第一位为1第二位为1时,前两次扫描与无随机数时后两次键盘扫描顺序相反;第一位为0第三位为0时,后两次扫描与无随机数时后两次键盘扫描顺序相同,第一位为1第三位为0时,后两次扫描与无随机数时前两次键盘扫描顺序相同,第一位为0第三位为1时,后两次扫描与无随机数时后两次键盘扫描顺序相反,第一位为1第三位为1时,后两次扫描与无随机数时前两次键盘扫描顺序相反。
步骤R2:控制部件对键盘部件进行扫描生成电平;
具体的,如图11所示,所述步骤R2:控制部件对键盘部件进行扫描生成电平的方法包括:
步骤R201:控制组件将随机数对应的扫描顺序发给键盘部件。
更具体的,控制部件301只将扫描顺序发送给键盘部件,即使被监听,监听到的只是错误的输入口电压值,而真正的输入口电压值只存储于控制组件301中,无法被监听到,便不知道按下的是哪个按键。
步骤R202:键盘部件按随机数对应的扫描顺序扫描。
步骤R203:键盘部件向控制部件发出输出信号。
更具体的,本实施例中所述输出信号与输入信号对应,为4位二进制代码,在没有按键按下时,输入电压值的所有位数均为高电平,在第一列有按键按下时,输出信号的第一位为低电平其他三位为高电平,第二列有按键按下时,输出信号的第二位为低电平其他三位为高电平,第三列有按键按下时,输出信号的第三位为低电平其他三位为高电平,第四列有按键按下时,输出信号的第四位为低电平其他三位为高电平。
步骤R204:控制部件对接收到的输出信号进行存储,并记录扫描次数。
更具体的,记录的可以是扫描次数,也可以是扫描时间,并对扫描时间进行条件判定。
步骤R205:对扫描次数进行条件判定,若判定失败,则完成该方法,若判定成功,触发扰码机制。
更具体的,对所述扫描次数进行条件判定可以为以下一种或多种:
所述扫描次数是否为达到某值;所述扫描次数是否为奇/偶数;所述扫描次数是否为刚好等于扫描一个扫描序列的倍数等。
步骤R3:控制部件对电平解析,得到按键值。
具体的,如图12所示,所述步骤R3:控制部件对电平解析,得到按键值的方法包括:
步骤R301:控制部件对存储的输入信号及输出信号进行调用;
更具体的,控制部件调取随机数,和随机数对应的扫描顺序,再调用存储的输出信号。
步骤R302:控制部件对输入信号及输出信号进行解析,得到按键值;
更具体的,控制器由于有随机数对应的扫描顺序,将真正的输入电平与输出电平结合可以分析出按键值。具体为:
首先,控制器将扫描顺序和随机数按对照表进行解析,得到真正的输入电压值,输入电平所对应的4次扫描顺序分别对应着4次扫描行,若输入电压值第一位为低电平,其他三位为高电平,则认为是扫描第一行,若输入电压值第二位为低电平,其他三位为高电平,则认为是扫描第二行,以此类推,可以知道扫描所有四行的顺序;然后对输出电压值进行判断,如果有任一输出电压值的电平为低,则认为该低电平所在的输出电压值所对应的输入电压值所对应的行有按键按下;最后分析输出电压值,若该低电平在输出电压值的第一位,则该行第一个按键按下,若该低电压值在输出电平的第二位,则该行第二个按键按下,以此类推,即能得到按键值。
步骤R303:对键值进行条件判定,若判定失败,则完成该方法,进行下次扫描,若判定成功,触发扰码机制。
更具体的,所述键值是否为为某一键值;所述键值是否处于某一列/行上;所述键值是否为奇/偶数等。
在上述的实施例中,即使在按键没有进行输入的时候,控制部件一直在对键盘部件进行输入电平的发送,键盘部件也一直在进行扫描,将输出电平通过I/O接口发送给控制部件。
以上实施例仅以4×4矩阵键盘对随机扫描键盘及其扫描方法进行了详细了说明,其他各种型号矩阵键盘,均可以以上述实施例中的方式进行。
以下用具体实例来进行说明:
如图14所示,是4×4随机扫描矩阵键盘的键盘部件,在两个扫描序列中,用户按下的按键分别为M3,M9,现在分别对这四个扫描序列进行说明,
当用户还没按下按键时,控制部件始终在对键盘部件进行输出电平的发送,当按键M3按下时,控制部件的随机数发生器生成一个随机数001,由表1的随机数扫描顺序对照表可以知道,此次扫描序列的扫描顺序为第一行第二行第四行第三行,将这次扫描顺序记录在存储单元中,然后向键盘部件发送扫描顺序为第一行第二行第三行第四行的伪扫描序列,由于是M3键按下,当第一次扫描时,输出电平为1110,其他三次扫描输出电平均为1111,控制部件调取随机数对应的真正的扫描顺序,对比输入电平和输出电平,即可以得到按键值为M3。
当按键M9按下,控制部件的随机数发生器生成一个随机数101,由表1的随机数扫描顺序对照表可以知道,此次扫描序列的扫描顺序为第三行第四行第二行第一行,将这次扫描顺序记录在存储单元中,然后向键盘部件发送扫描顺序为第一行第二行第三行第四行的伪扫描序列,由于是M9键按下,当第一次扫描时,输出电平为1011,其他三次扫描输出电平均为1111,控制部件调取随机数对应的真正的扫描顺序,对比输入电平和输出电平,即可以得到按键值为M9,而外部监听得到的伪按键值为M1。
以上所述,仅是本发明的较佳实施例,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (9)
1.一种随机键盘扫描方法,其特征在于,所述方法包括:
步骤R1:控制部件生成随机扫描顺序;
步骤R2:控制部件对键盘部件进行扫描生成电平;
步骤R3:控制部件对电平解析,得到按键值;
所述控制部件生成随机扫描顺序的方法包括:
步骤R101:控制部件对键盘部件I/O接口进行设置;
步骤R102:随机数发生器生成随机数;
步骤R103:控制部件对随机数进行条件判定,若判定失败,则执行步骤R104;
步骤R104:控制组件将随机数对应的扫描顺序进行备份;
步骤R103中,若判定成功,触发扰码机制,所述扰码机制包括:步骤S1:关闭控制部件的采集功能;步骤S2:扰码装置开启,产生扰码扫描顺序;步骤S3:将扰码扫描顺序发送给键盘部件;步骤S4:键盘部件按扰码顺序扫描,产生输出电平;步骤S5:键盘部件将输出电平发送给控制部件;步骤S6、关闭扰码模块,开启控制部件采集功能。
2.如权利要求1所述的随机键盘扫描方法,其特征在于,所述控制部件对键盘进行扫描生成电平的方法包括:
步骤R201:控制组件将随机数对应的扫描顺序发给键盘部件;
步骤R202:键盘部件按随机数对应的扫描顺序扫描;
步骤R203:键盘部件向控制部件发出输出信号;
步骤R204:控制部件对接收到的输出信号进行存储,并记录扫描次数;
步骤R205:对扫描次数进行条件判定,若判定失败,则完成该方法。
3.如权利要求1所述的随机键盘扫描方法,其特征在于,所述控制部件对电平解析,得到按键值的方法包括:
步骤R301:控制部件对存储的输入信号及输出信号进行调用;
步骤R302:控制部件对输入信号及输出信号进行解析,得到按键值;
步骤R303:对键值进行条件判定,若判定失败,则完成该方法,进行下次扫描。
4.一种随机扫描键盘,使用如权利要求1~3之一所述的随机键盘扫描方法,其特征在于,所述键盘包括:
控制部件:用于对键盘部件I/O接口进行设置,生成随机数,并对随机数进行条件判定,将随机数对应的扫描顺序进行备份,将随机数对应的扫描顺序发给键盘部件,并按随机数对应的扫描顺序扫描,接收键盘部件发出输出信号,并存储接收到的输出信号,记录扫描次数,对扫描次数进行条件判定,对存储的输入信号及输出信号进行调用,并对调用的信号进行解析,得到按键值,并对键值进行条件判定;
键盘部件:用于接收用户的物理操作,接收控制部件发送的随机数对应的扫描顺序,并向控制部件发出输出信号。
5.如权利要求4所述的随机扫描键盘,其特征在于,所述控制部件包括:
扫描顺序生成模块:用于对键盘部件I/O接口进行设置,生成随机数,并对随机数进行条件判定,将随机数对应的扫描顺序进行备份;
电平生成模块:用于将随机数对应的扫描顺序发给键盘部件,并按随机数对应的扫描顺序扫描,接收键盘部件发出输出信号,并存储接收到的输出信号,记录扫描次数,对扫描次数进行条件判定;
键值生成模块:用于对存储的输入信号及输出信号进行调用,并对调用的信号进行解析,得到按键值,并对键值进行条件判定。
6.如权利要求5所述的随机扫描键盘,其特征在于,所述扫描顺序生成模块包括:
接口设置单元:用于对键盘部件I/O接口进行设置;
随机数发生器:用于生成随机数;
判定单元:对随机数进行条件判定;
存储单元:用于将随机数对应的扫描顺序进行备份。
7.如权利要求5所述的随机扫描键盘,其特征在于,所述电平生成模块包括:
发送单元:用于将随机数对应的扫描顺序发给键盘部件;
扫描单元:用于按随机数对应的扫描顺序扫描;
接收单元:用于接收键盘部件发出输出信号;
数据存储单元:用于对接收到的输出信号进行存储,并记录扫描次数;
判定单元:对扫描次数进行条件判定。
8.如权利要求5所述的随机扫描键盘,其特征在于,所述键值生成模块包括:
数据调用单元:用于对存储的输入信号及输出信号进行调用;
数据解析单元:用于对输入信号及输出信号进行解析,得到按键值;
判定单元:用于对键值进行条件判定。
9.如权利要求4所述的随机扫描键盘,其特征在于,所述键盘部件包括:
I/O接口:用于接收控制部件发送的随机数对应的扫描顺序,并向控制部件发出输出信号;
键盘本体:用于接收用户的物理操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510852427.9A CN105353889B (zh) | 2015-11-29 | 2015-11-29 | 一种随机扫描键盘及其扫描方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510852427.9A CN105353889B (zh) | 2015-11-29 | 2015-11-29 | 一种随机扫描键盘及其扫描方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105353889A CN105353889A (zh) | 2016-02-24 |
CN105353889B true CN105353889B (zh) | 2018-07-06 |
Family
ID=55329872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510852427.9A Active CN105353889B (zh) | 2015-11-29 | 2015-11-29 | 一种随机扫描键盘及其扫描方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105353889B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106295422B (zh) * | 2016-08-09 | 2019-04-19 | 深圳市证通电子股份有限公司 | 键盘扫描方法及装置 |
CN106570993A (zh) * | 2016-10-21 | 2017-04-19 | 深圳市新国都支付技术有限公司 | 一种提升矩阵键盘安全性的方法、装置和键盘 |
CN108551340B (zh) * | 2018-05-09 | 2021-10-22 | 珠海格力电器股份有限公司 | 一种触摸键抗干扰的处理方法及电器 |
CN110932733B (zh) * | 2019-11-29 | 2023-08-22 | 百富计算机技术(深圳)有限公司 | 按键扫描方法及输入设备 |
CN111145394B (zh) * | 2019-12-20 | 2021-08-03 | 上海爱信诺航芯电子科技有限公司 | 电容触控按键的扫描控制方法与扫描控制装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1527964A (zh) * | 2001-05-08 | 2004-09-08 | �ʼҷ����ֵ�������˾ | 键盘装置的安全系统和方法 |
CN1799056A (zh) * | 2003-06-03 | 2006-07-05 | 皇家飞利浦电子股份有限公司 | 保密卡终端 |
CN200983153Y (zh) * | 2006-12-18 | 2007-11-28 | 汉王科技股份有限公司 | 具有按键的加密签名手写板 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2641656B1 (fr) * | 1988-12-20 | 1991-08-02 | Bull Sa | Procede de brouillage de l'identification d'une touche d'un clavier non code, et circuit pour la mise en oeuvre du procede |
US6259435B1 (en) * | 1998-08-25 | 2001-07-10 | Compaq Computer Corp. | Obfuscated keyboard scan |
CN100345078C (zh) * | 2004-07-09 | 2007-10-24 | 中国民生银行股份有限公司 | 计算机键盘信息干扰实现密码保护的方法 |
FR2877171B1 (fr) * | 2004-10-22 | 2006-12-29 | Credit Lyonnais Sa | Procede de securisation des transactions effectuees a distance sur un reseau de communication ouvert |
-
2015
- 2015-11-29 CN CN201510852427.9A patent/CN105353889B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1527964A (zh) * | 2001-05-08 | 2004-09-08 | �ʼҷ����ֵ�������˾ | 键盘装置的安全系统和方法 |
CN1799056A (zh) * | 2003-06-03 | 2006-07-05 | 皇家飞利浦电子股份有限公司 | 保密卡终端 |
CN200983153Y (zh) * | 2006-12-18 | 2007-11-28 | 汉王科技股份有限公司 | 具有按键的加密签名手写板 |
Also Published As
Publication number | Publication date |
---|---|
CN105353889A (zh) | 2016-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105353889B (zh) | 一种随机扫描键盘及其扫描方法 | |
CN102880398B (zh) | 一种基于随机数字阵列的手机解锁方法及手机 | |
US3764742A (en) | Cryptographic identification system | |
US5428349A (en) | Nondisclosing password entry system | |
CN103530582B (zh) | 一种移动终端的动态密码解锁方法及系统 | |
CN102760042A (zh) | 一种基于图片脸部识别进行解锁的方法、系统及电子设备 | |
CN103092484A (zh) | 解锁屏幕的方法、装置及终端 | |
US4211915A (en) | Keyboard verification system | |
CN105303663A (zh) | 利用二维码实现交互开门的装置 | |
CN105450405A (zh) | 一种密码设置和认证方法及系统 | |
CN1979371A (zh) | 具有锁定功能的输入装置及其锁定方法 | |
CN107295016A (zh) | 身份验证方法及装置 | |
CN104252305A (zh) | 电子装置解锁系统及方法 | |
CN105677232A (zh) | 一种解锁界面处理方法及装置 | |
CN100520669C (zh) | 键盘装置的安全系统和方法 | |
CN106600854A (zh) | Pos机的se端接管安卓屏幕的密码键盘系统及其方法 | |
US9213823B2 (en) | Method for inputting a code using a portable device, and associated portable device | |
CN104200141B (zh) | 智能解锁系统及其解锁方法 | |
CN105550549A (zh) | 一种验证处理方法及验证处理装置 | |
CN1987830B (zh) | 输入装置及其密码控制方法 | |
CN107577927A (zh) | 一种屏幕解锁方法、具有存储功能的装置及智能终端 | |
CN107563466A (zh) | 信息处理的方法及装置 | |
CN104598803B (zh) | 一种寻回密码的方法及电子设备 | |
CN106296192A (zh) | 密码的安全传输方法、系统及密盾 | |
CN201498020U (zh) | 一种电子签名工具 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |