System and Method for Processor-Based Security
    2.
    发明申请
    System and Method for Processor-Based Security 有权
    基于处理器的安全性的系统和方法

    公开(公告)号:US20100281273A1

    公开(公告)日:2010-11-04

    申请号:US12689674

    申请日:2010-01-19

    IPC分类号: G06F12/14 G06F21/22

    摘要: A system and method for processor-based security is provided, for on-chip security and trusted computing services for software applications. A processor is provided having a processor core, a cache memory, a plurality of registers for storing at least one hash value and at least one encryption key, a memory interface, and at least one on-chip instruction for creating a secure memory area in a memory external to the processor, and a hypervisor program executed by the processor. The hypervisor program instructs the processor to execute the at least one on-chip instruction to create a secure memory area for a software area for a software module, and the processor encrypts data written to, and decrypts data read from, the external memory using the at least one encryption key and the verifying data read from the external memory using the at least one hash value. Secure module interactions are provided, as well as the generation of a power-on key which can be used to protect memory in the event of a re-boot event. Lightweight, run-time attestation reports are generated which include selected information about software modules executed by the processors, for use in determining whether the processor is trusted to provide secure services.

    摘要翻译: 提供了一种用于基于处理器的安全性的系统和方法,用于软件应用的片上安全和可信计算服务。 提供一种处理器,其具有处理器核心,高速缓存存储器,用于存储至少一个散列值的多个寄存器和至少一个加密密钥,存储器接口以及用于创建安全存储器区域的至少一个片上指令 处理器外部的存储器和由处理器执行的管理程序程序。 管理程序指令处理器执行至少一个片上指令以为软件模块的软件区域创建安全存储区域,并且处理器使用以下方式对写入的数据和从外部存储器读取的数据进行加密 至少一个加密密钥和使用所述至少一个哈希值从外部存储器读取的验证数据。 提供安全模块交互,以及生成可以在重新启动事件的情况下保护内存的开机密钥。 生成轻量级的运行时证明报告,其中包括有关由处理器执行的软件模块的选定信息,用于确定处理器是否被信任以提供安全服务。

    Parallel Read Functional Unit for Microprocessors
    3.
    发明申请
    Parallel Read Functional Unit for Microprocessors 有权
    微处理器并行读功能单元

    公开(公告)号:US20100228939A1

    公开(公告)日:2010-09-09

    申请号:US12690040

    申请日:2010-01-19

    IPC分类号: G06F12/00

    摘要: A functional unit for a microprocessor is provided, which allows for fast, parallel data read, write, and manipulation operations in the microprocessor that are useful for a number of software applications, such as cryptography. The functional unit includes first and second source registers for receiving first and second data items to be processed by the functional unit, first and second banks of memory tables, a combinational logic circuit, and a decoder. The first and second banks of memory tables are in communication with the first source register, and each of the tables is indexed by an index comprising a portion of the first data item received by the first source register. Each index points to a lookup result in a respective one of the memory tables. The combinational logic circuit is in communication with the first and second banks of memory tables and the second source register, receives the lookup results, and processes the lookup results and the second data item in the second source register to produce a result data item. The decoder circuit is in communication with the combinational logic circuit, and extracts an operational code from an instruction supplied to the functional unit, decodes the operational code, and controls the combinational logic circuit in accordance with the operational code.

    摘要翻译: 提供了一种用于微处理器的功能单元,其允许在微处理器中的快速,并行数据读取,写入和操作操作,其对于诸如密码学的许多软件应用是有用的。 功能单元包括用于接收要由功能单元处理的第一和第二数据项的第一和第二源寄存器,存储器表的第一和第二组,组合逻辑电路和解码器。 第一和第二存储表组与第一源寄存器通信,并且每个表由包括由第一源寄存器接收的第一数据项的一部分的索引索引。 每个索引指向相应的一个存储器表中的查找结果。 组合逻辑电路与第一和第二组存储器表和第二源寄存器通信,接收查找结果,并处理第二源寄存器中的查找结果和第二数据项以产生结果数据项。 解码器电路与组合逻辑电路通信,并从提供给功能单元的指令中提取操作码,解码操作码,并根据操作码控制组合逻辑电路。

    Variable reordering (Mux) instructions for parallel table lookups from registers
    4.
    发明授权
    Variable reordering (Mux) instructions for parallel table lookups from registers 失效
    来自寄存器的并行表查找的可变重排序(Mux)指令

    公开(公告)号:US07424597B2

    公开(公告)日:2008-09-09

    申请号:US10403785

    申请日:2003-03-31

    IPC分类号: G06F9/312 G06F9/315

    CPC分类号: G06F9/30032 G06F9/3004

    摘要: Parallel table lookups are implemented using variable Mux instructions to reorder data. Table data can be represented in a “table” register, while the desired ordering can be represented in an “Index” register. A direct variable Mux instruction can specify the table register and the index register as arguments, along with a result register. The instruction writes at least some of the data from the table register into the result register as specified in the index register. If the entire table cannot fit within a single register, entries can be divided between two or more table registers. An indirect variable Mux instruction can specify both a table-register-select register and a subword-location-select register. Both the direct and indirect Mux instructions can be used with entry data that is divided in accordance with significance between registers. In that case, plural Mux instructions are used with UnPack instructions that concatenate portions of the table entries.

    摘要翻译: 使用变量Mux指令实现并行表查找,以重新排序数据。 表数据可以在“表”寄存器中表示,而所需的顺序可以在“索引”寄存器中表示。 直接变量Mux指令可以指定表寄存器和索引寄存器作为参数,以及结果寄存器。 该指令将表寄存器中的至少一些数据写入索引寄存器中指定的结果寄存器。 如果整个表不能放在单个寄存器中,则可以在两个或多个表寄存器之间划分条目。 间接变量Mux指令可以指定表寄存器选择寄存器和子字选择寄存器。 直接和间接MUX指令都可以与根据寄存器之间的重要性划分的条目数据一起使用。 在这种情况下,多个Mux指令用于连接表项部分的UnPack指令。

    Method and system for performing permutations using permutation instructions based on butterfly networks
    5.
    发明授权
    Method and system for performing permutations using permutation instructions based on butterfly networks 有权
    使用基于蝴蝶网络的置换指令进行排列的方法和系统

    公开(公告)号:US06922472B2

    公开(公告)日:2005-07-26

    申请号:US09850237

    申请日:2001-05-07

    摘要: The present invention provides permutation instructions which can be used in software executed in a programmable processor for solving permutation problems in cryptography, multimedia and other applications. The permute instructions are based on a Benes network comprising two butterfly networks of the same size connected back-to-back. Intermediate sequences of bits are defined that an initial sequence of bits from a source register are transformed into. Each intermediate sequence of bits is used as input to a subsequent permutation instruction. Permutation instructions are determined for permitting the initial source sequence of bits into one or more intermediate sequence of bits until a desired sequence is obtained. The intermediate sequences of bits are determined by configuration bits. The permutation instructions form a permutation instruction sequence of at least one instruction. At most 21 gr/m permutation instructions are used in the permutation instruction sequence, where r is the number of k-bit subwords to be permuted, and m is the number of network stages executed in one instruction. The permutation instructions can be used to permute k-bit subwords packed into an n-bit word, where k can be 1, 2, . . . , or n bits, and k*r=n.

    摘要翻译: 本发明提供了可用于在可编程处理器中执行的用于解密密码学,多媒体和其他应用中的置换问题的软件中的置换指令。 该置换指令是基于一个Benes网络,它包括两个背对背连接的相同尺寸的蝴蝶网络。 定义位的中间序列,来自源寄存器的初始位序列被转换成。 每个中间位数序列用作后续排列指令的输入。 确定置换指令,以允许位的初始源序列到一个或多个中间比特序列,直到获得所需的序列。 位的中间序列由配置位确定。 置换指令形成至少一个指令的置换指令序列。 在排列指令序列中使用最多21个字节/ m的置换指令,其中r是要置换的k位子字的数量,m是在一个指令中执行的网络级数。 置换指令可用于置换打包成n位字的k位子词,其中k可以是1,2。 。 。 ,或n位,并且k * r = n。

    Processor for performing subword permutations and combinations
    6.
    发明授权
    Processor for performing subword permutations and combinations 失效
    用于执行子字排列和组合的处理器

    公开(公告)号:US06381690B1

    公开(公告)日:2002-04-30

    申请号:US08509867

    申请日:1995-08-01

    申请人: Ruby B. Lee

    发明人: Ruby B. Lee

    IPC分类号: G06F9315

    摘要: An apparatus for operating on the contents of an input register to generate the contents of an output register which contains a permutation, with or without repetitions, or a combination of the contents of the input register. The apparatus partitions the input register into a plurality of sub-words, each sub-word being characterized by a location in the input register and a length greater than one bit. In response to an instruction specifying a rearrangement of the input register, the present invention directs at least one of the sub-words in the input register to a location in the output register that differs from the location occupied by the sub-word in the input register. The ordering of the sub-words in the output register differ from the order obtainable by a single shift instruction. In the preferred embodiment of the present invention, the invention is implemented by modifying a conventional shifter comprising a plurality of layers of multiplexers. The modification comprises independently setting the control signals for at least one of the multiplexers in at least one of the layers.

    摘要翻译: 一种用于对输入寄存器的内容进行操作以产生包含有或没有重复的排列或输入寄存器的内容的组合的输出寄存器的内容的装置。 该设备将输入寄存器分割为多个子字,每个子字的特征在于输入寄存器中的一个位置,长度大于一位。 响应于指定输入寄存器的重排的指令,本发明将输入寄存器中的至少一个子字引导到输出寄存器中与输入中的子字占据的位置不同的位置 寄存器。 输出寄存器中的子字的排序与通过单个移位指令可获得的顺序不同。 在本发明的优选实施例中,本发明通过修改包括多层复用器的常规移位器来实现。 修改包括独立地设置至少一个层中的多路复用器中的至少一个的控制信号。

    Maximal length immediates with fixed sign position
    7.
    发明授权
    Maximal length immediates with fixed sign position 失效
    最大长度与固定符号位置相似

    公开(公告)号:US4829424A

    公开(公告)日:1989-05-09

    申请号:US750576

    申请日:1985-06-28

    申请人: Ruby B. Lee

    发明人: Ruby B. Lee

    摘要: A computer instruction set is presented in accordance with the preferred embodiment of the present invention. Some instructions within the instruction set have immediate fields which are allowed to vary in length and fill up all unused bit positions in the instructions. A sign bit is in a fixed location for instructions within the instruction set. For example, the sign bit may be right justified with respect to the immediate field, that is the sign bit is put in the least significant (rightmost) bit position. This allows time-critical suboperations to proceed without waiting for the value of the sign bit to be located and decoded.

    摘要翻译: 根据本发明的优选实施例呈现计算机指令集。 指令集中的某些指令具有允许长度变化并填充指令中的所有未使用位位置的立即字段。 符号位在指令集内的指令的固定位置。 例如,符号位可能相对于立即字段右对齐,即符号位置于最低有效位(最右侧)位。 这允许在不等待符号位的值被定位和解码的情况下进行时间关键的子波。

    HARDWARE TRUST ANCHORS IN SP-ENABLED PROCESSORS
    8.
    发明申请
    HARDWARE TRUST ANCHORS IN SP-ENABLED PROCESSORS 有权
    SP-ENABLED PROCESSORS中的硬件信任锚

    公开(公告)号:US20100042824A1

    公开(公告)日:2010-02-18

    申请号:US12541823

    申请日:2009-08-14

    IPC分类号: G06F12/14 G06F9/24 H04L9/32

    摘要: A trust system and method is disclosed for use in computing devices, particularly portable devices, in which a central Authority shares secrets and sensitive data with users of the respective devices. The central Authority maintains control over how and when shared secrets and data are used. In one embodiment, the secrets and data are protected by hardware-rooted encryption and cryptographic hashing, and can be stored securely in untrusted storage. The problem of transient trust and revocation of data is reduced to that of secure key management and keeping a runtime check of the integrity of the secure storage areas containing these keys (and other secrets). These hardware-protected keys and other secrets can further protect the confidentiality and/or integrity of any amount of other information of arbitrary size (e.g., files, programs, data) by the use of strong encryption and/or keyed-hashing, respectively. In addition to secrets the Authority owns, the system provides access to third party secrets from the computing devices. In one embodiment, the hardware-rooted encryption and hashing each use a single hardware register fabricated as part of the computing device's processor or System-on-Chip (SoC) and protected from external probing. The secret data is protected while in the device even during operating system malfunctions and becomes non-accessible from storage according to various rules, one of the rules being the passage of a certain time period. The use of the keys (or other secrets) can be bound to security policies that cannot be separated from the keys (or other secrets). The Authority is also able to establish remote trust and secure communications to the devices after deployment in the field using a special tamper-resistant hardware register in the device, to enable, disable or update the keys or secrets stored securely by the device.

    摘要翻译: 公开了用于计算设备,特别是便携式设备的信任系统和方法,其中中央机构与相应设备的用户共享秘密和敏感数据。 中央管理局保持对如何和何时使用共享的秘密和数据的控制。 在一个实施例中,秘密和数据由硬件加密和加密散列保护,并且可以安全地存储在不可信存储中。 数据的瞬时信任和撤销的问题减少到安全密钥管理的问题,并保持包含这些密钥(和其他秘密)的安全存储区域的完整性的运行时检查。 这些硬件保护密钥和其他秘密可以分别通过使用强加密和/或键控散列来进一步保护任意大小的任何数量的其他信息(例如,文件,程序,数据)的机密性和/或完整性。 除了管理局拥有的秘密外,系统还提供从计算设备访问第三方秘密。 在一个实施例中,基于硬件的加密和散列各自使用作为计算设备的处理器或片上系统(SoC)的一部分制造的单个硬件寄存器,并且不受外部探测。 秘密数据在设备中受到保护,即使在操作系统故障期间,根据各种规则也不能从存储器访问,其中一个规则是经过一段时间。 密钥(或其他秘密)的使用可以绑定到不能与密钥(或其他秘密)分离的安全策略。 管理局还能够使用设备中的特殊防篡改硬件寄存器,在现场部署之后,向设备建立远程信任和安全通信,以启用,禁用或更新设备安全存储的密钥或秘密。

    Method and system for performing subword permutation instructions for use in two-dimensional multimedia processing

    公开(公告)号:US07092526B2

    公开(公告)日:2006-08-15

    申请号:US09850380

    申请日:2001-05-07

    申请人: Ruby B. Lee

    发明人: Ruby B. Lee

    IPC分类号: H04K1/04 G06F7/32 G06F15/00

    摘要: The method and system provides a set of permutation primitives for current and future 2-D multimedia programs which are based on decomposing images and objects into atomic units, then finding the permutations desired for the atomic units. The subword permutation instructions for these 2-D building blocks are also defined for larger subword sizes at successively higher hierarchical levels. The atomic unit can be a 2×2 matrix and four triangles contained within the 2×2 matrix. Each of the elements in the matrix can represent a subword of one or more bits. The permutations provide vertical, horizontal, diagonal, rotational, and other rearrangements of the elements in the atomic unit.

    Computer multiply instruction with a subresult selection option
    10.
    发明授权
    Computer multiply instruction with a subresult selection option 失效
    具有子选择选项的计算机乘法指令

    公开(公告)号:US5579253A

    公开(公告)日:1996-11-26

    申请号:US300609

    申请日:1994-09-02

    IPC分类号: G06F7/52

    CPC分类号: G06F7/523

    摘要: A N-bit by N-bit multiplication apparatus having the ability to select a part of the multiplication result for storage into a result register N-bits wide. A first embodiment of the invention allows a sequence of n-bits from the N-bit by N-bit multiply result to be stored into an N-bit wide register. N+1 to 1 multiplexors are utilized to select which of the multiply result bits are stored into the result register in response to a computer instruction. The second preferred embodiment utilizes multiplexors having fewer than N+1 inputs to select discrete subsets of the multiply result bits for storage into the N-bit wide result register. In this manner, less complex multiplexors are required which take less chip area to implement. The third preferred embodiment utilizes multiple sets of multiplexors to select multiple subresults generated by a parallel multiplication operation. The multiple subresults are stored in a single result register. By allowing subresults to be selected and stored as part of the multiply operation, a multiply apparatus according to the present invention is more time and instruction efficient than prior art devices.

    摘要翻译: 具有能够选择一部分相乘结果以存储到结果寄存器N位宽的N位乘N位乘法装置。 本发明的第一实施例允许将来自N位乘以N位乘法结果的n位序列存储到N位宽寄存器中。 N + 1到1个多路复用器用于响应于计算机指令来选择哪个乘法结果位被存储到结果寄存器中。 第二优选实施例利用具有少于N + 1个输入的多路复用器来选择用于存储到N位宽结果寄存器中的乘法结果位的离散子集。 以这种方式,需要较少复杂的多路复用器,其占用较少的芯片面积来实现。 第三优选实施例利用多组复用器来选择由并行乘法运算产生的多个子结果。 多个子结果存储在单个结果寄存器中。 通过允许将子结果作为乘法运算的一部分被选择和存储,根据本发明的乘法装置比现有技术的装置具有更多的时间和指令效率。