Office Action 1: Non-Final Rejection (2024-01-17)
Rejection types: 102 - Lack of Novelty, 112 - Written Description/Enablement, Double Patenting

CLAIMS:
CLAIMS

What is claimed is:

1\. A method comprising:
receiving, at a first server of a cloud-based storage system that stores a plurality of documents in an encrypted form, an edit encrypted using a data encryption key associated with a second server that is independent from the first server;
determining, at the first server, which document of the plurality of documents stored in the encrypted form is associated with the encrypted edit, wherein the first server is unable to decrypt both the document in the encrypted form and the encrypted edit encrypted using the data encryption key;
determining, at the first server, a plurality of user accounts of collaborators of the document, the plurality of user accounts comprising a first user account associated with the first client device; and
providing, by the first server, the encrypted edit to one or more other client devices that are each associated with one of the plurality of user accounts.

2\. The method of claim 1, further comprising:
receiving, from the first client device, the data encryption key encrypted based on a key encryption key, wherein the key encryption key is not accessible to the first server; and
providing the encrypted data encryption key to the one or more other client devices.

3\. The method of claim 2, wherein the key encryption key is provided by the second server that is not in communication with the first server and is in communication with the first client device and the one or more other client devices.

4\. The method of claim 1, further comprising:
configuring a second user account from the plurality of user accounts of collaborators to coordinate with the first server for collaborative editing of the document, wherein a second client device associated with the second user account is to combine edits to the document made by the collaborators in a chronological order and generate encrypted data based on the combined edits.
5\. The method of claim 4, wherein:
the determining of the plurality of user accounts of collaborators of the document comprises determining that the first user account corresponds to a user account other than the second user account; and
the providing of the encrypted data comprises providing the encrypted edit to the second client device that is associated with the second user account, the second client device being one of the one or more other client devices.

6\. The method of claim 4, wherein:
the determining of the plurality of user accounts of collaborators of the document comprises determining that the first user account corresponds to the second user account; and
the providing of the first encrypted data comprises providing the encrypted edit to the one or more other client devices that are each associated with one of the plurality of user accounts other than the second user account, wherein the encrypted edit corresponds to the encrypted data.

7\. The method of claim 3, wherein the first client device is to perform operations comprising:
generating the data encryption key;
encrypting the edit based on the data encryption key;
obtaining the encrypted data encryption key based on encryption of the data encryption key using the key encryption key provided by the second server; and
providing the encrypted edit with the encrypted data encryption key to the first server.

8\. A method comprising:
providing a graphical user interface (GUI) for online collaborative editing of a document in association with a first server of a cloud-based storage system, wherein the cloud-based storage system stores, in an encrypted form, a plurality of documents including the document;
receiving an edit to a portion of the document via the GUI;
encrypting the edit to the portion of the document based on a data encryption key associated with a second server that is independent of the first server;
generating encrypted data representing the edit to the portion of the document, wherein the encrypted data includes the encrypted edit to the portion of the document; and providing the encrypted data to the first server that is unable to decrypt (i) the document in the encrypted form, and (ii) the encrypted edit to the portion of the document.

9\. The method of claim 8, wherein the generating of the encrypted data comprising:
generating the data encryption key;
encrypting the edit based on the data encryption key;
obtaining the encrypted data encryption key generated based on encryption of the data encryption key using a key encryption key provided by the second server; and
combining the encrypted edit with the encrypted data encryption key to generate the encrypted data.

10\. The method of claim 8, further comprising:
receiving second encrypted data from the first server of the cloud-based storage system, the second encrypted data representing a second edit to the portion of the document made by a collaborator of the document, wherein the second encrypted data includes the second edit encrypted based on a second data encryption key, and the second data encryption key encrypted based on the key encryption key;
obtaining the second edit from the second encrypted data by decrypting the encrypted second data encryption key using the key encryption key and decrypting the encrypted second edit using the decrypted second data encryption key; and
updating the document provided on the GUI based on the second edit.

11\. The method of claim 10, further comprising:
receiving third encrypted data from the first server of the cloud-based storage system, the third encrypted data representing a third edit to the portion of the document made by another collaborator of the document;
generating fourth encrypted data based on a combination of the second edit and the third edit in a chronological order; and
providing the fourth encrypted data to the first server of the cloud-based storage system.

12\. A method comprising: providing, at a first client device, a graphical user interface (GUI) for online collaborative editing of a document in association with a first server of a cloud-based storage system, wherein the cloud-based storage system stores, in an encrypted form, a plurality of documents including the document;
receiving, at the first client device, an encrypted edit to a portion of the document via the GUI, wherein the encrypted edit to the portion of the document was encrypted by a second client device using a data encryption key associated with a second server that is independent of the first server, and wherein the first server is unable to decrypt the document in the encrypted form, and
the encrypted edit to the portion of the document;
decrypting, at the first client device, the encrypted edit to the portion of the document;
and presenting, at the GUI on the first client device, the document comprising the decrypted edit.

13\. The method of claim 12, further comprising:
receiving an encrypted data encryption key generated based on encryption of the data encryption key using a key encryption key provided by the second server; and
decrypting the encrypted data encryption key.

14\. The method of claim 13, wherein decrypting the encrypted edit comprises:
decrypting the encrypted edit using a decrypted data encryption key.

15\. A non-transitory computer readable storage medium comprising instructions for a server that, when executed by a processing device, cause the processing device to perform operations comprising:
receiving, at a first server of a cloud-based storage system that stores a plurality of documents in an encrypted form, an edit encrypted using a data encryption key associated with a second server that is independent from the first server;
determining, at the first server, which document of the plurality of documents stored in the encrypted form is associated with the encrypted edit, wherein the first server is unable to decrypt both the document in the encrypted form and the encrypted edit encrypted using the data encryption key;
determining, at the first server, a plurality of user accounts of collaborators of the document, the plurality of user accounts comprising a first user account associated with the first client device; and
providing, by the first server, the encrypted edit to one or more other client devices that are each associated with one of the plurality of user accounts.

16\. The non-transitory computer readable storage medium of claim 15, the operations further comprising:
receiving, from the first client device, the data encryption key encrypted based on a key encryption key, wherein the key encryption key is not accessible to the first server; and
providing the encrypted data encryption key to the one or more other client devices.

17\. The non-transitory computer readable storage medium of claim 16, wherein the key encryption key is provided by the second server that is not in communication with the first server and is in communication with the first client device and the one or more other client devices.

18\. The non-transitory computer readable storage medium of claim 15, the operations further comprising:
configuring a second user account from the plurality of user accounts of collaborators to coordinate with the first server for collaborative editing of the document, wherein a second client device associated with the second user account is to combine edits to the document made by the collaborators in a chronological order and generate encrypted data based on the combined edits.

19\. The non-transitory computer readable storage medium of claim 18, wherein:
the determining of the plurality of user accounts of collaborators of the document comprises determining that the first user account corresponds to a user account other than the second user account; and
the providing of the encrypted data comprises providing the encrypted edit to the second client device that is associated with the second user account, the second client device being one of the one or more other client devices.
20\. The non-transitory computer readable storage medium of claim 18, wherein:
the determining of the plurality of user accounts of collaborators of the document comprises determining that the first user account corresponds to the second user account; and
the providing of the first encrypted data comprises providing the encrypted edit to the one or more other client devices that are each associated with one of the plurality of user accounts other than the second user account, wherein the encrypted edit corresponds to the encrypted data.

21\. The non-transitory computer readable storage medium of claim 17, wherein the first client device is to perform operations comprising:
generating the data encryption key;
encrypting the edit based on the data encryption key;
obtaining the encrypted data encryption key based on encryption of the data encryption key using the key encryption key provided by the second server; and
providing the encrypted edit with the encrypted data encryption key to the first server. Attorney Docket No.: 25832.4060 (L2936C) Page 43 of 49 Attorney Docket No.: 25832.4060 (L2936C) Page 44 of 49 Attorney Docket No.: 25832.4060 (L2936C) Page 45 of 49 Attorney Docket No.: 25832.4060 (L2936C) Page 46 of 49 Attorney Docket No.: 25832.4060 (L2936C) Page 47 of 49 Attorney Docket No.: 25832.4060 (L2936C) Page 48 of 49

OFFICE ACTION:
DETAILED ACTION
Notice of Pre-AIA  or AIA  Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA  as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The filing of a terminal disclaimer by itself is not a complete reply to a nonstatutory double patenting (NSDP) rejection. A complete reply requires that the terminal disclaimer be accompanied by a reply requesting reconsideration of the prior Office action. Even where the NSDP rejection is provisional the reply must be complete. See MPEP § 804, subsection I.B.1. For a reply to a non-final Office action, see 37 CFR 1.111(a). For a reply to final Office action, see 37 CFR 1.113(c). A request for reconsideration while not provided for in 37 CFR 1.113(c) may be filed after final for consideration. See MPEP §§ 706.07(e) and 714.13.
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The actual filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/apply/applying-online/eterminal-disclaimer.
Claims 1-21 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1-20 of U.S. Patent No. 11,604,898. Although the claims at issue are not identical, they are not patentably distinct from each other because the claims of the ‘898 patent include all the limitations of the instant claims.
Instant Application
US 11,604,898
receiving, at a first server of a cloud-based storage system that stores a plurality of documents in an encrypted form, an edit encrypted using a data encryption key associated with a second server that is independent from the first server; (Claim 1)
receiving, at a first server of a cloud-based storage system, first encrypted data from a first client device, wherein the cloud-based storage system stores a plurality of documents in an encrypted form… wherein the first encrypted data includes an encrypted edit to a portion of the document stored in the encrypted form and a data encryption key encrypted by a second server (Claim 1)
determining, at the first server, which document of the plurality of documents stored in the encrypted form is associated with the encrypted edit, wherein the first server is unable to decrypt both the document in the encrypted form and the encrypted edit encrypted using the data encryption key; (Claim 1)
determining, at the first server, which document of the plurality of documents stored in the encrypted form is associated with the first encrypted data… wherein the first server is unable to decrypt both the document in the encrypted form and the first encrypted data, and wherein the data encryption key is used by the first client device to produce the encrypted edit; (Claim 1)
determining, at the first server, a plurality of user accounts of collaborators of the document, the plurality of user accounts comprising a first user account associated with the first client device; (Claim 1)
determining, at the first server, a plurality of user accounts of collaborators of the document, the plurality of user accounts comprising a first user account associated with the first client device; (Claim 1)
and providing, by the first server, the encrypted edit to one or more other client devices that are each associated with one of the plurality of user accounts. (Claim 1)
and providing, by the first server, the first encrypted data to one or more other client devices that are each associated with one of the plurality of user accounts, excluding the first user account. (Claim 1)
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b)  CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 10-11 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA  35 U.S.C. 112, the applicant), regards as the invention.
Claim 10 recites the limitation the key encryption key in line 6.  There is insufficient antecedent basis for this limitation in the claim. Examiner notes that it is believed claim 10 was intended to depend from claim 9 instead of claim 8, which would solve the antecedent basis issue since claim 9 includes the recitation of “a key encryption key” in line 5.
Claim 11 is rejected based upon being dependent to claim 10.
Claim Rejections - 35 USC § 102
In the event the determination of the status of the application as subject to AIA  35 U.S.C. 102 and 103 (or as subject to pre-AIA  35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA  to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claims 8, 12 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Crosbie, U.S. Publication No. 2014/0115332 (IDS cite No. 3). Referring to claim 8, Crosbie discloses a collaborative document editing system wherein document changes can be made by a user of a client device using a document editor ([0092] & [0063]: document editor is a cloud application downloaded to the client and implemented to edit the document; document editor would therefore be considered the claimed graphical user interface), which meets the limitation of providing a graphical user interface (GUI) for online collaborative editing of a document in association with a first server of a cloud-based storage system. The system includes a cloud document server that stores encrypted documents ([0021] & [0029] & [0036]), which meets the limitation of wherein the cloud-based storage system stores, in an encrypted form, a plurality of documents including the document. The user makes changes to the document using the document editor ([0092]), which meets the limitation of receiving an edit to a portion of the document via the GUI. The document changes can be encrypted using a document token ([0035] & [0112]: document token would be considered the claimed data encryption key), which meets the limitation of encrypting the edit to the portion of the document based on a data encryption key, generating encrypted data representing the edit to the portion of the document, wherein the encrypted data includes the encrypted edit to the portion of the document. Document token is split into a server document token and a sharee document token ([0022] & [0103]) such that the server document token is stored on a key server that is different from the document server ([0104]: document token reads on the claimed data encryption key; a portion of the document token being stored in a key server would be considered an association between the document token and the key server), which meets the limitation of a data encryption key associated with a second server that is independent from the first server. Transmitting the encrypted document changes from client devices to a cloud server that stores encrypted documents ([0021] & [0029] & [0036]), which meets the limitation of providing the encrypted data to the first server. The document server stores the encrypted documents ([0029]: documents are encrypted using the document token [0078]) and the encrypted document changes ([0036]: document changes encrypted using the document token [0078]) such that the document tokens are encrypted using the public keys of each respective sharee and can only be decrypted using a respective private key ([0019] & [0021] & [0031]: complete document token is never stored in the server), which meets the limitation of the first server that is unable to decrypt the document in the encrypted form and the encrypted edit to the portion of the document.
Referring to claim 12, Crosbie discloses a collaborative document editing system wherein document changes, to encrypted documents stored in a cloud document server ([0021] & [0029] & [0036]: document server reads on the claimed first server), can be made by a user of a client device using a document editor ([0092] & [0063]: document editor is a cloud application downloaded to the client and implemented to edit the document; client  would be considered the first client device; document editor would therefore be considered the claimed graphical user interface), which meets the limitation of providing, at a first client device, a graphical user interface (GUI) for online collaborative editing of a document in association with a first server of a cloud-based storage system. The system includes a cloud document server that stores encrypted documents ([0021] & [0029] & [0036]), which meets the limitation of wherein the cloud-based storage system stores, in an encrypted form, a plurality of documents including the document. A user at a client device makes changes to the document using the document editor ([0092]: editing client reads on the claimed second client device), encrypts the document changes using a document token ([0035] & [0112]: document token reads on the claimed data encryption key), and transmits the encrypted document changes to the client device (Figure 7N, Step 614 & [0115]: receiving client device reads on the claimed first client device), which meets the limitation of receiving, at the first client device, an encrypted edit to a portion of the document via the GUI, wherein the encrypted edit to the portion of the document was encrypted by a second client device using a data encryption key. Document token is split into a server document token and a sharee document token ([0022] & [0103]) such that the server document token is stored on a key server that is different from the document server ([0104]: a portion of the document token being stored in a key server would be considered an association between the document token and the key server), which meets the limitation of a data encryption key associated with a second server that is independent from the first server. The document server stores the encrypted documents ([0029]: documents are encrypted using the document token [0078]) and the encrypted document changes ([0036]: document changes encrypted using the document token [0078]) such that the document tokens are encrypted using the public keys of each respective sharee and can only be decrypted using a respective private key ([0019] & [0021] & [0031]: complete document token is never stored in the server), which meets the limitation of wherein the first server that is unable to decrypt the document in the encrypted form and the encrypted edit to the portion of the document. The receiving client decrypts the encrypted document changes (Figure 7O & [0116]), which meets the limitation of decrypting, at the first client device, the encrypted edit to the portion of the document. The receiving client merges the decrypted document changes with the document to render an updated document (Figure 7P & [0116]) in a manner that displays the document through the document editor of the client ([0092]: allowing the user to make changes to the document in the document editor shows that the document has been presented through the document editor), which meets the limitation of presenting, at the GUI on the first client device, the document comprising the decrypted edit.
Allowable Subject Matter
Claims 1-7, 15-21 are allowable in view of the prior art but have still been rejected on the grounds of nonstatutory double patenting as shown above.
Claim 9-11, 13-14 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
As allowable subject matter has been indicated, applicant's reply must either comply with all formal requirements or specifically traverse each requirement not complied with.  See 37 CFR 1.111(b) and MPEP § 707.07(a).
The following is a statement of reasons for the indication of allowable subject matter:
The prior art does not disclose or make obvious the claimed cloud-based storage system that includes a first server storing encrypted documents that the first server cannot decrypt and that stores encrypted edits to the documents that the first server cannot decrypt such that upon receipt of an encrypted edit, the first server identifies a plurality of user accounts specific to document collaborates and subsequently provides the received encrypted edit to the client devices of the identified document collaborators.
Crosbie discloses a collaborative document editing system wherein documents changes encrypted using a document token ([0034]-[0035]: document change includes addition or deletion of content from existing document and this reads on the claimed edit; document change is encrypted using a document token and would therefore be considered to be an encrypted edit; document token would be considered the claimed data encryption key) are transmitted from client devices to a cloud server that stores encrypted documents ([0021] & [0029] & [0036]: document server reads on the claimed first server), which meets the limitation of receiving, at a first server of a cloud-based storage system that stores a plurality of documents in an encrypted form, an edit encrypted using a data encryption key. Document token is split into a server document token and a sharee document token ([0022] & [0103]) such that the server document token is stored on a key server that is different from the document server ([0104]: document token reads on the claimed data encryption key; a portion of the document token being stored in a key server would be considered an association between the document token and the key server), which meets the limitation of a data encryption key associated with a second server that is independent from the first server.
The prior art does not disclose or make obvious the determination of the plurality of user accounts of collaborators of the first document such that the encrypted edit is provided to one or more client devices that have been identified as collaborators of the first document.
Instead, Crosbie discloses that the editing client provides encrypted document changes to secondary clients (Figure 7N). Schmahmann (US Publication No. 2018/0062852, IDS cite No. 8) discloses that the server notifies all on-line clients that a document has been updated ([0113]) and only provides the document update to a client after having received a request from the client for the document update ([0114]-[0115]).
Conclusion


NEXT OFFICE ACTION: DETAILED ACTION
Notice of Pre-AIA  or AIA  Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Response to Amendment
Applicant’s amendment filed 17 April 2024 cancels claims 8-14 and adds claims 22-28. Applicant’s amendment has been fully considered and entered.
Terminal Disclaimer
The terminal disclaimer filed on 17 April 2024 disclaiming the terminal portion of any patent granted on this application which would extend beyond the expiration date of U.S. Patent No. 11,604,898 has been reviewed and is accepted.  The terminal disclaimer has been recorded.
Response to Arguments
Applicant argues on page 9 of the response, “Without admitting the double patenting rejection is correct on the merits, and merely to facilitate prosecution, a terminal disclaimer has been submitted herein. Accordingly, applicant respectfully requests that the rejection be withdrawn.
Allowable Subject Matter
Claims 1-7, 15-28 are allowed.
The following is an examiner’s statement of reasons for allowance:
This communication warrants No Examiner's Reason for Allowance, applicant's reply (4/17/2024) makes evident the reasons for allowance, satisfying the “record as a whole” proviso of the rule 37 CFR 1.104(e). Specifically, Applicant’s arguments filed on 17 April 2024, with respect to the response, are persuasive, as such the reasons for allowance are in all probability evident from the record and no statement is deemed necessary (see MPEP 1302.14).
Any comments considered necessary by applicant must be submitted no later than the payment of the issue fee and, to avoid processing delays, should preferably accompany the issue fee.  Such submissions should be clearly labeled “Comments on Statement of Reasons for Allowance.”
Conclusion

CITED REFERENCE SUMMARIES: Ref US11604898B2: [content unavailable]
Ref US11604898: Claims:
1. A method comprising:
receiving, at a first server of a cloud-based storage system, first encrypted data from a first client device, wherein the cloud-based storage system stores a plurality of documents in an encrypted form;
determining, at the first server, which document of the plurality of documents stored in the encrypted form is associated with the first encrypted data, wherein the first encrypted data includes an encrypted edit to a portion of the document stored in the encrypted form and a data encryption key encrypted by a second server for transmission to the first server, wherein the first server is unable to decrypt both the document in the encrypted form and the first encrypted data, and wherein the data encryption key is used by the first client device to produce the encrypted edit;
determining, at the first server, a plurality of user accounts of collaborators of the document, the plurality of user accounts comprising a first user account associated with the first client device; and
providing, by the first server, the first encrypted data to one or more other client devices that are each associated with one of the plurality of user accounts, excluding the first user account.
2. The method of claim 1, wherein
the data encryption key is encrypted based on a key encryption key, wherein the key encryption key is not accessible to the first server.
3. The method of claim 2, wherein the key encryption key is provided by the second server not connected to the first server and connected to the first client device and the one or more other client devices.
4. The method of claim 1, further comprising:
configuring a second user account from the plurality of user accounts of collaborators to coordinate with the first server for collaborative editing of the document, wherein a second client device associated with the second user account is to combine edits to the document made by the collaborators in a chronological order and generate second encrypted data based on the combined edits.
5. The method of claim 4, wherein:
the determining of the plurality of user accounts of collaborators of the document comprises determining that the first user account corresponds to a user account other than the second user account; and
the providing of the first encrypted data comprises providing the first encrypted data to the second client device that is associated with the second user account, the second client device being one of the one or more other client devices.
6. The method of claim 4, wherein:
the determining of the plurality of user accounts of collaborators of the document comprises determining that the first user account corresponds to the second user account; and
the providing of the first encrypted data comprises providing the first encrypted data to the one or more other client devices that are each associated with one of the plurality of user accounts other than the second user account, wherein the first encrypted data corresponds to the second encrypted data.
7. The method of claim 3, wherein the first client device is to perform operations comprising:
generating the data encryption key;
encrypting the edit based on the data encryption key;
providing the data encryption key to the second server;
obtaining the encrypted data encryption key based on encryption of the data encryption key using the key encryption key provided by the second server; and
combining the encrypted edit with the encrypted data encryption key to generate the first encrypted data.
8. A cloud-based storage system comprising:
a memory; and
a processing device operatively coupled to the memory, the processing device to:
receive, at a first server of a cloud-based storage system, first encrypted data from a first client device, wherein the cloud-based storage system stores a plurality of documents in an encrypted form;
determine, at the first server, which document of the plurality of documents stored in the encrypted form is associated with the first encrypted data wherein the first encrypted data includes an encrypted edit to a portion of the document stored in the encrypted form and a data encryption key encrypted by a second server for transmission to the first server, wherein the first server is unable to decrypt both the document in the encrypted form and the first encrypted data, and wherein the data encryption key is used by the first client device to produce the encrypted edit;
determine, at the first server, a plurality of user accounts of collaborators of the document, the plurality of user accounts comprising a first user account associated with the first client device; and
provide, by the first server, the first encrypted data to one or more other client devices that are each associated with one of the plurality of user accounts, excluding the first user account.
9. The system of claim 8, wherein
the data encryption key is encrypted based on a key encryption key, wherein the key encryption key is not accessible to the cloud-based storage system and wherein the key encryption key is provided by the second server not connected to the cloud-based storage system and connected to the first client device and the one or more other client devices.
10. The system of claim 8, wherein the processing device is to further:
configure a second user account from the plurality of user accounts of collaborators to coordinate with the processing device for collaborative editing of the document, wherein a second client device associated with the second user account is to combine edits to the document made by the collaborators in a chronological order and generate second encrypted data based on the combined edits.
11. The system of claim 10, wherein to provide the first encrypted data, the processing device is to:
responsive to determining that the first user account corresponds to a user account other than the second user account, provide the first encrypted data to the second client device that is associated with the second user account, the second client device being one of the one or more other client devices; and
responsive to determining that the first user account corresponds to the second user account, provide the first encrypted data to the one or more other client devices that are each associated with one of the plurality of user accounts other than the second user account, wherein the first encrypted data corresponds to the second encrypted data.
12. The system of claim 9, wherein the first client device is to perform operations comprising:
generating the data encryption key;
encrypting the edit based on the data encryption key;
providing the data encryption key to the second server;
obtaining the encrypted data encryption key based on encryption of the data encryption key using the key encryption key provided by the second server; and
combining the encrypted edit with the encrypted data encryption key to generate the first encrypted data.
13. A non-transitory computer readable storage medium comprising instructions for a server that, when executed by a processing device, cause the processing device to:
receive, at a first server of a cloud-based storage system, first encrypted data from a first client device, wherein the cloud-based storage system stores a plurality of documents in an encrypted form;
determine, at the first server, which document of the plurality of documents stored in the encrypted form is associated with the first encrypted data, wherein the first encrypted data includes an encrypted edit to a portion of the document stored in the encrypted form and a data encryption key encrypted by a second server for transmission to the first server, wherein the first server is unable to decrypt both the document in the encrypted form and the first encrypted data, and wherein the data encryption key is used by the first client device to produce the encrypted edit;
determine, at the first server, a plurality of user accounts of collaborators of the document, the plurality of user accounts comprising a first user account associated with the first client device; and
provide, by the first server, the first encrypted data to one or more other client devices that are each associated with one of the plurality of user accounts, excluding the first user account.
14. The non-transitory computer readable storage medium of claim 13, wherein
the data encryption key is encrypted based on a key encryption key, wherein the key encryption key is not accessible to the first server and wherein the key encryption key is provided by the second server not connected to the first server and connected to the first client device and the one or more other client devices.
15. The non-transitory computer readable storage medium of claim 13, the processing device is to further:
configure a second user account from the plurality of user accounts of collaborators to coordinate with the server for collaborative editing of the document, wherein a second client device associated with the second user account is to combine edits to the document made by the collaborators in a chronological order and generate second encrypted data based on the combined edits;
responsive to determining that the first user account corresponds to a user account other than the second user account, provide the first encrypted data to the second client device that is associated with the second user account, the second client device being one of the one or more other client devices; and
responsive to determining that the first user account corresponds to the second user account, provide the first encrypted data to the one or more other client devices that are each associated with one of the plurality of user accounts other than the second user account, wherein the first encrypted data corresponds to the second encrypted data.
16. The non-transitory computer readable storage medium of claim 14, wherein the first client device is to perform operations comprising:
generating the data encryption key;
encrypting the edit based on the data encryption key;
providing the data encryption key to the second server;
obtaining the encrypted data encryption key based on encryption of the data encryption key using the key encryption key provided by the second server; and
combining the encrypted edit with the encrypted data encryption key to generate the first encrypted data.
17. A method comprising:
providing a graphical user interface (GUI) for online collaborative editing of a document in association with a first server of a cloud-based storage system, wherein the cloud-based storage system stores, in an encrypted form, a plurality of documents including the document;
receiving an edit to a portion of the document via the GUI;
generating encrypted data representing the edit to the portion of the document, wherein the encrypted data includes the edit to the portion of the document that is encrypted based on a data encryption key, and the data encryption key that is encrypted by a second server based on a key encryption key for transmission to the first server; and
providing the encrypted data to the first server that is unable to decrypt (i) the document in the encrypted form, (ii) the encrypted edit to the portion of the document and (iii) the encrypted data encryption key.
18. The method of claim 17, wherein the generating of the encrypted data comprising:
generating the data encryption key;
encrypting the edit based on the data encryption key;
providing the data encryption key to the second server;
obtaining the encrypted data encryption key generated based on encryption of the data encryption key using the key encryption key; and
combining the encrypted edit with the encrypted data encryption key to generate the encrypted data.
19. The method of claim 17, further comprising:
receiving second encrypted data from the first server of the cloud-based storage system, the second encrypted data representing a second edit to the portion of the document made by a collaborator of the document, wherein the second encrypted data includes the second edit encrypted based on a second data encryption key, and the second data encryption key encrypted based on the key encryption key;
obtaining the second edit from the second encrypted data by decrypting the encrypted second data encryption key using the key encryption key and decrypting the encrypted second edit using the decrypted second data encryption key; and
updating the document provided on the GUI based on the second edit.
20. The method of claim 19, further comprising:
receiving third encrypted data from the first server of the cloud-based storage system, the third encrypted data representing a third edit to the portion of the document made by another collaborator of the document;
generating fourth encrypted data based on a combination of the second edit and the third edit in a chronological order; and
providing the fourth encrypted data to the first server of the cloud-based storage system.
Ref US20140115332: Claims:
What is claimed is: 1. A method for collaboratively editing a document in a system of sharee clients, the method comprising: creating a document change; generating a document token for encrypting the document change; encrypting, using a processor, the document change with the document token; making the encrypted document change available to the other sharee clients; generating a plurality of copies of the sharee document token; encrypting each sharee document token with a respective sharee's public key; and distributing each encrypted sharee document token to respective sharee clients wherein each sharee client is configured to: decrypt a sharee document token using a respective private key; decrypt the encrypted document change using the share document token; and consolidate the document change into a document. 2. The method of claim 1, wherein the encrypted document change is loaded onto one or more servers and made available to sharee clients. 3. The method of claim 2, wherein the servers are Cloud servers. 4. The method of claim 2, further comprising: forming the share document token by splitting the document token into a server document token and sharee document token wherein each sharee client is configured to combine the decrypted share document token with the server document token and decrypt the encrypted document using the combined document token. 5. The method of claim 2, wherein the plurality of sharee clients and the plurality of sharee document token copies correspond. 6. The method of claim 1, wherein every piece of the document is protected. 7. The method of claim 2, wherein the encrypted document is stored in a document server. 8. The method of claim 2, wherein the encrypted tokens are stored in a key server. 9. The method of claim 1, wherein the document change is a creation of a new document. 10. The method of claim 1, wherein the document change is an addition or deletion of content to an existing document. 11. A system for collaboratively editing a document between a plurality of sharee clients comprising: a processor programmed to initiate executable operations comprising: creating a document change; generating a document token for encrypting the document change; encrypting the document change with the document token; making the encrypted document change available to the other sharee clients; generating a plurality of copies of the sharee document token; encrypting each sharee document token with a respective sharee's public key; and distributing each encrypted sharee document token to respective sharee clients wherein each sharee client is configured to: decrypt a sharee document token using a respective private key; decrypt the encrypted document change using the share document token; and consolidate the document change into a document. 12. The system of claim 11, wherein the encrypted document change is loaded onto one or more servers and made available to sharee clients. 13. The system of claim 12, wherein the servers are Cloud servers. 14. The system of claim 12, wherein the processor is further programmed to initiate executable operations comprising: forming the share document token by splitting the document token into a server document token and sharee document token wherein each sharee client is configured to combine the decrypted share document token with the server document token and decrypt the encrypted document using the combined document token. 15. The system of claim 12, wherein the plurality of share clients and the plurality of sharee document token copies correspond. 16. The system of claim 11, wherein every piece of the document is protected. 17. The system of claim 12, wherein the encrypted document is stored in a document server. 18. The system of claim 12, wherein the encrypted tokens are stored in a key server. 19. The system of claim 11, wherein the document change is a creation of a new document. 20. A computer program product for collaboratively editing a document in a system of sharee clients, the computer program product comprising a computer readable storage medium having program code stored thereon, the program code executable by a processor to perform a method comprising: creating, using the processor, a document change; generating, using the processor, a document token for encrypting the document change; encrypting, using the processor, the document change with the document token; making, using the processor, the encrypted document change available to the other sharee clients; generating, using the processor, a plurality of copies of the sharee document token; encrypting, using the processor, each sharee document token with a respective sharee's public key; and distributing, using the processor, each encrypted sharee document token to respective sharee clients wherein each sharee client is configured to: decrypt a sharee document token using a respective private key; decrypt the encrypted document change using the share document token; and consolidate the document change into a document.
A method for collaboratively editing a document in a system of sharee clients, the method comprising: creating a document change; generating a document token for encrypting the document change; encrypting, using a processor, the document change with the document token; making the encrypted document change available to the other sharee clients; generating a plurality of copies of the sharee document token; encrypting each sharee document token with a respective sharee's public key; and distributing each encrypted sharee document token to respective sharee clients wherein each sharee client is configured to: decrypt a sharee document token using a respective private key; decrypt the encrypted document change using the share document token; and consolidate the document change into a document.
The method of claim 1, wherein the encrypted document change is loaded onto one or more servers and made available to sharee clients.
The method of claim 2, wherein the servers are Cloud servers.
The method of claim 2, further comprising: forming the share document token by splitting the document token into a server document token and sharee document token wherein each sharee client is configured to combine the decrypted share document token with the server document token and decrypt the encrypted document using the combined document token.
The method of claim 2, wherein the plurality of sharee clients and the plurality of sharee document token copies correspond.
The method of claim 1, wherein every piece of the document is protected.
The method of claim 2, wherein the encrypted document is stored in a document server.
The method of claim 2, wherein the encrypted tokens are stored in a key server.
The method of claim 1, wherein the document change is a creation of a new document.
The method of claim 1, wherein the document change is an addition or deletion of conte
[Truncated to input limit]