專(zhuān)利名稱(chēng):一種高速低功耗的安全sd卡的通訊方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種電子設(shè)備終端的外擴(kuò)存儲(chǔ)載體的通訊方法,特別涉及一種用于個(gè) 人計(jì)算終端的可以做身份認(rèn)證和數(shù)據(jù)加解密的安全SD卡(安全數(shù)碼卡)的通訊方法。
背景技術(shù):
隨著半導(dǎo)體技術(shù)和信息技術(shù)的不斷發(fā)展,人們的日常工作生活越來(lái)越依賴(lài)互聯(lián) 網(wǎng),而開(kāi)放型的互聯(lián)網(wǎng)協(xié)議和脆軟的PC桌面操作系統(tǒng)使得信息安全問(wèn)題成為互聯(lián)網(wǎng)應(yīng)用 進(jìn)步的主要障礙。盡管有各種各樣的殺毒軟件和安全工具,但這些安全軟件主要也是基于 PC計(jì)算技術(shù)的,安全保護(hù)存在限制。因此,像網(wǎng)絡(luò)銀行這樣安全性要求極高的應(yīng)用,人們會(huì)借助USBKey等安全硬件設(shè) 備來(lái)登入和操作。USBKey主要用來(lái)存儲(chǔ)數(shù)字證書(shū),并在USBKey內(nèi)部進(jìn)行簽名認(rèn)證;同時(shí) USBKey的密鑰永遠(yuǎn)不能導(dǎo)出,這樣保證了通信交互的安全性。近幾年隨著3G的發(fā)展,移動(dòng)互聯(lián)網(wǎng)迅速興起,越來(lái)越多的人使用智能手機(jī)或PAD (平板電腦)等,通過(guò)3G或WIFI進(jìn)入移動(dòng)互聯(lián)網(wǎng)。于是人們通過(guò)該些移動(dòng)設(shè)備進(jìn)行在線(xiàn)交 易時(shí),自然也需要類(lèi)似于USBKey的安全硬件。然而,現(xiàn)有的智能手機(jī)和PAD其一般僅設(shè)置 有SD接口,可以外擴(kuò)TF卡,但很少能使用USBKey。因此很難將USBKey直接應(yīng)用于移動(dòng)設(shè) 備。所謂的安全數(shù)碼卡(以下簡(jiǎn)稱(chēng)安全SD卡),或mini SD卡、MicroSD卡(TF卡),就是 在普通SD存儲(chǔ)卡的基礎(chǔ)上增加安全功能,主要體現(xiàn)在密鑰產(chǎn)生、存儲(chǔ)和管理,數(shù)字簽名認(rèn) 證、數(shù)據(jù)加解密等?,F(xiàn)有一種安全SD卡的實(shí)現(xiàn)結(jié)構(gòu)中,在SD卡的主控芯片上集成所述安全功能,其封 裝簡(jiǎn)單、芯片工作效率高。但是,需要使用eflash工藝制造所述主控芯片,成本較高。而且, 為了跟進(jìn)不斷發(fā)展的NandFlash工藝,該主控芯片上的NandFlash接口也需要不斷地更新; 而固件的頻繁更新對(duì)SD卡的安全性會(huì)有一定影響?,F(xiàn)在還有一種分離式的安全SD卡,其將SD卡的主控芯片與一安全芯片封裝在一 起,通過(guò)專(zhuān)門(mén)的接口進(jìn)行通信。由于,主控芯片及安全芯片是相互分離的,封裝相對(duì)復(fù)雜,且 對(duì)如加解密等一些安全功能的實(shí)現(xiàn)會(huì)受到一定限制。但是安全芯片相對(duì)獨(dú)立,可專(zhuān)注于安 全COS部分的實(shí)現(xiàn);不需要因?yàn)镾D接口兼容性和Nandflash兼容性等問(wèn)題而經(jīng)常更新固件 甚至硬件,因而分離式安全SD卡的安全性更好。然而,目前市場(chǎng)上已有的分離式安全SD卡,主要采用IS07816等低速接口作為SD 卡的主控芯片與安全芯片的接口通道,無(wú)法實(shí)現(xiàn)高速的加解密功能,很難滿(mǎn)足像警務(wù)、電子 政務(wù)等對(duì)加密性能要求更高的應(yīng)用。同時(shí),使用該類(lèi)安全芯片的功耗(靜態(tài)功耗和工作功 耗)比較高,對(duì)于移動(dòng)終端來(lái)說(shuō)是嚴(yán)重的問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種高速低功耗的安全SD卡的通訊方法,對(duì)分離式的安全SD卡中主控芯片與安全芯片基于SPI接口的通訊方法進(jìn)行優(yōu)化,以提升其加解密性能;同 時(shí)通過(guò)功耗優(yōu)化方案,有效降低安全SD卡的靜態(tài)及動(dòng)態(tài)功耗,使其可更好地適用于移動(dòng)終 端設(shè)備。為了達(dá)到上述目的,本發(fā)明的技術(shù)方案是提供一種高速低功耗的安全SD卡的通 訊方法,包含以下步驟
步驟1、通過(guò)SPI接口,對(duì)應(yīng)連接主控芯片與安全芯片; 步驟2、對(duì)應(yīng)連接主控芯片與存儲(chǔ)芯片;
步驟3、定義基于所述SPI接口的所述主控芯片與安全芯片之間的命令及響應(yīng)格式; 步驟4、定義基于所述命令及響應(yīng)格式的所述主控芯片與安全芯片之間的信息交互方式。步驟1中,所述SPI接口分別通過(guò)主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線(xiàn)MOSI,主機(jī)輸入/從 機(jī)輸出數(shù)據(jù)線(xiàn)MIS0,串行時(shí)鐘線(xiàn)SCK,以及從機(jī)選擇線(xiàn)SS,來(lái)對(duì)應(yīng)連接作為主機(jī)的所述主控 芯片與作為從機(jī)的所述安全芯片;步驟2中,所述存儲(chǔ)芯片(30)是Nandflash存儲(chǔ)芯片,其 通過(guò)Nandflash接口(31)與所述主控芯片(10)連接。所述高速低功耗的安全SD卡的通訊方法,還包含步驟5
通過(guò)一電源輸出線(xiàn)PWR,將所述主控芯片與所述安全芯片的工作電源端VDDH對(duì)應(yīng)連
接;
與外部電源連接的所述主控芯片,通過(guò)所述電源輸出線(xiàn)PWR向所述安全芯片提供工作 電源,并在所述安全芯片不工作時(shí)切斷其電源,以避免靜態(tài)功耗。所述高速低功耗的安全SD卡的通訊方法,還包含步驟6
通過(guò)一喚醒輸出線(xiàn)Wakeup,將所述主控芯片與所述安全芯片的復(fù)位端RST連接; 在每個(gè)任務(wù)執(zhí)行完成后,安全芯片的系統(tǒng)時(shí)鐘被禁止;而在下一個(gè)任務(wù)開(kāi)始之前,所述 主控芯片發(fā)送喚醒信號(hào)來(lái)激活該安全芯片的系統(tǒng)時(shí)鐘;當(dāng)時(shí)鐘穩(wěn)定以后再開(kāi)始該新任務(wù)的 命令交互。步驟3中,所述命令格式包含
命令頭CMD,命令頭部分異或校驗(yàn)碼M)R,任意數(shù)據(jù)Muff,命令數(shù)據(jù)DATA,以及數(shù)據(jù)部 分異或校驗(yàn)碼XOR ;根據(jù)不同的任務(wù)需要,可依序選擇其中的一些部分構(gòu)成所述命令;
所述命令頭CMD還依次包含有指令種類(lèi)CLA,指令碼INS,指令參數(shù)Pl和P2,以及后續(xù) 發(fā)送的數(shù)據(jù)長(zhǎng)度LC或期望返回的數(shù)據(jù)長(zhǎng)度Le ;其中所述后續(xù)發(fā)送的數(shù)據(jù)長(zhǎng)度LC指所述命 令數(shù)據(jù)DATA的長(zhǎng)度。所述響應(yīng)格式,包含
返回?cái)?shù)據(jù)頭HEAD,返回?cái)?shù)據(jù)DATA,狀態(tài)字STATUS,數(shù)據(jù)部分和狀態(tài)部分異或值M)R,以 及根據(jù)不同安全芯片選擇設(shè)定的若干無(wú)效數(shù)字XX ;
根據(jù)不同的任務(wù)需要,可依序選擇其中的一些部分構(gòu)成所述響應(yīng);所述期望返回的數(shù) 據(jù)長(zhǎng)度Le指所述返回?cái)?shù)據(jù)DATA的長(zhǎng)度。步驟4中,所述主控芯片與安全芯片通過(guò)第一交互任務(wù)通信,包含所述主控芯片 向安全芯片發(fā)送狀態(tài)反饋的命令,安全芯片響應(yīng)并向主控芯片返回其狀態(tài)值。步驟4中,所述主控芯片與安全芯片通過(guò)第二交互任務(wù)通信,包含所述主控芯片 向安全芯片發(fā)送讀操作的命令,安全芯片響應(yīng)并向主控芯片返回其數(shù)據(jù)值和狀態(tài)值。
步驟4中,所述主控芯片與安全芯片通過(guò)第三交互任務(wù)通信,包含所述主控芯片 向安全芯片發(fā)送寫(xiě)操作的命令,該命令包含需要寫(xiě)入的數(shù)據(jù)值;所述安全芯片響應(yīng)該命令 并向主控芯片返回其狀態(tài)值。步驟4中,所述主控芯片與安全芯片通過(guò)第四交互任務(wù)通信,包含
第一階段,由所述主控芯片以所述第一交互任務(wù)方式,告知安全芯片進(jìn)入加解密操作 模式;
第二階段,主控芯片將待加密或解密處理的上層數(shù)據(jù),分成每組長(zhǎng)度相同的若干數(shù)據(jù) 組,并連續(xù)發(fā)送至安全芯片;所述安全芯片接收并對(duì)每組數(shù)據(jù)做加解密處理后回傳給主控 芯片,再接收和處理下一組數(shù)據(jù);
加解密后回傳的數(shù)據(jù),包含有返回?cái)?shù)據(jù)頭HEAD,返回?cái)?shù)據(jù)DATA和若干無(wú)效數(shù)字XX。第三階段,所述主控芯片再以所述第一交互任務(wù)方式,告知安全芯片解除加解密 操作模式。本發(fā)明所述高速低功耗的安全SD卡的通訊方法,其優(yōu)點(diǎn)在于相比現(xiàn)有普通的安 全SD卡使用的IS07816接口、UART或IIC等低速接口,本發(fā)明提供的安全SD卡,對(duì)連接相 分離的主控芯片與安全芯片的高速SPI接口設(shè)計(jì)了合理有效的命令及響應(yīng)格式,以及與之 配合的四種通訊方式,可實(shí)現(xiàn)高速的加解密,并可以將密碼算法性能提升5倍以上。對(duì)于功耗優(yōu)化,普通的安全SD卡通常是在安全芯片不工作時(shí)進(jìn)入休眠,工作時(shí)候 通過(guò)中斷喚醒,優(yōu)化級(jí)別很低。與之相比,本發(fā)明通過(guò)下述優(yōu)化,在工作時(shí)的平均電流可以 下降40%以上。首先,本發(fā)明在安全芯片不工作時(shí)切斷其電源,因而完全沒(méi)有靜態(tài)功耗。同時(shí),本發(fā)明在包含IDLE狀態(tài)和執(zhí)行狀態(tài)的工作過(guò)程中,在每次命令交互完成 后,將安全芯片的片內(nèi)時(shí)鐘停掉;在后一任務(wù)開(kāi)始前,再利用主控芯片提供的喚醒信號(hào)來(lái)使 能安全芯片內(nèi)部的時(shí)鐘,從而可以繼續(xù)工作。而且,本發(fā)明中,對(duì)于安全芯片內(nèi)與所執(zhí)行任務(wù)不相關(guān)的模塊,將關(guān)閉該模塊的系 統(tǒng)時(shí)鐘。另外,對(duì)于沒(méi)有性能要求的任務(wù),可以降低系統(tǒng)頻率;而對(duì)于性能要求高的任務(wù),將 提高系統(tǒng)頻率。
圖1是本發(fā)明所述高速低功耗的安全SD卡的總體結(jié)構(gòu)示意圖2是本發(fā)明所述高速低功耗的安全SD卡中主控芯片與安全芯片具體連接的示意
圖3是本發(fā)明所述高速低功耗的安全SD卡中第一交互任務(wù)的通訊方式; 圖4是本發(fā)明所述高速低功耗的安全SD卡中第二交互任務(wù)的通訊方式; 圖5是本發(fā)明所述高速低功耗的安全SD卡中第三交互任務(wù)的通訊方式; 圖6是本發(fā)明所述高速低功耗的安全SD卡中第四交互任務(wù)的通訊方式。
具體實(shí)施例方式以下結(jié)合
本發(fā)明的具體實(shí)施方式
。如圖1所示,本發(fā)明所述高速低功耗的安全SD卡100中,集成有主控芯片10、安全芯片20和Nandflash存儲(chǔ)芯片30。其中,主控芯片10提供安全SD卡100與外部設(shè)備的接口。該主控芯片10,通過(guò) SPI接口 21 (串行外設(shè)接口)與所述安全芯片20連接,還通過(guò)Nandflash接口 31與所述 Nandflash存儲(chǔ)芯片30連接。如圖2所示,所述SPI接口 21具體使用4條線(xiàn),來(lái)連接所述主控芯片10 (即以下 所述主機(jī))與所述安全芯片20 (即以下所述從機(jī))上的對(duì)應(yīng)端口,包含主機(jī)輸出/從機(jī)輸 入數(shù)據(jù)線(xiàn)MOSI,主機(jī)輸入/從機(jī)輸出數(shù)據(jù)線(xiàn)MIS0,串行時(shí)鐘線(xiàn)SCK,以及低電平有效的從機(jī) 選擇線(xiàn)SS。參考通用的IS07816協(xié)議,定義了基于所述SPI接口 21的通訊協(xié)議,首先是其命 令及響應(yīng)格式,如下表1至表3所示
表1是命令格式,表2是表1中所述命令格式的5字節(jié)的命令頭CMD。該命令格式包含 5字節(jié)的命令頭CMD,1字節(jié)的命令頭部分異或校驗(yàn)碼M)R,2字節(jié)的任意數(shù)據(jù)Muff,命令數(shù) 據(jù)DATA,以及數(shù)據(jù)部分異或校驗(yàn)碼M)R。根據(jù)不同的任務(wù)需要,可依序選擇其中的一些部分 構(gòu)成所述命令。其中,命令頭CMD依次包含有指令種類(lèi)CLA (具體參考7816協(xié)議相關(guān)文檔),指令 碼INS (具體參考7816協(xié)議相關(guān)文檔),指令參數(shù)Pl和P2,以及后續(xù)發(fā)送的數(shù)據(jù)長(zhǎng)度LC或 期望返回的數(shù)據(jù)長(zhǎng)度Le。該發(fā)送的數(shù)據(jù)長(zhǎng)度LC指上述命令數(shù)據(jù)DATA的長(zhǎng)度,即不包含命 令頭中的校驗(yàn)碼部分。該期望返回的數(shù)據(jù)長(zhǎng)度Le中,指下述返回?cái)?shù)據(jù)DATA的長(zhǎng)度,不包含 返回的校驗(yàn)碼CRC和狀態(tài)字的長(zhǎng)度。
表 權(quán)利要求
1.一種高速低功耗的安全SD卡的通訊方法,其特征在于,包含以下步驟 步驟1、通過(guò)SPI接口(21),對(duì)應(yīng)連接主控芯片(10)與安全芯片(20); 步驟2、對(duì)應(yīng)連接主控芯片(10)與存儲(chǔ)芯片(30);步驟3、定義基于所述SPI接口(10)的所述主控芯片(10)與安全芯片(20)之間的命 令及響應(yīng)格式;步驟4、定義基于所述命令及響應(yīng)格式的所述主控芯片(10)與安全芯片(20)之間的信 息交互方式。
2.如權(quán)利要求1所述高速低功耗的安全SD卡的通訊方法,其特征在于,步驟1中,所 述SPI接口(21)分別通過(guò)主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線(xiàn)MOSI,主機(jī)輸入/從機(jī)輸出數(shù)據(jù)線(xiàn) MISO,串行時(shí)鐘線(xiàn)SCK,以及從機(jī)選擇線(xiàn)SS,來(lái)對(duì)應(yīng)連接作為主機(jī)的所述主控芯片(10)與作 為從機(jī)的所述安全芯片(20);步驟2中,所述存儲(chǔ)芯片(30)是Nandflash存儲(chǔ)芯片,其通過(guò) Nandflash接口(31)與所述主控芯片(10)連接。
3.如權(quán)利要求2所述高速低功耗的安全SD卡的通訊方法,其特征在于,還包含步驟5: 通過(guò)一電源輸出線(xiàn)PWR,將所述主控芯片(10)與所述安全芯片(20)的工作電源端VDDH對(duì)應(yīng)連接;與外部電源連接的所述主控芯片(10),通過(guò)所述電源輸出線(xiàn)PWR向所述安全芯片(20) 提供工作電源,并在所述安全芯片(20)不工作時(shí)切斷其電源,以避免靜態(tài)功耗。
4.如權(quán)利要求2所述高速低功耗的安全SD卡的通訊方法,其特征在于,還包含步驟6 通過(guò)一喚醒輸出線(xiàn)Wakeup,將所述主控芯片(10)與所述安全芯片(20)的復(fù)位端RST連接;在每個(gè)任務(wù)執(zhí)行完成后,安全芯片(20)的系統(tǒng)時(shí)鐘被禁止;而在下一個(gè)任務(wù)開(kāi)始之 前,所述主控芯片(10)發(fā)送喚醒信號(hào)來(lái)激活該安全芯片(20)的系統(tǒng)時(shí)鐘;當(dāng)時(shí)鐘穩(wěn)定以后 再開(kāi)始該新任務(wù)的命令交互。
5.如權(quán)利要求2所述高速低功耗的安全SD卡的通訊方法,其特征在于,步驟3中,所述 命令格式包含命令頭CMD,命令頭部分異或校驗(yàn)碼XOR,任意數(shù)據(jù)Stuff,命令數(shù)據(jù)DATA,以及數(shù)據(jù)部 分異或校驗(yàn)碼XOR ;根據(jù)不同的任務(wù)需要,可依序選擇其中的一些部分構(gòu)成所述命令;所述命令頭CMD還依次包含有指令種類(lèi)CLA,指令碼INS,指令參數(shù)Pl和P2,以及后續(xù) 發(fā)送的數(shù)據(jù)長(zhǎng)度LC或期望返回的數(shù)據(jù)長(zhǎng)度Le ;其中所述后續(xù)發(fā)送的數(shù)據(jù)長(zhǎng)度LC指所述命 令數(shù)據(jù)DATA的長(zhǎng)度。
6.如權(quán)利要求5所述高速低功耗的安全SD卡的通訊方法,其特征在于,所述響應(yīng)格式, 包含返回?cái)?shù)據(jù)頭HEAD,返回?cái)?shù)據(jù)DATA,狀態(tài)字STATUS,數(shù)據(jù)部分和狀態(tài)部分異或值X0R,以 及根據(jù)不同安全芯片(20)選擇設(shè)定的若干無(wú)效數(shù)字XX ;根據(jù)不同的任務(wù)需要,可依序選擇其中的一些部分構(gòu)成所述響應(yīng);所述期望返回的數(shù) 據(jù)長(zhǎng)度Le指所述返回?cái)?shù)據(jù)DATA的長(zhǎng)度。
7.如權(quán)利要求6所述高速低功耗的安全SD卡的通訊方法,其特征在于,步驟4中,所述 主控芯片(10)與安全芯片(20)通過(guò)第一交互任務(wù)通信,包含所述主控芯片(10)向安全芯 片(20)發(fā)送狀態(tài)反饋的命令,安全芯片(20)響應(yīng)并向主控芯片(10)返回其狀態(tài)值。
8.如權(quán)利要求6所述高速低功耗的安全SD卡的通訊方法,其特征在于,步驟4中,所述 主控芯片(10)與安全芯片(20)通過(guò)第二交互任務(wù)通信,包含所述主控芯片(10)向安全芯 片(20)發(fā)送讀操作的命令,安全芯片(20)響應(yīng)并向主控芯片(10)返回其數(shù)據(jù)值和狀態(tài)值。
9.如權(quán)利要求6所述高速低功耗的安全SD卡的通訊方法,其特征在于,步驟4中,所述 主控芯片(10)與安全芯片(20)通過(guò)第三交互任務(wù)通信,包含所述主控芯片(10)向安全芯 片(20)發(fā)送寫(xiě)操作的命令,該命令包含需要寫(xiě)入的數(shù)據(jù)值;所述安全芯片(20)響應(yīng)該命令 并向主控芯片(10)返回其狀態(tài)值。
10.如權(quán)利要求7所述高速低功耗的安全SD卡的通訊方法,其特征在于,步驟4中,所 述主控芯片(10)與安全芯片(20)通過(guò)第四交互任務(wù)通信,包含第一階段,由所述主控芯片(10)以所述第一交互任務(wù)方式,告知安全芯片(20)進(jìn)入加 解密操作模式;第二階段,主控芯片(10)將待加密或解密處理的上層數(shù)據(jù),分成每組長(zhǎng)度相同的若干 數(shù)據(jù)組,并連續(xù)發(fā)送至安全芯片(20);所述安全芯片(20)接收并對(duì)每組數(shù)據(jù)做加解密處理 后回傳給主控芯片(10),再接收和處理下一組數(shù)據(jù);加解密后回傳的數(shù)據(jù),包含有返回?cái)?shù)據(jù)頭HEAD,返回?cái)?shù)據(jù)DATA和若干無(wú)效數(shù)字XX;第三階段,所述主控芯片(10)再以所述第一交互任務(wù)方式,告知安全芯片(20)解除加 解密操作模式。
全文摘要
一種高速低功耗的安全SD卡的通訊方法,通過(guò)SPI接口,對(duì)應(yīng)連接主控芯片與安全芯片;對(duì)應(yīng)連接主控芯片與存儲(chǔ)芯片;定義基于所述SPI接口的所述主控芯片與安全芯片之間的命令及響應(yīng)格式;定義基于所述命令及響應(yīng)格式的所述主控芯片與安全芯片之間的信息交互方式,實(shí)現(xiàn)高速加解密的同時(shí),在安全芯片不工作時(shí)切斷其電源,避免靜態(tài)功耗。為了減少動(dòng)態(tài)功耗,本發(fā)明還在每次任務(wù)完成后,將安全芯片的片內(nèi)時(shí)鐘停掉;在后一任務(wù)開(kāi)始前,再利用喚醒信號(hào)來(lái)激活該時(shí)鐘,從而繼續(xù)工作。對(duì)于安全芯片內(nèi)與所執(zhí)行任務(wù)不相關(guān)的模塊,將關(guān)閉該模塊的系統(tǒng)時(shí)鐘。對(duì)于沒(méi)有性能要求的任務(wù),降低系統(tǒng)頻率;而對(duì)于性能要求高的任務(wù),提高系統(tǒng)頻率。
文檔編號(hào)G06F21/00GK102136046SQ201010611169
公開(kāi)日2011年7月27日 申請(qǐng)日期2010年12月29日 優(yōu)先權(quán)日2010年12月29日
發(fā)明者周玉潔, 朱念好, 陳誠(chéng) 申請(qǐng)人:上海愛(ài)信諾航芯電子科技有限公司