Exclusive encryption
First Claim
Patent Images
1. A method implemented by one or more computing devices, the method comprising:
- receiving an encrypted identifier, wherein a syntactical correctness of a plaintext name, encoded and mapped within the identifier that is encrypted, is verifiable, by the one or more computing devices, by checking a part of the encrypted identifier without decrypting the encrypted identifier;
decrypting the encrypted identifier;
decoding the decrypted identifier, the decoding comprising;
initializing a string to null;
counting a number of leading one bits that precede the first zero bit in the decrypted identifier; and
for each group of sixteen bits following the first zero bit that follows the leading one bits;
checking whether a leading eight bits of the group of sixteen bits are all zero bits;
if the leading eight bits are not all zero bits, then appending the group of sixteen bits to the string;
if the leading eight bits are all zero bits, then generating a decoded character by decoding the next eight bits after the leading eight bits using a coding table, and checking whether the decoded character is a particular character;
if the decoded character is not the particular character, then appending the decoded character to the string;
if the decoded character is the particular character, then checking whether any more one bits remain in the encoded identifier;
if any more one bits remain in the encoded identifier then appending the decoded character to the string; and
if no more one bits remain in the encoded identifier, then;
appending a series of particular characters to the string, wherein the series of particular characters includes a number of particular characters equal to the number of counted leading one bits; and
reversing the order of characters in the string, wherein after the reversing the string comprises the decoded decrypted identifier;
demapping the decoded decrypted identifier into the plaintext name; and
outputting, by the one or more computing devices, the plaintext name.
1 Assignment
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.
157 Citations
36 Claims
-
1. A method implemented by one or more computing devices, the method comprising:
-
receiving an encrypted identifier, wherein a syntactical correctness of a plaintext name, encoded and mapped within the identifier that is encrypted, is verifiable, by the one or more computing devices, by checking a part of the encrypted identifier without decrypting the encrypted identifier; decrypting the encrypted identifier; decoding the decrypted identifier, the decoding comprising; initializing a string to null; counting a number of leading one bits that precede the first zero bit in the decrypted identifier; and for each group of sixteen bits following the first zero bit that follows the leading one bits; checking whether a leading eight bits of the group of sixteen bits are all zero bits; if the leading eight bits are not all zero bits, then appending the group of sixteen bits to the string; if the leading eight bits are all zero bits, then generating a decoded character by decoding the next eight bits after the leading eight bits using a coding table, and checking whether the decoded character is a particular character; if the decoded character is not the particular character, then appending the decoded character to the string; if the decoded character is the particular character, then checking whether any more one bits remain in the encoded identifier; if any more one bits remain in the encoded identifier then appending the decoded character to the string; and if no more one bits remain in the encoded identifier, then; appending a series of particular characters to the string, wherein the series of particular characters includes a number of particular characters equal to the number of counted leading one bits; and reversing the order of characters in the string, wherein after the reversing the string comprises the decoded decrypted identifier; demapping the decoded decrypted identifier into the plaintext name; and outputting, by the one or more computing devices, the plaintext name. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. One or more computer readable media having stored thereon a plurality of instructions that, when executed by one or more processors, causes the one or more processors to perform acts including:
-
receiving an encrypted directory entry, wherein a syntactical correctness of a plaintext name referenced by the directory entry that is encrypted is verifiable by checking the encrypted directory entry without decrypting the encrypted directory entry; decrypting the encrypted directory entry; decoding the decrypted directory entry, the decoding comprising; initializing a string; counting a number of leading one bits that precede the first zero bit in the decrypted directory entry; and for each group of sixteen bits following the first zero bit that follows the leading one bits; checking whether a leading eight bits of the group of sixteen bits are all zero bits; if the leading eight bits are not all zero bits, then appending the group of sixteen bits to the string; if the leading eight bits are all zero bits, then generating a decoded character by decoding the next eight bits after the leading eight bits using a coding table, and checking whether the decoded character is a particular character; and demapping the decoded decrypted directory entry into the plaintext name. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A system comprising:
-
at least one memory; at least one processor; instructions stored in the at least one memory and executed by the at least one processor, the instructions facilitating; means for receiving an encrypted identifier, wherein a syntactical correctness of a plaintext name referenced by the identifier that is encrypted is verifiable by checking the encrypted identifier without decrypting the encrypted identifier; means for decrypting the encrypted identifier; means for decoding the decrypted identifier, the means for decoding comprising; means for initializing a string; means for counting a number of leading one bits that precede the first zero bit in the decrypted identifier; and means for, for each group of sixteen bits following the first zero bit that follows the leading one bits; checking whether a leading eight bits of the group of sixteen bits are all zero bits; if the leading eight bits are not all zero bits, then appending the group of sixteen bits to the string; if the leading eight bits are all zero bits, then generating a decoded character by decoding the next eight bits after the leading eight bits using a coding table, and checking whether the decoded character is a particular character; and means for demapping the decoded decrypted identifier into the plaintext name. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. A system comprising:
-
at least one memory; at least one processor; instructions stored in the at least one memory and executed by the at least one processor, the instructions facilitating; an interface to receive an encrypted identifier, wherein a syntactical correctness of a plaintext name referenced by the identifier that is encrypted is verifiable by checking the encrypted identifier without decrypting the encrypted identifier; a decryption module, coupled to the interface, to decrypt the encrypted identifier; a decoding module, coupled to the decryption module, to decode the decrypted identifier, wherein the decoding module is to decode the decrypted identifier by; initializing a string; counting a number of leading one bits that precede the first zero bit in the decrypted identifier; and for each group of sixteen bits following the first zero bit that follows the leading one bits; checking whether a leading eight bits of the group of sixteen bits are all zero bits; in an event that the leading eight bits are not all zero bits, then appending the group of sixteen bits to the string; and a demapping module, coupled to the decoding module, to demap the decoded decrypted identifier into the plaintext name. - View Dependent Claims (33, 34, 35, 36)
-
Specification