CN115809488A - 存储设备、在存储设备中生成密钥和执行认证的方法 - Google Patents

存储设备、在存储设备中生成密钥和执行认证的方法 Download PDF

Info

Publication number
CN115809488A
CN115809488A CN202211111730.XA CN202211111730A CN115809488A CN 115809488 A CN115809488 A CN 115809488A CN 202211111730 A CN202211111730 A CN 202211111730A CN 115809488 A CN115809488 A CN 115809488A
Authority
CN
China
Prior art keywords
key
random number
storage device
memory
volatile memory
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
CN202211111730.XA
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN115809488A publication Critical patent/CN115809488A/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/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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3033Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
    • 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/3271Cryptographic 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 challenge-response
    • H04L9/3278Cryptographic 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 challenge-response using physically unclonable functions [PUF]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Mathematical Physics (AREA)
  • Read Only Memory (AREA)

Abstract

一种具有提高的安全可靠性的存储设备包括非易失性存储器和存储控制器,该存储控制器被配置为:控制非易失性存储器的操作;生成密钥材料;从固件接收密钥身份证明(ID);确定与密钥ID匹配的盐值是否存储在非易失性存储器中;响应于确定与密钥ID匹配的盐值存储在非易失性存储器中,使用密钥材料和存储在非易失性存储器中的盐值来生成私钥;以及响应于确定与密钥ID匹配的盐值没有存储在非易失性存储器中,从固件接收盐值并使用密钥材料和来自固件的盐值来生成私钥,并且将用于生成私钥的盐值存储在非易失性存储器中。

Description

存储设备、在存储设备中生成密钥和执行认证的方法
相关申请的交叉引用
本申请要求2021年9月15日向韩国知识产权局提交的第10-2021-0123214号韩国专利申请的优先权及由此获得的所有权益,该韩国专利申请的内容通过引用整体合并于此。
技术领域
本发明构思涉及存储设备、在存储设备中生成密钥的方法和执行存储设备的认证的方法。
背景技术
为了在存储设备中执行基于非对称密钥算法的加密或解密处理,可以在存储设备中包括直接生成密钥的功能。
然而,当存储设备自身生成密钥时,在发生安全问题时,例如存储设备中的固件被黑客入侵,密钥可能被泄露到外部。
发明内容
本发明构思的一些示例实施例提供了一种具有提高的安全可靠性并能够高速生成密钥的存储设备。
此外,本发明构思的一些示例实施例提供了一种在存储设备中生成密钥的方法,该存储设备具有提高的安全可靠性并能够高速生成密钥。
此外,本发明构思的一些示例实施例提供了一种执行存储设备的认证的方法,该存储设备具有提高的安全可靠性并能够高速生成密钥。
本发明构思的示例实施例不限于上述示例实施例。未提及的根据本发明构思的其它示例实施例可以基于以下描述来理解,并且可以基于根据本公开的一些示例实施例被更清楚地理解。此外,将容易理解的是,根据本发明构思的一些示例实施例可以使用权利要求中所示的途径及其组合来实现。
根据本发明构思的一些示例实施例的一种存储设备包括非易失性存储器和存储控制器,该存储控制器被配置为:控制非易失性存储器的操作;生成密钥材料;从固件接收密钥身份证明(ID);确定与密钥ID匹配的盐值是否存储在非易失性存储器中;响应于确定与密钥ID匹配的盐值存储在非易失性存储器中,使用密钥材料和存储在非易失性存储器中的盐值来生成私钥;以及响应于确定与密钥ID匹配的盐值没有存储在非易失性存储器中,从固件接收盐值并使用密钥材料和来自固件的盐值来生成私钥,并且将用于生成私钥的盐值存储在非易失性存储器中。
根据用于实现本发明构思的一些示例实施例的一种存储设备包括非易失性存储器和存储控制器,该存储控制器被配置为控制非易失性存储器的操作、生成密钥材料、从固件接收盐值、使用盐值和密钥材料来生成私钥、将盐值存储在非易失性存储器中、以及使用非对称密钥算法来执行非对称加密操作。
根据本发明构思的一些示例实施例的一种存储设备包括非易失性存储器和存储控制器,该存储控制器被配置为:控制非易失性存储器的操作;从主机设备接收认证请求;响应于接收到认证请求,基于私钥来生成认证信息,其中私钥使用存储在非易失性存储器中的盐值和由密钥材料生成器生成的密钥材料来生成;以及向主机设备发送认证信息。
根据本发明构思的一些示例实施例的一种在存储设备中生成密钥的方法包括从固件接收盐值、生成密钥材料、使用密钥材料和来自固件的盐值来生成私钥、存储生成的私钥、以及将用于生成私钥的盐值存储在非易失性存储器中。
根据本发明构思的一些示例实施例的一种在存储设备中生成密钥的方法包括:从固件接收密钥ID;生成密钥材料;响应于存储在非易失性存储器中的盐值与密钥ID匹配,使用密钥材料和存储在非易失性存储器中的盐值来生成第一私钥;响应于与密钥ID匹配的盐值没有存储在非易失性存储器中,从固件接收盐值并使用密钥材料和来自固件的盐值来生成第二私钥;以及将用于生成第二私钥的盐值存储在非易失性存储器中。
根据本发明构思的一些示例实施例的一种执行存储设备的认证的方法包括:从主机设备接收认证请求;响应于认证请求的接收,基于私钥来生成认证信息,其中私钥使用密钥材料和存储在非易失性存储器中的盐值来生成;以及向主机设备发送认证信息。
其它示例实施例的具体细节包括在详细描述和附图中。
附图说明
通过参照附图详细描述本发明构思的一些示例实施例,本发明构思的上述和其它示例实施例将变得更加明白,附图中:
图1是示出根据一些示例实施例的存储器系统的框图;
图2是示出图1的密钥生成器的图;
图3是示出图1的存储设备的存储控制器和非易失性存储器的重新配置的图;
图4是示出图1的存储控制器、存储器接口和非易失性存储器的重新配置的图;
图5是示出图4的非易失性存储器的示例框图;
图6是用于示出可应用于根据一些实施例的非易失性存储器的3DV-NAND结构的图;
图7是用于示出根据一些示例实施例的密钥生成器的私钥生成操作的流程图;
图8至图13是用于示出根据一些示例实施例的密钥生成器的私钥生成操作的图;
图14是用于示出根据一些示例实施例执行存储设备的认证的操作的流程图;
图15是用于示出根据一些示例实施例执行存储设备的认证的操作的图;以及
图16是示出应用了根据一些示例实施例的存储设备的数据中心的图。
具体实施方式
在下文中,将参照附图描述本发明构思的一些示例实施例。
图1是示出根据一些示例实施例的存储器系统的框图。图2是示出图1的密钥生成器的图。
参照图1,存储器系统10可以包括主机设备100和/或存储设备200。存储设备200可以包括存储控制器210和/或非易失性存储器(NVM)220。主机设备100可以包括主机控制器110和/或主机存储器120。主机存储器120可以用作缓冲存储器,其用于在其中临时存储将要向存储设备200发送的数据或从存储设备200接收的数据。
存储设备200可以包括用于根据来自主机设备100的请求在其中存储数据的存储介质。例如,存储设备200可以包括SSD(固态驱动器)、嵌入式存储器和/或可移动外部存储器中的至少一种。当存储设备200被体现为SSD时,存储设备200可以是例如符合NVMe(非易失性存储器高速)标准的设备。
当存储设备200被体现为嵌入式存储器或外部存储器时,存储设备200可以是符合UFS(通用闪存)或eMMC(嵌入式多媒体卡)标准的设备。主机设备100和存储设备200中的每个或者一个或更多个可以根据对应的所采用的标准协议来生成和发送分组。
当存储设备200的非易失性存储器220包括闪速存储器时,该闪速存储器可以包括2D NAND存储器阵列和/或3D(或垂直)NAND(VNAND)存储器阵列。在另一示例中,存储设备200可以包括各种其它类型的非易失性存储器。例如,存储设备200可以包括MRAM(磁性RAM)、自旋转移矩MRAM、导电桥接RAM(CBRAM)、FeRAM(铁电RAM)、PRAM(相RAM)、电阻式存储器(电阻式RAM)和/或各种其它类型的存储器。
在一些示例实施例中,主机控制器110和主机存储器120可以被实现为分开的半导体芯片。此外,在一些示例实施例中,主机控制器110和主机存储器120可以集成到同一半导体芯片中。在一示例中,主机控制器110可以充当包括在应用处理器中的多个模块之一,并且该应用处理器可以被实现为片上系统(SoC)。此外,主机存储器120可以充当提供在应用处理器中的嵌入式存储器和/或充当设置在应用处理器外部的非易失性存储器或存储器模块。
主机控制器110可以管理将缓冲区的数据(例如,写入数据)存储在非易失性存储器220中和/或将非易失性存储器220的数据(例如,读出数据)存储在缓冲区中的操作。
存储控制器210可以包括主机接口211和/或存储器接口212。此外,存储控制器210可以包括处理器213a、闪存转换层(FTL)213b、密钥生成器214、分组管理器215、缓冲存储器216a、ECC(错误校正码)引擎216b、AES(高级加密标准)引擎216c、密钥材料生成器217和/或非对称密码模块218。
存储控制器210还可以包括工作存储器(未示出),闪存转换层(FTL)213b被加载到该工作存储器中。向非易失性存储器220写入数据或从非易失性存储器220读取数据的操作可以由运行闪存转换层213b的处理器213a控制。
主机接口211可以向/从主机设备100发送/接收分组。从主机设备100发送到主机接口211的分组可以包括将要写入非易失性存储器220的命令或数据。从主机接口211发送到主机设备100的分组可以包括对从非易失性存储器220读取的命令或数据的响应。
存储器接口212可以向非易失性存储器220发送将要写入非易失性存储器220的数据和/或接收从非易失性存储器220读取的数据。存储器接口212可以被实现为符合诸如切换和/或ONFI的标准协议。
闪存转换层213b可以执行若干功能,诸如地址映射、磨损均衡和/或垃圾收集。地址映射操作可以指将从主机设备接收的逻辑地址转换为用于在非易失性存储器220中实际存储数据的物理地址的操作。
磨损均衡可以指确保统一使用非易失性存储器220中的块以减少或防止特定块过度退化的方案。垃圾收集可以指将块的有效数据复制到新块、然后擦除前一个块以确保非易失性存储器220中的可用容量的方案。
密钥生成器214可以生成非对称密码模块218的操作所需或足够的私钥。密钥生成器214用来生成私钥的盐值ST可以存储在非易失性存储器220中。在一些示例实施例中,密钥生成器214可以以硬件来实现。然而,示例实施例不限于此。
参照图2,密钥生成器214可以包括种子生成器214a、随机数生成器214b、密钥计算器214c和/或有效密钥检查器214d。
种子生成器214a可以基于从操作存储设备(图1中的200)的固件提供的盐值和/或从密钥材料生成器(图1中的217)提供的密钥材料来生成种子。
在一些示例实施例中,种子生成器214a可以基于从固件提供的盐值和/或从密钥材料生成器(图1的217)提供的密钥材料来生成散列值作为种子。然而,示例实施例不限于此。
随机数生成器214b可以基于由种子生成器214a生成的种子来生成随机数。
在一些示例实施例中,随机数生成器214b可以包括DRBG(确定性随机位生成器)。当随机数生成器214b包括DRBG时,随机数生成器214b可以通过确定性算法对同一种子(输入)生成相同的结果值。
在一些示例实施例中,随机数生成器214b可以基于由种子生成器214a生成的种子来生成第一随机数和第二随机数。然后,随机数生成器214b可以识别所生成的第一随机数和第二随机数中的每个是否适合于生成私钥。在一些实施例中,随机数生成器214b可以识别所生成的第一随机数和第二随机数中的每个是否是质数。当第一随机数和第二随机数中的每个是质数时,随机数生成器214b可以将第一随机数和第二随机数提供给密钥计算器214c。相反,当第一随机数和第二随机数中的至少一个不是质数时,随机数生成器214b可以重新生成第一随机数和第二随机数。
密钥计算器214c可以基于由随机数生成器214b生成的随机数来生成原始密钥。例如,密钥计算器214c可以接收由随机数生成器214b生成的随机数,并且可以执行预定的(或可选地给定的)计算以生成原始密钥。
有效密钥检查器214d可以验证由密钥计算器214c生成的原始密钥是否是有效密钥。在一些示例实施例中,有效密钥检查器214d可以通过将密钥计算器214c生成的原始密钥与公钥进行比较、然后识别它们是否彼此互质来执行验证。然而,实施例不限于此。
稍后将描述密钥生成器214的操作的更详细描述。
返回参照图1,分组管理器215可以根据分组管理器215和主机设备100同意的接口协议来生成分组,和/或可以从接收自主机设备100的分组解析各种信息。
缓冲存储器216a可以在其中临时存储要写入非易失性存储器220或从非易失性存储器220读取的数据。根据一些示例实施例,缓冲存储器216a可以是提供在存储控制器210中的组件,和/或可以设置在存储控制器210外部。
ECC引擎216b可以对从非易失性存储器220读取的读出数据执行错误检测和校正功能。例如,ECC引擎216b可以为要写入非易失性存储器220中的待写入数据生成奇偶校验位。所生成的奇偶校验位与待写入数据一起存储在非易失性存储器220中。当从非易失性存储器220读取数据时,ECC引擎216b可以使用从非易失性存储器220读取的奇偶校验位以及读出数据来校正读出数据的错误并输出校正后的读出数据。
AES引擎216c可以使用对称密钥算法对输入到存储控制器210的数据执行加密操作和/或解密操作中的至少一种。
密钥材料生成器217可以生成密钥生成器214生成私钥所必需或足够的密钥材料。就此而言,密钥材料可以是与存储设备200相关的唯一信息。即,不同的存储设备200可以具有不同的密钥材料。例如,第一存储设备可以生成第一密钥材料,而第二存储设备可以生成与第一密钥材料不同的第二密钥材料。
在一些实施例中,密钥材料生成器217可以使用PUF(物理不可克隆函数)和/或OTP(一次性密码)中的至少一种来生成密钥材料。然而,示例实施例不限于此。
非对称密码模块218可以使用非对称密钥算法来执行非对称加密操作。可以将非对称密码模块218的操作与AES引擎216c使用对称密钥算法执行的加密操作区分开来。
由密钥生成器214生成的私钥可以存储在非对称密码模块218中并且可以用于非对称密码模块218的加密操作。
图3是图1的存储设备的存储控制器和非易失性存储器的重新配置的图。
参照图3,存储设备200可以包括非易失性存储器220和/或存储控制器210。存储设备200可以支持多个通道CH1至CHm。非易失性存储器220和存储控制器210可以通过多个通道CH1至CHm彼此连接。例如,存储设备200可以被实现为例如SSD(固态驱动器)。
非易失性存储器220可以包括多个非易失性存储器设备NVM11至NVMmn。非易失性存储器设备NVM11至NVMmn中的每个或者一个或更多个可以通过对应的方式连接到多个通道CH1至CHm之一。例如,非易失性存储器设备NVM11至NVM1n可以通过路径W11至W1n连接到第一通道CH1。非易失性存储器设备NVM21至NVM2n可以通过路径W21至W2n连接到第二通道CH2。在一些示例实施例中,非易失性存储器设备NVM11至NVMmn中的每个或者一个或更多个可以被实现为能够根据来自存储控制器210的单独命令操作的任意存储器单元。例如,非易失性存储器设备NVM11至NVMmn中的每个或者一个或更多个可以被实现为芯片或管芯。然而,本发明构思不限于此。
存储控制器210可以通过多个通道CH1至CHm向非易失性存储器220发送信号以及从非易失性存储器220接收信号。例如,存储控制器210可以通过通道CH1至CHm向非易失性存储器220发送命令CMDa至CMDm、地址ADDRa至ADDRm和/或数据DATAa至DATAm,可以和/或通过通道CH1至CHm从易失性存储器220接收数据DATAa至DATAm。
存储控制器210可以通过对应通道来选择连接到该对应通道的非易失性存储器设备之一,并且可以通过对应通道向和/或从所选择的非易失性存储器设备发送和/或接收信号。例如,存储控制器210可以从连接到第一通道CH1的非易失性存储器设备NVM11至NVM1n中选择非易失性存储器设备NVM11。存储控制器210可以通过第一通道CH1向所选择的非易失性存储器设备NVM11发送命令CMDa、地址ADDRa和/或数据DATAa,和/或可以通过第一通道CH1从所选择的非易失性存储器设备NVM11接收数据DATAa。
存储控制器210可以通过不同通道以并行方式向和/或从非易失性存储器220发送和/或接收信号。例如,存储控制器210可以在通过第一通道CH1向非易失性存储器220发送命令CMDa的同时,通过第二通道CH2向非易失性存储器220发送命令CMDb。例如,存储控制器210可以在通过第一通道CH1从非易失性存储器220接收数据DATAa的同时,通过第二通道CH2从非易失性存储器220接收数据DATAb。
存储控制器210可以控制非易失性存储器220的整体操作。存储控制器210可以向通道CH1至CHm发送信号以控制连接到通道CH1至CHm的非易失性存储器设备NVM11至NVMmn中的每个或者一个或更多个。例如,存储控制器210可以向第一通道CH1发送命令CMDa和地址ADDRa以控制非易失性存储器设备NVM11至NVM1n中的所选择的一个。
非易失性存储器设备NVM11至NVMmn中的每个或者一个或更多个可以在存储控制器210的控制下操作。例如,非易失性存储器设备NVM11可以基于提供给第一通道CH1的命令CMDa、地址ADDRa和/或数据DATAa对数据DATAa进行编程(或写入数据DATAa)。例如,非易失性存储器设备NVM21可以基于提供给第二通道CH2的命令CMDb和地址ADDRb来读取数据DATAb,并且可以向存储控制器210发送读取的数据DATAb。
在图3中,描述了非易失性存储器220通过m个通道与存储控制器210通信并且非易失性存储器220包括对应于每个通道的n个非易失性存储器设备的示例。然而,示例实施例不限于此。可以各种各样地修改通道的数量和连接到一个通道的非易失性存储器设备的数量。如上所述的图1的盐值ST可以以数据DATAa至DATAm的形式传送到非易失性存储器220并存储在其中。
图4是示出图1的存储控制器、存储器接口和非易失性存储器的重新配置的图。图1中的存储器接口212可以包括图4中的控制器接口电路212a。
非易失性存储器220可以包括第一引脚P11至第八引脚P18、存储器接口电路212b、控制逻辑电路510和/或存储器单元阵列520。
存储器接口电路212b可以通过第一引脚P11从存储控制器210接收芯片使能信号nCE。存储器接口电路212b可以基于芯片使能信号nCE通过第二引脚P12至第八引脚P18向和/或从存储控制器210发送和/或接收信号。例如,当芯片使能信号nCE处于使能状态(例如,低电平状态)时,存储器接口电路212b可以通过第二引脚P12至第八引脚P18向和/或从存储控制器210发送和/或接收信号。
存储器接口电路212b可以通过第二引脚P12至第四引脚P14从存储控制器210接收命令锁存使能信号CLE、地址锁存使能信号ALE和/或写使能信号nWE。存储器接口电路212b可以通过第七引脚P17从存储控制器210接收数据信号DQ和/或向存储控制器210发送数据信号DQ。命令CMD、地址ADDR和/或数据DATA可以在被包括在数据信号DQ中的同时被发送。例如,数据信号DQ可以通过多条数据信号线传输。在这种情况下,第七引脚P17可以包括与多个数据信号对应的多个引脚。
存储器接口电路212b可以基于写使能信号nWE的切换定时从在命令锁存使能信号CLE的使能时段(例如,高电平状态)内接收的数据信号DQ获取命令CMD。存储器接口电路212b可以基于写使能信号nWE的切换定时从在地址锁存使能信号ALE的使能时段(例如,高电平状态)内接收的数据信号DQ获取地址ADDR。
在一些示例实施例中,写使能信号nWE可以保持在静态(例如,高电平状态或低电平状态),然后可以在高电平状态和低电平状态之间切换。例如,写使能信号nWE可以在发送命令CMD和/或地址ADDR的时间段内切换。因此,存储器接口电路212b可以基于写使能信号nWE的切换定时来获取命令CMD和/或地址ADDR。
存储器接口电路212b可以通过第五引脚P15从存储控制器210接收读使能信号nRE。存储器接口电路212b可以通过第六引脚P16从存储控制器210接收数据选通信号DQS和/或向存储控制器210发送数据选通信号DQS。
在非易失性存储器220的数据DATA输出操作中,存储器接口电路212b可以在输出数据DATA之前通过第五引脚P15接收切换读使能信号nRE。存储器接口电路212b可以基于读使能信号nRE的切换来生成切换数据选通信号DQS。例如,存储器接口电路212b可以生成数据选通信号DQS,该数据选通信号DQS在从读使能信号nRE的切换开始时间起的预定的(或可选地给定的)延迟(例如,tDQSRE)之后开始切换。存储器接口电路212b可以基于数据选通信号DQS的切换定时来发送包括数据DATA的数据信号DQ。因此,可以在与数据选通信号DQS的切换定时对准的定时将数据DATA发送到存储控制器210。在此操作下,可以将如上所述存储在非易失性存储器220中的图1的盐值ST提供给存储控制器210。
在非易失性存储器220的数据DATA输入操作中,在从存储控制器210接收到包括数据DATA的数据信号DQ时,存储器接口电路212b可以从存储控制器210接收切换数据选通信号DQS以及数据DATA。存储器接口电路212b可以基于数据选通信号DQS的切换定时从数据信号DQ获取数据DATA。例如,存储器接口电路212b可以通过在数据选通信号DQS的上升沿和/或下降沿对数据信号DQ进行采样来获取数据DATA。在此操作下,如上所述存储在非易失性存储器220中的图1的盐值ST可以从存储控制器210传送到非易失性存储器220并且可以存储在其中。
存储器接口电路212b可以通过第八引脚P18向存储控制器210发送就绪/忙碌输出信号nR/B。存储器接口电路212b可以使用就绪/忙碌输出信号nR/B向存储控制器210发送非易失性存储器220的状态信息。当非易失性存储器220处于忙碌状态时(即,当非易失性存储器220的内部操作正在执行时),存储器接口电路212b可以向存储控制器210发送指示忙碌状态的就绪/忙碌输出信号nR/B。当非易失性存储器220处于就绪状态时(即,当非易失性存储器220的内部操作未执行或完成时,存储器接口电路212b向存储控制器210发送指示就绪状态的就绪/忙碌输出信号nR/B。
例如,在非易失性存储器220响应于页面读取命令从存储器单元阵列520读取数据DATA时,存储器接口电路212b可以向存储控制器210发送指示忙碌状态的就绪/忙碌输出信号nR/B(例如,低电平状态)。例如,当非易失性存储器220响应于编程命令将数据DATA编程到存储器单元阵列520中时,存储器接口电路212b可以向存储控制器210发送指示忙碌状态的就绪/忙碌输出信号nR/B。
控制逻辑电路510可以控制非易失性存储器220的各种操作中的所有或者一个或更多个。控制逻辑电路510可以接收从存储器接口电路212b获得的命令/地址CMD/ADDR。控制逻辑电路510可以根据接收到的命令/地址CMD/ADDR来生成用于控制非易失性存储器220的其它组件的控制信号。例如,控制逻辑电路510可以生成用于对存储器单元阵列520中的数据DATA进行编程和/或从存储器单元阵列520读取数据DATA的各种控制信号。
在控制逻辑电路510的控制下,存储器单元阵列520可以在其中存储从存储器接口电路212b获得的数据DATA。存储器单元阵列520可以在控制逻辑电路510的控制下将存储的数据DATA输出到存储器接口电路212b。
存储器单元阵列520可以包括多个存储器单元。例如,多个存储器单元可以是闪速存储器单元。然而,发明构思不限于此。存储器单元可以包括RRAM(电阻式随机存取存储器)单元、FRAM(铁电随机存取存储器)单元、PRAM(相变随机存取存储器)单元、TRAM(晶闸管随机存取存储器)单元和/或MRAM(磁性随机存取存储器)单元等。在下文中,将基于存储器单元被体现为NAND闪速存储器单元的示例来描述本发明构思的示例实施例。
存储控制器210可以包括第一引脚P21至第八引脚P28以及控制器接口电路212a。第一引脚P21至第八引脚P28可以分别对应于非易失性存储器220的第一引脚P11至第八引脚P18。
控制器接口电路212a可以通过第一引脚P21向非易失性存储器220发送芯片使能信号nCE。控制器接口电路212a可以通过第二引脚P22至第八引脚P28向和/或从基于芯片使能信号nCE选择的非易失性存储器220发送和接收信号。
控制器接口电路212a可以通过第二引脚P22至第四引脚P24向非易失性存储器220发送命令锁存使能信号CLE、地址锁存使能信号ALE和/或写使能信号nWE。控制器接口电路212a可以通过第七引脚P27向非易失性存储器220发送数据信号DQ和/或通过第七引脚P27从非易失性存储器220接收数据信号DQ。
控制器接口电路212a可以将包括命令CMD和/或地址ADDR的数据信号DQ连同切换写使能信号nWE一起发送到非易失性存储器220。在具有使能状态的命令锁存使能信号CLE被发送时,控制器接口电路212a可以向非易失性存储器220发送包括命令CMD的数据信号DQ。在具有使能状态的地址锁存使能信号ALE被发送时,控制器接口电路212a可以向非易失性存储器220发送包括地址ADDR的数据信号DQ。
控制器接口电路212a可以通过第五引脚P25向非易失性存储器220发送读使能信号nRE。控制器接口电路212a可以通过第六引脚P26从非易失性存储器220接收数据选通信号DQS和/或通过第六引脚P26向非易失性存储器220发送数据选通信号DQS。
在非易失性存储器220的数据DATA输出操作中,控制器接口电路212a可以生成切换读使能信号nRE并向非易失性存储器220发送读使能信号nRE。例如,在数据DATA被输出之前,控制器接口电路212a可以生成其状态从固定状态(例如,高电平状态或低电平状态)改变为切换状态的读使能信号nRE。因此,非易失性存储器220可以基于读使能信号nRE来生成切换数据选通信号DQS。控制器接口电路212a可以从非易失性存储器220接收包括数据DATA的数据信号DQ以及切换数据选通信号DQS。控制器接口电路212a可以基于数据选通信号DQS的切换定时从数据信号DQ获取数据DATA。在此操作下,可以将如上所述存储在非易失性存储器220中的图1的盐值ST提供给存储控制器210。
在非易失性存储器220的数据DATA输入操作中,控制器接口电路212a可以生成切换数据选通信号DQS。例如,控制器接口电路212a可以在发送数据DATA之前生成其状态从固定状态(例如,高电平状态或低电平状态)改变为切换状态的数据选通信号DQS。控制器接口电路212a可以基于数据选通信号DQS的切换定时向非易失性存储器220发送包括数据DATA的数据信号DQ。在此操作下,如上所述存储在非易失性存储器220中的图1的盐值ST可以从存储控制器210提供到非易失性存储器220并且可以存储在其中。
控制器接口电路212a可以通过第八引脚P28从非易失性存储器220接收就绪/忙碌输出信号nR/B。控制器接口电路212a可以基于就绪/忙碌输出信号nR/B来确定非易失性存储器220的状态信息。
图5是示出根据一些实施例的图4的非易失性存储器的框图。
参照图5,非易失性存储器220可以包括控制逻辑电路510、存储器单元阵列520、页缓冲器550、电压发生器530和/或行解码器540。尽管未在图5中示出,但是非易失性存储器220还可以包括图4所示的存储器接口电路212b。非易失性存储器220还可以包括列逻辑、预解码器、温度传感器、命令解码器和/或地址解码器等。
控制逻辑电路510可以控制非易失性存储器220的各种操作中的所有或者一个或更多个。控制逻辑电路510可以响应于来自存储器接口电路(图4中的212b)的命令CMD和/或地址ADDR输出各种控制信号。例如,控制逻辑电路510可以输出电压控制信号CTRL_vol、行地址X-ADDR和/或列地址Y-ADDR。
存储器单元阵列520可以包括多个存储器块BLKl至BLKz,其中z是正整数。多个存储器块BLK1至BLKz中的每个或者一个或更多个可以包括多个存储器单元。存储器单元阵列520可以通过位线BL连接到页缓冲器550,并且可以通过字线WL、串选择线SSL和地选择线GSL连接到行解码器540。
在一些示例实施例中,存储器单元阵列520可以包括三维存储器单元阵列。三维存储器单元阵列可以包括多个NAND串。每个或者一个或更多个NAND串可以包括分别连接到垂直堆叠在衬底上的字线的存储器单元。在一些示例实施例中,存储器单元阵列520可以包括二维存储器单元阵列。二维存储器单元阵列可以包括沿行方向和列方向排列的多个NAND串。
页缓冲器550可以包括多个页缓冲器PB1至PBn,其中n是大于或等于3的整数。多个页缓冲器PB1至PBn可以分别通过多条位线BL连接到存储器单元。页缓冲器550可以响应于列地址Y-ADDR从位线BL中选择至少一条位线。页缓冲器550可以取决于操作模式而用作写入驱动器和/或感测放大器。例如,在编程操作中,页缓冲器550可以向所选择的位线施加与将要被编程的数据对应的位线电压。在读取操作中,页缓冲器550可以检测所选择的位线的电流和/或电压,因此基于检测到的电流和/或电压来检测存储在存储器单元中的数据。
电压发生器530可以基于电压控制信号CTRL_vol来产生用于执行编程、读取和/或擦除操作的各种电压。例如,电压发生器530可以产生编程电压、读取电压、编程验证电压和/或擦除电压等作为字线电压VWL。
行解码器540可以响应于行地址X-ADDR来选择多条字线WL之一,并且可以选择多条串选择线SSL之一。例如,在编程操作中,行解码器540可以向所选择的字线施加编程电压和编程验证电压,并且可以在读取操作中向所选择的字线施加读取电压。
图6是用于示出可应用于根据一些示例实施例的非易失性存储器的3DV-NAND结构的图。当存储设备的存储模块被实现为3D V-NAND型闪速存储器时,构成存储模块的多个存储器块中的每个或者一个或更多个可以由如图6所示的等效电路来表示。
图6所示的存储器块BLKi表示以三维结构形成在衬底上的三维存储器块。例如,包括在存储器块BLKi中的多个存储器NAND串可以在垂直于衬底的方向上延伸。
参照图6,存储器块BLKi可以包括设置在位线BL1、BL2、BL3和公共源极线CSL之间并连接到位线BL1、BL2、BL3和公共源极线CSL的多个存储器NAND串NS11至NS33。多个存储器NAND串NS11至NS33中的每个或者一个或更多个可以包括串选择晶体管SST、多个存储器单元MC1、MC2、……、MC8和/或地选择晶体管GST。在图6中,示出了多个存储器NAND串NS11至NS33中的每个或者一个或更多个包括八个存储器单元MC1、MC2、……、MC8的示例。然而,本发明构思的示例实施例未必限于此。
串选择晶体管SST可以连接到串选择线SSL1、SSL2和SSL3中的对应一条。多个存储器单元MC1、MC2、……、MC8可以分别连接到对应的栅极线GTL1、GTL2、……、GTL8。栅极线GTL1、GTL2、……、GTL8可以用作字线。栅极线GTL1、GTL2、……、GTL8中的一些可以用作虚设字线。地选择晶体管GST可以连接到地选择线GSL1、GSL2和GSL3中的对应一条。串选择晶体管SST可以连接到位线BL1、BL2和BL3中的对应一条,而地选择晶体管GST可以连接到公共源极线CSL。
在相同垂直水平处的字线可以集成为一条字线。地选择线GSL1、GSL2和GSL3可以彼此分离。串选择线SSL1、SSL2和SSL3可以彼此分离。图6示出了存储器块BLK连接到8条栅极线GTL1、GTL2、……、GTL8和3条位线BL1、BL2和BL3的示例。然而,本发明构思的示例实施例未必限于此。
图7是用于示出根据一些示例实施例的密钥生成器中的私钥生成操作的流程图。图8至图13是用于示出密钥生成器中的私钥生成操作的图。
参照图7,例如当启动存储设备(图1中的200)时和/或当向存储设备(图1中的200)供电时,私钥生成操作开始。然而,示例实施例不限于此。在另一示例中,生成私钥的操作可以例如响应于从主机设备(图1中的100)提供的命令和/或从外部组件提供的中断信号而开始。
参照图7,在S100中,密钥生成器接收密钥ID。
例如,参照图8,密钥生成器214可以从操作存储设备的固件219接收密钥ID KID。在一些示例实施例中,固件219可以将密钥ID KID输入到密钥生成器以调用密钥生成器214。
参照图7,在S200中,密钥生成器可以识别与密钥ID匹配的盐值是否存储在非易失性存储器中。例如,参照图8,密钥生成器214可以识别与从固件219提供的密钥ID KID匹配的盐值ST是否存储在非易失性存储器220中。
参照图7,当与密钥ID匹配的盐值没有存储在非易失性存储器中(S200-否)时,在S300中,密钥生成器可以根据预定的(或可选地给定的)过程来生成私钥。相反,当与密钥ID匹配的盐值存储在非易失性存储器中(S200-是)时,在S400中,密钥生成器可以使用存储在非易失性存储器中的盐值来生成私钥。
在下文中,参照图9至图12,将首先描述根据预定的(或可选地给定的)过程来生成私钥的操作S300。
参照图9和图10,在S301中,密钥生成器214的种子生成器214a从固件219接收盐值ST。然后,在S302中,密钥生成器214从密钥材料生成器217接收密钥材料KM。
就此而言,因为固件219将盐值ST输入到密钥生成器214以调用密钥生成器214,所以固件219不能访问由密钥材料生成器217生成的密钥材料KM。因此,即使当发生安全问题时,例如固件219被黑客入侵,由密钥生成器214生成的私钥也可以安全地受到保护。即,可以提高存储设备200的安全可靠性。
就此而言,密钥材料KM可以是与存储设备200相关的唯一信息。密钥材料KM可以使用例如PUF和OTP中的至少一种来生成。然而,示例实施例不限于此。
接下来,参照图9和图11,在S310中,密钥生成器214的种子生成器214a基于从固件219提供的盐值ST和从密钥材料生成器217提供的密钥材料KM来生成种子。
在一些示例实施例中,种子生成器214a可以基于从固件219提供的盐值ST和从密钥材料生成器217提供的密钥材料KM来生成散列值作为种子。然而,示例实施例不限于此。
接下来,参照图9和图11,在S320中,密钥生成器214的随机数生成器214b基于由种子生成器214a生成的种子来生成随机数。
在一些示例实施例中,随机数生成器214b可以包括DRBG。当随机数生成器214b包括DRBG时,随机数生成器214b可以通过确定性算法对相同的种子(输入)生成相同的结果值。
在一些示例实施例中,在S320中,随机数生成器214b可以基于由种子生成器214a生成的种子来生成随机数p和q。然后,在S330中,随机数生成器214b可以识别p和q中的每个或者一个或更多个是否是用于生成私钥的适当数字。在一些示例实施例中,随机数生成器214b可以识别p和/或q中的每个或者一个或更多个是否是质数。然而,示例实施例不限于此。
随机数生成器214b识别p和/或q中的每个是否是质数。当p和/或q中的每个是质数(S330-是)时,随机数生成器214b将p和/或q提供给密钥计算器214c。
相反,当p和/或q中的至少一个不是质数(S330-否)时,在S320中,随机数生成器214b重新生成p和/或q。
接下来,参照9和图11,在S340中,密钥生成器214的密钥计算器214c基于由随机数生成器214b生成的随机数来生成原始密钥。
例如,密钥计算器214c可以接收由随机数生成器214b生成的随机数,并对其执行预定的(或可选地给定的)计算以生成原始密钥。
接下来,参照图9和图11,在S350中,密钥生成器214的有效密钥检查器214d验证由密钥计算器214c生成的原始密钥。
例如,有效密钥检查器214d可以将由密钥计算器214c生成的原始密钥与公钥进行比较,并识别两者是否彼此互质。
当基于验证结果确定由密钥计算器214c生成的原始密钥和公钥不彼此互质(S350-否)时,密钥生成器214向固件219请求新的盐值ST,如图12所示。响应于该请求,固件219可以将新的盐值ST提供给密钥生成器214。为了种子生成操作S310再次被执行,固件219可以将新的盐值ST提供给种子生成器214c。例如,固件219可以将新的盐值ST输入到密钥生成器214以再次调用密钥生成器214。
当基于验证结果确定由密钥计算器214c生成的原始密钥和公钥彼此互质(S350-是)时,在S360中,密钥生成器214使用原始密钥来生成私钥。
然后,在S370中,密钥生成器214将生成的私钥提供给非对称密码模块218。非对称密码模块218可以将传输的私钥存储在其中,该私钥又将用于非对称密码模块218的加密操作。
然后,在S371中,密钥生成器214将用于生成私钥的盐值存储在非易失性存储器220中。就此而言,盐值可以以与从固件提供的密钥ID(图8中的KID)匹配的方式存储在非易失性存储器220中。
密钥生成器214将用于生成私钥的盐值存储在非易失性存储器220中的原因在于,密钥生成器214可以在稍后应生成私钥时高速生成私钥。如果用于生成私钥的盐值没有存储在非易失性存储器220中,则每当存储设备启动或上电时都可能重复如上所述的验证操作(图9中的S350)。该重复操作可能导致存储设备的性能下降。因此,在根据本实施例的存储设备中可以减少或消除该问题。
换言之,即使当存储设备的固件被黑客入侵时,用于加密操作的密钥也可以在保持或提高安全性的同时以高速或提高的速度生成。
接下来,参照图13,描述使用存储在非易失性存储器中的盐值来生成私钥的操作(图7中的S400)。
参照图13,因为存在存储在非易失性存储器中的盐值,所以在S401中,密钥生成器214从非易失性存储器220接收盐值。然后,在S402中,密钥生成器214从密钥材料生成器217接收密钥材料KM。
然后,密钥生成器214基于从非易失性存储器220提供的盐值和从密钥材料生成器217提供的密钥材料KM来生成私钥S410。该生成操作类似于图9所示的操作。然而,可以通过单次验证来生成私钥。
此后,在S420中,密钥生成器214将生成的私钥提供给非对称密码模块218。非对称密码模块218可以将传输的私钥存储在其中,该私钥又将用于非对称密码模块218的加密操作。
图14是用于示出根据一些示例实施例的执行存储设备的认证的操作的流程图。图15是用于示出根据一些示例实施例的执行存储设备的认证的操作的图。
首先,参照图14,在S500中,主机设备100向存储控制器210请求认证。
在接收到认证请求后,在S510中,存储控制器210使用私钥来生成认证信息。
例如,参照图15,固件219将例如从主机设备100提供的密钥ID KID和/或数据DT提供给非对称密码模块218。例如,固件219可以将密钥ID KID和/或数据DT输入到非对称密码模块218以调用非对称密码模块218。
非对称密码模块218可以使用存储在其中的私钥PK对数据DT进行加密,并向固件219发送加密结果CR。
就此而言,存储在非对称密码模块218中的私钥PK可以是通过如上所述的操作生成的私钥PK。即,存储在非对称密码模块218中的私钥PK可以是通过图9所示的操作生成的私钥PK,或者可以是通过图14所示的操作生成的私钥PK。
接下来,参照图14,在S520中,存储控制器210向主机设备100发送用私钥加密的认证信息。在一个示例中,主机设备100可以使用公钥来认证加密的认证信息。
图16是示出应用了根据一些实施例的存储设备的数据中心的图。
参照图16,数据中心3000可以是收集各种数据并提供服务的设施,并且可以被称为数据存储中心。数据中心3000可以是用于操作搜索引擎和/或数据库的系统,和/或可以是在诸如银行和/或政府机构的业务中使用的计算系统。数据中心3000可以包括应用服务器3100至3100n和/或存储服务器3200至3200m。可以根据实施例各种各样地选择应用服务器3100至3100n的数量和存储服务器3200至3200m的数量。应用服务器3100至3100n的数量和存储服务器3200至3200m的数量可以彼此不同。
应用服务器3100和/或存储服务器3200可以包括处理器3110和/或3210、和/或存储器3120和/或3220中的至少一个。将以举例的方式描述存储服务器3200的配置。就此而言,处理器3210可以控制存储服务器3200的整体操作,并且可以访问存储器3220以运行加载到存储器3220中的指令和/或数据。存储器3220可以包括DDR SDRAM(双倍数据速率同步DRAM)、HBM(高带宽存储器)、HMC(混合存储器立方体)、DIMM(双列直插存储器存模块)、傲腾DIMM或NVMDIMM(非易失性DIMM)。根据一些示例实施例,可以各种各样地选择包括在存储服务器3200中的处理器3210的数量和/或存储器3220的数量。
在一些示例实施例中,处理器3210和存储器3220可以提供处理器-存储器对。在一些示例实施例中,处理器3210的数量和存储器3220的数量可以彼此不同。处理器3210可以包括单核处理器或多核处理器。存储服务器3200的以上描述可以类似地应用于应用服务器3100。根据一些示例实施例,应用服务器3100可以不包括存储设备3150。存储服务器3200可以包括至少一个存储设备3250。根据一些示例实施例,可以各种各样地选择包括在存储服务器3200中的存储设备3250的数量。
应用服务器3100至3100n和/或存储服务器3200至3200m可以通过网络3300彼此通信。网络3300可以使用FC(光纤通道)或以太网来实现。就此而言,FC可以是用于相对高速的数据传输的介质,并且可以使用提供高性能/高可用性的光学开关。取决于网络3300的访问方案,存储服务器3200至3200m可以被体现为文件存储、块存储和/或对象存储等。
在一些示例实施例中,网络3300可以被体现为诸如SAN(存储区域网络)的存储专用网络。例如,SAN可以是FC-SAN,其使用FC网络并根据FCP FC协议来实现。在一些示例实施例中,SAN可以是IP-SAN,其使用TCP/IP网络并根据iSCSI(TCP/IP上SCSI或互联网SCSI)协议来实现。在一些示例实施例中,网络1300可以是通用网络,诸如TCP/IP网络。例如,网络1300可以根据诸如FCoE(以太网上FC)、NAS(网络附加存储)和/或NVMe-oF(结构上NVMe(NVMe over Fabrics))等的协议来实现。
在下文中,描述将集中于应用服务器3100和存储服务器3200。应用服务器3100的描述可以同等地应用于其它应用服务器3100n。存储服务器3200的描述可以同等地应用于其它存储服务器3200m。
应用服务器3100可以在从用户或客户端接收到存储数据的请求后通过网络3300将数据存储在存储服务器3200至3200m之一中。此外,应用服务器3100可以在从用户或客户端接收到读取数据的请求后通过网络3300从存储服务器3200至3200m之一获取数据。例如,应用服务器3100可以被实现为网络服务器和/或DBMS(数据库管理系统)等。
应用服务器3100可以通过网络3300访问包括在另一应用服务器3100n中的存储器3120n和/或存储设备3150n。或者,应用服务器3100可以通过网络3300访问包括在存储服务器3200至3200m中的存储器3220和/或3220m、和/或存储设备3250至3250m。因此,应用服务器3100可以对存储在应用服务器3100至3100n和/或存储服务器3200至3200m中的数据执行各种操作。例如,应用服务器3100可以运行用于在应用服务器3100至3100n和/或存储服务器3200至3200m之间移动和/或复制数据的指令。此时,数据可以通过存储服务器3200至3200m的存储器3220至3220m从存储服务器3200至3200m的存储设备3250至3250m流到应用服务器3100至3100n的存储器3120至3120n,或者可以从存储服务器3200至3200m的存储设备3250至3250m直接传送到应用服务器3100至3100n的存储器3120至3120n。为了安全或隐私,通过网络3300流动的数据可以是加密数据。
以举例的方式描述存储服务器3200。接口3254可以提供处理器3210和控制器3251之间的物理连接以及NIC 3240和控制器3251之间的物理连接。例如,接口3254可以以DAS(直接附加存储)方案来实现,在该方案中存储设备3250直接连接到专用电缆。此外,例如,接口3254可以以各种接口方案(诸如ATA(高级技术附件)、SATA(串行ATA)、e-SATA(外部SATA)、SCSI(小型计算机小型接口)、SAS(串行连接SCSI)、PCI(外围组件互连)、PCIe(PCI高速)、NVMe(NVM高速)、IEEE 1394、USB(通用串行总线)、SD(安全数字)卡、MMC(多媒体卡)、eMMC(嵌入式多媒体卡)、UFS(通用闪存)、eUFS(嵌入式通用闪存)和/或CF(紧凑型闪存)卡接口等)来实现。
存储服务器3200还可以包括开关3230和/或NIC 3240。在处理器3210的控制下,开关3230可以选择性地将处理器3210和存储设备3250彼此连接或者选择性地将NIC 3240和存储设备3250彼此连接。
在一些示例实施例中,NIC 3240可以包括网络接口卡、网络适配器等。NIC 3240可以通过有线接口、无线接口、蓝牙接口和/或光学接口等连接到网络3300。NIC 3240可以包括内部存储器、DSP、主机总线接口等,并且可以通过主机总线接口连接到处理器3210和/或开关3230。主机总线接口可以被实现为如上所述的接口3254的示例之一。在一些示例实施例中,NIC3240可以与处理器3210、开关3230和/或存储设备3250中的至少一个集成。
在存储服务器3200至3200m或应用服务器3100至3100n中,处理器可以向存储设备3130至3130n和3250至3250m或存储器3120至3120n和3220至3220m发送命令,以将数据编程到其中或从其中读取数据。在这种情况下,可以通过ECC(错误校正码)引擎对数据进行数据错误校正。数据可以是经过DBI(数据总线反转)或DM(数据屏蔽)的数据,并且可以包括CRC(循环冗余码)信息。为了安全或隐私,数据可以是加密数据。
存储设备3150至3150m和/或3250至3250m可以响应于从处理器接收的读取命令向NAND闪速存储器设备3252至3252m发送控制信号和/或命令/地址信号。因此,当从NAND闪速存储器设备3252至3252m读出数据时,可以输入RE(读使能)信号作为数据输出控制信号以允许数据输出到DQ总线。可以使用RE信号来生成DQS(数据选通)。命令和/或地址信号可以根据WE(写使能)信号的上升沿和/或下降沿被锁存到页缓冲器中。
控制器3251可以控制存储设备3250的整体操作。在一个实施例中,控制器3251可以包括SRAM(静态随机存取存储器)。控制器3251可以响应于写入命令将数据写入NAND闪存3252。或者,控制器3251可以响应于读出命令从NAND闪存3252读出数据。例如,写入命令和/或读出命令可以从存储服务器3200中的处理器3210、另一存储服务器3200m中的处理器3210m和/或应用服务器3100和/或3100n中的处理器3110和/或3110n提供。在一些实施例中,控制器3251可以具有与如上所述的存储控制器(图1中的210)的配置类似的配置。在一些实施例中,控制器3251可以包括如上所述的密钥生成器(图1中的214)。如上所述用于生成私钥的盐值(图1的ST)可以存储在NAND闪存3252中。
DRAM 3253可以在其中临时存储(缓冲)将要写入NAND闪存3252的数据和/或从NAND闪存3252读出的数据。此外,DRAM 3253可以在其中存储元数据。就此而言,元数据可以是用户数据和/或由控制器3251生成以管理NAND闪存3252的数据。为了安全或隐私,存储设备3250可以包括SE(安全元件)。
以上公开的一个或更多个元件可以包括一个或更多个处理电路或在一个或更多个处理电路中实现,该一个或更多个处理电路诸如为:包括逻辑电路的硬件;硬件/软件组合,诸如运行软件的处理器;或其组合。例如,更具体地,处理电路可以包括但不限于中央处理单元(CPU)、算术逻辑单元(ALU)、数字信号处理器、微型计算机、现场可编程门阵列(FPGA)、片上系统(SoC)、可编程逻辑单元、微处理器、专用集成电路(ASIC)等。
尽管上面已经参照附图描述了本发明构思的一些示例实施例,但是本发明构思可以不限于这些示例实施例并且可以以各种不同的形式来实现。本发明构思所属技术领域的普通技术人员将能够理解,在不改变本公开的发明构思或基本特征的情况下,可以以其它特定形式来实现本发明构思。因此,应理解,如上所述的示例实施例在所有方面都是说明性的,而不是限制性的。

Claims (19)

1.一种存储设备,包括:
非易失性存储器;以及
存储控制器,被配置为:
控制非易失性存储器的操作;
生成密钥材料;
从固件接收密钥身份证明(ID);
确定与密钥ID匹配的盐值是否存储在非易失性存储器中;
响应于确定与密钥ID匹配的盐值存储在非易失性存储器中,使用密钥材料和存储在非易失性存储器中的盐值来生成私钥;以及
响应于确定与密钥ID匹配的盐值没有存储在非易失性存储器中,
从固件接收盐值并使用密钥材料和来自固件的盐值来生成私钥,以及
将用于生成私钥的盐值存储在非易失性存储器中。
2.根据权利要求1所述的存储设备,其中密钥材料是与存储设备相关的唯一信息。
3.根据权利要求2所述的存储设备,其中存储控制器被配置为使用物理不可克隆功能(PUF)或一次性密码(OTP)中的至少一种来生成密钥材料。
4.根据权利要求1所述的存储设备,其中存储控制器被配置为使用非对称密钥算法来执行非对称加密操作。
5.根据权利要求1所述的存储设备,其中存储控制器被配置为:
基于密钥材料和用于生成私钥的盐值来生成种子;
基于种子来生成随机数;
基于随机数来生成原始密钥;以及
验证原始密钥。
6.根据权利要求5所述的存储设备,其中存储控制器被配置为通过基于密钥材料和用于生成私钥的盐值生成散列值来生成种子。
7.根据权利要求5所述的存储设备,其中存储控制器被配置为使用确定性随机位生成器(DRBG)基于种子来生成第一随机数和第二随机数。
8.根据权利要求7所述的存储设备,其中存储控制器被配置为:
识别第一随机数和第二随机数中的每个是否是质数;
响应于第一随机数和第二随机数中的每个是质数,基于第一随机数和第二随机数来生成原始密钥;以及
响应于第一随机数和第二随机数中的至少一个不是质数,重新生成第一随机数和第二随机数。
9.根据权利要求5所述的存储设备,其中存储控制器被配置为:
确定原始密钥和公钥是否彼此互质;
响应于确定原始密钥和公钥彼此互质,使用原始密钥来生成私钥;以及
响应于确定原始密钥和公钥不彼此互质,从固件请求新的盐值。
10.一种存储设备,包括:
非易失性存储器;以及
存储控制器,被配置为:
控制非易失性存储器的操作;
生成密钥材料;
从固件接收盐值;
使用盐值和密钥材料来生成私钥;
将盐值存储在非易失性存储器中;以及
使用非对称密钥算法和生成的私钥来执行非对称加密操作。
11.根据权利要求10所述的存储设备,其中固件不能访问密钥材料。
12.根据权利要求10所述的存储设备,其中存储控制器被配置为使用对称密钥算法对输入数据执行加密操作或解密操作中的至少一种。
13.根据权利要求10所述的存储设备,其中存储控制器被配置为:
使用物理不可克隆功能(PUF)或一次性密码(OTP)中的至少一种来生成密钥材料,其中密钥材料是与存储设备相关的唯一信息。
14.根据权利要求10所述的存储设备,其中存储控制器被配置为:
基于盐值和密钥材料来生成种子;
基于种子来生成随机数;
基于随机数来生成原始密钥;以及
验证原始密钥。
15.根据权利要求14所述的存储设备,其中存储控制器被配置为:
使用确定性随机位生成器(DRBG)基于种子来生成第一随机数和第二随机数;
确定第一随机数和第二随机数中的每个是否是质数;
响应于确定第一随机数和第二随机数中的每个是质数,基于第一随机数和第二随机数来生成原始密钥;以及
响应于确定第一随机数和第二随机数中的至少一个不是质数,重新生成第一随机数和第二随机数。
16.根据权利要求15所述的存储设备,其中存储控制器被配置为确定原始密钥和公钥是否彼此互质,
响应于确定原始密钥和公钥彼此互质,使用原始密钥来生成私钥;以及
响应于确定原始密钥和公钥不彼此互质,从固件请求新的盐值。
17.一种存储设备,包括:
非易失性存储器;以及
存储控制器,被配置为:
控制非易失性存储器的操作;
从主机设备接收认证请求;
响应于接收到认证请求,基于私钥来生成认证信息,其中私钥使用存储在非易失性存储器中的盐值和由密钥材料生成器生成的密钥材料来生成;以及
向主机设备发送认证信息。
18.根据权利要求17所述的存储设备,其中存储控制器被配置为在从主机设备接收到认证请求之前生成私钥,并存储私钥。
19.根据权利要求18所述的存储设备,其中存储在非易失性存储器中的盐值是从固件提供的多个盐值当中的用于生成私钥的盐值。
CN202211111730.XA 2021-09-15 2022-09-13 存储设备、在存储设备中生成密钥和执行认证的方法 Pending CN115809488A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210123214A KR102430219B1 (ko) 2021-09-15 2021-09-15 스토리지 장치, 스토리지 장치의 키 생성 방법 및 스토리지 장치의 인증 방법
KR10-2021-0123214 2021-09-15

Publications (1)

Publication Number Publication Date
CN115809488A true CN115809488A (zh) 2023-03-17

Family

ID=82826516

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211111730.XA Pending CN115809488A (zh) 2021-09-15 2022-09-13 存储设备、在存储设备中生成密钥和执行认证的方法

Country Status (4)

Country Link
US (1) US20230082136A1 (zh)
EP (1) EP4152686A1 (zh)
KR (1) KR102430219B1 (zh)
CN (1) CN115809488A (zh)

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307936B1 (en) * 1997-09-16 2001-10-23 Safenet, Inc. Cryptographic key management scheme
US7865730B2 (en) * 2006-01-30 2011-01-04 Kronos Technology Systems Limited Partnership Bcencryption (BCE)—a public-key based method to encrypt a data stream
US7987367B2 (en) * 2006-08-30 2011-07-26 Samsung Electronics Co., Ltd. Method and apparatus for key agreement between devices using polynomial ring
US8423789B1 (en) * 2007-05-22 2013-04-16 Marvell International Ltd. Key generation techniques
CA2621147C (en) * 2008-02-15 2013-10-08 Connotech Experts-Conseils Inc. Method of bootstrapping an authenticated data session configuration
KR101496975B1 (ko) * 2008-05-28 2015-03-02 삼성전자주식회사 고체 상태 디스크 및 이에 대한 입출력방법
KR20090131696A (ko) * 2008-06-19 2009-12-30 삼성전자주식회사 암/복호화 장치 및 이를 포함하는 보안 저장 장치
KR20100094862A (ko) * 2009-02-19 2010-08-27 삼성전자주식회사 스토리지 장치 및 그것의 데이터 관리 방법
KR101808188B1 (ko) * 2011-07-04 2017-12-13 삼성전자주식회사 이동 기기에 대한 그룹 키 관리를 위한 방법 및 장치
EP2730048A2 (en) * 2011-07-07 2014-05-14 Verayo, Inc. Cryptographic security using fuzzy credentials for device and server communications
KR101878682B1 (ko) * 2011-11-14 2018-07-18 삼성전자주식회사 컨텐츠를 보호하기 위한 방법 및 저장 매체
KR20140050322A (ko) * 2012-10-19 2014-04-29 삼성전자주식회사 사용자 디바이스의 고유 식별자 제공 방법 및 장치
KR20150017844A (ko) * 2013-08-08 2015-02-23 삼성전자주식회사 페이지 구성 방법 및 이를 지원하는 전자 장치
KR20150032970A (ko) * 2013-09-23 2015-04-01 삼성전자주식회사 보안 기능을 제공하는 저장 매체 및 그 보안 방법
EP3051744B1 (en) * 2013-10-28 2019-01-02 Huawei Device (Dongguan) Co., Ltd. Key configuration method and apparatus
KR20150095273A (ko) * 2014-02-13 2015-08-21 삼성전자주식회사 모바일 스토리지의 파일별 암복호화 방법들
US9904651B2 (en) * 2014-07-31 2018-02-27 Samsung Electronics Co., Ltd. Operating method of controller for setting link between interfaces of electronic devices, and storage device including controller
KR102292641B1 (ko) * 2014-12-30 2021-08-23 삼성전자주식회사 메모리 컨트롤러, 그 동작 방법 및 이를 포함하는 메모리 시스템
US10778435B1 (en) * 2015-12-30 2020-09-15 Jpmorgan Chase Bank, N.A. Systems and methods for enhanced mobile device authentication
KR20180013524A (ko) * 2016-07-29 2018-02-07 삼성전자주식회사 전자 장치 및 전자 장치의 생체 정보 인증 방법
US10389688B2 (en) * 2016-08-23 2019-08-20 NXT-Security, LLC Vaultless tokenization engine
WO2018046073A1 (en) * 2016-09-06 2018-03-15 Huawei Technologies Co., Ltd. Apparatus and methods for distributed certificate enrollment
KR20180119201A (ko) * 2017-04-24 2018-11-02 삼성전자주식회사 인증 시스템을 위한 전자 장치
KR102420158B1 (ko) 2017-12-27 2022-07-13 삼성전자주식회사 파일 단위의 암호화 키에 기반하여 암호화를 수행하도록 구성되는 스토리지 장치, 스토리지 시스템, 및 그 동작 방법
US10917251B2 (en) * 2018-03-30 2021-02-09 Intel Corporation Apparatus and method for generating hybrid static/dynamic entropy physically unclonable function
US10862680B2 (en) * 2018-09-26 2020-12-08 Intel Corporation Encoding process for multiple RSA and ECC keys
US10754619B2 (en) * 2018-09-27 2020-08-25 Intel Corporation Self-calibrated von-neumann extractor
EP3663956A1 (de) * 2018-12-03 2020-06-10 Steen Harbach AG Mikrocontroller
US11368299B2 (en) * 2018-12-10 2022-06-21 Marvell Asia Pte, Ltd. Self-encryption drive (SED)
US11636470B2 (en) * 2019-09-25 2023-04-25 Visa International Service Association Key-value map commitments system and method
KR20210064854A (ko) * 2019-11-26 2021-06-03 삼성전자주식회사 메모리 컨트롤러, 메모리 컨트롤러를 포함하는 스토리지 장치, 및 메모리 컨트롤러의 동작 방법
US11290271B2 (en) * 2020-02-27 2022-03-29 Ford Global Technologies, Llc Secure storage enhancements for authentication systems
US11522686B2 (en) * 2020-07-16 2022-12-06 Salesforce, Inc. Securing data using key agreement
US11728974B2 (en) * 2021-01-29 2023-08-15 Salesforce, Inc. Tenant-based database encryption
US11893141B2 (en) * 2021-02-18 2024-02-06 PUFsecurity Corporation Method and control circuit for managing information of electronic device
US20230032099A1 (en) * 2021-07-15 2023-02-02 Nanyang Technological University Physical unclonable function based mutual authentication and key exchange
JP2023037732A (ja) * 2021-09-06 2023-03-16 キヤノン株式会社 情報処理方法、プログラム及び情報処理装置

Also Published As

Publication number Publication date
US20230082136A1 (en) 2023-03-16
KR102430219B1 (ko) 2022-08-05
EP4152686A1 (en) 2023-03-22

Similar Documents

Publication Publication Date Title
US20240045958A1 (en) Anti-malware algorithm and hw/fw for internal ssd health and storage space protection against cyber-attacks
US20240037233A1 (en) Ransomware and malicious software protection in ssd/ufs by nvme instructions log analysis based on machine-learning
US11733875B2 (en) Method of writing data in nonvolatile memory device and nonvolatile memory device performing the same
KR20230068935A (ko) 스토리지 장치 및 그 구동 방법
KR102430219B1 (ko) 스토리지 장치, 스토리지 장치의 키 생성 방법 및 스토리지 장치의 인증 방법
CN114647374A (zh) 执行处理代码的存储装置和存储装置的操作方法
US12032699B2 (en) Storage device and method of operating the same
US20230139519A1 (en) Storage device supporting multi-tenant operation and methods of operating same
US20230143189A1 (en) Storage device and method of operating the same
US20230135891A1 (en) Storage device including storage controller and operating method
EP4184332A1 (en) Storage controller and storage device including the same
US20230141409A1 (en) Storage device and operating method thereof
EP4398111A1 (en) Computational storage device and method for operating the device
US11842076B2 (en) Storage system and operating method for same
US20240220151A1 (en) Computational storage device and method for operating the device
US11899941B2 (en) Storage device and operating method thereof
US20240193105A1 (en) Computational storage device and method of operating the same
KR102547251B1 (ko) 비휘발성 메모리 장치를 제어하는 제어기, 그것을 포함하는 저장 장치 및 그것의 동작 방법
US20240220651A1 (en) Storage device and method for generating token
EP4187398A1 (en) Controller controlling non-volatile memory device, storage device including the same, and operating method thereof
US20230114199A1 (en) Storage device
US20230195332A1 (en) Storage devices, methods of operating storage devices, and methods of operating host devices
CN118298877A (zh) 计算存储装置和用于操作计算存储装置的方法
KR20230068939A (ko) 스토리지 장치 및 그 구동 방법
KR20230067430A (ko) 스토리지 장치 및 그 구동 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication