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