CN109379180B - Aes算法实现方法、装置及固态硬盘 - Google Patents

Aes算法实现方法、装置及固态硬盘 Download PDF

Info

Publication number
CN109379180B
CN109379180B CN201811565309.XA CN201811565309A CN109379180B CN 109379180 B CN109379180 B CN 109379180B CN 201811565309 A CN201811565309 A CN 201811565309A CN 109379180 B CN109379180 B CN 109379180B
Authority
CN
China
Prior art keywords
key
ciphertext
temporary
initial
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.)
Active
Application number
CN201811565309.XA
Other languages
English (en)
Other versions
CN109379180A (zh
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.)
Hunan Goke Microelectronics Co Ltd
Original Assignee
Hunan Goke Microelectronics 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 Hunan Goke Microelectronics Co Ltd filed Critical Hunan Goke Microelectronics Co Ltd
Priority to CN201811565309.XA priority Critical patent/CN109379180B/zh
Publication of CN109379180A publication Critical patent/CN109379180A/zh
Application granted granted Critical
Publication of CN109379180B publication Critical patent/CN109379180B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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算法实现方法、装置及固态硬盘,所述方法包括:依据输入的初始密钥对输入的明文进行轮密钥加得到初始密文;依据初始密钥进行轮密钥处理得到第一密钥;依据初始密文进行第一加密处理得到第一密文,其中,第一加密处理具有N个时钟周期,每个时钟周期对应M次可循环迭代运算,其中,N为大于1的正整数、M为大于或者等于2的正整数;依据第一密文及第一密钥进行第二加密处理得到与明文对应的最终密文。本发明通过在一个时钟周期内完成至少AES加密算法流程中的两次迭代,极大地减少了一个完整的AES加密算法流程消耗的时钟周期,从而大幅度提高单个AES运算单元的运算速度。

Description

AES算法实现方法、装置及固态硬盘
技术领域
本发明涉及密码技术领域,具体而言,涉及一种AES算法实现方法、装置及固态硬盘。
背景技术
实现AES加密算法的AES运算单元在硬件电路实现时,考虑硬件电路的时序控制逻辑,通常采用一个时钟周期完成AES加密算法中的一次迭代运算,而一个完整的AES加密算法流程至少需要10次迭代,即至少耗时10个时钟周期。以128bit的密钥长度为例,在时钟频率为200Mhz时,则单个AES运算核心的速度为128bit/(10*5ns),即0.32G/秒。这个速度对于当前的绝大多数涉及数据存储的应用来说都是不够的。现有解决方案通常采用多个AES运算单元以外部流水线的方式提高运算速度,但是现有解决方案由于增加了AES运算单元的个数,从而导致芯片面积的增加及硬件资源成本的增加。
发明内容
本发明实施例的目的在于提供一种AES算法实现方法、装置及固态硬盘,通过在一个时钟周期内完成至少AES加密算法流程中的两次迭代,极大地减少了一个完整的AES加密算法流程消耗的时钟周期,从而大幅度提高单个AES运算单元的运算速度。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种AES算法实现方法,应用于固态硬盘,所述方法包括:依据输入的初始密钥对输入的明文进行轮密钥加得到初始密文;依据初始密钥进行轮密钥处理得到第一密钥,其中,轮密钥处理具有N个时钟周期,每个时钟周期对应M次轮密钥生成运算,其中,N为大于1的正整数、M为大于或者等于2的正整数;依据初始密文进行第一加密处理得到第一密文,其中,第一加密处理具有N个时钟周期,每个时钟周期对应M次可循环迭代运算,其中,N为大于1的正整数、M为大于或者等于2的正整数;依据第一密文及第一密钥进行第二加密处理得到与明文对应的最终密文。
第二方面,本发明实施例还提供了一种AES算法实现装置,应用于固态硬盘,所述装置包括初始加密模块、第一密钥生成模块、第一加密模块和第二加密模块。其中,初始加密模块用于依据输入的初始密钥对输入的明文进行轮密钥加得到初始密文;第一密钥生成模块用于依据初始密钥进行轮密钥处理得到第一密钥,其中,轮密钥处理具有N个时钟周期,每个时钟周期对应M次轮密钥生成运算,其中,N为大于1的正整数、M为大于或者等于2的正整数;第一加密模块,用于依据初始密文进行第一加密处理得到第一密文,其中,第一加密处理具有N个时钟周期,每个时钟周期对应M次可循环迭代运算,其中,N为大于1的正整数、M为大于或者等于2的正整数;第二加密模块,用于依据第一密文及第一密钥进行第二加密处理得到与明文对应的最终密文。
第三方面,本发明实施例还提供了一种固态硬盘,所述固态硬盘包括微处理器、存储器、闪存、AES运算单元,微处理器与存储器、闪存及述AES运算单元均电连接;存储器用于存储初始密钥;闪存用于存储最终密文;微处理器用于接收明文,并读取存储器中的初始密钥输入至AES运算单元,以执行:依据输入的初始密钥及输入的明文控制AES运算单元进行轮密钥加得到初始密文、以及依据初始密钥控制AES运算单元进行轮密钥处理得到第一密钥,其中,轮密钥处理具有N个时钟周期,每个时钟周期对应M次轮密钥生成运算,其中,N为大于1的正整数、M为大于或者等于2的正整数、以及依据初始密文控制AES运算单元进行第一加密处理得到第一密文,其中,第一加密处理具有N个时钟周期,每个时钟周期对应M次可循环迭代运算,其中,N为大于1的正整数、M为大于或者等于2的正整数、以及依据第一密文及第一密钥控制AES运算单元进行第二加密处理得到与明文对应的最终密文。
相对现有技术,本发明实施例提供的一种AES算法实现方法、装置及固态硬盘,首先,微处理器接收主机下发的明文;然后,微处理器从存储器中读取初始密钥,依据输入的初始密钥及输入的明文进行轮密钥加得到初始密文,接下来,依据初始密钥控制AES运算单元进行轮密钥处理得到第一密钥,其中,轮密钥处理具有N个时钟周期,每个时钟周期对应M次轮密钥生成运算,其中,N为大于1的正整数、M为大于或者等于2的正整数;接下来,依据初始密文控制AES运算单元进行第一加密处理得到第一密文,其中,第一加密处理具有N个时钟周期,每个时钟周期对应M次可循环迭代运算,其中,N为大于1的正整数、M为大于或者等于2的正整数,最后,依据第一密文及第一密钥控制AES运算单元进行第二加密处理得到与明文对应的最终密文,将最终密文存入闪存。与现有技术相比,本发明实施例通过在一个时钟周期内完成至少AES加密算法流程中的两次迭代,极大地减少了一个完整的AES加密算法流程消耗的时钟周期,从而大幅度提高单个AES运算单元的运算速度。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的固态硬盘的方框示意图。
图2示出了本发明实施例提供的一种AES算法实现方法流程图。
图3示出了本发明实施例提供的第一加密处理的示例图。
图4示出了本发明实施例提供了另一种AES算法实现方法。
图5示出了本发明实施例提供的AES算法实现装置的方框示意图。
图6示出了本发明实施例提供的第一加密模块的单元示意图。
图7示出了本发明实施例提供的第二加密模块的单元示意图。
图8示出了本发明实施例提供的多个AES运算单元的结构框图
图标:100-固态硬盘;101-微处理器;102-存储器;103-闪存;104-AES运算单元;200-AES算法实现装置;201-初始加密模块;202-第一密钥生成模块;203-第一加密模块;2031-第一加密单元;2032-第一迭代单元;204-第二加密模块;2041-密钥生成单元;2042-第二加密单元;2043-第二迭代单元;2044-最终密文生成单元。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,图1示出了本发明实施例提供的固态硬盘100的方框示意图,固态硬盘100包括微处理器101、存储器102、闪存103、AES运算单元104,微处理器101与存储器102、闪存103、AES运算单元104均电连接。
微处理器101可以是专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以接收主机下发的明文并控制AES运算单元104实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。
存储器102为非易失性存储器,用于存储初始密钥,该存储器102不为固态硬盘100之外的主机可见,专门用于存储初始密钥。
闪存103是非易失性存储介质,用于存储对明文进行加密后生成的最终密文。
AES运算单元104可以是逻辑电路,用于根据输入的初始密钥对输入的明文进行AES加密。
第一实施例
请参照图2,图2示出了本发明实施例提供的一种AES算法实现方法流程图。处理方法包括以下步骤:
步骤101,依据输入的初始密钥对输入的明文进行轮密钥加得到初始密文。
在本发明实施例中,明文为用户需要存储至固态硬盘100的数据,为了加强固态硬盘100上数据的安全性,固态硬盘100的微处理器101在收到用户通过主机下发的明文后,首先会对明文进行AES算法加密,然后将加密后的数据再存储至固态硬盘100的闪存103中。采用AES算法对明文进行加密是通过AES运算单元104实现的,因此,微处理器101首先将存储器102中存储的初始密钥读出,然后将明文和初始密钥输入至AES运算单元104进行AES加密运算后得到最终密文,并将最终密文存储至闪存103中。
AES加密的明文长度是固定的,为128bit,构成一个4x4的字节矩阵,矩阵中每个元素的长度为一个字节长度,密钥的长度可以是128bit、192bit或者256bit。AES加密过程包括开始的一次轮密钥加,中间多次可循环迭代运算,最后一次不循环迭代运算,在进行可循环迭代运算之前,首先根据初始密钥对明文进行一次轮密钥加得到初始密文,然后将初始密文和初始密钥作为第一次可循环迭代运算的输入继续后续运算。
步骤102,依据初始密钥进行轮密钥处理得到第一密钥,其中,轮密钥处理具有N个时钟周期,每个时钟周期对应M次轮密钥生成运算,其中,N为大于1的正整数、M为大于或者等于2的正整数。
在本发明实施例中,每个时钟周期进行M次轮密钥生成运算与M次可循环迭代运算一一对应,每次轮密钥生成运算得到的中间结果用于作为对应的可循环迭代运算的输入对该可循环迭代运算的输入密文进行加密,第m次轮密钥生成运算的生成的密钥作为第m+1次轮密钥生成运算的输入,每个时钟周期最后一次轮密钥生成运算得到的密钥作为下一个时钟周期的轮密钥生成运算的输入,第M次轮密钥生成运算得到的密钥为第一密钥,该第一密钥作为第二加密运算的其中一个输入。
步骤103,依据初始密文进行第一加密处理得到第一密文,其中,第一加密处理具有N个时钟周期,每个时钟周期对应M次可循环迭代运算,其中,N为大于1的正整数、M为大于或者等于2的正整数。
在本发明实施例中,密钥的长度不同,可循环迭代运算的次数也不一样,例如,当密钥长度为128bit时,可循环迭代运算的次数为9次,当密钥长度为192bit时,可循环迭代运算的次数为11次,当密钥长度为256bit时,可循环迭代运算的次数为13次,但是,不管密钥长度是多少,最后都会有一次不循环迭代运算,可循环迭代运算包括4个步骤,分别为:字节变换(SubBytes)、行移位(ShiftRows)、列混合(Mixcolumns)及轮密钥加(AddRoundKey),其中,字节变换是通过非线性替换函数,用查找表的方法把每个字节替换成查找表中对应的字符串,行移位是将矩阵中每个横列进行循环式移位,列混合是用一个常矩阵乘以前一步得到的矩阵,使得矩阵中每一个元素都是该元素所在列的所有元素的加权和,轮密钥加是将矩阵中每一个字节都与该次轮密钥做异或运算,每个轮密钥由密钥生成方案产生,最后一次包括预设步骤的运算包括的步骤分别是:字节变换、行移位及轮密钥加。在本发明实施例中,每个时钟周期需要产生的轮密钥的个数与每个时钟周期需要进行的可循环迭代运算的次数相等,需要产生多少个轮密钥就对输入的密钥进行多少次轮密钥生成算法,每次轮密钥生成算法生成的轮密钥,作为下一次轮密钥生成算法的输入,每进行一次轮密钥生成算法即可得到一个轮密钥。第一加密处理的初始输入为初始密文及初始密钥,包括N*M次的可循环迭代运算,其中,N为时钟周期的个数,是大于1的正整数,M为每个时钟周期完成的可循环迭代运算的次数,是大于或者等于2的正整数,每一次可循环迭代运算的输出作为下一次可循环迭代的输入,例如,N为4,M为2,即第一加密处理一共包括4个时钟周期,每个时钟周期包括2次可循环迭代运算,图3示出了本发明实施例提供的第一加密处理的示例图,图3中,第一加密处理一共包括4个时钟周期,每个时钟周期包括2次可循环迭代运算,第一加密处理的初始输入为初始密文及初始密钥,每个时钟周期在进行2次可循环迭代运算之前,还要生成2个轮密钥,首先对初始密钥进行一次轮密钥生成算法得到第一个轮密钥,然后对第一个轮密钥进行一次轮密钥生成算法得到第二个轮密钥,在进行第一次可循环迭代运算时输入初始密文及第一个轮密钥,将第一次可循环迭代运算得到的第一临时密文及第二个轮密钥作为第二次可循环迭代运算的输入,最终得到第一个时钟周期的输出的第一临时密文,继续对每个时钟周期的可循环迭代运算进行迭代,直至完成N个时钟周期的运算,第N个时钟周期的输出的第一临时密文为第一密文,第N个时钟周期内最后产生的轮密钥作为第一密钥。
需要说明的是,第一加密处理持续N个时钟周期,其中,时钟周期为AES完成一个基本动作的时间单位,在本发明实施例中,每个时钟周期内,AES逻辑运算单元完成至少两次可循环迭代运算,实际应用场景中,在硬件性能允许的情况下,每个时钟周期内,也可以将AES逻辑运算单元设计成完成三次或三次以上的可循环迭代运算。
步骤104,依据第一密文及第一密钥进行第二加密处理得到与明文对应的最终密文。
在本发明实施例中,第二加密处理涉及到的运算除了包括最后一次不循环迭代运算之外,还可以包括可循环迭代运算,具体的可循环迭代运算的次数可以依据AES算法的可循环迭代运算的总次数和第一加密处理包括的可循环迭代运算的次数之差计算得到,例如,AES算法包括9次可循环迭代运算和1次不循环迭代运算,第一加密处理具有4个时钟周期,每个时钟周期对应2次可循环迭代运算,因此,第一加密处理共完成了4*2=8次可循环迭代运算,还剩余9-8=1次可循环迭代运算未进行,此时,第二加密处理包括依次可循环迭代运算和依次不循环迭代运算,以此类推,当AES算法包括9次可循环迭代运算和1次不循环迭代运算,第一加密处理具有3个时钟周期,每个时钟周期对应3次可循环迭代运算,此时,第二加密处理可以不包括可循环迭代运算,只包括最后一次不循环迭代运算,同样地,当AES算法包括11次可循环迭代运算和1次不循环迭代运算,第一加密处理具有3个时钟周期,每个时钟周期对应3次可循环迭代运算,此时,第二加密处理包括2次可循环迭代运算和最后一次不循环迭代运算。
本发明实施例提供的AES算法实现方法,通过在一个时钟周期内完成至少AES加密算法流程中的两次迭代,极大地减少了一个完整的AES加密算法流程消耗的时钟周期,从而大幅度提高单个AES运算单元104的运算速度。
进一步地,在图2的基础上,下面给出一种可能的实现方式,图4示出了本发明实施例提供了另一种AES算法实现方法,请参照图4,该方法,步骤103包括第一加密子步骤(步骤103-1)及第一迭代子步骤(步骤103-2、步骤103-3和步骤103-4),具体如下:
步骤103-1、依据初始密文及初始密钥进行第n个时钟周期内的可循环迭代运算及第n个时钟周期内的轮密钥生成运算,获得第n个时钟周期内的可循环迭代运算得到的中间密文和第n个时钟周期内的轮密钥生成运算得到的中间密钥;所述n为小于等于N-1的正整数。
在本发明实施例中,作为一种实施方式,依据初始密文及初始密钥进行第n个时钟周期内的可循环迭代运算及第n个时钟周期内的轮密钥生成运算,获得第n个时钟周期内的可循环迭代运算得到的中间密文和第n个时钟周期内的轮密钥生成运算得到的中间密钥的实现方法可以包括第一密钥生成子步骤、第二加密子步骤及第二迭代子步骤,其中,第一密钥生成子步骤包括:
依据初始密钥利用轮密钥生成算法进行M次轮密钥计算,得到M个第一临时密钥,其中,每次轮密钥计算得到一个第一临时密钥。
在本发明实施例中,为了配合一个时钟周期内完成M次可循环迭代运算,需要在一个时钟周期内产生M个第一临时密钥,以保证在一个时钟周期的每次可循环迭代运算时,可以输入对应的第一临时密钥和第一临时密文得到本次可循环迭代运算的结果。
第二加密子步骤包括:
首先,按照第一临时密钥的生成顺序,从第一临时密钥中获取第m个第一临时密钥;m为小于或者等于M-1的正整数;
其次,依据第m个第一临时密钥对初始密文进行可循环迭代运算得到第m次可循环迭代运算的第一临时密文。
在本发明实施例中,每个时钟周期内的可循环迭代运算的顺序与轮密钥生成的顺序是一致的。
第二迭代子步骤包括:
将第m次可循环迭代运算得到的第一临时密文作为第m+1次可循环迭代运算的初始密文;直至迭代次数达到M时,将第M次可循环迭代运算得到的第一临时密文作为中间密文,将第M次轮密钥计算产生的第一临时密钥作为中间密钥。
步骤103-2、将第n个时钟周期内可循环迭代运算得到的中间密文作为第n+1个时钟周期内可循环迭代运算输入的初始密文;
步骤103-3、基于第n个时钟周期内的轮密钥生成运算的中间密钥得到第n+1个时钟周期内的轮密钥生成运算输入的初始密钥,基于第n+1个时钟周期内的轮密钥生成运算得到的中间密钥,迭代第n+1个时钟周期内的可循环迭代运算;
步骤103-4、直至迭代次数达到N时,将第N个时钟周期内的可循环迭代运算得到的中间密文作为第一密文及将第N个时钟周期内的轮密钥生成运算得到的中间密钥作为第一密钥;
步骤104包括第二密钥生成子步骤(步骤104-1、步骤104-2)、第三加密子步骤(步骤104-3、步骤104-4、步骤104-5)、第三迭代子步骤(步骤104-6、步骤104-7)及最终密文生成子步骤(步骤104-8),具体包括:
步骤104-1、获取第二加密处理所需的密钥总数K,其中,K=预设值-M*N;
在本发明实施例中,预设值与密钥长度有关,当密钥长度为128bit时,预设值为10,当密钥长度为192bit时,预设值为12,当密钥长度为256bit时,预设值为14。
步骤104-2、依据第一密钥利用轮密钥生成算法进行K次的轮密钥计算,其中,每次轮密钥计算得到一个第二临时密钥;
在本发明实施例中,第二临时密钥和第一临时密钥采用的算法都是轮密钥生成算法,为了便于描述,本发明实施例将第一加密处理步骤中每个时钟周期产生的密钥称为第一临时密钥,将第二加密处理步骤中每个时钟周期产生的密钥称为第二临时密钥,第一加密处理步骤中每个周期产生的密钥的个数都是一样的,第二加密处理步骤中每个周期产生的密钥的个数可以不一样,例如,AES算法包括9次可循环迭代运算和1次不循环迭代运算,第一加密处理具有3个时钟周期,每个时钟周期对应3次可循环迭代运算,第二加密处理,只包括最后一次不循环迭代运算,因此,在第一加密处理步骤中,每个时钟周期需要产生的第一临时密钥的个数为3个,在第二加密处理步骤中,每个时钟周期需要产生的第二临时密钥的个数为1个。
步骤104-3、当K为1时,将第K个第二临时密钥作为第二密钥,将第一密文作为第二密文;
在本发明实施例中,K为1意味着第二加密处理只包括依次不循环迭代运算,不包括可循环迭代运算,此时,只需要生成一个第二临时密钥,并将该第二临时密钥作为第二密钥,将第一加密处理的第一密文作为第二密文。
步骤104-4、当K大于1时,按照第二临时密钥的生成顺序,从第二临时密钥中获取第k个第二临时密钥;k为小于或者等于K-1的正整数;
在本发明实施例中,K大于1意味着第二加密处理包括K-1次可循环迭代运算及一次不循环迭代运算。
步骤104-5、依据第k个第二临时密钥对第一密文进行第k次可循环迭代运算得到第k次的第二临时密文;
步骤104-6、将第k次的第二临时密文作为第k+1次第一密文,迭代第k+1次可循环迭代运算;
步骤104-7、直至迭代次数达到K-1次,将第K-1次的第二临时密钥作为第二密钥及将第K-1次的第二临时密文作为第二密文;
步骤104-8、依据第二密钥对第二密文进行不循环迭代运算得到最终密文。
在本发明实施例中,通过在一个时钟周期内完成至少AES加密算法流程中的两次迭代,以及在一个时钟周期内产生与对应迭代次数相同的轮密钥,与现有技术相比,具有以下有益效果:
极大地减少了一个完整的AES加密算法流程消耗的时钟周期,从而大幅度提高单个AES运算单元104的运算速度。
请参照图5,图5示出了本发明实施例提供的AES算法实现装置200的方框示意图。AES算法实现装置200应用于固态硬盘100,其包括初始加密模块201;第一加密模块203;第一加密单元2031;第一迭代单元2032;第二加密模块204;密钥生成单元2041;第二加密单元2042;第二迭代单元2043;最终密文生成单元2044。
在本发明实施例中,初始加密模块201用于执行步骤101。
在本发明实施例中,第一密钥生成模块202用于执行步骤102。
在本发明实施例中,第一加密模块203用于执行步骤103。
请参照图6,图6示出了本发明实施例提供的第一加密模块203的单元示意图,第一加密模块203包括第一加密单元2031、第一迭代单元2032,其中,第一加密单元2031用于执行步骤103-1,第一迭代单元2032用于执行步骤103-2~步骤103-4。
在本发明实施例中,第二加密模块204用于执行步骤104。
请参照图7,图7示出了本发明实施例提供的第二加密模块204的单元示意图,第二加密模块204包括密钥生成单元2041、第二加密单元2042、第二迭代单元2043及最终密文生成单元2044,其中,密钥生成单元2041用于执行步骤104-1~步骤104-2,第二加密单元2042用于步骤104-3~步骤104-5,第二迭代单元2043用于执行步骤104-6~步骤104-7,最终密文生成单元2044用于执行步骤104-8。
本发明实施例提供的AES算法实现装置200,首先,在微处理器101的控制下依据输入的初始密钥对输入的明文控制AES运算单元104进行轮密钥加得到初始密文,其次,在微处理器101的控制下依据初始密钥控制AES运算单元104进行轮密钥处理得到第一密钥,然后,在微处理器101的控制下依据初始密文控制AES运算单元104进行第一加密处理得到第一密文,最后,在微处理器101的控制器依据第一密文及第一密钥控制AES运算单元104进行第二加密处理得到与明文对应的最终密文,以实现对应的技术效果。
需要说明的是,AES算法实现装置200包括的所有模块和单元中涉及到的加密运算均是微处理器101控制AES运算单元104实现的。
现有技术为了提高AES加密运算的效率,通常采用多个AES运算单元104进行流水线操作,进而提高AES加密运算的运算速度,对于密钥为128bit需要9次可循环迭代运算和1次不循环迭代运算的场景,在现有技术中,由于每个时钟周期进行一次可循环迭代运算,因此,通常采用10个AES运算单元104,每个AES运算单元104做一次可循环迭代运算,最后一个AES运算单元104做最后一次不循环迭代运算,这样就可以使得多个AES运算单元104同时工作,进而提高运算速度,但是,现有技术中,10个AES运算单元104增加了占据的芯片面积,从而导致成本的增加,另一方面,在一段独立的需要加密的明文的AES运算开始时和结束时,通常会出现10个AES运算单元104中多个AES运算单元104不同程度的闲置情况,从而浪费了资源,AES运算单元104越多,此时浪费的资源也越多。
在本发明实施例中,由于每个AES运算单元104在一个时钟周期可以完成2次以上的可循环迭代运算,因此,在上述需要10个AES运算单元104的场景中,达到与之相同的效果,本发明实施例只需要5个AES运算单元104,请参照图8,图8为本发明实施例提供的多个AES运算单元104的结构框图,图8中,每个AES运算单元104与微处理器101单独电连接,微处理器101控制5个AES运算单元104进行流水线操作,一方面,减少了AES运算单元104占据的芯片面积,降低了成本,另一方面,由于需要的AES运算单元104的个数减少,从而使得资源的浪费也得以减少。
综上所述,本发明提供的一种AES算法实现方法、装置及固态硬盘,所述方法包括:依据输入的初始密钥对输入的明文进行轮密钥加得到初始密文;依据初始密文及初始密钥进行第一加密处理得到第一密文及第一密钥,其中,第一加密处理具有N个时钟周期,每个时钟周期对应M次可循环迭代运算,其中,N为大于1的正整数、M为大于或者等于2的正整数;依据第一密文及第一密钥进行第二加密处理得到与明文对应的最终密文。与现有技术相比,本发明实施例通过在一个时钟周期内完成至少AES加密算法流程中的两次迭代,极大地减少了一个完整的AES加密算法流程消耗的时钟周期,从而大幅度提高单个AES运算单元的运算速度。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

Claims (8)

1.一种AES算法实现方法,其特征在于,所述方法包括:
依据输入的初始密钥对输入的明文进行轮密钥加得到初始密文;
依据所述初始密钥进行轮密钥处理得到第一密钥,其中,所述轮密钥处理具有N个时钟周期,每个所述时钟周期对应M次轮密钥生成运算,其中,所述N为大于1的正整数、所述M为大于或者等于2的正整数;
依据所述初始密文进行第一加密处理得到第一密文,其中,所述第一加密处理具有N个时钟周期,每个所述时钟周期对应M次可循环迭代运算,其中,所述N为大于1的正整数、所述M为大于或者等于2的正整数;
依据所述第一密文及所述第一密钥进行第二加密处理得到与所述明文对应的最终密文,其中,所述第二加密处理包括最后一次不循环迭代运算和可循环迭代运算;
所述依据所述第一密文及所述第一密钥进行第二加密处理得到与所述明文对应的最终密文的步骤包括第二密钥生成子步骤,第三加密子步骤、第三迭代子步骤及最终密文生成子步骤,其中,
所述第二密钥生成子步骤包括:
获取所述第二加密处理所需的密钥总数K,其中,K=预设值-M*N,所述预设值与所述第二密钥的密钥长度有关;
依据所述第一密钥利用轮密钥生成算法进行K次的轮密钥计算,其中,每次所述轮密钥计算得到一个第二临时密钥;
所述第三加密子步骤包括:
当所述K为1时,将所述第K个第二临时密钥作为第二密钥,将所述第一密文作为第二密文;
当所述K大于1时,按照所述第二临时密钥的生成顺序,从所述第二临时密钥中获取第k个第二临时密钥;所述k为小于或者等于K-1的正整数;
依据所述第k个第二临时密钥对所述第一密文进行第k次可循环迭代运算得到第k次的第二临时密文;
所述第三迭代子步骤包括:
将所述第k次的第二临时密文作为第k+1次第一密文,迭代所述第k+1次可循环迭代运算;
直至迭代次数达到K-1次,将所述第K-1次的第二临时密钥作为第二密钥及将所述第K-1次的第二临时密文作为第二密文;
所述最终密文生成子步骤包括:
依据所述第二密钥对所述第二密文进行不循环迭代运算得到最终密文。
2.如权利要求1所述的AES算法实现方法,其特征在于,所述依据所述初始密文进行第一加密处理得到第一密文的步骤包括第一加密子步骤及第一迭代子步骤,其中,
所述第一加密子步骤包括:
依据所述初始密文及所述初始密钥进行第n个时钟周期内的可循环迭代运算及第n个时钟周期内的轮密钥生成运算,获得所述第n个时钟周期内的可循环迭代运算得到的中间密文和所述第n个时钟周期内的轮密钥生成运算得到的中间密钥;所述n为小于等于N-1的正整数;
所述第一迭代子步骤包括:
将所述第n个时钟周期内可循环迭代运算得到的中间密文作为第n+1个时钟周期内可循环迭代运算输入的初始密文;
基于第n个时钟周期内的轮密钥生成运算的中间密钥得到所述第n+1个时钟周期内的轮密钥生成运算输入的初始密钥,基于所述第n+1个时钟周期的轮密钥生成运算得到的中间密钥,迭代所述第n+1个时钟周期内的可循环迭代运算;
直至迭代次数达到N时,将第N个时钟周期内的可循环迭代运算得到的中间密文作为所述第一密文及将所述第N个时钟周期内的轮密钥生成运算得到的中间密钥作为所述第一密钥。
3.如权利要求2所述的AES算法实现方法,其特征在于,所述依据所述初始密文及所述初始密钥进行第n个时钟周期内的可循环迭代运算及第n个时钟周期内的轮密钥生成运算,获得第n个时钟周期内的可循环迭代运算得到的中间密文和所述第n个时钟周期内的轮密钥生成运算得到的中间密钥的步骤包括第一密钥生成子步骤、第二加密子步骤及第二迭代子步骤,其中,
所述第一密钥生成子步骤包括:
依据所述初始密钥利用轮密钥生成算法进行M次轮密钥计算,得到M个第一临时密钥,其中,每次轮密钥计算得到一个第一临时密钥;
所述第二加密子步骤包括:
按照所述第一临时密钥的生成顺序,从所述第一临时密钥中获取第m个第一临时密钥;所述m为小于或者等于M-1的正整数;
依据所述第m个第一临时密钥对所述初始密文进行可循环迭代运算得到第m次可循环迭代运算的第一临时密文;
所述第二迭代子步骤包括:
将所述第m次可循环迭代运算得到的第一临时密文作为第m+1次可循环迭代运算的初始密文;
直至迭代次数达到M时,将第M次可循环迭代运算得到的第一临时密文作为中间密文,将第M次轮密钥计算产生的第一临时密钥作为中间密钥。
4.一种AES算法实现装置,其特征在于,所述装置包括:
初始加密模块,用于依据输入的初始密钥对输入的明文进行轮密钥加得到初始密文;
第一密钥生成模块,用于依据所述初始密钥进行轮密钥处理得到第一密钥,其中,所述轮密钥处理具有N个时钟周期,每个所述时钟周期对应M次轮密钥生成运算,其中,所述N为大于1的正整数、所述M为大于或者等于2的正整数;
第一加密模块,用于依据所述初始密文进行第一加密处理得到第一密文,其中,所述第一加密处理具有N个时钟周期,每个所述时钟周期对应M次可循环迭代运算,其中,所述N为大于1的正整数、所述M为大于或者等于2的正整数;
第二加密模块,用于依据所述第一密文及所述第一密钥进行第二加密处理得到与所述明文对应的最终密文,其中,所述第二加密处理包括最后一次不循环迭代运算和可循环迭代运算;
所述第二加密模块还包括密钥生成单元、第二加密单元、第二迭代单元及最终密文生成单元,其中,
密钥生成单元用于:
获取所述第二加密处理所需的密钥总数K,其中,K=预设值-M*N,所述预设值与所述第二密钥的密钥长度有关;
依据所述第一密钥利用轮密钥生成算法进行K次的轮密钥计算,其中,每次所述轮密钥计算得到一个第二临时密钥;
第二加密单元用于:
当所述K为1时,将所述第K个第二临时密钥作为第二密钥,将所述第一密文作为第二密文;
当所述K大于1时,按照所述第二临时密钥的生成顺序,从所述第二临时密钥中获取第k个第二临时密钥;所述k为小于或者等于K-1的正整数;
依据所述第k个第二临时密钥对所述第一密文进行第k次可循环迭代运算得到第k次的第二临时密文;
第二迭代单元用于:
将所述第k次的第二临时密文作为第k+1次第一密文,迭代所述第k+1次可循环迭代运算;
直至迭代次数达到K-1次,将所述第K-1次的第二临时密钥作为第二密钥及将所述第K-1次的第二临时密文作为第二密文;
最终密文生成单元包括:
依据所述第二密钥对所述第二密文进行不循环迭代运算得到最终密文。
5.如权利要求4所述的AES算法实现装置,其特征在于,所述第一加密模块包括第一加密单元和第一迭代单元,其中,
所述第一加密单元用于:
依据所述初始密文及所述初始密钥进行第n个时钟周期内的可循环迭代运算及第n个时钟周期内的轮密钥生成运算,获得所述第n个时钟周期内的可循环迭代运算的中间密文和所述第n个时钟周期内的轮密钥生成运得到算的中间密钥;所述n为小于等于N-1的正整数;
所述第一迭代单元用于:
将所述第n个时钟周期内可循环迭代运算的中间密文作为第n+1个时钟周期内可循环迭代运算输入的初始密文;
基于第n个时钟周期内的轮密钥生成运算的中间密钥得到所述第n+1个时钟周期内的轮密钥生成运算的初始密钥,基于所述第n+1个时钟周期的轮密钥生成运算得到的中间密钥,迭代所述第n+1个时钟周期内的可循环迭代运算;
直至迭代次数达到N时,将第N次可循环迭代运算的中间密文作为所述第一密文及将所述第N次可循环迭代运算的中间密钥作为所述第一密钥。
6.如权利要求5所述的AES算法实现装置,其特征在于,所述第一加密单元具体用于:
依据所述初始密钥利用轮密钥生成算法进行M次轮密钥计算,得到M个第一临时密钥,其中,每次轮密钥计算得到一个第一临时密钥;
按照所述第一临时密钥的生成顺序,从所述第一临时密钥中获取第m个第一临时密钥;所述m为小于或者等于M-1的正整数;
依据所述第m个第一临时密钥对所述初始密文进行可循环迭代运算得到第m次可循环迭代运算得到的第一临时密文;
将所述第m次可循环迭代运算得到的第一临时密文作为第m+1次可循环迭代运算的初始密文;
直至迭代次数达到M时,将第M次可循环迭代运算得到的第一临时密文作为中间密文,将第M次轮密钥计算产生的第一临时密钥作为中间密钥。
7.一种固态硬盘,其特征在于,所述固态硬盘包括微处理器、存储器、闪存、AES运算单元,所述微处理器与所述存储器、所述闪存及所述AES运算单元均电连接;
所述存储器用于存储初始密钥;
所述闪存用于存储最终密文;
所述微处理器用于接收明文,并读取存储器中的初始密钥输入至所述AES运算单元,以执行:
依据输入的初始密钥及输入的所述明文控制所述AES运算单元进行轮密钥加得到初始密文;
依据所述初始密钥控制所述AES运算单元进行轮密钥处理得到第一密钥,其中,所述轮密钥处理具有N个时钟周期,每个所述时钟周期对应M次轮密钥生成运算,其中,所述N为大于1的正整数、所述M为大于或者等于2的正整数;
依据所述初始密文控制所述AES运算单元进行第一加密处理得到第一密文,其中,所述第一加密处理具有N个时钟周期,每个所述时钟周期对应M次可循环迭代运算,其中,所述N为大于1的正整数、所述M为大于或者等于2的正整数;
依据所述第一密文及所述第一密钥控制所述AES运算单元进行第二加密处理得到与所述明文对应的最终密文,其中,所述第二加密处理包括最后一次不循环迭代运算和可循环迭代运算;
所述依据所述第一密文及所述第一密钥进行第二加密处理得到与所述明文对应的最终密文的步骤包括第二密钥生成子步骤,第三加密子步骤、第三迭代子步骤及最终密文生成子步骤,其中,
所述第二密钥生成子步骤包括:
获取所述第二加密处理所需的密钥总数K,其中,K=预设值-M*N,所述预设值与所述第二密钥的密钥长度有关;
依据所述第一密钥利用轮密钥生成算法进行K次的轮密钥计算,其中,每次所述轮密钥计算得到一个第二临时密钥;
所述第三加密子步骤包括:
当所述K为1时,将所述第K个第二临时密钥作为第二密钥,将所述第一密文作为第二密文;
当所述K大于1时,按照所述第二临时密钥的生成顺序,从所述第二临时密钥中获取第k个第二临时密钥;所述k为小于或者等于K-1的正整数;
依据所述第k个第二临时密钥对所述第一密文进行第k次可循环迭代运算得到第k次的第二临时密文;
所述第三迭代子步骤包括:
将所述第k次的第二临时密文作为第k+1次第一密文,迭代所述第k+1次可循环迭代运算;
直至迭代次数达到K-1次,将所述第K-1次的第二临时密钥作为第二密钥及将所述第K-1次的第二临时密文作为第二密文;
所述最终密文生成子步骤包括:
依据所述第二密钥对所述第二密文进行不循环迭代运算得到最终密文。
8.如权利要求7所述的固态硬盘,其特征在于,所述AES运算单元为多个,所述每个AES运算单元均与所述微处理器电连接,所述多个AES运算单元在所述微处理器的控制器下以流水线方式执行如权利要求1-3中任一项所述的方法。
CN201811565309.XA 2018-12-20 2018-12-20 Aes算法实现方法、装置及固态硬盘 Active CN109379180B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811565309.XA CN109379180B (zh) 2018-12-20 2018-12-20 Aes算法实现方法、装置及固态硬盘

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811565309.XA CN109379180B (zh) 2018-12-20 2018-12-20 Aes算法实现方法、装置及固态硬盘

Publications (2)

Publication Number Publication Date
CN109379180A CN109379180A (zh) 2019-02-22
CN109379180B true CN109379180B (zh) 2022-04-19

Family

ID=65371042

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811565309.XA Active CN109379180B (zh) 2018-12-20 2018-12-20 Aes算法实现方法、装置及固态硬盘

Country Status (1)

Country Link
CN (1) CN109379180B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111106935B (zh) * 2019-12-27 2023-05-16 天津芯海创科技有限公司 一种支持多端异构模式下的秘钥管理架构
CN112104450A (zh) * 2020-08-27 2020-12-18 广东技术师范大学天河学院 一种对称式数据加密方法、***及电子设备
CN112398641A (zh) * 2020-11-17 2021-02-23 上海桂垚信息科技有限公司 一种基于aes加密算法在加密芯片上的应用方法
CN114244510A (zh) * 2021-12-20 2022-03-25 深圳忆联信息***有限公司 硬件加速装置、方法、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1527531A (zh) * 2003-03-07 2004-09-08 华为技术有限公司 一种数据加密标准或三重数据加密标准的实现方法
CN1677921A (zh) * 2004-03-31 2005-10-05 华为技术有限公司 通过可编程器件实现数据加密的方法
CN104639314A (zh) * 2014-12-31 2015-05-20 深圳先进技术研究院 基于aes加密/解密算法的装置和流水控制方法
CN108718317A (zh) * 2018-06-12 2018-10-30 飞天诚信科技股份有限公司 一种个人识别码保护的方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8155306B2 (en) * 2004-12-09 2012-04-10 Intel Corporation Method and apparatus for increasing the speed of cryptographic processing
US8966279B2 (en) * 2010-12-21 2015-02-24 Apple Inc. Securing the implementation of a cryptographic process using key expansion
US9843441B2 (en) * 2013-09-24 2017-12-12 Intel Corporation Compact, low power advanced encryption standard circuit
US11809610B2 (en) * 2014-06-16 2023-11-07 Texas Instruments Incorporated Hardware protection of inline cryptographic processor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1527531A (zh) * 2003-03-07 2004-09-08 华为技术有限公司 一种数据加密标准或三重数据加密标准的实现方法
CN1677921A (zh) * 2004-03-31 2005-10-05 华为技术有限公司 通过可编程器件实现数据加密的方法
CN104639314A (zh) * 2014-12-31 2015-05-20 深圳先进技术研究院 基于aes加密/解密算法的装置和流水控制方法
CN108718317A (zh) * 2018-06-12 2018-10-30 飞天诚信科技股份有限公司 一种个人识别码保护的方法及装置

Also Published As

Publication number Publication date
CN109379180A (zh) 2019-02-22

Similar Documents

Publication Publication Date Title
CN109379180B (zh) Aes算法实现方法、装置及固态硬盘
JP4871944B2 (ja) 乱数列の反復周期を延長するよう構成された暗号システム
TWI374649B (en) Digital random number generator based on digitally-controlled oscillators
TW201944231A (zh) 具有物理不可複製功能的真亂數生成系統
KR20110004474A (ko) 갈루아 폐체 암호 시스템
JP2006317802A (ja) 擬似乱数発生システム、暗号化システム及び復号化システム
Bertoni et al. The making of KECCAK
KR20170067133A (ko) 하드웨어 지원 빠른 의사 난수 생성 방법 및 시스템
US20130129088A1 (en) Method and system for generating unpredictable pseudo-random numbers
CN103299576A (zh) 比特生成装置以及比特生成方法
James et al. An implementation of modified lightweight advanced encryption standard in FPGA
WO2011123575A1 (en) Cryptographic processor with dynamic update of encryption state
US20190268134A1 (en) Method and circuit for implementing a substitution table
CN112422272A (zh) 一种防功耗攻击的aes加密方法及电路
CN116663038A (zh) 数据加密的方法、装置及电子设备
WO2014013680A1 (ja) ユニバーサルハッシュ関数演算装置、方法およびプログラム
Verma et al. 3D-Playfair cipher with additional bitwise operation
CN112287333B (zh) 一种轻量级可调分组密码实现方法、***、电子设备以及可读存储介质
Zhang et al. Secure binary arithmetic coding based on digitalized modified logistic map and linear feedback shift register
Deshpande et al. AES encryption engines of many core processor arrays on FPGA by using parallel, pipeline and sequential technique
JP5207153B2 (ja) 擬似乱数発生システム
US11347706B2 (en) Rotor movement control and rotor wiring for rotor-based encryption machines and electronic equivalents
Sireesha et al. A novel approach of area optimized and pipelined FPGA implementation of AES encryption and decryption
Qin et al. On the cryptanalysis of two cryptographic algorithms that utilize chaotic neural networks
Singh et al. 3D—Playfair cipher using Linear Feedback Shift Register

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
GR01 Patent grant
GR01 Patent grant