File encryption system and method
Granted 19 Feb 2013 · 1 office action
Assignee: Foxconn Technology Group
Law firm: Law firm · Log in to unlock
Attorney: Attorney · Log in to unlock
Inventors: Chien-Fa Yeh, Shan-Chuan Jeng, Chung-I Lee · Examiner: Jason Gee · AU 2495 · TC 2400
Life of the application
9 dated eventsAbstract
An electronic document comparison system and method converts a test file into a compressed file having a specific format. A public key of the CA certificate of a user is obtained and a random key is generated using a random function. Furthermore, the compressed file is symmetrically encrypted using the random key, and the random key is asymmetrically encrypted using the public key to generate an asymmetric encryption key. A header of the compressed file is attached with the asymmetric encryption key and data length of the asymmetric encryption key.
Description
4 parts›BACKGROUND
1. Technical Field
Embodiments of the present disclosure relate to file processing technology, and particularly to a file encryption system and method.
2. Description of Related Art
Due to the growth of sensitive information stored in computers or transmitted over networks, the need to ensure security of the sensitive information has risen multifold. For example, confidential electronic files in computers may be encrypted by users. However, because electronic files comprise a variety of file formats, such as WORD files, portable document format (PDF) files, and joint photographic experts group (JPEG) files, each file format often requires a different plug-in program to encrypt the confidential electronic files. For example, if a user wants to encrypt a WORD file, a plug-in program corresponding to the WORD file needs to be installed. Therefore, it is inconvenient and time-wasting to encrypt electronic files, especially when the electronic files include at least two format files.
What is needed, therefore, is an improved system and method for encrypting files.
›BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a system view of one embodiment of a file encryption system;
FIG. 2 is a block diagram of one embodiment of a file encryption server of FIG. 1 ;
FIG. 3 is a flowchart of one embodiment of a file encryption method;
FIG. 4 is a detailed description of one embodiment of block 5312 for converting a test file into a compressed file in FIG. 3 ;
FIG. 5 shows one example of a method for dividing a test file into a plurality of sections.
›DETAILED DESCRIPTION · 1 of 2
All of the processes described below may be embodied in, and fully automated via, function modules executed by one or more general purpose processors of a computer. Some or all of the methods may alternatively be embodied in specialized hardware. The function modules may be stored in any type of computer-readable medium or other computer storage device.
FIG. 1 is a block diagram of one embodiment of a file encryption system 1 . In one embodiment, the file encryption system 1 may comprise a file encryption server 30 , a certificate authority (CA) server 40 , and one or more client computers 10 . The file encryption system 1 may be used to automatically encrypt files. In the exemplary embodiment, the file encryption server 30 , the CA server 40 , and the one or more client computers 10 connect to a network 20 . The network 20 may be, but is not limited to, a wide area network (e.g., the Internet) or a local area network.
The file encryption server 30 electronically connects to a first database system 50 using open database connectivity (ODBC) or java database connectivity (JDBC), for example. In one embodiment, the file encryption server 30 may be a personal computer (PC), a network server, or any other data-processing equipment. The first database system 50 may store files encoded in a variety of formats, such as WORD files, joint photographic experts group (JPEG) files, portable document format (PDF) files. Additionally, each of the one or more client computers 10 provides an operation interface for controlling one or more operations of the file encryption server 30 .
The CA server 40 electronically connects to a second database system 60 using the ODBC or the JDBC, for example. In one embodiment, the CA server 40 may be a personal computer (PC), a network server, or any other data-processing equipment. The second database system 60 may store information of users, such as a CA certificate of the user.
FIG. 2 is a block diagram of one embodiment of the file encryption server 30 including a file encryption unit 300 . The file encryption unit 300 may be used to automatically encrypt files. In one embodiment, the file encryption unit 300 includes a receiving module 301 , a determination module 302 , a conversion module 303 , an obtaining module 304 , a generation module 305 , and an encryption module 306 . One or more computerized codes of the modules 301 - 306 are stored in a storage system 32 of the file encryption server 30 . One or more general purpose or specialized processors, such as a processor 34 executes the computerized codes of the modules 301 - 306 to provide one or more operations of the file encryption unit 300 .
The receiving module 301 receives a login request of the user from the client computer 10 to encrypt a test file stored in the first database system 50 . In one embodiment, the user can input a name and password using an input system of the client computer 10 , where the client computer 10 sends the login request to the file encryption server 30 . The input system may comprise a mouse, a keyboard, or a virtual keyboard, for example.
The determination module 302 determines if the CA certificate of the user is valid. In one embodiment, the determination module 302 determines if the CA certificate of the user is valid on the condition that the CA certificate of the user is not expired.
The conversion module 303 converts the test file into a compressed file having a specific format. In one embodiment, the specific format is a compression format, and the extension of the compression format is “*.hhi.” By using the specific format, the test file may store both text sections and image sections with a high compression ratio. Further details regarding how to convert the test file into the compressed file are described with respect to FIG. 4 .
The obtaining module 304 sends a search request to the CA server 40 to obtain a public key of the CA certificate of the user. It is understood that each CA certificate of the user includes the public key, a serial number, and identity information (e.g., name and ID number) of the user. The obtaining module 304 obtains the public key of the CA certificate of the user from the CA server 40 through the network 20 .
The generation module 305 generates a random key using a random function. In one embodiment, the random function may be, but is not limited to, a Win32 Crypto API(<wincrypt.h>).
The encryption module 306 symmetrically encrypts the compressed file using a symmetric encryption and the random key. It is understood that the symmetric encryption encrypts or decrypts the compressed file using the random key.
The encryption module 306 further asymmetrically encrypts the random key using the public key to generate an asymmetric encryption key (or private key). It may be understood that asymmetric cryptography includes a pair of keys known as an asymmetric encryption key and an asymmetric decryption key. An asymmetric encryption key cannot be used to determine a corresponding asymmetric decryption key.
The encryption module 306 further attaches the asymmetric encryption key and data length of the asymmetric encryption key to a header of the compressed file. In one embodiment, the header refers to supplemental data placed in the beginning of the compressed file. For example, the header may include information of a size, a name, a format, and a data length of the compressed file, or a size and a data length of the asymmetric encryption key and the like.
FIG. 3 is a flowchart of one embodiment of a file encryption method. Depending on the embodiment, additional blocks may be added, others deleted, and the ordering of the blocks may be changed.
In block S 310 , the receiving module 301 receives a login request of a user from the client computer 10 to encrypt a test file stored in the first database system 50 . As mentioned above, the user inputs a name and password using client computer 10 , then the client computer 10 sends the login request to the file encryption server 30 to encrypt the test file, such as a PDF file. It is understood that the login request may be generated when the user inputs a name and password using the client computer 10 .
›DETAILED DESCRIPTION · 2 of 2
In block S 311 , the determination module 302 determines if the CA certificate of the user is valid. If the CA certificate of the user is valid, the process goes to block S 312 . If the CA certificate of the user is not valid, the procedure ends. As mentioned above, the CA certificate of the user is valid on the condition that the CA certificate of the user is not expired. In one embodiment, the determination module 302 compares an expiration date of the CA certificate of the user with the current date. If the current date is before the expiration date, the CA certificate of the user is not expired.
In block S 312 , the conversion module 303 converts the test file into a compressed file having a specific format. Further details regarding how to convert the test file into the compressed file are described with respect to FIG. 4 .
In block S 313 , the obtaining module 304 sends a search request to the CA server 40 to obtain a public key of the CA certificate of the user. In one embodiment, the obtaining module 304 obtains the public key of the CA certificate of the user through the network 20 .
In block S 314 , the generation module 305 generates a random key using a random function. In one embodiment, the random function may be, but is not limited to, a Win32 Crypto API(<wincrypt.h>).
In block S 315 , the encryption module 306 symmetrically encrypts the compressed file using the random key. It is understood that a symmetric encryption encrypts or decrypts the compressed file using the random key. In one embodiment, the encryption module 306 symmetrically encrypts the compressed file by using a data encryption standard (DES) algorithm. Depending on the embodiment, other encryption algorithms, such an advanced encryption standard (AES) algorithm may be used to symmetrically encrypt the compressed file.
In block S 316 , the encryption module 306 further asymmetrically encrypts the random key using the public key to generate an asymmetric encryption key (or private key). In one embodiment, the encryption module 306 asymmetrically encrypts the random key using an RSA encryption algorithm.
In block S 317 , the encryption module 306 further attaches the asymmetric encryption key and data length of the asymmetric encryption key to a header of the compressed file. In one embodiment, the header refers to supplemental data placed in the beginning of the compressed file. For example, the header may include information of a size, a name, a format, and a data length of the compressed file, or size and data length of the asymmetric encryption key and the like.
FIG. 4 is a detailed description of one embodiment of block S 312 in FIG. 3 .
In block S 1 , the conversion module 303 divides the test file into a plurality of sections in accordance with types of the sections. In one embodiment, the types of the sections include at least an image section and a text section. It is understood that the conversion module 303 can divide the test file according to a number of color pixels contained in the section. For example, if the number of color pixels in the section is greater than or equal to a preset threshold value (e.g., a half of a total number of pixels in the section), the section is the image section. If the number of color pixels in the section is less than the preset threshold value, the section is the text section. Referring to FIG. 5 , the test file 5 to be compressed is divided into five sections: b 1 , b 2 , b 3 , b 4 , and b 5 , where sections b 1 , b 3 , and b 5 are image sections, and sections b 2 and b 4 are text sections.
In block S 2 , the conversion module 303 determines the type of each of the sections. If the section is the image section, the process goes to block S 3 . If the section is the text section, the process goes to block S 4 if the section is the text section.
In block S 3 , the conversion module 303 compresses the image sections with an image compression algorithm (referred to 5 b of FIG. 5 ). In one embodiment, the image compression algorithm may be a DCT-based (e.g., JPEG) compression algorithm or Wavelet-based (e.g. JPEG2000) compression algorithm.
In block S 4 , the conversion module 303 compresses the text sections with a text compression algorithm (refer to 5 a of FIG. 5 ). In one embodiment, the text compression algorithm may be a fax encoding algorithm, such as CCITT Group 3 or CCITT Group 4, and the section compressed by the text compression algorithm is a binary image.
In block S 5 , the conversion module 303 concatenates the image sections and the text sections to obtain the compressed file. In one embodiment, the conversion module 303 obtains a header of each page, concatenates each compressed section to a same page according to the header of the page, and concatenates all of the pages to obtain the compressed file.
Although certain inventive embodiments of the present disclosure have been specifically described, the present disclosure is not to be construed as being limited thereto. Various changes or modifications may be made to the present disclosure without departing from the scope and spirit of the present disclosure.
Claims as granted
20 claimsLog in to read the claims of this application.
Log in to unlockClassifications
2 codes- H04L29/06
Claim changes
SoonSee which claims were amended, added or cancelled during examination, with every added and removed word marked.
The published claims of this application are not paired with the granted ones in what we hold.
File wrapper
See the full prosecution history — every USPTO and applicant action on this file, in order.
Log in to unlockDocuments
Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.
Log in to unlockChain of title
See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.
Log in to unlock