CN114255813A - 存储装置、主机装置、包括两者的电子装置及其操作方法 - Google Patents

存储装置、主机装置、包括两者的电子装置及其操作方法 Download PDF

Info

Publication number
CN114255813A
CN114255813A CN202111082763.1A CN202111082763A CN114255813A CN 114255813 A CN114255813 A CN 114255813A CN 202111082763 A CN202111082763 A CN 202111082763A CN 114255813 A CN114255813 A CN 114255813A
Authority
CN
China
Prior art keywords
host
rpmb
piu
message
data
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.)
Pending
Application number
CN202111082763.1A
Other languages
English (en)
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.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
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
Priority claimed from KR1020210106006A external-priority patent/KR20220039562A/ko
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN114255813A publication Critical patent/CN114255813A/zh
Pending legal-status Critical Current

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/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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/18Bit line organisation; Bit line lay-out
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/14Word line organisation; Word line lay-out
    • 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/002Countermeasures against attacks on cryptographic mechanisms

Abstract

本公开涉及一种电子装置。根据本公开,提供改进的安全功能的电子装置可以包括:存储装置,包括重放保护存储块(RPMB);以及主机装置,被配置为提供指示存储装置访问RPMB的命令协议信息单元(PIU)。命令PIU可以包括基本报头段和额外报头段,基本报头段包括具有非0值的总额外报头段长度字段,额外报头段包括主机RPMB消息。

Description

存储装置、主机装置、包括两者的电子装置及其操作方法
相关申请的交叉引用
本申请文件要求于2020年9月22日提交的申请号为10-2020-0122028的韩国专利申请和于2021年8月11日提交的申请号为10-2021-0106006的韩国专利申请的优先权和权益,上面列出的申请的全部内容通过引用并入作为本文件的公开内容的一部分。
技术领域
所公开的技术涉及一种电子装置,并且更特别地,涉及存储装置、主机装置、包括存储装置和主机装置的电子装置及操作电子装置的方法。
背景技术
存储装置或数据存储装置可以包括存储数据的存储器装置和允许诸如计算机或智能电话的主机装置从数据存储装置读取数据和/或将数据写入数据存储装置的控制器。存储器装置可以根据其在断电时保存所存储的数据的能力包括易失性存储器装置或非易失性存储器装置。
易失性存储器装置在通电时保留所存储的数据,但是当电力中断时,所存储的数据丢失。易失性存储器装置的示例可以包括静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。
即使在没有电源的情况下,非易失性存储器装置也可以保留所存储的数据。非易失性存储器装置的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)和闪速存储器。
发明内容
除了其他特征和优点之外,所公开的技术的实施例提供了一种提供改进的安全功能的主机装置、包括该主机装置的电子装置及操作电子装置的方法。
在所公开的技术的实施例中,一种存储装置可以包括:非易失性存储器装置,包括重放保护存储块(RPMB);以及存储器控制器,被配置为从外部主机接收包括主机RPMB消息的命令协议信息单元(PIU),并且根据使用主机RPMB消息执行的认证将数据存储在RPMB中。命令PIU可以包括基本报头段和额外报头段,在外部主机与存储器控制器之间发送/接收的PIU中共同包括该基本报头段,该额外报头段包括主机RPMB消息。
在所公开的技术的一些实施例中,一种存储装置可以包括:非易失性存储器装置,包括重放保护存储块(RPMB);以及存储器控制器,被配置为从外部主机接收包括主机RPMB消息的命令协议信息单元(PIU)和读取RPMB中存储的数据。命令PIU可以包括基本报头段和额外报头段,在外部主机与存储器控制器之间发送/接收的PIU中共同包括该基本报头段,该额外报头段包括主机RPMB消息报头段。
在所公开的技术的一些实施例中,一种主机装置,该主机装置控制包括重放保护存储器块(RPMB)的存储装置,该主机装置可以包括:主机消息认证码(MAC)计算器,被配置为使用主机元数据计算主机MAC;以及主机协议信息单元(PIU)生成器,被配置为提供指示存储装置访问RPMB的命令PIU。命令PIU可以包括基本报头段和额外报头段,在主机装置与存储装置之间传送的PIU中共同包括该基本报头段,该额外报头段包括主机MAC和主机元数据。
在所公开的技术的一些实施例中,一种电子装置可以包括:存储装置,包括重放保护存储块(RPMB);以及主机装置,被配置为提供指示存储装置访问RPMB的命令协议信息单元(PIU)。命令PIU可以包括:基本报头段,包括具有非0值的总额外报头段长度字段;以及额外报头段,包括主机RPMB消息。
根据本技术,提供了一种提供改进的安全功能的存储装置、主机装置、包括存储装置和主机装置的电子装置及操作电子装置的方法。
附图说明
图1是示出基于所公开的技术的一些实施例的存储装置的示例的图。
图2是示出图1的存储器装置的示例的图。
图3是示出图2的存储块中的任意一个的示例配置的图。
图4是示出RPMB主机控制器410与RPMB装置控制器210之间的数据通信单元的图。
图5是示出协议信息单元(PIU)的基本报头段的示例结构的图。
图6是示出RPMB消息的示例的图。
图7是示出基于所公开的技术的一些实施例的存储装置的示例的图。
图8是示出在普通RPMB模式下执行的认证的数据写入操作的示例的流程图。
图9是示出通过图8的操作S805提供的RPMB消息的示例的图。
图10是示出通过图8的操作S813提供的RPMB消息的示例的图。
图11是示出通过图8的操作S819提供的RPMB消息的示例的图。
图12是示出在普通RPMB模式下执行的认证的数据读取操作的示例的流程图。
图13是示出通过图12的操作S1005提供的RPMB消息的示例的图。
图14是示出通过图12的操作S1011提供的RPMB消息的示例的图。
图15是示出命令PIU的示例配置的图。
图16是示出响应PIU的示例配置的图。
图17是示出在高级RPMB模式下执行的认证的数据写入操作的示例的流程图。
图18是示出在图17的操作S1201中传送的命令PIU的示例结构的示图。
图19是示出在图17的操作S1207中传送的响应PIU的示例结构的图。
图20是示出在高级RPMB模式下执行的认证的数据读取操作的流程图。
图21是示出在图20的操作S1301中传送的命令PIU的示例结构的图。
图22是示出在图20的操作S1305中传送的响应PIU的示例结构的图。
图23是示出在高级RPMB模式下执行的认证密钥编程操作的示例的流程图。
图24是示出在认证密钥编程操作中提供的命令PIU的示例的图。
图25是示出在认证密钥编程操作中提供的响应PIU的示例的图。
图26是示出发起者装置中包括的PIU发送器2600的示例的图。
图27是示出目标装置中包括的PIU接收器2700的示例的图。
图28是示出图1的存储器控制器的另一示例的图。
图29是示出包括基于所公开的技术的一些实施例的存储装置的存储卡系统的示例的框图。
图30是示出包括基于所公开的技术的一些实施例的存储装置的固态驱动器(SSD)系统的框图。
图31是示出包括基于所公开的技术的实施例的存储装置的用户系统的框图。
具体实施方式
本专利文件中公开的技术可以在各个实施例中实现以提供数据存储装置和数据存储方法,这些数据存储装置和数据存储方法除了其他特征和优点之外,还可以通过使用包括重放保护存储块特征的安全协议来提供改进的安全性。仅示出本说明书中或本申请中公开的实施例的特定结构或功能的描述以描述所公开的技术的示例实施例。所公开的技术的实施例可以包括以各种形式实施,并且不应被解释为限于本说明书或本申请中描述的实施例。
图1是示出基于所公开的技术的实施例的存储装置的示例的图。
参照图1,存储装置50可以包括存储器装置100和存储器控制器200。存储装置50可以包括在诸如以下的主机400的控制下存储数据的装置:蜂窝电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV、平板PC或车载信息娱乐系统。可选地,存储装置50可以包括在主机400的控制下存储数据的装置,主机400将大容量数据存储在一个地方,诸如服务器或数据中心。
存储装置50可以是经由主机接口与主机400通信的任意类型的数据存储装置。存储装置50的示例可以包括:SSD,MMC、eMMC、RS-MMC和微型MMC形式的多媒体卡,SD、迷你SD和微型SD形式的安全数字卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-E)卡型存储装置,紧凑型闪存(CF)卡,智能媒体卡或记忆棒。
存储装置50可以被制造为各种类型的封装中的任意一种。例如,存储装置50可以被制造为诸如以下的各种类型的封装形式中的任意一种:堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)或者晶圆级堆叠封装(WSP)。
存储器装置100可以存储数据。存储器装置100在存储器控制器200的控制下操作。存储器装置100可以包括存储器单元阵列(未示出),该存储器单元阵列包括存储数据的多个存储器单元。
存储器单元中的每一个可以被配置为存储一个数据位的单层单元(SLC)、存储两个数据位的多层单元(MLC)、存储三个数据位的三层单元(TLC)或能够存储四个数据位的四层单元(QLC)。
存储器单元阵列(未示出)可以包括多个存储块。每个存储块可以包括多个页面。在实施例中,页面可以是对存储器装置100进行读取操作或写入(编程)操作的最小单位。存储块可以是擦除操作的最小单位。
存储器装置100中包括的存储块可以包括受保护的存储块,诸如重放保护存储块(RPMB)110a和普通块Normal BLK110b。受保护的存储块被配置为存储用于认证待从存储器装置读取或写入存储器装置的数据的信息,并且仅在基于安全认证协议的认证成功时才可以访问,以阻止包括重放攻击的未认证访问。
RPMB 110a可以包括仅通过预定的特殊命令或认证才可访问的存储块。普通块110b可以包括无需单独认证就可以访问的存储块。普通块110b可以包括存储除RPMB 110a中存储的数据之外的数据的存储块。
当存储装置50支持与RPMB 110a相关联的技术特征时,可以根据两个或更多个模式来访问RPMB 110a。例如,可以在普通RPMB模式或高级RPMB模式中的任意一种模式下访问RPMB 110a。
指示数据被成功存储在RPMB 110a中的次数的写入计数值可以被限制为预定次数。因此,当RPMB 110a的写入计数值达到最大写入计数值时,仅可以允许对RPMB 110a的读取操作。
可以预先确定用于将数据存储在RPMB 110a中的写入操作或编程操作的单位以及用于从RPMB 110a读取数据的读取操作的单位。例如,当在普通RPMB模式下访问RPMB 110a时,可以以256字节为单位存储或读取数据。当在高级RPMB模式下访问RPMB 110a时,可以以4千字节为单位存储或读取数据。然而,在高级RPMB模式下访问的数据的单位或大小不限于4千字节,并且可以根据由存储器装置100执行的编程操作所基于的数据的单位而变化。
只有在认证成功时才可以允许访问RPMB 110a。对RPMB 110a的认证可以包括由主机400和存储装置50中的每一个第一次仅存储一次相同的认证密钥,并且确定由主机400和存储装置50中的每一个使用先前商定的数据和验证认证密钥生成的消息认证码(MAC)是否匹配。MAC可以由主机400和存储装置50中的每一个使用基于散列的MAC(HMAC SHA-256)生成,但是所公开的技术不限于此。在保持RPMB 110a的认证密钥和写入计数值时,可以保持RPMB 110a中存储的数据。
在图1中,存储器装置100包括一个RPMB 110a,但存储器装置100可以包括两个或更多个RPMB 110a。在这种情况下,每个RPMB 110a可以具有唯一的认证密钥和写入计数值。
在实施例中,一个RPMB 110a可以被划分成多个RPMB区域。RPMB 110a中包括的RPMB区域的最大数量可以是四个。每个RPMB区域可以具有唯一的认证密钥和写入计数值。
可以根据RPMB描述符来定义RPMB 110a中包括的RPMB区域。RPMB描述符可以由主机400提供给存储装置50的命令或由存储装置50提供给主机400的命令提供。RPMB描述符可以包括用于设置RPMB 110a中包括的RPMB区域的8位RPMB区域使能值bRPMBRegionEnable。
在实施例中,可以使用RPMB区域使能值bRPMBRegionEnable来确定支持存储装置50访问普通RPMB模式和高级RPMB模式的RPMB 110a的模式。
在实施例中,可以根据下表1中描述的规则来设置RPMB区域使能值bRPMBRegionEnable。
[表1]
Figure BDA0003264569610000081
在实施例中,可以根据RPMB区域使能值bRPMBRegionEnable将RPMB 110a的访问方法设置为普通RPMB模式或高级RPMB模式。当主机400提供的对RPMB 110a的访问请求与设定的RPMB模式不同时,存储装置50可以确定主机400的请求失败。
在实施例中,存储器装置100可以包括以下中的至少一个:双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩随机存取存储器(STT-RAM)或其他。在本专利文件中,为了便于描述,假定存储器装置100是NAND闪速存储器。
存储器装置100被配置为从存储器控制器200接收命令和地址,并且访问存储器单元阵列中由该地址选择的区域。存储器装置100可以对由该地址选择的区域执行命令所指示的操作。例如,存储器装置100可以执行写入操作(编程操作)、读取操作和擦除操作。在编程操作期间,存储器装置100可以将数据编程到由地址选择的区域中。在读取操作期间,存储器装置100可以从由地址选择的区域读取数据。在擦除操作期间,存储器装置100可以擦除由地址选择的区域中存储的数据。
存储器控制器200可以控制存储装置50的全部操作。
当向存储装置50供电时,存储器控制器200可以运行与诸如闪存转换层(FTL)的固件相关联的操作,以控制主机400与存储器装置100之间的通信。
在实施例中,存储器控制器200可以从主机400接收数据和逻辑块地址(LBA),并且可以将LBA转换为物理块地址(PBA),该物理块地址(PBA)指示待存储存储器装置100中包括的数据的存储器单元的物理位置或地址。
存储器控制器200可以控制存储器装置100根据主机400的请求来执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可以向存储器装置100提供编程命令、PBA和数据。在读取操作期间,存储器控制器200可以向存储器装置100提供读取命令和PBA。在擦除操作期间,存储器控制器200可以向存储器装置100提供擦除命令和PBA。
在实施例中,存储器控制器200可以不管来自主机400的请求而自主地生成命令、地址和数据,并且将命令、地址和数据传输到存储器装置100。例如,存储器控制器200可以向存储器装置100提供用于在伴随执行损耗均衡、读取回收、垃圾收集等时执行编程操作、读取操作和擦除操作的命令、地址和数据。
在实施例中,存储器控制器200可以控制两个或更多个存储器装置100的操作。在这种情况下,存储器控制器200可以使用交错方法来控制存储器装置100以提高操作性能。交错方法可以包括控制至少两个存储器装置100的操作彼此重叠。
主机400可以使用诸如以下的各种通信方法中的至少一种来与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)以及低负载DIMM(LRDIMM)。
在本说明书中,为了描述方便,存储装置50和主机400使用UFS通信接口执行数据通信,但是关于数据通信接口,所公开的技术不限于UFS通信接口。具体地,存储装置50和主机400可以使用被定义为协议信息单元(PIU)的命令来执行数据通信。PIU可以包括根据预定协议生成的数据包。
PIU可以包括主机400或存储装置50请求执行、指示或响应任何操作的命令。在实施例中,可以根据用途和目的来定义各种PIU。例如,PIU可以包括查询请求PIU、命令PIU、响应PIU、数据输出PIU、数据输入PIU和准备传送PIU中的任意一个。
在实施例中,查询请求PIU可以包括提供存储装置50的各种参数的装置描述符。装置描述符可以包括指示存储装置50是否是支持高级RPMB模式的存储装置的信息。
PIU的最小单元的大小可以为32字节,PIU的最大大小可以为65600字节。PIU的格式可以根据其类型具有不同的大小。
存储器控制器200可以包括RPMB装置控制器210。
RPMB装置控制器210可以处理主机400对RPMB 110a的访问请求。
RPMB装置控制器210可以处理将数据存储在RPMB 110a中的认证的数据写入操作和读取RPMB 110a中存储的数据的认证的数据读取操作。参照稍后将要描述的图7至图22更详细地描述RPMB装置控制器210处理认证的数据写入操作和认证的数据读取操作的具体方法。
主机400可以进一步包括RPMB主机控制器410。
RPMB主机控制器410可以生成用于控制RPMB 110a的PIU并且将PIU提供给RPMB装置控制器210。RPMB主机控制器410可以从RPMB装置控制器210接收PIU。
参照稍后将要描述的图7、图26和图27更详细地描述RPMB装置控制器210和RPMB主机控制器410。
图2是示出图1的存储器器装置的示例的图。
参照图2,存储器装置100可以包括存储器单元阵列110、电压生成器120、地址解码器130、输入/输出电路140和控制逻辑150。
存储器单元阵列110包括多个存储块BLK1至BLKi。多个存储块BLK1至BLKi通过行线RL连接到地址解码器130。多个存储块BLK1至BLKi可以通过列线CL连接到输入/输出电路140。在实施例中,行线RL可以包括字线、源极选择线和漏极选择线。在实施例中,列线CL可以包括位线。
多个存储块BLK1至BLKi中的每一个包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。多个存储器单元之中连接到同一字线的存储器单元可以被定义为一个物理页面。也就是说,存储器单元阵列110可以包括多个物理页面。存储器装置100的存储器单元中的每一个可以被配置为存储一个数据位的单层单元(SLC)、存储两个数据位的多层单元(MLC)、存储三个数据位的三层单元(TLC)或能够存储四个数据位的四层单元(QLC)。
多个存储块BLK1到BLKi中的一些可以包括参照图1描述的RPMB 110a,并且多个存储块BLK1到BLKi中的其他存储块可以包括普通块110b。
在实施例中,电压生成器120、地址解码器130和输入/输出电路140可以被统称为外围电路。外围电路可以用于在控制逻辑150的控制下操作存储器单元阵列110。外围电路可以用于操作存储器单元阵列110以执行编程操作、读取操作和擦除操作。
电压生成器120被配置为使用供应到存储器装置100的外部电源电压来生成多个操作电压。电压生成器120响应于控制逻辑150的控制来操作。
在所公开的技术的一些实施方式中,电压生成器120可以通过调节外部电源电压来生成内部电源电压。由电压生成器120生成的内部电源电压用作存储器装置100的操作电压。
在所公开的技术的一些实施方式中,电压生成器120可以使用外部电源电压或内部电源电压来生成多个操作电压。电压生成器120可以被配置为生成存储器装置100中所需的各种电压。例如,电压生成器120可以生成多个擦除电压、多个编程电压、多个通过电压、多个所选择的读取电压和多个未选择的读取电压。
电压生成器120可以包括接收内部电源电压以生成具有各种电压电平的多个操作电压的多个泵浦电容器,并且可以通过响应于控制逻辑150的控制来选择性地激活多个泵浦电容器生成多个操作电压。
可以通过地址解码器130向存储器单元阵列110供应所生成的多个操作电压。
地址解码器130通过行线RL连接到存储器单元阵列110。地址解码器130被配置为响应于控制逻辑150的控制来操作。地址解码器130可以从控制逻辑150接收地址ADDR。地址解码器130可以对接收到的地址ADDR之中的块地址进行解码。地址解码器130根据经解码的块地址来选择存储块BLK1至BLKi之中的至少一个存储块。地址解码器130可以对接收到的地址ADDR之中的行地址进行解码。地址解码器130可以根据经解码的行地址来选择所选择的存储块的字线之中的至少一条字线。在实施例中,地址解码器130可以对接收到的地址ADDR之中的列地址进行解码。地址解码器130可以根据经解码的列地址将输入/输出电路140和存储器单元阵列110相互连接。
例如,地址解码器130可以包括诸如行解码器、列解码器和地址缓冲器的组件。
输入/输出电路140可以包括多个页面缓冲器。多个页面缓冲器可以通过位线连接到存储器单元阵列110。在编程操作期间,可以根据多个页面缓冲器中存储的数据将数据存储在所选择的存储单元中。
在读取操作期间,可以通过位线来感测所选择的存储器单元中存储的数据,并且可以将所感测的数据存储在页面缓冲器中。
控制逻辑150可以控制地址解码器130、电压生成器120以及输入/输出电路140的操作。控制逻辑150可以响应于从外部装置发送的命令CMD来操作。控制逻辑150可以响应于命令CMD和地址ADDR来生成控制信号以控制外围电路。
图3是示出图2的存储块中的任意一个的示例配置的图。
存储块BLKi是图2的存储块BLK1至BLKi中的任意一个BLKi。
参照图3,彼此平行布置的多条字线可以连接在第一选择线与第二选择线之间。这里,第一选择线可以包括源极选择线SSL,第二选择线可以包括漏极选择线DSL。更具体地,存储块BLKi可以包括连接在位线BL1至BLn与源极线SL之间的多个串ST(例如,存储器单元串)。位线BL1至BLn可以分别连接到串ST,并且源极线SL可以共同连接到串ST。由于串ST可以被配置为彼此相同,因此作为示例,具体描述连接到第一位线BL1的串ST。
串ST可以包括串联连接在源极线SL与第一位线BL1之间的源极选择晶体管SST、多个存储器单元MC1至MC16以及漏极选择晶体管DST。串ST可以包括源极选择晶体管SST和漏极选择晶体管DST中的至少一个,并且可以包括存储器单元MC1至MC16。在其他实施方式中,串可以包括比图3所示的16个存储器单元更多的存储器单元。
源极选择晶体管SST的源极可以连接到源极线SL,并且漏极选择晶体管DST的漏极可以连接到第一位线BL1。存储器单元MC1至MC16可以串联连接在源极选择晶体管SST与漏极选择晶体管DST之间。不同串ST中包括的源极选择晶体管SST的栅极可以连接到源极选择线SSL,漏极选择晶体管DST的栅极可以连接到漏极选择线DSL,并且存储器单元MC1至MC16的栅极可以连接到多条字线WL1至WL16。不同串ST中包括的存储器单元之中连接到同一字线的存储单元组可以被称为页面PG。因此,存储块BLKi可以包括与字线WL1至WL16的数量相同的页面PG。
在一些实施方式中,每个存储器单元可以是存储一位数据的单层单元(SLC)。在这种情况下,一个物理页面PG可以映射到一个逻辑页面(LPG)以每单元存储一位数据。每个逻辑页面(LPG)可以包括与一个物理页面PG中包括的存储器单元相同数量的数据位。
在其他实施方式中,每个存储器单元可以是存储两位数据的多层单元(MLC)或每个单元存储三位或更多位数据的存储器单元。在这种情况下,每个物理页面PG可以映射到不止一个逻辑页面(LPG)。
图4是示出RPMB主机控制器410与RPMB装置控制器210之间的数据通信单元的图。
参照图1和图4,RPMB主机控制器410和RPMB装置控制器210可以使用被称为协议信息单元(PIU)的数据包进行通信。对于物理装置,主机400中包括RPMB主机控制器410,存储装置50中包括RPMB装置控制器210。依据两个装置之间的接口连接,一个装置可以将PIU发送到另一装置。在这种情况下,生成PIU的装置可以被称为发起者装置,而接收所生成的PIU的装置可以被称为目标装置。也就是说,PIU可以包括在两个装置之间传输的数据包,而不是由主机400或存储装置50中的一个单方面地发送到另一装置的数据包。
根据待由RPMB主机控制器410或RPMB装置控制器210执行的操作,PIU可以包括查询请求PIU、命令PIU、响应PIU、数据输出PIU、数据输入PIU以及或准备传送PIU。
查询请求PIU可以包括提供存储装置50的各种参数的装置描述符。装置描述符可以包括指示存储装置50是否是支持高级RPMB模式的存储装置的信息。在实施例中,查询请求PIU可以包括RPMB描述符。
RPMB主机控制器410可以向RPMB装置控制器210提供包括RPMB描述符的查询请求PIU。RPMB描述符可以包括用于设置包括在RPMB 110a中的RPMB区域的8位RPMB区域使能值bRPMBRegionEnable。在实施例中,可以使用RPMB区域使能值bRPMBRegionEnable来确定存储装置50支持对普通RPMB模式和高级RPMB模式的RPMB 110a进行访问的模式。
命令PIU可以包括当主机400将命令传送到存储装置50时发送的PIU。
响应PIU可以包括当存储装置50提供对主机400提供的命令的响应时传送的PIU。
数据输出PIU可以包括当主机400向存储装置50提供数据时发送的PIU。
PIU中的数据可以包括当存储装置50向主机400提供数据时发送的PIU。
准备传送PIU可以包括当存储装置50通知存储装置50准备从主机400接收数据输出PIU时传输的PIU。当存储装置50具有足够的缓冲空间来存储由主机400提供的数据时,可以发送准备传送PIU。
最小PIU的大小可以为32字节,PIU的最大大小可以为65600字节。PIU的格式可以根据其类型具有不同的大小。
PIU可以包括基本报头段61、事务专用字段62、额外报头段63和数据段64。
基本报头段61的大小可以是12字节。所有PIU中可以共同包括基本报头段61。基本报头段61可以包括关于PIU的基本设置信息。
来自PIU的字节地址“12”的字节地址“31”中可以包括事务专用字段62。根据PIU的类型,事务专用字段62可以包括专用事务代码。
当基本报头段61的总额外报头段长度(Total EHS Length)字段具有非0值时,可以定义额外报头段63。额外报头段63可以从PIU的字节地址“32”开始。当基本报头段61中未包括足够的信息时,额外报头段63可以是能够额外存储数据的区域。
数据输出PIU或数据输入PIU中可包括数据段64,并且其他PIU中可不包括数据段64。
在实施例中,所有的协议PIU中可不包括额外报头段63和数据段64,但是仅特定的PIU中可包括额外报头段63和数据段64。
图5是示出PIU的基本报头段的示例结构的图。
参照图5,基本报头段61可以包括事务类型、标志、逻辑单元号(LUN)、任务标签、发起者ID、命令集类型、查询功能/任务管理功能(Query Function,Task Manag.Function)、响应、状态、总额外报头段长度(Total EHS Length)、装置信息和数据段长度。
根据PIU的类型,事务类型可以具有唯一值。在下面的[表2]中示出根据PIU类型的事务类型的示例。
[表2]
Figure BDA0003264569610000161
根据事务类型,标志可以包括具有不同值的字段。
LUN可以包括指示待对其执行操作的对象中包括的多个逻辑单元之中的、待被执行操作的逻辑单元的编号的字段。例如,参照图1描述的主机400和存储装置50中的每一个可以包括多个逻辑单元,并且PIU中包括的基本报头段61的LUN可以指示多个逻辑单元之中的特定逻辑单元。
根据事务类型,任务标签可以包括具有不同值的字段。
发起者ID可以包括识别谁是请求操作的发起者的字段。因此,在主机生成PIU并且存储装置生成PIU的情况下,发起者ID可以具有不同的值。
命令集类型可以包括命令PIU和响应PIU中包括的字段。命令集类型可以包括指示命令支持哪个接口(诸如,该命令是SCSI命令、UFS命令还是制造商定义的命令)的字段,。
查询功能/任务管理功能(Query Function,Task Manag.Function)可以包括输入到PIU的字段,诸如查询请求、查询响应或任务管理请求。
响应可以包括指示所请求的操作的执行是成功还是失败的字段。
状态可以包括指示SCSI状态的字段。
总额外报头段长度(Total EHS Length)可以包括指示以32位为单位的额外报头段的大小的字段。当PIU包括额外报头段时,可以使用总额外报头段长度(Total EHSLength)。额外报头段的长度可以包括4字节单元。额外报头段的最大大小可以包括1024个字节。当不使用额外报头段时,总额外报头段长度(Total EHS Length)可以包括0。
装置信息可以包括仅当执行特定功能时才使用的信息。
数据段长度可以包括指示PIU的数据段的长度的字段。当PIU不包括数据段时,数据段长度可以包括0。
图6是示出RPMB消息的示例的图。
参照图1和图6,当主机400或存储装置50发送/接收与RPMB 110a相关的PIU时,主机400或存储装置50可以将RPMB消息传送给彼此。RPMB消息可以包括用于认证的信息。
RPMB消息可以包括多个分量。根据RPMB消息被传送的情况,RPMB消息可以包括图6所示的分量中的一些或全部。
请求消息类型的大小可以是2字节。请求消息类型可以包括指示对RPMB 110a的请求的类型的分量。发起者装置发送到目标装置的请求中可以包括请求消息类型。在下面的[表3]中示出了请求消息类型可以具有的代码值的示例。
[表3]
代码 请求消息类型
0001h 认证密钥编程请求
0002h 写入计数器读取请求
0003h 认证的数据写入请求
0004h 认证的数据读取请求
0005h 结果读取请求
0006h 安全写入保护配置块写入请求
0007h 安全写入保护配置块读取请求
其他 预留
认证密钥编程请求可以包括请求对认证密钥进行编程的请求消息类型。写入计数器读取请求可以包括请求存储在写入计数器中的写入计数值的请求消息类型。认证的数据写入请求可以包括请求将数据存储在RPMB 110a中的请求消息类型。认证的数据读取请求可以包括请求读取RPMB 110a中存储的数据的请求消息类型。结果读取请求可以是请求与RPMB 110a相关的操作的执行结果(存储在结果寄存器中的值)的请求消息类型。
响应消息类型的大小可以为2字节。响应消息类型可以包括指示响应的类型的分量。响应消息类型可以包括在由目标装置发送到发起者装置的响应中,而不是包括在由发起者装置发送到目标装置的请求中。在下面的[表4]中示出响应消息类型可以具有的代码值。
[表4]
代码 响应消息类型
0100h 认证密钥编程响应
0200h 写入计数器读取响应
0300h 认证的数据写入响应
0400h 认证的数据读取响应
0500h 预留
0600h 安全写入保护配置块写入响应
0700h 安全写入保护配置块读取响应
其他 预留
认证密钥编程响应可以是指示对请求对认证密钥进行编程的RPMB消息的响应的响应消息类型。写入计数器读取响应可以是指示RPMB消息的响应消息类型,该RPMB消息将写入计数器中存储的写入计数值传输到发起者装置。认证的数据写入响应可以是指示对请求将数据存储在RPMB 110a中的认证的数据写入请求的响应的响应消息类型。认证的数据读取响应可以是指示对请求读取RPMB 110a中存储的数据的认证的数据读取请求的响应的响应消息类型。结果读取响应可以是指示对请求与RPMB 110a相关的操作的执行结果(存储在结果寄存器中的值)的结果读取请求的响应的响应消息类型。
认证密钥可以具有32字节的大小。当初始向RPMB 110a请求编程时,认证密钥可以包括与认证密钥编程请求相对应的PIU中包括的RPMB消息分量。因此,认证密钥可以仅包括在发起者装置发送到目标装置的请求中。
消息认证码(MAC)的大小可以为32字节。MAC可以包括在由目标装置发送到发起者装置的响应以及由发起者装置发送到目标装置的请求中。MAC可以包括用于认证的RPMB消息分量。
结果的大小可以是2字节。结果可以包括RPMB 110a中包括的结果寄存器中存储的值。因此,结果可以包括在由目标装置发送到发起者装置的响应中。
写入计数器的大小可以是4字节。写入计数器可以指示认证的数据写入操作被成功执行的总数。写入计数器可以包括RPMB 110a中包括的写入计数器中存储的写入计数值。写入计数器可以包括在由目标装置发送到发起者装置的响应以及由发起者装置发送到目标装置的请求中。
地址的大小可以是2字节。该地址可以包括数据将被存储在RPMB 110a中的位置或RPMB 110a中存储的数据的逻辑地址。该地址可以包括在由目标装置发送到发起者装置的响应以及由发起者装置发送到目标装置的请求中。
随机数的大小可以是16字节。随机数可以是任意数字或随机值。该随机数可以包括在由目标装置发送到发起者装置的响应以及由发起者装置发送到目标装置的请求中。在实施例中,随机数可以由主机400生成,并且存储装置50可以复制并且使用主机400生成的随机数。
在一些实施方式中,数据可以包括待存储在RPMB 110a中的数据或从RPMB 110a读取的数据。数据的大小可以是256字节。在实施例中,当在普通RPMB模式下访问RPMB 110a时,数据可以包括在发起者装置与目标装置之间传输的数据。
高级RPMB数据可以包括在高级RPMB模式下,待存储在RPMB 110a中的数据或从RPMB 110a读取的数据。高级RPMB数据可以以4KB的大小为单位进行传输。高级RPMB数据可以包括根据认证的数据写入请求待存储在RPMB 110a中的数据,或者根据认证的数据读取请求由存储装置50从RPMB 110a读取的数据。
块计数的大小可以为2字节。块计数可以包括指示在普通RPMB模式下在发起者装置与目标装置之间传送的数据的块数的值。在普通RPMB模式下,一个块的大小可以为256字节。
高级RPMB块计数可以包括指示在高级RPMB模式下,在发起者装置与目标装置之间传送的高级RPMB数据的块数的值。在高级RPMB模式下,一个块的大小可以为4KB。
当在普通RPMB模式或高级RPMB模式下访问RPMB块时,在主机400与存储装置50之间或在发起者装置与目标装置之间传送的RPMB消息中可以包括参照图6描述的RPMB消息分量。根据操作的类型,RPMB消息分量可以包括在一个PIU中或者可以被划分并且包括在多个PIU中。
图7是示出基于所公开的技术的一些实施例的存储装置的示例的图。
参照图1和图7,存储装置50可以包括RPMB 110a和RPMB装置控制器210。RPMB 110a可以包括参照图1描述的存储器装置100中包括的存储块之中的至少一个块,并且RPMB装置控制器210可以包括在存储器控制器200中。RPMB主机控制器410可以包括在主机400中。
RPMB 110a可以包括认证密钥111、写入计数器112、结果寄存器113和RPMB数据区域114。
认证密钥111可能第一次仅被存储一次,并且除了在计算用于认证对RPMB 110a的访问的MAC时用作访问RPMB 110a的密钥之外,不能被读取。在实施例中,认证密钥111的大小可以为32字节,但认证密钥的大小不限于32字节。
写入计数器112可以对被执行以将数据存储在RPMB 110a中的成功的认证的数据写入操作的数量进行计数。由写入计数器112指示的值或写入计数器112中存储的值可以包括写入计数值。写入计数器112可以存储与4个字节相对应的写入计数值,但是也可以存储与更大大小的数据相对应的写入计数值。初始写入计数值可以是“0000 0000h”。可以不重置或减少写入计数器112的写入计数值。在达到作为最大值的“FFFF FFFFh”之后,写入计数器112的写入计数值可不再增加。因此,当写入计数器112的写入计数值达到最大值时,RPMB110a可不再存储数据,并且RPMB 110a作为只读块操作。
结果寄存器113可以存储对RPMB 110a执行的操作的执行结果。例如,结果寄存器113可以存储指示对RPMB 110a执行的操作的结果的结果代码。在下面的[表5]中示出结果寄存器中存储的结果代码的示例。
[表5]
Figure BDA0003264569610000211
Figure BDA0003264569610000221
在实施例中,认证密钥111、写入计数器112和结果寄存器113对于每个RPMB 110a被独立地包括并且可以具有唯一值。在各个实施例中,RPMB 110a可以被划分为多个RPMB区域。RPMB 110a中包括的RPMB区域的最大数量可以是四。每个RPMB区域可以具有唯一的认证密钥和写入计数值。
RPMB数据区域可以包括仅当认证通过时用于存储数据的区域。在实施例中,RPMB数据区域的容量最小可以为128千字节,最大可为16兆字节。
当执行认证的数据写入操作时,RPMB主机控制器410可以根据预定格式向RPMB装置控制器210提供RPMB消息。由RPMB主机控制器410提供的RPMB消息可以包括对RPMB 110a执行认证所必需的信息。例如,RPMB消息可以包括认证的数据。认证的数据可以包括由RPMB主机控制器410生成的MAC。
RPMB装置控制器210可以进一步包括认证管理器211和访问控制器212。
认证管理器211可以使用RPMB 110a中存储的认证密钥111来执行认证。认证管理器211可以向访问控制器212提供认证的执行结果。访问控制器212可以根据认证的执行结果,将数据存储在RPMB 110a中或禁止将数据存储在RPMB 110a中。
当认证通过时,访问控制器212可以控制RPMB 110a将从主机400接收的、待存储在RPMB 110a中的数据存储在RPMB数据区域中。当数据被成功存储时,访问控制器212可以增加写入计数器112中存储的写入计数值,并且将认证的数据写入操作的执行结果存储在结果寄存器113中。
当认证失败时,访问控制器212可不将被请求存储在RPMB 110a中的数据存储在RPMB数据区域中。访问控制器212可以保持写入计数器112的值,并且将指示认证失败的信息存储在结果寄存器113中。
当执行认证的数据读取操作时,RPMB主机控制器410可以根据预定格式向RPMB装置控制器210提供RPMB消息。
访问控制器212可以读取RPMB 110a中存储的数据,并且生成待提供到RPMB主机控制器410的RPMB消息。访问控制器212可以生成待包括在RPMB消息中的元数据。元数据可以包括从RPMB主机控制器410接收的RPMB消息中包括的部分信息、从RPMB 110a读取的数据以及指示认证的数据读取操作的执行结果的结果代码。在实施例中,访问控制器212可以通过使用认证密钥111和RPMB 110a中存储的元数据来生成作为认证的数据的MAC。
访问控制器212可以生成包括认证的数据和元数据的RPMB消息。访问控制器212可以向RPMB主机控制器410提供读取数据和RPMB消息。
图8是示出在普通RPMB模式下执行的认证的数据写入操作的示例的流程图。
参照图1和图8,在普通RPMB模式下,主机400可以传送命令PIU三次以执行认证的数据写入操作,并且存储装置50可以传送响应PIU三次。
具体地,认证的数据写入操作可以包括通过PIU来传送认证的数据写入请求、结果读取请求和结果读取响应的RPMB消息。
可以通过操作S801至S807提供认证的数据写入请求,可以通过操作S809至S815提供结果读取请求,并且可以通过操作S817至S821提供结果读取响应。
认证的数据写入请求可以通过由主机400将请求将数据存储在RPMB 110a中的RPMB消息和待被存储的数据发送到存储装置50来提供。
结果读取请求可以包括用于将RPMB消息从主机400传送到存储装置50的请求,该RPMB消息请求RPMB 110a中包括的结果寄存器中存储的值,在该RPMB 110a中存储了认证的数据写入操作的执行结果。
结果读取响应可以包括存储装置50将提供结果寄存器的值的RPMB消息传送到主机400的响应。
在操作S801中,主机400可以向存储装置50提供命令PIU。在操作S801中传送的命令PIU可以包括指示主机400将发送数据的安全协议输出命令(security protocol outcommand)。在操作S803中,存储装置50可以响应于在操作S801中接收到的命令PIU,向主机400提供准备传送PIU。准备传送PIU可以包括当存储装置50准备好接收待由主机400提供的数据时提供的PIU。在实施例中,准备传送PIU可以包括提供指示存储装置50准备好接收数据输出PIU的消息的PIU。
在操作S805中,主机400可以向存储装置50提供数据输出PIU。由主机400提供的数据输出PIU可以包括与认证的数据写入请求相对应的RPMB消息。在操作S805中传送的RPMB消息可以包括填充字节、认证的数据和元数据。元数据可以包括待存储在RPMB 110a中的数据。由于图7示出了在普通RPMB模式下执行认证的数据写入操作的情况,因此数据可以包括大小为256字节的多个块。参照稍后将描述的图9更详细地描述在操作S805中传送的RPMB消息。
在操作S807中,存储装置50可以向主机400提供响应PIU。在操作S807中传输的响应PIU可以包括对在操作S801中传输的命令PIU的响应。
在操作S809中,主机400可以向存储装置50提供命令PIU。在操作S809中传送的命令PIU可以包括指示主机400将发送数据的安全协议输出命令。此后,在操作S811中,存储装置50可以响应于在操作S809中接收到的命令PIU而向主机400提供准备传送PIU。准备传送PIU可以包括当存储装置50准备好接收待由主机400提供的数据时提供的PIU。在实施例中,准备传送PIU可以包括提供指示存储装置50准备好接收数据输出PIU的消息的PIU。
在操作S813中,主机400可以向存储装置50提供数据输出PIU。在操作S813中提供的数据输出PIU可以包括与结果读取请求相对应的RPMB消息。在实施例中,参照稍后将描述的图10更详细地描述在操作S813中提供的数据输出PIU中包括的RPMB消息。
在操作S815中,存储装置50可以向主机400提供响应PIU。在操作S815中传输的响应PIU可以包括对在操作S809中传输的命令PIU的响应。
在操作S817中,主机400可以向存储装置50提供命令PIU。在操作S817中提供的命令PIU可以包括指示从存储装置50请求数据和信息的命令的安全协议输入命令(securityprotocol in command)。
在操作S819中,存储装置50可以向主机400提供数据输入PIU。在操作S819中传送的数据输入PIU可以包括与结果读取响应相对应的RPMB消息。在操作S819中传送的RPMB消息可以包括填充字节、认证的数据和元数据。元数据可以包括经更新的写入计数值和指示认证的数据写入操作的执行结果的结果寄存器的值。参照稍后将描述的图11更详细地描述在操作S819中传送的RPMB消息。
在操作S821中,存储装置50可以向主机400提供响应PIU。在操作S821中传输的响应PIU可以包括对在操作S817中传输的命令PIU的响应。
图9是示出通过图8的操作S805提供的RPMB消息的示例的图。
参照图1、图8和图9,与认证的数据写入请求相对应的RPMB消息可以包括填充字节、认证的数据和元数据。
填充字节可以包括被添加以使预定的数据格式或数据通信同步的位。在实施例中,与填充字节相对应的字段可以是“0”。
与认证的数据写入请求相对应的RPMB消息中包括的认证的数据可以包括由参照图7描述的RPMB主机控制器410生成的MAC。
元数据可以包括待存储在RPMB 110a中的数据、随机数、当前写入计数值、与数据相对应的地址、数据的块数(这里一个块是256B)以及指示RPMB消息是认证的数据写入请求的请求消息类型。在实施例中,与随机数相对应的字段可以是“0”。
图10是示出通过图8的操作S813提供的RPMB消息的示例的图。
参照图1、图8和图10,与结果读取请求相对应的RPMB消息可以包括填充字节、认证的数据和元数据。
在实施例中,在与结果读取请求相对应的RPMB消息中,仅元数据中包括的请求消息类型可以具有值,并且剩余字段的值可以为“0”。请求消息类型可以包括指示RPMB消息是结果读取请求的码值0005h。
图11是示出通过图8的操作S819提供的RPMB消息的示例的图。
参照图1、图8和图11,与结果读取响应相对应的RPMB消息可以包括填充字节、认证的数据和元数据。
填充字节可以包括被添加以使预定的数据格式或数据通信同步的位。在实施例中,与填充字节相对应的字段可以是“0”。
与结果读取响应相对应的RPMB消息中包括的认证的数据可以包括由参照图7描述的RPMB装置控制器210生成的MAC。
具体地,访问控制器212可以生成待包括在RPMB消息中的元数据,并且使用所生成的元数据和存储在RPMB 110a中的认证密钥111来生成MAC。
元数据可以包括经更新的写入计数值、由认证的数据写入操作存储的数据的地址、指示认证的数据写入操作的执行结果的结果代码以及作为响应消息类型代码的“0300h”,该响应消息类型代码指示RPMB消息是认证的数据写入响应。这里,地址可以包括与RPMB消息中包括的地址相同的值,RPMB消息与参照图9描述的认证的数据写入请求相对应。
在实施例中,与读取结果响应相对应的RPMB消息中包括的填充字节、数据、随机数和块计数字段可以包括“0”。
图12是示出在普通RPMB模式下执行的认证的数据读取操作的示例的流程图。
参照图1和图12,在普通RPMB模式下,主机400可以传送命令PIU两次以执行认证的数据读取操作,并且存储装置50可以传送响应PIU两次。
具体地,认证的数据读取操作可以包括通过PIU来传送与认证的数据读取请求和认证的数据读取响应中的每一个相对应的RPMB消息。
可以通过操作S1001至S1007来执行认证的数据读取请求,并且可以通过操作S1009至S1013来执行认证的数据读取响应。
认证的数据读取请求包括主机400将指示对RPMB 110a中存储的数据的读取请求的RPMB消息传送到存储装置50的过程,认证的数据读取响应包括存储装置50将从RPMB110a读取的数据传送到主机400的过程。
在操作S1001中,主机400可以向存储装置50提供命令PIU。在操作S1001中提供的命令PIU可以包括指示主机400将发送数据的安全协议输出命令。
在操作S1003中,存储装置50可以向主机400提供准备传送PIU。
在操作S1005中,主机400可以向存储装置50提供数据输出PIU。在操作S1005中提供的数据输出PIU可以包括RPMB消息。具体地,在操作S1005中提供的RPMB消息可以包括元数据。这里,元数据包括由主机生成的随机数、待读取的地址、指示待读取的数据的块数的块计数以及指示RPMB消息为认证的数据读取请求的请求消息类型。参照稍后将描述的图13更详细地描述与认证的数据读取请求相对应的RPMB消息。
在操作S1007中,存储装置50可以向主机400提供响应PIU。由存储装置50提供的响应PIU可以包括对在操作S1001中传送的命令PIU的响应。
在操作S1009中,主机400可以向存储装置50提供命令PIU。在操作S1009中提供的命令PIU可以包括指示从存储装置50请求数据和信息的命令的安全协议输入命令。
在操作S1011中,存储装置50可以向主机400提供数据输入PIU。由存储装置50提供的数据输入PIU可以包括RPMB消息。具体地,在操作S1011中提供的RPMB消息可以包括填充字节、认证的数据和元数据。这里,认证的数据可以包括由存储装置50生成的MAC。元数据可以包括从RPMB 110a读取的数据、随机数、地址、指示读取的数据的块数的块计数以及指示RPMB消息是认证的数据读取响应的响应消息类型。参照稍后将描述的图14更详细地描述与认证的数据读取响应相对应的RPMB消息。
在操作S1013中,存储装置50可以向主机400提供响应PIU。在操作S1013中由主机400接收的响应PIU可以包括对在操作S1009中传送的命令PIU的响应。
图13是示出通过图12的操作S1005提供的RPMB消息的示例的图。
参照图1、图12和图13,与认证的数据读取请求对应的RPMB消息可以包括元数据和填充字节但不包括认证的数据。填充字节可以包括被添加以使预定的数据格式或数据通信同步的位。在实施例中,与填充字节相对应的字段可以是“0”。
元数据可以包括由主机生成的随机数、要读取的地址、指示要读取的数据的块数的块计数以及指示RPMB消息为认证的数据读取请求的请求消息类型。
在各个实施例中,与对应于认证的数据读取请求的RPMB消息中包括的填充字节、MAC、数据、写入计数器和结果中的每一个相对应的值可以是“0”。
图14是示出通过图12的操作S1011提供的RPMB消息的示例的图。
参照图1、图12和图14,与认证的数据读取响应相对应的RPMB消息可以包括认证的数据和元数据。认证的数据可以包括由存储装置50的RPMB装置控制器210生成的MAC。元数据可以包括从RPMB 110a读取的数据、随机数、地址、指示读取的数据的块数的块计数以及指示RPMB消息是认证的数据读取响应的响应消息类型。
随机数可以是与通过操作S1005传送的认证的数据读取请求相对应的RPMB消息中包括的随机数,即,通过照原样复制由主机400生成的随机数值而获得的值。读取的数据的地址和块计数可以包括与待读取的地址和指示与认证的数据读取请求相对应的RPMB消息中包括的待读取的数据的块数的块计数相同的值。结果可以包括指示认证的数据读取操作的执行结果的结果代码。响应消息类型可以包括指示RPMB消息是认证的数据读取响应的码0400h。
主机400中包括的RPMB主机控制器410可以接收包括根据认证的数据读取操作而读取的数据的RPMB消息,然后使用RPMB主机控制器410中包括的认证密钥和RPMB消息中包括的元数据来操作MAC。仅当由RPMB主机控制器410计算的MAC与由存储装置50生成的作为RPMB消息中包括的认证的数据的MAC匹配时,RPMB主机控制器410才可以获得读取的数据。
如通过图8至图14所描述的,在普通RPMB模式下的认证的数据写入操作和认证的数据读取操作中,用于提供代存储的数据或读取的数据的命令PIU被提供一次,但是可能附加地需要提供额外命令PIU或响应PIU来传送RPMB消息。这可能导致对RPMB 110a的访问速度的延迟、设计的复杂性等。
图15是示出命令PIU的示例配置的图。
图16是示出响应PIU的示例配置的图。
参照图1、图15和图16,命令PIU和响应PIU可以包括基本报头段、事务专用字段、额外报头段和数据段。命令PIU和响应PIU中包括的基本报头段包括总额外报头段长度(TotalEHS Length)字段。当总额外报头段长度(Total EHS Length)字段具有除0之外(非零)的值时,可以使用包括在命令PIU和响应PIU中的额外报头段字段。额外报头段可以从PIU的字节地址32开始。额外报头段可以包括当基本报头段中没有包括足够的信息时可以额外存储数据的区域。
在高级RPMB模式下,主机400和存储装置50可以使用命令PIU和响应PIU中包括的额外报头段来传送RPMB消息。具体地,主机400和存储装置50可以将命令PIU和响应PIU的基本报头段中包括的总额外报头段长度(Total EHS Length)字段设置为除0之外(非零)的值,并且通过将RPMB消息包括在额外报头段中来发送RPMB消息。
图17是示出在高级RPMB模式下执行的认证的数据写入操作的示例的流程图。参照图1和图17,在操作S1201中,主机400可以向存储装置50提供命令PIU。命令PIU可以包括额外报头段中的RPMB消息。命令PIU可以包括指示主机400将发送数据的安全协议输出命令。在稍后将描述的图18的描述中更详细地描述在操作S1201中传送的RPMB消息。
在操作S1203中,存储装置50可以响应于在操作S1201中接收到的命令PIU而向主机400提供准备传送PIU。
在操作S1205中,主机400可以向存储装置50提供数据输出PIU。由于主机400已经通过在操作S1201中的命令PIU的额外报头段中包括RPMB消息来向存储装置50提供RPMB消息,因此在操作S1205中传送的数据输出PIU可以不包括RPMB消息并且可以仅包括待存储在RPMB110a中的数据。
在操作S1207中,存储装置50可以向主机400提供响应PIU。由存储装置50提供的响应PIU可以包括RPMB消息。响应PIU的额外报头段中可以包括RPMB消息。
图18是示出在图17的操作S1201中传送的命令PIU的示例结构的图。
参照图18,与参照图8至图14描述的实施例中传送的命令PIU不同,在操作S1201中传送的命令PIU可以包括使用额外报头段的PIU。因此,可以将指示基本报头段中包括的总额外报头段长度信息的字段设置为除零之外(非零)的值02h。
在操作S1201中传送的命令PIU的额外报头段可以包括RPMB消息。额外报头段中包括的RPMB消息可以包括与参照图9描述的认证的数据写入请求相对应的RPMB消息的一些数据。
具体地,命令PIU的额外报头段可以包括认证的数据和元数据。与图9的RPMB消息不同,额外报头段中包括的元数据可以不包括待存储在RPMB 110a中的数据。元数据可以包括由主机生成的随机数、当前写入计数值、与数据相对应的地址、数据的块数(这里一个块为4KB)以及指示RPMB消息是认证的数据写入请求(0003h)的请求消息类型。认证的数据可以包括由参照图7描述的RPMB主机控制器410生成的MAC。
图19是示出在图17的操作S1207中传送的响应PIU的示例结构的图。
参照图19,与参照图8至图14描述的实施例中传送的响应PIU不同,在操作S1207中传送的响应PIU可以包括使用额外报头段的PIU。因此,可以将指示基本报头段中包括的总额外报头段长度信息的字段设置为除零之外(非零)的值02h。
在操作S1207中传送的响应PIU的额外报头段可以包括RPMB消息。额外报头段中包括的RPMB消息可以包括与参照图11描述的结果读取响应相对应的RPMB消息的一些数据。
具体地,响应PIU的额外报头段可以包括认证的数据和元数据。元数据可以包括根据认证的数据写入操作的执行而更新的写入计数器的写入计数值、由认证的数据写入操作存储的数据的地址、指示认证的数据写入操作的执行结果的结果代码以及指示RPMB消息是认证的数据写入响应的响应消息类型。这里,地址可以包括与RPMB消息中包括的地址相同的值,RPMB消息与参照图18描述的认证的数据写入请求相对应。随机数可以是通过复制与参照图18描述的认证的数据写入请求相对应的RPMB消息中包括的随机数而获得的值。认证的数据可以包括由参照图7描述的RPMB装置控制器210使用元数据和RPMB 110a中存储的认证密钥生成的MAC。
图20是示出在高级RPMB模式下执行的认证的数据读取操作的流程图。
参照图1和图20,在操作S1301中,主机400可以向存储装置50提供命令PIU。命令PIU可以包括额外报头段中的RPMB消息。命令PIU可以包括指示主机400请求将数据传送到存储装置50的安全协议输入命令。在稍后将描述的图21的描述中更详细地描述在操作S1301中传送的RPMB消息。
在操作S1303中,存储装置50可以使用在操作S1301中接收到的命令PIU中包括的RPMB消息来读取RPMB 110a中存储的数据,并且向主机400提供包括读取的数据的数据输入PIU。由于主机400已经通过在操作S1301中的命令PIU的额外报头段中包括RPMB消息来向存储装置50提供RPMB消息,因此在操作S1303中传送的数据输入PIU可以不包括RPMB消息,可以仅包括从RPMB 110a中读取的数据。
在操作S1305中,存储装置50可以向主机400提供响应PIU。由存储装置50提供的响应PIU可以包括RPMB消息。RPMB消息可以包括在响应PIU的额外报头段中。参考稍后将描述的图22更详细地描述在操作S1305中由存储装置50提供给主机400的RPMB消息。
图21是示出在图20的操作S1301中传送的命令PIU的示例结构的图。
参照图1、图7、图20和图21,与参照图8和图12描述的实施例中传送的命令PIU不同,在操作S1301中传送的命令PIU可以包括使用额外报头段的PIU。因此,可以将指示基本报头段中包括的总额外报头段长度信息的字段设置为除零之外(非零)的值02h。
在操作S1301中传送的命令PIU的额外报头段可以包括RPMB消息。额外报头段中包括的RPMB消息可以包括与参照图13描述的认证的数据读取请求相对应的RPMB消息中包括的数据的部分或全部。
具体地,命令PIU的额外报头段可以包括认证的数据和元数据。在实施例中,命令PIU可以仅包括元数据,而不包括认证的数据。元数据可以包括由主机生成的随机数、待读取的地址、指示待读取的数据的块数的高级RPMB块计数(这里一个块为4KB)以及作为指示额外报头段中包括的RPMB消息是认证的数据读取请求的请求消息类型的0004h。在实施例中,与额外报头段中包括的RPMB消息中包括的MAC、写入计数器和结果中的每一个相对应的值可以为“0”。
图22是示出在图20的操作S1305中传送的响应PIU的示例结构的图。
参照图1、图7和图22,与参照图8至图14描述的实施例中传送的响应PIU不同,在操作S1305中传送的响应PIU可以包括使用额外报头段的PIU。因此,可以将指示基本报头段中包括的总额外报头段长度信息的字段设置为除零之外(非零)的值02h。
在操作S1305中传送的响应PIU的额外报头段可以包括RPMB消息。额外报头段中包括的RPMB消息可以包括与参照图14描述的认证的数据读取响应相对应的RPMB消息。额外报头段可以包括认证的数据和元数据。认证的数据可以包括由存储装置50的RPMB装置控制器210生成的MAC。元数据可以包括从RPMB 110a读取的数据、随机数、地址、指示读取的数据的块数的高级RPMB块计数以及指示RPMB消息是认证的数据读取响应的响应消息类型。
随机数可以是与通过操作S1301传送的认证的数据读取请求相对应的RPMB消息中包括的随机数,即,通过照原样复制由主机400生成的随机数值而获得的值。读取的数据的地址和块计数可以包括与待读取的地址和指示与认证的数据读取请求相对应的RPMB消息中包括的待读取的数据的块数的块计数相同的值。结果可以包括指示认证的数据读取操作的执行结果的结果代码。响应消息类型可以包括指示RPMB消息是认证的数据读取响应的代码0400h。
主机400中包括的RPMB主机控制器410可以接收根据操作S1303中的认证的数据读取操作所读取的数据,并且在操作S1305中,在接收到与认证的数据读取响应相对应的RPMB消息之后,RPMB主机控制器410可以使用RPMB主机控制器410中包括的认证密钥和RPMB消息中包括的元数据来操作MAC。仅当由RPMB主机控制器410计算的MAC与由存储装置50生成的作为RPMB消息中包括的认证数据的MAC匹配时,RPMB主机控制器410才可以获得读取的数据。
根据参照图17至图22描述的实施例,在高级RPMB模式下,由于RPMB消息被包括在额外报头段中并且被传输,与普通RPMB模式不同,其不需要通过数据输入PIU或数据输出PIU的传输。因此,在高级RPMB模式下,由于待传输的PIU的数量少于在普通RPMB模式下的数量,因此在高级RPMB模式下,可以以比普通RPMB模式的速度更快的速度访问RPMB 110a。
图23是示出在高级RPMB模式下执行的认证密钥编程操作的示例的流程图。
图24是示出在认证密钥编程操作中提供的命令PIU的示例的图。
图25是示出在认证密钥编程操作中提供的响应PIU的示例的图。
参照图23至图25,主机400第一次可以仅执行一次将认证密钥存储在存储装置50中包括的RPMB 110a中的认证密钥编程操作。在认证密钥编程操作中,主机400可以向存储装置50提供认证密钥编程请求。具体地,主机400可以向存储装置50提供包括与认证密钥编程请求相对应的RPMB消息的命令PIU。
存储装置50可以获得与由主机400提供的认证密钥编程请求相对应的RPMB消息中包括的认证密钥,并且将认证密钥存储在RPMB 110a中。存储装置50可以响应于认证密钥编程请求而向主机400提供认证密钥编程响应。
在实施例中,可以在普通RPMB模式和高级RPMB模式中的任意一种模式下执行认证密钥编程操作。在普通RPMB模式下执行的认证密钥编程操作中,RPMB消息可以在操作S805、操作S813和操作S819中的每一个中,以与参照图8描述的认证数据写入操作的方法类似的方法在主机400与存储装置50之间发送/接收。
当在高级RPMB模式下执行认证密钥编程操作时,在主机400与存储装置50之间传输的PIU可以包括额外报头段中的RPMB消息。
在操作S2001中,主机400可以向存储装置50提供命令PIU。参照图24,在操作S2001中提供的命令PIU可以包括额外报头段中的RPMB消息。因此,在操作S2001中提供的命令PIU中包括的总额外报头段长度(Total EHS Length)字段可以具有除0之外(非零)的值02h。额外报头段可以包括元数据和认证的数据。认证的数据可以包括与待存储在参照图1描述的RPMB 110a中的认证密钥相对应的密钥值Key。元数据可以包括指示命令PIU中包括的RPMB消息是认证密钥编程请求的请求消息类型0001h。
存储装置50可以响应于命令PIU而将认证数据中包括的密钥值Key存储在参照图7描述的RPMB 110a中。
在操作S2003中,存储装置50可以向主机400提供响应PIU。参照图25,在操作S2003中提供的响应PIU可以包括额外报头段中的RPMB消息。因此,在操作S2003中提供的响应PIU中包括的总额外报头段长度(Total EHS Length)字段可以具有除0之外(非零)的值02h。额外报头段可以包括元数据。元数据可以包括指示响应PIU的额外报头段中包括的RPMB消息是认证密钥编程响应的响应消息类型0100h和指示认证密钥编程操作的执行结果的结果。在实施例中,结果可以包括结果代码,该结果代码是作为结果寄存器113中存储的认证密钥编程操作的执行结果的结果代码。
图26是示出发起者装置中包括的PIU发送器2600的示例的示图。
参照图7和图26,主机400和存储装置50可以在发送/接收PIU时执行与RPMB 110a相关的操作。在执行通过图8至图25描述的认证的数据写入操作、认证的数据读取操作和认证的密钥编程操作时,RPMB主机控制器410和RPMB装置控制器210都可以生成PIU,并且发送生成的PIU或接收从对方发送的PIU,以执行认证。因此,RPMB主机控制器410和RPMB装置控制器210可以包括参照稍后将描述的图27描述的PIU发送器2600和PIU接收器2700两者。
生成PIU的装置可以包括发起者装置。接收所生成的PIU的装置可以包括目标装置。当RPMB主机控制器410向RPMB装置控制器210提供PIU时,主机400可以包括发起者装置,存储装置50可以包括目标装置。相反地,当RPMB装置控制器210向RPMB主机控制器410提供PIU时,存储装置50可以包括发起者装置,主机400可以包括目标装置。
PIU发送器2600可以包括MAC计算器2620、认证密钥存储装置2630、元数据生成器2610和PIU生成器2640。
认证密钥存储装置2630可以存储认证密钥。认证密钥存储装置2630可以对应于参照图7描述的RPMB 110a中包括的认证密钥111。认证密钥可以根据参照图23至图25描述的认证密钥编程操作被存储在RPMB 110a中。由于认证密钥在执行认证的数据写入操作和认证的数据读取操作时用于生成MAC,因此认证密钥在执行认证的数据写入操作和认证的数据读取操作之前需存储在RPMB 110a中。元数据生成器2610可以生成元数据。RPMB消息中可以包括元数据。根据RPMB消息的类型,元数据可以包括不同的分量。可以被包括在元数据中的分量可以包括参照图6描述的写入计数值、请求消息类型、响应消息类型、结果、地址、随机数、数据、高级RPMB数据、块计数以及高级RPMB块计数中的至少一个。
元数据生成器2610可以将所生成的元数据提供给MAC计算器2620和PIU生成器2640。
MAC计算器2620可以使用元数据和存储在认证密钥存储装置2630中的认证密钥来生成MAC。具体地,MAC计算器2620可以使用基于散列的消息认证码(HMAC SHA-256)来生成MAC。目标装置可以使用所生成的MAC来执行认证。MAC的长度可以为256位(32字节)。用于生成MAC的认证密钥可以是256位。然而,基于所公开的技术的一些实施例,MAC和认证密钥的大小不受限制。MAC计算器2620可以向PIU生成器2640提供所生成的MAC。
PIU生成器2640可以生成待提供给目标装置的PIU。具体地,PIU生成器2640可以生成包括认证的数据和元数据的RPMB消息。认证的数据可以包括由MAC计算器2620生成的MAC。在实施例中,与认证密钥编程操作中提供的认证密钥编程请求相对应的RPMB消息中包括的认证的数据可以是认证密钥本身。
在普通RPMB模式下,PIU生成器2640可以通过数据输入PIU或数据输出PIU向目标装置提供所生成的RPMB消息。
在高级RPMB模式下,PIU生成器2640可以生成包括额外报头段中的RPMB消息的PIU,并且向目标装置提供所生成的PIU。在高级RPMB模式下,包括RPMB消息的PIU的基本报头段中的总额外报头段长度字段可以包括除0之外(非零)的值。
图27是示出目标装置中包括的PIU接收器2700的示例的图。
参照图8和图27,主机400和存储装置50可以在发送/接收PIU时执行与RPMB 110a相关的操作。在执行通过图8至图25描述的认证的数据写入操作、认证的数据读取操作和认证密钥编程操作的过程中,RPMB主机控制器410和RPMB装置控制器210都可以生成PIU,并且发送所生成的PIU或接收从对方发送的PIU,以执行认证。因此,RPMB主机控制器410和RPMB装置控制器210可以包括参照图26描述的PIU发送器2600和PIU接收器2700两者。
生成PIU的装置可以是发起者装置。接收所生成PIU的装置可以是目标装置。当RPMB主机控制器410向RPMB装置控制器210提供PIU时,主机400可以是发起者装置,存储装置50可以是目标装置。相反地,当RPMB装置控制器210向RPMB主机控制器410提供PIU时,存储装置50可以是发起者装置,主机400可以是目标装置。
PIU接收器2700可以包括PIU解析器2710、MAC计算器2720和MAC比较器2730。PIU解析器2710可以接收由发起者装置提供的PIU。在普通RPMB模式下,由PIU解析器2710接收的PIU可以包括数据输入PIU或数据输出PIU。在高级RPMB模式下,由PIU解析器2710接收的PIU可以包括命令PIU或响应PIU。
PIU解析器2710可以通过解析所接收的PIU来获得RPMB消息,并且可以通过解析RPMB消息获得所包括的元数据和认证的数据。在实施例中,根据RPMB消息的类型,元数据可以包括不同的分量。可以被包括在元数据中的分量可以包括参照图6描述的写入计数值、请求消息类型、响应消息类型、结果、地址、随机数、数据、高级RPMB数据、块计数以及高级RPMB块计数中的至少一个。
认证的数据可以是由发起者装置生成的MAC。在实施例中,与认证密钥编程操作中提供的认证密钥编程请求相对应的RPMB消息中包括的认证的数据可以是认证密钥本身。
MAC计算器2720可以获得先前存储在目标装置中的认证密钥。先前存储在目标装置中的认证密钥可以包括与发起者装置中存储的认证密钥相同的值。
MAC计算器2720可以使用从PIU解析器2710接收的元数据和先前存储在目标装置中的认证密钥来计算MAC。例如,MAC计算器2720可以使用基于散列的消息认证代码(HMACSHA-256)来计算MAC。MAC计算器2620可以向MAC比较器2730提供所计算的MAC。
MAC比较器2730可以比较从PIU解析器2710接收的MAC与从MAC计算器2720接收的MAC是否匹配,并且可以根据比较结果来输出认证结果。认证结果可以用于执行作为对RPMB的操作的认证的数据写入操作和认证的数据读取操作。
因此,当发起者装置和目标装置中存储的认证密钥不同,或者用于计算MAC的元数据不同时,认证可能会失败,并且只有当发起者装置和目标装置中存储的认证密钥相同且用于计算MAC的元数据相同时,认证才会成功。因此,RPMB 110a可以提供具有高安全性的数据存储功能。
图28是示出图1的存储器控制器的另一示例的图。
参照图28,存储器控制器800可以包括处理器810、RAM 820、错误校正电路830、主机接口840、ROM 850和闪存接口860。
处理器810可以控制存储器控制器800的全部操作。RAM 820可以用作存储器控制器800的缓冲存储器、高速缓存存储器、操作存储器和其他类型的存储器装置等。
ROM 850可以存储存储器控制器800以固件形式操作所需的各种信息。
存储器控制器800可以通过主机接口840与外部装置(例如,主机400、应用处理器等)通信。
存储器控制器800可以通过闪存接口860与存储器装置100通信。存储器控制器800可以通过闪存接口860将命令CMD、地址ADDR和控制信号CTRL传输到存储器装置100,并且接收数据DATA。例如,闪存接口860可以包括NAND接口。
图29是示出包括基于所公开的技术的一些实施例的存储装置的存储卡系统的示例的框图。
参照图29,存储卡系统2000包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100连接到存储器装置2200。存储器控制器2100被配置为访问存储器装置2200。例如,存储器控制器2100可以被配置为控制存储器装置2200的读取操作、编程操作、擦除操作和后台操作。存储器控制器2100被配置为在存储器装置2200与主机之间提供接口。存储器控制器2100被配置为执行用于控制存储器装置2200的固件操作。存储器控制器2100可以同样地被实施为参照图1描述的存储器控制器200。
例如,存储器控制器2100可以包括诸如随机存取存储器(RAM)、处理器、主机接口、存储器接口和错误校正器的组件。
存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可以根据特定通信标准与外部装置(例如,主机)通信。例如,存储器控制器2100被配置为通过诸如以下的各种通信标准中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙以及NVMe。例如,连接器2300可以由上述各种通信标准中的至少一种来定义。
例如,存储器装置2200可以被配置为诸如以下的各种非易失性存储器元件:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)以及自旋转移力矩磁性RAM(STT-MRAM)。
存储器控制器2100和存储器装置2200可以集成到一个半导体装置中来配置存储卡。例如,存储器控制器2100和存储器装置2200可以集成到一个半导体装置中以配置诸如以下的存储卡:PC卡(个人计算机存储卡国际协会(PCMCIA))、紧凑型闪存(CF)卡、智能媒体卡(SM或SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC或eMMC)、SD卡(SD、迷你SD、微型SD或SDHC)或通用闪存(UFS)。
图30是示出包括基于所公开的技术的一些实施例的存储装置的固态驱动器(SSD)系统的示例的框图。
参照图30,SSD系统3000包括主机3100和SSD 3200。SSD 3200通过信号连接器3001与主机3100交换信号,并且通过电源连接器3002接收电力。SSD 3200包括SSD控制器3210、多个闪速存储器3221至322n、辅助电源3230和缓冲存储器3240。
在所公开的技术的一些实施例中,SSD控制器3210可以执行参照图1描述的存储器控制器200的功能。
SSD控制器3210可以响应于从主机3100接收的信号来控制多个闪速存储器3221至322n。例如,信号可以包括基于主机3100与SSD 3200之间的接口的信号。例如,信号可以包括由诸如以下的接口中的至少一种定义的信号:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙以及NVMe。
辅助电源3230通过电源连接器3002连接到主机3100。辅助电源3230可以从主机3100接收电力并且可以用电力充电。当来自主机3100的电力供应不平稳时,辅助电源3230可以向SSD 3200提供电力。例如,辅助电源3230可以位于SSD 3200中或者可以位于SSD3200外部。例如,辅助电源3230可以位于主板上,并且可以向SSD 3200提供辅助电力。
缓冲存储器3240作为SSD 3200的缓冲存储器进行操作。例如,缓冲存储器3240可以临时存储从主机3100接收的数据或从多个闪速存储器3221至322n接收的数据,或者可以临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失性存储器,或诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器。
图31是示出包括基于所公开的技术的一些实施例的存储装置的用户系统的示例的框图。
参照图31,用户系统4000包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以执行与用户系统4000中的组件、操作系统(OS)、用户程序或用户系统4000中包括的其他组件相关联的操作。例如,应用处理器4100可以包括控制用户系统4000中包括的组件的控制器、接口、图形引擎和其他。应用处理器4100可以被设置为片上系统(SoC)。
存储器模块4200作为用户系统4000的主存储器、操作存储器、缓冲存储器或高速缓存存储器进行操作。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM的易失性随机存取存储器,或诸如FRAM、ReRAM、MRAM和PRAM的非易失性随机存取存储器。例如,应用处理器4100和存储器模块4200可以基于堆叠封装(POP)进行封装并且作为一个半导体封装被提供。
网络模块4300可以与外部装置通信。例如,网络模块4300可以支持诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进、WiMAX、WLAN、UWB、蓝牙和Wi-Fi的无线通信。例如,网络模块4300可以包括在应用处理器4100中。
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。可选地,存储模块4400可以将在存储模块4400中存储的数据传输到应用处理器4100。例如,存储模块4400可以利用诸如以下的非易失性半导体存储器元件来实施:相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪存、NOR闪存和三维NAND闪存。例如,存储模块4400可以被设置为可移动存储装置(可移动驱动器),诸如用户系统4000的存储卡和外部驱动器。
例如,存储模块4400可以包括多个非易失性存储器装置,并且多个非易失性存储器装置可以以与参照图1描述的存储器装置100相同的方式操作。存储模块4400可以以与参照图1描述的存储装置50相同的方式操作。
用户接口4500可以包括用于将数据或指令输入到应用处理器4100或者用于将数据输出到外部装置的接口。例如,用户接口4500可以包括诸如以下的用户输入接口:键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电元件。用户接口4500可以包括诸如以下的用户输出接口:液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器。
仅描述了所公开的技术的一些示例或实施例。基于所公开的内容,所公开的示例或实施例以及其他实施例的变型或改进是可能的。

Claims (47)

1.一种存储装置,包括:
非易失性存储器装置,包括重放保护存储块即RPMB;以及
存储器控制器,从主机接收包括主机RPMB消息的命令协议信息单元即命令PIU,并且基于使用所述主机RPMB消息执行的认证将数据存储在所述RPMB中,
其中所述命令PIU包括:
基本报头段,在所述主机与所述存储器控制器之间发送或接收的PIU中共同包括所述基本报头段;以及
额外报头段,包括所述主机RPMB消息。
2.根据权利要求1所述的存储装置,其中,所述命令PIU进一步包括事务专用字段,所述事务专用字段识别在所述主机与所述存储器控制器之间发送或接收的所述PIU的类型。
3.根据权利要求1所述的存储装置,其中,所述基本报头段进一步包括具有非0值的总额外报头段长度字段。
4.根据权利要求1所述的存储装置,其中,所述RPMB包括:
认证密钥存储装置,存储用于所述认证的认证密钥;
写入计数器,存储写入计数值,所述写入计数值指示将数据存储在所述RPMB中的认证的数据写入操作被成功执行的次数;
结果寄存器,存储对所述RPMB的操作的执行结果;以及
RPMB数据区域,存储从所述主机接收的写入数据。
5.根据权利要求4所述的存储装置,其中,所述存储器控制器包括:
认证管理器,执行所述认证并且输出所述认证的结果;以及
访问控制器,基于所述认证的结果来控制所述RPMB,并且
其中,所述主机RPMB消息包括主机消息认证码即主机MAC和主机元数据。
6.根据权利要求5所述的存储装置,其中,所述认证管理器包括:
装置MAC计算器,使用所述主机元数据和所述认证密钥来生成装置MAC;以及
MAC比较器,根据所述主机MAC和所述装置MAC是否匹配来生成所述认证的结果。
7.根据权利要求6所述的存储装置,其中,MAC计算器基于所述主机元数据和所述认证密钥,使用安全散列算法-256即SHA-256,生成所述装置MAC。
8.根据权利要求6所述的存储装置,其中,当所述主机MAC和所述装置MAC匹配时,所述访问控制器控制所述非易失性存储器装置将所述写入数据存储在所述RPMB中。
9.根据权利要求8所述的存储装置,其中,所述访问控制器控制所述非易失性存储器装置存储通过增加所述写入计数器中的写入计数值而获得的增加的写入计数值,并且将指示所述认证的数据写入操作成功的结果代码存储在所述结果寄存器中。
10.根据权利要求9所述的存储装置,其中,所述访问控制器生成包括装置RPMB消息的响应PIU。
11.根据权利要求10所述的存储装置,其中,包括在所述响应PIU中的额外报头段包括所述装置RPMB消息。
12.根据权利要求11所述的存储装置,其中,所述装置RPMB消息包括所述增加的写入计数值和所述结果代码。
13.一种存储装置,包括:
非易失性存储器装置,包括重放保护存储块即RPMB;以及
存储器控制器,从主机接收包括主机RPMB消息的命令协议信息单元即命令PIU,并且读取在所述RPMB中存储的数据,
其中,所述命令PIU包括:
基本报头段,在所述主机与所述存储器控制器之间发送或接收的PIU中共同包括所述基本报头段;以及
额外报头段,包括所述主机RPMB消息。
14.根据权利要求13所述的存储装置,其中,所述命令PIU进一步包括事务专用字段,所述事务专用字段识别在所述主机与所述存储器控制器之间发送或接收的所述PIU的类型。
15.根据权利要求13所述的存储装置,其中,所述基本报头段进一步包括具有非0值的总额外报头段长度字段。
16.根据权利要求13所述的存储装置,其中,所述主机RPMB消息包括指示待从所述RPMB读取的数据的地址。
17.根据权利要求13所述的存储装置,其中,所述RPMB包括:
认证密钥存储装置,存储用于生成装置消息认证码即装置MAC的认证密钥;以及
RPMB数据区域,存储数据。
18.根据权利要求17所述的存储装置,其中,所述存储器控制器包括:
认证管理器,生成待用于认证由所述主机从所述RPMB读取的数据的所述装置MAC;以及
访问控制器,生成与对所述命令PIU的响应相对应的响应PIU,向所述主机提供读取的数据,并且向所述主机提供所述响应PIU。
19.根据权利要求18所述的存储装置,其中,所述访问控制器包括:
装置元数据生成器,生成包括所述主机RPMB消息中包括的部分数据的装置元数据;以及
装置PIU生成器,生成包括所述装置元数据和所述装置MAC的装置RPMB消息。
20.根据权利要求19所述的存储装置,其中,所述认证管理器基于所述装置元数据和所述认证密钥,使用安全散列算法-256即SHA-256,生成所述装置MAC。
21.根据权利要求19所述的存储装置,其中,所述装置RPMB消息包括在所述响应PIU的额外报头段中。
22.根据权利要求19所述的存储装置,其中,所述主机RPMB消息中包括的所述部分数据是包括在所述主机RPMB消息中的随机数。
23.根据权利要求19所述的存储装置,其中,所述主机RPMB消息中包括的所述部分数据是指示待从所述RPMB读取的、包括在所述主机RPMB消息中的数据的地址。
24.一种主机装置,所述主机装置控制存储装置的操作,所述存储装置包括重放保护存储块即RPMB,所述主机装置包括:
主机消息认证码计算器即主机MAC计算器,使用主机元数据计算主机MAC;以及
主机协议信息单元生成器即主机PIU生成器,提供指示所述存储装置访问所述RPMB的命令PIU,
其中,所述命令PIU包括:
基本报头段,在所述主机装置与所述存储装置之间传送的PIU中共同包括所述基本报头段;以及
额外报头段,包括所述主机MAC和所述主机元数据。
25.根据权利要求24所述的主机装置,进一步包括:
认证密钥存储装置,存储用于生成所述主机MAC的认证密钥。
26.根据权利要求25所述的主机装置,其中,所述主机MAC计算器使用所述主机元数据和所述认证密钥计算所述主机MAC。
27.根据权利要求24所述的主机装置,其中,所述命令PIU进一步包括事务专用字段,所述事务专用字段识别在所述主机装置与所述存储装置之间传送的所述PIU的类型。
28.根据权利要求24所述的主机装置,其中,所述基本报头段进一步包括具有非0值的总额外报头段长度字段。
29.根据权利要求24所述的主机装置,其中,所述主机PIU生成器从所述存储装置接收响应PIU,并且
其中,所述响应PIU包括基本报头段和额外报头段,所述基本报头段包括具有非0值的总额外报头段长度字段,所述额外报头段包括装置RPMB消息。
30.根据权利要求29所述的主机装置,其中,所述响应PIU进一步包括事务专用字段,所述事务专用字段识别在所述主机装置与所述存储装置之间传送的所述PIU的类型。
31.根据权利要求29所述的主机装置,其中,所述装置RPMB消息包括装置MAC和装置元数据。
32.根据权利要求31所述的主机装置,其中,所述装置MAC由所述存储装置使用所述装置元数据生成。
33.根据权利要求31所述的主机装置,其中,所述装置元数据包括结果代码,所述结果代码指示通过所述命令PIU访问所述RPMB的结果。
34.根据权利要求31所述的主机装置,其中,所述装置元数据包括写入计数值,所述写入计数值指示对所述RPMB执行的写入操作的数量。
35.一种电子装置,包括:
存储装置,包括重放保护存储块即RPMB;以及
主机装置,提供指示所述存储装置访问所述RPMB的命令协议信息单元即命令PIU,
其中,所述命令PIU包括基本报头段和额外报头段,并且其中,所述基本报头段包括具有非0值的总额外报头段长度字段,并且所述额外报头段包括主机RPMB消息。
36.根据权利要求35所述的电子装置,其中,所述RPMB包括:
认证密钥存储装置,存储用于认证所述RPMB的装置认证密钥;
写入计数器,存储写入计数值,所述写入计数值指示将数据存储在所述RPMB中的认证的数据写入操作被成功执行的次数;
结果寄存器,存储对所述RPMB的操作的执行结果;以及
RPMB数据区域,存储从所述主机装置接收的写入数据。
37.根据权利要求36所述的电子装置,其中,所述存储装置包括:
认证管理器,执行所述认证并且输出所述认证的结果;以及
访问控制器,基于所述认证的结果来控制所述RPMB,并且
其中,所述主机RPMB消息包括主机消息认证码即主机MAC和主机元数据。
38.根据权利要求37所述的电子装置,其中,所述认证管理器包括:
装置MAC计算器,使用所述主机元数据和所述装置认证密钥来生成装置MAC;以及
MAC比较器,根据所述主机MAC和所述装置MAC是否匹配,生成所述认证的结果。
39.根据权利要求38所述的电子装置,其中,所述装置MAC计算器基于所述主机元数据和所述装置认证密钥,使用安全散列算法-256即SHA-256,生成所述装置MAC。
40.根据权利要求37所述的电子装置,其中,所述主机装置包括:
主机MAC计算器,使用所述主机元数据计算所述主机MAC;
主机PIU生成器,生成所述命令PIU;以及
认证密钥存储装置,存储用于生成所述主机MAC的主机认证密钥。
41.根据权利要求40所述的电子装置,其中,所述主机MAC计算器使用所述主机元数据和所述主机认证密钥计算所述主机MAC。
42.根据权利要求35所述的电子装置,其中,所述命令PIU进一步包括事务专用字段,所述事务专用字段识别在所述主机装置与所述存储装置之间传送的PIU的类型。
43.根据权利要求35所述的电子装置,其中,所述主机装置从所述存储装置接收响应PIU,并且
其中,所述响应PIU包括基本报头段和额外报头段,所述基本报头段包括具有非0值的总额外报头段长度字段,所述额外报头段包括装置RPMB消息。
44.根据权利要求43所述的电子装置,其中,所述装置RPMB消息包括装置MAC和装置元数据。
45.根据权利要求44所述的电子装置,其中,所述装置MAC由所述存储装置使用所述装置元数据生成。
46.根据权利要求44所述的电子装置,其中,所述装置元数据包括结果代码,所述结果代码指示通过所述命令PIU访问所述RPMB的结果。
47.根据权利要求44所述的电子装置,其中,所述装置元数据包括写入计数值,所述写入计数值指示对所述RPMB执行的写入操作的数量。
CN202111082763.1A 2020-09-22 2021-09-15 存储装置、主机装置、包括两者的电子装置及其操作方法 Pending CN114255813A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20200122028 2020-09-22
KR10-2020-0122028 2020-09-22
KR1020210106006A KR20220039562A (ko) 2020-09-22 2021-08-11 스토리지 장치, 호스트 장치, 이들을 포함하는 전자 장치 및 그 동작 방법
KR10-2021-0106006 2021-08-11

Publications (1)

Publication Number Publication Date
CN114255813A true CN114255813A (zh) 2022-03-29

Family

ID=80473998

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111082763.1A Pending CN114255813A (zh) 2020-09-22 2021-09-15 存储装置、主机装置、包括两者的电子装置及其操作方法

Country Status (4)

Country Link
US (1) US20220091760A1 (zh)
CN (1) CN114255813A (zh)
DE (1) DE102021210515A1 (zh)
TW (1) TW202213107A (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200128825A (ko) * 2019-05-07 2020-11-17 삼성전자주식회사 분리된 rpmb 기능을 가지는 스토리지 시스템 및 그 구동 방법
US11487454B2 (en) * 2019-12-05 2022-11-01 Sandisk Technologies Llc Systems and methods for defining memory sub-blocks
WO2024040506A1 (en) * 2022-08-25 2024-02-29 Micron Technology, Inc. Memory chip test pad access management to facilitate data security

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10257192B2 (en) * 2014-05-29 2019-04-09 Samsung Electronics Co., Ltd. Storage system and method for performing secure write protect thereof
US9934412B2 (en) * 2015-06-23 2018-04-03 Microsoft Technology Licensing, Llc Implementing replay protected storage
US10491569B1 (en) * 2015-11-10 2019-11-26 Alterednets Cyber Solutions LLC Secure transfer of independent security domains across shared media
US11144214B2 (en) * 2019-07-25 2021-10-12 Micron Technology, Inc. Memory authentication
KR20210016191A (ko) * 2019-08-01 2021-02-15 삼성전자주식회사 스토리지 장치

Also Published As

Publication number Publication date
DE102021210515A1 (de) 2022-03-24
US20220091760A1 (en) 2022-03-24
TW202213107A (zh) 2022-04-01

Similar Documents

Publication Publication Date Title
US20190258581A1 (en) Memory system and operating method thereof
US11467768B2 (en) Data storage device for storing boot partition data read from memory device in buffer memory and method of operating the same
US20220091760A1 (en) Storage device, host device, electronic device including storage device and host device, and method of operating the same
US11868624B2 (en) Computing system and operating method thereof
US20210281414A1 (en) Computing system and operating method thereof
US11726672B2 (en) Operating method of storage device setting secure mode of command, and operating method of storage system including the storage device
US20220091757A1 (en) Apparatus including data storage device and method of operating the same
US20230152993A1 (en) Storage device
US11556252B2 (en) Storage device and method of operating the same
US11455102B2 (en) Computing system and operating method thereof
US20230136229A1 (en) Storage device, computing system, and method of operating the same
US20230134534A1 (en) Memory controller and storage device
US20220155976A1 (en) Data storage device and method of operating the same
US20230297261A1 (en) Storage device and operating method thereof
KR20230064526A (ko) 스토리지 장치, 컴퓨팅 시스템 및 그 동작 방법
US11815938B2 (en) Storage device and method of operating the same
KR20230064538A (ko) 메모리 컨트롤러 및 스토리지 장치
US20230289071A1 (en) Electronic device and method of operating the same
KR20230011214A (ko) 스토리지 장치 및 이의 동작 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination