Method and apparatus for encrypting and decrypting data
Abstract
A method and system is disclosed for encrypting and decrypting data, with decryption contingent upon user-defined conditions being met. The encryption process comprises a method for using pointers to indicate the locations and sizes of encryption components, utilizing randomly determined patterns to be used for a random number of characters of text data being encrypted. For each randomly determined block of text, a randomly determined pattern is selected, which specifies how to combine the encryption components, including the shuffled and encrypted text, and references to that block's seed key, the size and composition of which are randomly determined. Decryption comprises of a methodology for reversing the process to decode encrypted text, iteratively extracting the decryption components in accordance with the pattern indicator identified for each block of encrypted text, as determined by the pointers, and dependent upon satisfying all user-defined conditions necessary to enable decryption.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A computer-implemented method of encrypting data, comprising:
obtaining plaintext; generating multiple random seed keys; obtaining a user-defined password; generating a plurality of encrypted blocks, wherein each of the plurality of encrypted blocks includes a randomly generated key, a randomly generated pattern indicator, a pattern indicator pointer, and an end pointer; and generating an encrypted chunk for each encrypted block of the plurality of encrypted blocks, wherein the encrypted chunk contains a portion of plaintext data that is converted to shuffle-transform encrypted text.
2 . The method of claim 1 , further comprising computing a checksum for the plurality of encrypted blocks.
3 . The method of claim 1 , wherein generating encryption parameters includes generating a pattern indicator representing a selection of one of many encryption patterns.
4 . The method of claim 3 , wherein generating encryption parameters includes generating a pattern indicator representing an encryption pattern to be used for generating one of the encrypted chunks.
5 . The method of claim 4 , wherein generating encryption parameters includes generating a key representing a symbol table transformation includes a symbol table reversal.
6 . The method of claim 1 , wherein generating encryption parameters includes generating a key representing a shuffle transform followed by a key cluster application.
7 . The method of claim 1 , further comprising:
generating conditional decrypt criteria; and
inserting the conditional decrypt criteria into a preamble, said preamble located in encrypted blocks.
8 . The method of claim 7 , wherein generating conditional decrypt criteria includes generating a time-before condition.
9 . The method of claim 7 , wherein generating conditional decrypt criteria includes generating a time-after condition.
10 . The method of claim 7 , wherein generating conditional decrypt criteria includes generating a GPS in-radius condition.
11 . The method of claim 7 , wherein generating conditional decrypt criteria includes generating a GPS out-radius condition.
12 . The method of claim 7 , wherein generating conditional decrypt criteria includes generating a GPS jurisdictional boundary condition.
13 . The method of claim 7 , wherein generating conditional decrypt criteria includes an entity specific identifier.
14 . The method of claim 1 , wherein generating an encrypted chunk for each encrypted block comprises:
selecting a split point of an ordered symbol table, forming a first ordered symbol table portion and a second ordered symbol table portion; reversing the second ordered symbol table portion; and interleaving the first ordered symbol table portion and second ordered symbol table portion to form a shuffled array.
15 . The method of claim 14 , wherein the password comprises a plurality of characters, and further comprising:
selecting a split point of the shuffled array based on each character of the password, forming a first shuffled array portion and a second shuffled array portion; reversing the second shuffled array portion; and interleaving the first ordered symbol table portion and second ordered symbol table portion to form a new shuffled array.
16 . The method of claim 14 , further comprising applying a key cluster operation to the shuffled array to form a new shuffled array.
17 . The method of claim 16 , wherein applying a key cluster operation comprises identifying a subset of characters in the shuffled array and concatenating the subset of characters to the beginning of the shuffled array to form the new shuffled array.
18 . The method of claim 16 , wherein applying a key cluster operation comprises identifying a subset of characters in the shuffled array and concatenating the subset of characters to the end of the shuffled array to form the new shuffled array.
19 . A computer program product embodied in a computer readable medium for implementation of a computer-implemented method of encrypting data comprising:
code for obtaining plaintext; code for generating multiple random seed keys; code for obtaining a user-defined password; code for generating a plurality of encrypted blocks utilizing the password, wherein each of the plurality of encrypted blocks includes a randomly generated key, a randomly generated pattern indicator, a pattern indicator pointer, an end pointer; and code for generating an encrypted chunk for each encrypted block of the plurality of encrypted blocks, wherein the encrypted chunk contains a portion of plaintext data that is converted to shuffle-transform encrypted text.
20 . A computer system for implementation of a data encryption apparatus comprising:
a memory which stores instructions; one or more processors coupled to the memory wherein the one or more processors are configured to:
obtain plaintext;
generate multiple random seed keys;
obtain a user-defined password;
generate a plurality of encrypted blocks utilizing the password, wherein each of the plurality of encrypted blocks includes a randomly generated key, a randomly generated pattern indicator, a pattern indicator pointer, an end pointer; and
generate an encrypted chunk for each encrypted block of the plurality of encrypted blocks, wherein the encrypted chunk contains a portion of plaintext data that is converted to shuffle-transform encrypted textJoin the waitlist — get patent alerts
Track US2017230175A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.