Abstract:
The present invention is a secure system and method for providing automated access to electronic information stored in a database in either a local or remote location. The system utilizes a machine-readable code printed on a document, referred to herein as an intelligent document since it stores information used to automatically access the information. The machine-readable symbol is encoded with source data (including a file location pointer) that is first obfuscated by generating a checksum of the source data, encrypting the source data by using the checksum as an encryption key, and assembling the checksum with the encrypted source data prior to encoding. The machine-readable symbol is then printed and distributed by the vendor by any logical means to the end user. The end user then scans the code via appropriate code scanning (e.g. bar code scanning) equipment, and de-obfuscates the scanned data by parsing the checksum, decrypting the remainder of the scanned data string (which includes the file location pointer) using the parsed checksum as a decryption key, computing a checksum of the decrypted data string, and comparing the computed checksum with the parsed checksum to determine the validity of the code. The file location pointer is then used to access the appropriate file. In a preferred embodiment, a Web browser program is launched, and the URL of the vendor&#39;s Web site is accessed through the Internet.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application is based on and claims the priority of co-pending provisional patent application filed in the United States Patent and Trademark Office on Nov. 8, 1996 and assigned Ser. No. 60/030,166. 
    
    
     BACKGROUND OF THE INVENTION 
     Electronic data sources, such as conventional databases, the Internet (i.e., the World Wide Web(&#34;WWW&#34;)) are a rich and important means of information retrieval and distribution and, increasingly, electronic commerce. However, there are problems finding the information desired in this increasingly complex and changing network of data sources. Recently introduced Internet &#34;search engines&#34;, such as YAHOO, help by allowing a user to search on-line indices of information sources, and even full source text, for relevant key words and phrases related to their topic of interest, but even carefully structured queries by experienced users often results in hundreds and even thousands of possible &#34;hits&#34; which are not sufficiently specific to preclude further manual search which is both data resource inefficient and time consuming. 
     Because of these inefficiencies, as well as general lack of familiarity with search engines and their syntax, users often rely on human readable print and broadcast media advertising to identify source addresses (e.g., Uniform Resource Locators (&#34;URLs&#34;)) for Web sites and other online information of interest. Print media is particularly effective since: (1) it is the most ubiquitous method of communication and advertising in the modern world; and (2) a printed document can serve as a persistent reference to be saved and used during a subsequent on-line session. 
     However, human readable printed source addresses, and especially URL&#39;s, are particularly difficult to manually enter in software programs, such as web browsers, due to their length and use of complex and unfamiliar symbols. If the characters in a URL are not entered exactly, retrieval is prevented or, in a limited number of cases, a legal but incorrect source is accessed. This is especially true when URLs incorporate foreign languages and/or complex query instructions to on-line databases, as is increasingly frequent in most Web sites. In addition, the inability to type or otherwise manually enter symbolic address information due to either disability or lack of training complicates use of on-line information resources such as the Internet for millions of individuals. 
     Finally, it is widely anticipated that Internet access will increasingly be provided through interactive cable television via Web-ready television receivers and set-top boxes used in conjunction with conventional television receivers. In this home entertainment environment, it is difficult to use keyboards for address entry due to both lack of typing skill and the cumbersome placement of these components. Another method which would eliminate typing and allow users to directly link printed addresses and query scripts to electronic information sources would be highly desirable. 
     Companies that host Web sites for the purpose of providing information such as advertising, often want to know the identity and other related information of the users who visit their sites (i.e., download files therefrom). It would be quite advantageous to provide such companies or vendors with this information as part of a specific file transfer request, e.g., as part of a CGI parameters string included in a URL. Additionally, it would be desirable to be able to effect a secure manner of transferring this information, so that a user would have confidence in the system and thus send sensitive information such as a credit card number or the like with the file transfer request. This would enable electronic commerce to flourish well beyond the point it exists today. 
     SUMMARY OF THE INVENTION 
     The present invention is a system and method for providing automated access to electronic information stored in a database in either a local or remote location. The system utilizes a machine-readable code printed on a document, referred to herein as an intelligent document since it stores information used to automatically access the information. The machine-readable symbol comprises encoded source data, wherein the source data comprises application launch information as well as file location information. The source data is encoded and printed, and then distributed by the vendor by any logical means to the end user. The end user then scans the code via appropriate code scanning (e.g. bar code scanning) equipment, decodes the raw decoded data, and the file location information is then used to access the appropriate file. In a preferred embodiment, a Web browser program is launched, and the URL of the vendor&#39;s Web site is accessed through the Internet. Local file retrieval may also be implemented on the client computer itself, as well as over an intranet or LAN environment. Additional user-specific demographic data such as the user&#39;s name and address may also be encoded in the machine-readable code when the document is specifically tailored for individual targeting, such as mailing labels. This demographic information is uploaded to the WWW site for use by the vendor. In addition, the present invention encodes security data, such as an encryption key, for use in secure data transmissions such as electronic commerce over the Internet. 
     In particular, the present invention is a method and system for a computer, such as a client computer in a networked computer system, to retrieve a computer file in which a symbol data string comprising a file location pointer is encoded into a machine readable symbol such as a two-dimensional bar code symbol, and the machine readable symbol is rendered within a data carrier (e.g. printed on an intelligent document). A computer input device such as a two-dimensional bar code scanner is coupled to the client computer and transposes an input data string from the machine readable symbol. The computer parses the input data string to determine the file location pointer, and the file location pointer is then utilized pointer to request the computer file designated thereby. 
     The file location pointer may be utilized to request the computer file by either passing it to an application program on the client computer suitable for processing the corresponding computer file, and then the application program retrieving the computer file from the specified file location. Alternatively, the file location pointer may be utilized to request the computer file by retrieving a copy of the computer file from the specified file location, and then invoking an application program on the client computer suitable for processing the corresponding computer file. 
     The client computer assembles a computer file transfer request word including the file location pointer and transmits the request word to a target server computer over a computer network system, which may be a wide area network such as the Internet or a local area network (LAN) or intranet. The file location pointer may alternatively specify the location of a computer file stored in a local memory resident in the client computer rather than on a target server computer. When the computer file to be retrieved is on a target server computer on a network, then the file location pointer is a network address associated with the target server computer and a file identifier correlated to the computer file requested by said client computer. In particular, when utilizing the Internet, the file location pointer may be in the form of a uniform resource locator (URL). In any type of networked environment, the target server computer receives the computer file transfer request word and transmits a computer file to the client computer in response thereto. 
     In addition to the file location pointer, the present invention takes advantage of the information density of the two-dimensional symbology by encoding a source identifier data string within the machine readable symbol. The source identifier data string is used to denote the particular source of the data carrier such as a particular magazine or ad, or can be used to denote an expected user or targeted group of users of the data carrier. The source identifier string is then transposed by the client computer, assembled within the computer file transfer request word, and transmitted to the target server computer. The target server computer stores the source identifier data string received from the client computer in the computer file transfer request word. 
     Additionally, the machine readable symbol also has encoded therein an encryption key associated with the source identifier data string, which is also transposed by the computer input device. The encryption key is used by the client computer to encrypt information specific to a user of the client computer, and the encrypted user information is assembled within the computer file transfer request word and transmitted to the target server computer. The information specific to a user may be obtained, prior to encryption, from a user information data file stored on the client computer, or it may be obtained from user demographics data correlated to a targeted user of the data carrier that had been previously encoded within and transposed from the machine readable symbol. 
     The target server computer may then utilize the source identifier data string received as part of the file transfer request word to access a lookup table to determine a decryption key, and then decrypt the encrypted user information received said client computer in the file transfer request word. The lookup table may either be stored locally on the target server computer, or it may be stored remotely on a secondary server computer. 
     The decrypted user information may comprise sensitive user information such as a credit card number associated with the user of said client computer, thus enabling on online electronic commercial transaction by utilizing the credit card number. The user demographics data may be used by the target server computer to determine the file to transmit to the client computer; i.e. certain files may be targeted to specific users of the system. 
     The machine-readable symbol may also have encoded therein an executable command to launch a software utility resident on the client computer, and the software utility is then automatically launched after the machine readable symbol is transposed. For example, the software utility may be an Internet browser program or a word processing program. In addition, specific functions may also be encoded in the machine readable symbol along with the application launch command, such as a command to execute a print job of the retrieved computer file. 
     The symbol data string may optionally be obfuscated prior to being encoded into the machine readable symbol, in which case the input string transposed must likewise be de-obfuscated by the client computer. The obfuscation may be by computing a checksum of the symbol data string, encrypting the symbol data string by utilizing the checksum as an encryption key, and assembling the checksum with the encrypted symbol data string prior to encoding into the machine readable symbol. The de-obfuscation would then be accomplished by parsing the input data string to determine the checksum, decrypting the encrypted symbol data string with the checksum as a decryption key, computing a checksum of the decrypted symbol data string, and comparing the computed checksum with the checksum from said input data string. A valid data condition would be indicated when the comparison step is successful; and an invalid data condition would be indicated when the comparison step is unsuccessful. 
    
    
     BRIEF DESCRIPTION OF THE DRAWING 
     FIG. 1 is a diagram of the system of the present invention. 
     FIG. 2 is a diagram of the document generation function of FIG. 1. 
     FIG. 3 is a diagram of the client computer functions of FIG. 1. 
     FIG. 4 is a diagram of the deobfuscating function carried out by the client computer of FIG. 3. 
     FIG. 5 is a diagram of the target server computer of FIG. 1. 
     FIG. 6 is a top level flowchart of the method of the present invention. 
     FIG. 7 is a flowchart of the document generation of the present invention. 
     FIGS. 8 and 9 are a flowchart of the scanning and processing by the client computer of the present invention; and 
     FIG. 10 is a flowchart of method used by the target server computer of the present invention. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     The system 100 of the present invention for generating and reading an intelligent document 10 is illustrated in block diagram form in FIG. 1. The system 100 comprises an intelligent document generation system 14, which encodes, assembles and prints an intelligent document 10 for subsequent scanning at a client computer. 
     The system operates as follows: A vendor who wishes to provide an intelligent document 10 programs certain parameters into a data string 20 which will be encoded within a machine-readable code 12 and printed on the document along with text 16 or graphics 18. The document may be an advertisement in the form of a magazine insert or page, a brochure, a label for an envelope, a memorandum, and the like. 
     Parameters to be included within the machine-readable code depend upon the application desired by the vendor. FIG. 2 illustrates fields 1-6 of the symbol data string 20, which may comprise a file location pointer 21, a launch command 22, a user demographics field 23, a source identifier 24, an encryption key 25, and/or a code type field 26. For example, if the vendor wants the end-user to be able to access the vendor&#39;s Web site automatically upon scanning the symbol 12, then the parameters included in the machine-readable symbol may include the launch command 22 to launch an Internet browser application, such as NETSCAPE, and a Uniform Resource Location (URL) code into the file location pointer 21, such as http://www.xyzcorp.com. This information is encoded in accordance with the particular type of machine code being used. For example, one type of code which may be used by the present invention is a PDF417 symbol, which is described in detail in U.S. Pat. No. 5,304,786, which is incorporated by reference herein. The PDF417 symbol, known as a two-dimensional bar code symbol, has enough storage information to encode the browser launch command as well as the full URL. 
     A printer 30 then utilizes the encoded data and desired text and graphics to print an intelligent document 10 a shown in the Figures. The symbol data string 20 may also be obfuscated for security purposes, which will be described in detail below. 
     The intelligent document 10 is disseminated to the end user in accordance with the methods desired by the vendor. For example, if the intelligent document 10 is a magazine advertisement, then the user will obtain the magazine by conventional means such as purchase at a retail outlet, the mail, etc. 
     The user, after reading the text and graphics in the document, can access the Web site of the vendor by utilizing a scanner 34 in conjunction with his client computer 32, programmed with appropriate software in accordance with the invention. That is, the user will optically scan the code 12 with an optical scanner. An optical scanner sufficient to scan bar code symbols and the like is disclosed in U.S. Pat. No. 5,448,050, which is incorporated herein by reference. The device disclosed in the &#39;050 patent is housed within a mouse type device, thus also including circuitry useful in point-and-click applications popular in personal computer platforms today. 
     After the two-dimensional bar code data is scanned by the scanner 34, a decoder 36 is used to decode the raw data into usable commands and data. The decoder is typically a software program executed by the microprocessor of the computer, and provides thereby to an Internet browser 40 the URL which had been encoded by the vendor into the symbol 12. The browser 40 application is then loaded (if not already running on the computer 32) by the launch command, and the URL is used to access the Web site of the vendor accordingly at the target server computer 46 via the Internet 44. As a result, the user may automatically access the vendor&#39;s Web site to obtain a computer file therein without having to enter the URL by a keyboard, thus eliminating all chances of error due to manual data input. The requested file is obtained from file storage and generation means 50, and sent to the client computer via the Internet for display to the user on the browser 40. 
     The above scenario is useful when a vendor prints and distributes such intelligent documents on a mass scale. That is, the symbol 12 distributed is the same for each user. In an alternative embodiment, specific demographic information is included with the code to provide for personalized operation as follows. This scenario is useful when the vendor makes individual printings keyed to individual users, such as when mailing labels are printed for inclusion on an envelope surrounding a magazine or the like. 
     In this case, the vendor may include in the user demographics field 23 personal data such as the user&#39;s name, location, phone number, and other appropriate demographic information. When the user scans the document and accesses the Web site, the personal data is uploaded to the target server, thus providing the vendor with useful demographic data as to which user&#39;s have actually utilized the intelligent document scanning service. 
     The code may also include security information useful in completing secure transfers across the Internet. For example, an encryption key 25 appropriate in a public or private key system may be embedded within the symbol 12. An appropriate software routine in the user&#39;s computer utilizes the key after decoding it in order to encrypt certain data being sent across the Internet. For example, the encryption of credit card information is desired in order to thwart would-be intruders from misappropriating the information. The system of the present invention could be used to allow the user to order an item advertised in the brochure by taking the credit card number, already resident in the user&#39;s computer memory, and encrypting it with the key decoded from the code. When the user desires to purchase the item, he scans the associated code, and the credit card number is encrypted and transmitted as the Web site is accessed. The target server computer can match the source identifier string 24 sent with the transmission with the appropriate decryption key stored in a lookup table at the target server or on an external computer, and decrypt the credit card number accordingly. 
     The system 10 of the present invention has additional embodiments which allow quick and easy retrieval of a data file on an intranet or Local Area Network (LAN). Thus, a department of a company may distribute fliers regarding certain events, new products, etc., and encode appropriate document access information in accordance with the teachings of the invention. The user may obtain further information by scanning the code on the document, which then causes his computer to access his network, file server, etc. 
     This embodiment is also useful in a small office environment, where a user prints out documents such as letters or memos that may need to be revised at a later date. It is common practice to manually type in the drive location of the document in the lower corner of the document to allow the user to easily access the document at a later date, without searching through massive amounts of files. Thus, a user may type in the text &#34;c:\user\files\smith\clients.backslash.letters\xyzcorp\jonesltr\dec12&#34; to indicate its location on his drive. When he desires to edit or otherwise access the document, he would, in the prior art, have to type in the entire location after launching the proper application (e.g. word processor). In accordance with the teachings of the present invention, a machine readable code may be encoded with this information as the file location pointer (as well as a command to launch the application) and printed on the document. When the user later desires to edit the document, he scans the code. The code is decoded, the application is launched, and the file is fetched from the location specified in the code. 
     The invention will now be described in further detail. 
     FIG. 2 is an illustration of the obfuscation function of the present invention. Prior to being encoded, the symbol data string may optionally be obfuscated in order to improve the security aspects of the system. The symbol data string is input into a checksum computing means 62, which then computes the checksum of the symbol data string in accordance with teachings well known in the prior art. The computed checksum is then used as a key in an encryption scheme 66 which may be one of several well known encryption methodologies known in the prior art. The key 64 is assembled in the clear (i.e., unencrypted) along with the encrypted symbol data string into by the encoding function 29. After this encrypted data string and cleared checksum data is encoded, it is rendered by the printer 30 in accordance with methods well known in the art and the intelligent document is thereby generated. 
     After the intelligent document 10 is distributed to the user, the bar code symbol 12 is scanned by bar code scanner 34 and processed as follows. The scanned symbol data is decoded by means well known in the art in accordance with the particular symbology implemented to encode the symbol 12. Once the symbol data has been decoded, it is deobfuscated (if the original symbol data had been obfuscated as described above) by deobfuscation function 37 which is illustrated in detail in FIG. 4. First, the clear checksum 64 is utilized as a key to decryption function 97 to decrypt the encrypted string 67. The decryption function 97 which was preloaded onto the client computer as part of an initialization process with the system is a corollary to the encryption function 66. By passing the checksum 64 in the clear and utilizing it as the key, it enables the client computer and document generation computing means to be synchronous with respect to the encryption methodology. After the decryption function 97 produces the clear data string comprising the original file location pointer 21, launch command 22, user demographics 23, source ID 24, key 25 and code type 26, then the checksum computing means 99 operates to compute a checksum of those fields. That computed checksum is then compared by comparison block 101 with the received clear checksum 64 that was decoded by the decoding process 36. If the comparison process 101 indicates that the computed checksum equals the received clear checksum, then go/no go signal 103 indicates that the data transmission and decryption process was successful. If, however, the checksums are not favorably compared, then the go/no go signal 103 will indicate an unsuccessful transmission and decryption process. If this is unsuccessful, then further processing is aborted. 
     Once the symbol data is deobfuscated, it is then parsed by parsing block 39 in order to utilize the constituent fields as follows. The file location pointer 21 and source identifier string 24 are assembled into a register that will comprise the file transfer request. The file transfer request register is also loaded with a client version 72 taken from local memory 70 on the client computer. The user demographic string 23 is optionally fed into an encryption block 80 which is then used with encryption key 25 to encrypt that data and put the results as encrypted user information 82 into the file transfer request string 90. Optionally, the encryption function 80 may utilize certain local user data 74 that had been stored on the memory 70 of the client computer. This local user data may comprise sensitive information, such as the user&#39;s credit card number. Advantageously by encrypting this information the user will have a higher level of confidence that this sensitive information can be transmitted over the Internet for applications such as electronic commerce. Thus, the file transfer request register 90 will comprise the file location pointer 21, the client version 72, certain encrypted user information 82 and the source identifier 22. 
     The code type string 26 is compared by block 78 to the internally stored code type 76. If the comparison is unsuccessful, then further processing is aborted. This process is useful to enable certain versions of the client software to be distributed such as on a demonstration or trial basis, and this trial software will only work with certain documents generated by corresponding document generation software modules. Thus, a user having a trial version will not be able to fully utilize the system until it purchases by license or otherwise the production version. Utilization of this type of code type matching also enables the system vendor to control expired licenses, etc. 
     Once the file transfer request has been successfully assembled, it is then sent to the appropriate interface in order to obtain the requested file. In the preferred embodiment, the file transfer request will take the form of a uniform resource locator (URL) which will be sent to the Internet browser software 40 that is resident and on the client computer. Optionally, if the file transfer request string indicates that the file is located on a Local Area Network such as LAN 98, then the file transfer request will be transmitted through the LAN interface 96 of the client computer in order to obtain the correct file. Further optionally as described above, the file transfer request may seek to obtain a file stored in local memory, such as on the user&#39;s hard drive 94. 
     Referring to FIG. 5, the operation of the target server computer will now be described in detail. When the file transfer request 90 indicates that the file to be retrieved is located on an Internet file server, then the file location pointer 21 will comprise a URL, which comprises an IP address (Internet Protocol), as well as a file identifier. The IP address, as is well known in the art, is the address of the target server computer on the Internet. The Web server program 112 that is running on the target server computer 46 receives the URL over the Internet 44 and strips out certain parameters contained therein. The source identifier 24 is used to access a look up table 110 which comprises a plurality of source identifier strings and their associated decryption keys. This decryption key that is obtained from the key table 110 is then used by decryption block 114 to decrypt the encrypted user information received in the file transfer request. Decryption function 114 is corollary to the encryption function 80 performed at the client computer. Thus, the secure information transferred with the file transfer request is decrypted and user information file 122 may be stored in user log 52, along with the date and time stamp 120 to indicate when the particular request was received. This information is quite valuable to the vendor, since it enables it to determine the name and other useful information relating to users who have accessed its Web site. This information may also be utilized by file generation and storage means 50 to dynamically determine the file or files to be sent back to the client computer. For example, if the demographics data indicates that the user would prefer the file returned back in a language other than English, that file can be accessed or generated appropriately. Thus, in addition to retrieving a static page stored in the target server computer, the system of the present invention allows dynamic generation and return of computer files in accordance with user&#39;s preferences indicated in the transfer request. In addition, as described herein, if the user has allowed his credit card number to be encrypted and sent with the file transfer request, then the target server computer can decrypt the credit card number and utilize it to perform a secure on-line transaction. 
     In the alternative to having a file resident on the target server computer, it may be required for the target server computer to access an auxilliary file server 118 to get the external file and return it back to the client computer. The auxilliary file server 118 may be accessed directly, through a dial up modem connection, or through the Internet. In addition, an external key server 116 is accessible by the target server computer if it is desired by the system designer to keep the key table 110 remote from the target server computer, rather than local therein. By keeping a key table 110 at a central server location, the system provider can keep track of server requests to decrypt user information and charge a fee accordingly. Thus, a vendor utilizing this system may have the option of paying a &#34;per click&#34; fee to determine the user demographics of each user that accesses his server or may just provide files back to the user without obtaining that knowledge on a less costly basis. 
     When the file is returned back to the client computer through the Internet 44, it may be displayed in a manner well known in the art on the Internet browser 40. Thus, the system of the present invention has provided an easy and error proof way for a user to obtain a computer file from an Internet server computer by simply scanning a code provided on an intelligent document and having the client automatically process the code, request the file wherein the file is then returned by the target server computer and displayed to the user. 
     FIGS. 6 through 10 illustrate the flowcharts of the methodologies employed by the present invention. FIG. 6 is an overall flowchart wherein step 202 illustrates the data string comprising the file location pointer, launch command, user demographics, source identifier, key and code type. At block 204, the data string is utilized to generate an intelligent document 10 which is also distributed to the end users. At step 208, the bar code symbol is scanned, and at step 210 the data is decoded and processed and the file request is assembled. At step 212 the file request is transmitted over the Internet and at step 214 the target server fetches and/or generates the computer file requested. Finally, at step 216 the file is transmitted to the client computer and displayed on the browser to the user. 
     FIG. 7 is a more detailed flowchart of the document generation procedure. The data string at 202 is used to compute a checksum at step 218. At step 220, the checksum is used to encrypt the data string and at step 222 the checksum and encrypted data string are assembled. At step 224 the bar code symbol is encoded and at step 226 the bar code symbol is printed with optional text and graphics onto the intelligent document 10. 
     FIGS. 8 and 9 illustrate the detailed operation of the client computer. At step 208 in FIG. 8, the bar code symbol is scanned. At step 218 the input data string is parsed in order to derive the checksum and it is then decrypted with the checksum as the key. The decrypted string is used to computer a checksum and the received checksum is compared with the computed checksum. If the checksums are not equal, an invalid condition is declared and the process exits at step 230. If data is indicated valid at step 232, then the stored code type is fetched from the client&#39;s memory at step 234. A comparison of the code type from the client memory with the received code type is compared at step 230. If an invalid data condition is indicated in this test, then the process exits at step 230 and if the code types match, then the process continues with an unpacking of the decrypted string at step 238. 
     Referring now to FIG. 9, the step 240 will encrypt the user data file from the client memory and optionally the user demographics received from the bar code to generate an encrypted user file. At step 242, the encrypted user file is assembled into the file transfer request 248. At step 244, the file location pointer comprising the IP address and file ID and the source ID are also assembled into the file transfer request and at step 246, the client version is fetched from local memory and assembled into the file transfer request. At step 250, the browser is provided with the file transfer request and is optionally started by the launch command in the received string. At step 252, the file transfer request is transmitted to the target server, preferably in the preferred embodiment over the Internet in order to obtain the requested file. 
     FIG. 10 illustrates the details of the methodologies employed by the target server computer. At step 254, the target server computer receives the file transfer request, and at step 256 the Web server program running on the target server computer uses the received source identifier to fetch the associated decryption key which may be internal or externally located. At step 258, the user file is decrypted and the user data is stored in a log. If the static page has been requested by the user, then the file location is looked up as a function of the file identifier. At step 264, the file is fetched from that location at step 268 and returned to the client computer via the Internet at step 270. If the static page was not requested at block 262, then a dynamic page is generated at step 266 which typically will be a function of the file identifier and/or the user data that had been received and decrypted. Again, the file is then returned to the client computer by the Internet and displayed on the user&#39;s browser at step 272.