孫偉達, 游向東
(北京郵電大學(xué),北京100876)
一種基于CPK的移動終端加密系統(tǒng)*
孫偉達, 游向東
(北京郵電大學(xué),北京100876)
使用CPK算法進行加密時需要連接硬件CPK TF卡,ios操作系統(tǒng)由于自身封閉性,無法內(nèi)置CPK TF卡,從而無法進行CPK加密。為了有效解決ios系統(tǒng)這一問題,本文設(shè)計了一種方案,先將ios系統(tǒng)中需要加密的信息通過藍牙4.0傳送到CPK加密終端,然后在終端生成數(shù)字信封并進行CPK加密,最后再將加密后的信息通過藍牙4.0傳送回ios系統(tǒng),從而實現(xiàn)ios系統(tǒng)上的CPK加密。隨后ios系統(tǒng)可以將加密后的信息發(fā)送到目的地進行解密,解密時首先打開數(shù)字信封,然后進行CPK解密,得到發(fā)送的原始信息,從而實現(xiàn)信息的安全傳輸。
數(shù)據(jù)安全與計算機安全;CPK加密;藍牙4.0;數(shù)字信封;ios系統(tǒng)
容隨著移動智能終端和網(wǎng)絡(luò)應(yīng)用技術(shù)的快速發(fā)展,手機逐漸成為人們?nèi)粘J褂米疃嗟耐ㄐ旁O(shè)備。在網(wǎng)絡(luò)通信日益增多的今天,手機端信息傳輸?shù)陌踩燥@得愈發(fā)重要。目前較為廣泛的安全認證技術(shù)是PKI,它通過以非對稱加密算法為基礎(chǔ)的數(shù)字簽名技術(shù)來確認用戶真實身份。PKI通過權(quán)威認證機構(gòu)CA(Certificate Authority,數(shù)字認證中心)來發(fā)放和管理數(shù)字證書。這不可避免地帶來一些問題,首先,由于需要第三方CA來動態(tài)處理和認證有關(guān)的細節(jié),涉及CA的建設(shè)和維護成本、證書的管理和維護成本、RA(Registration Authority,注冊中心)的運營成本等,導(dǎo)致成本代價高。其次,隨著用戶規(guī)模的不斷擴大,需要擴容證書庫和CA層次結(jié)構(gòu),使得運行效率逐步降低。再次,需要建立和訪問在線數(shù)據(jù)庫,不僅需要在線數(shù)據(jù)庫建設(shè)和維護的成本,而且需要考慮用戶集中訪問數(shù)據(jù)庫帶來的問題[1]。而CPK(Combined Public Key)是由我國著名的密碼學(xué)專家南相浩發(fā)明的一種新的安全認證技術(shù),其安全性基于離散對數(shù)的難解性,采用組合算法和映射算法,用少量的公私鑰因子組合成大量的用戶公私鑰對,可以滿足標識認證的三個條件(認證的規(guī)?;炞C的簡便性和有效的管理)[2]。在某些方面可以彌補PKI的不足,它不需要CA和在線數(shù)據(jù)庫的參與,只需要很少的公用參數(shù)就能管理大量的密鑰,整個認證過程可以在芯片級實現(xiàn),極大地提高了運行的效率,降低了成本,應(yīng)用前景非常廣闊[3]。
CPK是Combined Public Key的縮寫,中文名是組合公鑰,它是由我國著名的密碼學(xué)家南相浩先生發(fā)明的一種新型安全認證技術(shù),其基本原理是利用橢圓曲線密碼的數(shù)學(xué)特征,構(gòu)建公、私鑰組合矩陣,然后通過哈希映射算法生成基于標識的公、私鑰對。其私鑰由密鑰管理中心生成,分配給用戶保存,公鑰以矩陣形式公開,以某種形式由密鑰管理中心放在網(wǎng)上,矩陣中每個元素都由私鑰矩陣元素經(jīng)過橢圓曲線算法而形成[4]。
有了私鑰矩陣和公鑰矩陣,還不能形成私鑰和公鑰,還需要一個組合矩陣,組合矩陣中的元素取值為0或1,起到生成公鑰和私鑰的作用。
第一步,利用哈希映射算法,將用戶標識轉(zhuǎn)換成矩陣中的元素,再進行截取,從而形成組合矩陣。然后將私鑰矩陣和公鑰矩陣分別和組合矩陣相乘,得到中間值矩陣,在這一步計算中,和組合元素取值為0的項相乘后的因子都會舍去,僅保留取值為1的項,這體現(xiàn)了用戶標識在密鑰生成中所起的重要作用。
第二步,將生成的中間值矩陣(aij)和(Aij)的元素各自全部相加,并作以大數(shù)為模的模數(shù)運算,最終得到私鑰和公鑰:
由于公鑰矩陣和私鑰矩陣的每一個元素都是相對應(yīng)的,所以經(jīng)上面計算所生成的公鑰和私鑰也是彼此對應(yīng)的。
在基于CPK的電子簽章系統(tǒng)中,用戶申請密鑰過程采用面對面方式或其他可靠安全信道進行,密鑰管理中心根據(jù)用戶唯一身份信息生成公私鑰密碼對,并將用戶密鑰以ID證書的形式存放在安全存儲介質(zhì)CPK TF Card中提供給用戶,解決了因為密鑰在網(wǎng)絡(luò)上傳輸被截獲的安全隱患。
2.1 系統(tǒng)功能介紹
ios系統(tǒng)在手機操作系統(tǒng)的使用中占有很大比例,但是ios系統(tǒng)由于自身的封閉性,無法內(nèi)置CPK TF Card,因此很難進行基于CPK的硬件加密。為此,本方案提出基于CPK的移動終端加密系統(tǒng),可以在ios系統(tǒng)中使用,既可以方便實現(xiàn)信息安全傳輸,又可以降低系統(tǒng)構(gòu)建成本。
2.2 開發(fā)環(huán)境簡介
本文使用的硬件平臺有兩個,一個是基于ios操作系統(tǒng)的iphone手機,另一個是基于嵌入式安卓系統(tǒng)的CPK加密模塊。
ios系統(tǒng)和安卓系統(tǒng)占據(jù)了整個移動操作系統(tǒng)96%的份額。ios系統(tǒng)是由蘋果公司開發(fā)研制的高性能操作系統(tǒng),其具有操作流暢、安全性高、第三方應(yīng)用豐富等特點,而安卓操作系統(tǒng)是由谷歌公司開發(fā)研制的移動操作系統(tǒng),其具有可擴展性強、系統(tǒng)開放、開源免費等優(yōu)點。
ios操作系統(tǒng)的開發(fā)主要使用objective-c語言,objective-c是擴充C的面向?qū)ο缶幊陶Z言,它完全兼容標準C語言,功能強大,數(shù)據(jù)類型豐富,穩(wěn)定可靠。在ios系統(tǒng)的開發(fā)中,objective-c語言具有明顯優(yōu)勢。正因為objective-c具有上述特點,本文選擇objective-c語言進行ios操作系統(tǒng)客戶端的開發(fā)??蛻舳嗽赬code6.0上編寫,編寫好的程序編譯運行后,會直接在iphone手機上生成相應(yīng)的客戶端。
安卓操作系統(tǒng)的開發(fā)主要使用java語言,java是一種可撰寫跨平臺應(yīng)用程序的語言,基于面向?qū)ο蟪绦蛟O(shè)計,具有卓越的高效性、通用性、平臺移植性等特點。由于CPK加密系統(tǒng)支持java接口,可以快速方便地調(diào)用各個CPK接口,因此本文使用java進行CPK加密系統(tǒng)的開發(fā)。配置安卓開發(fā)環(huán)境為Java SDK+Eclipse(IDE)+ADT(Android developer Tools)。
2.3 流程整體設(shè)計
系統(tǒng)的整體流程如圖1所示。
(1)首先打開ios客戶端,然后打開藍牙,通過藍牙4.0搜索加密設(shè)備并連接[5]
(2)輸入PIN碼,打開CPK TF Card進行身份驗證,如果連續(xù)輸入PIN碼不正確超過5次,CPK TF Card則會被鎖住,無法繼續(xù)操作
(3)PIN碼驗證成功后,輸入要加密的信息
(4)輸入完成后,信息通過已建立的藍牙通道傳輸?shù)郊用芙K端進行CPK加密
(5)加密后的結(jié)果再通過藍牙通道傳送給ios客戶端
(6)將加密后的信息通過網(wǎng)絡(luò)傳送到服務(wù)器,服務(wù)器將CPK加密后的信息通過公鑰解密驗證,得出ios客戶端傳輸?shù)男畔ⅰ?/p>
圖1 CPK加密系統(tǒng)流程
本文的CPK加密實現(xiàn)主要基于涉及設(shè)備管理的CPK TF Card庫和算法信息的CPK API庫。
藍牙連接成功后,調(diào)用TCardOpen,通過驗證PIN碼,確定用戶的合法性,并將CPK TF Card的狀態(tài)設(shè)置為打開,并修改為相應(yīng)的安全狀態(tài),在關(guān)閉設(shè)備前一直保持此安全狀態(tài)。即可對CPK TF Card進行訪問。為了保證密鑰傳送的安全,本文使用數(shù)字信封來進行密鑰的安全傳送。數(shù)字信封的數(shù)據(jù)結(jié)構(gòu)其實就是橢圓曲線上的一個點(x,y),由x和y兩個坐標構(gòu)成,對于192位的橢圓曲線來說,長度為48個字節(jié)。
首先用接收方的標識ID生成選取數(shù)列,對種子公鑰集進行選取與標識,生成標識公鑰,調(diào)用CPK_Encrypt_Data生成隨機DES密鑰,然后調(diào)用TCardSM1Encrypt用隨機生成的DES密鑰對原始數(shù)據(jù)進行對稱加密。同時,用接收方的公鑰對DES密鑰進行CPK非對稱加密,就得到了數(shù)字信封,將數(shù)字信封同DES對稱加密后的消息一起打包,通過藍牙傳輸,傳送給回ios客戶端[6],如圖2所示。
圖2 CPK加密流程
加密的信息傳送到服務(wù)器后,首先調(diào)用TCardOpenDEnvelope打開數(shù)字信封,即用其私鑰對數(shù)字信封進行非對稱解密,得到發(fā)送方的DES密鑰,然后用此密鑰調(diào)TCardSM1Decrypt對同時傳送來的DES密鑰加密后的信息進行對稱解密,從而得到ios客戶端發(fā)送過來的信息,如圖3所示。
圖3 CPK解密流程
最后調(diào)用TCardClose,關(guān)閉CPK TF Card,斷開系統(tǒng)與CPK TF Card的連接,并將狀態(tài)設(shè)置為關(guān)閉,清除安全狀態(tài)寄存器。
通過對現(xiàn)有智能終端使用分布的分析以及主流加密方法的研究,針對用戶數(shù)日益增多的ios操作系統(tǒng),本文設(shè)計了一種基于CPK的移動終端加密系統(tǒng),并在ios操作系統(tǒng)實現(xiàn),實現(xiàn)了ios系統(tǒng)信息加密的安全性,該方法利用了CPK認證方法基于可信邏輯,依靠唯一標識和公鑰密碼認證技術(shù)即可實現(xiàn)加密解密的優(yōu)勢,較少了必須通過認證服務(wù)器驗證這個步驟,簡化了認證設(shè)施,從而避免了集中訪問數(shù)據(jù)庫可能會造成的系統(tǒng)問題。同時,該方案實現(xiàn)了ios系統(tǒng)信息加密的易用性,通過藍牙4.0快速連接外部加密設(shè)備,從而實現(xiàn)了安全性極高的硬件加密。
[1]李勝勇,陳文元,張衛(wèi)平.PKI技術(shù)及其存在問題的分析[J].微計算機信息,2005(1):171-172.
[2]南湘浩,陳鐘.網(wǎng)絡(luò)安全技術(shù)概要[M],北京:國防工業(yè)出版社,2003.
[3]南湘浩.CPK算法與認證標識[J].信息安全與通信保密,2006(9):12-16.
[4]南湘浩.CPK公鑰體[制與標識鑒別——自主管理技術(shù)基礎(chǔ)[M],北京:人民郵電出版社,2013:38-70.
[5]歐陽駿,藍牙4.0BLE開發(fā)完全手冊:物聯(lián)網(wǎng)開發(fā)技術(shù)實戰(zhàn)[M],北京:化學(xué)工業(yè)出版社,2013.
[6]范志強,李成,馬兆豐等.基于CPK組合公鑰的電子簽章技術(shù)研究[J].信息安全與通信保密,2011,09(7):89-92.
A Mobile Terminal Encryption System based on CPK
SUN Wei-da,YOU Xiang-dong
(Beijing University of Posts and Telecommunications,Beijing 100876,China)
Because of its closure,ios system is forbidden to directly connect to bulit-in CPK TF Card.Without CPK TF Card,messages could not be encrypted by CPK algorithm.In order to solve this problem of ios system,a novel scheme is proposed,in which the messages from ios system is fairly transmitted to CPK encryption terminal by Bluetooth 4.0,then the digital envelope is generated and the messages on CPK encryption terminal encrypted,and finally the encrypted messages is sent back to ios system by Bluetooth 4.0. After all these steps,the encrypted message on ios system is transmitted to the destination for decryption.In decryping the messages,the digital envelope is firstly opened and the key acquired,then the key is used to decrypt the messages via CPK algorithm,and finally the original message acquired,thus accomplishing the message transmission in security.
data security and computer security;CPK encryption;bluetooth 4.0;digital envelope;ios system
TP309.7
A
1009-8054(2015)12-0124-03
孫偉達(1990—),男,碩士,在讀研究生,主要研究方向為嵌入式與多媒體;
2015-09-24
游向東(1968—),男,碩士,高級工程師,主要研究方向為嵌入式與多媒體?!?/p>