Profile - CN541


CN541

防窥视软键盘密码输入器

清华大学
电子工程系


Finals


[print]


Project

Name of Project:防窥视软键盘密码输入器

Contact Information

Name:周婧怡
E-Mail:zhou_jingyi2002@yahoo.com.cn
Telephone:010-51531149
Mobile Phone:15801387232
Mailing Address:北京市海淀区清华大学紫荆4号楼2层

Contest Advisor

Name:许忠信
E-Mail:zxu@tsinghua.edu.cn
Telephone:010-62797886

Members

No.NameE-MailEnglish Name
1周婧怡zhou_jingyi2002@yahoo.com.cnZhouJingyi
2郑宏达zhenghongda0430@gmail.comZhengHongda
3王志恒zhiheng101@gmail.comWangZhiheng

Project Paper - view as Preliminary(2009/06/15), Final(2009/09/14), Draft, Latest

1. 设计概述 (Preliminary Paper)

设计概述

1.        设计意图:
当前的密码输入设备(例如ATM机上的小键盘,POS机的录入键盘)多为固定式结构,这种固定的键盘使得密码录入操作存在着明显的安全隐患:首先,多数用户在固定的机械键盘上输入密码时并不能完全遮蔽整个键盘区域,使得犯罪分子可以在其它角度窥视到用户的按键操作;其次,即使犯罪分子无法直窥视到用户的按键操作,由于键盘上按键位置固定,犯罪分子仍然能够根据用户输入时的手指动作推测用户的密码;此外,也有报道发现一些在无线传输过程中的截获案件发生。近年来在全国各地发生了多起不法分子通过肉眼偷窥或安装针孔摄像机偷拍等方式窃取ATM机的取款密码的案件,给用户造成了巨大的经济损失,给人们的日常生活带来不利影响。本设计方案旨在利用触摸屏的显示区可编辑特性,实现随机的动态录入键盘,由于每次用户输入密码时都是在随机生成的键盘上进行录入操作,使得犯罪分子对用户手指动作的偷窥变得毫无意义。此外触摸屏加装了防窥视膜缩小了键盘的有效观测角度,减小了从其他角度偷窥键盘的可能性,提高用户密码的安全性。录入的密码通过FPGA进行DES加密和纠错编码后通过无线模块向远端主机发送,主机核对密码后将结果传回FPGA,FPGA解密后向用户提示密码核对结果。整个通讯过程均有密码保护以保证用户账户密码的安全。系统加入了无线通讯模块使得本设计不仅可靠性高而且具有优异的便携特性,和广泛的应用价值。
2.        适用范围:
本系统的主要应用于便携式无线POS机,但也可以为其他在线支付系统(例如网络票务系统,小区门禁系统)提供解决方案。其子模块-动态触摸屏键盘可应用于所有需要进行手工密码录入的场合(例如ATM机的密码输入)。
3.        器件的选择:
为了保证设计的安全性和实用性,本设计对器件有如下要求:
          i.              在用户提出密码录入请求后,能够迅速的完成随机算法的计算并控制触摸屏显示随机生成的密码录入键盘;
        ii.              对用户的按键操作作出必要的响应(例如按键声音和按键颜色变换);
      iii.              用户录入完密码后,电路应能迅速可靠的完成密码的加密,校验编码等操作;
      iv.              对主机发送回的经过加密的信息进行高效解码解密操作。
FPGA卓越的并行运算能力和高的运行可靠性使其非常适合与此类编码运算,而NIOS II系统所具有的可裁剪特性,C2H硬件加速功能,及自定义用户指令功能使得我们能够更高效的完成软硬件的分工,有效提高本设计的性能。
(Revision: 4 / 2009-09-15 16:17:39)

2. 功能描述 (Final Project Paper)

功能描述

本设计采用DE2-70多媒体开发平台和TRDB—LTM触摸屏、两块JF24C芯片,设计实现了软键盘密码界面的随机生成,密码的加密、无线发送、接收、密码比对、发还结果等功能。其中为防止直接的偷窥,触摸屏上加贴了防偷窥膜,使观察角度缩小至垂直观察的正负15度角内。
系统由触摸屏产生友好的用户界面和并利用随机算法产生随机数字的密码键盘,逐位感知用户输入的数字密码并传入NIOSII等待加密。
在得到原始数据后,使用AES算法进行加密,而后传给无线发送模块。
无限发送模块主体由两块JF24C芯片与FPGA通过FPGA扩展口连接组成。通过无线模块,将加密后的数据由用户端JF24C芯片发至主机端JF24C芯片,通过主机端FPGA控制。由串口通信传至PC机。
PC机接到加密后的密码后,在其上与正确密码比对,显示结果,并把结果发还给无线模块,并最终通过用户端FPGA控制把结果显示在触摸屏上。
(Draft / 2009-09-14 23:31:35)

3. 性能参数 (Final Project Paper)

 

1.     系统的性能参数:
处理能力
触摸屏识别分辨率:4096*4096
液晶屏显示分辨率:800*480
系统时钟:50MHz
 
AES
15个时钟周期完成128位数据包的AES加密
无线通讯模块
频率范围:2400-2482MHz
调制方式:GFSK
最大功耗:25mA
最大距离:100
 
UART串口通讯频率
9600HZ
 
2.系统资源利用情况
硬件资源利用情况如图3所示。

(Draft / 2009-09-14 23:44:44)

4. 设计结构 (Preliminary Paper)

 

整个系统的模块划分如图1所示:

 

 

随机算法模块负责生成随机的参数并在触摸屏上显示随机键盘,用户在触摸屏上的按键操作经随机模块匹配后得到实际的输入密码并送入AES加密模块进行加密操作。加密后的数据经无线模块向主机端发送,主机端校验数据发送无误后完成密码的核对操作,并将密码核对结果经无线模块发送给FPGA,FPGA向用户发送密码校验信息。

 

 

 

 

 

各个模块的结构简介:
                        i.              触摸屏模块:
添加了防窥视膜,使屏幕本身的有效视角缩小到15度左右
                      ii.              随机算法模块
生成随机化的动态键盘,并控制相应的键盘图形界面的显示。
                    iii.              AES加密模块
128位的AES加密需要10个加密轮回。每个轮回需都要进行密匙扩展、字节替换、行位移、列缓和及密匙添加等操作(如流程图所示)。利用FPGA的并行特性,AES外设可以迅速的完成加密所需逻辑操作。

 

 

a)        提供高质量的数据保护,有效防止数据泄露;
b)        具有高复杂性,难以破译
c)        密码体制的安全性仅以加密密钥的保密为基础;
本设计采用NiosII处理器进行加密运算,然后通过C2H,自定义指令,或自定义组件的形式对算法的速度进行优化。
                      iv.              无线发射模块:

 

Nios处理通过串口读写函数将接收的加密信号传输给PC终端。
PC终端采用MFC建立可视界面。
判断数据接收及发送时序均由Nios完成。
 
 
 
 
                        v.              主机模块:
接收数据后对其进行校验,完成密码核对后将结果(密码正确/错误)向无线模块传送,无线模块将接收到的数据送给FPGA,最终通过触摸屏向用户提示密码录入结果。

 

 设计结构

 

(Revision: 4 / 2009-09-15 16:33:38)

5. 设计方法 (Final Project Paper)

设计方法

在本系统的设计中,在用户端的触摸屏上生成随机小键盘供用户输入密码,然后将密码进行加密后通过无线模块发送至接收端。接收端将密文进行解密,判断密码是否正确,并将结果传回用户端。
触摸屏模块:
该模块在terasic提供的触摸屏上添加了防窥视膜,使屏幕本身的有效视角缩小到15度左右以减小密码录入过程遭偷窥的可能。显示触摸屏上的按键格局由FPGA随机生成,使得犯罪分子无法通过偷窥、偷拍猜测输入者的按键过程得知密码,也无法通过屏幕上被按下的痕迹得知密码。在用户点击触摸屏后,触摸屏随机生成一个密码输入键盘,供用户进行密码录入。用户在录入过程中,FPGA会通过音频及触摸屏图像指引/帮助用户完成录入过程。
随机算法模块
生成随机化的动态键盘,并控制相应的键盘图形界面的显示。随机算法将用户第一次触摸屏幕时的位置/时间参数作为随机算法的种子录入FPGA进行随机参数的生成,FPGA利用生成的随机参数寻址ROM内的图片在触摸屏上显示随机键盘。
 
AES模块
AES算法需要对多位数据(本系统中为128bit)进行并行逻辑操作,相比于软件实现,使用基于FPGA的硬件实现能够更为有效的完成AES算法。因而我们将AES加密硬件模块设为NIOS的自定义外设,NIOS处理器仅需将明码写入AES模块并等待15个时钟周期后便可将阴码读出。极大的提高了系统的运行效率。利用Nios系统对阴码执行其他操作(如无线发送)使得AES模块可以很容易的集成到整个系统中。以下是128位AES加密模块的算法流程图。
 
 
 
无线通讯模块

FPGA
JF24C无线收发模块
NIOS系统
SPI
PIO

无线通讯模块采用的是JF24C发送/接收模块。该模块的接收端与发射端结构相似。无线模块与FPGA的接口如图所示。NIOS系统利用SPI接口对JF24C无线模块进行初始化、无线数据的收发等操作。NIOS系统同时利用PIO口检测无线模块的工作状态,保证数据的正确发送与接收。SOPCBuilder提供了SPI、PIO接口模块和功能强大、简单易用的API函数库。大大降低了无线模块的开发难度,缩短了无线收发模块的开发时间。

 

 

接收端DE2板
通过使用DE2作为无线接收终端,系统可实现最多81信道的无线通讯,从而可以接受81个无线终端的发送信号。如果直接连接串口,则最多允许一个终端同时工作。
UART串口通讯
 
采用9600Hz波特率,在fpga端通过SPOC使用Nios控制UART端口进行读写。利用UART口自动生成串口通讯信号。
PC终端上采用MFC程序建立可视终端并利用createfile, readfile, writefile函数,进行通讯。
两端串口默认状态均为读入,以保证数据能够实时接收。
通过将信号与0080相与,来确保数据包的正确性。
在FPGA读取判断信号时,将异常信号通过判断函数进行过滤。
 
MFC程序
使用API库函数对串口进行读写。
提前对writefile和readfile进行处理,方便在事件响应中调取函数。
 
 
(Revision: 2 / 2009-09-14 23:51:41)

6. 设计特点 (Preliminary Paper)

 设计特点

 
由于本设计主要针对POS机、ATM机上的密码录入,为了使得该方案有实用价值,设计应具有以下特点:
1.      屏幕表面加贴的防偷窥膜防止了直接偷窥;触摸屏产生界面美观、高速,可保证用户有满意的使用体验;同时识别率高,避免了在识别数字上产生错误;触摸屏产生的密码随机,避免不法分子通过观察用户手指位置猜测密码。
2.      对密码进行加密,可以有效防止在无线通讯中被不法分子截获。因为系统通过NIOS利用AES算法加密。这种加密方法在不知晓密匙的情况很难破译,因而系统是非常安全的。
3.      无线模块利用常用的JF24C芯片进行传输,提高系统的便携性。而无线模块的存在,使得在很多场合下应用变得简单,大大拓展的本设计的应用范围。本设计方便使用、应用广泛。用户端器件小巧便于携带,处理速度快;模块间通信质量高且支持无线传输通信;PC机处理安全;有即时反馈。因而本设计可以应用于饭店包间内刷卡消费、小区保安随时随地确认来人身份、巡警在拥挤的街道上调查可疑人员、搭建小型无线游戏平台等。有较广的应用前景。
4.      由PC机进行最终的密码正误判断,可以保证海量数据的存储和处理;同时,由于PC机在银行等很多系统中的广泛应用,使得本设计得以适用于更多的场合。
5.      具有较高的即时性,缩短用户在密码录入过程中无谓的等待时间。为实现这一目的电路必须能够高速的完成随机算法的计算、触摸屏图像的变换并对用户录入的密码进行即时的加密编码后发送给无线模块。对主机反馈回的加密数据,FPGA也须要迅速完成解码并向用户提供密码核对的结果。FPGA擅长进行并行数据的高速运算的特点使其成为此类编码设计的首选。
6.      合理的划分软硬件功能提高系统的运行效率。NIOS II系统可设计用户指令及外设的功能使设计人员在软硬件功能划分时拥有了更大的优化空间,可以更好的实现速度、面积、功耗上的优化均衡。
7.      高的运行可靠性。FPGA器件较其他嵌入式平台(例如MCU)所具有的高可靠性也将有助与整个设计可靠性的跃升。

(Revision: 3 / 2009-09-14 23:52:28)

7. 总结 (Final Project Paper)

总结

我们本次设计作品利用SOPC较好的完成了系统的设计任务,实现了随机密码键盘的产生和传输等功能。
我们较好的完成了系统的设计任务,SOPC设计方面,利用Nios 的可裁剪特性,将高效的AES硬件外设整合到系统中,利用软件很容易的实现了密码的加密和传输。利用Altera公司提供的SPI,PIO等接口外设很方便地实现了无线模块的控制。完成无线收发功能。利用FPGA的并行特性实现触摸屏的流畅显示,提高了人机交互性。
作为刚刚完成电路基本课程的本科生,Quartus与SOPC Builder,Nios IDE简洁明了的界面与方便实用的功能给了我们很深的印象,也让我们很快的上手并作出自己的设计。设计过程中,我们学到了很多Nios的应用,应用都大大提高设计的效率和程序运行的速度。
此次设计过程中, SOPC Builder的高度集成性以及Nios IDE软件集成开发环境的稳定性,使系统调试起来非常方便。
最后,我们参赛小组很感谢Altera公司为我们提供这次机会,在学习中开阔了视野,锻炼了我们的动手能力
(Draft / 2009-09-14 23:53:09)