梁菲惜
(成都理工大學核技術與自動化工程學院,四川成都,610059)
中國是網上支付使用大國,根據《中國互聯網發展報告2018》顯示,到2017年底,中國網上支付用戶人數達5.31億,第三方互聯網支付金額達到143萬億。從網銀支付到手機支付,互聯網支付已經成為中國最主流的支付方式[1~2]。目前密碼泄露以病毒、黑客以及旁窺為主要原因。密碼泄露不僅會造成個人財產損失,某些平臺賬號的密碼泄露也可能造成他人的財產損失,如盜取社交軟件密碼騙取失主親友錢財。采用隨機鍵盤能有效地避免密碼旁窺和泄露,不僅能在公共場合避免密碼旁窺,也能有效防止通過記憶鍵盤點擊位置的木馬竊取密碼。當前已經有部分銀行采用隨機軟鍵盤的控件。
隨機鍵盤設計旨在通過密碼輸入鍵盤的隨機排列解決公共場合的密碼旁窺和泄露問題。本設計主要達到兩個效果:一是使輸入鍵盤隨機排列,二是密碼匹配。基于以上目的,本設計采用STM32F103RCT6作為主要處理器,用于隨機數列產生和密碼匹配。產生隨機數列采用兩兩交換法,初始密碼存儲在EEPROM中,密碼鍵盤顯示采用迪文DGUS液晶屏。方案設計思路如圖1所示。

圖1 隨機鍵盤設計原理圖
單片機系統采用STM32F103RCT6。由法意半導體推出的STM32增強型系列STM32F103為高密度性能線的32位微處理器,其內核為Cortex-M3,具有成本低廉、功耗較低、性能較好、集成度高、便于調試等優點,在醫療、工業、電子等領域得到廣泛應用[3~4]。STM32F103RCT6最大處理速度為72MHz,兼有串行單線調試SWD和JTAG接口,具有5個串口,可與迪文DGUS液晶屏進行串口通信控制;具有2個I2C接口,可掛載EEPROM進行密碼存儲。STM32F103RCT6內嵌晶振,為提高時鐘穩定性,外接8M無源晶振和32.765K晶振。另連接復位電路和電源指示LED,引出JTAG接口,進行下載和調試。
STM32F103RCT6工作電壓為 2V~3.6V,常用工作電壓為3.3V。由于USB供電為 5V,無法直接為其提供工作電壓。穩壓芯片 AMS1117有可調電壓和多種固定電壓版,可選用3.3V固定電壓版為STM32供電,且電路簡單。電源開關使用自鎖按鍵,使電路板在上電時不用一直插拔電源線,通過自鎖開關來控制電源的通電和斷電。
EEPROM可以即插即用,具有掉電數據不丟失的特點。AT24C02最大時鐘頻率400kHz,達到讀寫密碼速度;內存容量250B,足夠初始密碼存儲空間;I2C通信方式節省I/O口且控制方便;工作電壓范圍為1.8V 至 6.0V,可直接使用與STM32相同的工作電壓供電。

圖2 DGUS的硬件結構
DGUS是迪文科技推出的一款圖形服務軟件,是基于迪文屏K600+內核設計的人機界面系統軟件,迪文DGUS屏就是基于該軟件設計的液晶顯示屏[5~6]。DGUS液晶屏為串口液晶屏,可支持CMOS、RS232、RS485三種電平通信方式,本次采用MINI DGUS液晶屏支持RS232通信方式。DGUS液晶屏支持SD卡,可使用畫圖軟件設計界面通過SD卡下載使用,使界面設計豐富和多樣化。其硬件結構如圖2所示。
本設計中隨機數產生為0~9的隨機排列,以及26個字母的隨機排列。對于這兩種隨機排列均使用兩兩交換法,原理簡單易操作,且隨機效果較好。將0~9以及26個字母分別隨機處理,在此以0~9的數字排列為例說明。
(1)將0~9進行順序排列;(2)利用隨機函數產生0~9中的兩個隨機數m、n;(3)將第m個數和第n個數進行位置交換;(4)重復步驟②和步驟③X次,本設計中數字隨機序列中取重復次數X=20。由于產生的隨機數m、n可能重復,因此實際進行的位置交換次數可能小于20次,但一般不會低于10次,如此即可實現數字鍵盤的隨機排列,理論上可實現的不同排列為10!種。26個字母的隨機排列方法與此相同,適當增加交換次數X即可。以X=10為例,對于0~9的隨機排列如表1所示。由表所示經過10次兩兩交換以后,數字序列由[6,0,9,7,2,8,4,1,5,3]變為[9,5,4,6,3,0,7,2,1,8],實現了隨機數列的效果。

表1 兩兩交換法示意圖(交換10次)
使用畫圖軟件設計顯示界面,如CorelDRAW軟件,調節圖片大小和分辨率至適應屏幕;將設計好的顯示界面通過SD卡下載至DGUS屏,檢查顯示是否正確;STM32通過IIC通信將預設密碼存入EEPROM;在STM32中產生隨機數列,將DGUS屏與STM32進行串口連接通信,并將隨機數列放入指定觸控區域;用戶輸入密碼并確認,STM32通過串口讀取用戶鍵入密碼;STM32讀取EEPROM預設密碼,并進行比較;若用戶鍵入密碼與預設密碼一致,則通過串口使DGUS屏跳轉輸入正確頁面;若用戶鍵入密碼與預設密碼不一致,則跳轉輸入密碼錯誤頁面,并點擊重新輸入[7~8]。系統流程圖如圖3所示。
本設計基于STM32和迪文DGUS屏的隨機鍵盤設計,以STM32位主控制芯片,以迪文DGUS液晶屏為顯示器件,以兩兩交換法為核心算法,經實際效果測試,隨機排列生產效果良好,能達到較好的隨機鍵盤效果。采用本設計,可以有效解決在公共場合的密碼輸入旁窺問題,可以有效防止在自動提取款機上通過記憶鍵盤點擊位置的木馬竊取密碼。

圖3 系統流程圖