CN1674492A - 信息处理装置、控制方法、程序及记录介质 - Google Patents

信息处理装置、控制方法、程序及记录介质 Download PDF

Info

Publication number
CN1674492A
CN1674492A CNA2004101037851A CN200410103785A CN1674492A CN 1674492 A CN1674492 A CN 1674492A CN A2004101037851 A CNA2004101037851 A CN A2004101037851A CN 200410103785 A CN200410103785 A CN 200410103785A CN 1674492 A CN1674492 A CN 1674492A
Authority
CN
China
Prior art keywords
initialization vector
data
generation unit
random number
driver
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2004101037851A
Other languages
English (en)
Other versions
CN100550724C (zh
Inventor
木谷聪
浅野智之
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of CN1674492A publication Critical patent/CN1674492A/zh
Application granted granted Critical
Publication of CN100550724C publication Critical patent/CN100550724C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • Multimedia (AREA)
  • Storage Device Security (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明中,将一个读命令中指定的4字节LBA(逻辑块地址)提供给第一和第二初始化向量生成单元。通过对该LBA应用一个散列函数,每个初始化向量生成单元将该LBA扩展为具有16字节大小的数据。该第一和第二初始化向量生成单元将该扩展后数据分别作为初始化向量输出到加密单元和解密但愿。通过使用该初始化向量和从第一验证处理单元接收的会话密钥Ks,加密单元对输入数据进行加密。另一方面,通过使用该初始化向量和从第二验证处理单元接收的会话密钥Ks,解密单元对输入数据进行解密。这样,可以通过使用该初始化向量来加密和解密数据。本发明可应用于经由预定的接口互相交换数据的个人计算机和驱动器。

Description

信息处理装置、控制方法、程序及记录介质
技术领域
本发明涉及一种信息处理装置、一种控制方法、一种程序以及一种记录介质。更具体地,该发明涉及一种适合于执行与加密相关的处理的信息处理装置,一种用于该信息处理装置的控制方法,一种描述该控制方法的程序以及一种用于存储该程序的记录介质。
背景技术
在多种装置之间交换数字数据正变得流行起来。即使数据被非法使用,该数字数据的质量也不会变坏。该数字数据的质量包括图像和声音。因此,绝对需要一种阻止数字数据被滥用的对策。在像专利文献1这样的文献中公开了这种对策。
为了避免数字数据的滥用,加密该数字数据。已经有多种加密方法被提出了。以CBC(密码块链接(Ciper Block Chaining))方法为例,对加密和解密进行如下说明。
CBC方法,作为加密技术的一种,是一种用于块链接的技术。为详细表述,参照该CBC方法,将一个加密文本的一个前面的块,加入到将要加密为该加密文本的一个块的明文的一个当前块。图1示出了一个基于该CBC方法实施加密处理的典型电路。
对要加密的数据以预定的单元进行分块,每一个单元都具有16字节的典型大小。将第一块提供给“异或”电路11-1,将第一块后的第二块提供给“异或”电路11-2,将第二块后的第三块提供给“异或”电路11-3,等等。这样,顺序地将该明文的数据块提供给N级的“异或”电路11-1至11-N,其中N是一个预定的数。
将该“异或”电路11-1输出的第一块提供给一个加密单元12-1。该加密单元12-1利用一个密钥Ek对提供到那的第一块进行加密。这样,第一块加密了。
将该加密单元12-1输出的加密的第一块也提供给“异或”电路11-2,以实现对该第一加密的第一块和该第二明文块进行一个“异或”处理。将该“异或”处理的结果提供给加密单元12-2,以利用该密钥Ek加密该结果。
如上所述,在一个采用CBC方法的加密处理过程中,对一个明文的加密后的紧挨在前的块以及在该紧挨在前的块之后的当前块进行“异或”处理,以得到一个结果,然后使用一个预定密钥进行加密处理。于是对该加密结果结合在当前块之后的一个块来执行“异或”处理。这样,在将一个块在链接到一个紧接其后的块之前,将其链接到一个紧挨在前的块。
该第二和随后的块,对其每一个都结合加密的紧挨在前的块来执行“异或”处理。然而,由于没有块在该第一块之前,没有块能够结合该第一块执行“异或”处理。因为这个原因,在该进行加密处理的电路的配置中,对该第一块结合一个初始化向量IV来执行“异或”处理。
接下来,参考图2来说明在完成采用CBC方法的解密处理的电路。
如上所述进行加密了的数据以预定的单元进行分块,每一个单元具有16字节的典型大小。将该第一块提供给一个解密单元22-1,将在该第一块之后的第二块提供给一个解密单元22-2,将在该第二块之后的第三块提供给一个解密单元22-3,等等。这样,将该加密的文本的数据块提供给N级的解密单元22-1至22-N,其中N是一个预定的数。
每一个解密单元22-1至22-N,通过使用一个密钥Dk,对提供到那里的一个数据块进行解密。由该解密单元22-1至22-N输出的数据块提供给分别与解密单元22-1至22-N相关的“异或”电路21-1至21-N。,“异或”电路21-2至21-N中的每一个还分别接收一个提供给在该“异或”电路21-2至21-N之前一级的解密单元22-1至22-N-1中的一个的数据块。
如前所述,在一个采用CBC方法的解密处理中,对一个加密的文本的一个加密了的紧挨在前的块,以及在该紧挨在前的块之后的一个已完成解密处理的当前块进行“异或”处理,以便给出该当前块的最终解密结果。
分别由该第二和随后的解密单元22-2至22-N输出的第二和随后的块,每一个都结合加密的紧挨在前的块执行“异或”处理。由于没有加密的块在由该第一解密单元22-1输出的第一块之前,所以没有加密的在前块能够结合由该第一解密单元22-1输出的第一块执行“异或”处理。因为这个原因,在完成解密处理的电路的配置中,由该第一解密单元22-1输出的第一块结合一个初始化向量IV执行“异或”处理。
为获得有关上述加密和解密处理的更多信息,可参考专利文献1,即专利No.3252706的说明书。
如上所述,在一个采用CBC方法的加密处理中,一个初始化向量IV被加到该第一块,因为没有块在第一块之前。然而,如果不对该第一块加任何东西,即不将该初始化向量IV加到该第一块,该第一块就在该“异或”处理之后的级中被加密。但是,这样就引发了下面的问题。
例如,考虑以电子邮件为例的情况。该电子邮件的格式是这样的一个模式,包括一连串的地址、发送者、主题、以及正文。当加密具有这样的模式的明文数据时,作为加密结果获得的数据自身也是一个模式的数据。通过注意这种模式,充当攻击者的第三方能够将加密的文本进行解密以产生该明文的一部分。
为了解决上述问题,需要将具有一个模式的明文加密为不具有模式的加密文本的加密数据。为了产生不具有模式的加密文本,通过加入初始化向量IV来完成加密处理。通过导入一个附加的初始化向量IV在甚至具有模式的明文的块上执行加密处理,产生没有相同模式的加密文本。从而,难以对该加密文本进行解密。另外,通过在一个加密过程中加入一个初始化向量,该加密处理能够展现出避免错误行为的影响。这种错误行为的一个实例是推测在对具有巨大数量的数据进行加密中作为唯一密钥使用的加密密钥。
因为上述原因,在许多情况中,提供一种配置,在其中在对初始化向量IV和第一块执行加密处理之前将该初始化向量IV加到该第一块。
顺便指出,在某些情况中,在数据的传输之前,在用于该数据的加密的会话密钥生成之前,用于从预定记录介质中读取该数据的驱动器和用于从该驱动器接收该数据的主机互相验证。主机的一个实例是个人电脑。在这样的情况下,可以采用上面描述的CBC方法。在这种情况下,通过适当地更新该初始化向量IV,将很难识别到该明数据是具有特殊模式的数据。另外,也能够防止该数据被替换或窜改。
至于该驱动器和该主机互相验证的情况,例如,以一个初始化向量IV加上内容数据的形式来生成数据。然后,从一个内容密钥和该初始化向量IV得出一个加密密钥。最后,将该加密密钥作为加密该内容数据的密钥来使用。
然而,通过将一个具有16字节的典型大小的初始化向量IV加到从上述记录介质中读出的内容数据,会对具有2048字节的PC驱动器接口带来具有2064字节的典型大小的特殊扇区,导致一个不同于标准的格式。结果,加入该初始化向量IV引起与该PC的环境的兼容性差的问题,其中,这归于不能使用普通ATAPI设备驱动程序的事实。为了解决与该PC环境的兼容性差的问题,需要将软件和硬件配置改为专用的,这引起了其它问题,例如成本上的增加,保持兼容性的困难以及需要更多时间来完成处理。
发明内容
因此本发明的一个目标是针对上述问题来增强保密性,即使使用尽可能多的现有组件。
根据本发明的一个方面,提供一种信息处理装置,它包括:
一个信息采集单元,用于从一个请求将数据写到预定的记录介质的操作的命令或一个请求从该预定记录介质中读出数据的操作的命令里获取预定的信息;
一个初始化向量生成单元,用于从由该信息采集单元获取的信息中生成一个初始化向量;以及
一个加密/解密执行单元,用于通过使用由该初始化向量生成单元生成的初始化向量和一个预定的密钥,对数据进行加密或解密。
可以用一个在其中由该信息采集单元获取的预定信息是LBA(逻辑块地址)的配置来实现该信息处理装置。
还可以用一个进一步具有一个用于生成随机数的随机数生成单元的配置来实现该信息处理装置,其中该初始化向量生成单元从由该信息采集单元获取的信息以及由该随机数生成单元生成的随机数中生成一个初始化向量。
该初始化向量生成单元通常能够采用一个由该随机数生成单元生产的随机数和一个值进行“异或”逻辑和的方法,以生成一个初始化向量IV,其中,该值包括一个LBA和一个填充器,该填充器用于补偿与该由初始化向量生成单元生成的初始化向量相比该LBA的一个字长的不足。作为一个用该填充器来填补一个字长的不足方法,就可以采用基于LBA拼接的方法或应用散列函数的方法。作为生成一个随机数的方法,就可以采用生成具有与初始化向量IV相同字长的随机数并且实际上使用该随机数的方法,或通过经由一个散列函数来传递该数来生成一个随机数的方法。
根据本发明的另一方面,提供一种控制方法,用于控制至少一个在其上安装了预定的记录介质的介质安装装置,或一个连接到该介质安装装置的装置,以作为一个用于控制与该介质安装装置进行数据交换的控制装置。由本发明提供的该控制方法包括:
一个信息采集步骤,从一个请求将数据写到预定的记录介质的操作的命令或一个请求从该预定记录介质中读出数据的操作的命令里获取预定的信息;
一个初始化向量生成步骤,从由该信息采集步骤执行的处理中获取的信息生成一个初始化向量;以及
一个加密/解密执行步骤,通过使用由该初始化向量生成步骤执行的处理中生成的初始化向量和一个预定的密钥,对数据进行加密或解密。
根据本发明的进一步的方面,提供一个用于控制至少一个在其上安装了预定的记录介质的介质安装装置的控制装置的程序,或一个连接到该介质安装装置的装置,以作为一个控制与该介质安装装置进行数据交换的装置的程序。由本发明提供的程序包括:
一个信息采集步骤,从一个请求将数据写到预定的记录介质的操作的命令或一个请求从该预定记录介质中读出数据的操作的命令里获取预定的信息;
一个初始化向量生成步骤,从由该信息采集步骤执行的处理中获取的信息生成一个初始化向量;以及
一个加密/解密执行步骤,通过使用由该初始化向量生成步骤执行的处理中生成的初始化向量和一个预定的密钥,对数据进行加密或解密。
一种由本发明提供记录介质能够用于存储上述程序。
在由本发明提供的信息处理装置中,该信息处理装置采用的控制方法,以及规定该控制方法的程序,包括在一个命令中的信息用来生成一个要用在数据的加密或加密处理中的初始化向量,其中该命令在一个预定的记录介质上所完成操作的执行中发出。
根据本发明,可以提高保密性。
特别地,根据本发明,可以提高主机和驱动器之间的传输线的保密性。
另外,为了提高保密性,不必在该主机的OS(操作系统)上中继。从而有可能避免这样的问题,例如为提高保密性而导致成本增加或麻烦的处理。
附图说明
图1是示出一个用于实现采用CBC(Ciper Block Chaining)方法的加密处理的电路的配置的框图;
图2是示出一个用于实现采用该CBC方法的解密处理的电路的配置的框图;
图3是示出一个由本发明提供的实现记录/再现装置的实施例的配置的框图;
图4是示出一个再现单元的配置的框图;
图5是一个说明图,示出了在盘状记录介质上记录的数据的结构;
图6是一个说明图,示出了在该盘状记录介质上一个用户数据区域的配置;
图7是一个说明图,示出了一个命令的数据结构;
图8是一个说明图,示出了一个LBA(逻辑块地址)和扇区数据之间的关系;
图9示出了在由该再现单元完成的操作的说明中所参考的时序图;
图10是一个说明图,示出了在由驱动器完成的加密处理中的数据流;
图11是示出一个加密单元的详细配置的框图;
图12是一个说明图,示出了在由主机完成的解密处理中的数据流;
图13是示出一个解密单元的详细配置的框图;
图14是示出一个记录单元的配置的框图;
图15是一个说明图,示出了在由主机完成的加密处理中的数据流;
图16是一个说明图,示出了在由驱动器完成的解密处理中的数据流;
图17是示出一个初始化向量生成单元的典型配置的框图;
图18是示出该再现单元的另一个典型配置的框图;
图19是示出该记录单元的另一个典型配置的框图;
图20是示出该再现单元的一个进一步的典型配置的框图;
图21是示出该记录单元的一个进一步的典型配置的框图;
图22是示出该再现单元的更进一步的一个配置的框图;
图23示出了在由该再现单元完成的其它操作的说明中所参考的时序图;
图24示出了在由该再现单元完成的进一步操作的说明中所参考的时序图;
图25是示出在该再现单元的一个更进一步的配置的框图;
图26示出了在由该再现单元完成的更进一步的操作的说明中所参考的时序图;
图27示出了在由该再现单元完成的更进一步的操作的说明中所参考的时序图;
图28示出了在由该再现单元完成的更进一步的操作的说明中所参考的时序图;
图29是示出该初始化向量生成单元的一个详细配置的框图;
图30是示出该初始化向量生成单元的另一个详细配置的框图;
图31是示出该初始化向量生成单元的一个更详细配置的框图;
图32示出了在涉及会话密钥的处理的说明中所参考的一个流程图;
图33示出了在涉及会话密钥的处理的说明中所参考的流程图的延续部分;
图34是示出该记录单元的一个更进一步的典型配置的框图;
图35是示出该记录单元的一个更进一步的典型配置的框图;
图36是示出该再现单元的一个更进一步的配置的框图;
图37是示出该记录单元的一个更进一步的典型配置的框图;
图38是示出该再现单元的一个更进一步的配置的框图;
图39是示出该记录单元的一个更进一步的典型配置的框图;以及
图40示出了在由该再现单元完成的更进一步的操作的说明中所参考的时序图。
具体实施方式
在说明本发明的实施例之前,对在该说明书中描述的发明和实施例之间的关系举例说明如下。下面的说明仅仅证实这样的事实,支持在说明书中解释的发明的实施例将在说明书中给予描述。从而,即使与发明对应的实施例会没有在说明书中描述,没有在本说明书中描述该实施例的事实并不意味着这个实施例不与本发明相应。相反地,在本说明书中描述了的实施例作为与在本说明书中描述的与一个具体发明相应的实施例的事实,并不意味着这个实施例不与除该具体发明以外的发明相应。
另外,下面的说明不是预期用来覆盖说明书中所描述的所有发明。换句话说,即使下面的说明覆盖了在本说明书中解释的发明,下面的说明也不否认在本申请中没有要求的发明的存在。也就是说,下面的说明不否认可能在单独的申请中要求的发明的存在,该单独的申请是作为修改来描述的或在是将来增加的。
一个由本发明提供的信息处理装置(例如驱动器31或主机32,都在图3中示出了)包括:
一个信息采集单元(例如图4中所示的LBA提取单元161),用于从一个请求将数据写到预定的记录介质上的操作的命令(例如一个写命令104)或一个请求从该预定记录介质读出数据的操作的命令(例如一个读命令102)获取预定的信息;
一个初始化向量生成单元(例如图4中所示的初始化向量生成单元92),用于从由该信息采集单元获取的信息中生成一个初始化向量;以及
一个加密/解密执行单元(例如图4中所示的解密单元91),用于通过使用由该初始化向量生成单元生成的初始化向量和一个预定的密钥,对数据进行加密或解密。
可以用一个在其中由该信息采集单元获取的预定信息是LBA(逻辑块地址)的配置来实现该信息处理装置。
也可以用一个进一步具有一个用于生成随机数的随机数生成单元(例如图18中所示的随机数生成单元24)的配置来实现该信息处理装置,其中该初始化向量生成单元从由该信息采集单元获取的信息以及由该随机数生成单元生成的随机数中生成一个初始化向量。
可以用一个在其中该初始化向量单元使用经由图30中所示的散列处理单元451所执行的散列函数处理的随机数的配置,来实现该信息处理装置。
由本发明提供一种控制方法是一种控制方法,用于控制至少一个在其上安装了预定的记录介质的介质安装装置(例如图3中所示的驱动器31),或一个连接到该介质安装装置的装置,以作为一个用于控制与该介质安装装置进行数据交换的控制装置(例如图3中所示的主机32)。由本发明提供的该控制方法包括:
一个信息采集步骤(例如图9中所示的时序图的步骤S42),从一个请求将数据写到预定的记录介质的操作的命令或一个请求从该预定记录介质读出数据的操作的命令中获取预定的信息;
一个初始化向量生成步骤(例如图9中所示的时序图的步骤S42),从由该信息采集步骤中执行的处理中获取的信息生成一个初始化向量;以及
一个加密/解密执行步骤(例如图9中的时序图的步骤S45),通过使用由该初始化向量生成步骤执行的处理中生成的初始化向量和一个预定的密钥,对数据进行加密或解密。
由本发明提供的一个程序是一个用于控制至少一个在其上安装了预定的记录介质的介质安装装置的控制装置的程序,或一个连接到该介质安装装置的装置以作为控制与该介质安装装置进行数据交换的控制装置的程序。由本发明提供的程序包括:
一个信息采集步骤(例如图9中所示的时序图的步骤S42),从一个请求将数据写到预定的记录介质的操作的命令或一个请求从该预定记录介质读出数据的操作的命令中获取预定的信息;
一个初始化向量生成步骤(例如图9中所示的时序图的步骤S42),从由该信息采集步骤中执行的处理中获取的信息生成一个初始化向量;以及
一个加密/解密执行步骤(例如图9中所示的时序图的步骤S45),通过使用由该初始化向量生成步骤执行的处理中生成的初始化向量和一个预定的密钥,对数据进行加密或解密。
该程序可以记录在一个记录介质上。
下面将参考附图来说明本发明的实施例。
图3示出了实现本发明所提供的一个系统的一个实施例的配置。图3中所示的系统是一个能够完成记录和再现处理的记录/再现装置。在图3中未示出的记录介质安装在同一张图里示出的系统上。该记录/再现装置具有一个配置,其包括一个用于将预定的数据从该安装好的记录介质中读出和将该数据写入到其中的驱动器31,以及用于处理(控制)从该介质读出的数据和将要写入到该介质上的数据的主机32。
该记录介质可以设想是盘状记录介质中的一种,该盘状记录介质包括CD-ROM(光盘只读存储器)、CD-R(可录光盘存储器)、CD-RW(可重写光盘存储器)、DVD-R(可录数字多功能盘)、DVD-RW(可重写数字多功能盘)、DVD+R(数字多功能盘+可录)、DVD+RW(数字多功能盘+可重写)、DVD-RAM(数字多功能盘-随机存取存储器)以及蓝光盘。另外,这些盘状记录介质不会限制本发明的申请范围。也就是说,本发明的申请范围包括每一个具有其它配置,例如另一种记录方法和另一种形状的记录介质。
以通过一个预定的接口来交换数据的这样的方法来相互连接驱动器31和主机32。例如,可以采用ATAPI(AT附加封装接口(Advanced TechnologyAttachment with Package Interface)作为该预定的接口。ATAPI是一种接口,其遵循将除硬盘之外的其它外围设备连接到IDE(集成驱动器电子设备(Integrated Drive Electronics))或ATA(AT辅助设备(AT Attachment))接口的数据传送方法。例如,通过将从SCSI接收到的一个命令分组,并将分组的命令传递给该IDE接口,使得该ATAPI执行对该外围设备的控制。相同的命令分组也可应用于一个物理接口,例如USB(通用串行总线(Universal SerialBus))或IEEE1394接口。除了硬盘之外的外围设备的一个例子是CD-ROM驱动器。
首先,驱动器31具有一个验证处理单元51,而主机32包括一个验证处理单元81。验证处理单元51和验证处理单元81完成相互验证处理。
图3中所示的再现单元41,作为一个从预定的介质读出数据的单元,包括一个加密单元61、一个初始化向量生成单元62、一个介质读处理器63、一个解密单元91以及一个初始化向量生成单元92。该加密单元61、该初始化向量生成单元62以及该介质读处理器63包括在该驱动器31中,而该解密单元91和该初始化向量生成单元92包括在该主机32中。
该再现单元41的驱动器方面的配置说明如下。如上所述,该驱动器方面的配置包括加密单元61、初始化向量生成单元62以及介质读处理器63,这些单元是包括在该驱动器31中的。加密单元61接收从该记录介质读出的扇区数据71和来自该验证处理单元51的密钥Ks。密钥Ks是用于加密处理的密钥。另外,该加密单元61也接收来自该初始化向量生成单元62的初始化向量IV(初始化向量(Initializationvector))。在下文中引用IV作为初始化向量IV。
通过使用该密钥Ks和该初始化向量IV,该加密单元61对该扇区数据71进行加密,将该加密的结果提供给在主机32中使用的解密单元91。从而,由该驱动器31提供给该主机32的数据是加密数据。
通过使用包括在从主机32接收到的一个读出命令102中的预定的数据,该初始化向量生成单元62生成一个将要提供给该加密单元61的初始化向量IV。随后将说明生成一个初始化向量IV的过程的细节。
要注意,该加密单元61具有一个配置,该配置包括如图1中所示的该“异或”电路11和该加密单元12的组合。由于该组合已经解释过了,所以在下面的说明中将不再重复说明,以避免重复。因此,该初始化向量生成单元62生成一个将要提供给图1中所示的“异或”电路11-1的初始化向量IV。另一方面,将从该验证处理单元51接收到的密钥Ks提供给该加密单元12-1至12-N。
出于同样的原因,在该主机32中使用的加密单元93也具有如图1中所示的配置。
另一方面,在主机32中使用的解密单元91通过一个接口接收由驱动器31提供的加密扇区数据71。通过使用从该验证处理单元81接收到的密钥Ks和从该初始化向量生成单元92接收到的初始化向量IV,该解密单元91来对该加密扇区数据71进行解密,以生成与从该记录介质读出的扇区数据71相同的扇区数据101。该初始化向量生成单元92主要通过完成与该初始化向量生成单元62相同的处理来生成一个初始化向量IV。也就是说,初始化向量生成单元92主要通过使用包括在该读命令102中的预定的数据来生成一个初始化向量IV。
要注意,该解密单元91具有一个配置,包括如图2中所示的“异或”电路21和解密单元22的组合。由于已经解释过了该组合,下面的说明中将不再重复说明,以避免重复。因此,该初始化向量生成单元92生成一个将要提供给如图2中所示的“异或”电路21-1的初始化向量IV。另一方面,将从该验证处理单元81接收到的密钥Ks提供给该解密单元22-1至22-N。
出于同样的原因,在驱动器31中使用的解密单元64也具有图2中所示的配置。
接下来,说明图3中所示的记录单元42的配置。用于将数据记录到一个预定记录介质上的记录单元42包括解密单元64、初始化向量生成单元65、介质写处理器66、加密单元93以及初始化向量生成单元94。该解密单元64、该初始化向量生成单元65以及该介质写处理器66包括在驱动器31中,而该加密单元93和该初始化向量生成单元94包括在主机32中。
将要记录到安装在驱动器31中的记录介质上的扇区数据103提供给在该记录单元42中使用的加密单元93。另外,该加密单元93也接收来自验证处理单元81的密钥Ks和来自初始化向量生成单元94的初始化向量IV。通过使用该密钥Ks和该初始化向量IV,加密单元93对扇区数据103进行加密,将该加密的结果提供给在驱动器31中使用的解密单元64。
在主机32中,初始化向量生成单元94生成将要提供给加密单元93的初始化向量IV。说的详细些,该初始化向量生成单元94通过使用包括在写命令104中的数据来生成初始化向量IV。
也将该写命令104提供给在驱动器31中使用的介质写处理器66。当接收该写命令104的时候,该介质写处理器66控制一个操作来将该扇区数据103写到安装在驱动器31上的记录介质上。不用说,也将该写命令104提供给在驱动器31中使用的初始化向量生成单元65。
很像初始化向量生成单元94,初始化向量生成单元65通过使用包括在该写命令104中的预定的数据来生成一个初始化向量IV,并将该初始化向量IV提供给该解密单元64。该解密单元64不仅接收来初始化向量生成单元65的初始化向量IV,而且接收来自主机32的扇区数据103和来自该验证处理单元51的密钥Ks。
通过使用从验证处理单元51接收的密钥Ks和从初始化向量生成单元65接收的初始化向量IV,该解密单元64对该加密扇区数据103进行解密,以生成与扇区数据103相同的扇区数据72,以在介质写处理器66执行的控制下写到未在该图中示出的记录介质上。
顺便说说,图3中所示的每一个组件都可以通过硬件或软件来实现。
下面的描述说明了若干实施例的每个实现了该初始化向量生成单元,以及由该初始化向量生成单元采用的用来生成初始化向量IV的技术。首先,说明第一实施例。图4示出了该再现单元41的详细配置。在图4中,与图3中所示的相同的组件将使用与图3中所使用的相同的附图标记来表示,而对它们的说明也被适当省略了以避免重复。而且对于其它附图,与图3中所示的相同的组件都使用与图3中所使用的相同的附图标记来表示,而对它们的说明书也被适当省略了以避免重复。
在图4中所示的驱动器31具有一个配置,其中,从该记录介质读出的一个PSN(物理扇区号)被提供给一个用于将该PNA转换为一个LBA的PSN/LBA转换单元121,其中LBA是逻辑块地址的缩写。通常,一个逻辑块地址包括在一个读命令102中,充当一个驱动器31和主机32的共用地址。从而,使得主机32能够指定存储在该介质中的数据的逻辑块地址,而不用知道该数据在该记录介质上的物理地址。读命令102包括一个LBA,它是该记录介质上的一个位置的逻辑地址。数据的LBA不是该数据在该记录介质上存储的位置的真实物理地址。该PSN/LBA转换单元121完成将从该记录介质读出的作为表示物理地址的PSN的一个PSN,转换为一个驱动器31和主机32都知道的逻辑地址。
该驱动器31的配置也包括一个缓冲/传送处理单元122,用于完成将由加密单元61加密的扇区数据71临时存储在一个缓冲器中的处理,并将该扇区数据71从该缓冲器传送到主机32。通过将该缓冲/传送处理单元122包括在该配置中,通常可以在实际接收到一个读命令102之前,完成预读操作以从该记录介质读数据。
在使得预读操作可以完成的配置中,由主机32发出的作为从该记录介质读出数据的操作的请求的读命令102,可以通过承受实际可以忽略不计的时间来访问该驱动器31中的记录介质而被执行,这是因为该数据已经缓冲在该缓冲/传送处理单元122中。也就是说,可以提高连续读速度。
驱动器31也使用一个用于处理从主机32接收的读命令102的读命令处理器123。在这种配置中,该读命令处理器123将该处理的结果提供给缓冲/传送处理单元122以及介质读处理器63。
主机32具有一个配置,它包括一个用于从读命令102中提取LBA并将该LBA提供给初始化向量生成单元92的LBA提取单元161。图4中所示的再现单元41具有一个配置,其中,从包括在读命令102中的LBA生成初始化向量IV。
下面的描述说明从中读出扇区数据71和该扇区数据71的PSN 141的一个记录介质。图5是一个说明图,示出了记录在一个盘状记录介质上的数据的结构。如图5所示,盘180的记录区域包括一个在最里面的圆周上的导入区域181,一个包围该导入区域181的用户数据区域182以及一个包围该用户数据区域182的导出区域183。
代表只读记录介质的DVD-ROM盘的物理规格说明在“ECMA-267:120mm DVD-Read Only Disk”中进行了规定。根据这些规格说明,PSN记录在每个具有2KB长的扇区数据的首标。
代表可重写记录介质的DVD+RW盘的物理规格说明在“ECMA-337:DataInterchange on 120mm and 80mm Optical Disk Using+RM Format Capacity 4,7and 1,6GB per Side”中进行了规定。根据这些规格说明,提供一种机制,在其中未记录的盘上的PSN是记录在ADIP(Address in Pre-groove)中的,并且,在将具有2KB大小的扇区数据写到一个盘上的操作中,与记录在该ADIP上的那个相同的PSN也记录在该扇区数据的首标,以便建立与该DVD-ROM兼容性。
根据DVD的规格说明,该导入区域181在02FFFFh的PSN结束,而该用户数据区域182从030000h的PSN开始。03000h的PSN被定义为000000h的LBA。作为由该PSN/LBA转换单元121采用的地址转化方法,在INCITST10 WORKING DRAFT的题为“MultiMedia Command Set-4(MMc-4)”中描述了用于多种光盘介质的方法。
用户数据区域182用作一个用于记录内容本身的区域。该内容包括音频数据、静止图像数据、视频数据道以及游戏数据。用户可以高自由度写入和读出的扇区数据71是在该用户数据区域182中的扇区数据。导出区域183作为一个位于用户数据区域182外端的区域。
构成盘180的记录区域的导入区域181、用户数据区域182以及导出区域183,每个都包括如图6所示的单元,该单元每一个包括一个扇区首标191和扇区数据192。该扇区首标191是具有18字节大小的信息,而该扇区数据192是具有2048字节大小的数据。若干每个包括一个扇区首标191和一个扇区数据192的组合,记录在导入区域181、用户数据区域182以及导出区域183中的每一个中。
从这种盘180读出的数据被提供给驱动器31。主机32将像图7中所示的那样的命令传送到驱动器31,以控制驱动器31。在INCITS T10 WORKINGDRAFT的题为“MultiMedia Command Set-4(MMC-4)”中描述了该命令的细节。图7中所示的命令具有与读命令102和写命令104相同的格式。下面将描述作为在下述说明中引用的信息的在图7中所示的命令中所包括的一些字段。
操作码是一个指示该命令是读命令102还是写命令104的代码。从而,通过引用该操作码,从主机32接收该命令的驱动器31能够确定该命令是读命令102还是写命令104。该操作码是具有1字节长度的字段。
在一个读命令102中指定的逻辑块地址是一个区域的起始逻辑地址,数据将从该区域读出。另一方面,在该写命令104中指定的逻辑块地址是一个区域的起始逻辑地址,数据将写入到该区域上。该逻辑块地址是具有4字节长度的字段。
就一个读命令102来说,传送长度是将要从中读出数据的扇区数。另一方面,就一个写命令104来说,传送长度是将要写入数据的扇区数。该传送长度是具有4字节长度的字段。
在这个实施例中,一个初始化向量IV从读命令102和写命令104中的一个中生成,其每一个都具有上述的字段。
参考图8来说明该LBA和该扇区数据之间的关系。如上所述,该LBA包括在一个读命令102和一个写命令104中。就一个读命令102来说,逻辑地址是一个区域的起始逻辑地址,数据将从该区域读出。驱动器31在(起始LBA+0)读出数据作为第一扇区数据并将该数据传送给主机32。假定包括在该读命令102中的传送长度是3。在该情况下,驱动器31通过在(起始LBA+1)读出数据作为第二扇区数据来继续该读操作,并将该数据传送给主机32。最后,驱动器31在(起始LBA+2)读出数据作为第三扇区数据并将该数据传送给主机32,结束该读命令102的执行。
由于从盘180读出的数据是图6中示出的扇区数据192,所以字节数是2048。如上所述,在这个配置中,一个LBA指定具有2048字节大小的扇区数据的第一段,而该传送长度指定这种扇区数据的段数。
首先,通过参考图9中示出的时序图,下面的描述概要地说明了由图4所示的再现单元41完成的处理。在步骤S11和S41,主机32和驱动器31分别互相验证。如果该互相验证过程正常结束,就在下一步骤执行对段的处理。作为该互相验证过程的结果,在驱动器31中使用的验证处理单元51和在主机32中使用的验证处理单元81生成一个共享密钥Ks。
在步骤S12,主机32发出一个具有图7所示的格式的读命令102。在这个命令中,该LBA设定为#1而该传送长度设定为3。当然,该操作码设定为一个指示这个命令是读命令102的值。
将字段定为上述这些值的读命令102提供给该LBA提取单元161。在该情况下,该LBA提取单元161提取LBA#1,并将该LBA提供给初始化向量生成单元92。该初始化向量生成单元92通过使用该LBA#1或数据#1生成一个初始化向量IV。这里的说明不超出仅仅说通过使用该LBA#1或数据#1而使该初始化向量生成单元92生成一个初始化向量,这是因为后面将会说明生成初始化向量的细节。
在步骤S42,在步骤S12所完成的处理中发出的读命令102也提供给驱动器31使用的读命令处理器123。该读命令处理器123参考提供到那里的命令的操作码,并将该命令识别为一个读命令102。然后,读命令处理器123参考该读命令102的逻辑块地址来将#1识别为该LBA。最后,读命令处理器123参考该读命令102的传送长度来找出该传送长度是3。
随后,读命令处理器123将该传送起始LBA#1和该传送长度3传送给缓冲/传送处理单元122。基于该传送起始LBA#1和该传送长度3,缓冲/传送处理单元122将要传送的扇区数设定为3,并将该传送的开始端设定为LBA#1。
另外,读命令处理器123也将该传送起始LBA#1提供给该介质读处理器63。该介质读处理器63控制从该记录介质读出数据的处理。在该控制的执行中,通过执行在该图中未示出的一个LBA/PSN过程,该介质读处理器63获取一个对应于在该读命令102中指定的LBA的PSN。
也就是说,将读命令102中指定的读LBA转换为一个PSN。该读LBA是用于记录从像图5示出的盘180那样的记录介质中所读出的数据的一个逻辑扇区或一组逻辑扇区的LBA。
在驱动器31中将读命令102中指定的读LBA转换成一个PSN,这是因为下面的原因。首先,像光盘这样的记录介质的记录区域是分成预定大小的物理扇区的,其每一个都被分配给一个逻辑扇区。第二,像主机32这样的外部装置指定一个将要从中读出数据或向其写入数据的逻辑扇区(或一个LBA),而驱动器31从一个分配给逻辑扇区的物理扇区(或一个PSN)中读出数据或将数据写入其中。
要注意,该盘180的用户数据区域182的物理扇区,是通过把一个具有某一物理扇区编号的物理扇区当作一个参考,顺序分配给具有顺序逻辑扇区编号的逻辑扇区的。该盘180的用户数据区域182是对用户有效的区域。一种用于地址转换的典型方法在INCITS T10 WORKING DRAFT的题为“MultiMedia Command Set-4(MMC-4)”中描述了。
在该LBA转换为PSN之后,在步骤S43执行的处理中,在该记录介质中搜索作为地址转换结果获得的PSN所指向的位置。然后,执行该处理,以将一个拾取头移至搜索该记录介质所产生的位置。在该记录介质上的位置是一个将要从中读出数据的位置。
在步骤S92,在LBA#1记录的数据被从该记录介质中读出。在该情况下,从LBA#1读出物理扇区数据#1作为扇区数据71。然后,在步骤S44,将从该记录介质读出的扇区数据71提供给该加密单元61,而同时,将用于该扇区数据71的PSN 141提供给PSN/LBA转换单元121。
将由PSN/LBA转换单元121输出的LBA提供给初始化向量生成单元62,该初始化向量生成单元62通过使用该LBA生成初始化向量IV。同时,也将该LBA提供给缓冲/传送处理单元122,该缓冲/传送处理单元122然后准备从该加密单元61接收该LBA的扇区数据71。
加密单元61也接收来自该验证处理单元51的密钥和来自该初始化向量生成单元62的初始化向量IV。通过使用该密钥和该初始化向量IV,加密单元61对该扇区数据71进行加密。在步骤S45执行的处理中,经由缓冲/传送处理单元122将该加密扇区数据71提供给在主机32中使用的解密单元91。在图9中所示的时序图中,该加密扇区数据71被认为是加密扇区数据#1。
通过使从验证处理单元81接收的密钥Ks和从该初始化向量生成单元92接收的初始化向量IV,解密单元91对该加密扇区数据71进行解密以生成扇区数据101,将这样生成的扇区数据101提供给未在该图中示出的应用软件、显示单元和扬声器中的任何一个。
此后,重复执行上述处理,以经由驱动器31将数据从该记录介质传送到主机32。更具体地,在步骤S93至S103执行的处理中,分别从该记录介质读出物理扇区数据#2至#12的部分。说的详细些,根据由驱动器31执行的搜索控制顺序地并连续地从该记录介质读出物理扇区数据#2至#12的部分,并将其提供给驱动器31。在步骤S46、S48和S50执行的处理中,驱动器31分别顺序地接收物理扇区数据#2至#4的部分,以根据主机32的请求将这些数据加密并将它们提供给主机32。
在步骤S15,驱动器31将由主机32在步骤S12请求的最后的扇区数据提供给主机32。该最后的扇区数据是图中所示的物理扇区数据#3。当主机32在步骤S15接收该最后的扇区数据的时候,在步骤S51,驱动器31向主机32发送命令结束状态。这是因为,在该情况下,该传送长度是设定为3的,而在即将执行步骤S15的处理的时候,三段扇区数据,也就是物理扇区数据#1、物理扇区数据#2以及物理扇区数据#3,已经从驱动器31发送到主机32了。因而,由驱动器31发送给主机32的命令结束状态通知主机32请求的数据已经发送或传送了。
要注意,尽管驱动器31将命令结束状态发送给主机32,驱动器31仍继续该操作,从该记录介质读出扇区数据段。从该记录介质读出的数据段顺序地由加密单元61加密并缓冲在缓冲/传送处理单元122中。
在步骤S16执行的处理中,主机32接收该命令结束状态。然后,在下一个步骤S17,主机32发出一个新的读命令102。在步骤S17发出的读命令102指定了一个LBA#4和一个传送长度3。响应一个这样的读命令102的要求,在步骤S55将在步骤S50中缓冲在缓冲/传送处理单元122中的物理扇区数据#4提供给主机32。
如上所述,当主机32发出一个读命令102的时候,重复处理以顺序地将由驱动器31从该记录介质读出的数据提供给主机32。在驱动器31中的步骤S50和随后的步骤中,以及在主机32中的步骤S18和随后的步骤中执行的对段的处理,基本上分别与在驱动器31中的步骤S44至S49和步骤S51中,以及在主机32中的步骤S13至S16中执行的对段的处理相同。由于在步骤S44至S49和步骤S51中,以及在步骤S13至S16中执行的对段的处理刚才已经说明了,所以适当省略该说明以避免重复。
再来参考图10说明由驱动器31执行的处理和在该处理中的数据流。首先,PSN/LBA转换单元121将具有4字节长度的一个LBA提供给初始化向量生成单元62。该初始化向量生成单元62通常使用一个散列函数将该LBA扩展为具有16字节大小的数据,并将该数据作为一个初始化向量IV输出。然后将该初始化向量IV提供给该加密单元61。
加密单元61也接收来自验证处理单元51的密钥Ks。从而,加密单元61接收该初始化向量IV和该密钥Ks。另外,加密单元61也接收具有2048字节大小的扇区数据作为要加密的数据。加密单元61对该具有2048字节大小的扇区数据进行加密,以产生缓冲在缓冲/传送处理单元122中的加密扇区数据。
如上所述,加密单元61接收具有2048字节大小的扇区数据,并对该扇区数据进行加密以产生加密扇区数据。例如,如果加密单元61采用一个CBC(密码块链接(Cipher Block Chaining))方法来对该扇区数据加密,那么,实际上将该扇区数据分成每个具有16字节长度的块单元,以块为单位进行加密和输出。
图11是一个框图,示出了该加密单元61的一个典型内部配置,以及在该加密单元61基于CBC方法加密数据的配置中的数据流。很像刚才通过参考图1说明的加密电路,该内部配置是若干每个都包括一个“异或”逻辑电路和一个加密单元的组合。从而,在下面的描述中,在图11中,与图1所示的加密电路中使用的对应物相同的组件使用与该对应物相同的附图标记来表示。
如图11中所示,具有2048字节长度的扇区数据被分为每个具有16字节大小的数据块。结果,该扇区数据被分为128个每个具有16字节大小的数据块。如刚才已经通过参考图1说明了,将该数据块提供给它们各自的“异或”逻辑电路11-1至11-128,并将由该“异或”逻辑电路11-1至11-128输出的数据段提供给它们各自的加密单元12-1至12-128。
作为加密的结果,加密单元12-1至12-128将加密扇区数据段输出到该缓冲/传送处理单元122。将由加密单元12-1至12-127输出的数据段分别提供给分别在加密单元12-1至12-127之后的级的“异或”电路11-2至11-128。然而,由于没有在该“异或”电路11-1之前的级的加密单元,所以没有数据从前一级提供给“异或”电路11-1。因此,在这内部配置中,将由初始化向量生成单元62生成初始化向量IV提供给该“异或”电路11-1。
由于提供的初始化向量IV包括一个在该读命令102中指定的作为一个扇区的LBA的LBA,因此每当发出一个读命令102的时候,就为在该读命令102中指定的LBA所指向的扇区生成一个初始化向量IV。例如,再次参考在图9中示出的时序图。在步骤S12由主机32发出的读命令102的LBA是#1,但步骤S17由主机32发出的读命令102的LBA是#4。因此,通过使用值#1而生成的初始化向量IV自然不同于通过使用值#4而生成的初始化向量IV。
另外,初始化向量IV不是通过按照原状使用LBA而生成的。而是,通过使用作为对一个LBA应用散列函数等等而得到的值,来生成初始化向量IV。说的更详细些,生成初始化向量IV是通过使用一个包含一个数据扩展随机数的“异或”逻辑和的向量生成来生成的。后面将会详细说明,这样,生成与以前的初始化向量IV相同的初始化向量IV的可能性可以降低。由于在这两次加密之一中使用的初始化向量IV不同于在另一次中使用的初始化向量IV,因此即使相同的扇区数据在不同的两次时间加密,加密的结果也将彼此不同。这是因为,生成与以前的初始化向量IV相同的初始化向量IV的可能性可以降低。另外,可使在加密之前的扇区数据免于由于对该加密数据解码而从加密数据中推断出来。
除此之外,通过从包括在一个读命令102中的参数来生成一个初始化向量IV,也可以避免不能再利用现有接口的问题。现有接口的例子是典型地以2048字节为单位执行处理的ATAPI设备驱动器和PC驱动器接口。也就是说,通过在初始化向量IV的生成中应用本发明,不用修改像ATAPI这样的现有接口的规格,就可以生成具有上述特征的初始化向量IV。
接下来,通过参考图12再来说明由主机32执行的处理以及在该处理中的数据流。首先,该LBA提取单元161从一个读命令102中提取具有4字节长度的LBA,并将该LBA提供给初始化向量生成单元92。通过通常采用的散列函数来扩展该LBA为一个具有16字节大小的数据,使该初始化向量生成单元92生成一个初始化向量IV。
该初始化向量生成单元92所采用的生成初始化向量IV的技术与在驱动器31中使用的初始化向量生成单元62所采用的技术基本相同。也就是说,例如,如果该初始化向量生成单元62通过使用一个散列函数来生成初始化向量IV,那么初始化向量生成单元92也通过使用一个散列函数来生成初始化向量IV。将由初始化向量生成单元92生成的初始化向量IV提供给解密单元91。
该解密单元91也接收来自该验证处理单元81的密钥Ks。这个密钥Ks与由在驱动器31中使用的验证处理单元51提供给加密单元61的密钥Ks是相同的。可以将在一个验证过程中生成的密钥用作该密钥Ks。
如上所述,将该初始化向量IV和该密钥Ks提供给该解密单元91。另外,该解密单元91也接收具有2048字节大小的加密扇区数据作为要解密的扇区数据。由该解密单元91输出具有2048字节大小的扇区数据作为解密的结果,并通常将其提供给未在该图中示出的应用软件和/或显示单元。
如上所述,该解密单元91接收具有2048字节大小的数据,解密该数据并输出解密的结果。类似加密单元61,通常,该解密单元91在该解密过程中采用CBC(密码块链接(Cipher Block Chaining))方法。在该情况下,该数据实际上被分为每个具有16字节长度的块单元被加密和以块为单位被输出。
图13是一个框图,示出了该解密单元91的一个典型内部配置,以及在该解密单元91基于CBC方法解密数据的配置中的数据流。很像刚才参考图2描述的解密电路,该内部配置是若干每个都包括一个“异或”逻辑电路和一个解密单元的组合。从而,在下面的说明中,在图13中,与在图2中所示的解密电路中使用的对应物相同的组件使用与该对应物相同的附图标记来表示。
如图13中所示,具有2048字节长度的加密扇区数据被分为每个具有16字节大小的数据块。结果,该加密扇区数据被分为128个每个具有16字节大小的数据块。如刚才已经参考图2进行了说明,将该数据块提供给它们各自的解密单元22-1至22-128,并将由该解密单元22-1至22-128输出的数据段提供给它们各自的“异或”电路21-1至21-128。
通常“异或”电路21-1至21-128将异或处理的结果作为扇区数据,输出到未在该图中示出的显示单元和/或另一个数据接收器。将提供给该解密单元22-1至22-127的数据块也分别提供给在该解密单元22-1至22-127之后的级的“异或”电路21-2至21-128。然而,由于没有在该“异或”电路21-1之前的级的解密单元,因此没有数据从前一级提供给“异或”电路21-1。因此,在这种内部配置中,将由初始化向量生成单元92生成的初始化向量IV提供给该“异或”电路21-1。
提供给该“异或”电路21-1的初始化向量IV与由驱动器31中使用的加密单元61所执行的加密过程中使用的初始化向量IV相同。这是因为该初始化向量生成单元62和该初始化向量生成单元92通过对从相同读命令102中提取的一个LBA采用相同的方法来生成初始化向量IV。因而,相同的初始化向量IV被提供给该加密单元61和该解密单元91。
接下来,通过参考图14来说明将数据写到该记录介质上的操作,在该图中示出了记录单元42的详细配置。在这个图中,和在图3中所示的对应物相同的组件使用与该对应物相同的附图标记来表示,并且它们的说明被适当省略以避免重复。
主机32具有一个包括一个附加LBA提取单元211的配置。该LBA提取单元211从一个写命令104中提取一个LBA,并将该LBA提供给初始化向量生成单元94。图14中所示的记录单元42具有一种配置,在其中初始化向量IV是从包括在一个写命令104中的LBA中生成。
LBA是一个表示要把数据写到记录介质上的哪个地址的逻辑地址。由于在一个写命令104中指定的LBA是一个在该记录介质上的逻辑地址,因而不是实际物理地址,驱动器31必须执行将该LBA转换为表示物理地址的PSN的处理。虽然这种将LBA转换为PSN的处理在该图中没有明确示出,但驱动器31具有一个包括用于执行该处理的介质写处理器66的配置。
该驱动器31的配置还包括一个附加缓冲/传送处理单元202。该缓冲/传送处理单元202临时缓冲从主机32接收的数据段,直到识别出指向要将该数据写入的扇区的一个LBA。同时,介质写处理器66执行处理,在该记录介质的记录区域中搜索一个由该LBA指向的位置。然后,随着由该解密单元64执行的过程的进行,顺序地将该数据段从该缓冲/传送处理单元202传送到解密单元64。该驱动器31还具有一个写命令处理器203。该写命令处理器203具有一个用于处理从主机32接收的写命令104的单元。作为该处理的结果,该写命令处理器203将指向该数据要写入的扇区中的第一个的LBA,以及一个表示这种扇区的数目的传送长度,提供给该缓冲/传送处理单元202和该介质写处理器66。
首先,通过参考图15,下面的描述说明由该主机32中使用的组件完成的处理,该组件与包括在图14中所示的记录单元42的配置中的组件相同。开始,该LBA提取单元211从一个写命令104中提取一个具有4字节长度的LBA,并将该LBA提供给该初始化向量生成单元94。通常,初始化向量生成单元94通过使用一个散列函数来将该LBA扩展为具有16字节大小的数据,并输出该数据作为初始化向量IV。然后将该初始化向量IV提供给该加密单元93。
该加密单元93还从验证处理单元81接收一个密钥Ks。从而,加密单元93接收该初始化向量IV和该密钥Ks。另外,该加密单元93还接收具有2,048字节大小的扇区数据作为要加密的数据。例如,要提供的扇区数据已经从该主机32中的一个记录装置中读取。加密单元93对该具有2048字节大小的扇区数据进行加密,以产生提供给驱动器31的加密扇区数据。
该用于完成这样的加密过程的加密单元93可以具有与刚才说明的加密单元61相同的配置。也就是说,该加密单元93可以具有图11中所示的配置。
接下来,通过参考图16来说明由该驱动器31对该加密数据实施的处理。首先,写命令处理器203从一个写命令104中提取一个具有4字节长度的LBA,并将该LBA提供给初始化向量生成单元65。通常通过使用一个散列函数来将该LBA扩展为具有16字节大小的数据,初始化向量生成单元65生成一个初始化向量IV。
由该初始化向量生成单元65采用的用以生成初始化向量IV的技术与在主机32中使用的初始化向量生成单元94所采用的技术基本相同。也就是说,例如,如果该初始化向量生成单元94通过使用一个散列函数来生成初始化向量IV,那么初始化向量生成单元65也通过使用一个散列函数来生成初始化向量IV。将由初始化向量生成单元65生成的初始化向量IV提供给解密单元64。
该解密单元64还从该验证处理单元51接收密钥Ks。这个密钥Ks与由在主机32中使用的验证处理单元81提供给加密单元93的密钥Ks是相同的。可以将在一个验证过程中生成的密钥用作该密钥Ks。
如上所述,将该初始化向量IV和该密钥Ks提供给该解密单元64。另外,该解密单元64还接收具有2048字节大小的加密扇区数据作为要解密的扇区数据。该解密单元64输出具有2048字节大小的扇区数据作为解密的结果,并通常将其提供给未在该图中示出的记录介质。
用于完成这样的解密过程的解密单元64可以具有与刚才说明的解密单元91相同的配置。也就是说,该解密单元64可以具有图13中所示的配置。
接下来,说明生成一个初始化向量IV的过程。在上述实施例中,通常通过应用一个散列函数,在一个读命令102或一个写命令104中指定的一个LBA的数据被用来生成一个初始化向量IV。在下面的描述中,更具体地说明生成一个初始化向量IV的过程。再次参考图3,显然,一个初始化向量IV是在4个组件中生成的,即初始化向量生成单元62、初始化向量生成单元65、初始化向量生成单元92以及初始化向量生成单元94。
这四个初始化向量生成组件采用相同的技术来生成初始化向量IV。把初始化向量生成单元62作为一个代表性的实例来说明该技术。
图17是一个框图,示出了该初始化向量生成单元62的一个典型的内部配置。图17中所示的初始化向量生成单元62具有一个包括一个SHA-1处理器221和一个截断单元222配置。首先,说明该SHA-1处理器221。该SHA是安全散列算法(Secure Hash Algorithm)的缩写。
该SHA已经由美国的NIST(国家标准技术研究所(National Institute ofStandard and Technology))开发了。SHA已经修订了几次。然后,在1995年,FIPS180-1作为该SHA的修订版本被颁布。SHA-1是该修订版本的俗名。该SHA的细节在由William Staring创作的题为“加密与网络安全(Encryption andNetwork Security)”出版物这样的参考文献中描述了。
如该名字所表示,SHA-1是一个用一个散列函数来完成处理的算法的名字。该处理输入一个具有任何字节长度的消息,并输出具有160位大小的消息摘要。然而,将该输入消息的长度限制到最大为N位,其中N是2的64次幂。
如上所述,由于SHA-1能够使用具有任何字节数的消息作为输入,例如,任何包括在一个ATAPI命令分组或任何逻辑格式信息中的数值可以用作一个输入。这里,如图17中所示,使用具有4字节长度的LBA作为用于基于SHA-1完成处理的SHA-1处理器221的一个输入。
如上所述,该SHA-1的处理输出一个具有160位或20字节大小的消息摘要。也就是说,在该情况下,SHA-1处理器221输出具有160位大小的数据。然而,作为初始化向量IV需要的数据是具有16字节大小的数据。因而,在该SHA-1处理器221之后的级提供一个截断单元222作为从该SHA-1处理器221输出的160位数据中提取128位(或16字节)的数据的单元。
由该截断单元222输出的数据是一个初始化向量IV。这样,包括该SHA-1处理器221和截断单元222的初始化向量生成单元62生成一个初始化向量IV。
上述生成初始化向量IV的过程只不过是个典型实施例,这并不限制生成初始化向量IV的技术。因此,通过参考图18和随后的图来说明除这典型实施例之外的实施例如下。
在通过参考图18和随后的图来说明的实施例中,除一个LBA之外,在生成初始化向量IV的过程中还用到了一个随机数。首先,说明通过使用一个随机数来生成初始化向量IV的处理的特征。
在刚才说明的一个实施例中,初始化向量IV是通过使用一个在读命令102或写命令104中指定的4字节的LBA来生成的。然而,由于该初始化向量IV具有16字节长度,因此该初始化向量IV采用一个方法而生成,该方法是通过将一个散列函数应用于该具有4字节长度的LBA以将该LBA扩展为具有16字节大小的数据。
顺便说说,一个LBA是分配给每个扇区的。因此,该初始化向量生成单元可以基于每个扇区的散列函数来完成初始化向量生成处理,其中,数据将要从该扇区读出或向其写入。相对频繁地执行基于散列函数的初始化向量生成处理,增加了由驱动器31和主机32承受的负载,可能会产生这种或那种的问题。例如,由于由该初始化向量生成单元执行生成初始化向量IV的处理,将数据写到记录介质上或从该记录介质读出数据所占用的时间长度可能增加。利用LBA的4字节长度的特征,可以采用一个方法,借此方法通过重复该LBA四次而将该LBA扩展为具有16字节长度的数据。然而,通过采用这种方法而生成的初始化向量IV比较容易推断,所以对于维持保密性来说该方法不能说是理想的。
在下述通过使用一个随机数来生成初始化向量IV的处理中,大量执行“异或”或逻辑加,与具有LBA的情况一样需要队每一个扇区进行费时的处理。因此,该过程只是花费相对少的时间的处理。结果,防止了该整个系统的处理速度的降低,并提高了保密性的级别。
图18是一个框图,示出了该再现单元41的一个典型配置,该配置用于初始化向量IV不仅是从一个LBA,而且还是从一个随机数生成的情况。另一方面,图19是一个框图,示出了该记录单元42的一个典型配置,该配置用于初始化向量IV不仅是使用一个LBA,而且还是使用一个随机数来生成的情况。在图18中所示的再现单元41所使用的组件当中,与在图4中所示的再现单元41中使用的对应物相同的组件使用与该对应物相同的附图标记来表示,并且为了避免重复而适当省略了它们的说明。出于同样的原因,在图19中所示的记录单元42所使用的组件当中,与在图14中所示的记录单元42中使用的对应物相同的组件使用与该对应物相同的附图标记来表示,并且为了避免重复而适当省略了它们的说明。下面的描述参考其它示出了该再现单元41和该记录单元42的典型配置的图。同样地,在其它图中示出的组件,与刚才所解释的它们的对应物相同的使用与该对应物相同的附图标记来表示。另外,相同组件的说明也同样适当地省略了,以避免重复。
在图18和19中分别示出的该再现单元41和该记录单元42的配置中,随机数是由驱动器31中使用的组件生成的。
更具体些,图18中所示的再现单元41包括一个随机数生成单元241,用于生成一个随机数以在驱动器31中生成一个初始化向量IV。将由该随机数生成单元241生成的初始化向量IV提供给在该驱动器31中使用的初始化向量生成单元242以及在主机32中使用的初始化向量生成单元251。该初始化向量生成单元242和该初始化向量生成单元251,都通过使用从读命令102取出的一个LBA和从该随机数生成单元241接收的随机数来生成初始化向量IV。
出于同样的原因,图19中所示的记录单元42包括一个随机数生成单元271,用于生成一个随机数以在驱动器31中生成一个初始化向量IV。将由该随机数生成单元271生成的随机数提供给在该驱动器31中使用的初始化向量生成单元272以及在主机32中使用的初始化向量生成单元281。该初始化向量生成单元272和该初始化向量生成单元281,都通过使用从写命令104取出的一个LBA和从该随机数生成单元271接收的随机数,来生成初始化向量IV。
如图18和19分别示出的,在驱动器31中提供了各自用于生成一个随机数的随机数生成单元241和随机数生成单元271。然而,它们也可以在主机32中使用。图20和21的框图分别示出了该再现单元41和该记录单元42的典型配置,该配置用于在主机32中使用该随机数生成单元的情况。
更具体地,图20中所示的再现单元41包括一个随机数生成单元301,用于生成一个随机数以在主机32中生成一个初始化向量IV。将由该随机数生成单元301生成的随机数提供给在该主机32中使用的初始化向量生成单元302以及在驱动器31中使用的初始化向量生成单元311。该初始化向量生成单元302和该初始化向量生成单元311,都通过使用从读命令102取出的一个LBA和从该随机数生成单元301接收的随机数,来生成初始化向量IV。
出于同样的原因,图21中所示的记录单元42包括一个随机数生成单元331,用于生成一个随机数以在主机32中生成一个初始化向量IV。将由该随机数生成单元331生成的随机数提供给在该主机32中使用的初始化向量生成单元332以及在驱动器31中使用的初始化向量生成单元341。该初始化向量生成单元332和该初始化向量生成单元341,都通过使用从写命令104取出的一个LBA和从该随机数生成单元331接收的随机数,来生成初始化向量IV。
图18至21中所示的该再现单元41和该记录单元42的典型配置没有考虑以便在预读、读和写过程中将数据临时存储在一个缓冲器中的缓冲操作。图22是一个框图,示出了该再现单元41的一个配置,在其中考虑了预读操作。很像刚才已经参考图4所示的再现单元41进行说明的情况,图22中所示的再现单元41的配置包括在该驱动器31中的缓冲/传送处理单元122,以作为一个用于完成预读操作的单元。
另外,图22中所示的再现单元41的配置包括在该驱动器31中的该随机数生成单元361,以作为一个用于生成一个随机数的单元。将由随机数生成单元361生成的随机数提供给在该驱动器31中使用的初始化向量生成单元362和在该主机32中使用的初始化向量生成单元371。该初始化向量生成单元362和该初始化向量生成单元371,都通过使用从读命令102取出的一个LBA和从该随机数生成单元361接收的随机数,来生成初始化向量IV。
参考图23中所示的时序图来说明由图22中所示的再现单元41完成的操作。在步骤S201和S231执行的处理部分中,主机32和驱动器31分别验证彼此。如果该互相验证过程正常结束,就生成一个会话密钥。在步骤S202,主机32发送一个“报告密钥(REPORT KEY)”命令给该驱动器31。
该“报告密钥(REPORT KEY)”命令通常是一个作为在互相验证过程中请求一个密钥和一个随机数而发出的命令。如上所述,图22中所示的再现单元41的配置包括该在驱动器31中的随机数生成单元361,以作为一个用于生成一个随机数的单元。因此,该主机32必须从该驱动器31获取一个对于该初始化向量IV的生成来说是必需的随机数。由于这个原因,在步骤S202,主机32发送一个“报告密钥(REPORT KEY)”命令给该驱动器31。
在步骤S232执行的处理中,该驱动器31接收该“报告密钥(REPORTKEY)”命令。然后,在接下来的步骤S233执行的处理中,驱动器31生成一个随机数R,并将该随机数R发送给主机32。在驱动器31中,该随机数R实际上是由随机数生成单元361生成。
通过使用该随机数R,该初始化向量生成单元362和该初始化向量生成单元371可以立即开始生成一个初始化向量IV的处理。然而,随机数R也许会在从驱动器31到主机32的传输的过程中被窜改。结果,该随机数的窜改可能妨碍从该记录介质读出数据或将数据写到其上的正常操作。为了避免这样的妨碍,生成初始化向量IV的过程是确认该随机数R已经正常地从驱动器31传送到了主机32之后,也就是说,在确认没有执行像窜改该随机数R这样的非法过程之后才开始。
在步骤S203当主机32接收该随机数R的时候,通过使用会话密钥Ks来计算所接收的随机数R的MAC(消息验证码(Message AuthenticationCode))值。MAC值像一个压缩的消息,是通过使用一个散列函数以附在消息上而生成。一个接收器通过执行与该发送器计算MAC值的处理相同的处理来计算MAC值,以与发送器计算的该MAC值进行比较。这样,该MAC提供了一种机制,在其中可以检查在通信的过程中执行的窜改或其它非法操作。例如,在传送该发送的MAC值的时候,如果由发送器算出的MAC值不匹配由与该发送器共用该共用密钥的接收器所算出的MAC值,那么恐怕该消息已遭受了窃听或窜改的处理。另一方面,如果它们彼此匹配,几乎可以确定该消息是在没有窜改的情况下接收到的。
如上所述,通过使用一个MAC值来检验该随机数R。然而,通过采用另一种方法也可以检查该随机数R,来检验该随机数R是否是一个在没有窜改的情况下接收到的消息。
在步骤S204执行的处理中,主机32将该算出的MAC值(MAC[Ks,R])发送给驱动器31作为一个“发送密钥(SEND KEY)”命令。当在步骤S234执行的处理中,驱动器31接收该MAC值(MAC[Ks,R])时,通过使用该会话密钥来从该接收到的MAC值中计算一个值,以便检验该算出的值是否与它自己刚才发送的随机数R匹配。
在这验证中,如果确定它们是彼此不匹配的值,就确定该驱动器31和该主机32共用的随机数R已经在失败中结束了。在该情况下不执行进一步的处理。也就是说,虽然从主机32接收到一个读命令102和一个写命令104,该驱动器31也不会响应这些命令。
另一方面,如果驱动器31确定该算出的值与刚才它自己发送的随机数R匹配,就确定该驱动器31和该主机共用的随机数R是成功的。在该情况下,执行进一步的处理。首先,在步骤S235,驱动器31发送“好状态”给主机32,指示将执行进一步的处理,即,接受由主机32发出的请求。
在步骤S205,主机32接收这个“好状态”。然后,在接下来的步骤S206,主机32发出一个读命令102。由于在该步骤S206和随后的步骤执行的处理与在图9中所示的时序图中的步骤S12和随后的步骤执行的处理相同,因此适当省略该说明以避免重复。然而,通过使用一个LBA和该随机数R,由初始化向量生成单元362和初始化向量生成单元371生成用于对在驱动器31和主机32之间交换的扇区数据进行加密和解密的一个初始化向量IV。
后面将参考图29和随后的图来说明由该初始化向量生成单元362和该初始化向量生成单元371执行的生成初始化向量IV的处理。
在参考图23示出的时序图的描述中,在驱动器31中验证MAC值的有效性。下面通过参考图24中所示的时序图,来说明在主机32中验证MAC值的情况。通过参考图24中所示的时序图,仅说明与图23中所示的时序图所表示的处理的不同之处。在步骤S332,当驱动器31从主机32接收一个“报告密钥(REPORT KEY)”命令时,该驱动器31生成一个随机数R。然后,通过使用一个密钥Ks来计算该随机数R的MAC值MAC[Ks,R]。而且,驱动器31生成该算出的MAC值MAC[Ks,R]和该随机数R的结合数据(R‖MAC[Ks,R])。然后,在步骤S333执行的处理中,驱动器31将该结合数据(R‖MAC[Ks,R])发送给主机32。
当主机32在步骤S303从驱动器31接收该结合数据(R‖MAC[Ks,R])时,主机32从接收的结合数据(R‖MAC[Ks,R])中提取该随机数R和该MAC值MAC[Ks,R]。然后,主机32从该提取的随机数R和由主机32自己所管理的一个会话密钥计算一个MAC值。通过把从该接收的结合数据(R‖MAC[Ks,R])中提取的MAC值与该算出的MAC值相比较,主机32验证该MAC值的有效性。
如果验证该MAC值的有效性的处理的结果致使确定出在通信过程中没有执行像窜改这样的非法处理,就通过使用该提取的随机数R来开始生成初始化向量IV的处理。然后,执行步骤S304和随后的步骤的处理。这个处理是与从预定的记录介质读出数据的操作相关的处理。
要注意,代替结合数据(R‖MAC[Ks,R]),在步骤S333可以采用从驱动器31发送其它数据到主机32的方法。该其它数据是加密数据E[Ks,R],这是通过使用该会话密钥Ks加密的随机数R。在该情况下,通过使用一个为其自己所拥有的会话密钥,主机32对在步骤S303接收到的加密数据E[Ks,R]进行解密,以生成该随机数R。这样,主机32能够与驱动器31共用该随机数R。这个方法使得该随机数R的值能够保持机密,使得推断该初始化向量IV更加困难。
通过参考图22至24,上面的描述说明了一个配置,在该配置中,考虑了预读操作,并且该再现单元41使用随机数生成单元361来在驱动器31中生成一个随机数。上面的描述还说明了由该再现单元41完成的处理。通过参考图25至27,下面的描述将说明一个配置,在该配置中,考虑了预读操作,而且,该再现单元41使用随机数生成单元401来在主机32中生成随机数。下面的描述也说明了由该再现单元41完成的处理。
类似于刚才已经参考图4说明了的再现单元41,图25中所示的再现单元41具有一个包括该缓冲/传送处理单元122的配置,用于实现在驱动器31中的预读操作。
另外,图25中所示的再现单元41使用一个用于在主机32中生成随机数的随机数生成单元401。将该由随机数生成单元401生成的随机数提供给在驱动器31中使用的初始化向量生成单元411以及在主机32中使用的初始化向量生成单元402。该初始化向量生成单元411和该初始化向量生成单元402,都通过使用从读命令102取出的一个LBA和从该随机数生成单元361接收的随机数,来生成初始化向量IV。
通过参考图26中所示的时序图来说明由图25中所示的再现单元41完成的操作。在步骤S401和S431执行的处理部分中,主机32和驱动器31分别验证彼此。如果该互相验证过程正常结束,就生成一个会话密钥。然后,在步骤S402执行的处理中,主机23将结合数据(R‖MAC[Ks,R])发送给驱动器31。
当驱动器31在步骤S432从主机32接收该结合数据(R‖MAC[Ks,R])时,驱动器31从该接收的结合数据(R‖MAC[Ks,R])中提取随机数R和MAC值MAC[Ks,R]。然后,驱动器31从该提取的随机数R和由该驱动器31自己管理的一个会话密钥Ks计算一个MAC值。通过把从该接收的结合数据(R‖MAC[Ks,R])中提取的MAC值与该算出的MAC值相比较,驱动器31验证该MAC值的有效性。
如果验证该MAC值的有效性的过程的结果导致确定出在通信过程中没有执行像窜改这样的非法处理,就通过使用该提取的随机数R来开始生成初始化向量IV的处理。随后,在步骤S433,发送“好状态”给主机32。当接收该“好状态”的时候,执行步骤S404和随后的步骤的处理。这个处理是与从一个预定的记录介质读出数据的操作相关的处理。
要注意,代替结合数据(R‖MAC[Ks,R]),在步骤S402可以采用从主机32发送其它数据到驱动器31的方法。该其它数据是加密数据E[Ks,R],这是通过使用该会话密钥Ks加密的随机数R。在该情况下,通过使用一个为其自己所拥有的会话密钥Ks,驱动器31解密在步骤S432接收到的加密数据E[Ks,R],以产生该随机数R。这样,驱动器31能够与主机32共用该随机数R。这个方法使得该随机数R的值能够保持机密,使得推断该初始化向量IV更加困难。另外,如果该加密数据E[Ks,R]在通信过程中被窜改了,那么就不可能产生一个对于驱动器31和主机32都共用的随机数R,由此生成对驱动器31和主机32都共用的初始化向量IV,结果,正确地加密和解密传送的数据。因此,尽管窜改妨碍了操作,但对它不带来任何好处。
参考图26中示出的时序图的描述说明了一种方法,通过使用一个会话密钥Ks,将在主机32中加密的随机数从主机32传送到驱动器31,该方法用于在驱动器31中验证MAC值的有效性的情况。通过参考图27中所示的时序图,下面的描述说明了一种方法,通过使用一个会话密钥Ks,将在驱动器31中加密的随机数从驱动器31传送到主机32,该方法用于在主机32中验证MAC值的有效性的情况。通过参考图27中所示的时序图,仅说明与刚才已经参考图26中所示的时序图来说明的处理的不同之处。在步骤502,在主机32中,该随机数生成单元401生成一个随机数R并将该随机数R与一个“发送密钥(SEND KEY)”命令一起发送给驱动器31。
然后,在接下来的步骤S503,主机32也发送一个“报告密钥(REPORTKEY)”命令给驱动器31。该“报告密钥(REPORTKEY)”命令在步骤S503中发送,以请求驱动器31响应该命令计算该随机数R的MAC值并将它发送给主机32。
驱动器31在步骤S532接收该随机数R,并在步骤S533接收该“报告密钥(REPORT KEY)”命令。然后,通过使用一个会话密钥Ks,驱动器31计算该接收到的随机数R的MAC值MAC[Ks,R]。随后,在下一个步骤S534执行的处理中,驱动器31将该MAC值MAC[Ks,R]发送给主机32。
当主机32在步骤S504从驱动器31接收该MAC值MAC[Ks,R]时,主机32验证该MAC值MAC[Ks,R]的有效性。如果验证该MAC值的有效性的过程的结果导致确定出在通信过程中没有执行像对该随机数R或其它数据的窜改这样的非法处理,就通过使用该提取的随机数R来开始生成初始化向量IV的过程。然后,执行步骤S505和随后的步骤的处理。这个处理是与从一个预定的记录介质读出数据的操作相关的处理。
下面的描述说明了一个方法,通过使用一个会话密钥Ks,将一个在驱动器31中加密的随机数从驱动器31传送到主机32。通过参考图28中所示的时序图,仅说明与刚才已经参考图27中所示的时序图来说明的处理的不同之处。在步骤S602,在主机32中使用的随机数生成单元401生成一个随机数R,并将一个加密随机密钥E[Ks,R]与一个“发送密钥(SEND KEY)”命令一起发送给驱动器31。
在步骤S632,驱动器31接收该加密随机密钥E[Ks,R],并通过使用该会话密钥Ks来解密它以获得该随机数R。如果该加密数据E[Ks,R]在通信过程中被窜改了,那么就不可能产生一个对于驱动器31和主机32都共用的随机数R,由此生成对驱动器31和主机32都共用的初始化向量IV,结果,正确地加密和解密传送的数据。因此,尽管窜改妨碍了操作,但对它不带来任何好处。
如上所述,对于初始化向量IV是通过使用该随机数R来生成的情况,执行一个处理来确定随机数R是否已经正确地传输了。这样,可以在驱动器31和主机32之间实际的数据交换之前的级,检验传输线路的安全性等等。另外,直到验证了该传输线路的安全性,才将从该记录介质读出的数据从该驱动器31传送给该主机32,以及将要写入该记录介质的数据从该主机32传送给该驱动器31。从而,防止该数据被利用。
上面的描述仅说明了通过使用一个LBA和一个随机数R来生成一个初始化向量IV的概要。下面的说明将解释生成初始化向量IV的细节。要注意,图18中所示的初始化向量生成单元242和251,图19中所示的初始化向量生成单元272和281,图20中所示的初始化向量生成单元302和311,图21中所示的初始化向量生成单元332和341,图22中所示的初始化向量生成单元362和371,以及图25中所示的初始化向量生成单元402和411,每个都是通过使用基本相同的方法来从LBA和随机数R中生成的初始化向量IV的组件。在下面的描述中,将图18中所示的初始化向量生成单元242作为一个代表性的实例。
图29是一个框图,示出了该初始化向量生成单元242的一个典型配置。图29中所示的初始化向量生成单元242具有一个配置,该配置包括一个填充处理单元431和一个初始化向量生成单元432。将从一个读命令102提取的4字节LBA提供给该在该初始化向量生成单元242中使用的填充处理单元431。由于最终生成初始化向量IV具有16字节长度,该填充处理单元431将该具有4字节长度的LBA扩展为具有16字节大小的数据。
如上所述,通过采用以00h这样的常数作为高位或低位字节来填补短缺的典型方法,该填充处理单元431将该具有4字节长度的LBA扩展为具有16字节大小的数据。作为可供选择的方法,将该具有4字节长度的LBA分解,并根据另一预定的方法将该分解的位重新定位在具有16字节大小的数据中的位置上,并用像00h这样的常数来填补在该具有16字节大小的数据中剩余的位置。作为另一个可供选择的方法,仅仅重复该具有4字节长度的LBA四次,以生成具有16字节大小的数据。作为又可供选择的方法,将作为重复该具有4字节长度的LBA的结果所获得的16字节数据分解,并根据又一预定的方法将该分解的位在位置上重新定位。通过采用这些方法中的任何一种,通过该填充处理单元431,该具有4字节长度的LBA被转换为具有16字节大小的数据。作为更进一步的可供选择的方法,将由该填充处理单元431输出的数据进一步转换为具有16字节大小的数据。
将由该填充处理单元431输出的数据提供给也接收一个随机数R的初始化向量生成单元432。该随机数R是由图18中所示的随机数生成单元241生成的。如刚才所述,该随机数R具有16字节长度,并在驱动器31和主机32之间交换,即由它们中的一个提供给另一个。
该初始化向量生成单元432对从该LBA生成的16字节数据和该具有16字节长度的随机数R执行一个“异或”处理,以产生一个要用作16字节的初始化向量IV的“异或”逻辑和,其中该初始化向量IV之后被提供给加密单元61和解密单元91。
图30是一个框图,示出了该初始化向量生成单元242的另一个典型配置。图30中所示的初始化向量生成单元242具有一个包括一个散列处理单元451、一个填充处理单元452和一个“异或”处理器453的配置。类似图29中所示的填充处理单元431,该填充处理单元452输入一个具有4字节长度的LBA,并将该LBA扩展为具有16字节大小的数据。然后,该填充处理单元452将该具有16字节大小的数据输出给该“异或”处理器453。
在图30中所示初始化向量生成单元242中,该散列处理单元451处理一个输入随机数R并将该处理的结果输出到该“异或”处理器453。说的更具体些,该散列处理单元45 1通过一个像SHA-1这样的散列函数来处理该随机数R,以产生具有16字节大小的数据C作为该处理的结果,然后,该结果被提供给该“异或”处理器453。
由该“异或”处理器453执行的处理基本上与由图29中所示的初始化向量生成单元432执行的处理相同。也就是说,该“异或”处理器453对从该LBA生成的16字节数据和该具有16字节长度的数据C执行“异或”处理,以产生一个要用作16字节初始化向量IV的“异或”逻辑和。
将该随机数R从驱动器31传送到主机32,或反之亦然。如果采用了这样一个方法,作为不通过使用一个会话密钥Ks来加密该随机数R的情况下按照原状传送该随机数R的技术,第三方将能够在传输过程中识别出该随机数R。另外,由于该LBA是包括在一个从主机32传送到驱动器31的读命令102中的,第三方将也能够在传输过程中识别出该LBA。由于第三方能够认出该随机数R和该LBA,第三方滥用它们是很有此可能性的。
然而,图30中所示的初始化向量生成单元242具有一个配置,在该配置中,该随机数R经由一个散列函数以生成数据C,这是一个不可预知的值。从而,可以使得由该数据C生成的初始化向量IV也是不可预知的。也就是说,即使第三方滥用该随机数R和该LBA,该第三方也不能够从被滥用的值中推断出该初始化向量IV。结果,即使该第三方企图利用从驱动器31传送到主机32或反之亦然的加密数据,该第三方也不能够解密该数据。
从而,防止从该驱动器31传送到主机32或反之亦然的数据被非法利用,并且,因此增强了经由预定接口等等的总线的加密的安全性。
图31是一个框图,示出了该初始化向量生成单元242的一个进一步的典型配置。图31中所示的初始化向量生成单元242具有一个包括一个散列处理单元471、一个填充处理单元472和一个“异或”处理电路473的配置。该配置与图30中所示的基本相同。然而,图31中所示的配置与图30中所示的不同之处在于,在图31中示出的配置中,该散列处理单元471接收一个来图18中所示的验证处理单元51的会话密钥Ks。
该散列处理单元471使用该会话密钥Ks,对一个具有16字节长度的输入随机数R执行散列处理,以将具有16字节大小的数据C输出到该“异或”处理电路473。
在这样的配置中,不仅可以展现与由图30中所示的初始化向量生成单元242所产生的效果相同的效果,而且还展现下列效果。使得即使连续几次从驱动器31到主机32或反之亦然,传送相同的随机数R,由该驱动器31和该主机32执行互相验证处理的结果所获得的该会话密钥Ks还是可以随不同的验证而不同。结果,甚至可以从相同的随机数R中生成不同的初始化向量IV。因此就可以增强经由总线加密的安全性。
如上所述,根据本发明,从在一个读命令102或一个写命令104中指定的LBA中生成初始化向量IV。从而就可以在不修改像ATAPI这样的现有接口的规格的情况下,生成一个用于数据的加密和解密的初始化向量IV。
另外,由于该初始化向量IV是由执行一个通常采用一个散列函数的处理而生成的,所以再次生成相同的初始化向量IV是不可能的。因此,通过使用一个初始化向量IV,有可以使明文免于从加密数据中轻易地推断出。最重要的是,由于将一个会话密钥Ks用作该散列函数的密钥,所以使再次生成相同的初始化向量IV更是不可能的。
通过参考图32和33中所示的流程图,下面的描述将说明用于计算会话密钥Ks和初始化向量IV的SEED,其中该密钥是从驱动器31和主机32执行的相互验证过程所获得的结果。SEED是一个通常用作在一个用于生成一个随机数等的算法中的初始值的预定数值。
该流程图从步骤S701开始,确定一个盘是否已经安装在该驱动器31上。严格地讲,在下面的说明中,该盘是指一个安装在该驱动器31上的盘状记录介质。如果在该步骤S701产生的确定结果指示一个盘已经安装在该驱动器31上了,那么该流程继续到步骤S702,以确定在主机32上一个预定的应用程序是否已经激活了。在下面的说明中,该主机32是一个PC(个人计算机)。
该预定的应用程序被规定为一个从安装在该驱动器31上的盘中读出数据或向其写入数据所需的应用程序。
如果在步骤S702产生的确定结果指示在该主机32中,一个预定的应用程序已经激活,那么该处理的流程继续到步骤S703。在该步骤S703,驱动器31和主机32执行一个互相验证过程,产生一个由该驱动器31和该主机32共用的会话密钥Ks。然后,该处理的流程继续到步骤S704,以确定生成该会话密钥Ks的过程是否已经结束。如果该生成会话密钥Ks的过程还没有结束,那么该处理的流程回到步骤S703,重复在该步骤和步骤S704执行的处理。重复地执行这些过程,直到在步骤S704产生的确定结果指示生成会话密钥Ks的处理已经结束。
当在步骤S704产生的确定结果指示该生成会话密钥Ks的过程已经结束,那么该处理的流程继续到步骤S705,在这个步骤中,随机数R从该驱动器31传送到该主机32,或反之。然后,该处理的流程继续到步骤S706,以确定将该随机数R从该驱动器31传送到该主机32或反之的处理是否已经结束。如果在步骤S706产生的确定结果指示将该随机数R从该驱动器31传送到该主机32或反之的过程已经结束,那么该处理的流程继续到步骤S707。
在步骤S707,发现了计算初始化向量IV所需的SEED C。由于在该计算的结尾找到SEED C,该随机数R被删除。当在步骤S707执行的处理结束时,该处理的流程继续到在图33中示出的流程图部分的步骤S708,以确定在该主机32中激活的预定应用程序的执行是否已经结束。该应用程序通常是一个PC应用程序。如果在步骤S708获得的确定结果指示该PC应用程序的执行还未结束,那么该处理的流程继续到步骤S709,以确定安装在该驱动器31上的盘是否已经卸下。
如果在步骤S709获得的确定结果指示安装在该驱动器31上的盘尚未从该驱动器31上卸下,那么该处理的流程回到步骤S708,重复这个步骤的过程。另一方面,如果在步骤S709获得的确定结果指示安装在该驱动器31上的盘已经从该驱动器31上卸下,那么该处理的流程继续到步骤S710,在该步骤中,在主机32中生成的会话密钥Ks被删除。然后,在接下来的步骤S711,在主机32中生成SEED C也被删除。
随后,在接下来的步骤S712,在驱动器31中生成的会话密钥Ks被删除。然后在接下来的步骤S713,驱动器31中生成的SEED C也被删除。
当该盘从该驱动器31卸下的时候,既不能从该盘中读出数据也不能向其写入数据。为了防止从该盘读出或向该盘写入数据,将会话密钥Ks和SEEDC的量从该驱动器31和该主机32上删除。在删除这样的数据段之后,该处理的流程回到步骤S701,以重复这个步骤和随后的步骤的过程。
另一方面,如果在该步骤S708获得的确定结果指示该PC应用程序的执行已经结束,那么该处理的流程继续到步骤S714,在该步骤,在主机32中生成的会话密钥Ks被删除。然后,在接下来的步骤S715,在主机32中生成的SEED C也同样被删除。
随后,该处理的流程继续到步骤S716,以确定在该主机32中该PC应用程序是否已经激活。在这种状态中,一个盘已经安装在该驱动器31上了。从而,如果一个PC应用程序被激活,就可以从该盘读出数据,或向其写入数据。如上所述,该处理的流程继续到步骤S716,以确定在该主机32中的一个PC应用程序是否已经激活,目的在于确定该信息处理装置是否处在能够从该盘读出数据和向该盘写入数据的状态。
如果在步骤S716获得的确定结果指示在主机32中的该PC应用程序已经激活,那么该处理的流程回到在图32中示出的流程图部分的步骤S703,以重复该步骤和随后的步骤的处理。另一方面,如果在步骤S716获得的确定结果指示在主机32中的该PC应用程序尚未激活,那么该处理的流程继续到步骤S717,以确定安装在该驱动器31上的盘是否已经卸下。
如果在步骤S717获得的确定结果指示该安装在驱动器31上的盘尚未从该驱动器31上卸下,那么该处理的流程回到步骤S716,以重复步骤S716和S717的处理。重复地执行步骤S716和S717的处理,直到在步骤S717获得的确定结果指示安装在驱动器31上的盘已经从该驱动器31上卸下。当在步骤S717获得的确定结果指示安装在驱动器31上的盘已经从该驱动器31上卸下的时候,该处理的流程继续到步骤S712。由于由该步骤S712的过程和随后的过程已经说明了,因此适当省略它们的说明以避免重复。
如上所述,该信息处理装置具有一个配置,在该配置中,必要时生成一个会话密钥Ks和SEED C,而在不再需要它们的时刻,它们被立即删除。出现了一个问题,该会话密钥Ks和SEED C可能被窃听。然而,通过提供这样的配置,出现这种问题的可能性被尽可能地降低。该会话密钥Ks和SEED C是涉及在生成初始化向量IV的数据中。然而,由于能够降低该会话密钥Ks和SEED C被窃听的可能性,因此几乎不可能窃听和推断该初始化向量IV。
下面来说明该再现单元41的其它配置和该记录单元42的其它配置。在下面的说明中,与已经说明的部分相同的配置元件使用与该部分相同的附图标记表示,并且适当地省略它们的说明以避免重复。
图34是一个框图,示出了该记录单元42的另一个典型配置。在图34中所示的配置中,在驱动器31中提供了一个用于生成随机数的随机数生成单元431。将由该随机数生成单元431生成的随机数提供给在该驱动器31中使用的初始化向量生成单元432以及在主机32中使用的初始化向量生成单元441。该初始化向量生成单元432和该初始化向量生成单元441,都通过使用从写命令104取出的一个LBA和从该随机数生成单元431接收的该随机数,来生成初始化向量IV。
图35是一个框图,示出了该记录单元42的一个进一步的典型配置。在图35中所示的配置中,在该主机32中提供了一个用于生成随机数的随机数生成单元461。将由该随机数生成单元461生成的随机数提供给在该主机32中使用的初始化向量生成单元462以及在驱动器31中使用的初始化向量生成单元471。该初始化向量生成单元462和该初始化向量生成单元471,都通过使用从一个写命令104取出的一个LBA和从该随机数生成单元461接收的随机数,来生成初始化向量IV。
图36是一个框图,示出了该再现单元41的另一个典型配置。在图36中所示的配置中,在驱动器3 1中提供了一个用于生成随机数的随机数生成单元501,并且在主机32中提供了另一个用于生成随机数的随机数生成单元511。将由该随机数生成单元501和该随机数生成单元511生成的随机数提供给在该驱动器31中使用的初始化向量生成单元502以及在主机32中使用的初始化向量生成单元512。该初始化向量生成单元502和该初始化向量生成单元512,都通过使用从读命令102取出的一个LBA和从该随机数生成单元501和该随机数生成单元511接收的随机数,来生成初始化向量IV。
图37是一个框图,示出了该记录单元42的一个再进一步的典型配置。在图37中所示的配置中,在驱动器31中提供了一个用于生成随机数的随机数生成单元531,并且在主机32中提供了另一个用于生成随机数的随机数生成单元541。将由该随机数生成单元531和该随机数生成单元541生成的随机数提供给在该驱动器31中使用的初始化向量生成单元532以及在主机32中使用的初始化向量生成单元542。该初始化向量生成单元532和该初始化向量生成单元542,都通过使用从写命令104取出的一个LBA和从该随机数生成单元531和该随机数生成单元541接收的随机数,来生成初始化向量IV。
图38是一个框图,示出了该再现单元41的一个进一步的典型配置。在图38中所示的配置中,在驱动器31中提供了一个用于生成随机数的随机数生成单元561,并且在主机32中提供了另一个用于生成随机数的随机数生成单元571。将由该随机数生成单元561和该随机数生成单元571生成的随机数提供给在该驱动器31中使用的初始化向量生成单元562以及在主机32中使用的初始化向量生成单元572。该初始化向量生成单元562和该初始化向量生成单元572,都通过使用从读命令102取出的一个LBA和从该随机数生成单元561和该随机数生成单元571接收的随机数,来生成初始化向量IV。
图39是一个框图,示出了该记录单元42的一个再进一步的典型配置。在图39中所示的配置中,在驱动器31中提供了一个用于生成随机数的随机数生成单元601,并且在主机32中提供了另一个用于生成随机数的随机数生成单元611。将由该随机数生成单元601和该随机数生成单元611生成的随机数提供给在该驱动器31中使用的初始化向量生成单元602以及在主机32中使用的初始化向量生成单元612。该初始化向量生成单元602和该初始化向量生成单元612,都通过使用从写命令104取出的一个LBA和从该随机数生成单元601和该随机数生成单元611接收的随机数,来生成初始化向量IV。
通过参考图40中所示的时序图来说明图38中所示的再现单元41所执行的操作。适当地省略与之前已经说明了的那些操作相同的操作,以避免重复。在步骤S833,通过使用来自由该随机数生成单元561生成的随机数R1的会话密钥Ks,计算MAC值MAC[Ks,R1],并将其发送给主机32。
在步骤S833执行的处理中,代替计算该MAC值MAC[Ks,R1],该驱动器31可以通过使用该会话密钥Ks来对由随机数生成单元561生成的随机数R1进行加密,以产生加密数据E[Ks,R1],然后将该加密数据E[Ks,R1]发送给主机32。
在步骤S803,主机32接收来自驱动器31的MAC值MAC[Ks,R1]或加密数据E[Ks,R1]。然后,在接下来的步骤S804,主机32通过使用该会话密钥Ks,为该随机数生成单元571生成的随机数R2计算一个MAC值MAC[Ks,R2],并将该MAC值MAC[Ks,R2]和一个“发送密钥(SEND KEY)”命令一起发送给驱动器31。
在步骤S804执行的步骤中,代替计算该MAC值MAC[Ks,R2],主机32可以通过使用该会话密钥Ks来对由该随机数生成单元571生成的随机数R2进行加密,以产生加密数据E[Ks,R2],然后将该加密数据E[Ks,R2]和“发送密钥(SEND KEY)”命令一起发送给驱动器31。
如上所述,在图38中所示的记录单元42中,该驱动器31和该主机32分别具有随机数生成单元561和571。因而,一个初始化向量IV在使用分别由该随机数生成单元561和571输出的2个随机数R1和R2的处理中生成。结果,可以更好地增强保密性。
通过使用一个从读命令102取出的LBA和该随机数R1和R2,该初始化向量生成单元562和572各自生成一个初始化向量IV。这产生一个问题,关于是使用由该随机数生成单元561生成随机数R1,还是使用由该随机数生成单元571生成随机数R2。
作为该问题的一个解决方案,计算随机数R以作为该随机数R1和R2的“异或”逻辑和,并将其用在初始化向量IV的生成中。也就是说,在计算该表示该随机数R1和R2的“异或”逻辑和的随机数R之后,该初始化向量生成单元562和572各自生成一个初始化向量IV。
两次生成相同的随机数R1和R2的对是几乎没有可能的。也就是说,一次以上生成相同的随机数R的可能性也是低的。所以,几乎不可能两次生成相同的初台化向量IV。
这样,上述通过应用本发明,就可以增强在驱动器31和主机32之间交换数据的过程中的保密性。
在上述实施例中,该再现单元41和该记录单元42在各自的图中示出各自的配置。然而,要注意,该再现单元41和该记录单元42也可以具有一个配置,在其中,在该再现单元41中作为完成与在该记录单元42中使用的对应组件相同的处理的组件,以及该对应组件可以作为一个单独的由该再现单元41和该记录单元42共用的组件来提供。这样的组件和对应组件的一个实例是该初始化向量生成单元,该单元可以作为一个该再现单元41和该记录单元42所共用的组件来提供。
另外,在上述实施例中,在说明中所用的CBC方法作为一个代表性的加密/解密方法。然而,要注意,本发明不仅能用于该CBC方法。例如,本发明也可以应用于其它方法,例如CFB(密码反馈(Cipher Feed Back))和OFB(输出反馈(Output Feed Back))方法。
上述一系列处理可以通过使用硬件或软件来实现。如果该处理是通过使用软件来完成的,构成该软件的程序从一个程序记录介质中安装到一个嵌有专用硬件的计算机上,或安装到一个通用计算机上。通用计算机是一种能够通过执行多种安装在该计算机上的程序来完成多种功能的计算机。该通用计算机的一个实例是通用个人计算机。
程序记录介质是用于预先作为程序将要安装到上述计算机中以进行记录程序的介质。该程序记录介质是从该计算机独立分发给用户的,作为将记录在其上的程序提供给用户的装置。该程序记录介质是包介质,可以是包括软盘的磁盘,包括CD-ROM(光盘只读存储器)和DVD(数字多功能盘)的光盘,包括MD(微型盘,商标)的磁光盘或半导体存储器。代替从该程序记录介质安装程序,该程序可以作为预先记录在内嵌在该计算机中的记录介质上的程序而提供给用户。该内嵌的记录介质的一个实例是结合在存储单元中的ROM和硬盘。
要注意,在该说明书中,构成记录在该程序记录介质或内嵌记录介质上的程序的步骤当然能够以在该程序中规定的步骤顺序,顺序地沿时间轴执行顺序处理过程。然而,该步骤不是必须作为沿时间轴的顺序处理过程来执行,也可以作为并行或单独的处理过程来执行。
另外,在该说明书中,该系统表示一个包括若干装置的完整装置。
尽管利用具体实施例已经说明了本发明的优选实施例,但这样的描述仅仅是为了说明的目的,而且能够理解,在不偏离所附权利要求的精神和范围的情况下做出修改和变化是可以的。

Claims (7)

1.一种信息处理装置,包括:
一个信息采集单元,用于从一个请求将数据写到预定的记录介质的操作的命令或一个请求从该预定记录介质中读出数据的操作的命令里获取预定的信息;
一个初始化向量生成单元,用于从由所述信息采集单元获取的所述信息中生成一个初始化向量;以及
一个加密/解密执行单元,用于通过使用由所述初始化向量生成单元生成的所述初始化向量和一个预定的密钥,对数据进行加密或解密。
2.根据权利要求1所述的信息处理装置,其中,由所述信息采集单元获取的所述预定信息是一个LBA(逻辑块地址)。
3.根据权利要求1所述的信息处理装置,所述信息处理装置还包括一个用于生成随机数的随机数生成单元,
其中所述初始化向量生成单元从由所述信息采集单元获取的所述信息,以及由所述随机数生成单元生成的所述随机数中生成一个初始化向量。
4.根据权利要求3的信息处理装置,其中,所述初始化生成单元使用一个经过一个散列函数的随机数。
5.一种控制方法,用于控制至少一个在其上安装了预定的记录介质的介质安装装置,或另一个连接到所述介质安装装置的装置,以作为一个用于控制与所述介质安装装置进行数据交换的控制装置,所述控制方法包括:
一个信息采集步骤,从一个请求将数据写到预定的记录介质的操作的命令或一个请求从所述预定记录介质中读出数据的操作的命令里获取预定的信息;
一个初始化向量生成步骤,从由所述信息采集步骤执行的处理中获取的所述信息生成一个初始化向量;以及
一个加密/解密执行步骤,通过使用由所述初始化向量生成步骤执行的处理中生成的所述初始化向量和一个预定的密钥,对数据进行加密或解密。
6.一种控制装置的程序,该控制装置用于控制至少一个在其上安装了预定的记录介质的介质安装装置,或另一个连接到所述介质安装装置的装置,以作为一个用于控制与所述介质安装装置进行数据交换,所述程序包括:
一个信息采集步骤,从一个请求将数据写到预定的记录介质的操作的命令或一个请求从所述预定记录介质中读出数据的操作的命令里获取预定的信息;
一个初始化向量生成步骤,从由所述信息采集步骤执行的处理中获取的所述信息生成一个初始化向量;以及
一个加密/解密执行步骤,通过使用由所述初始化向量生成步骤执行的处理中生成的所述初始化向量和一个预定的密钥,对数据进行加密或解密。
7.一种用于存储根据权利要求6的所述程序的记录介质。
CNB2004101037851A 2003-11-04 2004-11-04 信息处理装置、控制方法 Expired - Fee Related CN100550724C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP374168/03 2003-11-04
JP2003374168A JP2005140823A (ja) 2003-11-04 2003-11-04 情報処理装置、制御方法、プログラム、並びに記録媒体
JP374168/2003 2003-11-04

Publications (2)

Publication Number Publication Date
CN1674492A true CN1674492A (zh) 2005-09-28
CN100550724C CN100550724C (zh) 2009-10-14

Family

ID=34544190

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004101037851A Expired - Fee Related CN100550724C (zh) 2003-11-04 2004-11-04 信息处理装置、控制方法

Country Status (4)

Country Link
US (1) US7492894B2 (zh)
JP (1) JP2005140823A (zh)
KR (1) KR20050043657A (zh)
CN (1) CN100550724C (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101026738B (zh) * 2006-05-03 2010-05-26 奇景光电股份有限公司 提前起动解密器操作的方法
WO2011157144A3 (zh) * 2011-05-31 2012-04-19 华为技术有限公司 数据读写方法、装置和存储系统
CN105988942A (zh) * 2015-02-13 2016-10-05 上海复旦微电子集团股份有限公司 地址总线中地址数据转换方法及装置

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005026925A2 (en) 2002-05-21 2005-03-24 Washington University Intelligent data storage and processing using fpga devices
JP2005140823A (ja) * 2003-11-04 2005-06-02 Sony Corp 情報処理装置、制御方法、プログラム、並びに記録媒体
US7567981B2 (en) * 2004-01-08 2009-07-28 Uvarta, Inc. Storage medium
JP4549303B2 (ja) * 2005-02-07 2010-09-22 株式会社ソニー・コンピュータエンタテインメント パイプラインを用いてメッセージ認証コードを提供する方法および装置
US20080170691A1 (en) * 2005-03-10 2008-07-17 Sung-Cheol Chang Encryption And Decryption Device In Wireless Portable Internet System,And Method Thereof
US20070005966A1 (en) * 2005-06-30 2007-01-04 Selim Aissi Derivation of a shared keystream from a shared secret
US7624428B2 (en) * 2005-06-30 2009-11-24 Intel Corporation Apparatus and method for platform-independent identity manageability
US20070061893A1 (en) * 2005-09-09 2007-03-15 Black Jeffery D Methods and devices for copy protection of software
KR100703811B1 (ko) * 2006-02-28 2007-04-09 삼성전자주식회사 휴대용 저장장치 및 휴대용 저장장치의 데이터 관리 방법
WO2007121035A2 (en) * 2006-03-23 2007-10-25 Exegy Incorporated Method and system for high throughput blockwise independent encryption/decryption
US8826023B1 (en) * 2006-06-30 2014-09-02 Symantec Operating Corporation System and method for securing access to hash-based storage systems
JP5076546B2 (ja) * 2007-02-22 2012-11-21 株式会社日立製作所 コンテンツデータ管理システム及び装置
US8879727B2 (en) 2007-08-31 2014-11-04 Ip Reservoir, Llc Method and apparatus for hardware-accelerated encryption/decryption
US8189769B2 (en) * 2007-07-31 2012-05-29 Apple Inc. Systems and methods for encrypting data
JP2009276916A (ja) * 2008-05-13 2009-11-26 Sony Corp 通信装置、通信方法、リーダライタ及び通信システム
JP5532560B2 (ja) * 2008-08-25 2014-06-25 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにプログラム
KR101601790B1 (ko) 2009-09-22 2016-03-21 삼성전자주식회사 암호키 선택장치를 구비하는 스토리지 시스템 및 암호 키 선택방법
JP5824849B2 (ja) * 2011-04-22 2015-12-02 ソニー株式会社 情報処理装置および情報処理方法
US20130034229A1 (en) * 2011-08-05 2013-02-07 Apple Inc. System and method for wireless data protection
US20130103685A1 (en) * 2011-09-01 2013-04-25 Protegrity Corporation Multiple Table Tokenization
US9172529B2 (en) * 2011-09-16 2015-10-27 Certicom Corp. Hybrid encryption schemes
US10263782B2 (en) * 2011-10-12 2019-04-16 Goldkey Corporation Soft-token authentication system
IL224890A0 (en) * 2013-02-24 2013-07-31 Uri Kaluzhny Digital signature system
US9407437B1 (en) 2014-03-25 2016-08-02 Amazon Technologies, Inc. Secure initialization vector generation
US9800401B2 (en) * 2014-04-23 2017-10-24 International Business Machines Corporation Initialization vectors generation from encryption/decryption
JP2016127405A (ja) * 2014-12-26 2016-07-11 株式会社Dnpハイパーテック 暗号化装置
US10219152B2 (en) * 2015-09-14 2019-02-26 Futurewei Technologies, Inc. Security architecture and solution for handling internet of things devices in a fifth generation system
JP6728799B2 (ja) * 2016-03-11 2020-07-22 日本電気株式会社 暗号通信システム、暗号通信方法、セキュリティチップ、通信装置およびその制御方法と制御プログラム
US11347895B2 (en) * 2019-12-03 2022-05-31 Aptiv Technologies Limited Method and system of authenticated encryption and decryption
US11743039B2 (en) * 2021-04-20 2023-08-29 Coinbase Il Rd Ltd. System and method for data encryption using key derivation

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5255384A (en) * 1985-02-22 1993-10-19 Intergraph Corporation Memory address translation system having modifiable and non-modifiable translation mechanisms
US5243695A (en) * 1990-05-24 1993-09-07 Rockwell International Corporation Method and apparatus for generating anti-aliased lines on a video display
US5204901A (en) * 1991-08-01 1993-04-20 General Electric Company Public key cryptographic mechanism
US5375070A (en) * 1993-03-01 1994-12-20 International Business Machines Corporation Information collection architecture and method for a data communications network
US5619709A (en) * 1993-09-20 1997-04-08 Hnc, Inc. System and method of context vector generation and retrieval
US5604805A (en) * 1994-02-28 1997-02-18 Brands; Stefanus A. Privacy-protected transfer of electronic information
ATE295644T1 (de) * 1994-07-29 2005-05-15 Canon Kk Verfahren zur gemeinsamen nutzung einer geheimen information, zur erzeugung einer digitalen unterschrift und zur ausführung einer beglaubigung in einem kommunikationssystem mit mehreren informationsverarbeitungseinrichtungen und kommunikationssystem zur anwendung dieses verfahrens
US5673319A (en) 1995-02-06 1997-09-30 International Business Machines Corporation Block cipher mode of operation for secure, length-preserving encryption
US5982933A (en) * 1996-01-12 1999-11-09 Canon Kabushiki Kaisha Information processing method, information processing apparatus, and storage medium
US6320966B1 (en) * 1996-10-23 2001-11-20 Stefanus A. Brands Cryptographic methods for demonstrating satisfiable formulas from propositional logic
JPH10303884A (ja) 1997-04-24 1998-11-13 Fuji Xerox Co Ltd 暗号化方法
JP4123455B2 (ja) 1998-07-31 2008-07-23 日本ビクター株式会社 情報処理方法及び情報処理装置
US6779095B2 (en) * 2000-06-19 2004-08-17 Storage Technology Corporation Apparatus and method for instant copy of data using pointers to new and original data in a data location
JP2002132141A (ja) 2000-10-20 2002-05-09 Sony Corp データ記憶装置、およびデータ記録方法、データ再生方法、並びにプログラム提供媒体
JP2002202719A (ja) 2000-11-06 2002-07-19 Sony Corp 暗号化装置及び方法、復号装置及び方法、並びに記憶媒体
US6931543B1 (en) 2000-11-28 2005-08-16 Xilinx, Inc. Programmable logic device with decryption algorithm and decryption key
JP4089171B2 (ja) 2001-04-24 2008-05-28 株式会社日立製作所 計算機システム
US7277548B2 (en) * 2002-10-23 2007-10-02 Ndosa Technologies, Inc. Cryptographic method and computer program product for use in wireless local area networks
JP2004201038A (ja) 2002-12-18 2004-07-15 Internatl Business Mach Corp <Ibm> データ記憶装置、これを搭載した情報処理装置及びそのデータ処理方法並びにプログラム
US7055039B2 (en) 2003-04-14 2006-05-30 Sony Corporation Protection of digital content using block cipher crytography
JP2004325677A (ja) 2003-04-23 2004-11-18 Sony Corp 暗号処理装置および暗号処理方法、並びにコンピュータ・プログラム
US7243237B2 (en) 2003-05-02 2007-07-10 Microsoft Corporation Secure communication with a keyboard or related device
JP2005130059A (ja) 2003-10-22 2005-05-19 Fuji Xerox Co Ltd 画像形成装置および交換部品
JP2005140823A (ja) * 2003-11-04 2005-06-02 Sony Corp 情報処理装置、制御方法、プログラム、並びに記録媒体

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101026738B (zh) * 2006-05-03 2010-05-26 奇景光电股份有限公司 提前起动解密器操作的方法
WO2011157144A3 (zh) * 2011-05-31 2012-04-19 华为技术有限公司 数据读写方法、装置和存储系统
US8938604B2 (en) 2011-05-31 2015-01-20 Huawei Technologies Co., Ltd. Data backup using distributed hash tables
CN105988942A (zh) * 2015-02-13 2016-10-05 上海复旦微电子集团股份有限公司 地址总线中地址数据转换方法及装置
CN105988942B (zh) * 2015-02-13 2018-12-04 上海复旦微电子集团股份有限公司 地址总线中地址数据转换方法及装置

Also Published As

Publication number Publication date
US20050094805A1 (en) 2005-05-05
KR20050043657A (ko) 2005-05-11
US7492894B2 (en) 2009-02-17
JP2005140823A (ja) 2005-06-02
CN100550724C (zh) 2009-10-14

Similar Documents

Publication Publication Date Title
CN1674492A (zh) 信息处理装置、控制方法、程序及记录介质
CN1293719C (zh) 记录装置和方法、译码装置和方法以及记录再生装置
CN1125407C (zh) 信息处理装置,信息处理方法,信息处理系统
CN1294718C (zh) 信息记录/重放装置和方法
CN1310462C (zh) 通过对数据加密来保护数据的数据保护系统
CN1306425C (zh) 信息存储器件、存储器存取控制系统和方法
CN1208729C (zh) 记录/再现设备、数据移动方法和数据删除方法
CN101053200A (zh) 信息处理设备、信息存储媒体、内容管理系统、数据处理方法、以及计算机程序
CN1841997A (zh) 信息处理分布系统、信息处理装置和信息处理分布方法
CN1389043A (zh) 信息处理装置及处理方法
CN1716218A (zh) 信息处理设备、验证处理方法、和计算机程序
CN1855112A (zh) 内容信息提供服务器、系统和方法及内容再现设备和方法
CN1292922A (zh) 记录和再现设备、程序记录媒体、记录媒体、高速缓存设备和发送设备
CN1940952A (zh) 用于管理内容数据的系统和装置
CN101053030A (zh) 数据处理方法、信息记录介质制造管理系统、记录数据生成设备和方法、以及计算机程序
CN1735939A (zh) 内容发布系统、记录设备和方法、重放设备和方法及程序
CN1560849A (zh) 数字数据记录装置和方法
CN101047495A (zh) 用于传送数据的方法和系统
CN1396568A (zh) 数字作品保护系统、记录媒体装置、发送装置和重放装置
CN1922817A (zh) 信息处理装置
CN100342682C (zh) 数据记录设备、数据记录方法、以及数据转录系统
CN1977251A (zh) 记录介质、针对记录介质的信息处理装置及信息处理方法
CN1848271A (zh) 信息处理装置和方法、信息记录介质、以及计算机程序
CN1383646A (zh) 信息处理系统及方法
CN1969551A (zh) 内容利用方法和内容记录装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091014

Termination date: 20151104

EXPY Termination of patent right or utility model