存储装置、控制器以及数据写入方法
【技术领域】
[0001]本发明涉及存储装置、控制器以及数据写入方法。
【背景技术】
[0002]存在通过使用AES (Advanced Encrypt1n Standard:高级加密标准)等方式将数据加密后进行存储来防止所存储的数据的丢失、泄漏的存储装置(例如硬盘驱动器)。另夕卜,也存在能够对在数据的加密和解密中所使用的密钥进行适当更新的存储装置。通过使密钥可更新,能够进一步提高安全性。例如,通过在将不要的存储装置废弃时更新密钥,能够防止从废弃的存储装置泄漏信息。
[0003]在能够更新密钥的结构的存储装置中,存在将在对数据进行加密时所使用的密钥的信息(以下称为密钥信息)附加于数据(已加密状态的数据)并存储的存储装置。密钥信息用于判别在读取数据时的解密中所使用的密钥是否正确。在密钥错误的情况下不能正确进行解密,从存储装置输出无意义的数据。此时,有可能发生在使用所输出的数据的主机侧无法判别是否正确进行了解密而成为问题的情形。例如,有可能存在受理了未被正确解密的数据的主机会进行误动作等主机的动作变得不稳定的情况。假设这样的情况下,存储装置使用密钥信息来判断解密处理中使用的密钥是否正确。密钥信息例如是表示随着密钥被更新而值增加的密钥的世代的信息。
[0004]为了避免该密钥信息这样的用户数据以外的数据使用存储装置的用户数据的存储区域,周知通过将密钥信息与用户数据的错误信息部等进行异或(XOR)来共用存储区域的方法。然而,在将密钥信息附加(XOR)于数据来存储的情况下,当读取数据时,难以检测出附加于数据的密钥信息的错误。因此,在解密所使用的密钥的正误判定中会产生错误,有时会导致成为尽管使用了正确的密钥、但却无法读取数据等动作变得不稳定的情况。
【发明内容】
[0005]本发明的目的在于抑制因密钥信息的错误引起的误动作,并提高装置的可靠性。
[0006]根据本实施方式,提供一种存储装置,具备:缓冲器,其保存作为加密后的数据的加密数据;检错码生成部,其生成加密数据的检错码;密钥信息生成部,其生成作为在加密数据的加密中所使用的密钥的信息的密钥信息;保护码生成部,其生成作为密钥信息的检错码的保护码;密钥信息添加部,其将密钥信息及所护码添加于检错码,并作为冗余数据附加于加密数据;以及介质,其对附加有冗余数据的加密数据进行存储。
【附图说明】
[0007]图1是表示本实施方式涉及的存储装置的结构例。
[0008]图2是表示图1的存储装置所具备的加密处理部的结构例的图。
[0009]图3是表示图1的存储装置所具备的写入处理部和读取处理部的结构例的图。
[0010]图4是表示本实施方式涉及的冗余数据的生成方法的图。
[0011]图5是表示图1的存储装置所具备的写入处理部的动作的图。
[0012]图6是表示本实施方式涉及的检错码与冗余数据的异或的图。
[0013]图7是表示图1的存储装置所具备的读取处理部的动作的图。
【具体实施方式】
[0014]以下参照附图对实施方式涉及的存储装置、控制器以及数据写入方法进行详细说明。此外,本发明并不由该实施方式所限定。
[0015](实施方式)
[0016]图1是表示本实施方式涉及的存储装置I的结构例的图。存储装置I具备:控制器10、将在与外部的主机装置2之间授受的数据等暂时保存的作为缓冲器的SDRAM20、存储数据的介质(MEDIA) 30、密钥存储器40、ROM (Read Only Memory:只读存储器)50、以及RAM (Random Access Memory:随机读取存储器)60。该控制器10包括I/F (接口)控制部11、SDRAM调停部12、命令控制部13、MEDIA (介质)调停部14、加密处理部15、写入处理部16、读取处理部17以及MPU (Micro Processing Unit:微处理单元)18,对存储装置I内的各部进行控制。在图1中,将与存储装置I连接的主机装置2设为I台,但也有可能存在多台的情况。例如,也能够设为如下方式:存储装置I连接于通信网络,经由通信网络连接有多个主机装置。
[0017]在控制器10中,I/F控制部11在与主机装置2之间进行各种命令、数据的授受。SDRAM调停部12对由控制器10内的各部进行的向SDRAM20的访问动作进行调停,进行对SDRAM20的数据的写入、读取、删除等。命令控制部13在其与主机装置2之间收发各种命令,并且进行按照所接收到的命令的处理。例如,在接收到指示数据的写入的命令的情况下,向控制器10内的各部发出指示,以执行用于将与命令一起接收到的数据写入到介质30的处理。MEDIA调停部14对由控制器10内的各部进行的向介质30的访问动作进行调停,进行对介质30的数据的写入、读取、删除等。加密处理部15对从主机装置2受理的数据进行加密并存储到SDRAM20。另外,在向主机装置2输出的数据已存储于SDRAM20的情况下将该数据取出并进行解密。写入处理部16对SDRAM20保存的数据(以下称为实际数据)附加冗余数据而写入到介质30。冗余数据是SDRAM20保存的实际数据的检错码等。关于冗余数据的详细说明将在后面描述。读取处理部17将写入到介质30中的数据(附加有冗余数据的实际数据)读取并进行实际数据的错误检查等,如果没有问题则将实际数据存储到SDRAM20。MPU18通过将R0M50所存储的程序在RAM60中展开并执行来控制控制器10内的各部。
[0018]此外,在图1所示的结构例中,加密处理部15存在于控制器10的内部,但也可以是加密处理部15存在于控制器10的外部。
[0019]密钥存储器40对在由加密处理部15进行的数据的加密处理以及解密处理中所使用的密钥41进行保存。例如在从主机装置2接收到变更指示的情况下更新密钥41。对于密钥的更新方法(新的密钥的生成方法)并没有限制。在本实施方式中,将密钥存储器40和介质30设为分开的结构,当然也可以将用于存储密钥41的区域设置在介质30内。另夕卜,密钥存储器40设于RAM60的一部分也是可以的。R0M50对用于使存储装置I动作的程序、各种信息进行保存。RAM60作为R0M50所存储的程序、信息的展开用存储器以及作业用存储器而使用。
[0020]接着,对控制器10具备的加密处理部15、写入处理部16以及读取处理部17进行说明。图2是表示加密处理部15的结构例的图,图3是表示写入处理部16以及读取处理部17的结构例的图。此外,为了便于说明,在图3中也记载了与写入处理部16以及读取处理部17的动作相关联的构成要素。
[0021][加密处理部15]
[0022]如图2所示,加密处理部15具备加密部151、解密部152以及密钥更新部153。
[0023]加密部151受理向介质30写入的数据并进行加密。在加密处理中使用密钥存储器40保存的密钥41。当加密结束时,将已加密状态的数据作为向介质30写入的实际数据而存储到SDRAM20。
[0024]解密部152取出读取处理部17从介质30读取并存储到SDRAM20的实际数据,使用密钥41进行解密。
[0025]例如,加密部151进行加密的数据是从主机装置2受理的数据(写入数据),解密部152进行解密的实际数据是向主机装置2输出的数据(读取数据)。
[0026]密钥更新部153例如在从主机装置2接收到变更指示的情况下,对由密钥存储器40保存的密钥41进行更新。对于密钥的更新方法(新的密钥的生成方法)并没有限制。
[0027][写入处理部16]
[0028]如图3所示,写入处理部16具备检错码生成部161、密钥管理信息保存部162、密钥信息生成部163、保护码生成部164以及密钥信息添加部165。
[0029]检错码生成部161经由SDRAM调停部12取出SDRAM20所存储的实际数据,生成所取出的实际数据的检错码。例如,生成CRC(Cyclic Redundancy Check:循环冗余检查)作为检错码。此外,检错码生成部161从SDRAM20取出的实际数据通过图2所示的加密部151来加密。所生成的检错码与实际数据一起交付给密钥信息添加部165。
[0030]密钥管理信息保存部162对在加密部151的加密处理中所使用的密钥的管理信息进行保存。当图2所示的密钥41被更新时,密钥管理信息保存部162保存的管理信息随之被更新。例如,在更新了密钥41的情况下,加密处理部15将该意思通知给写入处理部16,写入处理部16对由密钥管理信息保存部162保存的管理信息进行更新。管理信息例如是表示密钥的世代的信息(以下称为密钥世代信息)。例如,密钥世代信息是