專利名稱:信息處理裝置、控制方法、程序及記錄介質(zhì)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種信息處理裝置、一種控制方法、一種程序以及一種記錄介質(zhì)。更具體地,該發(fā)明涉及一種適合于執(zhí)行與加密相關(guān)的處理的信息處理裝置,一種用于該信息處理裝置的控制方法,一種描述該控制方法的程序以及一種用于存儲該程序的記錄介質(zhì)。
背景技術(shù):
在多種裝置之間交換數(shù)字?jǐn)?shù)據(jù)正變得流行起來。即使數(shù)據(jù)被非法使用,該數(shù)字?jǐn)?shù)據(jù)的質(zhì)量也不會變壞。該數(shù)字?jǐn)?shù)據(jù)的質(zhì)量包括圖像和聲音。因此,絕對需要一種阻止數(shù)字?jǐn)?shù)據(jù)被濫用的對策。在像專利文獻(xiàn)1這樣的文獻(xiàn)中公開了這種對策。
為了避免數(shù)字?jǐn)?shù)據(jù)的濫用,加密該數(shù)字?jǐn)?shù)據(jù)。已經(jīng)有多種加密方法被提出了。以CBC(密碼塊鏈接(Ciper Block Chaining))方法為例,對加密和解密進(jìn)行如下說明。
CBC方法,作為加密技術(shù)的一種,是一種用于塊鏈接的技術(shù)。為詳細(xì)表述,參照該CBC方法,將一個(gè)加密文本的一個(gè)前面的塊,加入到將要加密為該加密文本的一個(gè)塊的明文的一個(gè)當(dāng)前塊。圖1示出了一個(gè)基于該CBC方法實(shí)施加密處理的典型電路。
對要加密的數(shù)據(jù)以預(yù)定的單元進(jìn)行分塊,每一個(gè)單元都具有16字節(jié)的典型大小。將第一塊提供給“異或”電路11-1,將第一塊后的第二塊提供給“異或”電路11-2,將第二塊后的第三塊提供給“異或”電路11-3,等等。這樣,順序地將該明文的數(shù)據(jù)塊提供給N級的“異或”電路11-1至11-N,其中N是一個(gè)預(yù)定的數(shù)。
將該“異或”電路11-1輸出的第一塊提供給一個(gè)加密單元12-1。該加密單元12-1利用一個(gè)密鑰Ek對提供到那的第一塊進(jìn)行加密。這樣,第一塊加密了。
將該加密單元12-1輸出的加密的第一塊也提供給“異或”電路11-2,以實(shí)現(xiàn)對該第一加密的第一塊和該第二明文塊進(jìn)行一個(gè)“異或”處理。將該“異或”處理的結(jié)果提供給加密單元12-2,以利用該密鑰Ek加密該結(jié)果。
如上所述,在一個(gè)采用CBC方法的加密處理過程中,對一個(gè)明文的加密后的緊挨在前的塊以及在該緊挨在前的塊之后的當(dāng)前塊進(jìn)行“異或”處理,以得到一個(gè)結(jié)果,然后使用一個(gè)預(yù)定密鑰進(jìn)行加密處理。于是對該加密結(jié)果結(jié)合在當(dāng)前塊之后的一個(gè)塊來執(zhí)行“異或”處理。這樣,在將一個(gè)塊在鏈接到一個(gè)緊接其后的塊之前,將其鏈接到一個(gè)緊挨在前的塊。
該第二和隨后的塊,對其每一個(gè)都結(jié)合加密的緊挨在前的塊來執(zhí)行“異或”處理。然而,由于沒有塊在該第一塊之前,沒有塊能夠結(jié)合該第一塊執(zhí)行“異或”處理。因?yàn)檫@個(gè)原因,在該進(jìn)行加密處理的電路的配置中,對該第一塊結(jié)合一個(gè)初始化向量IV來執(zhí)行“異或”處理。
接下來,參考圖2來說明在完成采用CBC方法的解密處理的電路。
如上所述進(jìn)行加密了的數(shù)據(jù)以預(yù)定的單元進(jìn)行分塊,每一個(gè)單元具有16字節(jié)的典型大小。將該第一塊提供給一個(gè)解密單元22-1,將在該第一塊之后的第二塊提供給一個(gè)解密單元22-2,將在該第二塊之后的第三塊提供給一個(gè)解密單元22-3,等等。這樣,將該加密的文本的數(shù)據(jù)塊提供給N級的解密單元22-1至22-N,其中N是一個(gè)預(yù)定的數(shù)。
每一個(gè)解密單元22-1至22-N,通過使用一個(gè)密鑰Dk,對提供到那里的一個(gè)數(shù)據(jù)塊進(jìn)行解密。由該解密單元22-1至22-N輸出的數(shù)據(jù)塊提供給分別與解密單元22-1至22-N相關(guān)的“異或”電路21-1至21-N。,“異或”電路21-2至21-N中的每一個(gè)還分別接收一個(gè)提供給在該“異或”電路21-2至21-N之前一級的解密單元22-1至22-N-1中的一個(gè)的數(shù)據(jù)塊。
如前所述,在一個(gè)采用CBC方法的解密處理中,對一個(gè)加密的文本的一個(gè)加密了的緊挨在前的塊,以及在該緊挨在前的塊之后的一個(gè)已完成解密處理的當(dāng)前塊進(jìn)行“異或”處理,以便給出該當(dāng)前塊的最終解密結(jié)果。
分別由該第二和隨后的解密單元22-2至22-N輸出的第二和隨后的塊,每一個(gè)都結(jié)合加密的緊挨在前的塊執(zhí)行“異或”處理。由于沒有加密的塊在由該第一解密單元22-1輸出的第一塊之前,所以沒有加密的在前塊能夠結(jié)合由該第一解密單元22-1輸出的第一塊執(zhí)行“異或”處理。因?yàn)檫@個(gè)原因,在完成解密處理的電路的配置中,由該第一解密單元22-1輸出的第一塊結(jié)合一個(gè)初始化向量IV執(zhí)行“異或”處理。
為獲得有關(guān)上述加密和解密處理的更多信息,可參考專利文獻(xiàn)1,即專利No.3252706的說明書。
如上所述,在一個(gè)采用CBC方法的加密處理中,一個(gè)初始化向量IV被加到該第一塊,因?yàn)闆]有塊在第一塊之前。然而,如果不對該第一塊加任何東西,即不將該初始化向量IV加到該第一塊,該第一塊就在該“異或”處理之后的級中被加密。但是,這樣就引發(fā)了下面的問題。
例如,考慮以電子郵件為例的情況。該電子郵件的格式是這樣的一個(gè)模式,包括一連串的地址、發(fā)送者、主題、以及正文。當(dāng)加密具有這樣的模式的明文數(shù)據(jù)時(shí),作為加密結(jié)果獲得的數(shù)據(jù)自身也是一個(gè)模式的數(shù)據(jù)。通過注意這種模式,充當(dāng)攻擊者的第三方能夠?qū)⒓用艿奈谋具M(jìn)行解密以產(chǎn)生該明文的一部分。
為了解決上述問題,需要將具有一個(gè)模式的明文加密為不具有模式的加密文本的加密數(shù)據(jù)。為了產(chǎn)生不具有模式的加密文本,通過加入初始化向量IV來完成加密處理。通過導(dǎo)入一個(gè)附加的初始化向量IV在甚至具有模式的明文的塊上執(zhí)行加密處理,產(chǎn)生沒有相同模式的加密文本。從而,難以對該加密文本進(jìn)行解密。另外,通過在一個(gè)加密過程中加入一個(gè)初始化向量,該加密處理能夠展現(xiàn)出避免錯(cuò)誤行為的影響。這種錯(cuò)誤行為的一個(gè)實(shí)例是推測在對具有巨大數(shù)量的數(shù)據(jù)進(jìn)行加密中作為唯一密鑰使用的加密密鑰。
因?yàn)樯鲜鲈?,在許多情況中,提供一種配置,在其中在對初始化向量IV和第一塊執(zhí)行加密處理之前將該初始化向量IV加到該第一塊。
順便指出,在某些情況中,在數(shù)據(jù)的傳輸之前,在用于該數(shù)據(jù)的加密的會話密鑰生成之前,用于從預(yù)定記錄介質(zhì)中讀取該數(shù)據(jù)的驅(qū)動器和用于從該驅(qū)動器接收該數(shù)據(jù)的主機(jī)互相驗(yàn)證。主機(jī)的一個(gè)實(shí)例是個(gè)人電腦。在這樣的情況下,可以采用上面描述的CBC方法。在這種情況下,通過適當(dāng)?shù)馗略摮跏蓟蛄縄V,將很難識別到該明數(shù)據(jù)是具有特殊模式的數(shù)據(jù)。另外,也能夠防止該數(shù)據(jù)被替換或竄改。
至于該驅(qū)動器和該主機(jī)互相驗(yàn)證的情況,例如,以一個(gè)初始化向量IV加上內(nèi)容數(shù)據(jù)的形式來生成數(shù)據(jù)。然后,從一個(gè)內(nèi)容密鑰和該初始化向量IV得出一個(gè)加密密鑰。最后,將該加密密鑰作為加密該內(nèi)容數(shù)據(jù)的密鑰來使用。
然而,通過將一個(gè)具有16字節(jié)的典型大小的初始化向量IV加到從上述記錄介質(zhì)中讀出的內(nèi)容數(shù)據(jù),會對具有2048字節(jié)的PC驅(qū)動器接口帶來具有2064字節(jié)的典型大小的特殊扇區(qū),導(dǎo)致一個(gè)不同于標(biāo)準(zhǔn)的格式。結(jié)果,加入該初始化向量IV引起與該P(yáng)C的環(huán)境的兼容性差的問題,其中,這歸于不能使用普通ATAPI設(shè)備驅(qū)動程序的事實(shí)。為了解決與該P(yáng)C環(huán)境的兼容性差的問題,需要將軟件和硬件配置改為專用的,這引起了其它問題,例如成本上的增加,保持兼容性的困難以及需要更多時(shí)間來完成處理。
發(fā)明內(nèi)容
因此本發(fā)明的一個(gè)目標(biāo)是針對上述問題來增強(qiáng)保密性,即使使用盡可能多的現(xiàn)有組件。
根據(jù)本發(fā)明的一個(gè)方面,提供一種信息處理裝置,它包括一個(gè)信息采集單元,用于從一個(gè)請求將數(shù)據(jù)寫到預(yù)定的記錄介質(zhì)的操作的命令或一個(gè)請求從該預(yù)定記錄介質(zhì)中讀出數(shù)據(jù)的操作的命令里獲取預(yù)定的信息;一個(gè)初始化向量生成單元,用于從由該信息采集單元獲取的信息中生成一個(gè)初始化向量;以及一個(gè)加密/解密執(zhí)行單元,用于通過使用由該初始化向量生成單元生成的初始化向量和一個(gè)預(yù)定的密鑰,對數(shù)據(jù)進(jìn)行加密或解密。
可以用一個(gè)在其中由該信息采集單元獲取的預(yù)定信息是LBA(邏輯塊地址)的配置來實(shí)現(xiàn)該信息處理裝置。
還可以用一個(gè)進(jìn)一步具有一個(gè)用于生成隨機(jī)數(shù)的隨機(jī)數(shù)生成單元的配置來實(shí)現(xiàn)該信息處理裝置,其中該初始化向量生成單元從由該信息采集單元獲取的信息以及由該隨機(jī)數(shù)生成單元生成的隨機(jī)數(shù)中生成一個(gè)初始化向量。
該初始化向量生成單元通常能夠采用一個(gè)由該隨機(jī)數(shù)生成單元生產(chǎn)的隨機(jī)數(shù)和一個(gè)值進(jìn)行“異或”邏輯和的方法,以生成一個(gè)初始化向量IV,其中,該值包括一個(gè)LBA和一個(gè)填充器,該填充器用于補(bǔ)償與該由初始化向量生成單元生成的初始化向量相比該LBA的一個(gè)字長的不足。作為一個(gè)用該填充器來填補(bǔ)一個(gè)字長的不足方法,就可以采用基于LBA拼接的方法或應(yīng)用散列函數(shù)的方法。作為生成一個(gè)隨機(jī)數(shù)的方法,就可以采用生成具有與初始化向量IV相同字長的隨機(jī)數(shù)并且實(shí)際上使用該隨機(jī)數(shù)的方法,或通過經(jīng)由一個(gè)散列函數(shù)來傳遞該數(shù)來生成一個(gè)隨機(jī)數(shù)的方法。
根據(jù)本發(fā)明的另一方面,提供一種控制方法,用于控制至少一個(gè)在其上安裝了預(yù)定的記錄介質(zhì)的介質(zhì)安裝裝置,或一個(gè)連接到該介質(zhì)安裝裝置的裝置,以作為一個(gè)用于控制與該介質(zhì)安裝裝置進(jìn)行數(shù)據(jù)交換的控制裝置。由本發(fā)明提供的該控制方法包括一個(gè)信息采集步驟,從一個(gè)請求將數(shù)據(jù)寫到預(yù)定的記錄介質(zhì)的操作的命令或一個(gè)請求從該預(yù)定記錄介質(zhì)中讀出數(shù)據(jù)的操作的命令里獲取預(yù)定的信息;一個(gè)初始化向量生成步驟,從由該信息采集步驟執(zhí)行的處理中獲取的信息生成一個(gè)初始化向量;以及一個(gè)加密/解密執(zhí)行步驟,通過使用由該初始化向量生成步驟執(zhí)行的處理中生成的初始化向量和一個(gè)預(yù)定的密鑰,對數(shù)據(jù)進(jìn)行加密或解密。
根據(jù)本發(fā)明的進(jìn)一步的方面,提供一個(gè)用于控制至少一個(gè)在其上安裝了預(yù)定的記錄介質(zhì)的介質(zhì)安裝裝置的控制裝置的程序,或一個(gè)連接到該介質(zhì)安裝裝置的裝置,以作為一個(gè)控制與該介質(zhì)安裝裝置進(jìn)行數(shù)據(jù)交換的裝置的程序。由本發(fā)明提供的程序包括一個(gè)信息采集步驟,從一個(gè)請求將數(shù)據(jù)寫到預(yù)定的記錄介質(zhì)的操作的命令或一個(gè)請求從該預(yù)定記錄介質(zhì)中讀出數(shù)據(jù)的操作的命令里獲取預(yù)定的信息;一個(gè)初始化向量生成步驟,從由該信息采集步驟執(zhí)行的處理中獲取的信息生成一個(gè)初始化向量;以及一個(gè)加密/解密執(zhí)行步驟,通過使用由該初始化向量生成步驟執(zhí)行的處理中生成的初始化向量和一個(gè)預(yù)定的密鑰,對數(shù)據(jù)進(jìn)行加密或解密。
一種由本發(fā)明提供記錄介質(zhì)能夠用于存儲上述程序。
在由本發(fā)明提供的信息處理裝置中,該信息處理裝置采用的控制方法,以及規(guī)定該控制方法的程序,包括在一個(gè)命令中的信息用來生成一個(gè)要用在數(shù)據(jù)的加密或加密處理中的初始化向量,其中該命令在一個(gè)預(yù)定的記錄介質(zhì)上所完成操作的執(zhí)行中發(fā)出。
根據(jù)本發(fā)明,可以提高保密性。
特別地,根據(jù)本發(fā)明,可以提高主機(jī)和驅(qū)動器之間的傳輸線的保密性。
另外,為了提高保密性,不必在該主機(jī)的OS(操作系統(tǒng))上中繼。從而有可能避免這樣的問題,例如為提高保密性而導(dǎo)致成本增加或麻煩的處理。
圖1是示出一個(gè)用于實(shí)現(xiàn)采用CBC(Ciper Block Chaining)方法的加密處理的電路的配置的框圖;圖2是示出一個(gè)用于實(shí)現(xiàn)采用該CBC方法的解密處理的電路的配置的框圖;圖3是示出一個(gè)由本發(fā)明提供的實(shí)現(xiàn)記錄/再現(xiàn)裝置的實(shí)施例的配置的框圖;圖4是示出一個(gè)再現(xiàn)單元的配置的框圖;圖5是一個(gè)說明圖,示出了在盤狀記錄介質(zhì)上記錄的數(shù)據(jù)的結(jié)構(gòu);圖6是一個(gè)說明圖,示出了在該盤狀記錄介質(zhì)上一個(gè)用戶數(shù)據(jù)區(qū)域的配置;圖7是一個(gè)說明圖,示出了一個(gè)命令的數(shù)據(jù)結(jié)構(gòu);圖8是一個(gè)說明圖,示出了一個(gè)LBA(邏輯塊地址)和扇區(qū)數(shù)據(jù)之間的關(guān)系;圖9示出了在由該再現(xiàn)單元完成的操作的說明中所參考的時(shí)序圖;圖10是一個(gè)說明圖,示出了在由驅(qū)動器完成的加密處理中的數(shù)據(jù)流;圖11是示出一個(gè)加密單元的詳細(xì)配置的框圖;圖12是一個(gè)說明圖,示出了在由主機(jī)完成的解密處理中的數(shù)據(jù)流;圖13是示出一個(gè)解密單元的詳細(xì)配置的框圖;圖14是示出一個(gè)記錄單元的配置的框圖;圖15是一個(gè)說明圖,示出了在由主機(jī)完成的加密處理中的數(shù)據(jù)流;圖16是一個(gè)說明圖,示出了在由驅(qū)動器完成的解密處理中的數(shù)據(jù)流;圖17是示出一個(gè)初始化向量生成單元的典型配置的框圖;圖18是示出該再現(xiàn)單元的另一個(gè)典型配置的框圖;圖19是示出該記錄單元的另一個(gè)典型配置的框圖;圖20是示出該再現(xiàn)單元的一個(gè)進(jìn)一步的典型配置的框圖;圖21是示出該記錄單元的一個(gè)進(jìn)一步的典型配置的框圖;圖22是示出該再現(xiàn)單元的更進(jìn)一步的一個(gè)配置的框圖;圖23示出了在由該再現(xiàn)單元完成的其它操作的說明中所參考的時(shí)序圖;圖24示出了在由該再現(xiàn)單元完成的進(jìn)一步操作的說明中所參考的時(shí)序圖;
圖25是示出在該再現(xiàn)單元的一個(gè)更進(jìn)一步的配置的框圖;圖26示出了在由該再現(xiàn)單元完成的更進(jìn)一步的操作的說明中所參考的時(shí)序圖;圖27示出了在由該再現(xiàn)單元完成的更進(jìn)一步的操作的說明中所參考的時(shí)序圖;圖28示出了在由該再現(xiàn)單元完成的更進(jìn)一步的操作的說明中所參考的時(shí)序圖;圖29是示出該初始化向量生成單元的一個(gè)詳細(xì)配置的框圖;圖30是示出該初始化向量生成單元的另一個(gè)詳細(xì)配置的框圖;圖31是示出該初始化向量生成單元的一個(gè)更詳細(xì)配置的框圖;圖32示出了在涉及會話密鑰的處理的說明中所參考的一個(gè)流程圖;圖33示出了在涉及會話密鑰的處理的說明中所參考的流程圖的延續(xù)部分;圖34是示出該記錄單元的一個(gè)更進(jìn)一步的典型配置的框圖;圖35是示出該記錄單元的一個(gè)更進(jìn)一步的典型配置的框圖;圖36是示出該再現(xiàn)單元的一個(gè)更進(jìn)一步的配置的框圖;圖37是示出該記錄單元的一個(gè)更進(jìn)一步的典型配置的框圖;圖38是示出該再現(xiàn)單元的一個(gè)更進(jìn)一步的配置的框圖;圖39是示出該記錄單元的一個(gè)更進(jìn)一步的典型配置的框圖;以及圖40示出了在由該再現(xiàn)單元完成的更進(jìn)一步的操作的說明中所參考的時(shí)序圖。
具體實(shí)施例方式
在說明本發(fā)明的實(shí)施例之前,對在該說明書中描述的發(fā)明和實(shí)施例之間的關(guān)系舉例說明如下。下面的說明僅僅證實(shí)這樣的事實(shí),支持在說明書中解釋的發(fā)明的實(shí)施例將在說明書中給予描述。從而,即使與發(fā)明對應(yīng)的實(shí)施例會沒有在說明書中描述,沒有在本說明書中描述該實(shí)施例的事實(shí)并不意味著這個(gè)實(shí)施例不與本發(fā)明相應(yīng)。相反地,在本說明書中描述了的實(shí)施例作為與在本說明書中描述的與一個(gè)具體發(fā)明相應(yīng)的實(shí)施例的事實(shí),并不意味著這個(gè)實(shí)施例不與除該具體發(fā)明以外的發(fā)明相應(yīng)。
另外,下面的說明不是預(yù)期用來覆蓋說明書中所描述的所有發(fā)明。換句話說,即使下面的說明覆蓋了在本說明書中解釋的發(fā)明,下面的說明也不否認(rèn)在本申請中沒有要求的發(fā)明的存在。也就是說,下面的說明不否認(rèn)可能在單獨(dú)的申請中要求的發(fā)明的存在,該單獨(dú)的申請是作為修改來描述的或在是將來增加的。
一個(gè)由本發(fā)明提供的信息處理裝置(例如驅(qū)動器31或主機(jī)32,都在圖3中示出了)包括一個(gè)信息采集單元(例如圖4中所示的LBA提取單元161),用于從一個(gè)請求將數(shù)據(jù)寫到預(yù)定的記錄介質(zhì)上的操作的命令(例如一個(gè)寫命令104)或一個(gè)請求從該預(yù)定記錄介質(zhì)讀出數(shù)據(jù)的操作的命令(例如一個(gè)讀命令102)獲取預(yù)定的信息;一個(gè)初始化向量生成單元(例如圖4中所示的初始化向量生成單元92),用于從由該信息采集單元獲取的信息中生成一個(gè)初始化向量;以及一個(gè)加密/解密執(zhí)行單元(例如圖4中所示的解密單元91),用于通過使用由該初始化向量生成單元生成的初始化向量和一個(gè)預(yù)定的密鑰,對數(shù)據(jù)進(jìn)行加密或解密。
可以用一個(gè)在其中由該信息采集單元獲取的預(yù)定信息是LBA(邏輯塊地址)的配置來實(shí)現(xiàn)該信息處理裝置。
也可以用一個(gè)進(jìn)一步具有一個(gè)用于生成隨機(jī)數(shù)的隨機(jī)數(shù)生成單元(例如圖18中所示的隨機(jī)數(shù)生成單元24)的配置來實(shí)現(xiàn)該信息處理裝置,其中該初始化向量生成單元從由該信息采集單元獲取的信息以及由該隨機(jī)數(shù)生成單元生成的隨機(jī)數(shù)中生成一個(gè)初始化向量。
可以用一個(gè)在其中該初始化向量單元使用經(jīng)由圖30中所示的散列處理單元451所執(zhí)行的散列函數(shù)處理的隨機(jī)數(shù)的配置,來實(shí)現(xiàn)該信息處理裝置。
由本發(fā)明提供一種控制方法是一種控制方法,用于控制至少一個(gè)在其上安裝了預(yù)定的記錄介質(zhì)的介質(zhì)安裝裝置(例如圖3中所示的驅(qū)動器31),或一個(gè)連接到該介質(zhì)安裝裝置的裝置,以作為一個(gè)用于控制與該介質(zhì)安裝裝置進(jìn)行數(shù)據(jù)交換的控制裝置(例如圖3中所示的主機(jī)32)。由本發(fā)明提供的該控制方法包括一個(gè)信息采集步驟(例如圖9中所示的時(shí)序圖的步驟S42),從一個(gè)請求將數(shù)據(jù)寫到預(yù)定的記錄介質(zhì)的操作的命令或一個(gè)請求從該預(yù)定記錄介質(zhì)讀出數(shù)據(jù)的操作的命令中獲取預(yù)定的信息;
一個(gè)初始化向量生成步驟(例如圖9中所示的時(shí)序圖的步驟S42),從由該信息采集步驟中執(zhí)行的處理中獲取的信息生成一個(gè)初始化向量;以及一個(gè)加密/解密執(zhí)行步驟(例如圖9中的時(shí)序圖的步驟S45),通過使用由該初始化向量生成步驟執(zhí)行的處理中生成的初始化向量和一個(gè)預(yù)定的密鑰,對數(shù)據(jù)進(jìn)行加密或解密。
由本發(fā)明提供的一個(gè)程序是一個(gè)用于控制至少一個(gè)在其上安裝了預(yù)定的記錄介質(zhì)的介質(zhì)安裝裝置的控制裝置的程序,或一個(gè)連接到該介質(zhì)安裝裝置的裝置以作為控制與該介質(zhì)安裝裝置進(jìn)行數(shù)據(jù)交換的控制裝置的程序。由本發(fā)明提供的程序包括一個(gè)信息采集步驟(例如圖9中所示的時(shí)序圖的步驟S42),從一個(gè)請求將數(shù)據(jù)寫到預(yù)定的記錄介質(zhì)的操作的命令或一個(gè)請求從該預(yù)定記錄介質(zhì)讀出數(shù)據(jù)的操作的命令中獲取預(yù)定的信息;一個(gè)初始化向量生成步驟(例如圖9中所示的時(shí)序圖的步驟S42),從由該信息采集步驟中執(zhí)行的處理中獲取的信息生成一個(gè)初始化向量;以及一個(gè)加密/解密執(zhí)行步驟(例如圖9中所示的時(shí)序圖的步驟S45),通過使用由該初始化向量生成步驟執(zhí)行的處理中生成的初始化向量和一個(gè)預(yù)定的密鑰,對數(shù)據(jù)進(jìn)行加密或解密。
該程序可以記錄在一個(gè)記錄介質(zhì)上。
下面將參考附圖來說明本發(fā)明的實(shí)施例。
圖3示出了實(shí)現(xiàn)本發(fā)明所提供的一個(gè)系統(tǒng)的一個(gè)實(shí)施例的配置。圖3中所示的系統(tǒng)是一個(gè)能夠完成記錄和再現(xiàn)處理的記錄/再現(xiàn)裝置。在圖3中未示出的記錄介質(zhì)安裝在同一張圖里示出的系統(tǒng)上。該記錄/再現(xiàn)裝置具有一個(gè)配置,其包括一個(gè)用于將預(yù)定的數(shù)據(jù)從該安裝好的記錄介質(zhì)中讀出和將該數(shù)據(jù)寫入到其中的驅(qū)動器31,以及用于處理(控制)從該介質(zhì)讀出的數(shù)據(jù)和將要寫入到該介質(zhì)上的數(shù)據(jù)的主機(jī)32。
該記錄介質(zhì)可以設(shè)想是盤狀記錄介質(zhì)中的一種,該盤狀記錄介質(zhì)包括CD-ROM(光盤只讀存儲器)、CD-R(可錄光盤存儲器)、CD-RW(可重寫光盤存儲器)、DVD-R(可錄數(shù)字多功能盤)、DVD-RW(可重寫數(shù)字多功能盤)、DVD+R(數(shù)字多功能盤+可錄)、DVD+RW(數(shù)字多功能盤+可重寫)、DVD-RAM(數(shù)字多功能盤-隨機(jī)存取存儲器)以及藍(lán)光盤。另外,這些盤狀記錄介質(zhì)不會限制本發(fā)明的申請范圍。也就是說,本發(fā)明的申請范圍包括每一個(gè)具有其它配置,例如另一種記錄方法和另一種形狀的記錄介質(zhì)。
以通過一個(gè)預(yù)定的接口來交換數(shù)據(jù)的這樣的方法來相互連接驅(qū)動器31和主機(jī)32。例如,可以采用ATAPI(AT附加封裝接口(Advanced TechnologyAttachment with Package Interface)作為該預(yù)定的接口。ATAPI是一種接口,其遵循將除硬盤之外的其它外圍設(shè)備連接到IDE(集成驅(qū)動器電子設(shè)備(Integrated Drive Electronics))或ATA(AT輔助設(shè)備(AT Attachment))接口的數(shù)據(jù)傳送方法。例如,通過將從SCSI接收到的一個(gè)命令分組,并將分組的命令傳遞給該IDE接口,使得該ATAPI執(zhí)行對該外圍設(shè)備的控制。相同的命令分組也可應(yīng)用于一個(gè)物理接口,例如USB(通用串行總線(Universal SerialBus))或IEEE1394接口。除了硬盤之外的外圍設(shè)備的一個(gè)例子是CD-ROM驅(qū)動器。
首先,驅(qū)動器31具有一個(gè)驗(yàn)證處理單元51,而主機(jī)32包括一個(gè)驗(yàn)證處理單元81。驗(yàn)證處理單元51和驗(yàn)證處理單元81完成相互驗(yàn)證處理。
圖3中所示的再現(xiàn)單元41,作為一個(gè)從預(yù)定的介質(zhì)讀出數(shù)據(jù)的單元,包括一個(gè)加密單元61、一個(gè)初始化向量生成單元62、一個(gè)介質(zhì)讀處理器63、一個(gè)解密單元91以及一個(gè)初始化向量生成單元92。該加密單元61、該初始化向量生成單元62以及該介質(zhì)讀處理器63包括在該驅(qū)動器31中,而該解密單元91和該初始化向量生成單元92包括在該主機(jī)32中。
該再現(xiàn)單元41的驅(qū)動器方面的配置說明如下。如上所述,該驅(qū)動器方面的配置包括加密單元61、初始化向量生成單元62以及介質(zhì)讀處理器63,這些單元是包括在該驅(qū)動器31中的。加密單元61接收從該記錄介質(zhì)讀出的扇區(qū)數(shù)據(jù)71和來自該驗(yàn)證處理單元51的密鑰Ks。密鑰Ks是用于加密處理的密鑰。另外,該加密單元61也接收來自該初始化向量生成單元62的初始化向量IV(初始化向量(Initializationvector))。在下文中引用IV作為初始化向量IV。
通過使用該密鑰Ks和該初始化向量IV,該加密單元61對該扇區(qū)數(shù)據(jù)71進(jìn)行加密,將該加密的結(jié)果提供給在主機(jī)32中使用的解密單元91。從而,由該驅(qū)動器31提供給該主機(jī)32的數(shù)據(jù)是加密數(shù)據(jù)。
通過使用包括在從主機(jī)32接收到的一個(gè)讀出命令102中的預(yù)定的數(shù)據(jù),該初始化向量生成單元62生成一個(gè)將要提供給該加密單元61的初始化向量IV。隨后將說明生成一個(gè)初始化向量IV的過程的細(xì)節(jié)。
要注意,該加密單元61具有一個(gè)配置,該配置包括如圖1中所示的該“異或”電路11和該加密單元12的組合。由于該組合已經(jīng)解釋過了,所以在下面的說明中將不再重復(fù)說明,以避免重復(fù)。因此,該初始化向量生成單元62生成一個(gè)將要提供給圖1中所示的“異或”電路11-1的初始化向量IV。另一方面,將從該驗(yàn)證處理單元51接收到的密鑰Ks提供給該加密單元12-1至12-N。
出于同樣的原因,在該主機(jī)32中使用的加密單元93也具有如圖1中所示的配置。
另一方面,在主機(jī)32中使用的解密單元91通過一個(gè)接口接收由驅(qū)動器31提供的加密扇區(qū)數(shù)據(jù)71。通過使用從該驗(yàn)證處理單元81接收到的密鑰Ks和從該初始化向量生成單元92接收到的初始化向量IV,該解密單元91來對該加密扇區(qū)數(shù)據(jù)71進(jìn)行解密,以生成與從該記錄介質(zhì)讀出的扇區(qū)數(shù)據(jù)71相同的扇區(qū)數(shù)據(jù)101。該初始化向量生成單元92主要通過完成與該初始化向量生成單元62相同的處理來生成一個(gè)初始化向量IV。也就是說,初始化向量生成單元92主要通過使用包括在該讀命令102中的預(yù)定的數(shù)據(jù)來生成一個(gè)初始化向量IV。
要注意,該解密單元91具有一個(gè)配置,包括如圖2中所示的“異或”電路21和解密單元22的組合。由于已經(jīng)解釋過了該組合,下面的說明中將不再重復(fù)說明,以避免重復(fù)。因此,該初始化向量生成單元92生成一個(gè)將要提供給如圖2中所示的“異或”電路21-1的初始化向量IV。另一方面,將從該驗(yàn)證處理單元81接收到的密鑰Ks提供給該解密單元22-1至22-N。
出于同樣的原因,在驅(qū)動器31中使用的解密單元64也具有圖2中所示的配置。
接下來,說明圖3中所示的記錄單元42的配置。用于將數(shù)據(jù)記錄到一個(gè)預(yù)定記錄介質(zhì)上的記錄單元42包括解密單元64、初始化向量生成單元65、介質(zhì)寫處理器66、加密單元93以及初始化向量生成單元94。該解密單元64、該初始化向量生成單元65以及該介質(zhì)寫處理器66包括在驅(qū)動器31中,而該加密單元93和該初始化向量生成單元94包括在主機(jī)32中。
將要記錄到安裝在驅(qū)動器31中的記錄介質(zhì)上的扇區(qū)數(shù)據(jù)103提供給在該記錄單元42中使用的加密單元93。另外,該加密單元93也接收來自驗(yàn)證處理單元81的密鑰Ks和來自初始化向量生成單元94的初始化向量IV。通過使用該密鑰Ks和該初始化向量IV,加密單元93對扇區(qū)數(shù)據(jù)103進(jìn)行加密,將該加密的結(jié)果提供給在驅(qū)動器31中使用的解密單元64。
在主機(jī)32中,初始化向量生成單元94生成將要提供給加密單元93的初始化向量IV。說的詳細(xì)些,該初始化向量生成單元94通過使用包括在寫命令104中的數(shù)據(jù)來生成初始化向量IV。
也將該寫命令104提供給在驅(qū)動器31中使用的介質(zhì)寫處理器66。當(dāng)接收該寫命令104的時(shí)候,該介質(zhì)寫處理器66控制一個(gè)操作來將該扇區(qū)數(shù)據(jù)103寫到安裝在驅(qū)動器31上的記錄介質(zhì)上。不用說,也將該寫命令104提供給在驅(qū)動器31中使用的初始化向量生成單元65。
很像初始化向量生成單元94,初始化向量生成單元65通過使用包括在該寫命令104中的預(yù)定的數(shù)據(jù)來生成一個(gè)初始化向量IV,并將該初始化向量IV提供給該解密單元64。該解密單元64不僅接收來初始化向量生成單元65的初始化向量IV,而且接收來自主機(jī)32的扇區(qū)數(shù)據(jù)103和來自該驗(yàn)證處理單元51的密鑰Ks。
通過使用從驗(yàn)證處理單元51接收的密鑰Ks和從初始化向量生成單元65接收的初始化向量IV,該解密單元64對該加密扇區(qū)數(shù)據(jù)103進(jìn)行解密,以生成與扇區(qū)數(shù)據(jù)103相同的扇區(qū)數(shù)據(jù)72,以在介質(zhì)寫處理器66執(zhí)行的控制下寫到未在該圖中示出的記錄介質(zhì)上。
順便說說,圖3中所示的每一個(gè)組件都可以通過硬件或軟件來實(shí)現(xiàn)。
下面的描述說明了若干實(shí)施例的每個(gè)實(shí)現(xiàn)了該初始化向量生成單元,以及由該初始化向量生成單元采用的用來生成初始化向量IV的技術(shù)。首先,說明第一實(shí)施例。圖4示出了該再現(xiàn)單元41的詳細(xì)配置。在圖4中,與圖3中所示的相同的組件將使用與圖3中所使用的相同的附圖標(biāo)記來表示,而對它們的說明也被適當(dāng)省略了以避免重復(fù)。而且對于其它附圖,與圖3中所示的相同的組件都使用與圖3中所使用的相同的附圖標(biāo)記來表示,而對它們的說明書也被適當(dāng)省略了以避免重復(fù)。
在圖4中所示的驅(qū)動器31具有一個(gè)配置,其中,從該記錄介質(zhì)讀出的一個(gè)PSN(物理扇區(qū)號)被提供給一個(gè)用于將該P(yáng)NA轉(zhuǎn)換為一個(gè)LBA的PSN/LBA轉(zhuǎn)換單元121,其中LBA是邏輯塊地址的縮寫。通常,一個(gè)邏輯塊地址包括在一個(gè)讀命令102中,充當(dāng)一個(gè)驅(qū)動器31和主機(jī)32的共用地址。從而,使得主機(jī)32能夠指定存儲在該介質(zhì)中的數(shù)據(jù)的邏輯塊地址,而不用知道該數(shù)據(jù)在該記錄介質(zhì)上的物理地址。讀命令102包括一個(gè)LBA,它是該記錄介質(zhì)上的一個(gè)位置的邏輯地址。數(shù)據(jù)的LBA不是該數(shù)據(jù)在該記錄介質(zhì)上存儲的位置的真實(shí)物理地址。該P(yáng)SN/LBA轉(zhuǎn)換單元121完成將從該記錄介質(zhì)讀出的作為表示物理地址的PSN的一個(gè)PSN,轉(zhuǎn)換為一個(gè)驅(qū)動器31和主機(jī)32都知道的邏輯地址。
該驅(qū)動器31的配置也包括一個(gè)緩沖/傳送處理單元122,用于完成將由加密單元61加密的扇區(qū)數(shù)據(jù)71臨時(shí)存儲在一個(gè)緩沖器中的處理,并將該扇區(qū)數(shù)據(jù)71從該緩沖器傳送到主機(jī)32。通過將該緩沖/傳送處理單元122包括在該配置中,通常可以在實(shí)際接收到一個(gè)讀命令102之前,完成預(yù)讀操作以從該記錄介質(zhì)讀數(shù)據(jù)。
在使得預(yù)讀操作可以完成的配置中,由主機(jī)32發(fā)出的作為從該記錄介質(zhì)讀出數(shù)據(jù)的操作的請求的讀命令102,可以通過承受實(shí)際可以忽略不計(jì)的時(shí)間來訪問該驅(qū)動器31中的記錄介質(zhì)而被執(zhí)行,這是因?yàn)樵摂?shù)據(jù)已經(jīng)緩沖在該緩沖/傳送處理單元122中。也就是說,可以提高連續(xù)讀速度。
驅(qū)動器31也使用一個(gè)用于處理從主機(jī)32接收的讀命令102的讀命令處理器123。在這種配置中,該讀命令處理器123將該處理的結(jié)果提供給緩沖/傳送處理單元122以及介質(zhì)讀處理器63。
主機(jī)32具有一個(gè)配置,它包括一個(gè)用于從讀命令102中提取LBA并將該LBA提供給初始化向量生成單元92的LBA提取單元161。圖4中所示的再現(xiàn)單元41具有一個(gè)配置,其中,從包括在讀命令102中的LBA生成初始化向量IV。
下面的描述說明從中讀出扇區(qū)數(shù)據(jù)71和該扇區(qū)數(shù)據(jù)71的PSN 141的一個(gè)記錄介質(zhì)。圖5是一個(gè)說明圖,示出了記錄在一個(gè)盤狀記錄介質(zhì)上的數(shù)據(jù)的結(jié)構(gòu)。如圖5所示,盤180的記錄區(qū)域包括一個(gè)在最里面的圓周上的導(dǎo)入?yún)^(qū)域181,一個(gè)包圍該導(dǎo)入?yún)^(qū)域181的用戶數(shù)據(jù)區(qū)域182以及一個(gè)包圍該用戶數(shù)據(jù)區(qū)域182的導(dǎo)出區(qū)域183。
代表只讀記錄介質(zhì)的DVD-ROM盤的物理規(guī)格說明在“ECMA-267120mm DVD-Read Only Disk”中進(jìn)行了規(guī)定。根據(jù)這些規(guī)格說明,PSN記錄在每個(gè)具有2KB長的扇區(qū)數(shù)據(jù)的首標(biāo)。
代表可重寫記錄介質(zhì)的DVD+RW盤的物理規(guī)格說明在“ECMA-337DataInterchange on 120mm and 80mm Optical Disk Using+RM Format Capacity 4,7and 1,6GB per Side”中進(jìn)行了規(guī)定。根據(jù)這些規(guī)格說明,提供一種機(jī)制,在其中未記錄的盤上的PSN是記錄在ADIP(Address in Pre-groove)中的,并且,在將具有2KB大小的扇區(qū)數(shù)據(jù)寫到一個(gè)盤上的操作中,與記錄在該ADIP上的那個(gè)相同的PSN也記錄在該扇區(qū)數(shù)據(jù)的首標(biāo),以便建立與該DVD-ROM兼容性。
根據(jù)DVD的規(guī)格說明,該導(dǎo)入?yún)^(qū)域181在02FFFFh的PSN結(jié)束,而該用戶數(shù)據(jù)區(qū)域182從030000h的PSN開始。03000h的PSN被定義為000000h的LBA。作為由該P(yáng)SN/LBA轉(zhuǎn)換單元121采用的地址轉(zhuǎn)化方法,在INCITST10 WORKING DRAFT的題為“MultiMedia Command Set-4(MMc-4)”中描述了用于多種光盤介質(zhì)的方法。
用戶數(shù)據(jù)區(qū)域182用作一個(gè)用于記錄內(nèi)容本身的區(qū)域。該內(nèi)容包括音頻數(shù)據(jù)、靜止圖像數(shù)據(jù)、視頻數(shù)據(jù)道以及游戲數(shù)據(jù)。用戶可以高自由度寫入和讀出的扇區(qū)數(shù)據(jù)71是在該用戶數(shù)據(jù)區(qū)域182中的扇區(qū)數(shù)據(jù)。導(dǎo)出區(qū)域183作為一個(gè)位于用戶數(shù)據(jù)區(qū)域182外端的區(qū)域。
構(gòu)成盤180的記錄區(qū)域的導(dǎo)入?yún)^(qū)域181、用戶數(shù)據(jù)區(qū)域182以及導(dǎo)出區(qū)域183,每個(gè)都包括如圖6所示的單元,該單元每一個(gè)包括一個(gè)扇區(qū)首標(biāo)191和扇區(qū)數(shù)據(jù)192。該扇區(qū)首標(biāo)191是具有18字節(jié)大小的信息,而該扇區(qū)數(shù)據(jù)192是具有2048字節(jié)大小的數(shù)據(jù)。若干每個(gè)包括一個(gè)扇區(qū)首標(biāo)191和一個(gè)扇區(qū)數(shù)據(jù)192的組合,記錄在導(dǎo)入?yún)^(qū)域181、用戶數(shù)據(jù)區(qū)域182以及導(dǎo)出區(qū)域183中的每一個(gè)中。
從這種盤180讀出的數(shù)據(jù)被提供給驅(qū)動器31。主機(jī)32將像圖7中所示的那樣的命令傳送到驅(qū)動器31,以控制驅(qū)動器31。在INCITS T10 WORKINGDRAFT的題為“MultiMedia Command Set-4(MMC-4)”中描述了該命令的細(xì)節(jié)。圖7中所示的命令具有與讀命令102和寫命令104相同的格式。下面將描述作為在下述說明中引用的信息的在圖7中所示的命令中所包括的一些字段。
操作碼是一個(gè)指示該命令是讀命令102還是寫命令104的代碼。從而,通過引用該操作碼,從主機(jī)32接收該命令的驅(qū)動器31能夠確定該命令是讀命令102還是寫命令104。該操作碼是具有1字節(jié)長度的字段。
在一個(gè)讀命令102中指定的邏輯塊地址是一個(gè)區(qū)域的起始邏輯地址,數(shù)據(jù)將從該區(qū)域讀出。另一方面,在該寫命令104中指定的邏輯塊地址是一個(gè)區(qū)域的起始邏輯地址,數(shù)據(jù)將寫入到該區(qū)域上。該邏輯塊地址是具有4字節(jié)長度的字段。
就一個(gè)讀命令102來說,傳送長度是將要從中讀出數(shù)據(jù)的扇區(qū)數(shù)。另一方面,就一個(gè)寫命令104來說,傳送長度是將要寫入數(shù)據(jù)的扇區(qū)數(shù)。該傳送長度是具有4字節(jié)長度的字段。
在這個(gè)實(shí)施例中,一個(gè)初始化向量IV從讀命令102和寫命令104中的一個(gè)中生成,其每一個(gè)都具有上述的字段。
參考圖8來說明該LBA和該扇區(qū)數(shù)據(jù)之間的關(guān)系。如上所述,該LBA包括在一個(gè)讀命令102和一個(gè)寫命令104中。就一個(gè)讀命令102來說,邏輯地址是一個(gè)區(qū)域的起始邏輯地址,數(shù)據(jù)將從該區(qū)域讀出。驅(qū)動器31在(起始LBA+0)讀出數(shù)據(jù)作為第一扇區(qū)數(shù)據(jù)并將該數(shù)據(jù)傳送給主機(jī)32。假定包括在該讀命令102中的傳送長度是3。在該情況下,驅(qū)動器31通過在(起始LBA+1)讀出數(shù)據(jù)作為第二扇區(qū)數(shù)據(jù)來繼續(xù)該讀操作,并將該數(shù)據(jù)傳送給主機(jī)32。最后,驅(qū)動器31在(起始LBA+2)讀出數(shù)據(jù)作為第三扇區(qū)數(shù)據(jù)并將該數(shù)據(jù)傳送給主機(jī)32,結(jié)束該讀命令102的執(zhí)行。
由于從盤180讀出的數(shù)據(jù)是圖6中示出的扇區(qū)數(shù)據(jù)192,所以字節(jié)數(shù)是2048。如上所述,在這個(gè)配置中,一個(gè)LBA指定具有2048字節(jié)大小的扇區(qū)數(shù)據(jù)的第一段,而該傳送長度指定這種扇區(qū)數(shù)據(jù)的段數(shù)。
首先,通過參考圖9中示出的時(shí)序圖,下面的描述概要地說明了由圖4所示的再現(xiàn)單元41完成的處理。在步驟S11和S41,主機(jī)32和驅(qū)動器31分別互相驗(yàn)證。如果該互相驗(yàn)證過程正常結(jié)束,就在下一步驟執(zhí)行對段的處理。作為該互相驗(yàn)證過程的結(jié)果,在驅(qū)動器31中使用的驗(yàn)證處理單元51和在主機(jī)32中使用的驗(yàn)證處理單元81生成一個(gè)共享密鑰Ks。
在步驟S12,主機(jī)32發(fā)出一個(gè)具有圖7所示的格式的讀命令102。在這個(gè)命令中,該LBA設(shè)定為#1而該傳送長度設(shè)定為3。當(dāng)然,該操作碼設(shè)定為一個(gè)指示這個(gè)命令是讀命令102的值。
將字段定為上述這些值的讀命令102提供給該LBA提取單元161。在該情況下,該LBA提取單元161提取LBA#1,并將該LBA提供給初始化向量生成單元92。該初始化向量生成單元92通過使用該LBA#1或數(shù)據(jù)#1生成一個(gè)初始化向量IV。這里的說明不超出僅僅說通過使用該LBA#1或數(shù)據(jù)#1而使該初始化向量生成單元92生成一個(gè)初始化向量,這是因?yàn)楹竺鎸f明生成初始化向量的細(xì)節(jié)。
在步驟S42,在步驟S12所完成的處理中發(fā)出的讀命令102也提供給驅(qū)動器31使用的讀命令處理器123。該讀命令處理器123參考提供到那里的命令的操作碼,并將該命令識別為一個(gè)讀命令102。然后,讀命令處理器123參考該讀命令102的邏輯塊地址來將#1識別為該LBA。最后,讀命令處理器123參考該讀命令102的傳送長度來找出該傳送長度是3。
隨后,讀命令處理器123將該傳送起始LBA#1和該傳送長度3傳送給緩沖/傳送處理單元122?;谠搨魉推鹗糒BA#1和該傳送長度3,緩沖/傳送處理單元122將要傳送的扇區(qū)數(shù)設(shè)定為3,并將該傳送的開始端設(shè)定為LBA#1。
另外,讀命令處理器123也將該傳送起始LBA#1提供給該介質(zhì)讀處理器63。該介質(zhì)讀處理器63控制從該記錄介質(zhì)讀出數(shù)據(jù)的處理。在該控制的執(zhí)行中,通過執(zhí)行在該圖中未示出的一個(gè)LBA/PSN過程,該介質(zhì)讀處理器63獲取一個(gè)對應(yīng)于在該讀命令102中指定的LBA的PSN。
也就是說,將讀命令102中指定的讀LBA轉(zhuǎn)換為一個(gè)PSN。該讀LBA是用于記錄從像圖5示出的盤180那樣的記錄介質(zhì)中所讀出的數(shù)據(jù)的一個(gè)邏輯扇區(qū)或一組邏輯扇區(qū)的LBA。
在驅(qū)動器31中將讀命令102中指定的讀LBA轉(zhuǎn)換成一個(gè)PSN,這是因?yàn)橄旅娴脑颉J紫?,像光盤這樣的記錄介質(zhì)的記錄區(qū)域是分成預(yù)定大小的物理扇區(qū)的,其每一個(gè)都被分配給一個(gè)邏輯扇區(qū)。第二,像主機(jī)32這樣的外部裝置指定一個(gè)將要從中讀出數(shù)據(jù)或向其寫入數(shù)據(jù)的邏輯扇區(qū)(或一個(gè)LBA),而驅(qū)動器31從一個(gè)分配給邏輯扇區(qū)的物理扇區(qū)(或一個(gè)PSN)中讀出數(shù)據(jù)或?qū)?shù)據(jù)寫入其中。
要注意,該盤180的用戶數(shù)據(jù)區(qū)域182的物理扇區(qū),是通過把一個(gè)具有某一物理扇區(qū)編號的物理扇區(qū)當(dāng)作一個(gè)參考,順序分配給具有順序邏輯扇區(qū)編號的邏輯扇區(qū)的。該盤180的用戶數(shù)據(jù)區(qū)域182是對用戶有效的區(qū)域。一種用于地址轉(zhuǎn)換的典型方法在INCITS T10 WORKING DRAFT的題為“MultiMedia Command Set-4(MMC-4)”中描述了。
在該LBA轉(zhuǎn)換為PSN之后,在步驟S43執(zhí)行的處理中,在該記錄介質(zhì)中搜索作為地址轉(zhuǎn)換結(jié)果獲得的PSN所指向的位置。然后,執(zhí)行該處理,以將一個(gè)拾取頭移至搜索該記錄介質(zhì)所產(chǎn)生的位置。在該記錄介質(zhì)上的位置是一個(gè)將要從中讀出數(shù)據(jù)的位置。
在步驟S92,在LBA#1記錄的數(shù)據(jù)被從該記錄介質(zhì)中讀出。在該情況下,從LBA#1讀出物理扇區(qū)數(shù)據(jù)#1作為扇區(qū)數(shù)據(jù)71。然后,在步驟S44,將從該記錄介質(zhì)讀出的扇區(qū)數(shù)據(jù)71提供給該加密單元61,而同時(shí),將用于該扇區(qū)數(shù)據(jù)71的PSN 141提供給PSN/LBA轉(zhuǎn)換單元121。
將由PSN/LBA轉(zhuǎn)換單元121輸出的LBA提供給初始化向量生成單元62,該初始化向量生成單元62通過使用該LBA生成初始化向量IV。同時(shí),也將該LBA提供給緩沖/傳送處理單元122,該緩沖/傳送處理單元122然后準(zhǔn)備從該加密單元61接收該LBA的扇區(qū)數(shù)據(jù)71。
加密單元61也接收來自該驗(yàn)證處理單元51的密鑰和來自該初始化向量生成單元62的初始化向量IV。通過使用該密鑰和該初始化向量IV,加密單元61對該扇區(qū)數(shù)據(jù)71進(jìn)行加密。在步驟S45執(zhí)行的處理中,經(jīng)由緩沖/傳送處理單元122將該加密扇區(qū)數(shù)據(jù)71提供給在主機(jī)32中使用的解密單元91。在圖9中所示的時(shí)序圖中,該加密扇區(qū)數(shù)據(jù)71被認(rèn)為是加密扇區(qū)數(shù)據(jù)#1。
通過使從驗(yàn)證處理單元81接收的密鑰Ks和從該初始化向量生成單元92接收的初始化向量IV,解密單元91對該加密扇區(qū)數(shù)據(jù)71進(jìn)行解密以生成扇區(qū)數(shù)據(jù)101,將這樣生成的扇區(qū)數(shù)據(jù)101提供給未在該圖中示出的應(yīng)用軟件、顯示單元和揚(yáng)聲器中的任何一個(gè)。
此后,重復(fù)執(zhí)行上述處理,以經(jīng)由驅(qū)動器31將數(shù)據(jù)從該記錄介質(zhì)傳送到主機(jī)32。更具體地,在步驟S93至S103執(zhí)行的處理中,分別從該記錄介質(zhì)讀出物理扇區(qū)數(shù)據(jù)#2至#12的部分。說的詳細(xì)些,根據(jù)由驅(qū)動器31執(zhí)行的搜索控制順序地并連續(xù)地從該記錄介質(zhì)讀出物理扇區(qū)數(shù)據(jù)#2至#12的部分,并將其提供給驅(qū)動器31。在步驟S46、S48和S50執(zhí)行的處理中,驅(qū)動器31分別順序地接收物理扇區(qū)數(shù)據(jù)#2至#4的部分,以根據(jù)主機(jī)32的請求將這些數(shù)據(jù)加密并將它們提供給主機(jī)32。
在步驟S15,驅(qū)動器31將由主機(jī)32在步驟S12請求的最后的扇區(qū)數(shù)據(jù)提供給主機(jī)32。該最后的扇區(qū)數(shù)據(jù)是圖中所示的物理扇區(qū)數(shù)據(jù)#3。當(dāng)主機(jī)32在步驟S15接收該最后的扇區(qū)數(shù)據(jù)的時(shí)候,在步驟S51,驅(qū)動器31向主機(jī)32發(fā)送命令結(jié)束狀態(tài)。這是因?yàn)?,在該情況下,該傳送長度是設(shè)定為3的,而在即將執(zhí)行步驟S15的處理的時(shí)候,三段扇區(qū)數(shù)據(jù),也就是物理扇區(qū)數(shù)據(jù)#1、物理扇區(qū)數(shù)據(jù)#2以及物理扇區(qū)數(shù)據(jù)#3,已經(jīng)從驅(qū)動器31發(fā)送到主機(jī)32了。因而,由驅(qū)動器31發(fā)送給主機(jī)32的命令結(jié)束狀態(tài)通知主機(jī)32請求的數(shù)據(jù)已經(jīng)發(fā)送或傳送了。
要注意,盡管驅(qū)動器31將命令結(jié)束狀態(tài)發(fā)送給主機(jī)32,驅(qū)動器31仍繼續(xù)該操作,從該記錄介質(zhì)讀出扇區(qū)數(shù)據(jù)段。從該記錄介質(zhì)讀出的數(shù)據(jù)段順序地由加密單元61加密并緩沖在緩沖/傳送處理單元122中。
在步驟S16執(zhí)行的處理中,主機(jī)32接收該命令結(jié)束狀態(tài)。然后,在下一個(gè)步驟S17,主機(jī)32發(fā)出一個(gè)新的讀命令102。在步驟S17發(fā)出的讀命令102指定了一個(gè)LBA#4和一個(gè)傳送長度3。響應(yīng)一個(gè)這樣的讀命令102的要求,在步驟S55將在步驟S50中緩沖在緩沖/傳送處理單元122中的物理扇區(qū)數(shù)據(jù)#4提供給主機(jī)32。
如上所述,當(dāng)主機(jī)32發(fā)出一個(gè)讀命令102的時(shí)候,重復(fù)處理以順序地將由驅(qū)動器31從該記錄介質(zhì)讀出的數(shù)據(jù)提供給主機(jī)32。在驅(qū)動器31中的步驟S50和隨后的步驟中,以及在主機(jī)32中的步驟S18和隨后的步驟中執(zhí)行的對段的處理,基本上分別與在驅(qū)動器31中的步驟S44至S49和步驟S51中,以及在主機(jī)32中的步驟S13至S16中執(zhí)行的對段的處理相同。由于在步驟S44至S49和步驟S51中,以及在步驟S13至S16中執(zhí)行的對段的處理剛才已經(jīng)說明了,所以適當(dāng)省略該說明以避免重復(fù)。
再來參考圖10說明由驅(qū)動器31執(zhí)行的處理和在該處理中的數(shù)據(jù)流。首先,PSN/LBA轉(zhuǎn)換單元121將具有4字節(jié)長度的一個(gè)LBA提供給初始化向量生成單元62。該初始化向量生成單元62通常使用一個(gè)散列函數(shù)將該LBA擴(kuò)展為具有16字節(jié)大小的數(shù)據(jù),并將該數(shù)據(jù)作為一個(gè)初始化向量IV輸出。然后將該初始化向量IV提供給該加密單元61。
加密單元61也接收來自驗(yàn)證處理單元51的密鑰Ks。從而,加密單元61接收該初始化向量IV和該密鑰Ks。另外,加密單元61也接收具有2048字節(jié)大小的扇區(qū)數(shù)據(jù)作為要加密的數(shù)據(jù)。加密單元61對該具有2048字節(jié)大小的扇區(qū)數(shù)據(jù)進(jìn)行加密,以產(chǎn)生緩沖在緩沖/傳送處理單元122中的加密扇區(qū)數(shù)據(jù)。
如上所述,加密單元61接收具有2048字節(jié)大小的扇區(qū)數(shù)據(jù),并對該扇區(qū)數(shù)據(jù)進(jìn)行加密以產(chǎn)生加密扇區(qū)數(shù)據(jù)。例如,如果加密單元61采用一個(gè)CBC(密碼塊鏈接(Cipher Block Chaining))方法來對該扇區(qū)數(shù)據(jù)加密,那么,實(shí)際上將該扇區(qū)數(shù)據(jù)分成每個(gè)具有16字節(jié)長度的塊單元,以塊為單位進(jìn)行加密和輸出。
圖11是一個(gè)框圖,示出了該加密單元61的一個(gè)典型內(nèi)部配置,以及在該加密單元61基于CBC方法加密數(shù)據(jù)的配置中的數(shù)據(jù)流。很像剛才通過參考圖1說明的加密電路,該內(nèi)部配置是若干每個(gè)都包括一個(gè)“異或”邏輯電路和一個(gè)加密單元的組合。從而,在下面的描述中,在圖11中,與圖1所示的加密電路中使用的對應(yīng)物相同的組件使用與該對應(yīng)物相同的附圖標(biāo)記來表示。
如圖11中所示,具有2048字節(jié)長度的扇區(qū)數(shù)據(jù)被分為每個(gè)具有16字節(jié)大小的數(shù)據(jù)塊。結(jié)果,該扇區(qū)數(shù)據(jù)被分為128個(gè)每個(gè)具有16字節(jié)大小的數(shù)據(jù)塊。如剛才已經(jīng)通過參考圖1說明了,將該數(shù)據(jù)塊提供給它們各自的“異或”邏輯電路11-1至11-128,并將由該“異或”邏輯電路11-1至11-128輸出的數(shù)據(jù)段提供給它們各自的加密單元12-1至12-128。
作為加密的結(jié)果,加密單元12-1至12-128將加密扇區(qū)數(shù)據(jù)段輸出到該緩沖/傳送處理單元122。將由加密單元12-1至12-127輸出的數(shù)據(jù)段分別提供給分別在加密單元12-1至12-127之后的級的“異或”電路11-2至11-128。然而,由于沒有在該“異或”電路11-1之前的級的加密單元,所以沒有數(shù)據(jù)從前一級提供給“異或”電路11-1。因此,在這內(nèi)部配置中,將由初始化向量生成單元62生成初始化向量IV提供給該“異或”電路11-1。
由于提供的初始化向量IV包括一個(gè)在該讀命令102中指定的作為一個(gè)扇區(qū)的LBA的LBA,因此每當(dāng)發(fā)出一個(gè)讀命令102的時(shí)候,就為在該讀命令102中指定的LBA所指向的扇區(qū)生成一個(gè)初始化向量IV。例如,再次參考在圖9中示出的時(shí)序圖。在步驟S12由主機(jī)32發(fā)出的讀命令102的LBA是#1,但步驟S17由主機(jī)32發(fā)出的讀命令102的LBA是#4。因此,通過使用值#1而生成的初始化向量IV自然不同于通過使用值#4而生成的初始化向量IV。
另外,初始化向量IV不是通過按照原狀使用LBA而生成的。而是,通過使用作為對一個(gè)LBA應(yīng)用散列函數(shù)等等而得到的值,來生成初始化向量IV。說的更詳細(xì)些,生成初始化向量IV是通過使用一個(gè)包含一個(gè)數(shù)據(jù)擴(kuò)展隨機(jī)數(shù)的“異或”邏輯和的向量生成來生成的。后面將會詳細(xì)說明,這樣,生成與以前的初始化向量IV相同的初始化向量IV的可能性可以降低。由于在這兩次加密之一中使用的初始化向量IV不同于在另一次中使用的初始化向量IV,因此即使相同的扇區(qū)數(shù)據(jù)在不同的兩次時(shí)間加密,加密的結(jié)果也將彼此不同。這是因?yàn)?,生成與以前的初始化向量IV相同的初始化向量IV的可能性可以降低。另外,可使在加密之前的扇區(qū)數(shù)據(jù)免于由于對該加密數(shù)據(jù)解碼而從加密數(shù)據(jù)中推斷出來。
除此之外,通過從包括在一個(gè)讀命令102中的參數(shù)來生成一個(gè)初始化向量IV,也可以避免不能再利用現(xiàn)有接口的問題?,F(xiàn)有接口的例子是典型地以2048字節(jié)為單位執(zhí)行處理的ATAPI設(shè)備驅(qū)動器和PC驅(qū)動器接口。也就是說,通過在初始化向量IV的生成中應(yīng)用本發(fā)明,不用修改像ATAPI這樣的現(xiàn)有接口的規(guī)格,就可以生成具有上述特征的初始化向量IV。
接下來,通過參考圖12再來說明由主機(jī)32執(zhí)行的處理以及在該處理中的數(shù)據(jù)流。首先,該LBA提取單元161從一個(gè)讀命令102中提取具有4字節(jié)長度的LBA,并將該LBA提供給初始化向量生成單元92。通過通常采用的散列函數(shù)來擴(kuò)展該LBA為一個(gè)具有16字節(jié)大小的數(shù)據(jù),使該初始化向量生成單元92生成一個(gè)初始化向量IV。
該初始化向量生成單元92所采用的生成初始化向量IV的技術(shù)與在驅(qū)動器31中使用的初始化向量生成單元62所采用的技術(shù)基本相同。也就是說,例如,如果該初始化向量生成單元62通過使用一個(gè)散列函數(shù)來生成初始化向量IV,那么初始化向量生成單元92也通過使用一個(gè)散列函數(shù)來生成初始化向量IV。將由初始化向量生成單元92生成的初始化向量IV提供給解密單元91。
該解密單元91也接收來自該驗(yàn)證處理單元81的密鑰Ks。這個(gè)密鑰Ks與由在驅(qū)動器31中使用的驗(yàn)證處理單元51提供給加密單元61的密鑰Ks是相同的。可以將在一個(gè)驗(yàn)證過程中生成的密鑰用作該密鑰Ks。
如上所述,將該初始化向量IV和該密鑰Ks提供給該解密單元91。另外,該解密單元91也接收具有2048字節(jié)大小的加密扇區(qū)數(shù)據(jù)作為要解密的扇區(qū)數(shù)據(jù)。由該解密單元91輸出具有2048字節(jié)大小的扇區(qū)數(shù)據(jù)作為解密的結(jié)果,并通常將其提供給未在該圖中示出的應(yīng)用軟件和/或顯示單元。
如上所述,該解密單元91接收具有2048字節(jié)大小的數(shù)據(jù),解密該數(shù)據(jù)并輸出解密的結(jié)果。類似加密單元61,通常,該解密單元91在該解密過程中采用CBC(密碼塊鏈接(Cipher Block Chaining))方法。在該情況下,該數(shù)據(jù)實(shí)際上被分為每個(gè)具有16字節(jié)長度的塊單元被加密和以塊為單位被輸出。
圖13是一個(gè)框圖,示出了該解密單元91的一個(gè)典型內(nèi)部配置,以及在該解密單元91基于CBC方法解密數(shù)據(jù)的配置中的數(shù)據(jù)流。很像剛才參考圖2描述的解密電路,該內(nèi)部配置是若干每個(gè)都包括一個(gè)“異或”邏輯電路和一個(gè)解密單元的組合。從而,在下面的說明中,在圖13中,與在圖2中所示的解密電路中使用的對應(yīng)物相同的組件使用與該對應(yīng)物相同的附圖標(biāo)記來表示。
如圖13中所示,具有2048字節(jié)長度的加密扇區(qū)數(shù)據(jù)被分為每個(gè)具有16字節(jié)大小的數(shù)據(jù)塊。結(jié)果,該加密扇區(qū)數(shù)據(jù)被分為128個(gè)每個(gè)具有16字節(jié)大小的數(shù)據(jù)塊。如剛才已經(jīng)參考圖2進(jìn)行了說明,將該數(shù)據(jù)塊提供給它們各自的解密單元22-1至22-128,并將由該解密單元22-1至22-128輸出的數(shù)據(jù)段提供給它們各自的“異或”電路21-1至21-128。
通?!爱惢颉彪娐?1-1至21-128將異或處理的結(jié)果作為扇區(qū)數(shù)據(jù),輸出到未在該圖中示出的顯示單元和/或另一個(gè)數(shù)據(jù)接收器。將提供給該解密單元22-1至22-127的數(shù)據(jù)塊也分別提供給在該解密單元22-1至22-127之后的級的“異或”電路21-2至21-128。然而,由于沒有在該“異或”電路21-1之前的級的解密單元,因此沒有數(shù)據(jù)從前一級提供給“異或”電路21-1。因此,在這種內(nèi)部配置中,將由初始化向量生成單元92生成的初始化向量IV提供給該“異或”電路21-1。
提供給該“異或”電路21-1的初始化向量IV與由驅(qū)動器31中使用的加密單元61所執(zhí)行的加密過程中使用的初始化向量IV相同。這是因?yàn)樵摮跏蓟蛄可蓡卧?2和該初始化向量生成單元92通過對從相同讀命令102中提取的一個(gè)LBA采用相同的方法來生成初始化向量IV。因而,相同的初始化向量IV被提供給該加密單元61和該解密單元91。
接下來,通過參考圖14來說明將數(shù)據(jù)寫到該記錄介質(zhì)上的操作,在該圖中示出了記錄單元42的詳細(xì)配置。在這個(gè)圖中,和在圖3中所示的對應(yīng)物相同的組件使用與該對應(yīng)物相同的附圖標(biāo)記來表示,并且它們的說明被適當(dāng)省略以避免重復(fù)。
主機(jī)32具有一個(gè)包括一個(gè)附加LBA提取單元211的配置。該LBA提取單元211從一個(gè)寫命令104中提取一個(gè)LBA,并將該LBA提供給初始化向量生成單元94。圖14中所示的記錄單元42具有一種配置,在其中初始化向量IV是從包括在一個(gè)寫命令104中的LBA中生成。
LBA是一個(gè)表示要把數(shù)據(jù)寫到記錄介質(zhì)上的哪個(gè)地址的邏輯地址。由于在一個(gè)寫命令104中指定的LBA是一個(gè)在該記錄介質(zhì)上的邏輯地址,因而不是實(shí)際物理地址,驅(qū)動器31必須執(zhí)行將該LBA轉(zhuǎn)換為表示物理地址的PSN的處理。雖然這種將LBA轉(zhuǎn)換為PSN的處理在該圖中沒有明確示出,但驅(qū)動器31具有一個(gè)包括用于執(zhí)行該處理的介質(zhì)寫處理器66的配置。
該驅(qū)動器31的配置還包括一個(gè)附加緩沖/傳送處理單元202。該緩沖/傳送處理單元202臨時(shí)緩沖從主機(jī)32接收的數(shù)據(jù)段,直到識別出指向要將該數(shù)據(jù)寫入的扇區(qū)的一個(gè)LBA。同時(shí),介質(zhì)寫處理器66執(zhí)行處理,在該記錄介質(zhì)的記錄區(qū)域中搜索一個(gè)由該LBA指向的位置。然后,隨著由該解密單元64執(zhí)行的過程的進(jìn)行,順序地將該數(shù)據(jù)段從該緩沖/傳送處理單元202傳送到解密單元64。該驅(qū)動器31還具有一個(gè)寫命令處理器203。該寫命令處理器203具有一個(gè)用于處理從主機(jī)32接收的寫命令104的單元。作為該處理的結(jié)果,該寫命令處理器203將指向該數(shù)據(jù)要寫入的扇區(qū)中的第一個(gè)的LBA,以及一個(gè)表示這種扇區(qū)的數(shù)目的傳送長度,提供給該緩沖/傳送處理單元202和該介質(zhì)寫處理器66。
首先,通過參考圖15,下面的描述說明由該主機(jī)32中使用的組件完成的處理,該組件與包括在圖14中所示的記錄單元42的配置中的組件相同。開始,該LBA提取單元211從一個(gè)寫命令104中提取一個(gè)具有4字節(jié)長度的LBA,并將該LBA提供給該初始化向量生成單元94。通常,初始化向量生成單元94通過使用一個(gè)散列函數(shù)來將該LBA擴(kuò)展為具有16字節(jié)大小的數(shù)據(jù),并輸出該數(shù)據(jù)作為初始化向量IV。然后將該初始化向量IV提供給該加密單元93。
該加密單元93還從驗(yàn)證處理單元81接收一個(gè)密鑰Ks。從而,加密單元93接收該初始化向量IV和該密鑰Ks。另外,該加密單元93還接收具有2,048字節(jié)大小的扇區(qū)數(shù)據(jù)作為要加密的數(shù)據(jù)。例如,要提供的扇區(qū)數(shù)據(jù)已經(jīng)從該主機(jī)32中的一個(gè)記錄裝置中讀取。加密單元93對該具有2048字節(jié)大小的扇區(qū)數(shù)據(jù)進(jìn)行加密,以產(chǎn)生提供給驅(qū)動器31的加密扇區(qū)數(shù)據(jù)。
該用于完成這樣的加密過程的加密單元93可以具有與剛才說明的加密單元61相同的配置。也就是說,該加密單元93可以具有圖11中所示的配置。
接下來,通過參考圖16來說明由該驅(qū)動器31對該加密數(shù)據(jù)實(shí)施的處理。首先,寫命令處理器203從一個(gè)寫命令104中提取一個(gè)具有4字節(jié)長度的LBA,并將該LBA提供給初始化向量生成單元65。通常通過使用一個(gè)散列函數(shù)來將該LBA擴(kuò)展為具有16字節(jié)大小的數(shù)據(jù),初始化向量生成單元65生成一個(gè)初始化向量IV。
由該初始化向量生成單元65采用的用以生成初始化向量IV的技術(shù)與在主機(jī)32中使用的初始化向量生成單元94所采用的技術(shù)基本相同。也就是說,例如,如果該初始化向量生成單元94通過使用一個(gè)散列函數(shù)來生成初始化向量IV,那么初始化向量生成單元65也通過使用一個(gè)散列函數(shù)來生成初始化向量IV。將由初始化向量生成單元65生成的初始化向量IV提供給解密單元64。
該解密單元64還從該驗(yàn)證處理單元51接收密鑰Ks。這個(gè)密鑰Ks與由在主機(jī)32中使用的驗(yàn)證處理單元81提供給加密單元93的密鑰Ks是相同的。可以將在一個(gè)驗(yàn)證過程中生成的密鑰用作該密鑰Ks。
如上所述,將該初始化向量IV和該密鑰Ks提供給該解密單元64。另外,該解密單元64還接收具有2048字節(jié)大小的加密扇區(qū)數(shù)據(jù)作為要解密的扇區(qū)數(shù)據(jù)。該解密單元64輸出具有2048字節(jié)大小的扇區(qū)數(shù)據(jù)作為解密的結(jié)果,并通常將其提供給未在該圖中示出的記錄介質(zhì)。
用于完成這樣的解密過程的解密單元64可以具有與剛才說明的解密單元91相同的配置。也就是說,該解密單元64可以具有圖13中所示的配置。
接下來,說明生成一個(gè)初始化向量IV的過程。在上述實(shí)施例中,通常通過應(yīng)用一個(gè)散列函數(shù),在一個(gè)讀命令102或一個(gè)寫命令104中指定的一個(gè)LBA的數(shù)據(jù)被用來生成一個(gè)初始化向量IV。在下面的描述中,更具體地說明生成一個(gè)初始化向量IV的過程。再次參考圖3,顯然,一個(gè)初始化向量IV是在4個(gè)組件中生成的,即初始化向量生成單元62、初始化向量生成單元65、初始化向量生成單元92以及初始化向量生成單元94。
這四個(gè)初始化向量生成組件采用相同的技術(shù)來生成初始化向量IV。把初始化向量生成單元62作為一個(gè)代表性的實(shí)例來說明該技術(shù)。
圖17是一個(gè)框圖,示出了該初始化向量生成單元62的一個(gè)典型的內(nèi)部配置。圖17中所示的初始化向量生成單元62具有一個(gè)包括一個(gè)SHA-1處理器221和一個(gè)截?cái)鄦卧?22配置。首先,說明該SHA-1處理器221。該SHA是安全散列算法(Secure Hash Algorithm)的縮寫。
該SHA已經(jīng)由美國的NIST(國家標(biāo)準(zhǔn)技術(shù)研究所(National Institute ofStandard and Technology))開發(fā)了。SHA已經(jīng)修訂了幾次。然后,在1995年,F(xiàn)IPS180-1作為該SHA的修訂版本被頒布。SHA-1是該修訂版本的俗名。該SHA的細(xì)節(jié)在由William Staring創(chuàng)作的題為“加密與網(wǎng)絡(luò)安全(Encryption andNetwork Security)”出版物這樣的參考文獻(xiàn)中描述了。
如該名字所表示,SHA-1是一個(gè)用一個(gè)散列函數(shù)來完成處理的算法的名字。該處理輸入一個(gè)具有任何字節(jié)長度的消息,并輸出具有160位大小的消息摘要。然而,將該輸入消息的長度限制到最大為N位,其中N是2的64次冪。
如上所述,由于SHA-1能夠使用具有任何字節(jié)數(shù)的消息作為輸入,例如,任何包括在一個(gè)ATAPI命令分組或任何邏輯格式信息中的數(shù)值可以用作一個(gè)輸入。這里,如圖17中所示,使用具有4字節(jié)長度的LBA作為用于基于SHA-1完成處理的SHA-1處理器221的一個(gè)輸入。
如上所述,該SHA-1的處理輸出一個(gè)具有160位或20字節(jié)大小的消息摘要。也就是說,在該情況下,SHA-1處理器221輸出具有160位大小的數(shù)據(jù)。然而,作為初始化向量IV需要的數(shù)據(jù)是具有16字節(jié)大小的數(shù)據(jù)。因而,在該SHA-1處理器221之后的級提供一個(gè)截?cái)鄦卧?22作為從該SHA-1處理器221輸出的160位數(shù)據(jù)中提取128位(或16字節(jié))的數(shù)據(jù)的單元。
由該截?cái)鄦卧?22輸出的數(shù)據(jù)是一個(gè)初始化向量IV。這樣,包括該SHA-1處理器221和截?cái)鄦卧?22的初始化向量生成單元62生成一個(gè)初始化向量IV。
上述生成初始化向量IV的過程只不過是個(gè)典型實(shí)施例,這并不限制生成初始化向量IV的技術(shù)。因此,通過參考圖18和隨后的圖來說明除這典型實(shí)施例之外的實(shí)施例如下。
在通過參考圖18和隨后的圖來說明的實(shí)施例中,除一個(gè)LBA之外,在生成初始化向量IV的過程中還用到了一個(gè)隨機(jī)數(shù)。首先,說明通過使用一個(gè)隨機(jī)數(shù)來生成初始化向量IV的處理的特征。
在剛才說明的一個(gè)實(shí)施例中,初始化向量IV是通過使用一個(gè)在讀命令102或?qū)懨?04中指定的4字節(jié)的LBA來生成的。然而,由于該初始化向量IV具有16字節(jié)長度,因此該初始化向量IV采用一個(gè)方法而生成,該方法是通過將一個(gè)散列函數(shù)應(yīng)用于該具有4字節(jié)長度的LBA以將該LBA擴(kuò)展為具有16字節(jié)大小的數(shù)據(jù)。
順便說說,一個(gè)LBA是分配給每個(gè)扇區(qū)的。因此,該初始化向量生成單元可以基于每個(gè)扇區(qū)的散列函數(shù)來完成初始化向量生成處理,其中,數(shù)據(jù)將要從該扇區(qū)讀出或向其寫入。相對頻繁地執(zhí)行基于散列函數(shù)的初始化向量生成處理,增加了由驅(qū)動器31和主機(jī)32承受的負(fù)載,可能會產(chǎn)生這種或那種的問題。例如,由于由該初始化向量生成單元執(zhí)行生成初始化向量IV的處理,將數(shù)據(jù)寫到記錄介質(zhì)上或從該記錄介質(zhì)讀出數(shù)據(jù)所占用的時(shí)間長度可能增加。利用LBA的4字節(jié)長度的特征,可以采用一個(gè)方法,借此方法通過重復(fù)該LBA四次而將該LBA擴(kuò)展為具有16字節(jié)長度的數(shù)據(jù)。然而,通過采用這種方法而生成的初始化向量IV比較容易推斷,所以對于維持保密性來說該方法不能說是理想的。
在下述通過使用一個(gè)隨機(jī)數(shù)來生成初始化向量IV的處理中,大量執(zhí)行“異或”或邏輯加,與具有LBA的情況一樣需要隊(duì)每一個(gè)扇區(qū)進(jìn)行費(fèi)時(shí)的處理。因此,該過程只是花費(fèi)相對少的時(shí)間的處理。結(jié)果,防止了該整個(gè)系統(tǒng)的處理速度的降低,并提高了保密性的級別。
圖18是一個(gè)框圖,示出了該再現(xiàn)單元41的一個(gè)典型配置,該配置用于初始化向量IV不僅是從一個(gè)LBA,而且還是從一個(gè)隨機(jī)數(shù)生成的情況。另一方面,圖19是一個(gè)框圖,示出了該記錄單元42的一個(gè)典型配置,該配置用于初始化向量IV不僅是使用一個(gè)LBA,而且還是使用一個(gè)隨機(jī)數(shù)來生成的情況。在圖18中所示的再現(xiàn)單元41所使用的組件當(dāng)中,與在圖4中所示的再現(xiàn)單元41中使用的對應(yīng)物相同的組件使用與該對應(yīng)物相同的附圖標(biāo)記來表示,并且為了避免重復(fù)而適當(dāng)省略了它們的說明。出于同樣的原因,在圖19中所示的記錄單元42所使用的組件當(dāng)中,與在圖14中所示的記錄單元42中使用的對應(yīng)物相同的組件使用與該對應(yīng)物相同的附圖標(biāo)記來表示,并且為了避免重復(fù)而適當(dāng)省略了它們的說明。下面的描述參考其它示出了該再現(xiàn)單元41和該記錄單元42的典型配置的圖。同樣地,在其它圖中示出的組件,與剛才所解釋的它們的對應(yīng)物相同的使用與該對應(yīng)物相同的附圖標(biāo)記來表示。另外,相同組件的說明也同樣適當(dāng)?shù)厥÷粤耍员苊庵貜?fù)。
在圖18和19中分別示出的該再現(xiàn)單元41和該記錄單元42的配置中,隨機(jī)數(shù)是由驅(qū)動器31中使用的組件生成的。
更具體些,圖18中所示的再現(xiàn)單元41包括一個(gè)隨機(jī)數(shù)生成單元241,用于生成一個(gè)隨機(jī)數(shù)以在驅(qū)動器31中生成一個(gè)初始化向量IV。將由該隨機(jī)數(shù)生成單元241生成的初始化向量IV提供給在該驅(qū)動器31中使用的初始化向量生成單元242以及在主機(jī)32中使用的初始化向量生成單元251。該初始化向量生成單元242和該初始化向量生成單元251,都通過使用從讀命令102取出的一個(gè)LBA和從該隨機(jī)數(shù)生成單元241接收的隨機(jī)數(shù)來生成初始化向量IV。
出于同樣的原因,圖19中所示的記錄單元42包括一個(gè)隨機(jī)數(shù)生成單元271,用于生成一個(gè)隨機(jī)數(shù)以在驅(qū)動器31中生成一個(gè)初始化向量IV。將由該隨機(jī)數(shù)生成單元271生成的隨機(jī)數(shù)提供給在該驅(qū)動器31中使用的初始化向量生成單元272以及在主機(jī)32中使用的初始化向量生成單元281。該初始化向量生成單元272和該初始化向量生成單元281,都通過使用從寫命令104取出的一個(gè)LBA和從該隨機(jī)數(shù)生成單元271接收的隨機(jī)數(shù),來生成初始化向量IV。
如圖18和19分別示出的,在驅(qū)動器31中提供了各自用于生成一個(gè)隨機(jī)數(shù)的隨機(jī)數(shù)生成單元241和隨機(jī)數(shù)生成單元271。然而,它們也可以在主機(jī)32中使用。圖20和21的框圖分別示出了該再現(xiàn)單元41和該記錄單元42的典型配置,該配置用于在主機(jī)32中使用該隨機(jī)數(shù)生成單元的情況。
更具體地,圖20中所示的再現(xiàn)單元41包括一個(gè)隨機(jī)數(shù)生成單元301,用于生成一個(gè)隨機(jī)數(shù)以在主機(jī)32中生成一個(gè)初始化向量IV。將由該隨機(jī)數(shù)生成單元301生成的隨機(jī)數(shù)提供給在該主機(jī)32中使用的初始化向量生成單元302以及在驅(qū)動器31中使用的初始化向量生成單元311。該初始化向量生成單元302和該初始化向量生成單元311,都通過使用從讀命令102取出的一個(gè)LBA和從該隨機(jī)數(shù)生成單元301接收的隨機(jī)數(shù),來生成初始化向量IV。
出于同樣的原因,圖21中所示的記錄單元42包括一個(gè)隨機(jī)數(shù)生成單元331,用于生成一個(gè)隨機(jī)數(shù)以在主機(jī)32中生成一個(gè)初始化向量IV。將由該隨機(jī)數(shù)生成單元331生成的隨機(jī)數(shù)提供給在該主機(jī)32中使用的初始化向量生成單元332以及在驅(qū)動器31中使用的初始化向量生成單元341。該初始化向量生成單元332和該初始化向量生成單元341,都通過使用從寫命令104取出的一個(gè)LBA和從該隨機(jī)數(shù)生成單元331接收的隨機(jī)數(shù),來生成初始化向量IV。
圖18至21中所示的該再現(xiàn)單元41和該記錄單元42的典型配置沒有考慮以便在預(yù)讀、讀和寫過程中將數(shù)據(jù)臨時(shí)存儲在一個(gè)緩沖器中的緩沖操作。圖22是一個(gè)框圖,示出了該再現(xiàn)單元41的一個(gè)配置,在其中考慮了預(yù)讀操作。很像剛才已經(jīng)參考圖4所示的再現(xiàn)單元41進(jìn)行說明的情況,圖22中所示的再現(xiàn)單元41的配置包括在該驅(qū)動器31中的緩沖/傳送處理單元122,以作為一個(gè)用于完成預(yù)讀操作的單元。
另外,圖22中所示的再現(xiàn)單元41的配置包括在該驅(qū)動器31中的該隨機(jī)數(shù)生成單元361,以作為一個(gè)用于生成一個(gè)隨機(jī)數(shù)的單元。將由隨機(jī)數(shù)生成單元361生成的隨機(jī)數(shù)提供給在該驅(qū)動器31中使用的初始化向量生成單元362和在該主機(jī)32中使用的初始化向量生成單元371。該初始化向量生成單元362和該初始化向量生成單元371,都通過使用從讀命令102取出的一個(gè)LBA和從該隨機(jī)數(shù)生成單元361接收的隨機(jī)數(shù),來生成初始化向量IV。
參考圖23中所示的時(shí)序圖來說明由圖22中所示的再現(xiàn)單元41完成的操作。在步驟S201和S231執(zhí)行的處理部分中,主機(jī)32和驅(qū)動器31分別驗(yàn)證彼此。如果該互相驗(yàn)證過程正常結(jié)束,就生成一個(gè)會話密鑰。在步驟S202,主機(jī)32發(fā)送一個(gè)“報(bào)告密鑰(REPORT KEY)”命令給該驅(qū)動器31。
該“報(bào)告密鑰(REPORT KEY)”命令通常是一個(gè)作為在互相驗(yàn)證過程中請求一個(gè)密鑰和一個(gè)隨機(jī)數(shù)而發(fā)出的命令。如上所述,圖22中所示的再現(xiàn)單元41的配置包括該在驅(qū)動器31中的隨機(jī)數(shù)生成單元361,以作為一個(gè)用于生成一個(gè)隨機(jī)數(shù)的單元。因此,該主機(jī)32必須從該驅(qū)動器31獲取一個(gè)對于該初始化向量IV的生成來說是必需的隨機(jī)數(shù)。由于這個(gè)原因,在步驟S202,主機(jī)32發(fā)送一個(gè)“報(bào)告密鑰(REPORT KEY)”命令給該驅(qū)動器31。
在步驟S232執(zhí)行的處理中,該驅(qū)動器31接收該“報(bào)告密鑰(REPORTKEY)”命令。然后,在接下來的步驟S233執(zhí)行的處理中,驅(qū)動器31生成一個(gè)隨機(jī)數(shù)R,并將該隨機(jī)數(shù)R發(fā)送給主機(jī)32。在驅(qū)動器31中,該隨機(jī)數(shù)R實(shí)際上是由隨機(jī)數(shù)生成單元361生成。
通過使用該隨機(jī)數(shù)R,該初始化向量生成單元362和該初始化向量生成單元371可以立即開始生成一個(gè)初始化向量IV的處理。然而,隨機(jī)數(shù)R也許會在從驅(qū)動器31到主機(jī)32的傳輸?shù)倪^程中被竄改。結(jié)果,該隨機(jī)數(shù)的竄改可能妨礙從該記錄介質(zhì)讀出數(shù)據(jù)或?qū)?shù)據(jù)寫到其上的正常操作。為了避免這樣的妨礙,生成初始化向量IV的過程是確認(rèn)該隨機(jī)數(shù)R已經(jīng)正常地從驅(qū)動器31傳送到了主機(jī)32之后,也就是說,在確認(rèn)沒有執(zhí)行像竄改該隨機(jī)數(shù)R這樣的非法過程之后才開始。
在步驟S203當(dāng)主機(jī)32接收該隨機(jī)數(shù)R的時(shí)候,通過使用會話密鑰Ks來計(jì)算所接收的隨機(jī)數(shù)R的MAC(消息驗(yàn)證碼(Message AuthenticationCode))值。MAC值像一個(gè)壓縮的消息,是通過使用一個(gè)散列函數(shù)以附在消息上而生成。一個(gè)接收器通過執(zhí)行與該發(fā)送器計(jì)算MAC值的處理相同的處理來計(jì)算MAC值,以與發(fā)送器計(jì)算的該MAC值進(jìn)行比較。這樣,該MAC提供了一種機(jī)制,在其中可以檢查在通信的過程中執(zhí)行的竄改或其它非法操作。例如,在傳送該發(fā)送的MAC值的時(shí)候,如果由發(fā)送器算出的MAC值不匹配由與該發(fā)送器共用該共用密鑰的接收器所算出的MAC值,那么恐怕該消息已遭受了竊聽或竄改的處理。另一方面,如果它們彼此匹配,幾乎可以確定該消息是在沒有竄改的情況下接收到的。
如上所述,通過使用一個(gè)MAC值來檢驗(yàn)該隨機(jī)數(shù)R。然而,通過采用另一種方法也可以檢查該隨機(jī)數(shù)R,來檢驗(yàn)該隨機(jī)數(shù)R是否是一個(gè)在沒有竄改的情況下接收到的消息。
在步驟S204執(zhí)行的處理中,主機(jī)32將該算出的MAC值(MAC[Ks,R])發(fā)送給驅(qū)動器31作為一個(gè)“發(fā)送密鑰(SEND KEY)”命令。當(dāng)在步驟S234執(zhí)行的處理中,驅(qū)動器31接收該MAC值(MAC[Ks,R])時(shí),通過使用該會話密鑰來從該接收到的MAC值中計(jì)算一個(gè)值,以便檢驗(yàn)該算出的值是否與它自己剛才發(fā)送的隨機(jī)數(shù)R匹配。
在這驗(yàn)證中,如果確定它們是彼此不匹配的值,就確定該驅(qū)動器31和該主機(jī)32共用的隨機(jī)數(shù)R已經(jīng)在失敗中結(jié)束了。在該情況下不執(zhí)行進(jìn)一步的處理。也就是說,雖然從主機(jī)32接收到一個(gè)讀命令102和一個(gè)寫命令104,該驅(qū)動器31也不會響應(yīng)這些命令。
另一方面,如果驅(qū)動器31確定該算出的值與剛才它自己發(fā)送的隨機(jī)數(shù)R匹配,就確定該驅(qū)動器31和該主機(jī)共用的隨機(jī)數(shù)R是成功的。在該情況下,執(zhí)行進(jìn)一步的處理。首先,在步驟S235,驅(qū)動器31發(fā)送“好狀態(tài)”給主機(jī)32,指示將執(zhí)行進(jìn)一步的處理,即,接受由主機(jī)32發(fā)出的請求。
在步驟S205,主機(jī)32接收這個(gè)“好狀態(tài)”。然后,在接下來的步驟S206,主機(jī)32發(fā)出一個(gè)讀命令102。由于在該步驟S206和隨后的步驟執(zhí)行的處理與在圖9中所示的時(shí)序圖中的步驟S12和隨后的步驟執(zhí)行的處理相同,因此適當(dāng)省略該說明以避免重復(fù)。然而,通過使用一個(gè)LBA和該隨機(jī)數(shù)R,由初始化向量生成單元362和初始化向量生成單元371生成用于對在驅(qū)動器31和主機(jī)32之間交換的扇區(qū)數(shù)據(jù)進(jìn)行加密和解密的一個(gè)初始化向量IV。
后面將參考圖29和隨后的圖來說明由該初始化向量生成單元362和該初始化向量生成單元371執(zhí)行的生成初始化向量IV的處理。
在參考圖23示出的時(shí)序圖的描述中,在驅(qū)動器31中驗(yàn)證MAC值的有效性。下面通過參考圖24中所示的時(shí)序圖,來說明在主機(jī)32中驗(yàn)證MAC值的情況。通過參考圖24中所示的時(shí)序圖,僅說明與圖23中所示的時(shí)序圖所表示的處理的不同之處。在步驟S332,當(dāng)驅(qū)動器31從主機(jī)32接收一個(gè)“報(bào)告密鑰(REPORT KEY)”命令時(shí),該驅(qū)動器31生成一個(gè)隨機(jī)數(shù)R。然后,通過使用一個(gè)密鑰Ks來計(jì)算該隨機(jī)數(shù)R的MAC值MAC[Ks,R]。而且,驅(qū)動器31生成該算出的MAC值MAC[Ks,R]和該隨機(jī)數(shù)R的結(jié)合數(shù)據(jù)(R‖MAC[Ks,R])。然后,在步驟S333執(zhí)行的處理中,驅(qū)動器31將該結(jié)合數(shù)據(jù)(R‖MAC[Ks,R])發(fā)送給主機(jī)32。
當(dāng)主機(jī)32在步驟S303從驅(qū)動器31接收該結(jié)合數(shù)據(jù)(R‖MAC[Ks,R])時(shí),主機(jī)32從接收的結(jié)合數(shù)據(jù)(R‖MAC[Ks,R])中提取該隨機(jī)數(shù)R和該MAC值MAC[Ks,R]。然后,主機(jī)32從該提取的隨機(jī)數(shù)R和由主機(jī)32自己所管理的一個(gè)會話密鑰計(jì)算一個(gè)MAC值。通過把從該接收的結(jié)合數(shù)據(jù)(R‖MAC[Ks,R])中提取的MAC值與該算出的MAC值相比較,主機(jī)32驗(yàn)證該MAC值的有效性。
如果驗(yàn)證該MAC值的有效性的處理的結(jié)果致使確定出在通信過程中沒有執(zhí)行像竄改這樣的非法處理,就通過使用該提取的隨機(jī)數(shù)R來開始生成初始化向量IV的處理。然后,執(zhí)行步驟S304和隨后的步驟的處理。這個(gè)處理是與從預(yù)定的記錄介質(zhì)讀出數(shù)據(jù)的操作相關(guān)的處理。
要注意,代替結(jié)合數(shù)據(jù)(R‖MAC[Ks,R]),在步驟S333可以采用從驅(qū)動器31發(fā)送其它數(shù)據(jù)到主機(jī)32的方法。該其它數(shù)據(jù)是加密數(shù)據(jù)E[Ks,R],這是通過使用該會話密鑰Ks加密的隨機(jī)數(shù)R。在該情況下,通過使用一個(gè)為其自己所擁有的會話密鑰,主機(jī)32對在步驟S303接收到的加密數(shù)據(jù)E[Ks,R]進(jìn)行解密,以生成該隨機(jī)數(shù)R。這樣,主機(jī)32能夠與驅(qū)動器31共用該隨機(jī)數(shù)R。這個(gè)方法使得該隨機(jī)數(shù)R的值能夠保持機(jī)密,使得推斷該初始化向量IV更加困難。
通過參考圖22至24,上面的描述說明了一個(gè)配置,在該配置中,考慮了預(yù)讀操作,并且該再現(xiàn)單元41使用隨機(jī)數(shù)生成單元361來在驅(qū)動器31中生成一個(gè)隨機(jī)數(shù)。上面的描述還說明了由該再現(xiàn)單元41完成的處理。通過參考圖25至27,下面的描述將說明一個(gè)配置,在該配置中,考慮了預(yù)讀操作,而且,該再現(xiàn)單元41使用隨機(jī)數(shù)生成單元401來在主機(jī)32中生成隨機(jī)數(shù)。下面的描述也說明了由該再現(xiàn)單元41完成的處理。
類似于剛才已經(jīng)參考圖4說明了的再現(xiàn)單元41,圖25中所示的再現(xiàn)單元41具有一個(gè)包括該緩沖/傳送處理單元122的配置,用于實(shí)現(xiàn)在驅(qū)動器31中的預(yù)讀操作。
另外,圖25中所示的再現(xiàn)單元41使用一個(gè)用于在主機(jī)32中生成隨機(jī)數(shù)的隨機(jī)數(shù)生成單元401。將該由隨機(jī)數(shù)生成單元401生成的隨機(jī)數(shù)提供給在驅(qū)動器31中使用的初始化向量生成單元411以及在主機(jī)32中使用的初始化向量生成單元402。該初始化向量生成單元411和該初始化向量生成單元402,都通過使用從讀命令102取出的一個(gè)LBA和從該隨機(jī)數(shù)生成單元361接收的隨機(jī)數(shù),來生成初始化向量IV。
通過參考圖26中所示的時(shí)序圖來說明由圖25中所示的再現(xiàn)單元41完成的操作。在步驟S401和S431執(zhí)行的處理部分中,主機(jī)32和驅(qū)動器31分別驗(yàn)證彼此。如果該互相驗(yàn)證過程正常結(jié)束,就生成一個(gè)會話密鑰。然后,在步驟S402執(zhí)行的處理中,主機(jī)23將結(jié)合數(shù)據(jù)(R‖MAC[Ks,R])發(fā)送給驅(qū)動器31。
當(dāng)驅(qū)動器31在步驟S432從主機(jī)32接收該結(jié)合數(shù)據(jù)(R‖MAC[Ks,R])時(shí),驅(qū)動器31從該接收的結(jié)合數(shù)據(jù)(R‖MAC[Ks,R])中提取隨機(jī)數(shù)R和MAC值MAC[Ks,R]。然后,驅(qū)動器31從該提取的隨機(jī)數(shù)R和由該驅(qū)動器31自己管理的一個(gè)會話密鑰Ks計(jì)算一個(gè)MAC值。通過把從該接收的結(jié)合數(shù)據(jù)(R‖MAC[Ks,R])中提取的MAC值與該算出的MAC值相比較,驅(qū)動器31驗(yàn)證該MAC值的有效性。
如果驗(yàn)證該MAC值的有效性的過程的結(jié)果導(dǎo)致確定出在通信過程中沒有執(zhí)行像竄改這樣的非法處理,就通過使用該提取的隨機(jī)數(shù)R來開始生成初始化向量IV的處理。隨后,在步驟S433,發(fā)送“好狀態(tài)”給主機(jī)32。當(dāng)接收該“好狀態(tài)”的時(shí)候,執(zhí)行步驟S404和隨后的步驟的處理。這個(gè)處理是與從一個(gè)預(yù)定的記錄介質(zhì)讀出數(shù)據(jù)的操作相關(guān)的處理。
要注意,代替結(jié)合數(shù)據(jù)(R‖MAC[Ks,R]),在步驟S402可以采用從主機(jī)32發(fā)送其它數(shù)據(jù)到驅(qū)動器31的方法。該其它數(shù)據(jù)是加密數(shù)據(jù)E[Ks,R],這是通過使用該會話密鑰Ks加密的隨機(jī)數(shù)R。在該情況下,通過使用一個(gè)為其自己所擁有的會話密鑰Ks,驅(qū)動器31解密在步驟S432接收到的加密數(shù)據(jù)E[Ks,R],以產(chǎn)生該隨機(jī)數(shù)R。這樣,驅(qū)動器31能夠與主機(jī)32共用該隨機(jī)數(shù)R。這個(gè)方法使得該隨機(jī)數(shù)R的值能夠保持機(jī)密,使得推斷該初始化向量IV更加困難。另外,如果該加密數(shù)據(jù)E[Ks,R]在通信過程中被竄改了,那么就不可能產(chǎn)生一個(gè)對于驅(qū)動器31和主機(jī)32都共用的隨機(jī)數(shù)R,由此生成對驅(qū)動器31和主機(jī)32都共用的初始化向量IV,結(jié)果,正確地加密和解密傳送的數(shù)據(jù)。因此,盡管竄改妨礙了操作,但對它不帶來任何好處。
參考圖26中示出的時(shí)序圖的描述說明了一種方法,通過使用一個(gè)會話密鑰Ks,將在主機(jī)32中加密的隨機(jī)數(shù)從主機(jī)32傳送到驅(qū)動器31,該方法用于在驅(qū)動器31中驗(yàn)證MAC值的有效性的情況。通過參考圖27中所示的時(shí)序圖,下面的描述說明了一種方法,通過使用一個(gè)會話密鑰Ks,將在驅(qū)動器31中加密的隨機(jī)數(shù)從驅(qū)動器31傳送到主機(jī)32,該方法用于在主機(jī)32中驗(yàn)證MAC值的有效性的情況。通過參考圖27中所示的時(shí)序圖,僅說明與剛才已經(jīng)參考圖26中所示的時(shí)序圖來說明的處理的不同之處。在步驟502,在主機(jī)32中,該隨機(jī)數(shù)生成單元401生成一個(gè)隨機(jī)數(shù)R并將該隨機(jī)數(shù)R與一個(gè)“發(fā)送密鑰(SEND KEY)”命令一起發(fā)送給驅(qū)動器31。
然后,在接下來的步驟S503,主機(jī)32也發(fā)送一個(gè)“報(bào)告密鑰(REPORTKEY)”命令給驅(qū)動器31。該“報(bào)告密鑰(REPORTKEY)”命令在步驟S503中發(fā)送,以請求驅(qū)動器31響應(yīng)該命令計(jì)算該隨機(jī)數(shù)R的MAC值并將它發(fā)送給主機(jī)32。
驅(qū)動器31在步驟S532接收該隨機(jī)數(shù)R,并在步驟S533接收該“報(bào)告密鑰(REPORT KEY)”命令。然后,通過使用一個(gè)會話密鑰Ks,驅(qū)動器31計(jì)算該接收到的隨機(jī)數(shù)R的MAC值MAC[Ks,R]。隨后,在下一個(gè)步驟S534執(zhí)行的處理中,驅(qū)動器31將該MAC值MAC[Ks,R]發(fā)送給主機(jī)32。
當(dāng)主機(jī)32在步驟S504從驅(qū)動器31接收該MAC值MAC[Ks,R]時(shí),主機(jī)32驗(yàn)證該MAC值MAC[Ks,R]的有效性。如果驗(yàn)證該MAC值的有效性的過程的結(jié)果導(dǎo)致確定出在通信過程中沒有執(zhí)行像對該隨機(jī)數(shù)R或其它數(shù)據(jù)的竄改這樣的非法處理,就通過使用該提取的隨機(jī)數(shù)R來開始生成初始化向量IV的過程。然后,執(zhí)行步驟S505和隨后的步驟的處理。這個(gè)處理是與從一個(gè)預(yù)定的記錄介質(zhì)讀出數(shù)據(jù)的操作相關(guān)的處理。
下面的描述說明了一個(gè)方法,通過使用一個(gè)會話密鑰Ks,將一個(gè)在驅(qū)動器31中加密的隨機(jī)數(shù)從驅(qū)動器31傳送到主機(jī)32。通過參考圖28中所示的時(shí)序圖,僅說明與剛才已經(jīng)參考圖27中所示的時(shí)序圖來說明的處理的不同之處。在步驟S602,在主機(jī)32中使用的隨機(jī)數(shù)生成單元401生成一個(gè)隨機(jī)數(shù)R,并將一個(gè)加密隨機(jī)密鑰E[Ks,R]與一個(gè)“發(fā)送密鑰(SEND KEY)”命令一起發(fā)送給驅(qū)動器31。
在步驟S632,驅(qū)動器31接收該加密隨機(jī)密鑰E[Ks,R],并通過使用該會話密鑰Ks來解密它以獲得該隨機(jī)數(shù)R。如果該加密數(shù)據(jù)E[Ks,R]在通信過程中被竄改了,那么就不可能產(chǎn)生一個(gè)對于驅(qū)動器31和主機(jī)32都共用的隨機(jī)數(shù)R,由此生成對驅(qū)動器31和主機(jī)32都共用的初始化向量IV,結(jié)果,正確地加密和解密傳送的數(shù)據(jù)。因此,盡管竄改妨礙了操作,但對它不帶來任何好處。
如上所述,對于初始化向量IV是通過使用該隨機(jī)數(shù)R來生成的情況,執(zhí)行一個(gè)處理來確定隨機(jī)數(shù)R是否已經(jīng)正確地傳輸了。這樣,可以在驅(qū)動器31和主機(jī)32之間實(shí)際的數(shù)據(jù)交換之前的級,檢驗(yàn)傳輸線路的安全性等等。另外,直到驗(yàn)證了該傳輸線路的安全性,才將從該記錄介質(zhì)讀出的數(shù)據(jù)從該驅(qū)動器31傳送給該主機(jī)32,以及將要寫入該記錄介質(zhì)的數(shù)據(jù)從該主機(jī)32傳送給該驅(qū)動器31。從而,防止該數(shù)據(jù)被利用。
上面的描述僅說明了通過使用一個(gè)LBA和一個(gè)隨機(jī)數(shù)R來生成一個(gè)初始化向量IV的概要。下面的說明將解釋生成初始化向量IV的細(xì)節(jié)。要注意,圖18中所示的初始化向量生成單元242和251,圖19中所示的初始化向量生成單元272和281,圖20中所示的初始化向量生成單元302和311,圖21中所示的初始化向量生成單元332和341,圖22中所示的初始化向量生成單元362和371,以及圖25中所示的初始化向量生成單元402和411,每個(gè)都是通過使用基本相同的方法來從LBA和隨機(jī)數(shù)R中生成的初始化向量IV的組件。在下面的描述中,將圖18中所示的初始化向量生成單元242作為一個(gè)代表性的實(shí)例。
圖29是一個(gè)框圖,示出了該初始化向量生成單元242的一個(gè)典型配置。圖29中所示的初始化向量生成單元242具有一個(gè)配置,該配置包括一個(gè)填充處理單元431和一個(gè)初始化向量生成單元432。將從一個(gè)讀命令102提取的4字節(jié)LBA提供給該在該初始化向量生成單元242中使用的填充處理單元431。由于最終生成初始化向量IV具有16字節(jié)長度,該填充處理單元431將該具有4字節(jié)長度的LBA擴(kuò)展為具有16字節(jié)大小的數(shù)據(jù)。
如上所述,通過采用以00h這樣的常數(shù)作為高位或低位字節(jié)來填補(bǔ)短缺的典型方法,該填充處理單元431將該具有4字節(jié)長度的LBA擴(kuò)展為具有16字節(jié)大小的數(shù)據(jù)。作為可供選擇的方法,將該具有4字節(jié)長度的LBA分解,并根據(jù)另一預(yù)定的方法將該分解的位重新定位在具有16字節(jié)大小的數(shù)據(jù)中的位置上,并用像00h這樣的常數(shù)來填補(bǔ)在該具有16字節(jié)大小的數(shù)據(jù)中剩余的位置。作為另一個(gè)可供選擇的方法,僅僅重復(fù)該具有4字節(jié)長度的LBA四次,以生成具有16字節(jié)大小的數(shù)據(jù)。作為又可供選擇的方法,將作為重復(fù)該具有4字節(jié)長度的LBA的結(jié)果所獲得的16字節(jié)數(shù)據(jù)分解,并根據(jù)又一預(yù)定的方法將該分解的位在位置上重新定位。通過采用這些方法中的任何一種,通過該填充處理單元431,該具有4字節(jié)長度的LBA被轉(zhuǎn)換為具有16字節(jié)大小的數(shù)據(jù)。作為更進(jìn)一步的可供選擇的方法,將由該填充處理單元431輸出的數(shù)據(jù)進(jìn)一步轉(zhuǎn)換為具有16字節(jié)大小的數(shù)據(jù)。
將由該填充處理單元431輸出的數(shù)據(jù)提供給也接收一個(gè)隨機(jī)數(shù)R的初始化向量生成單元432。該隨機(jī)數(shù)R是由圖18中所示的隨機(jī)數(shù)生成單元241生成的。如剛才所述,該隨機(jī)數(shù)R具有16字節(jié)長度,并在驅(qū)動器31和主機(jī)32之間交換,即由它們中的一個(gè)提供給另一個(gè)。
該初始化向量生成單元432對從該LBA生成的16字節(jié)數(shù)據(jù)和該具有16字節(jié)長度的隨機(jī)數(shù)R執(zhí)行一個(gè)“異或”處理,以產(chǎn)生一個(gè)要用作16字節(jié)的初始化向量IV的“異或”邏輯和,其中該初始化向量IV之后被提供給加密單元61和解密單元91。
圖30是一個(gè)框圖,示出了該初始化向量生成單元242的另一個(gè)典型配置。圖30中所示的初始化向量生成單元242具有一個(gè)包括一個(gè)散列處理單元451、一個(gè)填充處理單元452和一個(gè)“異或”處理器453的配置。類似圖29中所示的填充處理單元431,該填充處理單元452輸入一個(gè)具有4字節(jié)長度的LBA,并將該LBA擴(kuò)展為具有16字節(jié)大小的數(shù)據(jù)。然后,該填充處理單元452將該具有16字節(jié)大小的數(shù)據(jù)輸出給該“異或”處理器453。
在圖30中所示初始化向量生成單元242中,該散列處理單元451處理一個(gè)輸入隨機(jī)數(shù)R并將該處理的結(jié)果輸出到該“異或”處理器453。說的更具體些,該散列處理單元45 1通過一個(gè)像SHA-1這樣的散列函數(shù)來處理該隨機(jī)數(shù)R,以產(chǎn)生具有16字節(jié)大小的數(shù)據(jù)C作為該處理的結(jié)果,然后,該結(jié)果被提供給該“異或”處理器453。
由該“異或”處理器453執(zhí)行的處理基本上與由圖29中所示的初始化向量生成單元432執(zhí)行的處理相同。也就是說,該“異或”處理器453對從該LBA生成的16字節(jié)數(shù)據(jù)和該具有16字節(jié)長度的數(shù)據(jù)C執(zhí)行“異或”處理,以產(chǎn)生一個(gè)要用作16字節(jié)初始化向量IV的“異或”邏輯和。
將該隨機(jī)數(shù)R從驅(qū)動器31傳送到主機(jī)32,或反之亦然。如果采用了這樣一個(gè)方法,作為不通過使用一個(gè)會話密鑰Ks來加密該隨機(jī)數(shù)R的情況下按照原狀傳送該隨機(jī)數(shù)R的技術(shù),第三方將能夠在傳輸過程中識別出該隨機(jī)數(shù)R。另外,由于該LBA是包括在一個(gè)從主機(jī)32傳送到驅(qū)動器31的讀命令102中的,第三方將也能夠在傳輸過程中識別出該LBA。由于第三方能夠認(rèn)出該隨機(jī)數(shù)R和該LBA,第三方濫用它們是很有此可能性的。
然而,圖30中所示的初始化向量生成單元242具有一個(gè)配置,在該配置中,該隨機(jī)數(shù)R經(jīng)由一個(gè)散列函數(shù)以生成數(shù)據(jù)C,這是一個(gè)不可預(yù)知的值。從而,可以使得由該數(shù)據(jù)C生成的初始化向量IV也是不可預(yù)知的。也就是說,即使第三方濫用該隨機(jī)數(shù)R和該LBA,該第三方也不能夠從被濫用的值中推斷出該初始化向量IV。結(jié)果,即使該第三方企圖利用從驅(qū)動器31傳送到主機(jī)32或反之亦然的加密數(shù)據(jù),該第三方也不能夠解密該數(shù)據(jù)。
從而,防止從該驅(qū)動器31傳送到主機(jī)32或反之亦然的數(shù)據(jù)被非法利用,并且,因此增強(qiáng)了經(jīng)由預(yù)定接口等等的總線的加密的安全性。
圖31是一個(gè)框圖,示出了該初始化向量生成單元242的一個(gè)進(jìn)一步的典型配置。圖31中所示的初始化向量生成單元242具有一個(gè)包括一個(gè)散列處理單元471、一個(gè)填充處理單元472和一個(gè)“異或”處理電路473的配置。該配置與圖30中所示的基本相同。然而,圖31中所示的配置與圖30中所示的不同之處在于,在圖31中示出的配置中,該散列處理單元471接收一個(gè)來圖18中所示的驗(yàn)證處理單元51的會話密鑰Ks。
該散列處理單元471使用該會話密鑰Ks,對一個(gè)具有16字節(jié)長度的輸入隨機(jī)數(shù)R執(zhí)行散列處理,以將具有16字節(jié)大小的數(shù)據(jù)C輸出到該“異或”處理電路473。
在這樣的配置中,不僅可以展現(xiàn)與由圖30中所示的初始化向量生成單元242所產(chǎn)生的效果相同的效果,而且還展現(xiàn)下列效果。使得即使連續(xù)幾次從驅(qū)動器31到主機(jī)32或反之亦然,傳送相同的隨機(jī)數(shù)R,由該驅(qū)動器31和該主機(jī)32執(zhí)行互相驗(yàn)證處理的結(jié)果所獲得的該會話密鑰Ks還是可以隨不同的驗(yàn)證而不同。結(jié)果,甚至可以從相同的隨機(jī)數(shù)R中生成不同的初始化向量IV。因此就可以增強(qiáng)經(jīng)由總線加密的安全性。
如上所述,根據(jù)本發(fā)明,從在一個(gè)讀命令102或一個(gè)寫命令104中指定的LBA中生成初始化向量IV。從而就可以在不修改像ATAPI這樣的現(xiàn)有接口的規(guī)格的情況下,生成一個(gè)用于數(shù)據(jù)的加密和解密的初始化向量IV。
另外,由于該初始化向量IV是由執(zhí)行一個(gè)通常采用一個(gè)散列函數(shù)的處理而生成的,所以再次生成相同的初始化向量IV是不可能的。因此,通過使用一個(gè)初始化向量IV,有可以使明文免于從加密數(shù)據(jù)中輕易地推斷出。最重要的是,由于將一個(gè)會話密鑰Ks用作該散列函數(shù)的密鑰,所以使再次生成相同的初始化向量IV更是不可能的。
通過參考圖32和33中所示的流程圖,下面的描述將說明用于計(jì)算會話密鑰Ks和初始化向量IV的SEED,其中該密鑰是從驅(qū)動器31和主機(jī)32執(zhí)行的相互驗(yàn)證過程所獲得的結(jié)果。SEED是一個(gè)通常用作在一個(gè)用于生成一個(gè)隨機(jī)數(shù)等的算法中的初始值的預(yù)定數(shù)值。
該流程圖從步驟S701開始,確定一個(gè)盤是否已經(jīng)安裝在該驅(qū)動器31上。嚴(yán)格地講,在下面的說明中,該盤是指一個(gè)安裝在該驅(qū)動器31上的盤狀記錄介質(zhì)。如果在該步驟S701產(chǎn)生的確定結(jié)果指示一個(gè)盤已經(jīng)安裝在該驅(qū)動器31上了,那么該流程繼續(xù)到步驟S702,以確定在主機(jī)32上一個(gè)預(yù)定的應(yīng)用程序是否已經(jīng)激活了。在下面的說明中,該主機(jī)32是一個(gè)PC(個(gè)人計(jì)算機(jī))。
該預(yù)定的應(yīng)用程序被規(guī)定為一個(gè)從安裝在該驅(qū)動器31上的盤中讀出數(shù)據(jù)或向其寫入數(shù)據(jù)所需的應(yīng)用程序。
如果在步驟S702產(chǎn)生的確定結(jié)果指示在該主機(jī)32中,一個(gè)預(yù)定的應(yīng)用程序已經(jīng)激活,那么該處理的流程繼續(xù)到步驟S703。在該步驟S703,驅(qū)動器31和主機(jī)32執(zhí)行一個(gè)互相驗(yàn)證過程,產(chǎn)生一個(gè)由該驅(qū)動器31和該主機(jī)32共用的會話密鑰Ks。然后,該處理的流程繼續(xù)到步驟S704,以確定生成該會話密鑰Ks的過程是否已經(jīng)結(jié)束。如果該生成會話密鑰Ks的過程還沒有結(jié)束,那么該處理的流程回到步驟S703,重復(fù)在該步驟和步驟S704執(zhí)行的處理。重復(fù)地執(zhí)行這些過程,直到在步驟S704產(chǎn)生的確定結(jié)果指示生成會話密鑰Ks的處理已經(jīng)結(jié)束。
當(dāng)在步驟S704產(chǎn)生的確定結(jié)果指示該生成會話密鑰Ks的過程已經(jīng)結(jié)束,那么該處理的流程繼續(xù)到步驟S705,在這個(gè)步驟中,隨機(jī)數(shù)R從該驅(qū)動器31傳送到該主機(jī)32,或反之。然后,該處理的流程繼續(xù)到步驟S706,以確定將該隨機(jī)數(shù)R從該驅(qū)動器31傳送到該主機(jī)32或反之的處理是否已經(jīng)結(jié)束。如果在步驟S706產(chǎn)生的確定結(jié)果指示將該隨機(jī)數(shù)R從該驅(qū)動器31傳送到該主機(jī)32或反之的過程已經(jīng)結(jié)束,那么該處理的流程繼續(xù)到步驟S707。
在步驟S707,發(fā)現(xiàn)了計(jì)算初始化向量IV所需的SEED C。由于在該計(jì)算的結(jié)尾找到SEED C,該隨機(jī)數(shù)R被刪除。當(dāng)在步驟S707執(zhí)行的處理結(jié)束時(shí),該處理的流程繼續(xù)到在圖33中示出的流程圖部分的步驟S708,以確定在該主機(jī)32中激活的預(yù)定應(yīng)用程序的執(zhí)行是否已經(jīng)結(jié)束。該應(yīng)用程序通常是一個(gè)PC應(yīng)用程序。如果在步驟S708獲得的確定結(jié)果指示該P(yáng)C應(yīng)用程序的執(zhí)行還未結(jié)束,那么該處理的流程繼續(xù)到步驟S709,以確定安裝在該驅(qū)動器31上的盤是否已經(jīng)卸下。
如果在步驟S709獲得的確定結(jié)果指示安裝在該驅(qū)動器31上的盤尚未從該驅(qū)動器31上卸下,那么該處理的流程回到步驟S708,重復(fù)這個(gè)步驟的過程。另一方面,如果在步驟S709獲得的確定結(jié)果指示安裝在該驅(qū)動器31上的盤已經(jīng)從該驅(qū)動器31上卸下,那么該處理的流程繼續(xù)到步驟S710,在該步驟中,在主機(jī)32中生成的會話密鑰Ks被刪除。然后,在接下來的步驟S711,在主機(jī)32中生成SEED C也被刪除。
隨后,在接下來的步驟S712,在驅(qū)動器31中生成的會話密鑰Ks被刪除。然后在接下來的步驟S713,驅(qū)動器31中生成的SEED C也被刪除。
當(dāng)該盤從該驅(qū)動器31卸下的時(shí)候,既不能從該盤中讀出數(shù)據(jù)也不能向其寫入數(shù)據(jù)。為了防止從該盤讀出或向該盤寫入數(shù)據(jù),將會話密鑰Ks和SEEDC的量從該驅(qū)動器31和該主機(jī)32上刪除。在刪除這樣的數(shù)據(jù)段之后,該處理的流程回到步驟S701,以重復(fù)這個(gè)步驟和隨后的步驟的過程。
另一方面,如果在該步驟S708獲得的確定結(jié)果指示該P(yáng)C應(yīng)用程序的執(zhí)行已經(jīng)結(jié)束,那么該處理的流程繼續(xù)到步驟S714,在該步驟,在主機(jī)32中生成的會話密鑰Ks被刪除。然后,在接下來的步驟S715,在主機(jī)32中生成的SEED C也同樣被刪除。
隨后,該處理的流程繼續(xù)到步驟S716,以確定在該主機(jī)32中該P(yáng)C應(yīng)用程序是否已經(jīng)激活。在這種狀態(tài)中,一個(gè)盤已經(jīng)安裝在該驅(qū)動器31上了。從而,如果一個(gè)PC應(yīng)用程序被激活,就可以從該盤讀出數(shù)據(jù),或向其寫入數(shù)據(jù)。如上所述,該處理的流程繼續(xù)到步驟S716,以確定在該主機(jī)32中的一個(gè)PC應(yīng)用程序是否已經(jīng)激活,目的在于確定該信息處理裝置是否處在能夠從該盤讀出數(shù)據(jù)和向該盤寫入數(shù)據(jù)的狀態(tài)。
如果在步驟S716獲得的確定結(jié)果指示在主機(jī)32中的該P(yáng)C應(yīng)用程序已經(jīng)激活,那么該處理的流程回到在圖32中示出的流程圖部分的步驟S703,以重復(fù)該步驟和隨后的步驟的處理。另一方面,如果在步驟S716獲得的確定結(jié)果指示在主機(jī)32中的該P(yáng)C應(yīng)用程序尚未激活,那么該處理的流程繼續(xù)到步驟S717,以確定安裝在該驅(qū)動器31上的盤是否已經(jīng)卸下。
如果在步驟S717獲得的確定結(jié)果指示該安裝在驅(qū)動器31上的盤尚未從該驅(qū)動器31上卸下,那么該處理的流程回到步驟S716,以重復(fù)步驟S716和S717的處理。重復(fù)地執(zhí)行步驟S716和S717的處理,直到在步驟S717獲得的確定結(jié)果指示安裝在驅(qū)動器31上的盤已經(jīng)從該驅(qū)動器31上卸下。當(dāng)在步驟S717獲得的確定結(jié)果指示安裝在驅(qū)動器31上的盤已經(jīng)從該驅(qū)動器31上卸下的時(shí)候,該處理的流程繼續(xù)到步驟S712。由于由該步驟S712的過程和隨后的過程已經(jīng)說明了,因此適當(dāng)省略它們的說明以避免重復(fù)。
如上所述,該信息處理裝置具有一個(gè)配置,在該配置中,必要時(shí)生成一個(gè)會話密鑰Ks和SEED C,而在不再需要它們的時(shí)刻,它們被立即刪除。出現(xiàn)了一個(gè)問題,該會話密鑰Ks和SEED C可能被竊聽。然而,通過提供這樣的配置,出現(xiàn)這種問題的可能性被盡可能地降低。該會話密鑰Ks和SEED C是涉及在生成初始化向量IV的數(shù)據(jù)中。然而,由于能夠降低該會話密鑰Ks和SEED C被竊聽的可能性,因此幾乎不可能竊聽和推斷該初始化向量IV。
下面來說明該再現(xiàn)單元41的其它配置和該記錄單元42的其它配置。在下面的說明中,與已經(jīng)說明的部分相同的配置元件使用與該部分相同的附圖標(biāo)記表示,并且適當(dāng)?shù)厥÷运鼈兊恼f明以避免重復(fù)。
圖34是一個(gè)框圖,示出了該記錄單元42的另一個(gè)典型配置。在圖34中所示的配置中,在驅(qū)動器31中提供了一個(gè)用于生成隨機(jī)數(shù)的隨機(jī)數(shù)生成單元431。將由該隨機(jī)數(shù)生成單元431生成的隨機(jī)數(shù)提供給在該驅(qū)動器31中使用的初始化向量生成單元432以及在主機(jī)32中使用的初始化向量生成單元441。該初始化向量生成單元432和該初始化向量生成單元441,都通過使用從寫命令104取出的一個(gè)LBA和從該隨機(jī)數(shù)生成單元431接收的該隨機(jī)數(shù),來生成初始化向量IV。
圖35是一個(gè)框圖,示出了該記錄單元42的一個(gè)進(jìn)一步的典型配置。在圖35中所示的配置中,在該主機(jī)32中提供了一個(gè)用于生成隨機(jī)數(shù)的隨機(jī)數(shù)生成單元461。將由該隨機(jī)數(shù)生成單元461生成的隨機(jī)數(shù)提供給在該主機(jī)32中使用的初始化向量生成單元462以及在驅(qū)動器31中使用的初始化向量生成單元471。該初始化向量生成單元462和該初始化向量生成單元471,都通過使用從一個(gè)寫命令104取出的一個(gè)LBA和從該隨機(jī)數(shù)生成單元461接收的隨機(jī)數(shù),來生成初始化向量IV。
圖36是一個(gè)框圖,示出了該再現(xiàn)單元41的另一個(gè)典型配置。在圖36中所示的配置中,在驅(qū)動器3 1中提供了一個(gè)用于生成隨機(jī)數(shù)的隨機(jī)數(shù)生成單元501,并且在主機(jī)32中提供了另一個(gè)用于生成隨機(jī)數(shù)的隨機(jī)數(shù)生成單元511。將由該隨機(jī)數(shù)生成單元501和該隨機(jī)數(shù)生成單元511生成的隨機(jī)數(shù)提供給在該驅(qū)動器31中使用的初始化向量生成單元502以及在主機(jī)32中使用的初始化向量生成單元512。該初始化向量生成單元502和該初始化向量生成單元512,都通過使用從讀命令102取出的一個(gè)LBA和從該隨機(jī)數(shù)生成單元501和該隨機(jī)數(shù)生成單元511接收的隨機(jī)數(shù),來生成初始化向量IV。
圖37是一個(gè)框圖,示出了該記錄單元42的一個(gè)再進(jìn)一步的典型配置。在圖37中所示的配置中,在驅(qū)動器31中提供了一個(gè)用于生成隨機(jī)數(shù)的隨機(jī)數(shù)生成單元531,并且在主機(jī)32中提供了另一個(gè)用于生成隨機(jī)數(shù)的隨機(jī)數(shù)生成單元541。將由該隨機(jī)數(shù)生成單元531和該隨機(jī)數(shù)生成單元541生成的隨機(jī)數(shù)提供給在該驅(qū)動器31中使用的初始化向量生成單元532以及在主機(jī)32中使用的初始化向量生成單元542。該初始化向量生成單元532和該初始化向量生成單元542,都通過使用從寫命令104取出的一個(gè)LBA和從該隨機(jī)數(shù)生成單元531和該隨機(jī)數(shù)生成單元541接收的隨機(jī)數(shù),來生成初始化向量IV。
圖38是一個(gè)框圖,示出了該再現(xiàn)單元41的一個(gè)進(jìn)一步的典型配置。在圖38中所示的配置中,在驅(qū)動器31中提供了一個(gè)用于生成隨機(jī)數(shù)的隨機(jī)數(shù)生成單元561,并且在主機(jī)32中提供了另一個(gè)用于生成隨機(jī)數(shù)的隨機(jī)數(shù)生成單元571。將由該隨機(jī)數(shù)生成單元561和該隨機(jī)數(shù)生成單元571生成的隨機(jī)數(shù)提供給在該驅(qū)動器31中使用的初始化向量生成單元562以及在主機(jī)32中使用的初始化向量生成單元572。該初始化向量生成單元562和該初始化向量生成單元572,都通過使用從讀命令102取出的一個(gè)LBA和從該隨機(jī)數(shù)生成單元561和該隨機(jī)數(shù)生成單元571接收的隨機(jī)數(shù),來生成初始化向量IV。
圖39是一個(gè)框圖,示出了該記錄單元42的一個(gè)再進(jìn)一步的典型配置。在圖39中所示的配置中,在驅(qū)動器31中提供了一個(gè)用于生成隨機(jī)數(shù)的隨機(jī)數(shù)生成單元601,并且在主機(jī)32中提供了另一個(gè)用于生成隨機(jī)數(shù)的隨機(jī)數(shù)生成單元611。將由該隨機(jī)數(shù)生成單元601和該隨機(jī)數(shù)生成單元611生成的隨機(jī)數(shù)提供給在該驅(qū)動器31中使用的初始化向量生成單元602以及在主機(jī)32中使用的初始化向量生成單元612。該初始化向量生成單元602和該初始化向量生成單元612,都通過使用從寫命令104取出的一個(gè)LBA和從該隨機(jī)數(shù)生成單元601和該隨機(jī)數(shù)生成單元611接收的隨機(jī)數(shù),來生成初始化向量IV。
通過參考圖40中所示的時(shí)序圖來說明圖38中所示的再現(xiàn)單元41所執(zhí)行的操作。適當(dāng)?shù)厥÷耘c之前已經(jīng)說明了的那些操作相同的操作,以避免重復(fù)。在步驟S833,通過使用來自由該隨機(jī)數(shù)生成單元561生成的隨機(jī)數(shù)R1的會話密鑰Ks,計(jì)算MAC值MAC[Ks,R1],并將其發(fā)送給主機(jī)32。
在步驟S833執(zhí)行的處理中,代替計(jì)算該MAC值MAC[Ks,R1],該驅(qū)動器31可以通過使用該會話密鑰Ks來對由隨機(jī)數(shù)生成單元561生成的隨機(jī)數(shù)R1進(jìn)行加密,以產(chǎn)生加密數(shù)據(jù)E[Ks,R1],然后將該加密數(shù)據(jù)E[Ks,R1]發(fā)送給主機(jī)32。
在步驟S803,主機(jī)32接收來自驅(qū)動器31的MAC值MAC[Ks,R1]或加密數(shù)據(jù)E[Ks,R1]。然后,在接下來的步驟S804,主機(jī)32通過使用該會話密鑰Ks,為該隨機(jī)數(shù)生成單元571生成的隨機(jī)數(shù)R2計(jì)算一個(gè)MAC值MAC[Ks,R2],并將該MAC值MAC[Ks,R2]和一個(gè)“發(fā)送密鑰(SEND KEY)”命令一起發(fā)送給驅(qū)動器31。
在步驟S804執(zhí)行的步驟中,代替計(jì)算該MAC值MAC[Ks,R2],主機(jī)32可以通過使用該會話密鑰Ks來對由該隨機(jī)數(shù)生成單元571生成的隨機(jī)數(shù)R2進(jìn)行加密,以產(chǎn)生加密數(shù)據(jù)E[Ks,R2],然后將該加密數(shù)據(jù)E[Ks,R2]和“發(fā)送密鑰(SEND KEY)”命令一起發(fā)送給驅(qū)動器31。
如上所述,在圖38中所示的記錄單元42中,該驅(qū)動器31和該主機(jī)32分別具有隨機(jī)數(shù)生成單元561和571。因而,一個(gè)初始化向量IV在使用分別由該隨機(jī)數(shù)生成單元561和571輸出的2個(gè)隨機(jī)數(shù)R1和R2的處理中生成。結(jié)果,可以更好地增強(qiáng)保密性。
通過使用一個(gè)從讀命令102取出的LBA和該隨機(jī)數(shù)R1和R2,該初始化向量生成單元562和572各自生成一個(gè)初始化向量IV。這產(chǎn)生一個(gè)問題,關(guān)于是使用由該隨機(jī)數(shù)生成單元561生成隨機(jī)數(shù)R1,還是使用由該隨機(jī)數(shù)生成單元571生成隨機(jī)數(shù)R2。
作為該問題的一個(gè)解決方案,計(jì)算隨機(jī)數(shù)R以作為該隨機(jī)數(shù)R1和R2的“異或”邏輯和,并將其用在初始化向量IV的生成中。也就是說,在計(jì)算該表示該隨機(jī)數(shù)R1和R2的“異或”邏輯和的隨機(jī)數(shù)R之后,該初始化向量生成單元562和572各自生成一個(gè)初始化向量IV。
兩次生成相同的隨機(jī)數(shù)R1和R2的對是幾乎沒有可能的。也就是說,一次以上生成相同的隨機(jī)數(shù)R的可能性也是低的。所以,幾乎不可能兩次生成相同的初臺化向量IV。
這樣,上述通過應(yīng)用本發(fā)明,就可以增強(qiáng)在驅(qū)動器31和主機(jī)32之間交換數(shù)據(jù)的過程中的保密性。
在上述實(shí)施例中,該再現(xiàn)單元41和該記錄單元42在各自的圖中示出各自的配置。然而,要注意,該再現(xiàn)單元41和該記錄單元42也可以具有一個(gè)配置,在其中,在該再現(xiàn)單元41中作為完成與在該記錄單元42中使用的對應(yīng)組件相同的處理的組件,以及該對應(yīng)組件可以作為一個(gè)單獨(dú)的由該再現(xiàn)單元41和該記錄單元42共用的組件來提供。這樣的組件和對應(yīng)組件的一個(gè)實(shí)例是該初始化向量生成單元,該單元可以作為一個(gè)該再現(xiàn)單元41和該記錄單元42所共用的組件來提供。
另外,在上述實(shí)施例中,在說明中所用的CBC方法作為一個(gè)代表性的加密/解密方法。然而,要注意,本發(fā)明不僅能用于該CBC方法。例如,本發(fā)明也可以應(yīng)用于其它方法,例如CFB(密碼反饋(Cipher Feed Back))和OFB(輸出反饋(Output Feed Back))方法。
上述一系列處理可以通過使用硬件或軟件來實(shí)現(xiàn)。如果該處理是通過使用軟件來完成的,構(gòu)成該軟件的程序從一個(gè)程序記錄介質(zhì)中安裝到一個(gè)嵌有專用硬件的計(jì)算機(jī)上,或安裝到一個(gè)通用計(jì)算機(jī)上。通用計(jì)算機(jī)是一種能夠通過執(zhí)行多種安裝在該計(jì)算機(jī)上的程序來完成多種功能的計(jì)算機(jī)。該通用計(jì)算機(jī)的一個(gè)實(shí)例是通用個(gè)人計(jì)算機(jī)。
程序記錄介質(zhì)是用于預(yù)先作為程序?qū)⒁惭b到上述計(jì)算機(jī)中以進(jìn)行記錄程序的介質(zhì)。該程序記錄介質(zhì)是從該計(jì)算機(jī)獨(dú)立分發(fā)給用戶的,作為將記錄在其上的程序提供給用戶的裝置。該程序記錄介質(zhì)是包介質(zhì),可以是包括軟盤的磁盤,包括CD-ROM(光盤只讀存儲器)和DVD(數(shù)字多功能盤)的光盤,包括MD(微型盤,商標(biāo))的磁光盤或半導(dǎo)體存儲器。代替從該程序記錄介質(zhì)安裝程序,該程序可以作為預(yù)先記錄在內(nèi)嵌在該計(jì)算機(jī)中的記錄介質(zhì)上的程序而提供給用戶。該內(nèi)嵌的記錄介質(zhì)的一個(gè)實(shí)例是結(jié)合在存儲單元中的ROM和硬盤。
要注意,在該說明書中,構(gòu)成記錄在該程序記錄介質(zhì)或內(nèi)嵌記錄介質(zhì)上的程序的步驟當(dāng)然能夠以在該程序中規(guī)定的步驟順序,順序地沿時(shí)間軸執(zhí)行順序處理過程。然而,該步驟不是必須作為沿時(shí)間軸的順序處理過程來執(zhí)行,也可以作為并行或單獨(dú)的處理過程來執(zhí)行。
另外,在該說明書中,該系統(tǒng)表示一個(gè)包括若干裝置的完整裝置。
盡管利用具體實(shí)施例已經(jīng)說明了本發(fā)明的優(yōu)選實(shí)施例,但這樣的描述僅僅是為了說明的目的,而且能夠理解,在不偏離所附權(quán)利要求的精神和范圍的情況下做出修改和變化是可以的。
權(quán)利要求
1.一種信息處理裝置,包括一個(gè)信息采集單元,用于從一個(gè)請求將數(shù)據(jù)寫到預(yù)定的記錄介質(zhì)的操作的命令或一個(gè)請求從該預(yù)定記錄介質(zhì)中讀出數(shù)據(jù)的操作的命令里獲取預(yù)定的信息;一個(gè)初始化向量生成單元,用于從由所述信息采集單元獲取的所述信息中生成一個(gè)初始化向量;以及一個(gè)加密/解密執(zhí)行單元,用于通過使用由所述初始化向量生成單元生成的所述初始化向量和一個(gè)預(yù)定的密鑰,對數(shù)據(jù)進(jìn)行加密或解密。
2.根據(jù)權(quán)利要求1所述的信息處理裝置,其中,由所述信息采集單元獲取的所述預(yù)定信息是一個(gè)LBA(邏輯塊地址)。
3.根據(jù)權(quán)利要求1所述的信息處理裝置,所述信息處理裝置還包括一個(gè)用于生成隨機(jī)數(shù)的隨機(jī)數(shù)生成單元,其中所述初始化向量生成單元從由所述信息采集單元獲取的所述信息,以及由所述隨機(jī)數(shù)生成單元生成的所述隨機(jī)數(shù)中生成一個(gè)初始化向量。
4.根據(jù)權(quán)利要求3的信息處理裝置,其中,所述初始化生成單元使用一個(gè)經(jīng)過一個(gè)散列函數(shù)的隨機(jī)數(shù)。
5.一種控制方法,用于控制至少一個(gè)在其上安裝了預(yù)定的記錄介質(zhì)的介質(zhì)安裝裝置,或另一個(gè)連接到所述介質(zhì)安裝裝置的裝置,以作為一個(gè)用于控制與所述介質(zhì)安裝裝置進(jìn)行數(shù)據(jù)交換的控制裝置,所述控制方法包括一個(gè)信息采集步驟,從一個(gè)請求將數(shù)據(jù)寫到預(yù)定的記錄介質(zhì)的操作的命令或一個(gè)請求從所述預(yù)定記錄介質(zhì)中讀出數(shù)據(jù)的操作的命令里獲取預(yù)定的信息;一個(gè)初始化向量生成步驟,從由所述信息采集步驟執(zhí)行的處理中獲取的所述信息生成一個(gè)初始化向量;以及一個(gè)加密/解密執(zhí)行步驟,通過使用由所述初始化向量生成步驟執(zhí)行的處理中生成的所述初始化向量和一個(gè)預(yù)定的密鑰,對數(shù)據(jù)進(jìn)行加密或解密。
6.一種控制裝置的程序,該控制裝置用于控制至少一個(gè)在其上安裝了預(yù)定的記錄介質(zhì)的介質(zhì)安裝裝置,或另一個(gè)連接到所述介質(zhì)安裝裝置的裝置,以作為一個(gè)用于控制與所述介質(zhì)安裝裝置進(jìn)行數(shù)據(jù)交換,所述程序包括一個(gè)信息采集步驟,從一個(gè)請求將數(shù)據(jù)寫到預(yù)定的記錄介質(zhì)的操作的命令或一個(gè)請求從所述預(yù)定記錄介質(zhì)中讀出數(shù)據(jù)的操作的命令里獲取預(yù)定的信息;一個(gè)初始化向量生成步驟,從由所述信息采集步驟執(zhí)行的處理中獲取的所述信息生成一個(gè)初始化向量;以及一個(gè)加密/解密執(zhí)行步驟,通過使用由所述初始化向量生成步驟執(zhí)行的處理中生成的所述初始化向量和一個(gè)預(yù)定的密鑰,對數(shù)據(jù)進(jìn)行加密或解密。
7.一種用于存儲根據(jù)權(quán)利要求6的所述程序的記錄介質(zhì)。
全文摘要
本發(fā)明中,將一個(gè)讀命令中指定的4字節(jié)LBA(邏輯塊地址)提供給第一和第二初始化向量生成單元。通過對該LBA應(yīng)用一個(gè)散列函數(shù),每個(gè)初始化向量生成單元將該LBA擴(kuò)展為具有16字節(jié)大小的數(shù)據(jù)。該第一和第二初始化向量生成單元將該擴(kuò)展后數(shù)據(jù)分別作為初始化向量輸出到加密單元和解密但愿。通過使用該初始化向量和從第一驗(yàn)證處理單元接收的會話密鑰Ks,加密單元對輸入數(shù)據(jù)進(jìn)行加密。另一方面,通過使用該初始化向量和從第二驗(yàn)證處理單元接收的會話密鑰Ks,解密單元對輸入數(shù)據(jù)進(jìn)行解密。這樣,可以通過使用該初始化向量來加密和解密數(shù)據(jù)。本發(fā)明可應(yīng)用于經(jīng)由預(yù)定的接口互相交換數(shù)據(jù)的個(gè)人計(jì)算機(jī)和驅(qū)動器。
文檔編號H04L9/06GK1674492SQ20041010378
公開日2005年9月28日 申請日期2004年11月4日 優(yōu)先權(quán)日2003年11月4日
發(fā)明者木谷聰, 淺野智之 申請人:索尼株式會社