CN106470105B - 用于多端口到多端口密码术的系统和方法 - Google Patents
用于多端口到多端口密码术的系统和方法 Download PDFInfo
- Publication number
- CN106470105B CN106470105B CN201610698135.9A CN201610698135A CN106470105B CN 106470105 B CN106470105 B CN 106470105B CN 201610698135 A CN201610698135 A CN 201610698135A CN 106470105 B CN106470105 B CN 106470105B
- Authority
- CN
- China
- Prior art keywords
- data
- shifter
- authentication
- amount
- feedback
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/76—Protecting 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 application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Logic Circuits (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开一种用于多端口到多端口密码术的系统和方法。本文中讨论一种用于重新使用硬件以便加密和认证的系统和方法,其中所述硬件具有固定输入带宽,且其中所述硬件针对不同输入带宽具有相同带宽。为了完成这个机制,本文中提供用于处理在有效数据流中出现的无效数据的系统和方法,本文中还提供用于认证机制的系统和方法,所述认证机制需要多于一个数据循环来完成。
Description
背景技术
针对硬件的不同配置重新使用加密硬件以便节省芯片空间在诸如场可编程门阵列(FPGA)的可编程集成电路装置中是有优势的。例如,接口能够被配置为含有处于较慢带宽的更多端口(例如,100千兆比特每秒(“Gbps”)带宽划分在每个具有10Gbps带宽的10个端口上),或被配置为具有利用较少端口(例如,100Gbps带宽划分在每个具有20Gbps带宽的5个端口上)的更多带宽。在这个情况下,能够支持N端口乘以M带宽的加密设计还应该能够支持M端口乘以N带宽或诸如使得总带宽没有超出可用带宽的任何数量的端口。
然而,如果在不具有余数的情况下,组成密码术硬件的认证引擎的块是彼此不可划分的,则加密设计将不能够支持这种布置。例如,假设可编程集成电路装置具有能够作为单个100Gbps端口运行或能够作为十个10Gbps端口运行的端口。这里,通过这两个端口的带宽是相同的。还假设认证引擎由四个引擎组成,四个引擎中的每个具有25Gbps的带宽。尽管100Gbps端口能够被划分为带宽的四个25Gbps部分并且被传递至引擎,但具有十个10Gbps端口的方案不能够被划分和传递。
在具有十个10Gbps端口的方案中,输入必须被多路复用至认证引擎的适当通道(lane),使得针对每个时钟循环,处理四个通道。尽管这种解决方案因为加密和解密阶段没有请求反馈所以对于该处理的这些阶段是可行的,但这个解决方案对于该处理的认证部分是不可行的。这是因为认证部分产生反馈,其意味着在期待产生的值是正确的情况下,来自加密内核的不同端口的数据不能够被馈送至相同认证引擎。
发明内容
本文中提供一种用于确保能够支持N端口乘以M带宽的加密设计也能够支持X端口乘以Y带宽的系统和方法,在该方案中认证的带宽没有平均划分到输入端口的带宽,并且X乘以Y带宽没有超出系统的可用带宽。为了获得这个目标,在本文中描述一种电路系统,其包括队列,该队列被耦合至输入端口以便出于延时输入以匹配给定反馈认证信息的目的使能延时。还提供移位器,其中,在每个认证、加密和反馈块之前和之后提供移位器。移位器中的每个被用于周期性地移位给定输入和反馈值以与用于多路复用的输入数据的反馈和密钥对齐。为了维持反馈的合适值,乘法器被用于在每个所需循环中将所述反馈乘以1,直到反馈匹配给定密钥。
附图说明
本公开的另外特征、其性质和各种优势将在考虑以下详细描述并结合附图的情况下容易理解,其中贯穿附图相同的附图标记指代相同的部件,并且其中:
图1描述根据本公开的一些实施方式包括输入端口、加密内核、密钥生成器、认证内核和反馈路径的可编程集成电路装置;
图2描述根据本公开的一些实施方式包括输入端口、加密内核、密钥生成器、反馈路径和移位器块的可编程集成电路装置;
图3是根据本公开的一些实施方式描述在方案中如何处理无效数据的流程图,其中,可编程集成电路装置通过认证引擎被用于处理数据,认证引擎的带宽没有平均划分成馈送其数据的输入端口的带宽;
图4是根据本公开的一些实施方式描述在接收无效数据时将反馈与数据匹配的过程的流程图;
图5是根据本公开的一些实施方式描述通过认证引擎用于确保数据、密钥和反馈匹配接下来处理的过程的流程图;
图6是根据本公开的一些实施方式采用并入本公开的系统和方法的可编程逻辑装置的例示性系统的简化方框图;
图7是根据本公开的一些实施方式利用用于执行本文中描述的方法的一组机器可执行指令编码的磁性数据存储介质的横截面图;以及
图8是根据本公开的一些实施方式利用用于执行本文中描述的方法的一组机器可执行指令编码的光学可读数据存储介质的横截面图。
具体实施方式
本文中提供一种用于确保能够支持N端口乘以M带宽的加密设计也能够支持M端口乘以N带宽的系统和方法,在该方案中认证引擎的带宽没有平均划分到输入端口的带宽。为了完成这个机制,本文中提供一种用于在认证引擎的带宽没有平均地划分到输入端口的带宽时处理出现在有效数据流内的无效数据的系统和方法。还在本文中提供用于支持需要多于一个数据循环来完成的认证机制的系统和方法,以便实现支持其带宽没有平均划分成输入端口的带宽的认证引擎的目的。
图1描述根据本公开的一些实施方式包括输入端口、加密内核、密钥生成器、认证内核和反馈路径的可编程集成电路装置。可编程集成电路装置100包含:输入端口102、加密内核104、密钥生成块106(本公开中可交换地描述为密钥生成器106)、认证内核108和反馈路径110。总而言之,图1的任何给定通道(例如,包括加密内核104中的加密内核、密钥生成器106中的密钥生成器、认证内核108中的认证内核和反馈路径108中的反馈路径)在本公开中被称作为“认证引擎”。图1的内容仅是例示的,并且其中布置元件的顺序或所描述元件的数目是非限制的并且可以以任何方式按比例放大或缩小。例如,尽管描述十个输入端口102,本公开考虑任何数目的输入端口102。相似地,尽管描述可编程集成电路装置100的每个其他元件的四个,本公开考虑可编程集成电路装置100的每个其他元件的任何数目。
输入端口102提供数据至加密内核104。加密内核104提供数据至密钥生成器106和认证内核108。当数据被提供至密钥生成器106时,密钥生成器106将产生的密钥提供至认证内核108。从输入端口102流入至认证内核108的数据的过程通常需要多于一个循环来完成。例如,在AES-GCM(“高级加密标准Galois/Counter模式”)系统中,单个密钥和从反馈路径110得到的反馈被用于与数据相乘。如果需要认证内核108中的多于一个认证内核,或如果需要多于一个循环用于认证内核以完成其计算,则必须通过密钥生成器106提前生成多个密钥,并且密钥必须匹配通过反馈路径110提供的反馈,以及通过输入端口102提供的数据。
在一个例示实施方式中,输入端口102可以包含一个端口,该端口具有馈送四个加密内核104的100Gbps的带宽。在这种情况下,在任何给定循环中,通过输入端口102的中的所述一个端口进入的全部数据将是有效的或是无效的。以下在表1中提供通过该系统进入的数据的示例:
表1:一个100Gbps端口;输入至认证引擎
在下面提供的表2示出与可编程集成电路装置100的单个认证引擎有关的详细信息,并且假设如图1中描述的存在四个认证引擎,并且因此时延是四个循环。我们能够从表2看出必须维持密钥、反馈和数据关系,以便认证算法适当地工作。
表2:单个100Gbps端口,输入至单个认证引擎
反馈 | 密钥 | 数据 | SOP/不使用反馈 | |
时间0 | * | 密钥0 | 数据0 | 1 |
时间1 | * | 密钥1 | 数据4 | 1 |
时间2 | * | * | 不是有效 | * |
时间3 | * | 密钥2 | 数据8 | 1 |
时间4 | * | 密钥3 | 数据12 | 1 |
时间5 | FB 0 | 密钥0 | 数据16 | 0 |
时间6 | FB 1 | 密钥1 | 数据20 | 0 |
在另一个例示实施方式中,输入端口102可以包含十个端口,十个端口中的每个具有10Gbps带宽。在以下表3中提供通过这种系统进入的数据的示例:
表3:十个10GB端口;输入至认证引擎
时间0 | 数据0端口0 | 数据0端口1 | 数据0端口2 | 数据0端口3 |
时间1 | 数据0端口4 | 数据0端口5 | 数据0端口6 | 数据0端口7 |
时间2 | 不是有效 | 不是有效 | 不是有效 | 不是有效 |
时间3 | 数据0端口8 | 数据0端口9 | 数据1端口0 | 数据1端口1 |
时间4 | 数据1端口2 | 不是有效 | 数据1端口4 | 数据1端口5 |
在表3中能够看出,当四个端口被使用在输入端口102中时,数据的有效性不依赖于数据通过哪个通道(即,哪个认证引擎)传播。以下提供的表4示出与可编程集成电路装置100的单个认证引擎有关的详细信息,其中在输入端口102中存在十个输入端口,并且假设如图1描述的存在四个认证引擎,并且因此时延是四个循环。
表4:十个10Gbps端口;单个认证引擎
如表4能够看出,当输入端口不具有与加密引擎带宽相同的带宽(例如,每个端口具有10Gbps的带宽,但是加密引擎具有25Gbps的带宽)时,反馈和密钥不再比配。因此,需要移位器,以便使密钥和反馈匹配穿过每个认证引擎的数据。
图2描述根据本公开的一些实施方式包括输入端口、加密内核、密钥生成器、反馈路径和移位器块的可编程集成电路装置。可编程集成电路装置200的结构启用认证引擎,该认证引擎的带宽没有平均划分成输入端口的带宽,以与这些输入端口一起被使用。可编程集成电路装置200包含输入端口202、队列204、移位器206、加密内核208、密钥生成器210、移位器212、认证内核214、移位器216和反馈路径218。输入端口202具有以上参照输入端口102描述的相同功能。密钥内核208具有以上参照加密内核104描述的相同功能。密钥生成器210具有以上参照密钥生成器106描述的相同功能。认证内核214具有以下参照认证内核108描述的相同功能。反馈路径218具有以上参照反馈路径110描述的相同功能。
如参照本文,术语“数据”可以指与通过输入端口(例如,输入端口102或输入端口202)的输入相同的数据,或可以指其的操纵或改变的版本。可以通过在本文中描述的诸如组件204、206、208、210、212、214、216和/或218的任何模块或组件操纵或改变数据。
队列204可以是先进先出(“FIFO”)队列。队列204被用于保持从输入端口202发送的数据与认证引擎的循环对齐。为了完成该对齐,队列204可以具有与针对任一特定端口的认证引擎的时延相等的长度。
如上所述,当进入端口不具有匹配加密引擎的带宽的带宽时,使用移位器206、212和216。移位器206、212和216可以具有匹配队列204的带宽的带宽。移位器206、212、216被用于将数据移位至下一个端口。在每个情况中,一旦循环结束或开始,无论数据是有效或是无效,可以将数据移位至下一个端口。
在一个示例实施方式中,FIFO队列可以被安装在认证内核214处。这个FIFO队列的目的是用于保持通过反馈路径接收的反馈。当输入端口202的带宽匹配认证引擎的带宽(例如,通过在输入端口202处使用一个100Gbps端口,如以上参照输入端口102所讨论)时,FIFO队列将在匹配反馈与输入端口和密钥方面是成功的。然而,当输入端口202的带宽没有匹配认证的带宽(例如,通过在输入端口202处使用十个10Gbps端口,其中每个认证引擎具有25Gbps的带宽)时,FIFO队列将在匹配反馈和输入端口和密钥方面不是成功的。在其中FIFO队列是成功的情况的一个示例被示出在以下表5中:
表5:十个10Gbps端口;输入至单个认证引擎
在表5中,因为在时间2处的数据是无效的,所以数据循环被推迟一个循环。然而,因为不存在反馈,所以密钥和端口仍然匹配。这种情况在其中无效数据出现在提供反馈的循环中,和在其中FIFO队列被使用在认证内核处的方案中是不同的,如以下表6中被例示:
表6:一个100Gbps端口;输入至单个认证引擎;时延4
如表6中所示,在时间22处,无效数据穿过认证引擎。在时间22处的相同循环期间,旨在在时间22处匹配数据的反馈被呈现。因为数据是无效的,所以反馈不再匹配密钥。相反,反馈总是在密钥之后延时一个循环。
在另一个例示实施方式中,FIFO队列没有安装在认证内核214中。相反,乘法器被安装反馈路径218上。乘法器被编程以确定数据是否是无效的,并且如果数据是无效的,则将反馈乘以1。这确保反馈将保留其先前的值。在将反馈乘以1之后,至认证引擎的下一个输入必须延迟该时延量以确保反馈与预期的密钥和数据相匹配。
图3是根据本公开的一些实施方式描述在方案中如何处理无效数据的流程图,其中集成电路装置200被用于通过认证引擎处理数据,该认证引擎的带宽没有平均划分成馈送其数据的输入端口的带宽。过程300在302处开始,其中在认证引擎处接收密钥值和数据值。在304处,认证引擎确定数据是否是有效的。如果答案为是,则过程300继续至306,其中认证引擎在下一个循环处接收新的数据。如果答案为否,则过程300继续至308,其中密钥的值被设置为1,并且数据值被设置为0。这导致过程300继续至310,其中将该反馈乘以1。当将反馈乘以1时,重新产生具有相同的值的反馈,而不需要请求改变可编程集成电路装置200的乘法器、反馈、或复位电路(reduction circuit)。
图4是根据本公开的一些实施方式描述用于当接收无效数据时匹配反馈和数据的过程的流程图。图4可以描述被实现在集成电路装置200上的过程。过程400在402处开始,其中确定进入数据是否是来自数据包的开始的数据。数据可以来自诸如队列204的FIFO队列。如果数据表示包的开始,则没有与该包相关的反馈数据。
如果确定数据确实表示包的开始,则过程400继续至404,其中当前计数器被设置为时延计数器。当前计数器被用于跟踪在对应队列204中的位置,在这个示例中,对应队列204是FIFO队列,该数据与其对应。时延计数器被用于跟踪插入数据处理以确保给定反馈、数据、和密钥全部匹配所需的延时的量。时延计数器与FIFO队列的长度相等,并且可以在每个时钟循环上增加。
在406处,可以确定的是,当前计数器是否等于时延计数器。当数据不表示包的开始,当前计数器将总是等于时延计数器,并且过程400将总是进行至408,其中数据被认证,并且然后进行至410,其中当前计数器增加1使得过程400利用将要被处理的下一个数据重新开始。在410处,时延计数器也增加1并且可以在每个时钟循环上增加。
返回至402,如果数据不是包的开始,则过程400直接跳过至406。如果无效包没有先于数据,则当前计数器将总是等于时延计数器,并且过程400将继续至408和410。然而,如果无效包先于数据,则数据将不被认证,并且过程400反而将行进至412,其中当前计数器将保留其值,并且检查406将失败直到时延计数器和当前计数器再次匹配。过程400然后将反复地循环回到402、406以及然后回到412,直到当前计数器最终等于时延计数器为止,这是当反馈将与适当密钥和数据匹配的时候。这个过程参照表7更好地表述,其在以下产生:
表7:一个100Gbps端口;输入至单个认证引擎;时延4
在表7中能够看出,在时间20和21处,反馈和密钥匹配。在时间22处,接收无效数据。在这个时间处,预期反馈匹配密钥2。然而,密钥没有从1增加至2。因此,密钥没有增加。为了确保密钥和反馈匹配,强加FIFO队列的整个大小的时延(例如,针对出现的时延的量(在该案列中是4)通过循环通过步骤402、406和412)。因此,四个循环过去,并且在下一个循环中,合适的反馈匹配合适的密钥。
图5是根据本公开的一些实施方式描述用于通过认证引擎确保数据、密钥和反馈匹配接下来处理的过程的流程图。图5可以描述实现在可编程集成电路装置200上的过程。过程500在502处开始,其中输入端口发送数据至队列。过程500继续至504,其中队列发送数据至第一移位器。过程500继续至506,其中第一移位器发送数据至加密内核。过程500继续至508,其中加密内核发送数据至密钥生成器和至第二移位器。过程500然后继续至510,其中密钥生成器发送密钥至第二移位器。然后过程500继续至512,其中第二移位器发送数据和密钥至认证内核。过程500继续至514,其中认证内核发送数据至第三移位器。过程500然后继续至516,其中第三移位器发送数据至反馈路径。最后,过程500继续至518,其中通过第三移位器将反馈从反馈路径发送至认证内核,其中,当穿过可编程集成电路装置的数据是无效的时,反馈乘以1。
如图6中所描述,可以在许多种类的电子装置中使用根据本公开的合并多个网络平面(plane)的集成电路可编程逻辑装置(PLD)600。集成电路可编程逻辑装置600可以是集成电路、处理块、应用专用标准产品(ASSP)、应用专用集成电路(ASIC)、诸如场可编程门阵列(FPGA)、全定制芯片、或专用芯片的可编程逻辑装置(PLD),然而,为了简便起见,其可以在本文中被称作为PLD 600。一个可能的使用是在图6中示出的例示性数据处理系统600中。数据处理系统600可以包括以下部件中的一个或更多个:处理器601、存储器602、I/O电路系统603和外围设备604。这些部件通过系统总线605被耦合在一起并且居于电路板606上,该电路板606含在终端用户系统607中。
系统600能够用在各种各样的应用中,诸如,计算机网络、数据网络、仪器仪表、视频处理、数字信号处理或其中期望使用可编程或重复可编程逻辑的优势的任何其它应用。PLD 600能够被用于执行多个不同逻辑功能。例如,PLD 600能够被配置为与处理器601协作的处理器或控制器。PLD 600还可以被用作用于仲裁对系统600中的共享资源访问的仲裁器。在另一个示例中,PLD 600能够被配置为处理器601和系统600中的其它组件中的一个之间的接口。应该注意的是,系统700仅是示例性的,并且应该通过随附权利要求指示本发明的真实范围和精神。
各种技术能够用于实现如上描述和包含本公开的PLD 600。
图7呈现磁性数据存储介质710的横截面,其能够利用机器可执行程序(例如,包括图5的元素的程序)进行编码,该机器可执行程序能够通过诸如工作站或个人计算机、或其它计算机或相似装置的系统进行实施。介质710能够是软盘或硬盘、或磁带,其具有适合的基底711和在一侧或两侧上的含有磁域(不可视)的适合的涂层712,该基底711可以是常规的,该涂层712可以是常规的,该磁域的极性或方向能够磁性地进行改变。在介质710是磁带的情况下例外的是,介质710还可以具有开口(没有示出),其用于接收磁盘驱动器的主轴或其它数据存储装置。
根据本发明,介质701的涂层712的磁域被极化或定向以便可以按照常规的方式编码机器可执行程序,用于通过诸如工作站或个人计算机或其它计算机或相似系统的编程系统(具有将要被编程的PLD可以插入的套接字或外围附件以配置PLD的合适部分,如果有的话,包括其特殊处理模块)执行。
图8示出光学可读数据存储介质810的横截面,其还能够利用这种机器可执行程序(例如,包括图5的元素的程序)进行编码,该机器可执行程序能够通过诸如上述工作站或个人计算机、或其它计算机或相似设备的系统实施。介质810能够是常规的光盘只读存储器(CD-ROM)或数字视盘只读存储器(DVD-ROM)或诸如CD-R、CD-RW、DVD-R、DVD-RW、DVD+R、DVD+RW、或DVD-RAM或磁光盘的可重写介质,该磁光盘是光学地可读取和磁光学地可重写。介质810优选地具有可以是常规的适合的基底811和可以是常规的适当的涂层812,该涂层812通常可以在基底811的一侧或两侧上。
在基于CD或基于DVD的介质的情况下,众所周知的是,涂层812是反射的并且被压有多个凹面813,多个凹面813布置在一个或更多个层上,以编码机器可执行程序。凹面的步置通过反射激光离开涂层812的表面读取。优选地大体上透明的保护涂层814被提供在涂层812的顶部上。
在磁光盘的情况中,众所周知的是,涂层812不具有凹面813,但是具有多个磁域,该多个磁域的极性或方向在如通过激光(未示出)加热在特定温度以上时能够被磁性地改变。域的方向能够通过测量从涂层812反射的激光的极性进行读取。如上所述,域的布置编码程序。
将理解的是前述仅是本公开的原理的示例,并且各种修改能够在不偏离本公开的范围和精神的情况由本领域技术人员做出。例如,本公开的各种元素能够以任何所需数量和/或布置提供在PLD上。本领域的技术人员将理解的是,本公开能够通过除了描述的实施方式之外的方式实践,描述的实施方式是出于例示而不是限制的目的呈现,并且本发明仅被所附的权利要求书限制。
无论在背景技术中还是以其他方式,都不承认本公开的任何部分形成现有技术的一部分。
Claims (20)
1.一种可编程集成电路装置,所述可编程集成电路装置包括:
多个输入端口;
队列,其被耦合至所述输入端口;
第一移位器,其被耦合至所述队列;
多个加密内核,其被耦合至所述第一移位器;
多个密钥生成器,其中,所述多个密钥生成器中的每个密钥生成器对应于所述多个加密内核中的相应加密内核;
第二移位器,其被耦合至所述多个密钥生成器中的每个密钥生成器;
多个认证内核,其中,所述多个认证内核中的每个认证内核被耦合至所述第二移位器;
第三移位器,其被耦合至所述多个认证内核中的每个认证内核的输出;以及
多个反馈路径,其中,所述多个反馈路径中的每个反馈路径被耦合至所述第三移位器,其中,当穿过所述可编程集成电路装置的数据是无效的时,在其上的数据是无效的相应反馈路径提供乘以1的反馈。
2.根据权利要求1所述的可编程集成电路装置,其中,所述队列是先进先出队列,即FIFO队列。
3.根据权利要求1所述的可编程集成电路装置,所述可编程集成电路装置进一步包括被集成有所述第一移位器的逻辑,所述逻辑被配置为:
确定穿过所述可编程集成电路装置的数据是无效的;
确定通过穿过所述可编程集成电路装置的所述数据是无效的导致延时的量;以及
通过所述延时的量延时穿过所述可编程集成电路装置的新数据。
4.根据权利要求3所述的可编程集成电路装置,其中,所述延时的量与匹配无效数据所来自的端口和所述反馈所需要的循环的量相等。
5.根据权利要求1所述的可编程集成电路装置,其中,所述多个输入端口中的输入端口的量超出所述多个加密内核中的加密内核的量。
6.根据权利要求5所述的可编程集成电路装置,其中,如果所述输入端口的量除以所述加密内核的量,则从相除得到的结果包括商和非零余数。
7.根据权利要求1所述的可编程集成电路装置,其中,所述反馈路径包括乘法器。
8.一种操作可编程集成电路装置的方法,所述方法包括:
将数据从多个输入端口中的输入端口发送至队列,所述队列被耦合至所述输入端口;
将所述数据从所述队列发送至第一移位器,所述第一移位器被耦合至所述队列;
将所述数据从所述第一移位器发送至多个加密内核的加密内核,所述多个加密内核的加密内核被耦合至所述第一移位器;
将所述数据从所述加密内核发送至第二移位器,所述第二移位器被耦合至所述多个加密内核中的每个加密内核的,以及将所述数据从所述加密内核发送至多个密钥生成器中的密钥生成器,其中,所述多个密钥生成器中的每个密钥生成器对应于所述多个加密内核中的相应加密内核;
将所述数据从所述密钥生成器发送至所述第二移位器,其中,将所述第二移位器耦合至所述多个密钥生成器中的每个密钥生成器;
将所述数据从所述第二移位器发送至多个认证内核中的认证内核,其中,所述多个认证内核中的每个认证内核耦合至所述第二移位器;
将所述数据从所述认证内核发送至第三移位器,所述第三移位器被耦合至所述多个认证内核中的每个认证内核的输出;
将所述数据从所述第三移位器发送至多个反馈路径中的反馈路径,其中,所述多个反馈路径中的每个反馈路径耦合至所述第三移位器;以及
通过所述第三移位器将反馈从所述反馈路径发送至所述认证内核,其中,当穿过所述可编程集成电路装置的数据是无效的时,所述反馈乘以1。
9.根据权利要求8所述的方法,其中,所述队列是先进先出队列,即FIFO队列。
10.根据权利要求8所述的方法,所述方法进一步包括:
确定所述数据是无效的;
确定通过所述数据是无效导致的延时的量;以及
通过所述延时的量延时穿过所述可编程集成电路装置的新数据。
11.根据权利要求10所述的方法,其中,所述延时的量与匹配无效数据所来自的端口和所述反馈所需要的循环的量相等。
12.根据权利要求8所述的方法,其中,所述多个输入端口中的输入端口的量超出所述多个加密内核中的加密内核的量。
13.根据权利要求12所述的方法,其中,如果所述输入端口的量除以所述加密内核的量,则从相除得到的结果包括商和非零余数。
14.根据权利要求8所述的方法,其中,所述反馈路径包括乘法器。
15.一种非暂时性机器可读介质,其包括存储在其上的用于操作可编程集成电路装置的指令,所述指令包括:
用于将数据从多个输入端口中的输入端口发送至队列的指令,其中所述队列被耦合至所述输入端口;
用于将所述数据从所述队列发送至第一移位器的指令,其中所述第一移位器被耦合至所述队列;
用于将所述数据从所述第一移位器发送至多个加密内核中的加密内核的指令,其中所述多个加密内核中的加密内核被耦合至所述第一移位器;
用于将所述数据从所述加密内核发送至第二移位器以及用于将所述数据从所述加密内核发送至多个密钥生成器中的密钥生成器的指令,所述第二移位器被耦合至所述多个加密内核中的每个加密内核,其中,所述多个密钥生成器中的每个密钥生成器对应所述多个加密内核中的相应加密内核;
用于将所述数据从所述密钥生成器发送至所述第二移位器的指令,其中,所述第二移位器耦合至所述多个密钥生成器中的每个密钥生成器;
用于将所述数据从所述第二移位器发送至多个认证内核中的认证内核的指令,其中,所述多个认证内核中的每个认证内核耦合至所述第二移位器;
用于将所述数据从所述认证内核发送至第三移位器的指令,所述第三移位器被耦合至所述多个认证内核中的每个认证内核的输出;
用于将所述数据从所述第三移位器发送至多个反馈路径中的反馈路径的指令,其中,所述多个反馈路径中的每个反馈路径耦合至所述第三移位器;以及
用于通过所述第三移位器将反馈从所述反馈路径发送至所述认证内核的指令,其中,当穿过所述可编程集成电路装置的数据是无效的时,所述反馈乘以1。
16.根据权利要求15所述的非暂时性机器可读介质,其中,所述队列是先进先出队列,即FIFO队列。
17.根据权利要求15所述的非暂时性机器可读介质,其中,所述指令进一步包括:
用于确定所述数据是无效的指令;
用于确定通过所述数据是无效导致延时的量的指令;
用于通过所述延时的量延时穿过所述可编程集成装置的新数据的指令。
18.根据权利要求17所述的非暂时性机器可读介质,其中,所述延时的量与匹配无效数据所来自的端口和所述反馈所需要的循环的量相等。
19.根据权利要求15所述的非暂时性机器可读介质,其中,所述多个输入端口中的输入端口的量超出所述多个加密内核中的加密内核的量。
20.根据权利要求19所述的非暂时性机器可读介质,其中,如果所述输入端口的量除以所述加密内核的量,则从相除得到的结果包括商和非零余数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/830,171 US10061941B2 (en) | 2015-08-19 | 2015-08-19 | Systems and methods for multiport to multiport cryptography |
US14/830,171 | 2015-08-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106470105A CN106470105A (zh) | 2017-03-01 |
CN106470105B true CN106470105B (zh) | 2019-12-10 |
Family
ID=56738032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610698135.9A Active CN106470105B (zh) | 2015-08-19 | 2016-08-19 | 用于多端口到多端口密码术的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10061941B2 (zh) |
EP (1) | EP3133576B1 (zh) |
CN (1) | CN106470105B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10061941B2 (en) * | 2015-08-19 | 2018-08-28 | Altera Corporation | Systems and methods for multiport to multiport cryptography |
US20230077946A1 (en) * | 2020-02-12 | 2023-03-16 | FortifyIQ, Inc. | Methods and ip cores for reducing vulnerability to hardware attacks and/or improving processor performance |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101520966A (zh) * | 2008-02-27 | 2009-09-02 | 英特尔公司 | 并行运算模式中优化高级加密标准加解密的方法和装置 |
CN102236540A (zh) * | 2010-04-20 | 2011-11-09 | 财团法人工业技术研究院 | 循序运算的伽罗瓦乘法架构与方法 |
CN102473224A (zh) * | 2009-12-22 | 2012-05-23 | 英特尔公司 | 提供安全应用执行的方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5144576A (en) * | 1989-09-05 | 1992-09-01 | Cyrix Corporation | Signed digit multiplier |
KR100675837B1 (ko) * | 2004-12-13 | 2007-01-29 | 한국전자통신연구원 | 고속 gcm-aes 블록 암호화 장치 및 방법 |
US10061941B2 (en) * | 2015-08-19 | 2018-08-28 | Altera Corporation | Systems and methods for multiport to multiport cryptography |
US10237782B2 (en) * | 2015-12-30 | 2019-03-19 | The Chinese University Of Hong Kong | Hardware acceleration for batched sparse codes |
US10243668B2 (en) * | 2016-04-27 | 2019-03-26 | Industrial Technology Research Institute | Positioning measurement device and the method thereof |
-
2015
- 2015-08-19 US US14/830,171 patent/US10061941B2/en active Active
-
2016
- 2016-08-18 EP EP16184715.7A patent/EP3133576B1/en active Active
- 2016-08-19 CN CN201610698135.9A patent/CN106470105B/zh active Active
-
2018
- 2018-08-27 US US16/113,932 patent/US10489610B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101520966A (zh) * | 2008-02-27 | 2009-09-02 | 英特尔公司 | 并行运算模式中优化高级加密标准加解密的方法和装置 |
CN102473224A (zh) * | 2009-12-22 | 2012-05-23 | 英特尔公司 | 提供安全应用执行的方法和装置 |
CN102236540A (zh) * | 2010-04-20 | 2011-11-09 | 财团法人工业技术研究院 | 循序运算的伽罗瓦乘法架构与方法 |
Non-Patent Citations (1)
Title |
---|
FPGA parallel-pipelined AES-GCM core for 100G Ethernet applications;Luca Henzen等;《2010 Proceedings of ESSCIRC》;20100916;第202页第2节-第205页第4节 * |
Also Published As
Publication number | Publication date |
---|---|
US10489610B2 (en) | 2019-11-26 |
US10061941B2 (en) | 2018-08-28 |
US20190057227A1 (en) | 2019-02-21 |
CN106470105A (zh) | 2017-03-01 |
EP3133576B1 (en) | 2019-11-13 |
EP3133576A1 (en) | 2017-02-22 |
US20170061162A1 (en) | 2017-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12063291B2 (en) | Devices and circuitry for computing hash values | |
US9363078B2 (en) | Method and apparatus for hardware-accelerated encryption/decryption | |
CN113364713B (zh) | 容忍突发的决策反馈均衡 | |
EP2131495B1 (fr) | Circuit asynchrone insensible aux délais avec circuit d'insertion de délai | |
US9170769B2 (en) | Crosstalk mitigation in on-chip interfaces | |
US8495440B2 (en) | Fully programmable parallel PRBS generator | |
US11082241B2 (en) | Physically unclonable function with feed-forward addressing and variable latency output | |
US7979482B2 (en) | Random number generator configured to combine states of memory cells | |
TWI693791B (zh) | 使用小型間接隨機預充電以防範旁通道攻擊的電子元件 | |
CN106470105B (zh) | 用于多端口到多端口密码术的系统和方法 | |
US8766681B2 (en) | Device and method for a multiplexor/demultiplexor reset scheme | |
Leibson et al. | Xilinx ultrascale: The next-generation architecture for your next-generation architecture | |
CN116504288A (zh) | 具有输入/输出数据速率对齐的存储器部件 | |
US8958549B2 (en) | Countermeasure method and device for protecting data circulating in an electronic component | |
US20230214188A1 (en) | Systolic parallel galois hash computing device | |
US9519807B1 (en) | Hash generation circuitry and methods for multi-channel, multi-lane encryption and authentication | |
US7852685B2 (en) | Semiconductor memory device | |
US20100057954A1 (en) | Alignment of instructions and replies across multiple devices in a cascaded system, using buffers of programmable depths | |
CN107750431A (zh) | 包括多个功能块的现场可编程门阵列和用于动力装置的控制装置 | |
US8649518B1 (en) | Implementing CSA cryptography in an integrated circuit device | |
EP0379436A1 (fr) | Dispositif et procédé d'arbitrage des requêtes et de résolution des conflits liés à l'accès aux mémoires à bancs indépendants pour les machines informatiques | |
Fang | Privacy preserving computations accelerated using FPGA overlays | |
TW200813751A (en) | Architecture for finite state machine decomposition | |
JP3082384B2 (ja) | 先入れ先出し記憶装置 | |
KR20040078475A (ko) | 뱅크별로 데이터 라인의 부하 차이에 기인하는 스큐를제거할 수 있는 기입 드라이버를 구비하는 반도체메모리장치 및 이의 스큐 제거방법 |
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 |