IMMUTABLE DOCUMENT SEALING AND AUTHENTICATION

Immutable document sealing includes loading a digital image of a document into memory of a computer and applying snowflaking to the digital image by incorporating one or more non-visible elements to the digital image. Immutable document sealing additionally includes generating a primary salted hash value based upon the snowflaked digital image to produce an additive value and combining the primary salted hash value with a selected name for the digital image in order to generate a secondary salted hash value of the combination. Finally, Immutable document sealing includes adding the secondary salted hash value to the selected name for the digital image of the document to produce a modified form of the selected name and persisting the encrypted digital image into a new file with the modified form of the selected name as a new name for the new file.

BACKGROUND OF THE INVENTION

Field of the Invention

The present invention relates to the technical field of document security and more particularly to integrity assurance for archivable documents.

Description of the Related Art

Document security refers to the ability of a document author to secure the content of a document from viewing by an unauthorized individual. Document security also refers to the ability of a document author to ensure the authenticity of a document once transmitted to a viewer without permitting unauthorized modifications to the document. Of course, as to the latter ability, document authenticity also refers to the assurance that a document presented is not a spoof or replacement document for an actual document so as to misrepresent the content of the document to the recipient. Generally, a combination of password protection and encryption provides the mechanism toward assuring document security.

The conventional mix of password protection and encryption require the cooperation of different participants to a document authenticity transaction—particularly when digital certificates are involved. As well, garden variety human steps generally permit a malicious actor to circumvent most technical measures aimed at assuring the authenticity of a document, those steps including generating a duplicate document of the same name as the authentic document and then modifying the portions of the duplicate document as desired by the malicious actor. The very act of a creating the new document as a spoof to the authentic document places most of the security measures aimed at securing the document at the disposal of the malicious actor to the detriment of the unwitting recipient of the spoofed document.

BRIEF SUMMARY OF THE INVENTION

Embodiments of the present invention address technical deficiencies of the art in respect to document protection and the assurance that the content of the document has not been modified. To that end, embodiments of the present invention provide for a novel and non-obvious method for immutable document sealing. Embodiments of the present invention also provide for a novel and non-obvious computing device adapted to perform the foregoing method. Finally, embodiments of the present invention provide for a novel and non-obvious data processing system incorporating the foregoing device in order to perform the foregoing method.

In one embodiment of the invention, a method for immutable document sealing includes loading a digital image of a document into memory of a computer and applying snowflaking to the digital image by incorporating one or more non-visible elements to the digital image. The method additionally includes generating a primary salted hash value from at least a portion of the snowflaked digital image. As it will be understood, a salted hash value refers to the use of random data—a salt—as an additional input to a hash function that hashes content to produce the hash value, which optionally, is stored within a non-visible area of the snowflaked digital image. Here, the primary salted hash value is then combined with a selected name for the digital image in order to generate a secondary salted hash value of the combination. Finally, the method includes adding the secondary salted hash value to the selected name for the digital image of the document to produce a modified form of the selected name and persisting the snowflaked digital image into a new file with the modified form of the selected name as a new name for the new file.

In one aspect of the embodiment, once the document has been persisted with the modified form of the selected name, the document subsequently can be authenticated according to the following process. The new file name for the new file is extracted and then the selected name is extracted from the new file name along with the secondary salted hash value. A document salted hash is then computed for the new file along with a file salted hash for the new file. As well, a file name salted hash is computed for the document hash in combination with the selected name. Thereafter, a combined salted hash of the document hash and the file name salted hash is computed. The combined hash may then be compared to the secondary salted hash value. In response, the new file is considered authenticated on condition that the comparison results in a determination that the combined salted hash is identical to the secondary salted hash value.

Other aspects of the embodiment pertain to the random embedding of the non-visible elements, based on file type of the document, during snowflaking. Those aspects include:

In another embodiment of the invention, a data processing system is adapted for immutable document sealing. The system includes a host computing platform of one or more computers, each with memory and one or processing units including one or more processing cores. The system further includes persistent storage accessible by the host computing platform. Finally, the system includes a sealing module. The module includes computer program instructions enabled while executing in the memory of at least one of the processing units of the host computing platform to perform immutable document sealing.

Specifically, immutable document sealing includes loading a digital image of a document into memory of a computer and applying snowflaking to the digital image by incorporating one or more non-visible elements to the digital image. Immutable document sealing additionally includes generating a primary hash value from at least a portion of the snowflaked digital image and combining the primary salted hash value with a selected name for the digital image in order to generate a secondary salted hash value of the combination. Finally, Immutable document sealing includes adding the secondary salted hash value to the selected name for the digital image of the document to produce a modified form of the selected name and persisting the snowflaked digital image into a new file with the modified form of the selected name as a new name for the new file.

In this way, the technical deficiencies of the conventional manner of securing the authenticity of a document are overcome owing to the combination of snowflaking the document image into uniqueness and then integrating the uniqueness of the document image with the document naming of the document image itself so as to render the linkage between document name and document unbreakable. In this way, no amount of human step recreation of the document into a spoofed document image of common name with the authentic document will be possible as the document name of the spoofed document image will not comport with the content of the spoofed document image owing to the snowflaking of the authentic document.

DETAILED DESCRIPTION OF THE INVENTION

Embodiments of the invention provide for immutable document sealing. In accordance with an embodiment of the invention, a document image is subjected to random snowflaking in order to ensure the uniqueness of the document image. A salted hash is then generated for the snowflaked image and the salted hash is combined with a proposed name for the document image, the combination being subjected to another hashing to produce a secondary salted hash value. The secondary salted hash value is then combined with the proposed name as the new name for the document and the snowflaked image is persisted to storage with the new name. Consequently, upon subsequent authentication, a newly computed secondary salted hash value for a suspect document can be confirmed by matching the newly computed secondary salted hash value to the portion of the name of the suspect document referring to the secondary salted hash value.

In illustration of one aspect of the embodiment, FIG. 1 pictorially shows a process of immutable document sealing. As shown in FIG. 1, immutable document sealing logic 100 applies snowflaked data 130 to a digital document image 120 in order to produce a snowflaked digital document image 140. In this regard, the snowflaked data 130 can include a randomly generated value combined with data derived from a context of the digital document image 120, including data stored within the digital document image 120, whether visible or hidden as meta-data, data stored as part of the software installation of the immutable document sealing logic 100 processing the digital document image 120, or environmental data determinable at a time of processing the digital document image 120 by the immutable document sealing logic 100.

The derived context can include, by way of example, unique information stored within the immutable document sealing logic 100 that had been generated at a time of installation of the immutable document sealing logic 100. The derived context also can include a date and/or time when the digital document image 120 had been created or last opened, the name of the digital document image 120. Finally, the derived context can be actual visible elements of the digital document image 120 such as a portion of or the entirety of text of the digital document image 120, or actual hidden elements of the digital document image 120 such as meta-data stored within the digital document image 120, in order to produce the snowflaked digital document image 140.

During the snowflaking process, the immutable document sealing logic 100 adds the snowflaked data 130 to the digital document image 120 in a manner obscured from view. Examples include placing a raster image of at least a portion of the digital document image 120 in a non-visible layer of the digital document image 120. Other examples include inserting obscured pixel-wise elements at randomly selected locations into the digital document image 120, a process known as tattooing, and limiting visibility of the pixel-wise elements by applying a coloring to the pixel-wise elements consistent with a background color of the digital document image 120. Yet further examples include embedding the unique information as non-visible meta-data within the digital document image 120.

Once the immutable document sealing logic 100 has applied the snowflaked data 130 to the digital document image 120 to produce the snowflaked digital document image 140, the immutable document sealing logic 100 computes a primary salted hash value 150 for the snowflaked digital document image 140 and generates a combination 170 of the primary hash 150 and a user selected document name 160 for the digital document image 120. The immutable document sealing logic 100 then computes a secondary salted hash value 180 for the combination 170 and concatenates the secondary salted hash value 180 with the user selected document name 160 to produce a new name for the snowflaked digital document image 140 which is then stored in persistent storage 110.

Aspects of the process described in connection with FIG. 1 can be implemented within a data processing system. In further illustration, FIG. 2 schematically shows a data processing system adapted to perform immutable document sealing. In the data processing system illustrated in FIG. 1, a host computing platform 200 is provided. The host computing platform 200 includes one or more computers 210, each with memory 220 and one or more processing units 230. The computers 210 of the host computing platform (the detail of only a single computer shown for the purpose of illustrative simplicity) can communicatively access fixed storage 280 and can be co-located within one another and in communication with one another over a local area network, or over a data communications bus, or the computers can be remotely disposed from one another and in communication with one another through network interface 260 over a data communications network 240.

Notably, a computing device 250 including a non-transitory computer readable storage medium can be included with the data processing system 200 and accessed by the processing units 230 of one or more of the computers 210. An operating system 270 executes by the one or more processing units 230 and facilitates the execution of different computer program modules. To that end, the computing device stores 250 thereon or retains therein a program module 300 that includes computer program instructions which when executed by one or more of the processing units 230, performs a programmatically executable process for immutable document sealing.

Specifically, the program instructions during execution process a document image 215A in the memory 220 and viewable in document viewer application 225 to produce a snowflaked document image 215B. The snowflaked document image 215B is produced by the program instructions by determining a file type for the document image 215A and matching the file type to an associated tattooing methodology receiving a random value as a seed to the methodology, such as by embedding a particular pixel or collection of pixels at randomly selected locations of the document image 215A, or by increasing the size of the document image 215A to a randomly larger size and then decreasing the size of the document image 215A to the original size, to name two possibilities. The program instructions further compute a primary salted hash value for the snowflaked document image 215B and additionally compute a secondary salted hash value for a combination of the primary salted hash value and a selected name for the document image 215A. The program instructions then generate a new name combining the selected name and the secondary salted hash value in order to direct the operating system 270 to persist the snowflaked document image 215B to fixed storage 280.

Subsequently, the persisted form of the snowflaked document image 215B can be retrieved from the fixed storage 280 from a remote client 290. The remote client 290 can then confirm the authenticity of the retrieved document by parsing out the selected name for the retrieved document and the appended value. A primary salted hash value is then generated for the retrieved document and combined with the selected name from which the secondary salted hash value is generated. To the extent that the secondary salted hash value matches the appended value, the authenticity of the retrieved document can then be confirmed.

In further illustration of an exemplary operation of the module, FIG. 3 is a flow chart illustrating one of the aspects of the process of FIG. 1. Beginning in block 310, a document image is selected for immutable security. In block 320, snowflaked data is applied to the selected document image to produce a snowflaked document image. Specifically, a random number is generated and then one of several different tattooing techniques for respectively different file types is selected based upon a corresponding file type of the selected document. In block 330, a primary hash is computed from the snowflaked document image and in block 340, a selected name for the selected document image is retrieved and combined with the primary hash in block 350. Then, in block 360 a secondary hash is computed from the combination of the primary hash and the selected name. As such, in block 370 a new name is created by concatenating the secondary hash with the selected name. Finally, in block 380 the snowflaked image is persisted to fixed storage using the new name.

More specifically, the present invention may be embodied as a programmatically executable process. As well, the present invention may be embodied within a computing device upon which programmatic instructions are stored and from which the programmatic instructions are enabled to be loaded into memory of a data processing system and executed therefrom in order to perform the foregoing programmatically executable process. Even further, the present invention may be embodied within a data processing system adapted to load the programmatic instructions from a computing device and to then execute the programmatic instructions in order to perform the foregoing programmatically executable process.

To that end, the computing device is a non-transitory computer readable storage medium or media retaining therein or storing thereon computer readable program instructions. These instructions, when executed from memory by one or more processing units of a data processing system, cause the processing units to perform different programmatic processes exemplary of different aspects of the programmatically executable process. In this regard, the processing units each include an instruction execution device such as a central processing unit or “CPU” of a computer. One or more computers may be included within the data processing system. Of note, while the CPU can be a single core CPU, it will be understood that multiple CPU cores can operate within the CPU and in either instance, the instructions are directly loaded from memory into one or more of the cores of one or more of the CPUs for execution.

Aside from the direct loading of the instructions from memory for execution by one or more cores of a CPU or multiple CPUs, the computer readable program instructions described herein alternatively can be retrieved from over a computer communications network into the memory of a computer of the data processing system for execution therein. As well, only a portion of the program instructions may be retrieved into the memory from over the computer communications network, while other portions may be loaded from persistent storage of the computer. Even further, only a portion of the program instructions may execute by one or more processing cores of one or more CPUs of one of the computers of the data processing system, while other portions may cooperatively execute within a different computer of the data processing system that is either co-located with the computer or positioned remotely from the computer over the computer communications network with results of the computing by both computers shared therebetween.