王宏波 蔣淑玲
摘 要:當今社會正經歷一個萬事“憑證”的時代,各種各樣的證件成為我國居民生活必不可少的東西。身份證是我國居民的身份標識,日常生活中許多事情都需要使用身份證,身份證的丟失或被人偽造會給居民帶來許多不便,許多犯罪分子甚至偽造他人身份證行不法之事,因此身份證防偽十分重要,本文主要基于二維碼的身份證防偽技術進行簡單的分析。
關鍵詞:身份驗證;二維碼;PDF417碼編碼技術;數字水印;指紋加密
二維碼結合其他數字技術可以實現身份證信息的自動采集,同時還能極大的提高證件的防偽能力。PDF417碼的信息儲存量大、可以儲存的文件類型多,偽造起來難度較高,因此數據安全性較高,使用RS算法糾錯性能較好,條碼生成比較簡單,費用低,形狀可以根據實際的應用需求進行改變,具有比較廣泛的應用性。基于此,本文主要研究PDF417碼編碼技術、條碼生成系統的實現、基于PDF417碼的數字水印技術及指紋加密技術在二維碼中的應用。
1 PDF417編碼技術及條碼生成基礎
二維條碼加大了信息的儲量,可以滿足各個領域的自動識別需求,目前已經廣泛應用于各個行業,根據編碼原理及信息載體區別可將二維碼分為堆疊式二維碼及矩陣式二維碼兩種形式。當前各個行業使用較多的矩陣式二維條碼主要有Code one、Maxi code等,常用的堆疊式條碼有Code16K、PDF417等等。其中PDF417碼因其較高的信息儲存量、簡單的生產方法、良好的糾錯能力、強大的數據安全性廣泛的應用于各個領域。
1.1 PDF417條形碼的結構
PDF417條形碼主要組成部分為左側空白區、起始符、左行指示符、數據符區、右行指示符、終止符、右側空白區、上空白區及下空白區。不同的組成部分由不同的數量的字符組成。字符由寬單元和窄單元組成,相鄰字符間的間距根據實際的應用需求變化。
1.2 PDF417碼的編碼方法
1.2.1 碼字集
PDF417條形碼的碼字集包含929個碼字,對應的取值范圍為0~928,其中0~899的碼字用于表示數據,900~928用于模式識別,碼字集中的碼字以不同簇的組合來表示,一般來說,碼字集由3個簇組成,碼字集的簇在組合時并不是雜亂無章的有一定的規律。
1.2.2 模式結構
PDF417條碼包含文本壓縮、字節壓縮等多種不同類型的數據壓縮編碼模式。PDF417碼可以提供模式鎖定碼字、轉移碼字等多種類型的碼字,不同類型的碼字作用有所差別,利用這些模式實現不同數據模式的兼容。
1.2.3 漢字編碼
我國的身份信息必然包括漢字信息,使用PDF417條碼進行編碼時,可以將漢字先根據使用頻率的不同劃分成為罕見字、常用字、高頻字等多種類型,將漢字建成一個漢字庫,漢字庫下可繼續劃分區,每一個區包含固定數量的漢字,并將漢字在字庫中的位置進行編號,以區編號及位編號區分漢字。在計算機系統中常常以一個字節來表示英文字符,以前八位代表字符,最高位為奇偶校驗位,但漢字字符數量較多,單個字節128位字符難以滿足漢字需求,因此以國際碼以兩個字節表示漢字,實現漢字字符與英文字符的兼容,國際碼分為內碼和區位碼兩部分,二者之間有一定的轉換關系。
在PDF417碼中表示漢字時,首先將漢字當作兩個字節來看待,分別為區位碼和位碼,字節數為6的倍數時,采用924模式指示符,即由左向右、由大到小將數據通過基數256到基數。字節數不是6的倍數時,采用924模式指示符,3個漢字組成一組,然后按924模式指示符表示,如果還有剩下的漢字則逐字表示的方式。
2 基于PDF417碼的數字水印技術的研究
身份證技術的關鍵就是防偽,二維碼實際上并不具備防偽功能,想要使二維碼具備防偽功能,可以對二維碼圖進行深加工處理,提高身份證的安全性及可靠性。水印處理是重要的加工處理方法。
水印是現階段使用的重要防偽技術之一,將數字水印技術運用與二維碼中可以有效提高二維碼的防偽功能。但PDF417二維條碼比較特殊,它由黑白條空組合形,它的像素值只有兩種類型,屬于二值圖像,水印信息的嵌入時,必須充分考慮二值圖像與一般灰度圖的區別,避免將像素值區域直接進行1—0轉換,導致圖像失真。將水印信息嵌入PDF417二維條碼時,應考慮到3個要點,即遷入信息的處理、選擇及表示過程。
水印嵌入之前,需要對其進行一定的處理,以便充分發揮防偽性能。目前來說,可以采用Arnold置亂、差錯控制編碼等方法處理水印。(1)Arnold置亂。Arnold置亂是一種重要的圖像加密技術,首先將水印壓縮,然后進行Arnold置亂,最后將編碼嵌入到二維碼中,二維碼在譯碼時的流程則與編碼流程相反,解碼時以Arnold置亂次數作為秘鑰,Arnold置亂使用過程中必須知道秘鑰才能解碼圖像,采用這種方法加密水印,即使水印圖像出現許多的bit錯誤,也不會影響圖像的質量,更有利于二維碼防偽功能的發揮;(2)差錯控制編碼。二維碼應用過程中一旦出現污損,會使水印信息讀取出現偏差,差錯控制編碼可以提高數字信息的可靠性。
二維碼數字水印系統包含數字水印生成、嵌入、提取幾個部分。數字水印的嵌入過程上文已經進行了簡單的介紹,下來則對水印圖像的生成流程進行簡單的介紹。水印圖像生成過程:采集數字水印圖像—圖像預處理—壓縮圖像—Arnold置亂—新二維碼生成—含有數字水印的二維碼生成。
數字水印圖像生成過程中,水印圖像的預處理應滿足二維碼處理需求,嵌入信息時,水印圖像的大小受嵌入水印信息數量的限制,因此需要根據實際需求適當縮減水印圖形的大小,Arnold置亂后的圖像注意還原。
3 指紋加密技術在二維碼中的應用
3.1 指紋加密技術原理
指紋加密技術,即對身份證所屬人的指紋進行X、Y進行加密,產生相應的隨機數,然后利用此隨機數進行加密碼字,持證人掌握隨機數才能恢復碼字,每一個人的指紋都是有區別的,會生成不同的不隨機數,從而形成指紋秘鑰,密鑰空間與知聞孔見形成一一映射關系,秘鑰成為指紋提供者唯一的標志,大大提高了證件的可靠性。
基于指紋的隨機秘鑰可以通過多種方法生成,這里簡單介紹一下偽指紋特征隨機產生器以及產生偽指紋特征信息的方法。
偽指紋特征隨機發生器主要由指紋特征的采集、指紋特征隨機發生器以及密鑰生成3部分組成。基于指紋的隨機秘鑰產生的流程:首先由指紋特征數據采集器采集指紋數據,并將采集到的數據轉化為指紋特征數據,然后由偽指紋特征隨機發生器產生偽隨機指紋特征,最后使用偽隨機指紋特征密鑰將隨機指紋特征數據進行加/解密密鑰,通過此密鑰看出秘鑰指紋的所屬人。已知的指紋特征信息進行一定的平移、旋轉等處理可以得到許多的指紋特征信息,然后將這些信息編碼,就可以得到偽指紋特征數據值,由此可以看出,以偽指紋特征隨機數作為二維碼秘鑰的隨機不定性較強,可靠性較好,同時,指紋信息又可作為個體的標識,實現身份證信息“人證同一性”的需求。
3.2 二維碼加密方案
將指紋秘鑰與二維碼技術有效結合,可以提高二維碼的偽造難度,從而保證身份證的可靠性。指紋技術嵌入到二維碼時,可以通過多種方法實現。加密原始身份信息,完成數據編碼,在解碼的時候進行身份解密獲取原始身份信息;先將原始信息進行編碼,然后加密形成加密碼字,通過為加密碼字添加糾錯碼字生成二維條碼圖像,實現指紋技術的嵌入。另外,對生成的二維條碼進行加密也可以實現加密過程,使用這種方案加密時解碼過程必須借助高速解碼芯片協助才能完成。
3.3 水印嵌入位置加密
利用偽指紋特征隨機秘鑰加密嵌入位置可以在實現身份認證的同時,解決秘鑰保存的問題。偽指紋特征隨機秘鑰使用時需要首先產生一個由秘鑰決定的數列,然后按照嵌入信息的容量將秘鑰分組,然后轉換為隨機序列,采用一定的加密算法實現秘鑰的轉換。
4 結束語
基于當前身份證件防偽對人們日常生活的重要性,本文主要介紹了PDF417碼編碼技術的優點,提出了基于PDF417碼的文字圖像二維碼生成過程,簡單介紹了數字水印技術及指紋秘鑰加入二維碼的方法,希望能對身份驗證的相關技術研究有所啟發。
參考文獻
[1]林海.二維碼技術在身份證管理中的應用研究[D].天津大學,2012.
[2]潘璐.基于二維碼的證件認證技術研究與實現[D].北京郵電大學,2014.
[3]晁玉海,劉連山,薛立勤,等.基于PDF417條碼的信息隱藏算法[J].計算機工程,2010,(9):131-133.
(作者單位:1.湖南交通工程職業技術學院;2.衡陽財經工業職業技術學院)