A system for the encryption and decryption of data employing dual ported RAM to accelerate data processing operations during the computation of the encryption and decryption algorithm. The system includes logic to track data changes in the dual ported memory for fast table initialization; a means to accelerate operations by performing read/write operations in different iterations of the algorithm to separate ports on the dual ported RAM in the same clock cycle; and a means to resolve data manipulation conflicts between out of order read/write operations so that the system correctly computes the desired algorithm.
A method and apparatus for encrypting information. In one embodiment, a method for encrypting information includes obtaining a value A from an array having a plurality of values and determining a value B based on the value A in a first pipeline stage. In a second pipeline stage, a value V may be determined from the value A and the value B. The value V may then be exclusive ORed (XORed) with a data value that forms a portion of the information being encrypted. A first logic unit may include the first pipeline stage, while a second logic unit may include the second pipeline stage. The array may be stored in a plurality of flip-flops in one embodiment, or may be stored in one or more register files in a second embodiment. The method and apparatus may be used for decrypting information as well.
Methods, apparatuses and systems for populating a data structure. The data structure may be established in a memory unit and may have a total number of N slots for entries. In this case, N is defined as an integer representing the total number of slots in the data structure, and N is further expressible as a power of two with an integer exponent x. Entries may then be stored into L slots of the data structure, with L being defined as an integer representing a number of slots that contain entries. To produce an index value, x bits of a binary representation of L may be swapped. A new data entry is then stored into an entry of the data structure represented by the index value.
We propose a multi user information theoretically secure scheme. Our scheme allows any two parties in a multi user system to exchange messages securely using encryption, and to sign messages. Our scheme achieves a significant saving in the number of total keys in the system and in the keys each user must store. The encryption, and signing algorithms proposed in the scheme are as efficient as possible. Our scheme is designed so that it is possible to easily and efficiently revoke and add membership of new users into the system. It is also designed so that authentication and security against man in the middle attacks can be added at low cost. In addition, we introduce a novel and efficient way to use steganography for key replenishment.