CN109426738B - 一种硬件加密器及加密方法、电子装置 - Google Patents

一种硬件加密器及加密方法、电子装置 Download PDF

Info

Publication number
CN109426738B
CN109426738B CN201710740049.4A CN201710740049A CN109426738B CN 109426738 B CN109426738 B CN 109426738B CN 201710740049 A CN201710740049 A CN 201710740049A CN 109426738 B CN109426738 B CN 109426738B
Authority
CN
China
Prior art keywords
unit
shift register
linear feedback
feedback shift
processing unit
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
CN201710740049.4A
Other languages
English (en)
Other versions
CN109426738A (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.)
Semiconductor Manufacturing International Shanghai Corp
Semiconductor Manufacturing International Beijing Corp
Original Assignee
Semiconductor Manufacturing International Shanghai Corp
Semiconductor Manufacturing International Beijing Corp
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 Semiconductor Manufacturing International Shanghai Corp, Semiconductor Manufacturing International Beijing Corp filed Critical Semiconductor Manufacturing International Shanghai Corp
Priority to CN201710740049.4A priority Critical patent/CN109426738B/zh
Publication of CN109426738A publication Critical patent/CN109426738A/zh
Application granted granted Critical
Publication of CN109426738B publication Critical patent/CN109426738B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供一种硬件加密器及加密方法、电子装置,该硬件加密器包括:数组存储单元、扫描器、缓冲器、打包单元、可编程线性反馈移位寄存器、逻辑单元和控制单元,所述控制单元从计算设备根据密码本的随机地址读取源数据,并将源数据放入逻辑单元的第一操作数中,以及将所述可编程线性反馈移位寄存器产生的伪随机数发送至所述计算设备中的通用中央处理单元或通用图形处理单元进行浮点哈希运算,并将返回的浮点数放入所述逻辑单元的第二操作数中,通过逻辑运算生成目标数据,然后打包目标数据并输出至所述计算设备的输出文件中。该硬件加密器可以提高加密程度,增加破译难度。该加密方法和电子装置具有类似的优点。

Description

一种硬件加密器及加密方法、电子装置
技术领域
本发明涉及计算机加密技术领域,具体而言涉及一种硬件加密器及加密方法、电子装置。
背景技术
加密是一种具有很长历史的典型引擎,在当代微电子技术的尖端领域,许多GPCPU(通用中央处理单元)或GPGPU(通用图形处理单元)具有芯片内建的加密特征。加密特征分为两类:基于硬件的和基于软件的。已经有可用的标准加密算法,并且许多已经被实施到硬件中。然而,随着计算机演进至具有强大计算能力和超快计算速度,人们寻找更安全的不易被骇客攻破的加密引擎。
因此有必要提出一种硬件加密器及加密方法、电子装置,以至少部分解决上述问题。
发明内容
在发明内容部分中引入了一系列简化形式的概念,这将在具体实施方式部分中进一步详细说明。本发明的发明内容部分并不意味着要试图限定出所要求保护的技术方案的关键特征和必要技术特征,更不意味着试图确定所要求保护的技术方案的保护范围。
针对现有技术的不足,本发明提出一种硬件加密器及加密方法、电子装置,可以提供更高的安全性,破译难度增大。
为了克服目前存在的问题,本发明一方面提供一种硬件加密器,包括:
数组存储单元,所述数组存储单元用于存储从计算设备中读取的源数据;
逻辑单元,所述逻辑单元用于进行异或运算;
扫描器,所述扫描器用于将所述数组存储单元中存储的源数据读取到所述逻辑单元的第一操作数中;
可编程线性反馈移位寄存器,所述可编程线性反馈移位寄存器用于产生伪随机数;
缓冲器,所述缓冲器用于存储所述逻辑单元的运算结果;
打包单元,所述打包单元用于读取所述缓冲器中存储的数据并打包;
控制单元,所述控制单元将所述可编程线性反馈移位寄存器产生的伪随机数发送至所述计算设备中的通用中央处理单元或通用图形处理单元进行浮点哈希运算,并将所述计算设备中的通用中央处理单元或通用图形处理单元返回的浮点数放入所述逻辑单元的第二操作数中,以使所述逻辑单元对所述源数据和浮点数进行逻辑运算,以及将所述打包单元打包的数据作为目标数据输出至所述计算设备的输出文件中。
可选地,所述控制单元从所述计算设备的密码本读取随机地址,并根据所述随机地址读取源数据,并将所读取的源数据存储至所述数组存储单元。
可选地,所述控制单元从所述计算设备获取编程密钥,并基于所述编程密钥对所述可编程线性反馈移位寄存器进行编程。
可选地,所述可编程线性反馈移位寄存器包括:
线性反馈移位寄存单元组,所述线性反馈移位寄存单元组包括多个依次串联连接的线性反馈移位寄存单元,用于执行选择和移位功能;
反馈阵列,所述反馈阵列用于使所述线性反馈移位寄存单元彼此之间形成反馈通道;
反馈控制单元,所述反馈控制单元设置在所述反馈阵列中,用于控制所述反馈通道的闭合和断开。
可选地,所述线性反馈移位寄存单元包括依次串联连接的触发器、异或门、第一反相器和第一多路器,其中所述触发器的输入端与前一个所述线性反馈移位寄存单元的输出端连接,所述触发器的时钟信号端与时钟信号连接,所述触发器的输出端与所述异或门的第一输入端和所述反馈通道连接,所述异或门的第二输入端与所述反馈通道连接,所述异或门的输出端与所述第一反相器的输入端和所述第一多路器的第一输入端连接,所述第一反相器的输出端与所述第一多路器的第二输入端连接,所述第一多路器的控制端与所述编程密钥解码器输出端连接,所述第一多路器的输出端与后一个所述线性反馈移位寄存单元的输入端连接。
可选地,所述线性反馈移位寄存单元还包括:
第二多路器,所述第二多路器的第一输入端与所述第一多路器的输出端连接,所述第二多路器的第二输入端与加载数据端连接,所述第二多路器的控制端与加载命令端连接,所述第二多路器的输出端与后一个所述线性反馈移位寄存单元的输入端连接。
可选地,所述反馈阵列包括n行×n列异或门阵列,每列异或门依次串联连接,其中n为所述线性反馈移位寄存单元的数量,第i列末端的异或门的输出端与第i个线性反馈移位寄存单元的所述异或门的所述第二输入端连接,第i个线性反馈移位寄存单元的所述触发器的输出端与第i行中除了第i列的其余异或门的第一输入端连接,n大于等于2,i从0至n-1。
可选地,所述反馈控制单元包括第三多路器、第二反相器和第三反相器,所述第二反相器的输入端和所述第三反相器的输出端连接并与编程密钥解码器连接,所述第二反相器的输出端和所述第三反相器的输入端连接并与所述第三多路器的控制端连接,所述第三多路器的第一输入端与其他所述线性反馈移位寄存单元的所述触发器的输出端连接,所述第三多路器的第二输入端接地,所述第三多路器的输出端与所述反馈阵列中的异或门的第一输入端连接。
可选地,所述可编程线性反馈移位寄存器的数量为两个。
可选地,所述控制单元控制所述可编程线性反馈移位寄存器以使每个所述线性反馈移位寄存单元进行一次或更多反馈,或者所述可编程线性反馈移位寄存器的所述线性反馈移位寄存单元进行循环反馈,或者在两个所述可编程线性反馈移位寄存器之间进行反馈,或者在所述可编程线性反馈移位寄存器***种子数据。
可选地,所述控制单元将所述计算设备中的通用中央处理单元或通用图形处理单元返回的浮点数的最高有效字放入所述逻辑单元的第二操作数中。
可选地,所述控制单元基于所述计算设备中的通用中央处理单元或通用图形处理单元返回的浮点数的尾数在将所述逻辑单元的运算结果放入所述缓冲器时加入可变字长的缓冲数据。
根据本发明的硬件加密器,将可编程线性反馈移位寄存器生成的伪随机数发送至计算设备的通用中央处理单元(GCPU)或通用图形处理单元(GGPU)进行浮点哈希运算,并浮点哈希运算后的值做随机数,将原来均匀分布的随机数变为非线性分布的随机数,使得骇客很难破解,并且由于直接利用计算设备的通用中央处理单元(GCPU)或通用图形处理单元(GGPU)进行浮点哈希运算,因此硬件加密器无需再设计专门的浮点运算单元,不仅可以利用通用中央处理单元(GCPU)或通用图形处理单元(GGPU)强大的浮点运算能力,也降低了硬件加密器所需要的计算能力和大小,降低了成本。
进一步地,根据本发明的硬件加密器采用密码本读取数据,即数据不是顺序读出,增加了破译难度。
进一步地,根据本发明的硬件加密器,根据用户的密钥,实时编程可编程线性反馈移位寄存器的反馈通道,使得即使骇客获取了加密器硬件没有密钥也不能编程线性反馈移位寄存器,增加了破译难度。
本发明另一方面提供一种基于上述硬件加密器的加密方法,包括:
从计算设备中读取源数据,并放入硬件加密器的数组存储单元中;
控制硬件加密器的可编程线性反馈移位寄存器产生伪随机数,并将所述伪随机数发送至所述计算设备的通用中央处理单元和/或图形处理单元进行浮点哈希运算;
控制硬件加密器的扫描器将所述数组存储单元中存储的源数据读取到所述逻辑单元的第一操作数中;
将所述计算设备的通用中央处理单元和/或图形处理单元返回的浮点数放入所述逻辑单元的第二操作数中;
控制所述逻辑单元进行逻辑运算;
将所述逻辑单元的运算结果放入缓冲器中;
控制打包单元读取所述缓冲器中存储的数据并打包;
将所述打包单元打包的数据作为目标数据输出至所述计算设备的输出文件中。
可选地,所述从计算设备中读取源数据,并放入硬件加密器的数组存储单元中包括:
从所述计算设备的密码本读取随机地址,并根据所述随机地址读取源数据;
将所读取的源数据存储至所述数组存储单元。
可选地,还包括:从所述计算设备获取编程密钥,并基于所述编程密钥对所述可编程线性反馈移位寄存器进行编程。
可选地,还包括:控制所述可编程线性反馈移位寄存器以使每个所述线性反馈移位寄存单元进行一次或更多反馈,或者所述可编程线性反馈移位寄存器的所述线性反馈移位寄存单元进行循环反馈,或者在所述可编程线性反馈移位寄存器***种子数据。
可选地,将所述计算设备中的通用中央处理单元或通用图形处理单元返回的浮点数的最高有效字放入所述逻辑单元的第二操作数中。
可选地,还包括:在将所述逻辑单元的运算结果放入所述缓冲器时基于所述计算设备中的通用中央处理单元或通用图形处理单元返回的浮点数的尾数加入可变字长的缓冲数据。
可选地,还包括:如果源数据小于所述密码本的寻址空间,则对所述源数据进行克隆,并将克隆后的数据放入源数据之后组成新的源数据。
根据本发明的加密方法,将可编程线性反馈移位寄存器生成的伪随机数发送至计算设备的通用中央处理单元(GCPU)或通用图形处理单元(GGPU)进行浮点哈希运算,并浮点哈希运算后的值做随机数,将原来均匀分布的随机数变为非线性分布的随机数,使得骇客很难破解,并且由于直接利用计算设备的通用中央处理单元(GCPU)或通用图形处理单元(GGPU)进行浮点哈希运算,因此硬件加密器无需再设计专门的浮点运算单元,不仅可以利用通用中央处理单元(GCPU)或通用图形处理单元(GGPU)强大的浮点运算能力,也降低了硬件加密器所需要的计算能力和大小,降低了成本。
进一步地,根据本发明的加密方法采用密码本读取数据,即数据不是顺序读出,增加了破译难度。
进一步地,根据本发明的加密方法,根据用户的密钥,实时编程可编程线性反馈移位寄存器的反馈通道,使得即使骇客获取了加密器硬件没有密钥也不能编程线性反馈移位寄存器,增加了破译难度。
进一步地,根据本发明的加密方法,在数据之间加入了可变字长的缓冲数据,使得骇客没有加密器很难找到数据头和数据尾,增加了破译难度。
本发明再一方面提供一种电子装置,其包括:
磁盘存储器,用于存储源数据;
第一存储器,用于存储密码本;
第二存储器,用于存储密钥;
内存,用于加载程序和数据;
通用中央处理单元和/或图形处理单元,用于进行浮点哈希运算;以及
如上所述的硬件加密器,所述硬件加密器与所述通用中央处理单元和/或图形处理单元通信。
本发明提出的电子装置,由于具有上述硬件加密器,因而具有类似的优点。
附图说明
本发明的下列附图在此作为本发明的一部分用于理解本发明。附图中示出了本发明的实施例及其描述,用来解释本发明的原理。
附图中:
图1示出根据本发明一实施方式的硬件加密器和计算设备的结构示意图;
图2示出根据本发明一实施方式的可编程线性反馈移位寄存器的结构示意图;
图3示出根据本发明一实施方式的线性反馈移位寄存单元的结构示意图;
图4示出根据本发明一实施方式的反馈控制单元的结构示意图;
图5出根据本发明一实施方式的可编程线性反馈移位寄存器的详细结构示意图;
图6示出根据本发明一实施方式的加密方法的步骤流程图。
具体实施方式
在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员而言显而易见的是,本发明可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进行描述。
应当理解的是,本发明能够以不同形式实施,而不应当解释为局限于这里提出的实施例。相反地,提供这些实施例将使公开彻底和完全,并且将本发明的范围完全地传递给本领域技术人员。在附图中,为了清楚,层和区的尺寸以及相对尺寸可能被夸大自始至终相同附图标记表示相同的元件。
应当明白,当元件或层被称为“在…上”、“与…相邻”、“连接到”或“耦合到”其它元件或层时,其可以直接地在其它元件或层上、与之相邻、连接或耦合到其它元件或层,或者可以存在居间的元件或层。相反,当元件被称为“直接在…上”、“与…直接相邻”、“直接连接到”或“直接耦合到”其它元件或层时,则不存在居间的元件或层。应当明白,尽管可使用术语第一、第二、第三等描述各种元件、部件、区、层和/或部分,这些元件、部件、区、层和/或部分不应当被这些术语限制。这些术语仅仅用来区分一个元件、部件、区、层或部分与另一个元件、部件、区、层或部分。因此,在不脱离本发明教导之下,下面讨论的第一元件、部件、区、层或部分可表示为第二元件、部件、区、层或部分。
空间关系术语例如“在…下”、“在…下面”、“下面的”、“在…之下”、“在…之上”、“上面的”等,在这里可为了方便描述而被使用从而描述图中所示的一个元件或特征与其它元件或特征的关系。应当明白,除了图中所示的取向以外,空间关系术语意图还包括使用和操作中的器件的不同取向。例如,如果附图中的器件翻转,然后,描述为“在其它元件下面”或“在其之下”或“在其下”元件或特征将取向为在其它元件或特征“上”。因此,示例性术语“在…下面”和“在…下”可包括上和下两个取向。器件可以另外地取向(旋转90度或其它取向)并且在此使用的空间描述语相应地被解释。
在此使用的术语的目的仅在于描述具体实施例并且不作为本发明的限制。在此使用时,单数形式的“一”、“一个”和“所述/该”也意图包括复数形式,除非上下文清楚指出另外的方式。还应明白术语“组成”和/或“包括”,当在该说明书中使用时,确定所述特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或更多其它的特征、整数、步骤、操作、元件、部件和/或组的存在或添加。在此使用时,术语“和/或”包括相关所列项目的任何及所有组合。
为了彻底理解本发明,将在下列的描述中提出详细的结构及步骤,以便阐释本发明提出的技术方案。本发明的较佳实施例详细描述如下,然而除了这些详细描述外,本发明还可以具有其他实施方式。
实施例一
下面结合图1至图5对根据本发明一实施方式的硬件加密器进行详细描述。
本实施例提出一种硬件加密器100,其用作计算设备200的通用中央处理单元(GCPU)或通用图形处理单元(GGPU)26的增强功能附件,实现硬件加密。计算设备200包括磁盘存储器(disk)21、第一存储器(Universal Serial Bus Flash Disk 1,UFD1)22、第二存储器(Universal Serial Bus Flash Disk 2,UFD2)23、内存(Memory)24、总线(systembus)25和通用中央处理单元和/或图形处理单元26,磁盘存储器(disk)21用于存储源数据;第一存储器(UFD1)22用于存储密码本,第二存储器(UFD2)23用于存储密钥;内存24用于加载程序和数据;总线25用于实现通用中央处理单元和/或图形处理单元26与磁盘存储器(disk)21、第一存储器(UFD1)22、第二存储器(UFD2)23和内存24之间的通信。通用中央处理单元和/或图形处理单元26用于实现控制和计算功能,一般而言通用中央处理单元和/或图形处理单元26具备强大的浮点计算能力,可以用于进行浮点哈希运算。
如图1所示,在本实施例中,硬件加密器100包括数组存储单元11、扫描器12、缓冲器13、打包单元14、逻辑单元15、双可编程线性反馈移位寄存器16和控制单元17。
数组存储单元(例如Array)11用于存储从计算设备200中读取的源数据,例如存储从计算设备200的磁盘存储器21读取的源数据。在本实施例中,为了增加骇客的破译难度,控制单元17从所述计算设备200的密码本读取随机地址,并根据所述随机地址读取源数据,并将所读取的源数据存储至所述数组存储单元11中,这样由于数据不是顺序读出,增加了破译难度。示例性地,在本实施例中,控制单元从计算设备200中的密码本读取两个随机地址,并根据该两个随机地址从存储从计算设备200的磁盘存储器21读取两个高低双字(Hi&Lo Dword)源数据,并将其存储至数组存储单元11中。
扫描器(例如Raster)12用于将数组存储单元11中存储的源数据读取到所述逻辑单元15的第一操作数中。示例性地,在本实施例中,控制单元17将数组存储单元11中存储的源数据送至扫描器12中,扫描器12按照预定规则读取源数据的slice(即,读取第一个字节(byte)的一位(bit),再读取第二个字节的一位,读完所有字节的一位后,再继续读取第一个字节的另一位,直到所有位都读出)。
缓冲器(buffer)13用于存储逻辑单元15的运算结果。
打包单元(packer)14用于读取所述缓冲器13中存储的数据并打包,例如打包单元(packer)14将缓冲器13中的数据组合成双双字(double Dword)。
逻辑单元(cipher logic unit,CLU)15用于进行异或运算。其中一个操作数是从计算设备200的通用中央处理单元(GCPU)或通用图形处理单元(GGPU)返回的浮点数,一个操作数是扫描器12读取出的源数据。
双可编程线性反馈移位寄存器(Dual Programmable Linear-Feedback ShiftRegister,DPLSFR)16用于产生伪随机数,以送至计算设备200的通用中央处理单元(GCPU)或通用图形处理单元(GGPU)进行浮点哈希(hashing)运算。在本实施例中,控制单元17从所述计算设备200获取编程密钥,并基于所述编程密钥对所述双可编程线性反馈移位寄存器16进行编程。在本实施例中,由于根据用户的密钥实时编程可编程线性反馈移位寄存器的反馈通道(link),使得即使骇客获取了加密器硬件没有密钥也不能编程线性反馈移位寄存器,增加了破译难度。
控制单元(cipher control unit,CCU)17用于控制数组存储单元11、扫描器12、缓冲器13、打包单元14、逻辑单元15和双可编程线性反馈移位寄存器16的操作。在本实施例中,控制单元17将所述双可编程线性反馈移位寄存器16产生的伪随机数发送至所述计算设备200中的通用中央处理单元或通用图形处理单元进行浮点哈希运算,并将所述计算设备中的通用中央处理单元或通用图形处理单元返回的浮点数放入所述逻辑单元15的第二操作数中,以使所述逻辑单元15对所述源数据和浮点数进行逻辑运算,以及将所述打包单元14打包的数据作为目标数据输出至所述计算设备200的输出文件中。
根据本实施例的硬件加密器,将可编程线性反馈移位寄存器生成的伪随机数发送至计算设备的通用中央处理单元(GCPU)或通用图形处理单元(GGPU)进行浮点哈希运算,并浮点哈希运算后的值做随机数,将原来均匀分布的随机数变为非线性分布的随机数,使得骇客很难破解,并且由于直接利用计算设备的通用中央处理单元(GCPU)或通用图形处理单元(GGPU)进行浮点哈希运算,因此硬件加密器无需再设计专门的浮点运算单元,不仅可以利用通用中央处理单元(GCPU)或通用图形处理单元(GGPU)强大的浮点运算能力,也降低了硬件加密器所需要的计算能力和大小,降低了成本。
下面结合图2至图5对根据本发明一实施方式的双可编程线性反馈移位寄存器进行详细描述。
在本实施例中,硬件加密器100采用双可编程线性反馈移位寄存器16,即如图2所示包括左半部分和右半部分两个可编程线性反馈移位寄存器。每个可编程线性反馈移位寄存器包括线性反馈移位寄存单元组161、反馈阵列162和反馈控制单元163。
其中,线性反馈移位寄存单元组(LFSR cell combos)161包括64个线性反馈移位寄存单元0~63,该64个线性反馈移位寄存单元依次串联连接,用于执行选择和移位功能。
反馈阵列162用于使每个所述线性反馈移位寄存单元与其它线性反馈移位寄存单元形成反馈通道((link/fabrics),以进行反馈。例如对于每个线性反馈移位寄存单元存在63个反馈通道,分别与其他63个线性反馈移位寄存单元连接,以进行反馈。
反馈控制单元(fabrics control unit)163设置在反馈阵列162中,用于控制所述反馈通道的闭合和断开,从而使两个线性反馈移位寄存单元之间有反馈或无反馈。
如图3所示,在本实施例中,线性反馈移位寄存单元包括依次串联连接的触发器31、异或门32、第一反相器33、第一多路器34和第二多路器35。触发器31的输入端(d段)与前一个所述线性反馈移位寄存单元的输出端连接,也即与前一个所述线性反馈移位寄存单元的第二多路器35的输出端连接。触发器31的时钟信号端(clk)与时钟信号连接,并在时钟信号被使能时开始工作,时钟信号停止使能时停止工作。触发器31的输出端(即Q端)与异或门32的第一输入端连接,且通过所述阵列162与其它线性反馈移位寄存单元的异或门的第二输入端连接。异或门32的第二输入端通过所述反馈阵列162与其它线性反馈移位寄存单元的连接。异或门32的输出端与第一反相器的33输入端和第一多路器34的第一输入端连接,第一反相器33的输出端与第一多路器34的第二输入端连接,第一多路器34的控制端与编程密钥解码器输出端连接,第一多路器34的输出端与第二多路器35的第二输入端连接,第二多路器35的第一输入端与加载数据端连接,用于输入加载数据(Loading data),第二多路器35的控制端与加载命令端(loading command)连接,第二多路器35的输出端与后一个所述线性反馈移位寄存单元的输入端连接。通过加载命令和加载数据可以在需要的时候向可编程线性反馈移位寄存器中***种子(seed),以避免生成类似的随机数。
如图5所示,在本实施例中,反馈阵列162包括n行×n列异或门阵列,每列异或门依次串联连接,其中n为所述线性反馈移位寄存单元的数量,第i列末端的异或门的输出端与第i个线性反馈移位寄存单元的所述异或门的所述第二输入端连接,第i个线性反馈移位寄存单元的所述触发器的输出端与第i行中除了第i列的其余异或门的第一输入端连接,n大于等于2,i从0至n-1。例如,第5个线性反馈移位寄存单元的触发器的输出端与反馈阵列162中第5行的异或门的第一输入端连接,除了第5行中位于第5列中的异或门之外;反馈阵列162中第5列的异或门依次串联连接,且末端异或门的输出端与第5个线性反馈移位寄存单元的所述异或门的所述第二输入端连接,也即来自其他线性反馈移位寄存单元的反馈经过异或运算后输入至5个线性反馈移位寄存单元的所述异或门的所述第二输入端。
示例性地,在本实施例中n等于64。
如图4所示,在本实施例中,反馈控制单元163包括第二反相器40、第三反相器41和第三多路器42,其中,第二反相器40的输入端和第三反相器41的输出端连接并与编程密钥解码器连接,用于获取解码后的编程密钥;第二反相器40的输出端和第三反相器41的输入端连接并与第三多路器42的控制端连接,用于选择第三多路器的信号,所述第三多路器42的第一输入端与其他所述线性反馈移位寄存单元的所述触发器的输出端连接,即通过反馈阵列162与其他所述线性反馈移位寄存单元的所述触发器31的输出端连接,所述第三多路器42的第二输入端接地,所述第三多路器42的输出端与反馈阵列162中的异或门的第一输入端连接。如前所述通过编程密钥(Program key)可以编程反馈阵列,例如编程密钥肯定了i个单元到j个单元的反馈,第i个单元的触发器的输出端线就接到j列的的异或门的第一输入端了;如果不肯定,接地电压就接到j列的异或门的第一输入端了,接地电压(即接零)到异或门等于没有操作,也就是没有反馈。
可以理解的是,对于反馈阵列中的每个异或门,都设置有如图4所示控制单元,以控制第i个到第j个单元的反馈。整个可编程线性反馈移位寄存器的结构如图5所示。控制单元17对用户的密钥进行解码,并使用解码后的密钥对可编程线性反馈移位寄存器的反馈阵列162进行编程,即可编程线性反馈移位寄存器的反馈阵列162的断开和闭合,即是否选择多路器中的来自其他线性反馈寄存单元的反馈信号,取决于解码后的密钥。
可以理解的是,虽然在本实施例中,所述可编程线性反馈移位寄存器为双可编程线性反馈移位寄存器,但是在其它实施例中也可以采用其他结构的寄存器来生成随机数。
进一步地,可以理解的是,为了增加破译难度,控制单元17控制所述可编程线性反馈移位寄存器进行各种类型的反馈,例如使每个所述线性反馈移位寄存单元进行一次或更多反馈,或者使所述可编程线性反馈移位寄存器的所述线性反馈移位寄存单元进行循环反馈,或者在所述双可编程线性反馈移位寄存器之间进行反馈(上述实施例仅在单个可编程线性反馈移位寄存器的线性反馈移位寄存单元之间进行反馈),或者如上所述在所述可编程线性反馈移位寄存器中***种子数据(seed)。
图1所示的硬件加密器和计算设备的示例性加密过程如下:
首先,进入加密器的用户程序(user program);接着,用户从第二存储器(UFD2)23选择编程密钥(programming key);接着,控制单元17获取编程密钥,并基于编程密钥编程双可编程线性反馈移位寄存器(即,DPLFSR)16进行编程(即根据编程密钥确认双可编程线性反馈移位寄存器的反馈通道是否连接);接着,用户从第二存储器(UFD2)23选择开始密钥(initializing key,也即种子,其为输入到128位DPLFSR的初始值);接着,控制单元17获取起始密钥,并启动双可编程线性反馈移位寄存器16;接着,用户键入密码(password,Password是用来选密码本,因为第一存储器(UFD1)22中上有若干密码本);接着,用户程序从第一存储器(UFD1)22选择密码本(map);接着,用户程序输出寻址地址;接着,用户程序使用密码本的高低双字(即高低双字两个随机地址)从磁盘存储器21中读取两段源数据;接着,控制单元17获取所述两段源数据并将其存储在数组存储单元11中;接着,用户程序发出加密指令1;接着,控制单元17使能DPLFDR16的时钟信号;接着,经过设定时间后,控制单元17停止DPLFDR16的时钟信号;接着,控制单元17收集来自DPLFDR16的双字(Dwords,两个字,32位)伪随机数;接着,控制单元17将收集的双字返回至用户程序,并完成指令;接着,用户程序为每个双字执行浮点哈希运算,具体地用户程序通过计算设备200的GCPU和GGPU进行浮点哈希运算(FP,Hashing),并将运算结果作为随机数使用,即通过浮点哈希运算将伪随机数转换为随机数;接着,用户程序将浮点哈希运算的结果放入控制单元17的寄存器中,并发出加密指令2;接着,控制单元17从寄存器中拾取每个双字的浮点(即拾取每个DPLFDR16生成的每个双字的哈希运算结果);接着,控制单元17将返回的浮点的最高有效字存储在逻辑单元15的第二操作数(operand2)中,即将所述计算设备中的通用中央处理单元或通用图形处理单元返回的浮点数的最高有效字(most significant word,MSW)放入逻辑单元15的第二操作数(operand2)中,示例性地,在本实施例中,将返回的浮点的前16位(本实施例中浮点为单精度,32位)存储至逻辑单元15的第二操作数(operand2)中;接着,控制单元17将返回的浮点剩余的位(例如后16位)存储至控制单元17自身的寄存器中;接着,用户程序发出加密指令3;接着,用户程序截取该指令(加密指令3);接着,控制单元17将数据扫描规则发送至扫描器12中(即控制单元17告诉扫描器12,数组存储单元11中第一个字节(byte)中的第几个位(bit)应该扫描出来,第二个byte中的第几个bit应该扫描出来);接着,扫描器12slice源数据至逻辑单元15的第一操作数(operrand1)中,即,扫描器12按照预定规则读取源数据的slice(即,读取第一个字节(byte)的一位(bit),再读取第二个字节的一位,读完所有字节的一位后,再继续读取第一个字节的另一位,直到所有位都读出),然后将读出的数据放入逻辑单元15的第一操作数(operrand1)中;接着,继续执行加密指令3,循环执行前述过程,直数组存储单元11中存储的所有数据都发送至逻辑单元15的第一操作数(operrand1)中;接着,用户程序发出加密指令4;接着,控制单元17执行加密指令4,以交换打乱逻辑单元15的第一操作数(operrand1)中的源数据;接着,继续执行加密指令4,直到循环到源数据的末端;接着,逻辑单元15对第一操作数和第二操作数执行逻辑运算,例如异或运算;接着,用户程序发出加密指令5;接着,控制单元17解码指令,并将本地存储的返回的浮点的剩余位存储至缓冲器13中,即控制单元17基于所述计算设备中的通用中央处理单元或通用图形处理单元返回的浮点数的尾数在将所述逻辑单元的运算结果放入所述缓冲器时加入可变字长的缓冲数据;接着,控制单元17将逻辑单元15的运算结果的一位转移至缓冲器13中;接着,循环执行加密指令5,直到逻辑单元15的运算结果全部放入缓冲器13中;接着,打包单元14将缓冲器13中的数据打包(assemblies)成双双字(即打包成64位数据);接着,用户程序发出加密指令6;接着,用户程序从硬件加密器100收集数据;接着,用户程序将收集的数据写入磁盘存储器21的输出文件中;接着,重复执行上述过程,直到密码本到达末端,即直到用户程序发现输入文件小于密码本的可寻址空间,反之用户程序从第一存储器(UFD1)22选择载入另一密码本(map),并从开始重复上述过程。
应当理解,在上述过程中,还可以包括以下步骤,例如用户程序输出寻址地址,和用户程序使用密码本的高低双字(即高低双字两个随机地址)从磁盘存储器21中读取两段源数据之间,用户程序如果发现源数据较小,可以对源数据进行克隆,以使数据可以填满密码本的可寻址空间,避免文件过小而容易被破解。例如,密码本的寻址空间为4GB,而源文件只有0.5GB,则克隆3.5GB的数据放在源数据之后,以凑足4GB。此外,当对源数据的末尾数据进行加密时,如果末尾数据也小于密码本的可寻址空间,同样可以对末尾数据进行克隆,以使其填满密码本的寻址空间。
还可以理解的是,在上述过程中在某些阶段用户程序还可以发出加密指令7,根据该指令,控制单元17可以执行一个或更多的专门操作,例如使每个所述线性反馈移位寄存单元进行一次或更多反馈,或者使所述可编程线性反馈移位寄存器的所述线性反馈移位寄存单元进行循环反馈,或者在所述双可编程线性反馈移位寄存器之间进行反馈(上述实施例仅在单个可编程线性反馈移位寄存器的线性反馈移位寄存单元之间进行反馈),或者如上所述在所述可编程线性反馈移位寄存器中***种子数据(seed)。
实施例二
下面结合图6对根据本发明一实施方式的加密方法进行详细描述。
本实施例公开一种基于上述硬件加密器的加密方法,包括:
步骤601,从计算设备中读取源数据,并放入硬件加密器的数组存储单元中。
示例性地,在本实施例中,首先从所述计算设备的密码本读取随机地址,并根据所述随机地址读取源数据,然后将所读取的源数据存储至所述数组存储单元。例如,从计算设备的第一存储器中选择密码本,并从密码本中读取两个高低双字的随机地址,然后根据该两个随机地址从计算设备的磁盘存储器中读取一段源数据。
步骤602,控制硬件加密器的可编程线性反馈移位寄存器产生伪随机数,并将所述伪随机数发送至所述计算设备的通用中央处理单元和/或图形处理单元进行浮点哈希运算。
示例性地,控制所述双可编程线性反馈移位寄存器产生伪随机数,并产生的伪随机数送至计算设备的通用中央处理单元和/或图形处理单元,利用其强大的浮点运算能力进行浮点哈希运算,并使用生成的浮点数作为随机数进行逻辑运算,这样将均匀分布的伪随机数转换为非线性分布的随机数,增加了破译难度。
进一步地,在控制所述双可编程线性反馈移位寄存器产生伪随机数过程中,可以从所述计算设备获取编程密钥,并基于所述编程密钥对所述双可编程线性反馈移位寄存器进行编程,从而灵活地配置所述双可编程线性反馈移位寄存器的反馈通道(link),增加了破译难度。此外,还可以控制所述双可编程线性反馈移位寄存器使每个所述线性反馈移位寄存单元进行一次或更多反馈,或者使所述可编程线性反馈移位寄存器的所述线性反馈移位寄存单元进行循环反馈,或者在所述双可编程线性反馈移位寄存器之间进行反馈(上述实施例仅在单个可编程线性反馈移位寄存器的线性反馈移位寄存单元之间进行反馈),或者如上所述在所述可编程线性反馈移位寄存器中***种子数据(seed),以通过各种反馈或***种子来增加破译难度。
步骤603,控制硬件加密器的扫描器将所述数组存储单元中存储的源数据读取到所述逻辑单元的第一操作数中。
示例性地,控制单元将数组存储单元存储的源数据发送至扫描器,扫描器slice源数据至逻辑单元的第一操作数(operrand1)中,即,扫描器按照预定规则读取源数据的slice(即,读取第一个字节(byte)的一位(bit),再读取第二个字节的一位,读完所有字节的一位后,再继续读取第一个字节的另一位,直到所有位都读出),然后将读出的数据放入逻辑单元的第一操作数(operrand1)中。
应当理解该过程需要执行多次,直到数组存储单元中存储的源数据都放入逻辑单元的第一操作数(operrand1)中。
步骤604,将所述计算设备的通用中央处理单元和/或图形处理单元返回的浮点数放入所述逻辑单元的第二操作数中。
示例性地,将所述计算设备中的通用中央处理单元或通用图形处理单元返回的浮点数的最高有效字放入所述逻辑单元的第二操作数中。此外,将返回的浮点数的剩余位进行本地存储,例如放入控制单元的寄存器中。
步骤605,控制所述逻辑单元进行逻辑运算。
示例性地,例如通过所述逻辑单元使第一操作数和第二操作数中的数据进行异或运算。
示例性地,在进行逻辑运算之前,还可以对第一操作数中的数据执行交换打乱操作(permuting)。
步骤606,将所述逻辑单元的运算结果放入缓冲器中。
示例性地,例如控制单元将逻辑单元的运算结果一位一位地放入缓冲器中,直到所有运算结果都放入缓冲器为止。
示例性地,在将逻辑运算结果的一位放入缓冲器之前或之后,还可以将本地存储的返回的浮点的剩余位存储至缓冲器中,即控制单元基于所述计算设备中的通用中央处理单元或通用图形处理单元返回的浮点数的尾数在将所述逻辑单元的运算结果放入所述缓冲器时加入可变字长的缓冲数据。
步骤607,控制打包单元读取所述缓冲器中存储的数据并打包。
示例性地,打包单元将缓冲器中的数据打包成双双双字数据,即64位数据。
步骤608,将所述打包单元打包的数据作为目标数据输出至所述计算设备的输出文件中。
示例性地,控制单元将打包单元打包的数据作为目标数据输出至所述计算设备的输出文件中。
应该理解,上述过程中各步骤的顺序可以调整,并且如果源数据较大,上述过程仅是对源数据的一部分进行了加密操作,因此还需要通过重复执行上述操作来加密所有的源数据。
此外,应当理解,如果源数据较小,例如小于设定阈值,即小于密码本的寻址空间,则可以对所述源数据进行克隆,并将克隆后的数据放入寻址空间的末端,即使数据填满密码本的寻址空间。
根据本实施例的加密方法,将可编程线性反馈移位寄存器生成的伪随机数发送至计算设备的通用中央处理单元(GCPU)或通用图形处理单元(GGPU)进行浮点哈希运算,并浮点哈希运算后的值做随机数,将原来均匀分布的随机数变为非线性分布的随机数,使得骇客很难破解,并且由于直接利用计算设备的通用中央处理单元(GCPU)或通用图形处理单元(GGPU)进行浮点哈希运算,因此硬件加密器无需再设计专门的浮点运算单元,不仅可以利用通用中央处理单元(GCPU)或通用图形处理单元(GGPU)强大的浮点运算能力,也降低了硬件加密器所需要的计算能力和大小,降低了成本。
进一步地,根据本发明的加密方法采用密码本读取数据,即数据不是顺序读出,增加了破译难度。
进一步地,根据本发明的加密方法,根据用户的密钥,实时编程可编程线性反馈移位寄存器的反馈通道,使得即使骇客获取了加密器硬件没有密钥也不能编程线性反馈移位寄存器,增加了破译难度。
进一步地,根据本发明的加密方法,在数据之间加入了可变字长的缓冲数据,使得骇客没有加密器很难找到数据头和数据尾,增加了破译难度。
实施例三
本发明的再一个实施例提供一种电子装置,包括硬件加密器以及与所述硬件加密器连接的电子组件。
所述硬件加密器包括数组存储单元,所述数组存储单元用于存储从计算设备中读取的源数据;逻辑单元,所述逻辑单元用于进行异或运算;扫描器,所述扫描器用于将所述数组存储单元中存储的源数据读取到所述逻辑单元的第一操作数中;可编程线性反馈移位寄存器,所述可编程线性反馈移位寄存器用于产生伪随机数;缓冲器,所述缓冲器用于存储所述逻辑单元的运算结果;打包单元,所述打包单元用于读取所述缓冲器中存储的数据并打包;控制单元,所述控制单元将所述可编程线性反馈移位寄存器产生的伪随机数发送至所述计算设备中的通用中央处理单元或通用图形处理单元进行浮点哈希运算,并将所述计算设备中的通用中央处理单元或通用图形处理单元返回的浮点数放入所述逻辑单元的第二操作数中,以使所述逻辑单元对所述源数据和浮点数进行逻辑运算,以及将所述打包单元打包的数据作为目标数据输出至所述计算设备的输出文件中。
所述电子组件包括磁盘存储器,用于存储源数据;第一存储器,用于存储密码本;第二存储器,用于存储密钥;内存,用于加载程序和数据;通用中央处理单元和/或图形处理单元,用于进行浮点哈希运算。
本实施例的电子装置,可以是笔记本电脑、上网本、桌面计算机等计算设备,也可为任何包括该半导体器件的中间产品。
本发明实施例的电子装置,由于所包含的硬件加密器提高了加密程度,增加破译难度,因此该电子装置具有类似的优点。
本发明已经通过上述实施例进行了说明,但应当理解的是,上述实施例只是用于举例和说明的目的,而非意在将本发明限制于所描述的实施例范围内。此外本领域技术人员可以理解的是,本发明并不局限于上述实施例,根据本发明的教导还可以做出更多种的变型和修改,这些变型和修改均落在本发明所要求保护的范围以内。本发明的保护范围由附属的权利要求书及其等效范围所界定。

Claims (20)

1.一种硬件加密器,其特征在于,包括:
数组存储单元,所述数组存储单元用于存储从计算设备中读取的源数据;
逻辑单元,所述逻辑单元用于进行异或运算;
扫描器,所述扫描器用于将所述数组存储单元中存储的源数据读取到所述逻辑单元的第一操作数中;
可编程线性反馈移位寄存器,所述可编程线性反馈移位寄存器用于产生伪随机数;
缓冲器,所述缓冲器用于存储所述逻辑单元的运算结果;
打包单元,所述打包单元用于读取所述缓冲器中存储的数据并打包;
控制单元,所述控制单元将所述可编程线性反馈移位寄存器产生的伪随机数发送至所述计算设备中的通用中央处理单元或通用图形处理单元进行浮点哈希运算,并将所述计算设备中的通用中央处理单元或通用图形处理单元返回的浮点数放入所述逻辑单元的第二操作数中,以使所述逻辑单元对所述源数据和浮点数进行逻辑运算,以及将所述打包单元打包的数据作为目标数据输出至所述计算设备的输出文件中。
2.根据权利要求1所述的硬件加密器,其特征在于,
所述控制单元从所述计算设备的密码本读取随机地址,并根据所述随机地址读取源数据,并将所读取的源数据存储至所述数组存储单元。
3.根据权利要求1所述的硬件加密器,其特征在于,所述控制单元从所述计算设备获取编程密钥,并基于所述编程密钥对所述可编程线性反馈移位寄存器进行编程。
4.根据权利要求3所述的硬件加密器,其特征在于,所述可编程线性反馈移位寄存器包括:
线性反馈移位寄存单元组,所述线性反馈移位寄存单元组包括多个依次串联连接的线性反馈移位寄存单元,用于执行选择和移位功能;
反馈阵列,所述反馈阵列用于使所述线性反馈移位寄存单元彼此之间形成反馈通道;
反馈控制单元,所述反馈控制单元设置在所述反馈阵列中,用于控制所述反馈通道的闭合和断开。
5.根据权利要求4所述的硬件加密器,其特征在于,所述线性反馈移位寄存单元包括依次串联连接的触发器、异或门、第一反相器和第一多路器,其中所述触发器的输入端与前一个所述线性反馈移位寄存单元的输出端连接,所述触发器的时钟信号端与时钟信号连接,所述触发器的输出端与所述异或门的第一输入端和所述反馈通道连接,所述异或门的第二输入端与所述反馈通道连接,所述异或门的输出端与所述第一反相器的输入端和所述第一多路器的第一输入端连接,所述第一反相器的输出端与所述第一多路器的第二输入端连接,所述第一多路器的控制端与所述编程密钥解码器输出端连接,所述第一多路器的输出端与后一个所述线性反馈移位寄存单元的输入端连接。
6.根据权利要求5所述的硬件加密器,其特征在于,所述线性反馈移位寄存单元还包括:
第二多路器,所述第二多路器的第一输入端与所述第一多路器的输出端连接,所述第二多路器的第二输入端与加载数据端连接,所述第二多路器的控制端与加载命令端连接,所述第二多路器的输出端与后一个所述线性反馈移位寄存单元的输入端连接。
7.根据权利要求5所述的硬件加密器,其特征在于,所述反馈阵列包括n行×n列异或门阵列,每列异或门依次串联连接,其中n为所述线性反馈移位寄存单元的数量,第i列末端的异或门的输出端与第i个线性反馈移位寄存单元的所述异或门的所述第二输入端连接,第i个线性反馈移位寄存单元的所述触发器的输出端与第i行中除了第i列的其余异或门的第一输入端连接,n大于等于2,i从0至n-1。
8.根据权利要求7所述的硬件加密器,其特征在于,所述反馈控制单元包括第三多路器、第二反相器和第三反相器,所述第二反相器的输入端和所述第三反相器的输出端连接并与编程密钥解码器连接,所述第二反相器的输出端和所述第三反相器的输入端连接并与所述第三多路器的控制端连接,所述第三多路器的第一输入端与其他所述线性反馈移位寄存单元的所述触发器的输出端连接,所述第三多路器的第二输入端接地,所述第三多路器的输出端与所述反馈阵列中的异或门的第一输入端连接。
9.根据权利要求4所述的硬件加密器,其特征在于,所述可编程线性反馈移位寄存器的数量为两个。
10.根据权利要求9所述的硬件加密器,其特征在于,所述控制单元控制所述可编程线性反馈移位寄存器以使每个所述线性反馈移位寄存单元进行一次或更多反馈,或者所述可编程线性反馈移位寄存器的所述线性反馈移位寄存单元进行循环反馈,或者在两个所述可编程线性反馈移位寄存器之间进行反馈,或者在所述可编程线性反馈移位寄存器***种子数据。
11.根据权利要求1所述的硬件加密器,其特征在于,所述控制单元将所述计算设备中的通用中央处理单元或通用图形处理单元返回的浮点数的最高有效字放入所述逻辑单元的第二操作数中。
12.根据权利要求1所述的硬件加密器,其特征在于,所述控制单元基于所述计算设备中的通用中央处理单元或通用图形处理单元返回的浮点数的尾数在将所述逻辑单元的运算结果放入所述缓冲器时加入可变字长的缓冲数据。
13.一种基于权利要求1-12中的任意一项所述的硬件加密器的加密方法,其特征在于,包括:
从计算设备中读取源数据,并放入硬件加密器的数组存储单元中;
控制硬件加密器的可编程线性反馈移位寄存器产生伪随机数,并将所述伪随机数发送至所述计算设备的通用中央处理单元和/或图形处理单元进行浮点哈希运算;
控制硬件加密器的扫描器将所述数组存储单元中存储的源数据读取到所述逻辑单元的第一操作数中;
将所述计算设备的通用中央处理单元和/或图形处理单元返回的浮点数放入所述逻辑单元的第二操作数中;
控制所述逻辑单元进行逻辑运算;
将所述逻辑单元的运算结果放入缓冲器中;
控制打包单元读取所述缓冲器中存储的数据并打包;
将所述打包单元打包的数据作为目标数据输出至所述计算设备的输出文件中。
14.根据权利要求13所述的加密方法,其特征在于,所述从计算设备中读取源数据,并放入硬件加密器的数组存储单元中包括:
从所述计算设备的密码本读取随机地址,并根据所述随机地址读取源数据;
将所读取的源数据存储至所述数组存储单元。
15.根据权利要求13所述的加密方法,其特征在于,还包括:
从所述计算设备获取编程密钥,并基于所述编程密钥对所述可编程线性反馈移位寄存器进行编程。
16.根据权利要求15所述的加密方法,其特征在于,还包括:
控制所述可编程线性反馈移位寄存器以使每个线性反馈移位寄存单元进行一次或更多反馈,或者所述可编程线性反馈移位寄存器的所述线性反馈移位寄存单元进行循环反馈,或者在所述可编程线性反馈移位寄存器***种子数据。
17.根据权利要求13所述的加密方法,其特征在于,
将所述计算设备中的通用中央处理单元或通用图形处理单元返回的浮点数的最高有效字放入所述逻辑单元的第二操作数中。
18.根据权利要求13所述的加密方法,其特征在于,还包括:
在将所述逻辑单元的运算结果放入所述缓冲器时基于所述计算设备中的通用中央处理单元或通用图形处理单元返回的浮点数的尾数加入可变字长的缓冲数据。
19.根据权利要求14所述的加密方法,其特征在于,还包括:
如果源数据小于所述密码本的寻址空间,则对所述源数据进行克隆,并将克隆后的数据放入源数据之后组成新的源数据。
20.一种电子装置,其特征在于,包括:
磁盘存储器,用于存储源数据;
第一存储器,用于存储密码本;
第二存储器,用于存储密钥;
内存,用于加载程序和数据;
通用中央处理单元和/或图形处理单元,用于进行浮点哈希运算;以及
如权利要求1-12中的任意一项所述的硬件加密器,所述硬件加密器与所述通用中央处理单元和/或图形处理单元通信。
CN201710740049.4A 2017-08-23 2017-08-23 一种硬件加密器及加密方法、电子装置 Active CN109426738B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710740049.4A CN109426738B (zh) 2017-08-23 2017-08-23 一种硬件加密器及加密方法、电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710740049.4A CN109426738B (zh) 2017-08-23 2017-08-23 一种硬件加密器及加密方法、电子装置

Publications (2)

Publication Number Publication Date
CN109426738A CN109426738A (zh) 2019-03-05
CN109426738B true CN109426738B (zh) 2021-11-12

Family

ID=65500524

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710740049.4A Active CN109426738B (zh) 2017-08-23 2017-08-23 一种硬件加密器及加密方法、电子装置

Country Status (1)

Country Link
CN (1) CN109426738B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114846473A (zh) * 2020-10-27 2022-08-02 京东方科技集团股份有限公司 数据处理电路、数据处理方法及电子设备
CN112564891B (zh) * 2020-12-11 2022-06-21 清华大学无锡应用技术研究院 一种基于反馈移位寄存器阵列的序列密码算法计算***

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101174200A (zh) * 2007-05-18 2008-05-07 清华大学 一种浮点乘加融合单元的五级流水线结构
CN101986264A (zh) * 2010-11-25 2011-03-16 中国人民解放军国防科学技术大学 用于simd向量微处理器的多功能浮点乘加运算装置
CN102087590A (zh) * 2009-12-03 2011-06-08 浙江大学 资源复用的浮点simd指令的执行装置
US7986940B2 (en) * 2007-07-05 2011-07-26 Azurewave Technologies, Inc. Automatic wireless network linking method with security configuration and device thereof
CN102411683A (zh) * 2011-08-15 2012-04-11 复旦大学 一种适用于嵌入式***的基于高速缓存的aes加速器
CN103019647A (zh) * 2012-11-28 2013-04-03 中国人民解放军国防科学技术大学 具有浮点精度保持功能的浮点累加/累减运算方法
CN103078729A (zh) * 2012-01-13 2013-05-01 河南科技大学 基于fpga的双精度混沌信号发生器
CN103984521A (zh) * 2014-05-27 2014-08-13 中国人民解放军国防科学技术大学 Gpdsp中simd结构浮点除法的实现方法及装置
CN104426973A (zh) * 2013-09-03 2015-03-18 ***通信集团公司 一种云数据库加密方法、***及装置
CN104506312A (zh) * 2015-01-19 2015-04-08 中国人民解放军国防科学技术大学 一种用于量子保密通信的信息论安全快速认证消息生成方法
CN105335127A (zh) * 2015-10-29 2016-02-17 中国人民解放军国防科学技术大学 Gpdsp中支持浮点除法的标量运算单元结构

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9589143B2 (en) * 2014-04-17 2017-03-07 Xerox Corporation Semi-trusted Data-as-a-Service platform

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101174200A (zh) * 2007-05-18 2008-05-07 清华大学 一种浮点乘加融合单元的五级流水线结构
US7986940B2 (en) * 2007-07-05 2011-07-26 Azurewave Technologies, Inc. Automatic wireless network linking method with security configuration and device thereof
CN102087590A (zh) * 2009-12-03 2011-06-08 浙江大学 资源复用的浮点simd指令的执行装置
CN101986264A (zh) * 2010-11-25 2011-03-16 中国人民解放军国防科学技术大学 用于simd向量微处理器的多功能浮点乘加运算装置
CN102411683A (zh) * 2011-08-15 2012-04-11 复旦大学 一种适用于嵌入式***的基于高速缓存的aes加速器
CN103078729A (zh) * 2012-01-13 2013-05-01 河南科技大学 基于fpga的双精度混沌信号发生器
CN103019647A (zh) * 2012-11-28 2013-04-03 中国人民解放军国防科学技术大学 具有浮点精度保持功能的浮点累加/累减运算方法
CN104426973A (zh) * 2013-09-03 2015-03-18 ***通信集团公司 一种云数据库加密方法、***及装置
CN103984521A (zh) * 2014-05-27 2014-08-13 中国人民解放军国防科学技术大学 Gpdsp中simd结构浮点除法的实现方法及装置
CN104506312A (zh) * 2015-01-19 2015-04-08 中国人民解放军国防科学技术大学 一种用于量子保密通信的信息论安全快速认证消息生成方法
CN105335127A (zh) * 2015-10-29 2016-02-17 中国人民解放军国防科学技术大学 Gpdsp中支持浮点除法的标量运算单元结构

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
X-DSP 64 位 SIMD 位处理部件及混洗单元的设计与实现;彭浩;《中国优秀硕士学位论文全文数据库 信息科技辑》;20150115;全文 *
X-DSP SIMD浮点算术逻辑部件的设计与实现;宋博荣;《中国优秀硕士学位论文全文数据库 信息科技辑》;20150115;全文 *
基于定点与浮点复用的SIMD乘法器设计与实现;韩珊珊;《第18届全国半导体集成电路、硅材料学术会议》;20140615;全文 *

Also Published As

Publication number Publication date
CN109426738A (zh) 2019-03-05

Similar Documents

Publication Publication Date Title
US11347898B2 (en) Data protection device and method and storage controller
US11868274B2 (en) Key management in computer processors
US9418246B2 (en) Decryption systems and related methods for on-the-fly decryption within integrated circuits
WO2017112282A1 (en) Memory integrity with error detection and correction
US10095636B2 (en) Secure computing
US9503256B2 (en) SMS4 acceleration hardware
US20080155273A1 (en) Automatic Bus Encryption And Decryption
EP3839788B1 (en) Bit-length parameterizable cipher
US9280490B2 (en) Secure computing
US11222127B2 (en) Processor hardware and instructions for SHA3 cryptographic operations
CN109426738B (zh) 一种硬件加密器及加密方法、电子装置
TW201918923A (zh) 安全邏輯系統及操作安全邏輯系統的方法
CN111008407A (zh) 用于执行虚拟加密操作的加密电路
US11914756B2 (en) Data protection in computer processors
WO2017209890A1 (en) Single clock cycle cryptographic engine
KR101126596B1 (ko) 단일 및 다중 aes 동작을 지원하기 위한 듀얼 모드 aes 장치 및 방법
US20020186839A1 (en) Apparatus and method for cipher processing system using multiple port memory and parallel read/write operations
CN112613080A (zh) 一种面向轻量级分组密码算法的可重构阵列单元及阵列
KR20180059217A (ko) 메모리 데이터 보안 처리 장치 및 방법
US9331847B2 (en) Countermeasure method and device for protecting data circulating in an electronic component
KR100442354B1 (ko) Rc4방식의 암호화 장치 및 방법
Labbe et al. Efficient hardware implementation of a CRYPTO-MEMORY based on AES algorithm and SRAM architecture
Pellett et al. DES Encryption Chip

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