智能卡操作系統(tǒng)的加密算法命令
文章出處:http://m.dipdnbxp.cn 作者:中國(guó)一卡通網(wǎng) 收編 人氣: 發(fā)表時(shí)間:2011年10月10日
對(duì)于很多應(yīng)用來(lái)說(shuō)加密算法命令是十分重要的。例如,它們使智能卡可比較容易用做加密和解密設(shè)備或用 于驗(yàn)證數(shù)字簽名。許多智能卡操作系統(tǒng)有其自已執(zhí)行加密算法的命令組。因?yàn)闆](méi)有這類功能的標(biāo)準(zhǔn),出現(xiàn)了 諸如ENCRYPT(加密),DECRYPT(解密),SIGN DATA(簽署數(shù)據(jù))和VERIFY SIGN ̄ATURE(驗(yàn)證簽名)等 智能卡命令。然而,同時(shí)有兩條專門處理加密算法的命令已規(guī)定在ISO/IEC 7816-8標(biāo)準(zhǔn)中。
在下述材料中,也會(huì)述及在ISO/IEC 7816-8標(biāo)準(zhǔn)中的其他加密命令,因?yàn)檫@是目前對(duì)于此類命令惟一有效 的資料,然而,在撰寫此書時(shí)這些標(biāo)準(zhǔn)尚未完成;其狀態(tài)為委員會(huì)草案CD(Committee Draft)。這意味著在最終版本出現(xiàn)之前,仍有某種可能做一些小修改,甚至?xí)霈F(xiàn)大的變動(dòng)。
在ISO/IEC 7816-8標(biāo)準(zhǔn)中與加密有關(guān)的功能分解在兩條命令之間,MANAGE SECURITYENVIROMENT(達(dá)成安全 環(huán)境)命令允許在實(shí)際執(zhí)行加密算法之前先設(shè)定各種一般的條件,這條命令傳送一“模板”給卡,此模板中 含有相關(guān)的參數(shù)。它們一直保持有效 對(duì)于很多應(yīng)用來(lái)說(shuō)加密算法命令是十分重要的。例如,它們使智能卡可比較容易用做加密和解密設(shè)備或用 于驗(yàn)證數(shù)字簽名。許多智能卡操作系統(tǒng)有其自已執(zhí)行加密算法的命令組。因?yàn)闆](méi)有這類功能的標(biāo)準(zhǔn),出現(xiàn)了 諸如ENCRYPT(加密),DECRYPT(解密),SIGN DATA(簽署數(shù)據(jù))和VERIFY SIGN ̄ATURE(驗(yàn)證簽名)等智能卡命令。然而,同時(shí)有兩條專門處理加密算法的命令已規(guī)定在ISO/IEC 7816-8標(biāo)準(zhǔn)中。
在下述材料中,也會(huì)述及在ISO/IEC 7816-8標(biāo)準(zhǔn)中的其他加密命令,因?yàn)檫@是目前對(duì)于此類命令惟一有效的資料,然而,在撰寫此書時(shí)這些標(biāo)準(zhǔn)尚未完成;其狀態(tài)為委員會(huì)草案CD(Committee Draft)。這意味著在最終版本出現(xiàn)之前,仍有某種可能做一些小修改,甚至?xí)霈F(xiàn)大的變動(dòng)。
在ISO/IEC 7816-8標(biāo)準(zhǔn)中與加密有關(guān)的功能分解在兩條命令之間,MANAGE SECURITYENVIROMENT(達(dá)成安全 環(huán)境)命令允許在實(shí)際執(zhí)行加密算法之前先設(shè)定各種一般的條件,這條命令傳送一“模板”給卡,此模板中 含有相關(guān)的參數(shù)。它們一直保持有效,直到被一條新的MANAGE SECURITY ENVIROMENT命令所取代。模板本身 含有TLV編碼的數(shù)據(jù)對(duì)象,它允許在參數(shù)傳輸中的高度可變性(而遺憾其復(fù)雜性)。
圖1 ISO/ICE 7816-8中有關(guān)加密功能的命令:MANAGE SECURITY ENVIRONMENT利日PERFORM ECURITY OPERATION的基本原理
在加密功能的所有選項(xiàng)用MANAGE SECURITY ENVIRONMENT命令都設(shè)置要當(dāng)后,可調(diào)用PERFORM SECURITY OPERATION(執(zhí)行安全操作)命令,用此命令可實(shí)現(xiàn)大量的安全操作,只要它們都受到智能卡操作系統(tǒng)的支 持。這一命令的可能選項(xiàng)的數(shù)量是如此巨大,因此并非所有受到的支持都是強(qiáng)制性的。雖然PERFORM SECURITY OPERATION只用一個(gè)指令字節(jié)編碼,然而卻由參數(shù)字節(jié)Pl來(lái)區(qū)分其8項(xiàng)基本不同的功能。這樣做的 理由是剩下可用以給命令編碼的命令字節(jié)數(shù)在這時(shí)已經(jīng)感到比較緊張了。
這兩條命令的功能見(jiàn)表1~表9,圖1則說(shuō)明了它們運(yùn)行的基本原理。
表1 遵照ISO/IEC 7816-8的MANAGE SECURITY ENVIRONMENT的功能
由于PERFORM SECURITY OPERATION命令以很多不同的方式應(yīng)用,我們?cè)谙旅鎸凑詹煌倪x項(xiàng)來(lái)分別敘述 其功能,而不對(duì)它們做過(guò)細(xì)的描述。
PERFORM SECURITY OPERATION的COMPUTE CRYPTOGRAPHIC CHECKSUM(計(jì) 算加密代碼和)選項(xiàng)是用來(lái)求加密的校驗(yàn)和(CCS)的,它通常被稱為MAC(報(bào)文鑒別碼)。所用之填補(bǔ)以及 密鑰或由操作系統(tǒng)隱含給出或可經(jīng)MANAGE SECURITY-ENVIRONMENT命令提供。與此命令相對(duì)應(yīng)的選項(xiàng)為 VERIFY CRYP-TOGRAPHIC CHECKSUM,它計(jì)算傳輸數(shù)據(jù)的加密代碼和并和也在命令中傳送的基準(zhǔn)值相比較。這項(xiàng)操作的結(jié)果 是符合/不符合,并回給終端。
表2 遵照ISO/IEC 78168的PERFORM SECURITY OPERATION的選項(xiàng)COMPUTE CRYPTOGRAPHlC CHECKSUM的功能
表3 遵照ISO/IEC 7816-8的PERFORM SECURITY OPERATION的選項(xiàng)VERIFY CRYPTOGRAPHIC CHECKSUM的功能
兩個(gè)選項(xiàng)ENCIPHER和DECIPHER對(duì)數(shù)據(jù)提供了純粹的加密和解密,ENCIHER選項(xiàng)用來(lái)對(duì)命令中傳送的數(shù)據(jù)加密 。根據(jù)操作系統(tǒng)提供的選項(xiàng),可先行傳送MANAGE SECURITYENVIRONMENT命令,以選擇所用加密算法。類似地 ,也必須用傳送的參數(shù)在發(fā)布命令之前先行設(shè)置要當(dāng)加密算法的模式。對(duì)于字組加密算法,尚可在ECB與CBC 模式間選擇。由于傳送給卡的數(shù)組的長(zhǎng)度沒(méi)有必要精確地為加密算法字組大小的整倍數(shù),故必須由一個(gè)補(bǔ)充 參數(shù)規(guī)定填補(bǔ)方法,同樣重要的是智能卡中算法用于加密數(shù)據(jù)的密鑰的存儲(chǔ)地址。
表4 遵照ISO/IEC 7816-8的PERFORM SECURITY OPERATION的選項(xiàng)ENCIPHER的功能
表5 遵照ISO/IEC 7816-8的PERFORM SEOURITY OPERATION的選項(xiàng)DECIPHER的功能
ENCIPHER的逆操作是DECIPHER,用此功能可使傳送的數(shù)據(jù)以和ENCIPHER中所用的相同模式被解密。當(dāng)然智 能卡必須知道相應(yīng)的密鑰,算法模式和填補(bǔ)模式,這些信息必須用一條MANAGE SECURITY ENVIRONMENT命令傳送給卡的操作系統(tǒng)。
由于把公開(kāi)密鑰算法引人到智能卡的應(yīng)用中,這就需要有適當(dāng)?shù)拿顏?lái)使用這一新的有效功能。智能卡特 別適合于簽名的應(yīng)用,因?yàn)楹灻乃惴ǖ拿孛苊荑€可以安全地存在存儲(chǔ)器中,而它不能被讀到。ISO/IEC 7816-8標(biāo)準(zhǔn)說(shuō)明了命令的四種選項(xiàng)可用于數(shù)字簽名。
PERFORM SECURITY OPERATION命令的HASH(散列)選項(xiàng)可用于計(jì)算散列值,命令或是傳送要散列的數(shù)據(jù), 或是傳送在智能卡之外已算出的散列值以及需用于最后一步計(jì)算的數(shù)據(jù)。在后一種情況,對(duì)最后字組的散列 計(jì)算是在卡中執(zhí)行的,這種方法的好處是散列值可以在卡外能顯然較快形成,但最后一步仍在卡內(nèi)進(jìn)行。從 純粹加密的觀點(diǎn)看來(lái),這僅僅提供了少量額外的安全性,但可稍微限制操縱散列值的可能性,被廣泛用在實(shí) 際中。
由于散列的數(shù)據(jù)量通常大于一條命令中所允許的數(shù)據(jù)字段的最大長(zhǎng)度,比⒋SH選項(xiàng)中使用了“7級(jí)” (Level-7)鏈接,意即數(shù)組可在應(yīng)用級(jí)上邏輯地鏈接在一起。最終的散列數(shù)組中含有一個(gè)標(biāo)記以通知命令 散列操作至此字組結(jié)束。
這一命令選項(xiàng)還有著它自己的選項(xiàng),計(jì)算出的散列值可以或是在對(duì)命令的響應(yīng)中立即傳送給終端,或是存 儲(chǔ)在卡中供后繼的命令使用。像在前面的命令中所述的那樣,所用的填補(bǔ)和密鑰需用一條在先的MANAGE SECURITY ENVIRONMENT命令予以規(guī)定。
表6 遵照ISO/IEC 7816-8的PERFORM SECURTY OPERATION的HASH選項(xiàng)的功能
COMPUTE DIGITAL SIGNATURE選項(xiàng)可用來(lái)簽署數(shù)據(jù),要簽署的數(shù)據(jù)串通常都已經(jīng)被壓縮成散列值,必須傳送 給智能卡。除非前一條是PERFORM SECURITY OPERATION命令的HASH選項(xiàng),其結(jié)果已經(jīng)存在于卡中。COMPUTE DIGITAL SIGNATURE選項(xiàng)也允許把要簽署的數(shù)據(jù)直接傳送給卡。在簽名產(chǎn)生之前先把它們散列。對(duì)大量的數(shù) 據(jù),可隨HASH選項(xiàng)采取“7級(jí)”散列。
表7 遵照ISO/IEC 7816-8的PERFORM SECURITY OPERATION的COMPUTE DIGITAL SIGNATURE選項(xiàng)的功能
若散列值之長(zhǎng)度并不對(duì)應(yīng)于公開(kāi)密鑰算法的輸人數(shù)據(jù)長(zhǎng)度,則必須予以填補(bǔ)。對(duì)此選項(xiàng)亦由MANAGE SECURITY ENVIRONMENT命令中的參數(shù)規(guī)定,它也用來(lái)確定所用之密鑰。
驗(yàn)證COMPUTE DIGITAL SIGNATURE選項(xiàng)的功能由VERIFY DIGITAL SICNATURE選項(xiàng)提供。原理上,任何一臺(tái)足 夠快的數(shù)字計(jì)算機(jī)都可用來(lái)驗(yàn)證簽名,因?yàn)樗杳荑€是公開(kāi)的。然而,在許多情況下公開(kāi)密鑰的有效性必須 首先用一個(gè)另外的數(shù)字簽名予以驗(yàn)證。這確實(shí)和安全性有關(guān),而且不應(yīng)在不安全的計(jì)算機(jī)上進(jìn)行。對(duì)數(shù)字簽 名的驗(yàn)證,其相關(guān)的公開(kāi)密鑰必須或是已為智能卡隱含地知道,或是經(jīng)命令選項(xiàng)VERIFY CERTIFICATE(驗(yàn)證 憑證)明顯地使卡獲得。要驗(yàn)證的數(shù)據(jù)可以直接傳送給VERIFY DIGITAL SIGNATURE或以相關(guān)的散列值的形式 傳給,所有其他參數(shù)則和COMPUTE DIGITAL SICNATURE選項(xiàng)是一樣的。
在開(kāi)放系統(tǒng)中,驗(yàn)證數(shù)字簽名的公開(kāi)密鑰通常用憑證當(dāng)局的秘密密鑰予以簽署。公開(kāi)密鑰的可靠性在使用 前必須被驗(yàn)證,因?yàn)檫@是惟一的方法以確信密鑰不是偽造的。這項(xiàng)驗(yàn)證必須在安全的環(huán)境中進(jìn)行,例如在智 能卡中,否則有可能遭受到控制。ⅦⅢⅣ CERTIπCATE(驗(yàn)證憑證)命令選項(xiàng)專門提供對(duì)簽署了的公開(kāi)密鑰 的驗(yàn)證。一旦公開(kāi)密鑰被驗(yàn)證為真實(shí)可信的,就可以或是把它永久存在智能卡中,或是緊接著用一條VERIFY DIGITAL SIGNATURE命令來(lái)使用它。
如果智能卡的操作系統(tǒng)支持產(chǎn)生非對(duì)稱加密算法密鑰對(duì)的產(chǎn)生,則此過(guò)程可用ISO/IEC7816-8的命令 GENERATE PUBLIC KEY PAIR(產(chǎn)生公開(kāi)密鑰對(duì))來(lái)啟動(dòng),其具體功能見(jiàn)表10。密鑰產(chǎn)生需用之所有參數(shù),必 須先用MANAGE SECURITY ENVIRONMEN命令設(shè)置妥當(dāng)。
圖2表明了以上所述的命令如何可以用來(lái)產(chǎn)生一個(gè)數(shù)字簽名和驗(yàn)證。