1. A method, comprising: at a computer processor: receiving a collection of files, each file in the collection of files comprising text; encrypting each file in the collection of files; receiving a list of keywords; generating an index that indicates, for each of the files in the collection of files, which of the keywords are included in the respective files, the index being a tree structure; encrypting the index to generate an encrypted index, the encrypted index being searchable such that a list of files that includes a keyword set forth by a user is returned to the user responsive to the user querying the encrypted index with the keyword; receiving an indication that one of: a file has been added to the collection of files; or a file has been removed from the collection of files; and updating the encrypted index to represent addition of the file to the collection of files or removal of the file from the collection of files without re-encrypting each file in the collection of files.
1. A method, comprising: at a computer processor: receiving a collection of files, each file in the collection of files comprising text; encrypting each file in the collection of files; receiving a list of keywords; generating an index that indicates, for each of the files in the collection of files, which of the keywords are included in the respective files, the index being a tree structure; encrypting the index to generate an encrypted index, the encrypted index being searchable such that a list of files that includes a keyword set forth by a user is returned to the user responsive to the user querying the encrypted index with the keyword; receiving an indication that one of: a file has been added to the collection of files; or a file has been removed from the collection of files; and updating the encrypted index to represent addition of the file to the collection of files or removal of the file from the collection of files without re-encrypting each file in the collection of files. 7. The method of claim 1 , further comprising: analyzing text in files of the collection of files; and automatically generating the predefined list of keywords based at least in part upon frequency of words in the text in the files of the collection of files.