Exclusive encryption
First Claim
Patent Images
1. A computer-implemented method comprising:
- receiving an identifier;
generating, based on the identifier, a mapped identifier;
encoding the mapped identifier, wherein encoding the mapped identifier comprises;
reversing an order of characters in the mapped identifier;
removing, from the reversed mapped identifier, all trailing characters of a particular type;
initializing an identifier string with a string of one bits equal in number to a number of trailing characters removed from the reversed mapped identifier followed by a zero bit;
selecting a first character from the reversed mapped identifier;
encoding the first character using a first coding table;
modifying the identifier string by adding, to the identifier string, a series of zero bits followed by the encoded first character;
for each additional character in the reversed mapped identifier,selecting a next character in the reversed mapped identifier,encoding the next character using a second coding table,modifying the previously modified identifier string by adding, to the previously modified identifier string, a series of zero bits followed by the encoded next character; and
removing any trailing zero bits and the one bit preceding the trailing zero bits from the identifier string, wherein upon completing removing any trailing zero bits and the one bit the identifier string is the encoded mapped identifier; and
encrypting the encoded mapped identifier.
2 Assignments
0 Petitions
Accused Products
Abstract
An exclusive encryption system is established using multiple computing devices. The exclusive encryption system allows for the exclusion of certain plaintext (e.g., by one of the computing devices) and ciphertext (e.g., by another of the computing devices) while at the same time maintaining the privacy created by the encryption (e.g., so the other computing device cannot see the plaintext). The exclusive encryption system may be implemented as part of a serverless distributed file system with directory entries (e.g., file names or folder names) being the plaintext, or alternatively as part of other systems.
81 Citations
41 Claims
-
1. A computer-implemented method comprising:
-
receiving an identifier; generating, based on the identifier, a mapped identifier; encoding the mapped identifier, wherein encoding the mapped identifier comprises; reversing an order of characters in the mapped identifier; removing, from the reversed mapped identifier, all trailing characters of a particular type; initializing an identifier string with a string of one bits equal in number to a number of trailing characters removed from the reversed mapped identifier followed by a zero bit; selecting a first character from the reversed mapped identifier; encoding the first character using a first coding table; modifying the identifier string by adding, to the identifier string, a series of zero bits followed by the encoded first character; for each additional character in the reversed mapped identifier, selecting a next character in the reversed mapped identifier, encoding the next character using a second coding table, modifying the previously modified identifier string by adding, to the previously modified identifier string, a series of zero bits followed by the encoded next character; and removing any trailing zero bits and the one bit preceding the trailing zero bits from the identifier string, wherein upon completing removing any trailing zero bits and the one bit the identifier string is the encoded mapped identifier; and encrypting the encoded mapped identifier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A computer-implemented method comprising:
-
receiving an identifier; generating, based on the identifier, a mapped identifier; encoding the mapped identifier, wherein encoding the mapped identifier comprises; reversing an order of characters in the mapped identifier; removing, from the reversed mapped identifier, all trailing characters of a particular type; initializing an identifier string with a string of one bits equal in number to a number of trailing characters removed from the reversed mapped identifier followed by a zero bit; selecting a first character from the reversed mapped identifier; encoding the first character using a first coding table; modifying the identifier string by adding, to the identifier string, a series of zero bits followed by the encoded first character; for each additional character in the reversed mapped identifier, selecting a next character in the reversed mapped identifier, encoding the next character using one of a plurality of additional coding tables, modifying the previously modified identifier string by adding, to the previously modified identifier string, a series of zero bits followed by the encoded next character; and removing any trailing zero bits and the one bit preceding the trailing zero bits from the identifier string, wherein upon completing removing any trailing zero bits and the one bit the identifier string is the encoded mapped identifier; and encrypting the encoded mapped identifier.
-
-
19. One or more computer-readable media having stored thereon a plurality of instructions that, when executed by one or more processors of a computer, causes the one or more processors to perform acts including:
-
receiving a plaintext identifier; generating a ciphertext by encrypting the plaintext identifier only if the plaintext identifier is syntactically legal, wherein generating the ciphertext comprises; generating, based on the plaintext identifier, a mapped identifier; encoding the mapped identifier, wherein encoding the mapped identifier comprises; reversing an order of characters in the mapped identifier; removing, from the reversed mapped identifier, all trailing characters of a particular type; initializing an identifier string with a string of one bits equal in number to a number of trailing characters removed from the reversed mapped identifier followed by a zero bit; selecting a first character from the reversed mapped identifier; encoding the first character using a first coding table; modifying the identifier string by adding, to the identifier string, a series of zero bits followed by the encoded first character; for each additional character in the reversed mapped identifier, selecting a next character in the reversed mapped identifier, encoding the next character using a second coding table, modifying the previously modified identifier string by adding, to the previously modified identifier string, a series of zero bits followed by the encoded next character; and removing any trailing zero bits and the one bit preceding the trailing zero bits from the identifier string, wherein upon completing removing any trailing zero bits and the one bit the identifier string is the encoded mapped identifier; and encrypting the encoded mapped identifier; and wherein the encrypting allows another device to verify, without decrypting the ciphertext, that the plaintext identifier is not identical to another plaintext identifier maintained by the other device. - View Dependent Claims (20, 21, 22, 23)
-
-
24. One or more computer-readable media having stored thereon a plurality of instructions that, when executed by one or more processors of a computer, causes the one or more processors to perform acts including:
-
receiving a plaintext identifier; generating a ciphertext by encrypting the plaintext identifier only if the plaintext identifier is syntactically legal, wherein generating the ciphertext comprises; generating, based on the plaintext identifier, a mapped identifier; encoding the mapped identifier, wherein encoding the mapped identifier comprises; reversing an order of characters in the mapped identifier; removing, from the reversed mapped identifier, all trailing characters of a particular type; initializing an identifier string with a string of one bits equal in number to a number of trailing characters removed from the reversed mapped identifier followed by a zero bit; selecting a first character from the reversed mapped identifier; encoding the first character using a first coding table; modifying the identifier string by adding, to the identifier string, a series of zero bits followed by the encoded first character; for each additional character in the reversed mapped identifier, selecting a next character in the reversed mapped identifier, encoding the next character using one of a plurality of additional coding tables, modifying the previously modified identifier string by adding, to the previously modified identifier string, a series of zero bits followed by the encoded next character; and removing any trailing zero bits and the one bit preceding the trailing zero bits from the identifier string, wherein upon completing removing any trailing zero bits and the one bit the identifier string is the encoded mapped identifier; and encrypting the encoded mapped identifier; and wherein the encrypting allows another device to verify, without decrypting the ciphertext, that the plaintext identifier is not identical to another plaintext identifier maintained by the other device.
-
-
25. One or more computer-readable media having stored thereon a plurality of instructions that, when executed by one or more processors of a computer, causes the one or more processors to perform acts including:
-
receiving a plaintext directory entry; verifying that the plaintext directory entry is syntactically legal; encrypting the plaintext directory entry only if the plaintext directory entry is syntactically legal, wherein encrypting the plaintext directory entry comprises; generating, based on the plaintext directory entry, a mapped identifier; encoding the mapped identifier, wherein encoding the mapped identifier comprises; reversing an order of characters in the mapped identifier; removing, from the reversed mapped identifier, all trailing characters of a particular type; initializing an identifier string with a string of one bits equal in number to a number of trailing characters removed from the reversed mapped identifier followed by a zero bit; selecting a first character from the reversed mapped identifier; encoding the first character using a first coding table; modifying the identifier string by adding, to the identifier string, a series of zero bits followed by the encoded first character; for each additional character in the reversed mapped identifier, selecting a next character in the reversed mapped identifier, encoding the next character using a second coding table, modifying the previously modified identifier string by adding, to the previously modified identifier string, a series of zero bits followed by the encoded next character; and removing any trailing zero bits and the one bit preceding the trailing zero bits from the identifier string, wherein upon completing removing any trailing zero bits and the one bit the identifier string is the encoded mapped identifier; and encrypting the encoded mapped identifier; communicating the encrypted directory entry to another device; and wherein the encrypting allows the other device to verify, without decrypting the encrypted directory entry, that the directory entry is not identical to any other directory entry maintained by the other device. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41)
-
Specification