智能卡操作系統的加密算法命令
這一命令選項還有著(zhù)它自己的選項,計算出的散列值可以或是在對命令的響應中立即傳送給終端,或是存 儲在卡中供后繼的命令使用。像在前面的命令中所述的那樣,所用的填補和密鑰需用一條在先的MANAGE SECURITY ENVIRONMENT命令予以規定。
表6 遵照ISO/IEC 7816-8的PERFORM SECURTY OPERATION的HASH選項的功能
COMPUTE DIGITAL SIGNATURE選項可用來(lái)簽署數據,要簽署的數據串通常都已經(jīng)被壓縮成散列值,必須傳送 給智能卡。除非前一條是PERFORM SECURITY OPERATION命令的HASH選項,其結果已經(jīng)存在于卡中。COMPUTE DIGITAL SIGNATURE選項也允許把要簽署的數據直接傳送給卡。在簽名產(chǎn)生之前先把它們散列。對大量的數 據,可隨HASH選項采取“7級”散列。
表7 遵照ISO/IEC 7816-8的PERFORM SECURITY OPERATION的COMPUTE DIGITAL SIGNATURE選項的功能
若散列值之長(cháng)度并不對應于公開(kāi)密鑰算法的輸人數據長(cháng)度,則必須予以填補。對此選項亦由MANAGE SECURITY ENVIRONMENT命令中的參數規定,它也用來(lái)確定所用之密鑰。
驗證COMPUTE DIGITAL SIGNATURE選項的功能由VERIFY DIGITAL SICNATURE選項提供。原理上,任何一臺足 夠快的數字計算機都可用來(lái)驗證簽名,因為所需密鑰是公開(kāi)的。然而,在許多情況下公開(kāi)密鑰的有效性必須 首先用一個(gè)另外的數字簽名予以驗證。這確實(shí)和安全性有關(guān),而且不應在不安全的計算機上進(jìn)行。對數字簽 名的驗證,其相關(guān)的公開(kāi)密鑰必須或是已為智能卡隱含地知道,或是經(jīng)命令選項VERIFY CERTIFICATE(驗證 憑證)明顯地使卡獲得。要驗證的數據可以直接傳送給VERIFY DIGITAL SIGNATURE或以相關(guān)的散列值的形式 傳給,所有其他參數則和COMPUTE DIGITAL SICNATURE選項是一樣的。
在開(kāi)放系統中,驗證數字簽名的公開(kāi)密鑰通常用憑證當局的秘密密鑰予以簽署。公開(kāi)密鑰的可靠性在使用 前必須被驗證,因為這是惟一的方法以確信密鑰不是偽造的。這項驗證必須在安全的環(huán)境中進(jìn)行,例如在智 能卡中,否則有可能遭受到控制。ⅦⅢⅣ CERTIπCATE(驗證憑證)命令選項專(zhuān)門(mén)提供對簽署了的公開(kāi)密鑰 的驗證。一旦公開(kāi)密鑰被驗證為真實(shí)可信的,就可以或是把它永久存在智能卡中,或是緊接著(zhù)用一條VERIFY DIGITAL SIGNATURE命令來(lái)使用它。
如果智能卡的操作系統支持產(chǎn)生非對稱(chēng)加密算法密鑰對的產(chǎn)生,則此過(guò)程可用ISO/IEC7816-8的命令 GENERATE PUBLIC KEY PAIR(產(chǎn)生公開(kāi)密鑰對)來(lái)啟動(dòng),其具體功能見(jiàn)表10。密鑰產(chǎn)生需用之所有參數,必 須先用MANAGE SECURITY ENVIRONMEN命令設置妥當。
圖2表明了以上所述的命令如何可以用來(lái)產(chǎn)生一個(gè)數字簽名和驗證。
圖2
評論