Verifying the tracked portion of the received sensor data using computer cryptography.
Patent Information
- Application Number
- JP2023506108
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-07-30
- Filing Date
- 2021-06-15
- Publication Date
- 2025-02-20
- Estimated Expiration
- 2041-06-15
Smart Images

Figure 0007633761000001 
Figure 0007633761000002 
Figure 0007633761000003
Abstract
Description
[Technical field]
[0001] The present invention relates generally to the field of media capture, and more specifically to verifying the authenticity of an originally captured media file, the nature of changes made to the captured media file, and the authenticity of various versions of files associated with the captured media. [Background technology]
[0002] Data can be obtained from sensors in a variety of capture devices, such as photo cameras, audio capture devices, infrared video capture devices, radar spatial information capture devices, sonar spatial information capture devices, lidar spatial information capture devices, laser "tripwires," chemical signature information capture devices, x-ray image capture devices, microwave image capture devices, air pressure readers, anemometers, etc. In some cases, it is important to be able to verify that stored data captured by one or more of these devices is an authentic representation of what was captured by the device. Summary of the Invention
[0003] Aspects of the present disclosure recognize and address shortcomings and problems associated with verifying the authenticity of tracked portions of a recorded media file. Other aspects of the present invention allow for identifying tracked portions of an original media file as significant data subsets and verifying the nature of changes made to those portions. Other embodiments of the present invention assess the authenticity of a file that is believed to be based on verifiable changes made to a recorded media file.
[0004] In an embodiment according to the invention, the computer identifies a capture device output representative of an aspect of the recorded event. The computer cryptographically processes the capture device output to generate a verifiable master file including the tracked portion of the media data of the master file from the capture device output, metadata of the master tracked portion of the master media data, and blockchain data of the master file. The blockchain data of the master file includes a history portion of the blocks of the master file, a signature key portion of the master file, and a signature data hash of the tracked portion of the master file. The cryptographic processing includes the computer dividing the media data into at least one data subset corresponding to the tracked portion, the computer generating a hash of the data subset, the computer generating metadata of the hash and the data subset, the computer combining the metadata of the hash with the tracked data packet, and the computer cryptographically signing the tracked data packet. In another aspect of the invention, the computer also modifies the tracked portion of the media data of the master file to generate the tracked portion of the media data of the reference file by preparing a reference file including the tracked portion of the media data of the reference file, the metadata of the reference file, and the blockchain data of the reference file. The blockchain data of the reference file includes the blockchain data of the master file and blockchain increment information including a hash of the blockchain data of the master file, blockchain metadata of the reference file, and a hash of the signed data of the tracked portion of the reference file. In another aspect of the invention, the reference file further includes instructions indicating replicable changes made by a computer to change the tracked portion of the media data of the master file to the modified media of the reference file. In another aspect of the invention, a computer receives a challenged master file identified as a copy of the verifiable master file.The computer also receives a request to verify the challenged master file and executes a master file validation routine to evaluate the validity of the challenged master file. In the master file validation routine, the computer hashes the tracked portion of the media data of the challenged master file to generate a hashed tracked portion of the media data of the challenged master file. The computer removes the signature of the signed media data hash portion of the challenged master file to generate a tracked portion of the media data of an unsigned challenged master file, and determines whether the tracked portion of the media data of the hashed challenged master file and the tracked portion of the media data of the unsigned challenged master file match. In another aspect of the invention, the computer receives a reference file identified as a modified version of the master file. The computer also receives a request to determine whether the reference file is a modified version of the master file and executes a reference file validation routine. In the reference file validation routine, the computer determines whether the hash of the blockchain data of the master file and the hash of the blockchain data of the reference file match. If there is a match, the computer applies the changes indicated by the blockchain increment information to the tracked portion of the media data of the reference file to generate a hashed tracked portion of the media data of the reference file. The computer also removes the signature of the block chain data of the reference file to generate an unsigned hash of the block chain data of the reference file. The computer determines whether the tracked portion of the media data of the hashed reference file matches the block chain data of the unsigned reference file. In another aspect of the invention, a computer receives a reference file identified as an authentic modification of the master file, a distributable file, and a request to determine whether the distributable file is an authentic modification of the reference file identified as an authentic modification of the master.The computer then performs a validation routine for the distributable file, in which the computer determines whether a hash of the blockchain data for the distributable file matches a hash of the blockchain data for the reference file. In the validation routine for the distributable file, the computer also determines whether a hash of the tracked portion of the distributable media data matches a corresponding unsigned hash of the representative media block.
[0005] In another embodiment of the invention, a system includes a computer system including a computer readable storage medium having program instructions implemented thereon, the program instructions being executable by a computer to cause the computer to: identify an output of a capture device, the output representing an aspect of a recorded event; cryptographically process the output of the capture device to generate a verifiable master file; where the verifiable master file includes tracked portions of media data from the output of the capture device, metadata of a master tracked portion of the master media data, and block chain data of a master file; and the block chain data of the master file includes a history portion of blocks of the master file, a signature key portion of the master file, and a signed data hash of the tracked portion of the master file.
[0006] In another embodiment of the invention, a computer program product includes a computer readable storage medium having program instructions embodied thereon, the program instructions being executable by a computer to cause the computer to: identify an output of a capture device, the output representing an aspect of a recorded event; cryptographically process the output of the capture device to generate a verifiable master file; where the verifiable master file includes tracked portions of media data from the output of the capture device, metadata of the master tracked portions of the master media data, and block chain data of a master file; and the block chain data of the master file includes a history portion of blocks of the master file, a signature key portion of the master file, and a signed data hash of the tracked portions of the master file.
[0007] Problems in verifying the authenticity of data files include the difficulty of determining whether a given file actually contains a true copy of selected portions of the data recorded from the capture device. Another problem is determining whether the indications in the change log are true representations of changes that occurred to the tracked portions of the file that contain modified versions of the captured data. Other problems arise when attempting to verify the authenticity of portions of various versions of a file (e.g., reference files or distributable files) that are not duplicates of the master file but that purport to contain verifiable variations of tracked portions of the master file.
[0008] These and other objects, features and advantages of the present invention will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings. Various features of the drawings are not to scale as they are illustrative for clarity to facilitate those skilled in the art in understanding the present invention in connection with the detailed description. The drawings are described below. [Brief description of the drawings]
[0009] [Figure 1] FIG. 1 is a schematic block diagram illustrating an overview of a system for computer-implemented generation of tracked portions of media data in a verifiable master file. [Diagram 2] 2 is a flow chart illustrating a method of capturing media data and storing associated master files implemented using the system shown in FIG. 1. [Diagram 3] 1 is an exemplary format of a master file having tracked portions according to an aspect of the present invention. [Figure 4] 2 is a flow chart illustrating a method for modifying a master file to generate a tracked portion of a file-of-reference according to an embodiment of the present invention, implemented using the system illustrated in FIG. 1 . [Diagram 5] 1 is an exemplary format of a reference file having tracked portions in accordance with an aspect of the present invention. [Figure 6] 2 is a flow chart illustrating a method for verifying a master file having tracked portions according to an embodiment of the present invention, implemented using the system illustrated in FIG. 1 . [Figure 7] 2 is a flow chart illustrating a method for verifying tracked portions of a file-of-reference according to an embodiment of the present invention, implemented using the system illustrated in FIG. 1; [Figure 8] 2 is a flow chart illustrating a method for verifying tracked portions of a distributable file according to an embodiment of the present invention, implemented using the system illustrated in FIG. 1 . [Figure 9] 2 is a schematic block diagram illustrating a computer system according to an embodiment of the present disclosure that can be incorporated in whole or in part into one or more computers or devices illustrated in FIG. 1 and cooperate with the systems and methods illustrated in FIG. 1. [Figure 10] FIG. 1 illustrates a cloud computing environment in an embodiment of the present invention. [Figure 11] FIG. 2 is a diagram showing abstraction model layers in an embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] The following description with reference to the accompanying drawings is provided to aid in a comprehensive understanding of exemplary embodiments of the present invention defined by the claims and their equivalents. Although various specific details are included to aid in the understanding, they are considered to be merely exemplary. Therefore, those skilled in the art will recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope and spirit of the present invention. Furthermore, descriptions of well-known functions and structures may be omitted for clarity and conciseness.
[0011] The terms and words used in the following description and claims are not limited to their bibliographical meanings, but are merely used to enable a clear and consistent understanding of the present invention. Therefore, it should be clear to those skilled in the art that the following description of exemplary embodiments of the present invention is provided for illustrative purposes only, and is not intended to limit the present invention defined by the appended claims and their equivalents.
[0012] The singular forms "a," "an," and "the" shall be understood to include plural references unless the context clearly dictates otherwise. Thus, for example, a reference to "participants" includes a reference to one or more of such participants, unless the context clearly dictates otherwise.
[0013] Now, with combined reference to the figures generally, and with reference to Figures 1 and 2 in particular, a method 200 for verifying the authenticity of tracked portions of recorded media files, the nature of changes made to the tracked portions of recorded media files, and the authenticity of a file believed to be based on verifiable changes made to the tracked portions of recorded media files will be outlined. The method 200 is implemented by a server computer 120 having an optionally shared storage device 122 and an embodiment 124 (including a signal processing chip 126, a cryptographic processing chip 128, a ROM 130, and a general processing chip 132 that cooperatively verify the authenticity of the tracked portions of recorded media files, indicate the nature of changes made to the tracked portions of recorded media files, and verify the authenticity of a file believed to be based on verifiable changes made to the tracked portions of recorded media files), and is therefore usable within the system 100. It should be noted that the storage device 122 may take a variety of forms, including a receiving bus, an I / O bus, a networking card, or other items capable of receiving file data, such as a master file 300, or a reference file 500, within the spirit of the embodiments of the present invention.
[0014] It should be noted that the methods of the present invention are contemplated for use by participant groups (e.g., professional organizations, business entities, etc.) and individuals who have the appropriate rights to capture the data described herein, and to use and process the captured data in the manner described. It is also contemplated that models whose likenesses are captured or used in accordance with aspects of the present invention have provided valid consent to such capture and use. The data described herein will be captured and used in accordance with legally appropriate manner and with all consents necessary for the intended use.
[0015] According to an aspect of the invention, a capture device 136 having sensors records aspects of reality 134, such as images, sounds, pressure measurements, etc., and passes the aspects to a signal processing chip 126 associated with the server computer 120. The capture device sensors send raw data to the signal processing chip 126, which converts and optionally compresses the raw data into a format usable by the system 100. If the signal processing chip 126 does not compress the data, an optional compression chip (not shown) may be used. The cryptographic processing chip 128 takes the processed (and possibly compressed) data, divides the data into predefined subsets (such as pixels or other discrete units associated with the data being processed), and hashes the subsets. According to an aspect of the invention, at least one of the hashed subsets corresponds to a trackable portion of the media data. Using the hashes of the subsets (including the subsets corresponding to the tracked portions), the cryptographic processing chip 128 appends the tracked portion metadata (e.g., subset, timestamp, etc.) of each hash and cryptographically signs the tracked portion hash data packets (i.e., the respective tracked portion metadata and hashes) with an immutable and unique private key maintained in the ROM 130. The signed tracked portion data hashes and media data are passed to the general processing chip 132, which combines the signed tracked portion data hashes and media data, along with any associated metadata, into a master file 300 having the format shown in FIG. 3. According to an aspect of the invention, the master file blockchain data 310 includes the master file block history portion 311A, the master file signature key portion 314A, and the signed data hashes 316A of the master file block history portion. It should be noted that certain portions of the master file block history may be null or may contain other agreed upon content that reflects the original, unaltered nature of the master file 300.
[0016] With further reference to FIG. 2, the server computer 120 receives sensor data from the capture device 136 in block 202, which is converted to media data (including a portion of the media data to be tracked) that is cryptographically processed in block 206. With continued reference to FIG. 2, the cryptographic processing includes dividing the media data into subsets in block 208 (at least one of the subsets corresponds to a tracked portion of the media data) and hashing the subsets in block 211. It should be noted that the identification of the tracked portion may be accomplished by the end user's selection, by the server computer 120 according to preferences established in a computer-implemented selection algorithm, or in any other manner selected by one of ordinary skill in the art. In block 212, the cryptographic processing chip 128 combines the hashed tracked portion of the media data with metadata of the tracked portion (which may itself be hashed) into a hashed tracked portion data packet. In block 214, the cryptographic processing chip 128 cryptographically signs the hashed data packet of the tracked portion. The general processing chip 132 generates the master file 300 in block 216 and the server computer 120 stores the master file in the shared storage device 122 in block 218 .
[0017] Referring to FIG. 3, a format of a master file 300 according to an aspect of the invention is shown, which includes three parts: metadata 301, tracked portion of sensor media data 302, and internal blockchain data 310. In particular, the master file 300 shown in FIG. 3 is a file having only one block of blockchain data 311A, this single block being called the genesis block. It is noted that this file format may be implemented as an extension of an existing file format. Although FIG. 3 shows the master file 300, it is noted that the system 100, according to an aspect of the invention, generates other files (known as reference files 500, shown generally in FIG. 1 and in more detail in FIG. 5) when modifying the master file 300, and the reference files have the same overall format (shown in FIG. 5 and discussed in more detail below).
[0018] The internal blockchain data 310 includes blocks of information about versions of files and their media data (and optionally metadata) that are held in blocks that are cryptographically linked by including a cryptographic hash of a previous block corresponding to an earlier version of the tracked portion data (and optionally the tracked portion metadata) of the master file 300 and reference files 500.
[0019] It should be noted that the tracked portion 302 of the media data in the master file 300 represents the original media data captured by the sensors in the capture device 136, and according to an aspect of the invention, the blockchain data 310 is a non-distributed blockchain (i.e., a data structure in which each data block contains a cryptographic hash of the previous block) that is internal to the master file 300.
[0020] The blockchain data 310 includes a hashable portion and, optionally, certain extensions that are not included in the block hash (depending on the file variant). The hashable portion includes the previous block hash 313A, 513B, etc. (or in the case of the genesis block, some agreed choice such as null), the public key used in signing for this block (optionally, any metadata about the public key), a hash (or root hash) of the changes made from the previous data version to arrive at this version (or in the case of the genesis block, some agreed choice such as null), a signed hash of the tracked portion of the current media data 302 in one of two formats, etc. The first type of signed hash includes the signed hash of the metadata of this version of the file (or its hash) and the tracked portion of the media data of this version of the file (or its hash / root hash); the second type of signed hash includes the tracked portion of the media data of this version of the file and (optionally) the signed hash of the metadata of this version of the file. Note that the master file 300 (a file with an internal blockchain with only one block) has its blockchain data divided into subsections as follows: general file metadata 301, tracked portion of media data (original from sensors) 302, internal blockchain data (only one block) 310, provenance / genesis block 311A, hashable portion of provenance / genesis block 312A, previous block hash (null or other predefined convention in this case) 313A, public key used for digital signature 314A, optionally including metadata about the public key, other block metadata 315A, either (a) a signed hash of the file's metadata (or its hash) and the tracked portion of the file's media data (or its hash / root hash), or (b) a signed hash of the file's metadata and a signed hash of the file (or root hash) of the tracked portion of the file's media data 316A.Master file 300 also includes a signed hash 317A of the tracked portion's metadata 322A. Master file 300 includes a signed hash of the prescription instructions included in change log 320A in block 318A. Note that for master file 300, block 318A may be null or some other value agreed upon to represent that the nature of the master file has not been altered.
[0021] In addition to the above-mentioned structures, there are three optional file extensions 320A, 321A, and 322A included in block 319A that may be included within the aspects of this invention. The first extension is some form of change log 320A that allows for replicating changes on previous versions of the tracked portion of the media data to arrive at the current version of the tracked portion of the media data. The change log 320 contains information that iteratively documents the changes that have occurred to the media data 302. For each iteration over the master file 300, the change log 320 contains associated information that represents the changes to the media data 302 at that iteration. Note that for the master file 300 itself, the change log 320 preferably holds a null set value. The change log is only required for copies of the reference media file. The change log is optional, but not required for distributable copies. The second extension 321A is a copy of the tracked portion of the media data at that stage in the history of the media file. This is not required for any file variants, it can simply be a value that is added. The third extension 322A is tracked portion metadata that indicates which portions of the media data are tracked portions.
[0022] Referring to FIG. 4, a method 400 for creating a modified version 500 (also called a reference file) of a master file 300 is shown. As described above, the reference file 500 according to an embodiment of the present invention is a modified version of the original master file 300 generated according to the flow logic shown in FIG. 4. In block 404, the server computer 120 receives a copy of the master file 300 (including the tracked portion of the master file data), and in block 406, the server computer 120 modifies the media data 302 of the master file using, for example, an image or audio editing algorithm (not shown). After modifying the master media data 302, the server computer 120 receives a file in block 408 including the metadata 501, the tracked portion of the modified master media data 502 (seen in FIG. 5 and described in more detail below).
[0023] More specifically, the server computer 120 stores the modified media data as the tracked portion 502 of the media data of the reference file in block 410. The server computer 120 generates metadata 501 for the reference file in block 412, and in block 414, the server computer 120 combines the tracked portion 502 of the media data of the reference file, the metadata 501 for the reference file, and the blockchain data 510 for the reference file into a data packet for the reference file. As used herein, the term blockchain refers to a traditional blockchain, hash chain, cryptographic linked list, or other immutable data structure that replicates the functionality and data integrity that blockchain provides. In block 416, the server computer 120 cryptographically signs the data packet for the reference file. In block 418, the server computer 120 generates blockchain data 510 for the reference file and updates the blockchain by adding the currently iterated reference blockchain data 302x to the existing blockchain. At block 420, the server computer 120 generates the file-of-reference 500 including the signed data packet 516 and, at block 422, stores the blockchain data 510 of the file-of-reference.
[0024] As shown with reference to FIG. 5, the blockchain data 510 of a reference file includes information about the version of the file and its data (and optionally metadata) held in blocks that are cryptographically linked by including a cryptographic hash of a previous block corresponding to an earlier version of the file's data (and optionally metadata). Additional details regarding a preferred structure for a reference file according to an embodiment of the invention are now provided with particular reference to FIG. 5. A reference file having an internal blockchain with multiple blocks is shown at 500, which represents tracked portions of media that have been modified since its initial creation. The reference file includes general reference file metadata 501, tracked portions of the reference file's media data (modified from the original) 502, and internal blockchain data 510. The internal blockchain data 510 includes a series of blocks including 511A (a genesis block associated with the master file 300), 511B (modified blocks associated with the initial first file (i.e., the first round of changes to the master file 300)), 511x (second or later reference blocks associated with possibly several rounds of changes to the original master file 300). Each block in the chain is further divided into subsections as described above, with the subsections labeled according to a numerical sequence (i.e., 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, and 522). As each round of media data modification occurs, the server computer 120 generates a new reference file 500 and associated blockchain data, with each block in the chain maintaining the same relative format. For convenience, the numerical references between the blockchain subsections of the reference file follow the same numerical sequence (e.g., 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, and 522), with each generation of subsections having an indexed subscript (beginning with a "B") attached to it.This is shown in FIG. 5 as 511B, 512B, 513B, 514B, 515B, 516B, 517B, 518B, 519B, 520B, 521B, and 522B, and 511x, 512x, 513x, 514x, 515x, 516x, 517x, 518x, 519x, 520x, 521x, and 522x. If there are more than 26 generations (e.g., the end of the alphabet is used), a subscript is added starting with A (e.g., the second round of the alphabet starts with BA, BB, etc.). Note that the subscript "A" is reserved for data related to the original, master file 300, and is used to identify the genesis / origin block generated for the master file.
[0025] 5, the block chain data 510 of the file of reference also includes a hashable portion 512x that includes a previous block hash 513x, a public key 514x, and other block metadata 515x with any associated metadata, and any version of the signed hashed media data described above. Public key 514x represents the algorithm making the amendment, either as a public key corresponding to a generic private key shared by all algorithms of the same version, or as a public key corresponding to a private key specific to an installation of that algorithm.
[0026] The server computer 120 attaches three extensions to the blockchain data 510x. The first extension, 520x, is some form of change log that allows for replicating changes on a previous version of the tracked portion of the media data to arrive at a current version of the tracked portion of the media data. As described above, the change log 520x contains information that iteratively documents changes that have occurred to the tracked portion 502 of the media data of the reference file. For each iteration over the master file 500, the change log 520x contains relevant information that represents the changes to the tracked portion 502 of the media data of the reference file at that iteration. The change log 520x is only required for copies of the reference media file. The change log 520x is optional, but is not required for distributable copies. The second extension, 522x, is tracked portion metadata that describes which subsets of the tracked portion 502 of the media data of the reference file are considered important and should be tracked for which changes. The third extension 521x is a copy of the tracked portion 502 of the media data of the reference file (or only the tracked portion of the media data) at that stage in the media file's history. This is not required for any of the file variants and can simply be a value added.
[0027] The blockchain also includes a hashable portion of block 512x, a previous block hash (for block A, the genesis block, this value is null or some other predefined convention) 513x, a public key 514x, which may include metadata about the public key used in the digital signature, and other block metadata 515x. Block 516x includes a signed hash of the tracked portion of the media data and possibly metadata. There are two preferred forms of this information: (a) a signed hash of the file's metadata (or its root hash) and the tracked portion of the file's media data (or its hash / root hash), or (b) a signed hash of the file's metadata and a signed hash (or root hash) of the tracked portion of the file's media data. Other formats for this signed hashed information may also be selected according to the preferences of those skilled in the art. Block 517x includes a signed hash of the tracked portion of the metadata, and block 518x includes a signed hash (or signed root hash) of the block increment instruction 520x. Note that the instructions and associated hash may only be present as a null value in block A, the genesis block, since there have been no changes from the master file. Block 519x is a "block extension," which is information held in the reference media file, and is not required (but not restricted) for a distributable media file, and is desirably not included in the block hash. Block 520x contains prescriptive, replicable instructions that detail how to arrive at the version of media data represented by this block from the version represented by the previous block (it is present as null in block A because, as noted elsewhere, block A represents the version of the original master file of the media that came from the sensor of capture device 136).Block 521x contains any redundant copies of the media data (or only the tracked portions of the media data) at this point in the media's history, and 522x contains tracked portion metadata that describes which subsets of the media data are considered important and should be tracked for changes.
[0028] With reference to FIG. 6, a process for verifying a master file 300 according to an embodiment of the present invention will now be described. In block 604, the server computer 120 receives a challenged master file (hereinafter, "CMF") to be verified. In block 606, the server computer 120 hashes the data of the tracked portion of the CMF and the metadata of the tracked portion of the CMF to generate a first CMF comparison element including an unsigned hash of the tracked portion of the media data of the CMF and the metadata of the tracked portion of the CMF. In block 608, the server computer 120 removes the signature of the tracked portion of the media data of the CMF and the metadata of the tracked portion of the signed CMF from the CMF master blockchain data to generate a second CMF comparison element including an unsigned hash of the tracked portion of the media data of the CMF and the metadata of the tracked portion of the signed CMF. In block 610, the server computer 120 compares the comparison element of the first CMF with the comparison element of the second CMF and determines whether the files match in block 612. If the comparison elements of the first CMF and the second CMF match, then the server computer 120 considers the CMF to be an authentic copy of the original reference file 300 in block 614. However, if the comparison elements of the first CMF and the second CMF do not match, then the server computer 120 does not verify the authenticity of the CMF and the server computer considers the CMF to be non-authentic in block 616.
[0029] Note that, according to aspects of the invention, it is assumed that the public key of the origin block is valid (i.e., represents the sensor device that provided it) and that the capture device 130 that provided the public key is trusted (this includes that the sensor of the capture device 136 has not been tampered with since the public key was embedded in the master media file). Verifying that the sensor of the capture device 136 is trusted can be done in a variety of ways, whether or not the application includes verifying the original media file.
[0030] With reference to Figure 7, a process 700 for validating a reference file 500 according to an embodiment of the present invention will now be described. At block 704, the server computer 120 receives the reference file 500 to be compared to the master file 300 for authentication (e.g., whether the reference file content represents content modified from the master file content according to instructions provided with the reference file). At block 706, the server computer 120 compares a hash of the genesis block of the reference file 500 with a hash of the genesis block of the master file 300, and at block 708, the server computer determines whether the compared genesis block hashes match. If the compared genesis block hashes do not match, the reference file may not be authentic, and the computer proceeds to block 718.
[0031] If the hashes of the compared genesis blocks match, the computer proceeds to block 710 and applies the changes provided in the reference file's blockchain increment information to the tracked portion of the media data of the master file and hashes the result to generate a comparison element of the first reference file. In block 712, the server computer 120 removes the signature of the signed hash in the RF blockchain data to generate a second RF comparison element. Note that the comparison element of the first reference file includes the tracked portion of the media data of the hashed reference file or other elements selected according to judgment used by those skilled in the art. Note that the second reference file includes unsigned reference file blockchain data or other elements selected according to judgment used by those skilled in the art. In block 714, the server computer 120 determines whether the comparison element of the first reference file and the comparison element of the second reference file match. If the comparison elements of the reference files match, the server computer 120 proceeds to block 716 and verifies the authenticity of the reference file 300. If the comparison elements of the reference file do not match, the authenticity of the reference file is not confirmed and the computer proceeds to block 718, where the computer does not confirm the authenticity of the reference file 300 and the reference file may be labeled as inauthentic.
[0032] Now, referring to FIG. 8, a method for verifying a distributable file according to an embodiment of the present invention will be described. In block 804, a computer receives a distributable file (hereinafter, "DF") and a verified authentic reference file (hereinafter, "VARF") and determines whether the DF, which claims to be an authentic derivative or other modification of the VARF, is in fact a file containing an authentic version of the media data contained in the VARF. In block 806, the computer compares a hash of the blockchain data of the DF with a hash of the blockchain data of the VARF, and in block 808 determines whether the compared hashes of the blockchain data match. Note that the DF follows the same file format as the VARF, without the requirement to include blocks 519x and the blocks contained therein. If the compared hashes of the blockchain data do not match, the distributable file may not be authentic, and the server computer 120 transitions to block 816.
[0033] If the compared hashes of the blockchain data match, the computer moves to block 810 and compares the hash of the media file of the tracked portion of the DF with the corresponding unsigned hash of the representative media block in block 812. In one embodiment, the corresponding unsigned hash is the unsigned signed hash 516x of the representative media block x, which is the block that represents the tracked portion of the media data in block 502 in the relevant iteration in the blockchain history. If the hash of the media file of the tracked portion of the DF and the hash of the blockchain block of the last DF match, the DF is considered authentic. In block 814, the computer verifies the authenticity of the DF.
[0034] It should be noted that the term capture device output as used herein includes sensor data, and that the term master file as used herein includes a media file conforming to the format shown in Figure 3 that is a direct result of reality recorded by a capture device sensor in the manner previously described.
[0035] As used herein, the term reference file includes media files that are not intended to be distributed and that use the file format shown in Figure 5. This format may or may not include a change log in various formats. Reference media files are different from the master media file because they have been modified according to the methods described above.
[0036] The term distributable media file includes media files that are intended to be distributed to end recipients. Distributable media files use the format shown in FIG. 5. Note that a distributable media file in which the media data has not undergone any changes (and thus the blockchain contains only the genesis block) is substantially identical to the master media file. Also note that if metadata about the file is not considered mandatory (and thus its hash is not included in the blockchain), the metadata in the distributable media file may differ from the metadata in the original media file. The term change log includes replicable instructions on how to amend a previous version of the media data to a current version of the media data (e.g., how to increment the tracked portion of the media data from the tracked portion of the media data in the master file, etc.).
[0037] With regard to flowcharts and block diagrams, the flowcharts and block diagrams in the figures of the present disclosure illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of instructions, including one or more executable instructions for performing a specific logical function. In some other implementations, the functions shown in the blocks may be executed in a different order than the order shown in the figures. For example, two blocks shown in succession may actually be executed substantially simultaneously or in reverse order depending on the functions involved. It should be noted that each block in the block diagram and / or flowchart, and combinations of multiple blocks in the block diagram and / or flowchart, may be executed by a dedicated hardware-based system that performs a specific function or operation or executes a combination of dedicated hardware and computer instructions.
[0038] Referring to FIG. 9, the system or computer environment 1000 includes a computer diagram 1010 shown in the form of a general computing device. The method 1000 may be embodied, for example, in a computer-readable storage device, generally referred to as memory 1030, or more specifically, computer-readable storage medium 1050, or a program 1060 including program instructions embodied on the computer-readable storage medium. Such memory and / or computer-readable storage medium may include non-volatile memory or non-volatile storage. For example, the memory 1030 may include a storage medium 1034, such as a RAM (random access memory) or a ROM (read only memory), and a cache memory 1038. The program 1060 is executable (to execute program steps, codes, or program codes) by the processor 1020 of the computer system 1010. Additional data storage may also be embodied as a database 1110 including data 1114. The computer system 1010 and programs 1060 are generic representations of computers and programs that may be local to a user or provided as a remote service (e.g., as a cloud-based service), and in further examples may be provided using a website (e.g., interacting with a network, the Internet, or a cloud service) accessible using the communications network 1200. The computer system 1010 is also understood herein to generally represent a computing device or computer included in a device such as a laptop or desktop computer, or one or more servers, either alone or as part of a data center. The computer system may include a network adapter / interface 1026 and an input / output (I / O) interface 1022. The I / O interface 1022 allows for the input and output of data with external devices 1074 that may be connected to the computer system. The network adapter / interface 1026 may provide communication between the computer system and a network, generally depicted as the communications network 1200.
[0039] The computer system 1010 may be described in the general context of computer system executable instructions, such as program modules, being executed by the computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, etc. that perform particular tasks or implement particular abstract data types. Method steps and system components and techniques may be embodied in modules of the program 1060 for performing the tasks of each step of the method and system. The modules are generally represented in the figures as program modules 1064. The program 1060 and program modules 1064 may execute particular steps, routines, subroutines, instructions, or code of the program.
[0040] The disclosed methods may be executed locally on a device, such as a mobile device, or may be remote, for example, as a service executed on a server 1100, which may be accessed using a communications network 1200. Also, the programs or executable instructions may be offered as a service by a provider. The computer 1010 may be implemented in a distributed cloud computing environment where tasks are performed by remote processing devices linked through the communications network 1200. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media, including memory storage devices.
[0041] The computer 1010 can include a variety of computer readable media. Such media can be any available media accessible by the computer 1010 (e.g., a computer system or server) and can include both volatile and non-volatile media, as well as removable and non-removable media. The computer memory 1030 can include additional computer readable media in the form of volatile memory, such as random access memory (RAM) 1034, or cache memory 1038, or a combination thereof. The computer 1010 can further include other removable / non-removable, volatile / non-volatile computer storage media, in one example, a portable computer readable storage medium 1072. In one embodiment, a computer readable storage medium 1050 can be provided for reading from and writing to a non-removable, non-volatile magnetic medium. The computer readable storage medium 1050 can be embodied, for example, as a hard disk drive. Additional memory and data storage can be provided, for example, as a storage system 1110 (e.g., a database) for storing data 1114 and communicating with the processing unit 1020. The database may be stored on or part of the server 1100. Although not shown, a magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk (e.g., a "floppy disk"), and an optical disk drive for reading from or writing to a removable, non-volatile optical disk, such as a CD-ROM, DVD-ROM, or other optical media, may be provided. In such an example, each may be connected to the bus 1014 by one or more data media interfaces. As further depicted and described below, the memory 1030 may include at least one program product that may include one or more program modules configured to perform the functions of embodiments of the present invention.
[0042] The methods described in this disclosure may be embodied in, for example, one or more computer programs, generally referred to as programs 1060, stored in memory 1030 in computer-readable storage medium 1050. Program 1060 may include program modules 1064. Program modules 1064 may generally perform the functions and / or methodologies of embodiments of the present invention as described herein. One or more programs 1060 may be stored in memory 1030 and executed by processing unit 1020. As an example, memory 1030 may store an operating system 1052, one or more application programs 1054, other program modules, and program data on computer-readable storage medium 1050. It will be understood that program 1060, as well as operating system 1052 and application programs 1054 stored on computer-readable storage medium 1050, may be similarly executable by processing unit 1020. It will also be understood that applications 1054 and programs 1060 are shown generally and may include or be a part of one or more of the applications and programs discussed in this disclosure, or vice versa, i.e., applications 1054 and programs 1060 are all or a part of one or more of the applications and programs discussed in this disclosure. It will also be understood that control system 70 (shown in FIG. 8) may include computer system 1010 and all or a part of its components, or the control system may be in communication with computer system 1010 and all or a part of its components as a remote computer system, or both, to implement the control system functions discussed in this disclosure.It is also understood that one or more of the communications devices 110 shown in FIG. 1 may similarly include all or a portion of the computer system 1010 and its components, or the communications devices may communicate with the computer system 1010 and all or a portion of its components as remote computer systems, or both, to implement the computer functions described in this disclosure.
[0043] The one or more programs may be stored on one or more computer-readable storage media such that the programs are embodied and / or encoded in the computer-readable storage media. In one example, the stored programs may include program instructions that are executed by a processor, or a computer system having a processor, to perform a method or cause the computer system to perform one or more functions.
[0044] The computer 1010 may also communicate with one or more external devices 1074, such as a keyboard, pointing device, display 1080, one or more devices that allow a user to interact with the computer 1010, or any device (e.g., network card, modem, etc.) that allows the computer 1010 to communicate with one or more other computer devices. Such communication may occur through an input / output (I / O) interface 1022. Yet, the computer 1010 may communicate with one or more networks 1200, such as a local area network (LAN), a general wide area network (WAN), or a public network (e.g., the Internet), or a combination thereof, through a network adapter / interface 1026. As depicted, the network adapter 1026 communicates with other components of the computer 1010 through a bus 1014. It should be understood that other hardware or software components, or combinations thereof, not shown, may be used with the computer 1010. Examples include, but are not limited to, microcode, device drivers 1024, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archive storage systems.
[0045] It is understood that a computer or a program executing on computer 1010 may communicate with a server embodied as server 1100 via one or more communication networks embodied as communication network 1200. Communication network 1200 may include transmission media and network links including, for example, wireless, wired, or fiber optic, as well as routers, firewalls, switches, and gateway computers. A communication network may include connections such as wired, wireless communication links, or fiber optic cables. A communication network may represent a worldwide collection of networks and gateways such as the Internet that communicate with each other using various protocols such as Lightweight Directory Access Protocol (LDAP), Transport Control Protocol / Internet Protocol (TCP / IP), Hypertext Transport Protocol (HTTP), Wireless Application Protocol (WAP), etc. A network may also include multiple different types of networks such as, for example, an intranet, a local area network (LAN), a wide area network (WAN), etc.
[0046] In one example, a computer may use a network that allows access to websites on the web (World Wide Web) using the Internet. In one embodiment, a computer 1010 including a mobile device may use the Internet, or a communication system or network 1200 that may include, for example, a public switched telephone network (PSTN), a cellular network. The PSTN may include telephone lines, fiber optic cables, transmission links, cellular networks, and communication satellites. The Internet may facilitate a number of search and text transmission techniques, for example, using a mobile phone or laptop computer to send a query to a search engine via text message (SMS), multimedia messaging service (MMS) (related to SMS), email, or a web browser. The search engine may obtain search results, i.e., links to websites, documents, or other downloadable data corresponding to the query, as well as provide the search results to a user via the device, for example, as a web page of search results.
[0047] The present invention may be a system, method or computer program product, or combination thereof, integrated at any possible level of technical detail. The computer program product may include a computer readable storage medium having stored thereon computer readable program instructions for causing a processor to carry out aspects of the present invention.
[0048] A computer-readable storage medium may be a tangible device that can hold and store instructions used by an instruction execution device. The computer-readable storage medium may be, for example, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or a suitable combination thereof. More specific examples of computer-readable storage media include portable computer diskettes, hard disks, RAM, ROM, EPROM (or flash memory), SRAM, CD-ROM, DVD, memory sticks, floppy disks, punch cards or ridges in grooves or other mechanically encoded devices that record instructions, and suitable combinations thereof. As used herein, a computer-readable storage device should not be construed as a transitory signal per se, such as an electric signal transmitted over a wire, such as an electric wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a wave guide or other transmission medium (e.g., a light pulse passing through a fiber optic cable), or a radio wave.
[0049] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computer device / processing device. Alternatively, they can be downloaded to an external computer or external storage device via a network (e.g., the Internet, a LAN, a WAN, or a wireless network, or a combination thereof). The network can include copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface in each computer device / processing device receives the computer-readable program instructions from the network and transfers the computer-readable program instructions to a computer-readable storage medium in the respective computer device / processing device for storage.
[0050] The computer readable program instructions for carrying out the operations of the present invention may be either assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state setting data, configuration data for an integrated circuit, or source or object code written in any combination of one or more programming languages, including object oriented programming languages such as Smalltalk and C++, and procedural programming languages such as the "C" programming language and similar programming languages. The computer readable program instructions may be executed entirely on the user's computer as a stand-alone software package, or partially on the user's computer, or partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network, including a LAN or WAN, or may be connected to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, electronic circuitry, including, for example, programmable logic circuitry, field programmable gate arrays (FPGAs), programmable logic arrays (PLAs), can execute computer readable program instructions by utilizing state information of the computer readable program instructions to customize the electronic circuitry for carrying out aspects of the present invention.
[0051] Embodiments of the present invention are described herein with reference to flowchart and / or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the present invention. Each block of the flowchart and / or block diagrams, and combinations of blocks in the flowchart and / or block diagrams, can be implemented by computer readable program instructions.
[0052] The computer readable program instructions may be provided to a processor of a computer or other programmable data processing apparatus to produce a machine, such that the instructions executed by the processor of such computer or other programmable data processing apparatus create means for performing the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams. The computer readable program instructions may further be stored on a computer readable storage medium capable of instructing a computer, programmable data processing apparatus or other device, or combination thereof, to function in a particular manner, such that the computer readable storage medium having instructions stored thereon constitutes an article of manufacture including instructions for performing the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams.
[0053] Also, computer-readable program instructions may be loaded into a computer, other programmable device, or other apparatus and a sequence of operational steps executed on the computer, other programmable device, or other apparatus to generate a computer-implemented process, whereby the instructions executing on the computer, other programmable device, or other apparatus perform the functions / operations identified in one or more blocks in the flowcharts and / or block diagrams.
[0054] The flowcharts and block diagrams in the drawings of the present disclosure illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagram may represent a module, segment, or portion of instructions, including one or more executable instructions for performing a specific logical function. In some other implementations, the functions shown in the blocks may be executed in a different order from the order shown in the figures. For example, two blocks shown in succession may actually be executed substantially simultaneously, or in a partially or fully overlapping manner in time, or in reverse order depending on the functions involved. It should be noted that each block in the block diagram and / or flowchart, and combinations of multiple blocks in the block diagram and / or flowchart, may be executed by a dedicated hardware-based system that performs a specific function or operation, or executes a combination of dedicated hardware and computer instructions.
[0055] Although this disclosure includes detailed descriptions of cloud computing, it should be understood that implementation of the teachings described herein is not limited to a cloud computing environment. Rather, embodiments of the invention may be practiced in conjunction with any other type of computing environment now known or later developed.
[0056] Cloud computing is a service delivery model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal administrative effort or interaction with a service provider. The cloud model may include at least five characteristics, at least three service models, and at least four deployment models.
[0057] The characteristics are as follows:
[0058] On-Demand Self-Service: Cloud consumers can unilaterally provision computing capacity, such as server time or network storage, automatically as needed, without the need for human interaction with the service provider.
[0059] Broad network access: Computing power is available over the network and can be accessed through standard mechanisms, facilitating use by heterogeneous thin- and thick-client platforms (e.g., cell phones, laptops, PDAs).
[0060] Resource Pooling: Computing resources from a provider are pooled and offered to multiple consumers using a multi-tenant model. Different physical and virtual resources are dynamically allocated and reallocated depending on demand. Consumers generally have no control or knowledge of the exact location of the resources provided to them, so there is a sense of location independence, although consumers may be able to determine location at a higher level of abstraction (e.g. country, state, data center).
[0061] Rapid elasticity: Computing capacity can be provisioned quickly and elastically, in some cases automatically, to scale out immediately and to be released quickly to scale in immediately. To the consumer, the computing capacity available for provisioning often appears unlimited and can be purchased at any time and in any quantity.
[0062] Metered Services: Cloud systems leverage metering capabilities at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, active user accounts) to automatically control and optimize resource usage. Resource usage can be monitored, controlled, and reported to provide transparency to both providers and consumers of the services utilized.
[0063] The service model is as follows:
[0064] Software as a Service (SaaS): The functionality offered to the consumer is the availability of a provider's applications running on a cloud infrastructure that can be accessed from a variety of client devices through a thin-client interface such as a web browser (e.g., webmail). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even the individual application functions, except for limited user-specific application configuration settings.
[0065] Platform as a Service (PaaS): The capability offered to the consumer is to deploy applications that the consumer creates or acquires using programming languages and tools supported by the provider onto a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but does have control over the deployed applications and, in some cases, the configuration of the hosting environment.
[0066] Infrastructure as a Service (IaaS): The facility offered to the consumer is the provision of processors, storage, networking, and other basic computing resources on which the consumer can deploy and run any software, including operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but has control over the operating systems, storage, and deployed applications, and in some cases has partial control over some network components (e.g., the host firewall).
[0067] The deployment model is as follows:
[0068] Private Cloud: The cloud infrastructure is dedicated to a specific organization. It can be managed by that organization or a third party and can exist on-premise or off-premise.
[0069] Community Cloud: The cloud infrastructure is shared by multiple organizations to support a specific community with common concerns (e.g., mission, security requirements, policies, and compliance). The cloud infrastructure can be managed by the organizations or a third party and can exist on-premise or off-premise.
[0070] Public cloud: The cloud infrastructure is available to the general public or large industry organizations and is owned by an organization that sells cloud services.
[0071] Hybrid Cloud: This cloud infrastructure combines two or more cloud models (private, community or public), each of which retains its inherent semantics but is bound together by standards or specific technologies that enable data and application portability (e.g. cloud bursting for load balancing between clouds).
[0072] A cloud computing environment is a service-oriented environment with an emphasis on statelessness, low coupling, modularity and semantic interoperability. At the core of cloud computing is an infrastructure that includes a network of interconnected nodes.
[0073] 10 illustrates an exemplary cloud computing environment 2050. As illustrated, the cloud computing environment 2050 includes one or more cloud computing nodes 2010, to which local computing devices used by cloud consumers (e.g., PDAs or cell phones 2054A, desktop computers 2054B, laptop computers 2054C, or automobile computer systems 2054N, or combinations thereof, etc.) can communicate. The nodes 2010 can communicate with each other. The nodes 2010 can be physically or virtually grouped (not shown) in one or more networks, such as, for example, private, community, public, or hybrid clouds, or combinations thereof, as described above. This allows the cloud computing environment 2050 to provide infrastructure, platform, or software, or combinations thereof, as a service, for which the cloud consumers do not need to maintain resources on their local computing devices. It should be understood that the types of computing devices 2054A-N shown in FIG. 10 are merely exemplary, and that the computing node 2010 and cloud computing environment 2050 can communicate with any type of electronic device via any type of network or network-addressable connection (e.g., using a web browser) or both.
[0074] Here, a set of functional abstraction layers provided by the cloud computing environment 2050 (FIG. 10) is shown in FIG. 11. It should be understood in advance that the components, layers, and functions shown in FIG. 11 are merely exemplary, and the embodiments of the present invention are not limited thereto. As shown, the following layers and corresponding functions are provided:
[0075] Hardware and software layer 2060 includes hardware and software components. Examples of hardware components include mainframe 2061, reduced instruction set computer (RISC) architecture based servers 2062, servers 2063, blade servers 2064, storage devices 2065, and networks and network components 2066. In some embodiments, software components include network application server software 2067 and database software 2068.
[0076] The virtualization layer 2070 provides an abstraction layer from which the following virtual entities can be provided, for example: virtual servers 2071, virtual storage 2072, virtual networks including virtual private networks 2073, virtual applications and operating systems 2074, and virtual clients 2075.
[0077] As an example, the management layer 2080 may provide the following functions: Resource provisioning 2081 enables dynamic procurement of computing and other resources utilized to execute tasks within the cloud computing environment. Metering and pricing 2082 enables cost tracking as resources are utilized within the cloud computing environment and billing or invoicing for the consumption of these resources. As an example, these resources may include application software licenses. Security enables identification and verification of cloud consumers and tasks, as well as protection for data and other resources. User portal 2083 provides consumers and system administrators with access to the cloud computing environment. Service level management 2084 enables allocation and management of cloud computing resources such that requested service levels are met. Service level agreement (SLA) planning and fulfillment 2085 enables advance arrangement and procurement of cloud computing resources anticipated to be needed in the future according to SLAs.
[0078] The workload layer 2090 provides examples of functionality available to a cloud computing environment. Examples of workloads and functionality that can be provided from this layer include mapping and navigation 2091, software development and lifecycle management 2092, virtual classroom instruction delivery 2093, data analytics processing 2094, transaction processing 2095, and storage and validation of changes made to sensor device media data as captured 2096.
[0079] The description of various embodiments of the present invention is presented for illustrative purposes, but is not intended to be exhaustive, and is not intended to be limited to the disclosed embodiments. Similarly, examples of features or functionality of the embodiments of the present disclosure described herein, whether used in the description of a particular embodiment or described as an example, are not intended to limit the embodiments of the present disclosure described herein, or to the examples described herein. It will be apparent to those skilled in the art that many modifications and variations are possible without departing from the scope and spirit of the described embodiments. The terms used herein are selected to explain the principles of the embodiments, practical applications or technical improvements to the technology found in the market, or to enable those skilled in the art to understand the embodiments disclosed herein.
Claims
1. identifying, by the computer, an output of a capture device, the output representing an aspect of the recorded event; cryptographically processing an output of the capture device to generate a master file verifiable by the computer, the master file including at least one tracked portion; modifying, by the computer, the tracked portion of the media data of the master file to generate the tracked portion of the media data of a reference file; preparing, by the computer, a reference file including the tracked portion of the media data of the reference file, metadata of the reference file, and blockchain data of the reference file; Including, the verifiable master file includes tracked portions of the master file's media data from the output of the capture device, master metadata, and master file blockchain data; the block chain data of the master file includes a historical portion of the blocks of the master file, a signing key portion of the master file, and a signed hash of the tracked portion of the media data of the master file; The block chain data of the reference file includes the block chain data of the master file and block chain increment information; The block chain increment information is a hash of blockchain data of the master file, blockchain metadata of a reference file, a signed hash of metadata of the tracked portion, a signed hash of a change log that increments the tracked portion of media data from the tracked portion of media data of the master file, and a signed hash of the tracked portion of media data of the reference file.
2. The encryption processing includes: dividing, by the computer, the media data into at least one tracked data subset corresponding to the tracked portion; generating, by the computer, a hash of the at least one tracked data subset; generating, by the computer, metadata of the hash of the at least one tracked data subset; combining, by the computer, the hash and the metadata of the hash into at least one tracked data packet; and cryptographically signing, by the computer, the at least one data packet.
3. 2. The computer-implemented method of claim 1, wherein the reference file further includes instructions indicating replicable changes made by the computer between the modified tracked portion of media and the tracked portion of media data in the master file.
4. receiving a challenged master file, identified by the computer as a copy of the verifiable master file; receiving, by the computer, a request to verify the challenged master file; running, by the computer, a master file validation routine to evaluate the validity of the challenged master file; Further comprising: The master file validation routine comprises: hashing, by the computer, the tracked portion of the media data of the challenged master file to generate a hashed tracked portion of the media data of the challenged master file; removing, by the computer, the signature of the signed hash portion of the tracked portion of the media data of the challenged master file to generate an unsigned challenged master file of the tracked portion of the media data; determining, by the computer, whether the tracked portion of the media data of the hashed challenged master file matches the tracked portion of the media data of the unsigned challenged master file; The computer-implemented method of claim 1 , comprising:
5. receiving, by said computer, a reference file identified as a modification of said master file; receiving, by the computer, a request to determine whether the reference file is a modified version of the master file; executing, by said computer, a verification routine for a reference file; Further comprising: The reference file verification routine comprises: determining, by the computer, whether the hash of the block chain data of the master file and the hash of the block chain data of the reference file match; applying, by the computer, the changes indicated by the block chain increment information to the tracked portion of the media data of the reference file to generate a hashed tracked portion of the media data of the reference file, and sign-deleting the block chain data of the reference file to generate block chain data of an unsigned reference file; determining, by the computer, whether the tracked portion of the media data of the hashed reference file matches the blockchain data of the unsigned reference file; The computer-implemented method of claim 1 , comprising:
6. receiving a reference file identified by said computer as an authentic modification of said master file; receiving, by the computer, a distributable file; receiving, by the computer, a request to determine whether the distributable file is a genuine modification of the reference file that has been identified as a genuine modification of the master file; executing, by said computer, a verification routine for the distributable file; Including, 6. The computer-implemented method of claim 5, wherein the validation routine for the distributable file includes determining whether a hash of the blockchain data for the distributable file matches a hash of the blockchain data for the reference file and whether a hash of a tracked portion of the media data for the distributable file matches a corresponding unsigned hash of a representative media block.
7. 1. A computer system including a computer-readable storage medium having program instructions embodied thereon, the program instructions being executable by a computer to cause the computer to: identifying an output of a capture device, said output representing an aspect of a recorded event; cryptographically processing an output of the capture device to generate a verifiable master file, the master file including at least one tracked portion; modifying the tracked portion of the media data of the master file to generate the tracked portion of the media data of the reference file; preparing a reference file including the tracked portion of the media data of the reference file, metadata of the reference file, and blockchain data of the reference file; Let them do so, the verifiable master file includes tracked portions of the master file's media data from the output of the capture device, master metadata, and master file blockchain data; the block chain data of the master file includes a historical portion of the blocks of the master file, a signing key portion of the master file, and a signed hash of the tracked portion of the media data of the master file; The block chain data of the reference file includes the block chain data of the master file and block chain increment information; The block chain increment information is a hash of blockchain data of the master file, a signed hash of metadata of the tracked portion, a signed hash of a change log that increments the tracked portion of media data from the tracked portion of the media data of the master file, blockchain metadata of a reference file, and a signed hash of the tracked portion of the media data of the reference file.
8. The encryption processing includes: dividing, by the computer, the media data into at least one tracked data subset corresponding to the tracked portion; generating a hash of the at least one tracked data subset; generating metadata of the hash of the at least one tracked data subset; combining the hash and the metadata of the hash with at least one tracked data packet; 8. The system of claim 7, further comprising: cryptographically signing the at least one data packet.
9. 8. The system of claim 7, wherein the reference file further includes instructions indicating replicable changes made by the computer between the tracked portions of the modified media data and the tracked portions of the media data of the master file.
10. The computer includes: receiving a challenged master file, the challenged master file being identified as a copy of the verifiable master file; receiving a request to verify the challenged master file; performing a master file validation routine to assess the validity of the challenged master file; Further, The master file verification routine includes: hashing the tracked portion of the media data of the challenged master file to generate a hashed challenged master file of the tracked portion of the media data; removing, by the computer, the signature of the signed hash portion of the tracked portion of the media data of the challenged master file to generate an unsigned challenged master file of the tracked portion of the media data; determining whether the tracked portion of the media data of the hashed challenged master file matches the tracked portion of the media data of the unsigned challenged master file; The system of claim 7 , further comprising:
11. receiving a reference file identified as a revision of said master file; receiving a request to determine whether the reference file is a modified version of the master file; performing a validation routine on the reference file; Further comprising: The reference file verification routine includes: determining whether the hash of the block chain data of the master file and the hash of the block chain data of the reference file match; applying the changes indicated by the block chain increment information to the tracked portion of the media data of the reference file to generate a hashed tracked portion of the media data of the reference file, and sign-deleting the block chain data of the reference file to generate block chain data of an unsigned reference file; determining whether the tracked portion of the media data of the reference file matches the blockchain data of the unsigned reference file; The system of claim 7 , further comprising:
12. receiving a reference file identified as a genuine amendment to said master file; Receiving a distributable file; receiving a request to determine whether the distributable file is a genuine modification of the reference file that has been identified as a genuine modification of the master file; executing, by said computer, a verification routine for the distributable file; Further comprising:
12. The system of claim 11, wherein the validation routine for the distributable file further determines whether a hash of the blockchain data for the distributable file matches a hash of the blockchain data for the reference file and whether a hash of a tracked portion of the media data for the distributable file matches a corresponding unsigned hash of a representative media block.
13. A computer-readable storage medium having program instructions embodied thereon, the program instructions being executable by a computer, the computer being configured to: using the computer to identify an output of a capture device, the output representing an aspect of a recorded event; cryptographically processing, using the computer, an output of the capture device to generate a verifiable master file, the master file including at least one tracked portion; modifying, using the computer, the tracked portion of the media data of the master file to generate the tracked portion of the media data of a reference file; preparing, using the computer, a reference file that includes the tracked portion of the media data of the reference file, metadata of the reference file, and blockchain data of the reference file; Let them do so, the verifiable master file includes tracked portions of the master file's media data from the output of the capture device, master metadata, and master file blockchain data; the block chain data of the master file includes a historical portion of the blocks of the master file, a signature key portion of the master file, and a signed hash of the tracked portion of the media data of the master file; The block chain data of the reference file includes the block chain data of the master file and block chain increment information; The block chain increment information is a hash of blockchain data of the master file, a signed hash of metadata of the tracked portion, a signed hash of a change log that increments the tracked portion of media data from the tracked portion of media data of the master file, blockchain metadata of a reference file, and a signed hash of the tracked portion of media data of the reference file.
14. The encryption processing includes: dividing, by the computer, the media data into at least one tracked data subset corresponding to the tracked portion; generating a hash of the at least one tracked data subset using the computer; generating metadata of the hash of the at least one tracked data subset using the computer; combining, using the computer, the hash and the metadata of the hash into at least one tracked data packet; 14. The computer-readable storage medium of claim 13, further comprising: using the computer to cryptographically sign the at least one data packet.
15. The computer includes: receiving, using the computer, a challenged master file identified as a copy of the verifiable master file; receiving, using the computer, a request to verify the challenged master file; performing a master file validation routine to assess the validity of the challenged master file; Further, The master file verification routine includes: hashing, using the computer, the tracked portion of the media data of the challenged master file to generate a hashed tracked portion of the media data of the challenged master file; removing, using the computer, a signature of a signed hash portion of the tracked portion of the media data of the challenged master file to generate, by the computer, a tracked portion of the media data of an unsigned challenged master file; using the computer to determine whether the tracked portion of the media data of the hashed challenged master file matches the tracked portion of the media data of the unsigned challenged master file; The computer-readable storage medium of claim 13 , further comprising:
16. receiving, using said computer, a reference file identified as a modification of said master file; receiving a request to determine, using the computer, whether the reference file is a modified version of the master file; using said computer to perform a reference file validation routine; Further comprising: The reference file verification routine includes: determining whether the hash of the block chain data of the master file and the hash of the block chain data of the reference file match; using the computer to apply the changes indicated by the block chain increment information to the tracked portion of the media data of the reference file to generate a hashed tracked portion of the media data of the reference file, and sign-delete the block chain data of the reference file to generate block chain data of an unsigned reference file; using the computer to determine whether the tracked portion of the media data of the hashed reference file matches the blockchain data of the unsigned reference file; The computer-readable storage medium of claim 13 , further comprising:
17. receiving, using said computer, a reference file identified as an authentic modification of said master file; receiving a distributable file using said computer; receiving a request using the computer to determine whether the distributable file is a genuine modification of the reference file that has been identified as a genuine modification of the master file; executing, by said computer, a verification routine for the distributable file; Including, 17. The computer-readable storage medium of claim 16, wherein the validation routine for the distributable file further causes the computer to determine whether a hash of the blockchain data for the distributable file matches a hash of the blockchain data for the reference file and whether a hash of a tracked portion of the media data for the distributable file matches a corresponding unsigned hash of a representative media block.
Citation Information
Patent Citations
Digital measuring equipment and image measuring equipment
JP2000215379A
Original content generation device, derivative content generation device, derivative content use device, original content generation method, derivative content generation method, derivative content use method and verification method
JP2005346658A
Content distribution system, content distribution method, content generation device, and content generation program
JP2017204707A
Storing and verification of derivative work data on blockchain with original work data
US20200110821A1