技术领域
发明构思的至少一个示例实施例可涉及密码装置。发明构思的至少一个示例实施例可涉及包括密码装置的存储装置。发明构思的至少一个示例实施例可涉及加密/解密方法。
背景技术:
数据加密标准(DES)可指应用各个国家参与的美国国家标准协会(ANSI)中的标准的块加密协议。块加密协议可包括3-DES、高级加密标准(AES)等。可在块加密协议中定义各种操作模式(例如,电子密码本(ECB)、密码块链接(CBC)、输出反馈(OFB)、密码反馈(CFB)、XOR-加密-XOR(XEX)以及具有调整(tweak)和密码电文窃取的XEX加密模式(XTS))。在数据网络中,加密装置可使用块密码和/或各种操作模式,在这些模式中,可使用块密码执行加密以确保数据安全。
技术实现要素:
发明构思的一些示例实施例可提供新的密码装置。
发明构思的一些示例实施例可提供具有新的密码装置的存储装置。
发明构思的一些示例实施例可提供新的密码装置的加密方法。
发明构思的一些示例实施例可提供新的密码装置的解密方法。
在一些示例实施例中,一种用于在具有至少一个密码核的密码装置中进行的数据的加密、解密、或者加密及解密的方法,可包括:生成与顺序的块数据中的位于随机位置的块数据对应的调整值,其中,从所述随机位置开始加密、解密、或者加密及解密;和/或使用调整值从块数据执行加密、解密、或者加密及解密。
在一些示例实施例中,生成调整值的步骤可包括:执行将本原元素与加密的初始调整值相乘的乘法运算。
在一些示例实施例中,所述方法还可包括:通过对初始调整值进行加密,生成加密的初始调整值。
在一些示例实施例中,对初始调整值进行加密的步骤可包括:按对应于随机位置的序列号,重复地更新乘法运算。
在一些示例实施例中,更新乘法运算所需的周期的数量可少于针对一个块数据执行加密、解密、或者加密及解密所需的周期的数量。
在一些示例实施例中,更新乘法运算的步骤可包括:执行异或(XOR)运算、移位运算、或者异或(XOR)运算及移位运算。
在一些示例实施例中,所述至少一个密码核可包括多个密码核。可在多个密码核中的每个密码核中,执行加密、解密、或者加密及解密。
在一些示例实施例中,执行加密、解密、或者加密及解密的步骤可包括:在所述多个密码核中的每个密码核中针对顺序的块数据,同时执行加密、解密、或者加密及解密。
在一些示例实施例中,执行加密、解密、或者加密及解密的步骤可包括:在所述多个密码核中的每个密码核中顺序接收执行加密、解密、或者加密及解密所需的调整值。
在一些示例实施例中,执行加密、解密、或者加密及解密的步骤可包括:在所述多个密码核中的每个密码核中针对顺序的块数据,顺序执行加密、解密、或者加密及解密。
在一些示例实施例中,所述方法还可包括:从调整值顺序生成在加密、解密、或者加密及解密中所需的额外的调整值;和/或存储调整值和额外调整值。
在一些示例实施例中,一种用于在具有多个密码核的密码装置中进行的数据的加密方法,可包括:执行用于对初始调整值进行加密的初始操作;使用加密的初始调整值和本原元素执行至少一个乘法运算,以生成关于随机块数据的位置的调整值;和/或在所述多个密码核中的每个密码核中,使用调整值从随机块数据顺序执行数据加密操作。
在一些示例实施例中,所述方法还可包括:确定密码装置的操作模式是否是加速模式。
在一些示例实施例中,当操作模式是加速模式时,可在所述多个密码核中,同时执行数据加密操作。
在一些示例实施例中,当操作模式是加速模式时,可在所述多个密码核中,顺序执行数据加密操作。
在一些示例实施例中,所述方法还可包括:从所述多个密码核顺序接收在数据加密操作中所需的调整值。
在一些示例实施例中,所述的方法还可包括:接收关于随机块数据的位置的信息。
在一些示例实施例中,所述方法还可包括:确定是否要绕过针对分区数据的加密操作。所述密码装置针对多个顺序的分区数据执行加密操作。所述多个顺序的分区数据中的每个分区数据包括顺序的块数据。
在一些示例实施例中,确定是否要绕过所述加密操作的步骤可包括:决定在分区数据中的一个分区数据中是否存在误差。
在一些示例实施例中,所述方法还可包括:连续更新对应于被绕过的块数据的乘法运算,以当在加密操作中绕过分区数据中的一个分区数据时,计算下一个分区的调整值。
在一些示例实施例中,密码装置可包括:至少一个调整值生成器,被配置为从随机位置的块数据,生成执行数据加密操作所需的调整值;和/或多个密码核,被配置为使用调整值顺序对块数据进行加密、解密、或者加密及加密。
在一些示例实施例中,调整值生成器可包括多个调整值生成器,所述多个调整值生成器中的每个调整值生成器被配置为向所述多个密码核中的每个密码核提供调整值。
在一些示例实施例中,调整值生成器可被配置为顺序向所述多个密码核提供调整值。
在一些示例实施例中,密码装置还可包括:多个存储单元,被配置为存储调整值。
在一些示例实施例中,调整值可包括第一调整值和第二调整值。所述多个存储单元可包括:第一存储单元,被配置为顺序存储第一调整值;和/或第二存储单元,被配置为顺序存储第二调整值。
在一些示例实施例中,一种存储装置可包括:至少一个非易失性存储器装置;和/或存储器控制器,被配置为控制所述至少一个非易失性存储器装置。存储器控制器可包括:误差校正码电路,被配置为检测或校正关于顺序的分区数据中的每个分区数据的误差;和/或密码电路,被配置为对分区数据进行随机加密、解密、或者加密及解密。
在一些示例实施例中,密码电路可被配置为当在分区数据中不存在误差时针对所述分区数据顺序执行加密、解密、或者加密及解密。
在一些示例实施例中,密码电路可被配置为当在分区数据中的一个分区数据中存在误差时,在加密、解密、或者加密及解密中绕过所述分区数据中的一个分区数据。
在一些示例实施例中,误差校正码电路可被配置为当在分区数据中的一个分区数据中存在误差时,校正关于所述分区数据中的一个分区数据的误差。密码电路可被配置为针对校正后的分区数据执行加密、解密、或者加密及解密。
在一些示例实施例中,当在所述分区数据中的一个分区数据中存在误差时,可从外部装置新输入所述分区数据中的一个分区数据。密码电路可被配置为针对新输入的分区数据,执行加密、解密、或者加密及解密。
在一些示例实施例中,存储装置可包括固态驱动器(SSD)。
在一些示例实施例中,一种用于块数据的加密、解密、或加密和解密的方法,可包括:生成与随机位置的块数据对应的调整值;和/或使用调整值执行块数据的加密、解密、或者加密及解密。
在一些示例实施例中,其中,生成调整值的步骤可包括:执行将本原元素与加密的初始调整值相乘的乘法运算。
在一些示例实施例中,所述方法还可包括:通过对初始调整值进行加密,生成加密的初始调整值。
在一些示例实施例中,对初始调整值进行加密的步骤可包括:按对应于随机位置的序列号,更新乘法运算。
在一些示例实施例中,更新乘法运算所需的周期的数量可少于针对一个块数据执行加密、解密、或者加密及解密所需的周期的数量。
在一些示例实施例中,更新乘法运算的步骤可包括:执行异或(XOR)运算、移位运算或异或(XOR)运算及移位运算。
附图说明
根据下面结合附图对示例实施例进行的详细描述,以上和/或其他方面和优点将变得更清楚并且更容易理解,在附图中:
图1是用于描述发明构思的至少一个示例实施例的框图;
图2是示出AES-XTS块加密处理的框图;
图3是示出AES-XTS块解密处理的框图;
图4是用于描述根据发明构思的至少一个示例实施例的加密操作的框图;
图5是示出根据发明构思的至少一个示例实施例的使用多个密码核进行的加密操作的时序图;
图6是示出根据发明构思的至少一个示例实施例的使用多个密码核进行的加密操作的时序图;
图7是示出根据发明构思的至少一个示例实施例的使用多个密码核进行的加密操作的时序图;
图8是示出根据发明构思的至少一个示例实施例的使用多个密码核进行的加密操作的时序图;
图9是示出根据发明构思的至少一个示例实施例的使用多个密码核进行的加密操作的时序图;
图10是示出使用本原元素(primitive element)执行乘法运算的处理的框图;
图11是示出使用本原元素α执行两次乘法运算的处理的框图;
图12是示出根据发明构思的至少一个示例实施例的密码装置的正常模式下的加密操作的框图;
图13是用于描述根据发明构思的至少一个示例实施例的关于密码装置的加速模式下的加密操作的至少一个示例实施例的框图;
图14是用于描述根据发明构思的至少一个示例实施例的关于密码装置的加速模式下的加密操作的至少一个示例实施例的框图;
图15是示出根据发明构思的至少一个示例实施例的密码装置的框图;
图16是示出根据发明构思的至少一个示例实施例的密码装置的框图;
图17是示出根据发明构思的至少一个示例实施例的密码装置的框图;
图18是示出根据发明构思的至少一个示例实施例的密码装置的框图;
图19是示出根据发明构思的至少一个示例实施例的密码装置的框图;
图20是示出根据发明构思的至少一个示例实施例的密码装置的加密/解密方法的流程图;
图21是示出根据发明构思的至少一个示例实施例的存储装置的框图;
图22是示出根据发明构思的至少一个示例实施例的存储装置的加密方法的流程图;
图23是示出根据发明构思的至少一个示例实施例的电子装置的框图;
图24是示出根据发明构思的至少一个示例实施例的SSD的框图;
图25是示出根据发明构思的至少一个示例实施例的移动装置的框图。
具体实施方式
现在,将参照附图更充分地描述示例实施例。然而,这些实施例可用许多不同形式来实施并且不应该被理解为限于在此所阐述的实施例。相反地,提供这些示例实施例使得本公开将是彻底和完全的,并且这些示例实施例将把范围充分地传达给本领域的技术人员。在附图中,为了清楚起见,可夸大层和区域的厚度。
应该理解,当元件被称为“在”另一个组件“上”、“连接到”、“电连接到”、或“结合到”另一个组件时,其可直接在其他组件上、直接连接到、直接电连接到、或直接结合到其他组件,或者可存在中间组件。相反,当组件被称为“直接在”另一个组件“上”、“直接连接到”、“直接电连接到”、或“直接结合到”另一个组件时,不存在中间组件。如这里所使用的,术语“和/或”包括一个或多个相关所列项的任意组合和所有组合。
应该理解,尽管在这里可使用术语“第一”、“第二”、“第三”等来描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分应该不受这些术语的限制。这些术语只是用来将一个元件、组件、区域、层和/或部分与另一个元件、组件、区域、层和/或部分区分开来。例如,在不脱离示例性实施例的教导的情况下,第一元件、组件、区域、层和/或部分可被命名为第二元件、组件、区域、层和/或部分。
为了便于描述,这里可使用空间相对术语诸如“在…之下”、“在…下方”、“下面的”、“在…之上”、“上面的”等来描述在附图中示出的一个组件和/或特征与另一个组件和/或特征或其他组件和/或特征的关系。将理解,空间相对术语意在包含除了在附图中描绘的方位之外的使用或操作中装置的不同方位。
这里使用的术语只是为了描述特定示例实施例的目的,而不意图限制示例实施例。如这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式。还应该理解,当在本说明书中使用术语“包含”、“包括”和/或变型时,说明存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或附加一个或多个其他特征、整体、步骤、操作、元件、组件和/或其组。
除非另有定义,否则这里使用的所有术语(包括技术术语和科技术语)具有与示例实施例所属领域的普通技术人员通常理解的含义相同的含义。还将理解,除非这里明确如此定义,否则术语(诸如,在通用字典中定义的术语)应该被解释为具有与现有技术的背景中的含义一致的含义,而不应被解释为理想地或者过于正式的含义。
现在,将描述在附图中示出的示例实施例,在附图中相同的参考标号可始终表示相同的组件。
图1是用于描述发明构思的范围和精神的框图。参照图1,根据发明构思的至少一个示例实施例的加密操作可随机地加密多个顺序的块数据P1至Pk(例如,k是2或更大的整数)中的任何块数据Pj(例如,j是1或更大的整数)。也就是说,加密操作可从块数据P1至Pk中的位于随机位置的块数据Pj开始。在图1中,在从随机位置的块数据Pj顺序执行加密操作之后,可针对第一块数据P1执行加密操作。然而,根据发明构思的至少一个示例实施例的加密操作不限于此。
同时,在图1中描述了加密操作。然而,发明构思不限于此。本发明的至少一个示例实施例可类似地应用于解密操作。
在至少一个示例实施例中,根据发明构思的至少一个示例实施例的加密操作可应用于各种类型的操作模式,在这些操作模式下,执行按块加密秘密信息所用的块密码。这里,操作模式可以是电子密码本(ECB);密码块链接(CBC);密码反馈(CFB);输出反馈(OFB);计数器(CTR);Liskov、Rivest和Wagner(LRW)可调块密码;异或-加密-异或(XEX);具有调整(tweak)和密码电文失窃的XEX加密模式(XTS);CBC掩码CBC(CMC);ECB掩码电子安全代理(ESB)(EME)等。为了方便进行下面的描述,假设操作模式是XTS模式。
在通常XTS模式下,可执行关于存储在基于分区(sector)的装置中的数据的加密/解密。因为按分区执行加密/解密操作,因此可按分区使用新密钥或调整(tweak)值来执行加密/解密操作。这里,分区的大小可包括512字节、520字节、1千字节、4千字节等。因为当在XTS模式下执行加密/解密时按分区执行加密/解密,所以可难以加密和解密位于分区中的随机位置的数据。
另一方面,发明构思的至少一个示例实施例可开始关于位于分区中的随机位置的块数据的加密/解密。因此,发明构思的至少一个示例实施例可减少关于加密/解密的时间并且可降低关于加密/解密时的功耗。
通常,存储装置可主要使用高级加密标准(AES)-XTS块密码。以下,简要描述AES-XTS块加密/解密。
图2是示出AES-XTS块加密处理的框图。参照图2,块加密处理如下。可针对作为纯文本的块数据P和调整值Tj执行异或(XOR)运算。这里,调整值Tj可以是通过将第一加密操作值与关于本原元素(primitive element)α的更新值αj相乘而得到的值。第一加密操作值可以是使用第二密钥Key2加密初始调整值“i”的值,“j”可以是与多个块数据中的块数据P的位置信息对应的序列号。这里,可通过AES算法执行第一加密操作。第二加密操作值CC可以是使用第一密钥Key1加密XOR运算值PP的值。这里,可通过AES算法执行第二加密操作。可通过针对第二加密操作值CC和调整值Tj执行XOR运算,生成作为密码电文的加密块数据C。
在至少一个示例实施例中,可在一个密码核中处理第一加密操作和第二加密操作。在至少一个示例实施例中,可在不同密码核中处理第一加密操作和第二加密操作。
图3是示出AES-XTS块解密处理的框图。参照图3,块密码处理如下。可针对作为密码电文的加密块数据C和调整值Tj执行XOR运算。这里,调整值Tj可以是通过针对加密操作值和关于本原元素α的更新值αj执行模乘法而得到的值。加密操作值可以是使用第二密钥Key2加密初始调整值“i”的值,“j”可以是与加密块数据C的位置信息对应的序列号。解密操作值PP可以是使用第一密钥Key1解密XOR运算值CC的值。这里,可通过AES算法执行解密操作。可通过针对解密操作值PP和调整值Tj执行XOR运算,生成作为纯文本的块数据P。
图4是用于描述根据发明构思的至少一个示例实施例的加密操作的框图。参照图4,在加密操作中,可通过加密1024顺序的块数据P1至P1024,生成1024个加密块数据C1至C1024。这里,作为加密对象的块数据的数量可以是(但不限于)1024个。
在至少一个示例实施例中,一个块数据可以是16字节。然而,根据发明构思的至少一个示例实施例的块数据的大小不限于此。图4中示出的分区数据可包括128个块数据。在至少一个示例实施例中,分区数据的大小可以是2千字节。然而,发明构思不限于所述分区数据。
如图4中所示,根据发明构思的至少一个示例实施例的加密操作可包括初始操作、乘法运算和数据加密操作。
在初始操作中,可通过使用第二密钥Key2和加密算法AES_Enc加密初始调整值“i”,生成加密调整值。在乘法运算中,可通过将通过对应于加密调整值的序列号“j”更新本原元素α的值与加密调整值相乘,生成调整值Tj。在数据加密操作中,可通过使用第一密钥Key1、更新的调整值Tj和加密算法AES_Enc加密块数据P1至P1024,分别生成加密块数据C1至C1024。
在至少一个示例实施例中,数据加密操作可顺序从块数据P1至P1024之中的任一个块数据的随机位置开始。
在至少一个示例实施例中,数据加密操作可在多个密码核中并行执行。
同时,在图4中,发明构思的至少一个示例实施例被示例为乘法运算和数据加密操作被区分开,但发明构思不限于此。因为在乘法运算中所需的周期的数量比数据加密操作中所需的周期的数量相对少得多,所以可在数据加密操作中包括乘法运算。同时,发明构思不限于所述加密操作(例如,初始操作、乘法运算和数据加密操作)。
以下,将描述在多个密码核中并行执行的加密操作。
图5是示出根据发明构思的至少一个示例实施例的使用多个密码核进行的加密操作的时序图。为了方便进行下面的描述,在图5中,假设使用8个密码核。然而,发明构思不限于所述加密操作中使用的密码核的数量。此外,基于密码核的时序可指的是图5中示出的加密操作。因此,在图5中可不示出关于在密码核外部执行的图4中示出的乘法运算的时序。在图5中,假设在关于各块的数据加密操作中包括乘法运算。
参照图5,总密加密作时间t_crypo可包括初始操作时间t_int和数据加密操作时间t_enc。
在初始操作时间t_int,可执行在XTS模式下所需的初始操作。可使用初始调整值“i”和加密算法来生成加密调整值。
在数据加密操作时间t_enc,密码核中的每个密码核可接收关于对应的块数据的加密操作中所需的调整值并且可使用更新的调整值Tj和第一密钥Key1从对应的块数据顺序执行数据保密操作。例如,第一密码核可顺序加密第1块数据P1、第9块数据P9、…、第1017块数据P1017。剩余密码核可类似地执行数据加密操作。
在至少一个示例实施例中,可从分别对应于密码核的多个乘法器输入调整值Tj。这里,乘法器中的每个乘法器可执行图4中示出的乘法运算。在至少一个示例实施例中,可从分别对应于密码核的多个寄存器输入调整值Tj。这里,可从一个乘法器生成分别存储在寄存器中的调整值。这里,乘法器可执行图4中示出的乘法运算。发明构思不限于所述加密操作。
同时,因为假设在数据加密操作中所需的调整值(例如,Tj)被分别同时输入到密码核,所以可不示出调整值输入时间。然而,发明构思不限于此。在根据发明构思的至少一个示例实施例的加密操作中,调整值可被顺序输入密码核。
图6是示出根据发明构思的至少一个示例实施例的使用多个密码核进行的加密操作的时序图。参照图6,在加密操作中,相比于图5中示出的时序图,可在密码核中的每个密码核中顺序开始数据加密操作。原因会是,顺序输入对应的更新的调整值。因此,如图6中所示,相比于图5中示出的时序图,总加密操作时间t_crypto_1还可包括调整值输入时间t_tweak_in。这里,调整值输入时间t_tweak_in可以是调整值被顺序输入第二密码核至第八密码核的时间。同时,发明构思不限于图6中示出的加密操作。
同时,在密码核中顺序执行数据加密操作的原因会是因为顺序输入调整值,其它原因会是因为顺序输入数据。例如,因为16字节的数据被顺序输入到各密码核,所以在输入数据的时间期间,可顺序更新调整值。
同时,在根据发明构思的至少一个示例实施例的加密操作中,数据加密操作可从随机块数据的位置开始。对应于随机块数据的调整值Tj可被设置以在随机块数据的位置执行数据加密操作。
图7是示出根据发明构思的至少一个示例实施例的使用多个密码核进行的加密操作的时序图。图7的加密操作与图5的加密操作的不同之处在于,加密操作从块数据P897开始。这里,数据加密操作从其开始的块数据P897可以是示例(但不限于块数据P897)。
在通常的加密操作中,当因为数据块被顺序加密而出现关于块数据的误差时,误差可被校正,并且块数据可被加密。因此,关于块数据的误差校正时间可被包括在加密操作时间中。然而,在根据发明构思的至少一个示例实施例的加密操作中,第一无误差块数据可被加密,同时,可通过在随机位置开始加密操作来校正关于块数据的误差。因此,误差校正时间可被包括在总加密操作时间t_crypto_2中。由于以上描述,而从随机位置的块数据开始数据加密操作可被称为“加密操作的加速模式”。
在图7中,数据加密操作可从第897块数据P897开始,以加速加密操作。因此,相比于图5中示出的时序图,总加密操作时间t_crypto_2还可包括生成对应于第897块数据P897的调整值(T897)的XTS模式加速时间t_tweak_acc。
图8是示出根据发明构思的至少一个示例实施例的使用多个密码核进行的加密操作的时序图。参照图8,在加密操作中,相比于图7中示出的时序图,数据加密操作可在多个密码核中的每个中顺序开始。因此,相比于图7中示出的时序图,总加密操作时间t_crypto_3还可包括调整值输入时间t_tweak_in。
同时,在图5和图8中,数据加密操作可在密码核中的每个密码核中同时或顺序执行。然而,发明构思不限于所述加密操作。根据发明构思的至少一个示例实施例,数据加密操作可在密码核中的每个密码核中顺序或同时执行。
图9是示出根据发明构思的至少一个示例实施例的使用多个密码核进行的加密操作的时序图。参照图9,加密操作可在密码核中的每个密码核中顺序执行。例如,第1块数据P1至第128块数据P128可在第一密码核中顺序加密。当第一密码核顺序加密第1块数据P1至第128块数据P128时,剩余的密码核可执行数据加密操作。
以下,将描述计算调整值所需的使用本原元素α进行的乘法运算(例如,更新操作)。
图10是示出使用本原元素α执行乘法运算的处理的框图。为了方便进行下面的描述,假设如图2中所述输入乘法器的加密调整值是A[127:0],并且从乘法器输出的加密调整值是Y1[127:0]。参照图10,可如下地通过移位运算或XOR运算来表达乘法运算:
Y1[127]=A[126]^A[7],Y1[126:123]=A[125:122],Y1[122]=A[121]^A[7],Y1[121]=A[120]^A[7],Y1[120]=A[7],Y1[119:113]=A[118:112],Y1[112]=A[127],Y1[111:105]=A[110:104],Y1[104]=A[119],Y1[103:97]=A[102:96],Y1[96]=A[111],Y1[95:89]=A[94:88],Y1[88]=A[103],Y1[87:81]=A[86:80],Y1[80]=A[95],Y1[79:73]=A[78:72],Y1[72]=A[87],Y1[71:65]=A[70:64],Y1[64]=A[79],Y1[63:57]=A[62:56],Y1[56]=A[71],Y1[55:49]=A[54:48],Y1[48]=A[63],Y1[47:41]=A[46:40],Y1[40]=A[55],Y1[39:33]=A[38:32],Y1[32]=A[47],Y1[31:25]=A[30:24],Y1[24]=A[39],Y1[23:17]=A[22:16],Y1[16]=A[31],Y1[15:9]=A[14:8],Y1[8]=A[23],Y1[7:1]=A[6:0],Y1[0]=A[15]。这里,“^”可以是指示异或运算的运算符。
图11是示出使用本原元素α执行两次乘法运算的处理的框图。参照图11,可如下地通过移位运算或XOR运算来表达两次的乘法运算:
Y2[127]=A[125]^A[6],Y2[126:124]=A[124:122],Y2[123]=A[121]^A[7],Y2[122]=A[120]^A[7]^A[6],Y2[121]=A[7]^A[6],Y2[120]=A[6],Y2[119:114]=A[117:112],Y2[113]=A[127],Y2[112]=A[126]^A[7],Y2[111:106]=A[109:104],Y2[105:104]=A[119:118],Y2[103:98]=A[101:96],Y2[97:96]=A[111:110],Y2[95:90]=A[93:88],Y2[89:88]=A[103:102],Y2[87:82]=A[85:80],Y2[81:80]=A[95:94],Y2[79:74]=A[77:72],Y2[73:72]=A[87:86],Y2[71:66]=A[69:64],Y2[65:64]=A[79:78],Y2[63:58]=A[61:56],Y2[57:56]=A[71:70],Y2[55:50]=A[53:48],Y2[49:48]=A[63:62],Y2[47:42]=A[45:40],Y2[41:40]=A[55:54],Y2[39:34]=A[37:32],Y2[33:32]=A[47:46],Y2[31:26]=A[29:24],Y2[25:24]=A[39:38],Y2[23:18]=A[21:16],Y2[17:16]=A[31:30],Y2[15:10]=A[13:8],Y2[9:8]=A[23:22],Y2[7:2]=A[5:0],Y2[1:0]=A[15:14]。
同时,在图10和图11中描述通过执行一次乘法运算或者执行两次乘法运算来计算调整值Y1和Y2的处理。类似地,可计算通过执行n次乘法运算来更新的调整值Tj(参照图2)。
图12是示出根据发明构思的至少一个示例实施例的密码装置的正常模式下的加密操作的框图。为了方便进行下面的描述,在图12中,假设四个顺序的分区数据SEC1至SEC4被加密,密码核按16字节执行加密操作,并且执行关于各块数据的加密操作的时间是15个周期。在至少一个示例实施例中,分区数据SEC1至SEC4中的每个的大小可以是1千字节。然而,发明构思不限于所述分区数据的大小。
参照图12,可通过执行15个周期的乘法运算,生成更新的调整值Tj(参照图2)。也就是说,在加密操作的正常模式下,可在密码核中用15个周期顺序更新调整值Tj。
在至少一个示例实施例中,为了执行加密操作,可通过15个周期顺序生成256个更新的调整值并且可将更新的调整值输入到密码核。在至少一个示例实施例中,为了执行加密操作,可用期望数量的周期(可以是预定的或可以不是预定的)生成并且存储256个更新的调整值,并且每当需要加密操作时,对应的调整值可被输入到密码核。
在至少一个示例实施例中,在关于分区数据SEC1至SEC4中的每个分区数据的加密操作中,初始调整值“i”可以是不同的。在至少一个示例实施例中,在关于分区数据SEC1至SEC4中的每个分区数据的加密操作中,初始调整值“i”可以是彼此相同的。
图13是用于描述根据发明构思的至少一个示例实施例的关于密码装置的加速模式下的加密操作的至少一个示例实施例的框图。为了方便进行描述,在图13中,假设数据加密操作从四个顺序的分区数据SEC1至SEC4之中的第二分区数据SEC2中的第65块数据P65开始,并且各分区数据包括64个块数据。参照图13,在针对随机块数据(例如,P65)开始数据加密操作之前,可针对随机块数据P65执行多次(例如,64次)乘法运算。可通过执行多次乘法运算来计算对应于随机块数据P65的调整值(例如,T65)。也就是说,可更新通过执行64次乘法运算而得到的调整值。当用一个周期执行一个乘法运算时,可用64个周期计算调整值。然而,发明构思不限于此。可用64个周期计算调整值(T65),但也可用一个周期计算调整值(T65)。因为之前已知的是通过执行“n”次乘法运算而得到的值,所以可计算每次更新的调整值(T65)。
在至少一个示例实施例中,乘法运算中的每个乘法运算中所需的周期的数量可比加密操作中所需的周期的数量(例如,15个周期)少得多。例如,可用一个周期执行乘法运算。这里,一个周期可以是密码核中使用的一个时钟周期。这里,可通过多个XOR运算符来执行乘法运算。
图14是用于描述根据发明构思的至少一个示例实施例的关于密码装置的加速模式下的加密操作的至少一个示例实施例的框图。为了方便进行描述,在图14中描述关于包括四个顺序的分区数据A、B、C和D的数据的加密操作。参照图14,根据发明构思的至少一个示例实施例的加密操作可不加密而是绕过分区数据的一部分(例如,B)。即便在加密操作中绕过了第二分区数据B,调整值Tj(参照图2)也可被连续更新,以针对剩余分区数据C和D执行正常加密操作。发明构思不限于所述加密操作。
同时,如图14中所示,可通过分区数据随机地执行加密/解密操作。然而,发明构思不限于此。要理解,可从分区数据中的随机位置随机地执行加密/解密操作。
图15是示出根据发明构思的至少一个示例实施例的密码装置100的框图。参照图15,密码装置100可包括密码核110(例如,硬件、软件)和调整值生成器120(例如,硬件、软件)。
密码核110可接收密钥Key1和调整值Tj并且可使用密钥Key1和调整值Tj来加密块数据Pj,并且可生成加密块数据Cj。这里,“j”可以是与块加密操作相关的序列号。
调整值生成器120可生成在关于第j块数据Pj的加密中所需的调整值Tj。在至少一个示例实施例中,调整值生成器120可实时生成调整值Tj并且可将调整值Tj输出到密码核110。根据发明构思的至少一个示例实施例的调整值生成器120可生成调整值Tj,以在密码核110中的从随机块数据(例如,Pj)开始数据加密操作。
同时,图15中示出的密码装置100可包括(但不限于)一个密码核110。根据发明构思的至少一个示例实施例的密码装置可包括多个密码核。
图16是示出根据发明构思的至少一个示例实施例的密码装置200的框图。参照图16,密码装置200可包括多个密码核211至21N(例如,N是2或更大的整数)(例如,硬件、软件)和多个调整值生成器221至22N(例如,硬件、软件)。
密码核211至21N中的每个密码核可接收密钥Key1和调整值Tj至Tj+(N-1)中的对应的一个调整值。密码核211至21N可分别加密块数据Pj至Pj+(N-1)并且可生成加密块数据Cj至Cj+(N-1)。密码核211至21N中的每个密码核可被操作并实施为与图15中示出的密码核110相同。
调整值生成器221至22N可分别生成在加密操作中使用的调整值Tj至Tj+(N-1)。同时,可分别从调整值生成器221至22N生成调整值Tj至Tj+(N-1),但不限于此。可从一个调整值生成器顺序生成调整值。
图17是示出根据发明构思的至少一个示例实施例的密码装置300的框图。参照图17,在密码装置300中,可使用一个调整值生成器320实现图16中示出的密码装置200中的多个调整值生成器的功能。调整值生成器320可顺序生成多个调整值Tj至Tj+(N-1)。同时,根据发明构思的至少一个示例实施例的密码装置还可包括暂时存储调整值Tj至Tj+(N-1)的存储单元。
图18是示出根据发明构思的至少一个示例实施例的密码装置400的框图。参照图18,密码装置400可包括多个密码核411至41N和多个存储单元431至43N。
存储单元431至43N可分别存储调整值Tj至Tj+(N-1)。这里,可从图16中示出的调整值生成器221至22N或图17中示出的调整值生成器320输入调整值Tj至Tj+(N-1)。在至少一个示例实施例中,可使用寄存器实现存储单元431至43N中的每个存储单元。
同时,图18中的存储单元431至43N可分别与密码核411至41N区分开。然而,发明构思不限于此。存储单元431至43N可分别位于对应的密码核411至41N中。
同时,图18中的存储单元431至43N可分别布置在密码核411至41N中。然而,发明构思不限于所述存储单元。根据发明构思的至少一个示例实施例的密码装置可包括与密码核共享的存储单元。
图19是示出根据发明构思的至少一个示例实施例的密码装置500的框图。参照图19,密码装置500可包括多个密码核511至51N以及第一存储单元531和第二存储单元532。
第一存储单元531可顺序存储第一调整值Tj至Tj+2(N-1)。这里,可从图16中示出的调整值生成器221至22N或图17中示出的调整值生成器320(例如,硬件、软件)输入第一调整值Tj至Tj+2(N-1)。密码核511至51N中的每个密码核可从第一存储单元531顺序读取在加密操作中所需的第一调整值Tj至Tj+2(N-1)。
第二存储单元532可顺序存储第二调整值Tj+1至Tj+2(N-1)-1。这里,可从图16中示出的调整值生成器221至22N或图17中示出的调整值生成器320输入第二调整值Tj+1至Tj+2(N-1)-1。密码核511至51N中的每个密码核可接收在加密操作期间所需的第二存储单元532顺序输出的第二调整值Tj+1至Tj+2(N-1)-1中的对应的一个第二调整值。
在至少一个示例实施例中,在块数据被输入到多个密码核并且加密/解密操作开始的时间点以及在密码核中的每个密码核的最后循环的时间点,可在存储单元531和532中更新第一调整值和第二调整值。
然而,发明构思不限于存储单元531和532。
图20是示出根据发明构思的至少一个示例实施例的密码装置的加密/解密方法的流程图。参照图1至图20,密码装置的加密/解密方法如下。
可确定操作模式是否是用于以高速执行加密/解密操作的加速模式(S110)。当操作模式是加速模式时,可生成用于执行初始加密/解密操作的对应于块数据的调整值(S120)。可使用生成的调整值从块数据执行加密/解密操作(S130)。
根据发明构思的至少一个示例实施例的密码装置的加密/解密方法可实时生成用于执行初始加密的调整值,从而相比于关于加密/解密的常用时间,减少关于加密/解密的时间。
同时,根据发明构思的至少一个示例实施例的密码装置和加密/解密方法可应用于存储装置。
图21是示出根据发明构思的至少一个示例实施例的存储装置1000的框图。参照图21,存储装置1000可包括至少一个非易失性存储器(NVM)1100和用于控制至少一个非易失性存储器1100的存储器控制器1200。
至少一个非易失性存储器1100可以是与非(NAND)闪存存储器、垂直NAND闪存存储器(VNAND)、NOR闪存存储器、电阻型随机存取存储器(RRAM)、相变存储器(PRAM)、磁阻型随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩随机存取存储器(STT-RAM)等。此外,非易失性存储器可被实现为具有三维阵列结构。
在发明构思的至少一个示例实施例中,三维(3D)存储器阵列单片形成在具有设置在硅基板上方的有源区的存储器单元的阵列和与这些存储器单元的操作关联的电路的一个或多个物理级,无论这样的关联的电路是在此基板上方还是在此基板内。与存储器单元的操作相关的电路可位于基板内或基板上。术语“单片”意指阵列的各级的层直接沉积在阵列的各下级的层上。
在发明构思的至少一个示例实施例中,3D存储器阵列包括被垂直定位使得至少一个存储器单元位于另一个存储器单元上方的垂直NAND串。至少一个存储器单元可包括电荷捕获层。垂直NAND串中的每个可包括位于存储器单元上的至少一个选择晶体管。至少一个选择晶体管可具有与存储器单元相同的结构,并且与存储器单元一起被单片地形成。
通过引用包含于此的以下专利文献描述了三星电子公司应用的三维存储器阵列的合适构造,其中,三维存储器阵列被构造为多个级,并且各级之间具有共享字线和/或位线:美国专利第7,679,133号、第8,553,466号、第8,654,587号和第8,559,235号和美国专利公开第2011/0233648号。根据发明构思的实施例的非易失性存储器可适用于使用绝缘层作为电荷存储层的电荷捕获闪存(CTF)以及使用导电悬浮栅作为电荷存储层的闪存存储器装置。
如图21中所示,至少一个非易失性存储器1100可存储加密文件(例如,包括ESEC1和ESEC2)。这里,加密文件可以是输入文件(例如,包括SEC1和SEC2)被加密的数据。在图21中,为了方便进行下面的描述,假设文件包括两个分区SEC1和SEC2。然而,发明构思不限于所述文件的配置。此外,分区SEC1和SEC2中的每个分区可包括用于加密/解密操作的多个块数据。
存储器控制器1200可包括误差校正码(ECC)电路1220(例如,硬件、软件)和密码电路1240(例如,硬件、软件)。ECC电路1220可检测是否存在关于从外部装置顺序输入的各分区的误差和/或可校正误差。可选地,ECC电路1220可检测是否存在关于从至少一个非易失性存储器1100输入的各加密分区ESEC1和ESEC2的误差和/或可校正误差。
密码电路1240可对文件进行加密或者可对加密文件进行解密。可使用图1至图20中描述的密码装置或加密/解密方法来实现密码电路1240。密码电路1240可从随机分区开始加密/解密操作,而不管分区的输入次序如何。因此,密码电路1240中执行的关于分区的加密/解密操作可以是如下四种情况。
i)当不需要校正关于第一分区SEC1/ESEC1和第二分区SEC2/ESEC2的误差时,可针对第一分区SEC1/ESEC1执行加密/解密,并且可针对第二分区SEC2/ESEC2执行加密/解密。
ii)当需要校正关于第二分区SEC2/ESEC2的误差时,可针对第一分区SEC1/ESEC1执行加密/解密,可校正关于第二分区SEC2/ESEC2的误差,并且可针对校正后的第二分区SEC2/ESEC2执行加密/解密。
iii)当需要校正关于第一分区SEC1/ESEC1的误差时,可针对第二分区SEC2/ESEC2执行加密/解密,可校正关于第一分区SEC1/ESEC1的误差,并且可针对校正后的第一分区SEC1/ESEC1执行加密/解密。
iv)当需要校正关于第一分区SEC1/ESEC1和第二分区SEC2/ESEC2二者的误差时,可校正关于第一分区SEC1/ESEC1和第二分区SEC2/ESEC2的误差,可针对校正后的第一分区SEC1/ESEC1执行加密/解密,并且可针对校正后的第二分区SEC2/ESEC2执行加密/解密。
如上所述,根据发明构思的至少一个示例实施例的密码电路1240可从随机分区起执行加密/解密,而不管输入的分区数据的次序如何。然而,发明构思不限于所述存储装置1000。在图21中,执行关于需要进行误差校正的分区数据的误差校正操作。然而,发明构思不限于此。根据发明构思的至少一个示例实施例的存储装置可确定是否需要进行误差校正,并且可再次向外部装置请求需要进行误差校正的分区数据。
图22是示出根据发明构思的至少一个示例实施例的存储装置的加密方法的流程图。参照图21和图22,存储装置1000的加密方法如下。
可从外部装置向存储装置1000顺序输入多个分区数据(例如,SEC1和SEC2)(S210)。分区数据可被随机加密(S220)。
同时,分区数据SEC1和SEC2中的每个分区数据可在随机位置随机开始加密操作。
图23是示出根据发明构思的至少一个示例实施例的电子装置2000的框图。参照图23,电子装置2000可包括至少一个处理器2100、缓冲存储器2200、代码存储器2300、密码处理电路2500、非易失性存储器接口(NVM I/F)2600、非易失性存储器装置2700和主机接口2800。电子装置2000可以是下面装置中的一个或者其中两个或更多个的组合:数据存储介质(例如,固态驱动器(SSD))、记忆棒、通用闪存储器(UFS)装置)、存储卡(例如,安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)等)、智能卡、移动装置(例如,智能电话和GalaxyTM系列)、智能电话、平板个人计算机(PC)、移动电话、视频电话、电子书阅读器、台式PC、膝上型PC、网本计算机、个人数字助理(PDA)、便携式多媒体播放器(PMP)、MP3播放器、移动医疗装置、电子手镯、电子项链、电子配饰、相机、可穿戴装置、电子时钟、腕表、家电用器(例如,冰箱、空调、真空吸尘器、烤箱、微波炉、洗衣机、空气过滤器等)、人工智能机器人、电视(TV)、数字视频盘(DVD)播放器、音频系统、各种类型的医疗装置(例如,磁共振血管造影(MRA)相机、磁共振成像(MRI)相机、计算机断层扫描(CT)相机、超声器等)、导航装置、全球定位系统(GPS)接收器、事件数据记录器(EDR)、飞行数据记录器(FDR)、机顶盒、TV盒(例如,Samsung HomeSyncTM、Apple TVTM、和Google TVTM)、电子字典、汽车信息娱乐装置、船舶电子设备(例如,船舶导航系统、旋转罗盘等)、航空电子系统、安全装置、电子衣物、电子钥匙、摄像机、游戏控制台、头戴式显示器(HMD)、平板显示装置、电子相框、电子相册、包括通信功能的建筑物或结构的部分或家具、电子板、电子签名接收装置或投影仪。
至少一个处理器2100可被实现为控制关于电子装置2000的整体操作。这里,至少一个处理器2100可以是中央处理单元、应用处理器、图形处理器等。在至少一个示例实施例中,至少一个处理器2100可包括安全处理器或安全元件(SE)等。例如,至少一个处理器2100可具有防篡改功能,从而保护其免受篡改攻击(诸如,微探测、软件攻击、偷听、产生故障等)。
缓冲器存储器2200可根据至少一个处理器2100的控制进行操作。例如,缓冲器存储器220可暂时存储被至少一个处理器2100处理的数据,或者可缓冲被发送到非易失性存储器装置2700的数据或从非易失性存储器装置2700读取的数据。在至少一个示例实施例中,缓冲器存储器220可以是随机存取存储器(RAM)、静态随机存取存储器(SRAM)和相变随机存取存储器(PRAM)。
代码存储器2300可被实现为存储用于管理或操作电子装置2000的代码和/或应用。在至少一个示例实施例中,代码存储器2300可以是只读存储器(ROM)或PRAM。
密码处理电路2500可被实现为针对输入/输出数据执行加密/解密操作。如图1至图22中所述,密码处理电路2500可被实现为当执行加密/解密操作时在正常模式和加速模式中的一种下执行。在正常模式下,可针对块数据顺序执行加密/解密,并且在加速模式下,可针对块数据随机执行加密/解密操作。同时,图23中示出的密码处理电路2500可存在于至少一个处理器2100外部,但不限于此。密码处理电路2500可被实现为存在于至少一个处理器2100中。
可通过非易失性存储器接口2600执行与非易失性存储器装置2700的数据交换。主机接口2800可通过并行高级技术附件(PATA)总线、串行高级技术附件(SATA)总线、小型计算机系统接口(SCSI)、通用串行总线(USB)、外围组件互连快速(PCIe)、SD、串行连接SCSI(SAS)、UFS、eMMC、MMC、NAND接口等连接到外部主机。
尽管在图23中未示出,但电子装置2000还可包括误差校正码(ECC)电路(例如,硬件、软件)。ECC电路可生成用于校正从非易失性存储器装置2700接收的数据的失效位或误差位的ECC并且可通过针对提供到非易失性存储器装置2700的数据执行误差校正编码来生成具有校验位的数据。校验位可被存储在非易失性存储器装置2700中。此外,ECC电路可针对从非易失性存储器装置2700输出的数据执行误差校正解码。ECC电路可使用校验位来校正误差。ECC电路可使用编码调制(诸如,低密度奇偶检验(LDPC)码;Bose、Chaudhuri、Hocquenghem(BCH)码、turbo码、Reed-Solomon码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、块编码调制(BCM)等)来校正误差。
尽管未示出,但电子装置2000可安装无线通信功能(例如,WiFi)。同时,电子装置2000还可包括图23中未示出的组件,或者可不包括图23中示出的组件中的至少一个(除了密码处理电路之外)。
发明构思的至少一个示例实施例可应用于SSD。
图24是示出根据发明构思的至少一个示例实施例的SSD的框图。参照图24,SSD 3000可包括多个非易失性存储器装置3100和SSD控制器3200。
非易失性存储器装置3100可被实现为可选地接收外部高电压Vppx。非易失性存储器装置3100可包括分别与多个通道CH1至CHi(例如,“i”是2或更大的整数)连接的多个非易失性存储器封装NVM PCKG。
SSD控制器3200可分别通过通道CH1至Chi连接到非易失性存储器装置3100。SSD控制器3200可包括至少一个处理器3210、缓冲器存储器3220、密码处理器3225、误差校正码(ECC)电路3230(例如,硬件、软件)、主机接口3250和非易失性存储器接口3260。
缓冲器存储器3220可暂时存储在SSD控制器3200的操作中使用的数据。缓冲器存储器3220可包括用于存储数据或命令的多个存储器线。这里,可使用各种方法将存储器线映射到高速缓存线。在图24中,缓冲器存储器可布置在SSD控制器3200中,但不限于此。根据发明构思的至少一个示例实施例的缓冲器存储器可作为单独的知识产权(IP)位于SSD控制器3200外部。
密码处理器3225可使用图15至图19中示出的密码装置100至500中的一个密码装置来实现或者可使用图1至图22中描述的加密/解密操作来实现。
ECC电路3230可计算关于将在写操作中被编程的数据的误差校正码的值,或者可基于纠错码的值来校正在读操作中读取的数据,并且可校正关于在数据恢复操作中从非易失性存储器装置3100恢复的数据的误差。例如,ECC电路3230可按分区检测并且校正误差。然而,发明构思不限于所述误差校正单元。
ECC电路3230可生成从非易失性存储器装置3100接收的数据中的无效位或用于校正误差位的误差校正码。ECC电路3230可针对提供到非易失性存储器装置3100的数据执行误差校正编码并且可生成被添加校验位的数据。校验位可被存储在非易失性存储器装置3100中。此外,ECC电路3230可针对从非易失性存储器装置3100输出的数据执行误差校正解码。ECC电路3230可使用校验位来校正误差。尽管未示出,但还可包括代码存储器,代码存储器用于存储操作SSD控制器3200所需的代码数据。可用非易失性存储器装置来实现代码存储器。
主机接口3250可提供用于与外部装置接口互联的接口功能。主机接口3250可通过PATA总线、SATA总线、SCSI、USB、PCIe、SD、SAS、UFS、eMMC、MMC、NAND接口等连接到外部主机。非易失性存储器接口3260可提供与非易失性存储器装置3100的接口互联。尽管未示出,但SSD控制器3200可安装无线通信功能(例如,WiFi)。
根据发明构思的至少一个示例实施例的SSD 3000可在加速模式下开始以在随机位置执行加密操作。
图25是示出根据发明构思的至少一个示例实施例的移动装置4000的框图。参照图25,移动装置4000可包括安全元件4020、处理器4100、缓冲器存储器4200、显示/触摸模块4300和存储装置4400。
安全元件4020可被实现为提供移动装置4000的整体安全功能。安全元件4020可用软件和/或防篡改硬件来实现,可许可高安全级别,并且可与处理器4100的可信执行环境(TEE)一起工作。安全元件4020可包括:原生操作系统(OS);安全存储装置,其是内部数据存储单元;访问控制块,其控制对安全元件4020的访问权限;安全功能块,其用于执行所有权管理、密钥管理、数字签名、加密/解密等;以及固件更新块,其用于更新安全元件4020的固件。例如,安全元件4020可以是通用IC卡(UICC)(例如,通用用户身份模块(USIM)、码分多址(CDMA)用户身份模块(CSIM)和IP多媒体用户身份模块(ISIM))、用户身份模块(SIM)卡、嵌入式安全元件(eSE)、微SD、便签等。
此外,根据发明构思的至少一个示例实施例的安全元件4020可包括密码电路4022(例如,硬件、软件)。这里,密码电路可使用图15至图19中示出的密码装置100至500中的一个来实现或者可使用图1至图22中描述的加密/解密操作来实现。在图25中,密码电路4022可被示出为存在于处理器4100外部。然而,发明构思可不限于所述密码电路4022的位置。根据发明构思的至少一个示例实施例的密码电路4022可存在于处理器4100中。
处理器4100可被实现为控制移动装置4000的整体操作和与外部装置的有线/无线通信。例如,处理器4100可以是应用处理器(AP)、集成调制解调器应用处理器(下文中,被称为“ModAP”)等。
缓冲存储器4200可被实现为暂时存储在移动装置4000操作时所需的数据。显示/触摸模块4300可被实现为显示被处理器4100处理的数据或者从触摸面板接收数据。存储装置4400可被实现为存储用户的数据。存储装置4400可以是eMMC、SSD、UFS等。
根据发明构思的至少一个示例实施例的密码装置使得可以在XTS模式下按块随机访问块数据并且并行处理块数据。可通过在XTS模式下的特定长度之后立即计算调整值,来迅速地执行加密/解密操作。可针对对应于随机位置的块数据,立即执行加密/解密操作。在至少一个示例实施例中,可在XTS模式下的特定长度之后用一个时钟周期来更新调整值。在至少一个示例实施例中,即使在加密/解密操作中绕过了块数据,可也连续更新对应的调整值。
根据发明构思的至少一个示例实施例的密码装置可选择处于随机位置的块数据并且可加密所选择的块数据。
在至少一个示例实施例中,可在块数据被输入到多个密码核并且开始加密/解密操作的时间点和在执行密码核中的每个密码核的最后循环的时间点,更新调整值。
在至少一个示例实施例中,包括多个密码核的密码装置可使用对应于乘法运算值的位置来执行乘法运算,所述乘法运算值的数量少于密码核的数量。
根据发明构思的至少一个示例实施例,密码装置、具有密码装置的存储装置及密码装置的加密/解密方法可立即加密/解密分区中的位于随机位置的块数据。因此,发明构思的至少一个示例实施例可减少关于加密/解密的时间并且可因加密/解密时间减少而降低功耗。
此外,密码装置、具有密码装置的存储装置及密码装置的加密/解密方法相比于传统的那些可通过共享存储单元来减小芯片大小。
可使用用于实现或控制本申请中讨论的密码装置、存储装置、加密方法和/或解密方法的算法来实现或控制更通用的设备(例如,处理器)和/或控制设备(例如,处理器)的方法。
用于实现或控制本申请中讨论的密码装置、存储装置、加密方法和/或解密方法的方法可被编写为计算机程序并且可在使用计算机可读记录介质执行程序的通用数字计算机中实现。另外,方法中使用的数据的结构可按各种方式被记录在计算机可读记录介质中。计算机可读记录介质的示例包括存储介质,诸如,磁性存储介质(例如,ROM(只读存储器)、RAM(随机存取存储器)、USB(通用串行总线)、软盘、硬盘等)和光学记录介质(例如,CD-ROM(紧凑盘只读存储器)或DVD(数字视频盘))。
另外,一些示例实施例还可通过用于控制至少一个处理元件(例如,处理器)来实现一些示例实施例的介质(例如,计算机可读介质)里面/上面的计算机可读代码/指令来实现。介质可对应于许可存储和/或发送计算机可读代码的任一个/多个介质。
计算机可读代码可按各种方式记录在介质上/在介质上传递,其中,介质的示例包括记录介质(诸如,磁性存储介质(例如,ROM、软盘、硬盘等)和光学记录介质(例如,CD-ROM或DVD))和传输介质(诸如,互联网传输介质)。因此,介质可以是包括或携带信号或信息的这种限定的和可测量的结构(诸如,根据一些示例实施例的携带位流的装置)。介质还可以是分布式网络,使得以分布式方式来存储/传递和执行计算机可读代码。此外,处理元件可包括处理器或计算机处理器,并且处理元件可被分布于和/或包括在单个装置中。
在一些示例实施例中,元件中的一些可被实现为“模块”。根据一些示例实施例,“模块”可被解释为基于软件的组件或硬件组件(例如,电路)(诸如,现场可编程门阵列(FPGA)或专用集成电路(ASIC)),并且模块可执行某些功能。然而,模块不限于软件或硬件。模块可被构造成被位于可执行寻址的存储介质中,或者执行一个或多个处理。
例如,模块可包括组件(诸如,软件组件、面向对象的软件组件、类组件和任务组件、处理、功能、属性、程序、子程序、程序代码段、驱动器、固件、微代码、电路、数据、数据库、数据结构、表、阵列和变量)。从组件和模块提供的功能以及所述模块可被组合成较少数量的组件和模块,或者被分离成额外的组件和模块。此外,这些组件和模块可执行装置中的一个或多个中央处理单元(CPU)。
一些示例实施例可通过包括用于控制上述实施例的至少一个处理元件(例如,处理器)的计算机可读代码/指令的介质(例如,计算机可读介质)来实现。这种介质可对应于可存储和/或发送计算机可读代码的一个/多个介质。
计算机可读代码可被记录在介质中或者通过互联网发送。例如,介质可包括ROM、RAM、CD-ROM、磁带、软盘、光学记录介质、或诸如通过互联网进行的数据传输的载波。另外,介质可以是非暂时性计算机可读介质。由于介质可以是分布式网络,因此可按分布式方式存储、发送和执行计算机可读代码。此外,例如,处理元件可包括处理器或计算机处理器,并且被分布于和/或包括在一个装置中。
尽管已经示出和描述了一些示例实施例,但本领域的技术人员应该清楚,可在不脱离在权利要求书及其等同物中限定其范围、这些示例实施例的原理和精神的情况下,对示例实施例进行改变。例如,虽然已经将某些操作描述为是由给定元件执行的,但本领域的技术人员应该理解,可按各种方式在元件之间划分操作。
尽管以上针对密码装置、存储装置、加密方法和/或解密方法描述了一些示例实施例,但本领域的技术人员将清楚,一些示例实施例可应用于其他类型的系统(诸如,密码领域中未使用的系统(例如,算法、组合数学、有限域、伪随机数)、或更通用的控制系统(例如,游戏理论、信息理论、机器学习、数论))。本领域的技术人员将清楚,本申请中描述的密码装置、存储装置、加密方法和/或解密方法具有大量的实际使用。
尽管已经示出和描述了本公开的一些示例实施例,但本领域的技术人员应该清楚,可在不脱离在权利要求书及其等同物中限定其范围、本发明的原理和精神的情况下,对这些示例实施例进行改变。
因此,应该理解,以上实施例不是限制性的,而是例证性的。虽然已经参照示例实施例描述了发明构思,但本领域的技术人员将清楚,可在不脱离发明构思的精神和范围的情况下进行各种变化和修改。
应该理解,这里描述的示例实施例应该只被视为描述含义,而非是出于限制的目的。对各实施例内的特征或方面的描述应该通常被视为可用于其他实施例中的其他类似特征或方面。