CN111092716A - 一种aes算法的加密模式实现方法及装置、设备、介质 - Google Patents

一种aes算法的加密模式实现方法及装置、设备、介质 Download PDF

Info

Publication number
CN111092716A
CN111092716A CN201811242426.2A CN201811242426A CN111092716A CN 111092716 A CN111092716 A CN 111092716A CN 201811242426 A CN201811242426 A CN 201811242426A CN 111092716 A CN111092716 A CN 111092716A
Authority
CN
China
Prior art keywords
key
calculation
state
data
encryption
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
CN201811242426.2A
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.)
Canaan Bright Sight Co Ltd
Original Assignee
Canaan Creative 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 Canaan Creative Co Ltd filed Critical Canaan Creative Co Ltd
Priority to CN201811242426.2A priority Critical patent/CN111092716A/zh
Publication of CN111092716A publication Critical patent/CN111092716A/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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

公开了一种AES算法的加密模式实现方法及装置、设备、介质。在实现过程中通过状态机进行状态控制,该方法至少包括:适应于当前的加密模式,计算密钥相关数据;若当前的加密模式为GCM,则进行至少一次状态跳转,并在所跳转的相应状态下,根据密钥相关数据和接收的补充信息,进行数据加密或者解密计算和伽罗华域乘法计算,以及标签计算,输出计算结果;若当前的加密模式为其他的模式,则进行至少一次状态跳转,并在所跳转的相应状态下,根据密钥相关数据,进行数据加密或者解密计算,输出计算结果。本申请提供了AES硬件加密方案,能够实现AES算法的多种加密模式,包括但不限于GCM、ECB、CBC、CFB、OFB等,有助于满足对大数据量的数据高效地进行加解密的需求。

Description

一种AES算法的加密模式实现方法及装置、设备、介质
技术领域
本申请涉及机器学习技术领域,尤其涉及一种高级加密标准(AdvancedEncryption Standard,AES)算法的加密模式实现方法及装置、设备、介质。
背景技术
随着技术的不断开发和各种数据的不断积累,加密技术变得越来越重要。AES作为一种通用的加密技术,具有广阔的应用场景。
在现有技术中,AES算法的各加密模式大多用软件实现,或者只用硬件寄存器传输级(Register Transfer Level,RTL)实现了一部分简单的模式,比如电码本(ElectronicCodebook,ECB)模式、密码分组链接(Cipher-Block Chaining,CBC)模式。
但是,用软件实现的AES算法,速度较慢,当需要加密的数据量较大时,满足不了应用需求;而硬件的AES算法,只支持AES的部分加密模式,也不能满足所有需求。
发明内容
本申请实施例提供一种AES算法的加密模式实现方法及装置、设备、介质,用以解决现有技术中的如下技术问题:用软件实现的AES算法,速度较慢,当需要加密的数据量较大时,满足不了应用需求;而硬件的AES算法,只支持AES的部分加密模式,也不能满足所有需求。
本申请实施例采用下述技术方案:
一种AES算法的加密模式实现方法,在所述实现过程中通过状态机进行状态控制,所述方法包括:
适应于当前的加密模式,计算密钥相关数据;
若所述当前的加密模式为伽罗华计数器模式(Galois Counter Mode,GCM),则进行至少一次状态跳转,并在所跳转的相应状态下,根据所述密钥相关数据和接收的补充信息,进行数据加密或者解密计算和伽罗华域乘法计算,以及标签计算,输出计算结果;
若所述当前的加密模式为其他的模式,则进行至少一次状态跳转,并在所跳转的相应状态下,根据所述密钥相关数据,进行数据加密或者解密计算,输出计算结果。
可选地,所述密钥相关数据至少包括在一轮或者多轮所述加密或者解密计算过程所需使用的密钥;
若所述当前的加密模式为GCM,则所述密钥为密钥K,所述密钥相关数据还包括:H值和J0值。
可选地,所述适应于当前的加密模式,计算密钥相关数据,具体包括:
在密钥计算状态下,适应于当前的加密模式,计算所述密钥;
若所述当前的加密模式为GCM,则所述适应于当前的加密模式,计算密钥相关数据,还包括:
从密钥计算状态进行至少一次状态跳转,并在所跳转的相应状态下,计算所述H值和J0值。
可选地,所述进行数据加密或者解密计算,具体包括:
在数据接受状态下,一轮或者多轮地接受待加密或者解密的数据;
在数据加解密状态下,针对所述待加密或者解密的数据,进行数据加密或者解密计算。
可选地,所述进行伽罗华域乘法计算,具体包括:
在开始接收到所述补充信息时,跳转至伽罗华域乘法状态,对所述补充信息进行伽罗华域乘法计算。
可选地,所述进行伽罗华域乘法计算,还包括:
对通过进行所述数据加密或者解密计算,得到的加密或者解密后的数据进行伽罗华域乘法计算。
可选地,所述进行标签计算,具体包括:
在指定的最后一笔数据进行伽罗华域乘法计算后,跳转至标签预处理状态,为标签计算进行预处理;
在所述预处理后,跳转至标签计算状态,进行标签计算。
可选地,所述其他的模式包括ECB模式、CBC模式、密文反馈(CipherFeedback,CFB)模式、输出反馈(Output Feedback,OFB)模式。
可选地,所述密钥相关数据至少包括密钥;
所述方法还包括:
将所述密钥写入指定硬件的存储空间中,所述存储空间软件可写不可读,且写保护可控;
对所述写保护进行控制,以使所述存储空间软件不可写不可读,已写入所述存储空间中的所述密钥能够自动加载至相应的功能模块中,以供所述数据加密或者解密计算。
可选地,所述密钥相关数据至少包括密钥;
所述密钥的长度为192位、256位或者128位。
一种AES算法的加密模式实现装置,在所述实现过程中通过状态机进行状态控制,所述装置包括:
密钥计算模块,适应于当前的加密模式,计算密钥相关数据;
第一处理模块,若所述当前的加密模式为GCM,则进行至少一次状态跳转,并在所跳转的相应状态下,根据所述密钥相关数据和接收的补充信息,进行数据加密或者解密计算和伽罗华域乘法计算,以及标签计算,输出计算结果;
第二处理模块,若所述当前的加密模式为其他的模式,则进行至少一次状态跳转,并在所跳转的相应状态下,根据所述密钥相关数据,进行数据加密或者解密计算,输出计算结果。
可选地,所述密钥相关数据至少包括在一轮或者多轮所述加密或者解密计算过程所需使用的密钥;
若所述当前的加密模式为GCM,则所述密钥为密钥K,所述密钥相关数据还包括:H值和J0值。
可选地,所述密钥计算模块适应于当前的加密模式,计算密钥相关数据,具体包括:
所述密钥计算模块在密钥计算状态下,适应于当前的加密模式,计算所述密钥;
若所述当前的加密模式为GCM,则所述密钥计算模块适应于当前的加密模式,计算密钥相关数据,还包括:
从密钥计算状态进行至少一次状态跳转,并在所跳转的相应状态下,计算所述H值和J0值。
可选地,所述第一处理模块、所述第二处理模块进行数据加密或者解密计算,具体包括:
所述第一处理模块、所述第二处理模块在数据接受状态下,一轮或者多轮地接受待加密或者解密的数据;
在数据加解密状态下,针对所述待加密或者解密的数据,进行数据加密或者解密计算。
可选地,所述第一处理模块进行伽罗华域乘法计算,具体包括:
所述第一处理模块在开始接收到所述补充信息时,跳转至伽罗华域乘法状态,对所述补充信息进行伽罗华域乘法计算。
可选地,所述第一处理模块进行伽罗华域乘法计算,还包括:
所述第一处理模块对通过进行所述数据加密或者解密计算,得到的加密或者解密后的数据进行伽罗华域乘法计算。
可选地,所述第一处理模块进行标签计算,具体包括:
所述第一处理模块在指定的最后一笔数据进行伽罗华域乘法计算后,跳转至标签预处理状态,为标签计算进行预处理;
在所述预处理后,跳转至标签计算状态,进行标签计算。
可选地,所述其他的模式包括ECB模式、CBC模式、CFB模式、OFB模式。
可选地,所述密钥相关数据至少包括密钥;
所述装置还包括:
密钥保护模块,将所述密钥写入指定硬件的存储空间中,所述存储空间软件可写不可读,且写保护可控;
对所述写保护进行控制,以使所述存储空间软件不可写不可读,已写入所述存储空间中的所述密钥能够自动加载至相应的功能模块中,以供所述数据加密或者解密计算。
可选地,所述密钥相关数据至少包括密钥;
所述密钥的长度为192位、256位或者128位。
一种AES算法的加密模式实现设备,在所述实现过程中通过状态机进行状态控制,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
适应于当前的加密模式,计算密钥相关数据;
若所述当前的加密模式为GCM,则进行至少一次状态跳转,并在所跳转的相应状态下,根据所述密钥相关数据和接收的补充信息,进行数据加密或者解密计算和伽罗华域乘法计算,以及标签计算,输出计算结果;
若所述当前的加密模式为其他的模式,则进行至少一次状态跳转,并在所跳转的相应状态下,根据所述密钥相关数据,进行数据加密或者解密计算,输出计算结果。
一种AES算法的加密模式实现非易失性计算机存储介质,存储有计算机可执行指令,在所述实现过程中通过状态机进行状态控制,所述计算机可执行指令设置为:
适应于当前的加密模式,计算密钥相关数据;
若所述当前的加密模式为GCM,则进行至少一次状态跳转,并在所跳转的相应状态下,根据所述密钥相关数据和接收的补充信息,进行数据加密或者解密计算和伽罗华域乘法计算,以及标签计算,输出计算结果;
若所述当前的加密模式为其他的模式,则进行至少一次状态跳转,并在所跳转的相应状态下,根据所述密钥相关数据,进行数据加密或者解密计算,输出计算结果。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:所提供AES硬件加密方案能够实现AES算法的各种加密模式,包括但不限于GCM、ECB、CBC、CFB、OFB等,以满足用户的不同需求;能够支持192位和256位的密钥长度;不仅如此,还提供了一种密钥的保密方案,能够提高密钥安全性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请的一些实施例提供的一种AES算法的加密模式实现方法的流程示意图;
图2为本申请的一些实施例提供的上述AES算法的加密模式实现方法涉及的一种状态转换示意图;
图3为本申请的一些实施例提供的一种密钥保密方案的部分原理示意图;
图4为本申请的一些实施例提供的对应于图1的一种AES算法的加密模式实现装置的结构示意图;
图5为本申请的一些实施例提供的对应于图1的一种AES算法的加密模式实现设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供的部分方案能够基于状态机硬件实现AES的各种主流加密模式,比如,ECB、CBC、GCM、CFB、OFB等模式,有助于满足对大数据量的数据高效地进行加解密的需求,具体可以利用诸如Verilog、VHDL等硬件描述语言,配合相应的硬件电路实现,该部分方案同样也可以至少部分地软件实现,软件实现主要是依靠中央处理器(CPU)。另外,现有的AES算法实现方案通常只支持128位的密钥长度,而本申请的方案则能够支持128位、192位、256位等更多的密钥长度,能够更好地满足用户需求。
进一步地,本申请提供的另一部分方案能够更好地对密钥进行保密,保证密钥在软件层面上难以被盗取,从而提高密钥安全性,该另一部分方案不仅适用于AES的密钥,也适用于其他任何加密算法所使用的密钥。
下面对本申请的方案进行详细说明。
图1为本申请的一些实施例提供的一种AES算法的加密模式实现方法的流程示意图,在实现过程中,预定义了反映当前流程阶段的多种状态,随着流程进行,可以进行一次或者多次状态跳转,通过状态机来进行各状态的控制,从而提供了能够实现AES算法的多种加密模式的综合方案。在该流程中,从设备角度而言,执行主体可以是一个或者多个计算设备,比如,智能手机、银行服务器等,更具体地,执行主体可以是这些计算设备上的硬件电路。
图1中的流程可以包括以下步骤:
S102:适应于当前的加密模式,计算密钥相关数据。
在本申请的一些实施例中,加密模式包括但不限于ECB、CBC、GCM、CFB、OFB等模式,这里对列举的几种模式进行简单说明。
在ECB模式下,待处理信息被分为大小合适的分组,然后分别对每个分组独立进行加密或解密处理。
在CBC模式中,每个明文块先与前一个密文块进行异或后,再进行加密,在这种情况下,每个密文块都依赖于它前面的所有明文块;同时,为了保证每条消息的唯一性,在第一个块中需要使用初始向量。
GCM是对称加密算法分组密码的一种工作模式。分组密码工作模式可以分为加密模式、认证模式和认证加密模式等,GCM模式为认证模式的一种,提供认证和加密两种功能,认证信息通过进行伽罗华域乘法计算生成。
CFB模式类似于CBC模式,可以将块密码变为自同步的流密码,工作过程也比较相似,CFB的解密过程类似于颠倒的CBC的加密过程。
在OFB模式下,明文模式被隐藏,分组密码的输入是随机的;用不同的计数器初始值,一个密钥可以加密多个消息;明文很容易被控制篡改,任何对密文的改变都会直接影响明文。
无论采用哪种模式,需要先计算密钥相关数据,以便于后续工作过程中使用,密钥相关数据至少包含密钥(具体可以指对称密钥key)。在某些模式下,密钥相关数据还可以包含用于后续计算过程的特定参数,比如,在GCM下需要使用的H值和J0值等,这些特定参数也可以在步骤S102中计算。
另外,对于数量较多的待处理数据(待加密的明文,或者待解密的密文),加密或者解密通常可以分多轮进行,每次处理一部分数据。在步骤S102中所计算的密钥相关数据,可以是供接下来一轮或者多轮处理过程中使用的,已经计算得到的密钥相关数据可以暂时保存在合适的存储区域待用,比如,内存中或者可信存储区域中等。
S104:若所述当前的加密模式为GCM,则进行至少一次状态跳转,并在所跳转的相应状态下,根据所述密钥相关数据和接收的补充信息,进行数据加密或者解密计算和伽罗华域乘法计算(在伽罗华域中进行的乘法计算),以及标签计算,输出计算结果。
在本申请的一些实施例中,不同加密模式的工作流程存在区别动作,同时也存在一些共性动作,可以将这些区别和/或共性动作都加以提取抽象,定义出相应的状态进行表示,以便于能够基于状态机和当前的加密模式,正确地控制状态间跳转,以执行对应的工作流程,从而综合实现多种加密模式。
每种状态可以表示一个阶段的工作,阶段的划分粒度大小程度可以是多样的。可以划分得较小,如此,状态的数量较多;也可以将多个小粒度阶段合并为一个大粒度阶段,如此,能够减少状态的数量。另外,空闲、启动、停止等阶段也可以作为一种状态。
需要说明的是,在同一个状态下,不同加密模式的具体处理逻辑也可以有所区别。
GCM是一种相对复杂的加密模式,具有伽罗华域乘法计算和标签计算等特殊的处理动作。在下面一些实施例中,假定为GCM设计专用的状态跳转链,而为诸如ECB、CBC、CFB、OFB等其他的模式设计共用的状态跳转链。当然,不仅是GCM,其他的模式实际上也有自己特殊的处理动作,未必需要共用相同的状态跳转链,这里仅是示例性的说明。状态跳转链的设计方式可以是多样的,一般可以取决于工作阶段如何划分,状态如何定义。
在本申请的一些实施例中,GCM中的G可以指伽罗华消息验证码(Galois MessageAuthentication Code,GMAC),C可以指计数器(Counter,CTR),以加密为例,GCM的本质是明文在指定的CTR模式下加密,所得到的密文与指定的密钥相关数据等进行伽罗华域乘法计算,进一步用于认证。GCM可以提供对消息的加密和完整性校验,另外,它还可以提供对补充信息(也可以称为附加信息)的完整性校验。在实际应用中,有些信息是不需要保密,但是信息的接收者需要确认它的真实性的,比如,源IP、源端口、目的IP、初始向量(Initialization Vector,IV),等等,可以将这一部分信息作为补充信息加入到用于认证的消息验证码(MAC)的计算当中,标签可以根据MAC计算得到,用于认证。
S106:若所述当前的加密模式为其他的模式,则进行至少一次状态跳转,并在所跳转的相应状态下,根据所述密钥相关数据,进行数据加密或者解密计算,输出计算结果。
在本申请的一些实施例中,若在该其他的模式下,还有除了数据加密或者解密计算以外的动作,则也可以为其定义相应的状态,在跳转到该状态时,相应地执行该动作。
通过图1的方法,所提供AES硬件加密方案能够实现AES算法的各种加密模式,包括但不限于GCM、ECB、CBC、CFB、OFB等,以满足用户对不同加密模式的需求,还有助于满足对大数据量的数据高效地进行加解密的需求等;不仅能够支持128位的密钥长度,还能够支持192位和256位的密钥长度。
基于图1的方法,本申请的一些实施例还提供了该方法的一些具体实施方案,以及扩展方案,下面进行说明。
在本申请的一些实施例中,对于步骤S102,密钥相关数据至少可以包括在一轮或者多轮加密或者解密计算过程所需使用的密钥。
若当前的加密模式为GCM,密钥比如可以为密钥K,密钥相关数据比如还可以包括H值和J0值等。密钥K主要用于对明文进行加密;H值可以根据计数器的初始值以及密钥K计算得到,可以用于针对补充消息计算MAC及标签;J0值可以根据初始向量计算得到,可以用于对明文进行加密,以及计算MAC及标签。
在本申请的一些实施例中,可以预定义空闲状态和密钥计算状态,以及后续需要的一些状态,初始时,可以处于空闲状态,算法启动后,可以从空闲状态跳转至密钥计算状态,然后,在密钥计算状态下,适应于当前的加密模式,计算密钥。
在密钥计算状态,也可以计算其他的密钥相关数据。这里假定其他的密钥相关数据分别对应于预定义的其他状态,而并非对应于密钥计算状态。比如,若当前的加密模式为GCM,则还可以从密钥计算状态进行至少一次状态跳转,并在所跳转的相应状态下,分别计算H值和J0值,H值和J0值可以在同一状态下计算,也可以分别在不同的状态下计算。
在本申请的一些实施例中,在密钥相关数据准备完毕后,可以跳转状态,开始进行数据加密。对于步骤S104和S106,所述进行数据加密或者解密计算,比如可以包括:在数据接受状态下,一轮或者多轮地接受待加密或者解密的数据;在数据加解密状态下,针对所述待加密或者解密的数据,进行数据加密或者解密计算。
在该例中,是先从密钥计算状态跳转到数据接受状态,接收数据,再跳转到数据加解密状态,进行数据加密或者解密计算,还可以再跳转回数据接受状态,接收更多的待加密或者解密的数据。
在本申请的一些实施例中,在GCM下,无论是加密或者解密后的数据,还是补充数据,都有认证需求,为此可以预定义伽罗华域乘法状态,用于进行伽罗华域乘法计算,以便认证。
基于此,对于步骤S104,所述进行伽罗华域乘法计算,比如可以包括:在开始接收到所述补充信息时,跳转至伽罗华域乘法状态,对所述补充信息进行伽罗华域乘法计算;进一步地还可以包括:对通过进行所述数据加密或者解密计算,得到的加密或者解密后的数据进行伽罗华域乘法计算。
在本申请的一些实施例中,在指定的最后一笔数据进行伽罗华域乘法计算后,可以进行一次或者多次状态跳转,以便进行标签计算。对于步骤S104,所述进行标签计算,比如可以包括:在指定的最后一笔数据进行伽罗华域乘法计算后,跳转至标签预处理状态,为标签计算进行预处理;在所述预处理后,跳转至标签计算状态,进行标签计算。预处理比如可以包括计算MAC等动作。需要输出的各计算结果输出后,可以返回至空闲状态或者停止状态,其中,计算结果可以是在相应的数据输出状态输出的。
上面的一些实施例对GCM的一种示例性的状态链进行了说明,基于同样的思路,也可以为ECB、CBC、CFB、OFB等其他的模式设计状态链,由于列举的这几种其他的模式无需进行伽罗华域乘法计算,以及标签计算,因此,主要通过状态跳转进行数据加密或者解密计算即可。
更直观地,本申请的一些实施例提供了在一种实际应用场景下,上述AES算法的加密模式实现方法涉及的一种状态转换示意图,如图2所示。
图2中包含了预定义的10个不同的状态,其中的部分状态在前面已经提到。IDLE为空闲状态,KEY_CAL为密钥计算状态,ENCRYPT_0为用于计算H值的状态,ENCRYPT_Y0为用于计算J0值的状态,DATA_ACCEPT为数据接受状态,GFM_MULT为伽罗华域乘法状态,M_ENCRYPT为数据加解密状态,DATA_OUT为数据输出状态,PRE_TAG_CALC为标签预处理状态,TAG_CALC为标签计算状态。
图2中的状态跳转,以及在相应的状态下执行的处理动作主要包括以下:
S202:在AES使能的情况下,开始执行算法流程,先跳转到KEY_CAL,计算整个加密或者解密过程中,每个轮次需要的key;
S204:当key计算完后,如果是GCM加密模式,则跳转到ENCRYPT_0,计算GCM需要用的H值;
S206:当GCM的H值计算完后,跳转到ENCRYPT_Y0,用输入的初始向量来计算第一次加密需要的J0值;
S208:当J0值计算完后跳转到DATA_ACCEPT,接受需要加密或者解密的数据,以便再跳转至M_ENCRYPT,进行加密或者解密计算;
S210:在GCM模式下,最开始接受到的补充信息时,跳转到GFM_MULT,进行伽罗华域乘法计算;
S212:如果是ECB、CBC、CFB或者OFB等加密模式,则当key计算完后,跳转到DATA_ACCEPT,接受需要加密或者解密的数据,以便再跳转至M_ENCRYPT,进行加密或者解密计算;
S214:如果是ECB、CBC、CFB或者OFB等加密模式,跳转到M_ENCRYPT,进行加密或者解密计算;
S216:当接受的当前笔补充信息计算完后,跳转到DATA_ACCEPT,继续接受下笔数据;
S218:在当前笔的数据加密或者解密计算完后,跳转到DATA_OUT,将计算完的数据输出;
S220:如果是GCM加密模式,当接受到的是最后一笔数据,进行完伽罗华域乘法计算之后,跳转到PRE_TAG_CALC,为标签计算进行预处理;
S222:如果是ECB、CBC、CFB或者OFB等加密模式,输出完计算结果后,跳转到DATA_ACCEPT,继续接受下笔数据;
S224:如果是ECB、CBC、CFB或者OFB等加密模式,输出完最后一笔计算结果后,跳转回IDLE;
S226:如果是GCM加密模式,加密或者解密计算得到的数据,还要跳转到GFM_MULT,进行伽罗华域乘法计算;
S228:为标签计算进行预处理完后,跳转到TAG_CALC,计算标签;
S230:标签计算完后,跳转回IDLE状态。
考虑到对于加密算法而言,密钥的安全性是至关重要的,需要加强对密钥的保护,本申请还提供了一种密钥保密方案,下面进行说明。
在本申请的一些实施例中,可以将密钥写入指定硬件(比如,芯片或者指定的可信硬件等)的存储空间中,在硬件层面上,可以将该存储空间设计为软件可写不可读,且写保护可控(比如,可以设置写保护位,通过给写保护位写值,控制写保护);在确定密钥成功写入后,可以对写保护进行控制(比如,将写保护位写死),以使存储空间软件不可写不可读。
进一步地,可以预先设计自动执行的功能逻辑,以使已写入存储空间中的密钥能够在指定的条件下(比如,该指定硬件后续再上电初始化时等)自动加载至相应的功能模块中,以供数据加密或者解密计算。
在写入密钥时,用户可以重复写入多次(通常可以是两次),该指定硬件当判定这多次写入的都是相同的密钥时(若不相同,可以提示用户重新写入),才确认用户所写入的密钥无误,之后再控制写保护。
更直观地,参见图3,图3为本申请的一些实施例提供的一种实际应用场景下,一种密钥保密方案的部分原理示意图,具体表示了重复写入密钥以进行验证的过程。
在图3中,用户已经在指定硬件的存储区域中写入了一次密钥,若该指定硬件具有密钥比较的能力,则用户可以再次写入该密钥,则指定硬件将再次输入的密钥与之前写入的密钥进行比较,并输出比较结果,若比较结果为相同,则认为已写入的确实是用户想要保存的密钥。
基于同样的思路,本申请的一些实施例还提供了上述方法对应的装置、设备和非易失性计算机存储介质。
图4为本申请的一些实施例提供的对应于图1的一种AES算法的加密模式实现装置的结构示意图,虚线方框表示可选的模块,在实现过程中通过状态机进行状态控制,该装置包括:
密钥计算模块401,适应于当前的加密模式,计算密钥相关数据;
第一处理模块402,若所述当前的加密模式为GCM,则进行至少一次状态跳转,并在所跳转的相应状态下,根据所述密钥相关数据和接收的补充信息,进行数据加密或者解密计算和伽罗华域乘法计算,以及标签计算,输出计算结果;
第二处理模块403,若所述当前的加密模式为其他的模式,则进行至少一次状态跳转,并在所跳转的相应状态下,根据所述密钥相关数据,进行数据加密或者解密计算,输出计算结果。
可选地,所述密钥相关数据至少包括在一轮或者多轮所述加密或者解密计算过程所需使用的密钥;
若所述当前的加密模式为GCM,则所述密钥为密钥K,所述密钥相关数据还包括:H值和J0值。
可选地,所述密钥计算模块401适应于当前的加密模式,计算密钥相关数据,具体包括:
所述密钥计算模块401在密钥计算状态下,适应于当前的加密模式,计算所述密钥;
若所述当前的加密模式为GCM,则所述密钥计算模块401适应于当前的加密模式,计算密钥相关数据,还包括:
从密钥计算状态进行至少一次状态跳转,并在所跳转的相应状态下,计算所述H值和J0值。
可选地,所述第一处理模块402、所述第二处理模块403进行数据加密或者解密计算,具体包括:
所述第一处理模块402、所述第二处理模块403在数据接受状态下,一轮或者多轮地接受待加密或者解密的数据;
在数据加解密状态下,针对所述待加密或者解密的数据,进行数据加密或者解密计算。
可选地,所述第一处理模块402进行伽罗华域乘法计算,具体包括:
所述第一处理模块402在开始接收到所述补充信息时,跳转至伽罗华域乘法状态,对所述补充信息进行伽罗华域乘法计算。
可选地,所述第一处理模块402进行伽罗华域乘法计算,还包括:
所述第一处理模块402对通过进行所述数据加密或者解密计算,得到的加密或者解密后的数据进行伽罗华域乘法计算。
可选地,所述第一处理模块402进行标签计算,具体包括:
所述第一处理模块402在指定的最后一笔数据进行伽罗华域乘法计算后,跳转至标签预处理状态,为标签计算进行预处理;
在所述预处理后,跳转至标签计算状态,进行标签计算。
可选地,所述其他的模式包括ECB模式、CBC模式、CFB模式、OFB模式。
可选地,所述密钥相关数据至少包括密钥;
所述装置还包括:
密钥保护模块404,将所述密钥写入指定硬件的存储空间中,所述存储空间软件可写不可读,且写保护可控;
对所述写保护进行控制,以使所述存储空间软件不可写不可读,已写入所述存储空间中的所述密钥能够自动加载至相应的功能模块中,以供所述数据加密或者解密计算。
可选地,所述密钥相关数据至少包括密钥;
所述密钥的长度为192位、256位或者128位。
图5为本申请的一些实施例提供的对应于图1的一种AES算法的加密模式实现设备的结构示意图,在实现过程中通过状态机进行状态控制,该设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
适应于当前的加密模式,计算密钥相关数据;
若所述当前的加密模式为GCM,则进行至少一次状态跳转,并在所跳转的相应状态下,根据所述密钥相关数据和接收的补充信息,进行数据加密或者解密计算和伽罗华域乘法计算,以及标签计算,输出计算结果;
若所述当前的加密模式为其他的模式,则进行至少一次状态跳转,并在所跳转的相应状态下,根据所述密钥相关数据,进行数据加密或者解密计算,输出计算结果。
本申请的一些实施例提供的对应于图1的一种AES算法的加密模式实现非易失性计算机存储介质,存储有计算机可执行指令,在实现过程中通过状态机进行状态控制,该计算机可执行指令设置为:
适应于当前的加密模式,计算密钥相关数据;
若所述当前的加密模式为GCM,则进行至少一次状态跳转,并在所跳转的相应状态下,根据所述密钥相关数据和接收的补充信息,进行数据加密或者解密计算和伽罗华域乘法计算,以及标签计算,输出计算结果;
若所述当前的加密模式为其他的模式,则进行至少一次状态跳转,并在所跳转的相应状态下,根据所述密钥相关数据,进行数据加密或者解密计算,输出计算结果。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例提供的装置、设备和介质与方法是一一对应的,因此,装置、设备和介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述装置、设备和介质的有益技术效果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (22)

1.一种高级加密标准AES算法的加密模式实现方法,其特征在于,在所述实现过程中通过状态机进行状态控制,所述方法包括:
适应于当前的加密模式,计算密钥相关数据;
若所述当前的加密模式为伽罗华计数器模式GCM,则进行至少一次状态跳转,并在所跳转的相应状态下,根据所述密钥相关数据和接收的补充信息,进行数据加密或者解密计算和伽罗华域乘法计算,以及标签计算,输出计算结果;
若所述当前的加密模式为其他的模式,则进行至少一次状态跳转,并在所跳转的相应状态下,根据所述密钥相关数据,进行数据加密或者解密计算,输出计算结果。
2.如权利要求1所述的方法,其特征在于,所述密钥相关数据至少包括在一轮或者多轮所述加密或者解密计算过程所需使用的密钥;
若所述当前的加密模式为GCM,则所述密钥为密钥K,所述密钥相关数据还包括:H值和J0值。
3.如权利要求2所述的方法,其特征在于,所述适应于当前的加密模式,计算密钥相关数据,具体包括:
在密钥计算状态下,适应于当前的加密模式,计算所述密钥;
若所述当前的加密模式为GCM,则所述适应于当前的加密模式,计算密钥相关数据,还包括:
从密钥计算状态进行至少一次状态跳转,并在所跳转的相应状态下,计算所述H值和J0值。
4.如权利要求1所述的方法,其特征在于,所述进行数据加密或者解密计算,具体包括:
在数据接受状态下,一轮或者多轮地接受待加密或者解密的数据;
在数据加解密状态下,针对所述待加密或者解密的数据,进行数据加密或者解密计算。
5.如权利要求1所述的方法,其特征在于,所述进行伽罗华域乘法计算,具体包括:
在开始接收到所述补充信息时,跳转至伽罗华域乘法状态,对所述补充信息进行伽罗华域乘法计算。
6.如权利要求5所述的方法,其特征在于,所述进行伽罗华域乘法计算,还包括:
对通过进行所述数据加密或者解密计算,得到的加密或者解密后的数据进行伽罗华域乘法计算。
7.如权利要求1所述的方法,其特征在于,所述进行标签计算,具体包括:
在指定的最后一笔数据进行伽罗华域乘法计算后,跳转至标签预处理状态,为标签计算进行预处理;
在所述预处理后,跳转至标签计算状态,进行标签计算。
8.如权利要求1所述的方法,其特征在于,所述其他的模式包括电码本ECB模式、密码分组链接CBC模式、密文反馈CFB模式、输出反馈OFB模式。
9.如权利要求1所述的方法,其特征在于,所述密钥相关数据至少包括密钥;
所述方法还包括:
将所述密钥写入指定硬件的存储空间中,所述存储空间软件可写不可读,且写保护可控;
对所述写保护进行控制,以使所述存储空间软件不可写不可读,已写入所述存储空间中的所述密钥能够自动加载至相应的功能模块中,以供所述数据加密或者解密计算。
10.如权利要求1所述的方法,其特征在于,所述密钥相关数据至少包括密钥;
所述密钥的长度为192位、256位或者128位。
11.一种高级加密标准AES算法的加密模式实现装置,其特征在于,在所述实现过程中通过状态机进行状态控制,所述装置包括:
密钥计算模块,适应于当前的加密模式,计算密钥相关数据;
第一处理模块,若所述当前的加密模式为伽罗华计数器模式GCM,则进行至少一次状态跳转,并在所跳转的相应状态下,根据所述密钥相关数据和接收的补充信息,进行数据加密或者解密计算和伽罗华域乘法计算,以及标签计算,输出计算结果;
第二处理模块,若所述当前的加密模式为其他的模式,则进行至少一次状态跳转,并在所跳转的相应状态下,根据所述密钥相关数据,进行数据加密或者解密计算,输出计算结果。
12.如权利要求11所述的装置,其特征在于,所述密钥相关数据至少包括在一轮或者多轮所述加密或者解密计算过程所需使用的密钥;
若所述当前的加密模式为GCM,则所述密钥为密钥K,所述密钥相关数据还包括:H值和J0值。
13.如权利要求12所述的装置,其特征在于,所述密钥计算模块适应于当前的加密模式,计算密钥相关数据,具体包括:
所述密钥计算模块在密钥计算状态下,适应于当前的加密模式,计算所述密钥;
若所述当前的加密模式为GCM,则所述密钥计算模块适应于当前的加密模式,计算密钥相关数据,还包括:
从密钥计算状态进行至少一次状态跳转,并在所跳转的相应状态下,计算所述H值和J0值。
14.如权利要求11所述的装置,其特征在于,所述第一处理模块、所述第二处理模块进行数据加密或者解密计算,具体包括:
所述第一处理模块、所述第二处理模块在数据接受状态下,一轮或者多轮地接受待加密或者解密的数据;
在数据加解密状态下,针对所述待加密或者解密的数据,进行数据加密或者解密计算。
15.如权利要求11所述的装置,其特征在于,所述第一处理模块进行伽罗华域乘法计算,具体包括:
所述第一处理模块在开始接收到所述补充信息时,跳转至伽罗华域乘法状态,对所述补充信息进行伽罗华域乘法计算。
16.如权利要求15所述的装置,其特征在于,所述第一处理模块进行伽罗华域乘法计算,还包括:
所述第一处理模块对通过进行所述数据加密或者解密计算,得到的加密或者解密后的数据进行伽罗华域乘法计算。
17.如权利要求11所述的装置,其特征在于,所述第一处理模块进行标签计算,具体包括:
所述第一处理模块在指定的最后一笔数据进行伽罗华域乘法计算后,跳转至标签预处理状态,为标签计算进行预处理;
在所述预处理后,跳转至标签计算状态,进行标签计算。
18.如权利要求11所述的装置,其特征在于,所述其他的模式包括电码本ECB模式、密码分组链接CBC模式、密文反馈CFB模式、输出反馈OFB模式。
19.如权利要求11所述的装置,其特征在于,所述密钥相关数据至少包括密钥;
所述装置还包括:
密钥保护模块,将所述密钥写入指定硬件的存储空间中,所述存储空间软件可写不可读,且写保护可控;
对所述写保护进行控制,以使所述存储空间软件不可写不可读,已写入所述存储空间中的所述密钥能够自动加载至相应的功能模块中,以供所述数据加密或者解密计算。
20.如权利要求11所述的装置,其特征在于,所述密钥相关数据至少包括密钥;
所述密钥的长度为192位、256位或者128位。
21.一种AES算法的加密模式实现设备,其特征在于,在所述实现过程中通过状态机进行状态控制,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
适应于当前的加密模式,计算密钥相关数据;
若所述当前的加密模式为伽罗华计数器模式GCM,则进行至少一次状态跳转,并在所跳转的相应状态下,根据所述密钥相关数据和接收的补充信息,进行数据加密或者解密计算和伽罗华域乘法计算,以及标签计算,输出计算结果;
若所述当前的加密模式为其他的模式,则进行至少一次状态跳转,并在所跳转的相应状态下,根据所述密钥相关数据,进行数据加密或者解密计算,输出计算结果。
22.一种AES算法的加密模式实现非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,在所述实现过程中通过状态机进行状态控制,所述计算机可执行指令设置为:
适应于当前的加密模式,计算密钥相关数据;
若所述当前的加密模式为伽罗华计数器模式GCM,则进行至少一次状态跳转,并在所跳转的相应状态下,根据所述密钥相关数据和接收的补充信息,进行数据加密或者解密计算和伽罗华域乘法计算,以及标签计算,输出计算结果;
若所述当前的加密模式为其他的模式,则进行至少一次状态跳转,并在所跳转的相应状态下,根据所述密钥相关数据,进行数据加密或者解密计算,输出计算结果。
CN201811242426.2A 2018-10-24 2018-10-24 一种aes算法的加密模式实现方法及装置、设备、介质 Pending CN111092716A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811242426.2A CN111092716A (zh) 2018-10-24 2018-10-24 一种aes算法的加密模式实现方法及装置、设备、介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811242426.2A CN111092716A (zh) 2018-10-24 2018-10-24 一种aes算法的加密模式实现方法及装置、设备、介质

Publications (1)

Publication Number Publication Date
CN111092716A true CN111092716A (zh) 2020-05-01

Family

ID=70392013

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811242426.2A Pending CN111092716A (zh) 2018-10-24 2018-10-24 一种aes算法的加密模式实现方法及装置、设备、介质

Country Status (1)

Country Link
CN (1) CN111092716A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116126753A (zh) * 2022-12-28 2023-05-16 江苏都万电子科技有限公司 一种防护存储器及存储方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101827107A (zh) * 2010-05-11 2010-09-08 南京大学 一种基于ieee802.1ae协议的gcm高速加解密器
CN103150522A (zh) * 2013-03-07 2013-06-12 中国科学院半导体研究所 一种适用于无源便携式设备的3des加密算法电路
CN105790926A (zh) * 2014-12-26 2016-07-20 中国科学院沈阳自动化研究所 用于wia-pa安全的分组密码算法工作模式实现方法
US20180167366A1 (en) * 2016-12-12 2018-06-14 Qualcomm Incorporated Cryptographic mode programmability

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101827107A (zh) * 2010-05-11 2010-09-08 南京大学 一种基于ieee802.1ae协议的gcm高速加解密器
CN103150522A (zh) * 2013-03-07 2013-06-12 中国科学院半导体研究所 一种适用于无源便携式设备的3des加密算法电路
CN105790926A (zh) * 2014-12-26 2016-07-20 中国科学院沈阳自动化研究所 用于wia-pa安全的分组密码算法工作模式实现方法
US20180167366A1 (en) * 2016-12-12 2018-06-14 Qualcomm Incorporated Cryptographic mode programmability

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ANDREW FITZGERALD: "Design and analysis of an FPGA-based, multi processor HW-SW system for SCC applications", 《ROCHESTER INSTITUTE OF TECHNOLOGY》 *
曾毅等: "一种优化可配置的AES密码算法硬件实现", 《微电子学与计算机》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116126753A (zh) * 2022-12-28 2023-05-16 江苏都万电子科技有限公司 一种防护存储器及存储方法
CN116126753B (zh) * 2022-12-28 2024-02-02 江苏都万电子科技有限公司 一种防护存储器及存储方法

Similar Documents

Publication Publication Date Title
EP3917075B1 (en) Method and apparatus for encrypting and decrypting product information
CN106850221B (zh) 信息加密、解密方法及装置
CN110032884B (zh) 区块链中实现隐私保护的方法及节点、存储介质
US11184164B2 (en) Secure crypto system attributes
CN102138300B (zh) 消息认证码预计算在安全存储器中的应用
CN101350714B (zh) 采用混合rijndael s-box的有效高级加密标准数据路径
CN110032876B (zh) 区块链中实现隐私保护的方法、节点和存储介质
CN110289946B (zh) 一种区块链钱包本地化文件的生成方法及区块链节点设备
CN105577379A (zh) 一种信息处理方法及装置
US20150278555A1 (en) Method for performing an encryption with look-up tables, and corresponding encryption apparatus and computer program product
US10020932B2 (en) Split-and-merge approach to protect against DFA attacks
CN111612462B (zh) 区块链中实现隐私保护的方法、节点和存储介质
CN107947917A (zh) 一种生成白盒密钥的方法及装置
CN111783124A (zh) 基于隐私保护的数据处理方法、装置和服务器
CN108134673B (zh) 一种生成白盒库文件的方法及装置
Kazymyrov et al. Influence of addition modulo 2 n on algebraic attacks
CN110061957A (zh) 数据加密、解密方法、用户端、服务器及数据管理***
US20150063565A1 (en) Methods and apparatuses for prime number generation and storage
CN111639362B (zh) 区块链中实现隐私保护的方法、节点和存储介质
CN110059497B (zh) 区块链中实现隐私保护的方法、节点和存储介质
CN108494546A (zh) 一种白盒加密方法、装置及存储介质
CN108416224B (zh) 一种数据加解密方法及装置
CN107133524A (zh) 一种数据存储方法及装置
US20150058639A1 (en) Encryption processing device and storage device
CN102480353A (zh) 口令认证和密钥保护的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20201203

Address after: Room 206, 2 / F, building C, phase I, Zhongguancun Software Park, No. 8, Dongbei Wangxi Road, Haidian District, Beijing 100094

Applicant after: Canaan Bright Sight Co.,Ltd.

Address before: 100094, No. 3, building 23, building 8, northeast Wang Xi Road, Beijing, Haidian District, 307

Applicant before: Canaan Creative Co.,Ltd.

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination