A digital system designed to both encrypt any arbitrary binary input data string (IFDS) of a first size in term of number of bits that is larger than a minimum size into an output file, and to decrypt said output file back into said IFDS, implemented In hardware using hardware blocks of specialized functionality that are self-contained within said digital system, with said implementation integrated in a hardware system based application of broad functionality that requires said data encryption/decryption, and with said implementation being assigned a unique implementation ID, comprising:
- a first said hardware block known as standard allocation memory (SAM), of a first number of storage locations each being of a first number of bits, storing standard allocation content that never changes;
- said SAM is organized in a number of storage banks, comprising:
- each said bank is allocated for a value of a variable known as variable m with said value being between one and a maximum value greater or equal to one;
- and
- each said bank is allocated a second number of said storage locations that is divided between a first number of partitions, with said first number of partitions being the same for every said bank, comprising:
- a first partition of a third number of said storage locations, storing a set of processing strings (PS), wherein:
- each of said PS is unique, comprising a number of bits of a unique sequence;
- and
- said set of PS is organized in a number of PS classes comprising a finite number of said PS with no two said PS classes having said PS of a same number of bits;
- each of said unique sequence comprising one of the following:
- a first unique sequence comprising of two or more consecutive groups of bits that alternate between 0 logic type and 1 logic type with each of said groups of bits being of a number of bits of one, two, or three bits of same said type and with a last said group in said unique sequence, called delimiter, being of four bits of same said type, in which by adding all said number of bits of all said groups in said unique sequence, a total number of bits that is smaller or equal to a first maximum number that is specific to said bank, is allowed;
- a second unique sequence comprising of two or more groups of bits that alternate between 0 logic type and 1 logic type with each of said group of bits being of a number of bits of one, two, or three bits of same said type, wherein by adding all said number of bits of all said groups in said unique sequence, a total number of bits that is equal to said first maximum number that is specific to said bank minus one, or minus two, or minus three, is allowed;
- and
- a third unique sequence comprising a single group of bits of either 0 logic type or 1 logic type, with said single group being of a number of bits greater or equal to four;
- wherein said first maximum number of bits is assigned to be directly proportional to said value of said variable m;
- a second partition of a fourth number of said storage locations, storing a set of primary root identifiers (RI);
- a third partition of a fifth number of said storage locations, storing a set of detail, wherein:
- each said RI having a number of bits of a unique sequence, and each said detail has a number of bits;
- each said unique PS is transformed, with said transformation comprising a unique said RI followed by a said detail, with said number of bits of said RI plus said number of bits of said detail being equal to said number of bits of said PS;
- a number of said RI is developed for each of said PS classes;
- said set of RI comprising all said RI of all said PS classes, and is organized in a number of RI classes comprising a finite number of said RI with no two said RI classes having said RI of a same number of bits;
- and
- said set of detail comprising all said detail of all said PS, and is organized in a number of detail classes comprising a finite number of said detail with no two said detail classes having said detail of a same number of bits;
- a fourth partition of a sixth number of said storage locations, storing said transformation of every PS into said unique RI and said detail;
- a fifth partition of a seventh number of said storage locations, storing a set of said Ri pairs, wherein:
- every said RI pair is formed by putting together twosaid unique RI, with each of said RI pair comprising a number of bits of a unique sequence;
- said set of RI pairs is organized in a number of RI pair classes comprising a finite number of said RI pairs with no two said RI pair classes having said RI pairs of same number of bits;
- and
- each said RI pair comprising a unique root identifier for said RI pair known as RI2 followed by an alternative, with the number of bits of said RI2 plus the number of bits of said alternative being equal to said number of bits of said RI pair;
- a sixth partition of an eighth number of said storage locations, storing a set of said RI2, wherein:
- a number of unique said RI2 is developed for each of said RI pair class;
- said set of RI2 comprising all said RI2 of all said RI pair classes, and is organized in a number of RI2 classes comprising a finite number of said RI2 with no two said RI2 classes having said RI2 of a same number of bits;
- a seventh partition of a ninth number of said storage locations, storing a set of said alternatives, wherein:
- said set of alternatives comprising all said alternatives for all said RI pairs, and is organized in a number of alternatives classes comprising a finite number of said alternatives with no two said alternatives classes having said alternatives of a same number of bits;
- and
- an eighth partition of a tenth number of said storage locations, storing, for each said RI pair, said unique RI2 and said alternative;
- with said RI, detail, RI pair, RI2, alternatives, aggregately being called binary constructs, said RI classes, detail classes, RI pair classes, RI2 classes, alternatives classes, aggregately being called classes, and said set of RI, set of detail, set of RI pair, set of RI2, set of alternatives, aggregately being called sets;
- a second said hardware block known as operational memory (OM), storing one of said banks copied from said SAM and modified for encryption/decryption, wherein:
- said bank is first modified by permutating said binary constructs of one or more of said classes of one or more of said second, third, fifth, sixth, and seventh partitions of said bank, comprising:
- reading said binary constructs of said class and creating an order log of said storage location of each said binary construct;
- applying permutations among said read binary constructs of said class;
- and
- writing back said permutated binary constructs of said class at same said storage locations as in said storage location order log, such that when same storage location of a specific said binary construct of a said class is read from said SAM called first read and from said OM called second read:
- a said first read to a said second read correspondence is the encryption of said specific binary construct;
- and
- a said second read to a said first read correspondence is the decryption of said specific binary construct;
- said bank is second modified by updating said binary constructs from said fourth partition with said first modified binary constructs of said second and third partitions, and by updating said binary constructs from said eighth partition with said first modified binary constructs of said sixth and seventh partitions, comprising:
- reading every said RI and detail of said fourth partition;
- updating said fourth partition by using a said first read to said second read correspondence in said second partition for every said read RI, and in said third partition for every said read detail, with said updated fourth partition storing encrypted said RI and detail;
- reading every said RI2 and alternative of said eighth partition;
- and
- updating said eighth partition by using a said first read to said second read correspondence in said sixth partition for every said read RI2 and in said seventh partition for every said read alternative, with said updated eighth partition storing encrypted said RI2 and alternative;
- and
- a third said hardware block, known as specialized controller (SC) of specialized functionality, comprising:
- a first group of said specialized functionality, applicable to both encryption and decryption, comprising:
- a first said encryption/decryption functionality of interpreting an encryption/decryption key of a total number of bits, with said interpreting being used for said copying a said bank from said SAM into said OM, and for said modifying said copied bank in said OM for encryption/decryption, comprising:
- a first number of bits of said total number of bits of said encryption/decryption key is specifying a said value of said variable m, i.e. is specifying said bank copied from said SAM into said OM and used for encryption/decryption;
- a second number of bits of said total number of bits of said encryption/decryption key is specifying one or more of said partitions that are being modified within said OM bank;
- a third number of bits of said total number of bits of said encryption/decryption key is specifying one or more of said classes that are being modified within each of said specified partitions;
- and
- a fourth number of bits of said total number of bits of said encryption/decryption key is specifying within each of said specified classes, permutations that are performed among said binary constructs of said class;
- a second group of said specialized functionality, applicable to encryption only, producing one or more levels of encryption hierarchy, comprising:
- a first said encryption functionality of fully and uniquely partitioning said IFDS in term of said PS that are defined in accordance to said variable m for said OM bank, by accessing said first partition and recognizing a said PS in said IFDS, and such creating a series of consecutive PS that occur in said IFDS, with every said consecutive PS receiving a first order number alternating as either odd or even with a first PS in said IFDS being odd, and such creating a first level of encryption hierarchy comprising in encrypting said PS in accordance to said specified bank;
- a second said encryption functionality of transforming every said consecutive PS immediately as it is said partitioned in accordance to said first encryption functionality, said transforming being into corresponding said RI and said detail by accessing said fourth partition for each said consecutive PS, with said corresponding RI and detail receiving same first order number as said consecutive PS, with said transformation being in accordance to said first read to said second read correspondence of said fourth partition, creating a second level of encryption hierarchy comprising in encrypting said RI and said detail that uses said first level of encryption hierarchy represented by said encrypted PS;
- a third said encryption functionality of creating said RI pairs out of said encrypted RI of every two said odd and even consecutive PS in said IFDS immediately as they are said transformed in accordance to said second encryption functionality, with said detail of said two RI in said RI pair creating a detail pair attached to said RI pair and with each detail preserving said first order number, and with said RI pair further accessing said fifth partition in accordance to said first read to said second read correspondence, creating a third level of encryption hierarchy consisting in encrypting said RI pairs that use said second level of encryption represented by said encrypted RI;
- a fourth said encryption functionality of assigning to every said RI pair, immediately as it is created by said third encryption functionality, a said RI2 and a said alternative, by accessing said eighth partition for said RI pair, with said RI2 and alternative assignment being in accordance to said first read to said second read correspondence of said eighth partition, creating a fourth level of encryption hierarchy comprising in encrypting said RI2 and said alternatives that use said third level of encryption represented by said encrypted RI pairs;
- wherein said minimum size of said IFDS comprising said number of bits of two as said odd and even PS;
- a fifth said encryption functionality of generating an output file representing said encrypted IFDS, by writing, immediately as said RI2 and alternative are said assigned in accordance of said fourth encryption functionality, said RI2 and alternative followed by said detail pair, for every said odd and even sequential PS for all said IFDS;
- and
- a sixth said encryption functionality comprising calling that an encryption cycle is completed once said output file is generated, writing said implementation ID in said output file, and erasing said OM;
- and
- a third group of said specialized functionality, applicable to decryption only, decrypting one or more levels of encryption hierarchy, comprising:
- a first said decryption functionality of decrypting said fourth level of encryption hierarchy, comprising:
- locating in said output file said RI2 and alternative by accessing said eighth partition in said OM;
- and
- decrypting said located RI2 and alternative in accordance to said second read to said first read correspondence of said eighth partition;
- a second said decryption functionality of decrypting said third level of encryption hierarchy, comprising:
- restoring a said RI pair by accessing said fifth partition in said OM using said decrypted RI2 and alternative;
- decrypting said restored RI pair in accordance to said second read to said first read correspondence of said fifth partition;
- and
- assigning an odd order number to first RI in said decrypted Ri pair, and an even order number to second RI in said decrypted RI pair;
- a third said decryption functionality of decrypting said second level of encryption hierarchy, comprising:
- matching said odd number RI in said decrypted RI pair to said odd number detail of said detail pair created during said third encryption functionality by accessing said fourth partition of said OM, and similarly matching said even RI with said even detail;
- and
- decrypting said matched odd RI-detail and said even RI-detail in accordance to said second read to said first read correspondence of said second and third partitions, with said decrypted RI and detail preserving said preserving said odd and even numbers;
- and
- a fourth said decryption functionality of decrypting said first level of encryption hierarchy and generating said decrypted IFDS, comprising:
- restoring every PS In said IFDS in accordance to said variable m represented by said OM bank by matching said odd respectively even decrypted RI-detail with an odd respectively even PS by accessing said first partition;
- generating said IFDS by writing in said IFDS every said restored odd respectively even PS, in odd followed by even order, for all said output file;
- and
- calling that a decryption cycle is completed once said IFDS is generated, and erasing said OM.