IP Library Granted Patent US 8,122,190
Granted Patent B1
US 8,122,190 · App. 12/457,042 · Granted Feb 21, 2012

Method and system for reconfigurable memory-based permutation implementation

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,122,190
App. No.
12/457,042
Granted
Feb 21, 2012
Kind
B1
Abstract

Memory-based permutation methods and systems are provided for the permutation of data. The memory-based permutation methods and systems provide flexibility and reconfigurability while reducing size and increasing speed. They provide the ability to program a memory, such as a Random Access Memory (RAM), to implement a permutation of source data. The RAM may be reprogrammed to change the permutation pattern thereby providing the flexibility to implement any pattern of permutation from source data to output data and the reconfigurability to change that implementation as desired. Also, the size of the RAM is greatly reduced, and as the input and output data width and number of input and output data bits increase, the size and complexity of the RAM does not increase greatly or exponentially, as with typical conventional systems.

Claims (37)

1. A reconfigurable memory-based permuter, comprising:

an input configured to receive source data to be permuted;

a memory configured to store permutation data indicating a permutation to perform on the received source data, wherein the memory has address lines, and the source data is supplied to the address lines of the memory; and

an output configured to output permuted output data resulting from permuting the source data according to the stored permutation data.

2. The permuter of claim 1 , wherein the memory is a Random Access Memory (RAM).

3. The permuter of claim 1 , wherein the source data supplied to the address lines accesses memory locations having permutation data, and the permutation data is sent to the output.

4. The permuter of claim 1 , wherein the source data is supplied to the address lines serially.

5. The permuter of claim 4 , further comprising a shift register receiving the source data, and a shift register counter counting the source data as the source data is input to the address lines of the memory.

6. The permuter of claim 1 , wherein the output comprises output registers, and the permutation data is output the output registers.

7. The permuter of claim 1 , wherein the permuter operates in conjunction with an encryption engine.

8. The permuter of claim 7 , wherein the permuter is in an encryption engine.

9. A reconfigurable memory-based permuter, comprising:

an input configured to receive source data to be permuted;

a memory configured to store permutation data indicating a permutation to perform on the received source data; and

an output configured to output permuted output data resulting from permuting the source data according to the stored permutation data wherein the output comprises output registers, and the permutation data is output to the output registers, and

wherein the output registers are binary and set to 1 upon receiving a 1 from the permutation data.

10. A reconfigurable memory-based permuter, comprising:

an input configured to receive source data to be permuted;

a memory configured to store permutation data indicating a permutation to perform on the received source data, wherein the permutation data is loaded into the memory from a permutation table; and

an output configured to output permuted output data resulting from permuting the source data according to the stored permutation data.

11. A method in a reconfigurable memory-based permuter, comprising:

receiving source data to be permuted;

storing permutation data in a memory, the permutation data indicating a permutation to perform on the received source data;

inputting the source data into the memory storing the permutation data; and

outputting permuted output data resulting from permuting the source data according to the stored permutation data; and

inputting the source data to the memory to address a location of the permutation data; and outputting the located permutation data to an output.

12. The method of claim 11 , wherein the memory is a Random Access Memory (RAM).

13. The method of claim 11 , further comprising outputting the permuted output data to an encryption engine.

14. A method in a reconfigurable parallel memory-based permuter, comprising:

receiving source data to be permuted;

dividing the received source data into multiple portions of the source data;

storing permutation data in multiple memories, the permutation data indicating a permutation to perform on the received source data;

providing each of the multiple portions of source data to one of multiple memories, each memory configured to store permutation data indicating a permutation to perform on the received portion of source data;

outputting from each memory the permutation data corresponding to the input portion of source data;

combining the outputted permutation data from each memory; and

outputting the combined permutation data.

15. The method of claim 14 , wherein the memories are RAMs.

Assignments (3)
MERGER Recorded Jul 1, 2016
From: EXELIS INC.
To: HARRIS CORPORATION
Reel/Frame 039362/0534 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2012
From: ITT MANUFACTURING ENTERPRISES LLC (FORMERLY KNOWN AS ITT MANUFACTURING ENTERPRISES, INC.)
To: EXELIS INC.
Reel/Frame 027584/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2009
From: DOI, BRYAN
To: ITT MANUFACTURING ENTERPRISES, INC.
Reel/Frame 022896/0088 →