專(zhuān)利名稱(chēng):利用智能卡為外部設(shè)備應(yīng)用提供加解密服務(wù)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及智能卡領(lǐng)域,更具體地,涉及利用智能卡為外部設(shè)備應(yīng)用提供加解密
服務(wù)的方法以及包括這種智能卡的設(shè)備。
背景技術(shù):
當(dāng)前,智能卡廣泛應(yīng)用在電信、金融等很多領(lǐng)域中。安全性是智能卡應(yīng)用的基礎(chǔ), 主要包括以下幾個(gè)方面智能卡在物理結(jié)構(gòu)上的不可攻破,智能卡在軟件體系中的健壯性, 以及基于不可攻破算法的加解密服務(wù)。目前,加解密服務(wù)越來(lái)越受到人們的關(guān)注,成為智能 卡應(yīng)用的重要內(nèi)容。通常,在智能卡芯片在設(shè)計(jì)過(guò)程中,會(huì)加入硬件協(xié)處理器專(zhuān)門(mén)為加解密 服務(wù)提供支持,使運(yùn)算速度更快,加解密安全性更高。當(dāng)前的智能卡中的加解密服務(wù)一般都 是提供給卡內(nèi)操作系統(tǒng)以及卡內(nèi)應(yīng)用使用的。 智能卡的一個(gè)例子是嵌入到諸如手機(jī)、PDA等的移動(dòng)終端中使用的電信sim卡。隨
著智能卡應(yīng)用的發(fā)展,將有越來(lái)越多的智能卡可以與各種類(lèi)型的終端一起使用。很多終端 設(shè)備本身沒(méi)有加解密功能,或者即使終端設(shè)備上的應(yīng)用程序能夠提供加解密服務(wù),由于處
理資源的限制,由終端上的應(yīng)用程序所提供的加解密服務(wù)可能比較耗時(shí)并且安全級(jí)別低。 因此需要一種為上述終端設(shè)備提供安全的加解密服務(wù)的手段。
發(fā)明內(nèi)容
考慮到現(xiàn)有技術(shù)的上述問(wèn)題,本發(fā)明提供了一種利用智能卡為外部設(shè)備應(yīng)用提供 加和/或解密服務(wù)的方法,包括與智能卡連接的外部設(shè)備上的應(yīng)用模塊向所述智能卡中 的加解密代理模塊發(fā)送加和/或解密命令;所述加解密代理模塊根據(jù)所述加和/或解密命 令調(diào)用所述智能卡中的加解密服務(wù)模塊來(lái)執(zhí)行加和/或解密操作;以及所述加解密代理模 塊將執(zhí)行所述加和/或解密操作所得到的加和/或解密結(jié)果返回給所述外部設(shè)備上的應(yīng)用 模塊。 另一方面,本發(fā)明提供了一種與智能卡連接的設(shè)備,該設(shè)備包括應(yīng)用模塊,所述應(yīng) 用模塊向所述智能卡發(fā)送加和/或解密命令,所述智能卡進(jìn)一步包括加解密服務(wù)模塊,用 于提供加和/或解密服務(wù);以及加解密代理模塊,用于根據(jù)所述加和/或解密命令調(diào)用所述 加解密服務(wù)模塊來(lái)執(zhí)行加和/或解密操作,并且將執(zhí)行所述加和/或解密操作所得到的加 和/或解密結(jié)果返回給所述應(yīng)用模塊。 另一方面,本發(fā)明提供了一種智能卡,包括加解密服務(wù)模塊,用于提供加和/或 解密服務(wù);加解密代理模塊,用于接收從所述智能卡外部的應(yīng)用模塊向所述智能卡發(fā)送的 加和/或解密命令,根據(jù)所述加和/或解密命令調(diào)用所述加解密服務(wù)模塊來(lái)執(zhí)行加和/或 解密操作,并且將執(zhí)行所述加和/或解密操作所得到的加和/或解密結(jié)果返回給所述應(yīng)用 模塊。 通常智能卡中具有的加解密服務(wù)模塊具備專(zhuān)用于加解密和抗破壞的特性,例如該 加解密服務(wù)模塊利用專(zhuān)用的加解密協(xié)處理器提供加解密服務(wù),因此具有優(yōu)化的處理性能和較高的安全性,通過(guò)本發(fā)明的上述技術(shù)方案,本發(fā)明提供了一種實(shí)用并且有效的方式來(lái)利 用智能卡芯片內(nèi)的加解密服務(wù)為不同種類(lèi)的外部終端設(shè)備提供安全的加解密服務(wù)。
在下文中結(jié)合附圖對(duì)本發(fā)明具體實(shí)施例進(jìn)行詳細(xì)的說(shuō)明,其中
圖1示出了包含智能卡的終端設(shè)備的示意圖; 圖2示出了按照本發(fā)明一個(gè)實(shí)施例、利用智能卡為外部設(shè)備應(yīng)用提供加和/或解 密服務(wù)的一種實(shí)現(xiàn)方式的示意框圖; 圖3示出了按照本發(fā)明一個(gè)實(shí)施例、利用智能卡為外部設(shè)備應(yīng)用提供加和/或解 密服務(wù)的方法的流程圖; 圖4示出了按照本發(fā)明一個(gè)實(shí)施例、利用智能卡為外部設(shè)備應(yīng)用提供加和/或解 密服務(wù)的另一種實(shí)現(xiàn)方式的示意框圖; 圖5示出了按照本發(fā)明一個(gè)實(shí)施例、利用智能卡為外部設(shè)備應(yīng)用提供加和/或解 密服務(wù)的另一種實(shí)現(xiàn)方式的示意框圖; 圖6示出了按照本發(fā)明一個(gè)實(shí)施例、利用智能卡為外部設(shè)備應(yīng)用提供加和/或解 密服務(wù)的另一種實(shí)現(xiàn)方式的示意框圖; 圖7示出了按照本發(fā)明一個(gè)優(yōu)選實(shí)施例、利用智能卡為外部設(shè)備應(yīng)用提供加和/ 或解密服務(wù)的另一種實(shí)現(xiàn)方式的示意框圖;以及 圖8示出了按照本發(fā)明一個(gè)實(shí)施例、利用智能卡為外部設(shè)備應(yīng)用提供加和/或解 密服務(wù)的方法的流程圖。
具體實(shí)施例方式
在下文中,將參考附圖通過(guò)具體實(shí)施例對(duì)本發(fā)明進(jìn)行描述,應(yīng)該注意,本發(fā)明并不 限于以下描述的實(shí)施例。在下面說(shuō)明的實(shí)施例中,以基于諸如java卡的多應(yīng)用智能卡技術(shù) 進(jìn)行說(shuō)明,但是應(yīng)該注意,本發(fā)明并不限于Java卡的應(yīng)用。 圖1是包含智能卡的終端設(shè)備10的示意圖,該終端設(shè)備諸如是手機(jī)、PDA、游戲機(jī)、 便攜式計(jì)算機(jī)等能夠運(yùn)行應(yīng)用程序的設(shè)備,并且該終端設(shè)備上插入有一個(gè)諸如java卡的 智能卡,其中該智能卡中提供了專(zhuān)門(mén)的加解密服務(wù)模塊。 圖2示出了按照本發(fā)明一個(gè)實(shí)施例、利用智能卡為外部設(shè)備應(yīng)用提供加和/或解 密服務(wù)的一種實(shí)現(xiàn)方式的示意框圖。如圖2所示,應(yīng)用模塊110例如是與智能卡相連的外 部終端設(shè)備10上運(yùn)行的應(yīng)用程序。該應(yīng)用模塊110需要進(jìn)行加和/或解密運(yùn)算,該加和/ 或解密運(yùn)算例如是RSA、DSA、 AES、3DES、DES、RC2算法以及MD5、 SHA1、 SHA_256、 SHA-384和 SHA-512散列算法等各種本領(lǐng)域已知的加解密算法。智能卡20與外部終端設(shè)備10相連,包 括加解密代理模塊210和加解密服務(wù)模塊220,其中,加解密服務(wù)模塊220能夠提供上述全 部或一部分加解密運(yùn)算功能,并且不限于上述加解密運(yùn)算。 圖3示出了按照本發(fā)明一個(gè)實(shí)施例、利用智能卡為外部設(shè)備應(yīng)用提供加和/或解 密服務(wù)的方法的流程圖。在步驟S310中,應(yīng)用模塊110向智能卡20中的加解密代理模塊 210發(fā)送加和/或解密命令。例如,應(yīng)用模塊110要對(duì)一段數(shù)據(jù)進(jìn)行DES加密操作,則該應(yīng) 用模塊110可以將執(zhí)行DES加密操作所需要調(diào)用的方法、與該方法相關(guān)的信息、以及相應(yīng)的參數(shù)編碼在加密命令中,該要調(diào)用的方法例如包括設(shè)置密鑰、執(zhí)行DES加密、或執(zhí)行其它的加密或解密,該參數(shù)例如包括加密密鑰、要解密的數(shù)據(jù)等。在步驟S320,加解密代理模塊210根據(jù)應(yīng)用模塊發(fā)送的加密命令,調(diào)用智能卡20中的加解密服務(wù)模塊220來(lái)執(zhí)行相應(yīng)的加密操作。例如,加解密代理模塊210根據(jù)加密命令中包含的"要調(diào)用的方法"調(diào)用加解密服務(wù)模塊220中相應(yīng)的方法,比如設(shè)置密鑰、執(zhí)行DES加密等。在步驟S330,加解密代理模塊210將執(zhí)行上述加密操作所得到的加密結(jié)果返回給外部設(shè)備上的應(yīng)用模塊110。按照上面相同的流程,也可以執(zhí)行解密操作。 圖4示出了按照本發(fā)明一個(gè)實(shí)施例、利用智能卡為外部設(shè)備應(yīng)用提供加和/或解密服務(wù)的一種具體實(shí)現(xiàn)方式的示意框圖。如圖4所示,通過(guò)在java卡應(yīng)用系統(tǒng)之上的小應(yīng)用程序(即plet)4210來(lái)實(shí)現(xiàn)圖2中所示的加解密代理模塊。該小應(yīng)用程序4210與應(yīng)用模塊4110之間通過(guò)自定義的應(yīng)用程序協(xié)議數(shù)據(jù)單元(APDU)命令進(jìn)行通信。具體而言,應(yīng)用模塊4110生成自定義的APDU命令,并將該APDU命令經(jīng)由所述智能卡的操作系統(tǒng)發(fā)送給加解密代理模塊4210。加解密代理模塊4210根據(jù)接收到的APDU命令中包含的要調(diào)用的方法以及相應(yīng)的參數(shù)等信息,調(diào)用加解密服務(wù)模塊中相應(yīng)的加和/或解密方法來(lái)進(jìn)行相應(yīng)的加和/或解密操作,并將結(jié)果通過(guò)自定義的APDU命令返回到卡外的應(yīng)用模塊4110。
圖5示出了按照本發(fā)明一個(gè)實(shí)施例、利用智能卡為外部設(shè)備應(yīng)用提供加和/或解密服務(wù)的另一種具體實(shí)現(xiàn)方式的示意框圖。與圖4所示的實(shí)施例不同,如圖5所示,通過(guò)修改Java卡的應(yīng)用系統(tǒng),以底層程序5210來(lái)實(shí)現(xiàn)圖2中所示的加解密代理模塊,該底層程序5210與應(yīng)用模塊150之間通過(guò)自定義的應(yīng)用程序協(xié)議數(shù)據(jù)單元(APDU)命令進(jìn)行通信。這樣做的好處是加解密代理模塊510實(shí)現(xiàn)在操作系統(tǒng)中,可以直接根據(jù)APDU命令調(diào)用加解密服務(wù)模塊520中相應(yīng)的加和/或解密服務(wù),具有更高的執(zhí)行效率和安全性。
圖4和5中舉例說(shuō)明的具體實(shí)現(xiàn)方式,需要智能卡外的應(yīng)用模塊知道自定義APDU命令的構(gòu)造的具體細(xì)節(jié),在開(kāi)發(fā)該應(yīng)用模塊的過(guò)程中需要了解自定義APDU的每個(gè)字段的含義,這樣對(duì)設(shè)備應(yīng)用程序的開(kāi)發(fā)帶來(lái)了一定的難度。 圖6示出了按照本發(fā)明一個(gè)實(shí)施例、利用智能卡為外部設(shè)備應(yīng)用提供加和/或解密服務(wù)的另一種具體實(shí)現(xiàn)方式的示意框圖。該實(shí)現(xiàn)方式利用java卡支持的遠(yuǎn)程方法調(diào)用(RMI)機(jī)制,在Java卡內(nèi)實(shí)現(xiàn)一個(gè)遠(yuǎn)程服務(wù)應(yīng)用,并且定義一個(gè)遠(yuǎn)程調(diào)用接口 6220,供Java卡外的應(yīng)用程序使用。如圖6所示,通過(guò)在java卡應(yīng)用系統(tǒng)之上的RMI小應(yīng)用程序6210來(lái)實(shí)現(xiàn)圖2中所示的加解密代理模塊210。 Java卡外的終端設(shè)備上的應(yīng)用模塊6110通過(guò)與RMI小應(yīng)用程序6210關(guān)聯(lián)的自定義遠(yuǎn)程調(diào)用接口 ,將要調(diào)用的方法和相應(yīng)的參數(shù)輸入到通用RMI樁(Stub)模塊6230,該通用的RMI樁模塊解析與該要調(diào)用的方法相關(guān)的信息,并將該要調(diào)用的方法、相關(guān)的信息以及相應(yīng)的參數(shù)編碼在APDU命令中,然后將該APDU命令經(jīng)由Java卡的操作系統(tǒng)發(fā)送到作為加解密代理模塊的RMI小應(yīng)用程序6210。加解密代理模塊6210根據(jù)接收到的APDU命令調(diào)用加解密服務(wù)模塊6220中相應(yīng)的加和/或解密服務(wù)來(lái)進(jìn)行相應(yīng)的加和/或解密操作,并將加和/或解密結(jié)果通過(guò)APDU命令經(jīng)由該RMI樁模塊和該遠(yuǎn)程調(diào)用接口返回給應(yīng)用模塊6110。 圖7示出了按照本發(fā)明一個(gè)實(shí)施例、利用智能卡為外部設(shè)備應(yīng)用提供加和/或解密服務(wù)的另一種具體實(shí)現(xiàn)方式的示意框圖。如圖7所示,通過(guò)修改Java卡應(yīng)用系統(tǒng),以RMI底層程序7210來(lái)實(shí)現(xiàn)圖2中所示的加解密代理模塊210,并且由系統(tǒng)開(kāi)發(fā)者提供與作為加解密代理模塊的RMI底層程序7210相關(guān)聯(lián)的遠(yuǎn)程加解密服務(wù)應(yīng)用程序接口 (API) 7130以 及相應(yīng)的遠(yuǎn)程加解密服務(wù)API實(shí)施模塊7140,該遠(yuǎn)程加解密服務(wù)API對(duì)于Java卡外的應(yīng)用 模塊來(lái)說(shuō)是公開(kāi)的,該應(yīng)用模塊可以通過(guò)調(diào)用該公開(kāi)的遠(yuǎn)程加解密服務(wù)API來(lái)使用java卡 中提供的加解密服務(wù)。 在一個(gè)具體實(shí)現(xiàn)中,Java卡外的終端設(shè)備上的應(yīng)用模塊7110或7120調(diào)用上述 公開(kāi)的遠(yuǎn)程加解密服務(wù)API 7130中的方法并且設(shè)置與該方法對(duì)應(yīng)的參數(shù),遠(yuǎn)程加解密API 實(shí)施模塊7140解析與該調(diào)用的方法相關(guān)的信息,并將所解析的信息、方法和對(duì)應(yīng)的參數(shù)編 碼到APDU命令中,然后將所編碼的APDU命令發(fā)送到作為加解密代理模塊的RMI底層程序 7210。加解密代理模塊7210然后根據(jù)接收到的APDU命令調(diào)用加解密服務(wù)模塊7220中相 應(yīng)的加和/或解密服務(wù)來(lái)進(jìn)行相應(yīng)的加和/或解密操作,并將結(jié)果通過(guò)APDU命令經(jīng)由遠(yuǎn)程 加解密服務(wù)API實(shí)施模塊7140返回給應(yīng)用模塊7110或7120。 圖7所示的實(shí)施方式相對(duì)于圖6所示的實(shí)施方式具備進(jìn)一步的優(yōu)點(diǎn)。首先,由于 加解密代理模塊是在java卡操作系統(tǒng)中實(shí)現(xiàn)的,并且由操作系統(tǒng)的開(kāi)發(fā)者提供了與之對(duì) 應(yīng)的遠(yuǎn)程加解密服務(wù)API和遠(yuǎn)程加解密服務(wù)API實(shí)施模塊,從而為應(yīng)用程序提供了公開(kāi)的 遠(yuǎn)程加解密服務(wù)API來(lái)使用java卡中所提供的加解密服務(wù)。其次,支持java卡的通用 RMI stub通常不具備加擾、加密功能,因此在APDU命令傳送過(guò)程中可能存在風(fēng)險(xiǎn),而利用 系統(tǒng)開(kāi)發(fā)者提供的遠(yuǎn)程加解密服務(wù)API實(shí)施模塊,可以對(duì)APDU命令進(jìn)行加擾,或者在形成 APDU命令之前對(duì)需要傳送的參數(shù)進(jìn)行加擾。本領(lǐng)域技術(shù)人員知道,在Java卡的環(huán)境中,利 用APDU命令進(jìn)行應(yīng)用模塊和加解密代理模塊之間的通信,當(dāng)采用其他技術(shù)時(shí),可以采用其 他的消息格式來(lái)進(jìn)行應(yīng)用模塊和加解密代理模塊之間的通信。 圖8示出了基于圖7所示的具體實(shí)現(xiàn)方式描述的利用智能卡為外部設(shè)備應(yīng)用提供 加和/或解密服務(wù)的方法的流程圖。在該實(shí)施例中,不妨假設(shè)Java卡外的應(yīng)用模塊7110 需要利用智能卡內(nèi)的硬件協(xié)處理器來(lái)完成一次DES加密功能。 在步驟S810中,應(yīng)用模塊7110調(diào)用公開(kāi)的遠(yuǎn)程加解密服務(wù)API 7130中的方法并 且設(shè)置相應(yīng)的參數(shù)。例如,在最開(kāi)始應(yīng)用模塊7110要調(diào)用的方法為"設(shè)置密鑰",例如函數(shù) "DES. SetKey",并且所設(shè)置的相應(yīng)的參數(shù)為一個(gè)DES密鑰。 在步驟S820中,遠(yuǎn)程加解密服務(wù)API 7130將DES密鑰傳輸給遠(yuǎn)程加解密服務(wù)API 實(shí)施模塊7140。該API實(shí)施模塊7140接下來(lái)要執(zhí)行以下任務(wù)解析與該"設(shè)置密鑰"方法 相關(guān)的信息,例如要遠(yuǎn)程調(diào)用的加解密包、類(lèi)、方法、以及參數(shù)等;加擾要傳送的信息;以及 將加擾后的傳送信息發(fā)送至Java卡內(nèi)。 在步驟S830中,遠(yuǎn)程加解密服務(wù)API實(shí)施模塊7140根據(jù)應(yīng)用模塊7110通過(guò)API
7130所調(diào)用的不同方法確定需要傳送到Java卡的內(nèi)容,例如,包、類(lèi)、方法、參數(shù)內(nèi)容為加
密包、DES類(lèi)、設(shè)置密鑰方法以及所設(shè)置的密鑰參數(shù),然后模塊7140將這些內(nèi)容編碼到一定
格式的消息中,例如,在Java卡的環(huán)境中,將這些內(nèi)容編碼到APDU命令中。 在步驟S840中,遠(yuǎn)程加解密服務(wù)API實(shí)施模塊7140按照預(yù)定的方式對(duì)該APDU命
令進(jìn)行加擾。 在步驟S850中,遠(yuǎn)程加解密服務(wù)API實(shí)施模塊7140將加擾的APDU命令發(fā)送到 Java卡系統(tǒng)。 在步驟S860中,Java卡操作系統(tǒng)中的作為加解密代理模塊的RMI底層程序7110接收該APDU命令。 在步驟S870中,該加解密代理模塊7210對(duì)所接收的APDU命令進(jìn)行解擾。
在步驟S880中,該加解密代理模塊7210根據(jù)遠(yuǎn)程加解密服務(wù)API實(shí)施模塊7140在步驟S830中所采取的APDU命令編碼規(guī)則,確定應(yīng)用模塊7110需要調(diào)用的方法、諸如該方法所在的包、類(lèi)等與該方法相關(guān)的信息、以及相應(yīng)的參數(shù),此時(shí),該方法為"設(shè)置DES密鑰",相應(yīng)的參數(shù)為DES密鑰,相關(guān)的信息例如為加密包、DES類(lèi)等。 在步驟S890中,該加解密代理模塊7210調(diào)用加解密服務(wù)模塊7220的"設(shè)置DES密鑰"方法,將DES密鑰設(shè)置到硬件協(xié)處理器中。 在步驟S895中,該加解密代理模塊7210將響應(yīng)APDU命令返回到遠(yuǎn)程加解密服務(wù)
API實(shí)施模塊7140,并且該模塊7140將相應(yīng)的響應(yīng)結(jié)果返回給應(yīng)用模塊7110。 接下來(lái),可以重復(fù)上述步驟S810-S895,以繼續(xù)執(zhí)行加和/或解密操作。 例如,在步驟S810中,應(yīng)用模塊7110要執(zhí)行的操作為利用先前設(shè)置的密鑰對(duì)一段
數(shù)據(jù)進(jìn)行DES加密,因此調(diào)用公開(kāi)的遠(yuǎn)程加解密服務(wù)API7130中的"執(zhí)行DES加密"方法并
且設(shè)置相應(yīng)的參數(shù),該"執(zhí)行DES加密"方法例如是函數(shù)"DES. Encrypt",并且所設(shè)置的相應(yīng)
的參數(shù)為待加密的數(shù)據(jù)。 在步驟S820中,遠(yuǎn)程加解密服務(wù)API 7130將待加密的數(shù)據(jù)傳輸給遠(yuǎn)程加解密服務(wù)API實(shí)施模塊7140。 在步驟S830中,遠(yuǎn)程加解密服務(wù)API實(shí)施模塊7140根據(jù)所調(diào)用的"執(zhí)行DES加密"方法解析所要調(diào)用的加解密包、類(lèi)、方法、參數(shù),此時(shí),API實(shí)施模塊7140根據(jù)加密包中DES類(lèi)的執(zhí)行DES加密方法以及所設(shè)置的待加密數(shù)據(jù)參數(shù)確定要傳送到Java卡的內(nèi)容,并將這些內(nèi)容編碼到APDU命令中。 在步驟S840中,遠(yuǎn)程加解密服務(wù)API實(shí)施模塊7140按照預(yù)定的方式對(duì)該APDU命令進(jìn)行加擾。 在步驟S850中,遠(yuǎn)程加解密服務(wù)API實(shí)施模塊7140將加擾的APDU命令發(fā)送到Java卡系統(tǒng)。 在步驟S860中,Java卡操作系統(tǒng)中的作為加解密代理模塊的RMI底層程序7210接收該APDU命令。 在步驟S870中,該加解密代理模塊7210對(duì)所接收的APDU命令進(jìn)行解擾。
在步驟S880中,該加解密代理模塊7210根據(jù)遠(yuǎn)程加解密服務(wù)API實(shí)施模塊7140在步驟S830中所采取的APDU命令編碼規(guī)則,確定應(yīng)用模塊7110需要調(diào)用的方法、與該方法相關(guān)的信息、以及相應(yīng)的參數(shù),此時(shí),該方法為執(zhí)行DES加密,相應(yīng)的參數(shù)為待加密的數(shù)據(jù)。 在步驟S890中,該加解密代理模塊7210調(diào)用加解密服務(wù)模塊的"執(zhí)行DES加密"的方法,由硬件協(xié)處理器對(duì)所傳送的數(shù)據(jù)進(jìn)行DES加密。 在步驟S895中,該加解密代理模塊7210將加密操作的結(jié)果數(shù)據(jù)編碼到響應(yīng)APDU命令中,并將該響應(yīng)APDU命令返回到遠(yuǎn)程加解密服務(wù)API實(shí)施模塊7140,并且該模塊7140將相應(yīng)的響應(yīng)結(jié)果返回給應(yīng)用模塊7110。 如上所述,為了給Java卡外的應(yīng)用模塊提供對(duì)數(shù)據(jù)的加和/或解密服務(wù),可以重復(fù)執(zhí)行步驟S810到步驟S895。本領(lǐng)域技術(shù)人員應(yīng)該理解,雖然上面以DES加密為例描述
8了上述實(shí)施例,但是上述方法可以用于各種類(lèi)型的加和/或解密操作,并且上述操作過(guò)程 只是一個(gè)具體實(shí)施例,可以進(jìn)行各種適當(dāng)?shù)男薷暮妥冃?。例如,可以以APDU命令為單位對(duì) 每次傳送的數(shù)據(jù)進(jìn)行加解密操作,也可以在java卡中緩存多次傳送的數(shù)據(jù),集中進(jìn)行加解 密操作,例如,也可以不執(zhí)行由遠(yuǎn)程加解密API實(shí)施模塊在步驟S803中執(zhí)行的解析過(guò)程,而 在APDU命令中只傳送方法、密鑰、數(shù)據(jù)這樣的參數(shù),而由加解密代理模塊來(lái)執(zhí)行上述解析 過(guò)程。為了便于理解的目的,具體描述了上述操作過(guò)程的細(xì)節(jié),但是本領(lǐng)域技術(shù)人員清楚本 發(fā)明的實(shí)現(xiàn)不必包含所有的細(xì)節(jié)。本領(lǐng)域技術(shù)人員在所公開(kāi)實(shí)施例的基礎(chǔ)上,通過(guò)改變某 些步驟的執(zhí)行順序,添加、合并、拆分某些步驟,可以對(duì)上述過(guò)程進(jìn)行適當(dāng)?shù)匦薷摹?
上面各個(gè)實(shí)施例中所公開(kāi)的方法,可以使用軟件的方式來(lái)實(shí)現(xiàn)。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,在本發(fā)明上述實(shí)施例的啟示下,可以得到本發(fā)明實(shí)施 例的各種變形,并且在不偏離本發(fā)明的精神或范圍的情況下,本文中所定義的一般原理也 可以應(yīng)用到其他實(shí)施例中。因此本發(fā)明并不局限于本文中所示的實(shí)施例,而且要求與本文 中所公開(kāi)的原理和新穎特征相一致的最廣的范圍。
權(quán)利要求
一種利用智能卡為外部設(shè)備應(yīng)用提供加和/或解密服務(wù)的方法,包括與智能卡連接的外部設(shè)備上的應(yīng)用模塊向所述智能卡中的加解密代理模塊發(fā)送加和/或解密命令;所述加解密代理模塊根據(jù)所述加和/或解密命令調(diào)用所述智能卡中的加解密服務(wù)模塊來(lái)執(zhí)行加和/或解密操作;以及所述加解密代理模塊將執(zhí)行所述加和/或解密操作所得到的加和/或解密結(jié)果返回給所述外部設(shè)備上的應(yīng)用模塊。
2. 如權(quán)利要求1所述的方法,其中,所述發(fā)送加和/或解密命令的步驟進(jìn)一步包括由 與所述加解密代理模塊相關(guān)聯(lián)的遠(yuǎn)程加解密應(yīng)用程序接口 API實(shí)施模塊生成所述加和/或 解密命令,并將所述加和/或解密命令發(fā)送到所述加解密代理模塊。
3. 如權(quán)利要求2所述的方法,其中,所述生成加和/或解密命令的步驟進(jìn)一步包括所 述應(yīng)用模塊調(diào)用與所述加解密代理模塊相關(guān)聯(lián)的遠(yuǎn)程加解密API中的方法并且設(shè)置與該 方法對(duì)應(yīng)的參數(shù),所述遠(yuǎn)程加解密API實(shí)施模塊將所述方法和對(duì)應(yīng)的參數(shù)編碼到所述加和 /或解密命令中。
4. 如權(quán)利要求2所述的方法,其中,所述生成加和/或解密命令的步驟進(jìn)一步包括所 述應(yīng)用模塊調(diào)用與所述加解密代理模塊相關(guān)聯(lián)的遠(yuǎn)程加解密API中的方法并且設(shè)置與該 方法對(duì)應(yīng)的參數(shù),所述遠(yuǎn)程加解密API實(shí)施模塊解析與所述方法相關(guān)的信息,并將所述信 息、所述方法和所述對(duì)應(yīng)的參數(shù)編碼到所述加和/或解密命令中。
5. 如權(quán)利要求3或4所述的方法,其中,所述參數(shù)包括以下至少之一 加和/或解密密 鑰、待加和/或解密的數(shù)據(jù)。
6. 如權(quán)利要求4所述的方法,其中,所述信息包括與所述方法相關(guān)的要調(diào)用的加解密 包、類(lèi)。
7. 如權(quán)利要求3或4所述的方法,其中,所述生成加和/或解密命令的步驟進(jìn)一步包 括所述遠(yuǎn)程加解密API實(shí)施模塊對(duì)所述加和/或解密命令進(jìn)行加擾。
8. 如權(quán)利要求7所述的方法,其中,所述執(zhí)行加和/或解密操作的步驟進(jìn)一步包括加 解密代理模塊對(duì)所接收到的所述加和/或解密命令進(jìn)行解擾。
9. 如權(quán)利要求3或4所述的方法,其中,所述執(zhí)行加和/或解密操作的步驟包括所述 加解密代理模塊根據(jù)接收到的加和/或解密命令中包含的所述方法和對(duì)應(yīng)的參數(shù),調(diào)用所 述加解密服務(wù)模塊中的相應(yīng)方法,以針對(duì)所述對(duì)應(yīng)的參數(shù)執(zhí)行加和/或解密操作。
10. 如權(quán)利要求1所述的方法,其中,所述智能卡包括Java卡,并且所述加和/或解密 命令包括應(yīng)用程序協(xié)議數(shù)據(jù)單元APDU命令。
11. 一種與智能卡連接的設(shè)備,包括應(yīng)用模塊,所述應(yīng)用模塊向所述智能卡發(fā)送加和/或解密命令,所述智能卡進(jìn)一步包括加解密服務(wù)模塊,用于提供加和/或解密服務(wù);加解密代理模塊,用于根據(jù)所述加和/或解密命令調(diào)用所述加解密 服務(wù)模塊來(lái)執(zhí)行加和/或解密操作,并且將執(zhí)行所述加和/或解密操作所 得到的加和/或解密結(jié)果返回給所述應(yīng)用模塊。
12. 如權(quán)利要求11所述的設(shè)備,其中,所述設(shè)備還包括與所述加解密代理模塊相關(guān)聯(lián)的遠(yuǎn)程加解密應(yīng)用程序接口 API實(shí)施模塊,該遠(yuǎn)程加解密應(yīng)用程序接口 API實(shí)施模塊生成 所述加和/或解密命令,并將所述加和/或解密命令發(fā)送到所述加解密代理模塊。
13. 如權(quán)利要求12所述的設(shè)備,其中,所述設(shè)備還包括與所述加解密代理模塊相關(guān)聯(lián) 的遠(yuǎn)程加解密API,所述應(yīng)用模塊調(diào)用所述遠(yuǎn)程加解密API中的方法并且設(shè)置與該方法對(duì) 應(yīng)的參數(shù),所述遠(yuǎn)程加解密API實(shí)施模塊解析與所述方法相關(guān)的信息,并將所述信息、所述 方法和所述對(duì)應(yīng)的參數(shù)編碼到所述加和/或解密命令中,并且對(duì)所述加和/或解密命令進(jìn) 行加擾。
14. 一種智能卡,包括加解密服務(wù)模塊,用于提供加和/或解密服務(wù);加解密代理模塊,用于接收從所述智能卡外部的應(yīng)用模塊向所述智能卡發(fā)送的加和/ 或解密命令,根據(jù)所述加和/或解密命令調(diào)用所述加解密服務(wù)模塊來(lái)執(zhí)行加和/或解密操 作,并且將執(zhí)行所述加和/或解密操作所得到的加和/或解密結(jié)果返回給所述應(yīng)用模塊。
全文摘要
公開(kāi)了一種利用智能卡為外部設(shè)備應(yīng)用提供加和/或解密服務(wù)的方法,包括與智能卡連接的外部設(shè)備上的應(yīng)用模塊向所述智能卡中的加解密代理模塊發(fā)送加和/或解密命令;所述加解密代理模塊根據(jù)所述加和/或解密命令調(diào)用所述智能卡中的加解密服務(wù)模塊來(lái)執(zhí)行加和/或解密操作;以及所述加解密代理模塊將執(zhí)行所述加和/或解密操作所得到的加和/或解密結(jié)果返回給所述外部設(shè)備上的應(yīng)用模塊。
文檔編號(hào)H04L29/06GK101753520SQ20081017833
公開(kāi)日2010年6月23日 申請(qǐng)日期2008年11月28日 優(yōu)先權(quán)日2008年11月28日
發(fā)明者李丞倍, 李華煒, 李相研, 羅棟元, 金亨一 申請(qǐng)人:愛(ài)思開(kāi)電訊投資(中國(guó))有限公司