摘要:
A method, apparatus and system for multiplying a matrix by a vector, for example, video interpolation (other applications are contemplated). The matrix may be a representation of a large and sparse system of linear equations. The large and sparse system of linear equations may be used to estimate motion between frames of a video file for converting frame rates. The vector may be a first estimation of a solution to the system of linear equations. The matrix may be multiplied by elements of the vector in an order different from the order in which the elements are arranged in the vector. Elements in the vector may be multiplied in parallel. A second vector estimation of the solution to a system of linear equations may be a product of the multiplying. The solution to the system of linear equations may be set, for example, when the first and second vector estimations differ by less than a predetermined amount. Other embodiments are described and claimed.
摘要:
In this invention we describe a novel approach for speeding up the computations of characteristic 2 elliptic curve cryptography. Using a projective space such as the Lopez-Dahab space for representing point coordinates we accelerate point additions and point doublings by introducing a novel way for multiply elements in finite fields of the form GF(2 m ). Our technique uses a CPU instruction for carry-less multiplication (GFMUL) and single iteration Karatsub a-like formulae for computing the carry-less product of large degree polynomials in GF(2 m ). It then performs the reduction of the carry-less product of these polynomials by taking into account the fact that many curves specify fields with irreducible polynomials which are sparse. For example NIST curves specify polynomials with either three terms (trinomials) or five terms (pentanomials). We demonstrate results from a prototype implementation showing that our technique speeds up Elliptic Curve Diffie Hellman based on the NIST B-233 curve by 55% in software on a 3.6 GHz Pentium 4 processor. If a 3 clock latency GFMUL instruction is introduced to the CPU then the acceleration factor becomes 5.2X. We also show that further software optimizations have the potential to further increase the speedup beyond 10x.
摘要:
The Advanced Encryption Standard (AES) is defined by FIPS Publication #197 (2001). From the cryptographic perspective, AES is widely believed to be secure and efficient, and is therefore broadly accepted as the standard for both government and industry applications. If fact, almost any new protocol requiring symmetric encryption supports AES, and many existing systems that were originally designed with other symmetric encryption algorithms are being converted to AES. Given the popularity of AES and its expected long term importance, improving AES performance arid security has significant benefits for the PC client and server platforms. A new set of instructions is introduced into the next generation of processors family, starting from the processor called Westmere. The new architecture has six instructions: four instructions (AESENC, AESENCLAST, AESDEC, and AESDELAST facilitate high performance AES encryption and decryption, and the other two (AESIMC and AESKEYGENASSIST) support the AES key expansion. In addition, all six instructions are promoted to a non-destructive destination version (namely VAESENC, VAESENCLAST, VAESDEC, VAESDELAST, VAESIMC, and VAESKEYGENASSIST. Together, these instructions provide full hardware support for AES, offering high performance, enhanced security, and a great deal of software usage flexibility. The new AES instructions can support AES encryption and decryption with each one of the standard key lengths (128,192, and 256 bits), using the standard block size of 128 bits (and potentially also other block sizes for generalized variants such as the RIJNDAEL algorithms). They are well suited to all common uses of AES, including bulk encryption/decryption using cipher modes such as ECB, CBC and CM, data authentication using CBC-MACs, random number generation using algorithms such as CTR-DPBG, and authenticated encryption using modes such as GCM.
摘要:
In this invention we describe a novel approach for speeding up the computations of characteristic 2 elliptic curve cryptography. Using a projective space such as the Lopez-Dahab space for representing point coordinates we accelerate point additions and point doublings by introducing a novel way for multiply elements in finite fields of the form GF(2 m ). Our technique uses a CPU instruction for carry-less multiplication (GFMUL) and single iteration Karatsub a-like formulae for computing the carry-less product of large degree polynomials in GF(2 m ). It then performs the reduction of the carry-less product of these polynomials by taking into account the fact that many curves specify fields with irreducible polynomials which are sparse. For example NIST curves specify polynomials with either three terms (trinomials) or five terms (pentanomials). We demonstrate results from a prototype implementation showing that our technique speeds up Elliptic Curve Diffie Hellman based on the NIST B-233 curve by 55% in software on a 3.6 GHz Pentium 4 processor. If a 3 clock latency GFMUL instruction is introduced to the CPU then the acceleration factor becomes 5.2X. We also show that further software optimizations have the potential to further increase the speedup beyond 10x.
摘要:
Methods and devices for use with the advanced encryption standard (AES) are presented including a processor comprising a decode unit to decode a single round encryption instruction to perform an AES single round encryption operation, wherein the single round encryption instruction specifies a destination register to store 128-bit input data and a source register to store a 128-bit round key; and an execution unit to execute micro-operations based on the single round encryption instruction, wherein the execution unit is to receive the 128-bit input data and the 128-bit round key, and wherein the execution unit is to perform the AES single round encryption operation on the 128-bit input data using the round key and to store 128-bit result data in the destination register.
摘要:
The Advanced Encryption Standard (AES) is defined by FIPS Publication #197 (2001). From the cryptographic perspective, AES is widely believed to be secure and efficient, and is therefore broadly accepted as the standard for both government and industry applications. If fact, almost any new protocol requiring symmetric encryption supports AES, and many existing systems that were originally designed with other symmetric encryption algorithms are being converted to AES. Given the popularity of AES and its expected long term importance, improving AES performance and security has significant benefits for the PC client and server platforms. A new set of instructions is introduced into the next generation of processors family, starting from the processor called Westmere. The new architecture has six instructions: four instructions (AESENC, AESENCLAST, AESDEC, and AESDELAST facilitate high performance AES encryption and decryption, and the other two (AESIMC and AESKEYGENASSIST) support the AES key expansion. In addition, all six instructions are promoted to a non-destructive destination version (namely VAESENC, VAESENCLAST, VAESDEC, VAESDELAST, VAESIMC, and VAESKEYGENASSIST. Together, these instructions provide full hardware support for AES, offering high performance, enhanced security, and a great deal of software usage flexibility. The new AES instructions can support AES encryption and decryption with each one of the standard key lengths (128, 192, and 256 bits), using the standard block size of 128 bits (and potentially also other block sizes for generalized variants such as the RIJNDAEL algorithms). They are well suited to all common uses of AES, including bulk encryption/decryption using cipher modes such as ECB, CBC and CM, data authentication using CBC-MACs, random number generation using algorithms such as CTR-DPBG, and authenticated encryption using modes such as GCM.