Security 101 Verifying Data Integrity with Hashes
{"Image DocumentName": "Security 101 Verifying Data Integrity with Hashes", "Image ImageDescription": "User A. User B. Data. Hash Value. Hash Algorithm. If hash values match, data is valid. User A sends data and hash value to User B. Hashing differs from encryption. Put simply, encryption is the process of encoding data so that at some point it will be decrypted. Hashed data, on the other hand is not designed to be decrypted. Instead, the hashed values are simply used to verify that that the data is valid. A hash is a unique, fixed-length string of bits. Hashing data involves matching an arbitrarily long string of bits with a fixed-length string of bits. For example, matching a 50-kilobyte file with a 160-bit hash value. Hashes must be one-way operations and collision-resistant. To be a one-way operation, it must be computationally unfeasible to determine the input data from just the hash value. To be collision-resistant, it must be computationally unfeasible to find two sets of input data that result in the same hash value. As shown on the slide, when User A sends the hash value and the original data, User B can verify the validity of the data by applying the same hash algorithm to the data and then comparing the resulting hash value to the hash value that is sent with the data. If the hash values match, User B can be assured that nobody has tampered with the data since it was first sent. Common hash functions include: Message Digest 4 (MD4). Message Digest 5 (MD5) Secure Hash Standard (SHA-1)", "Image XResolution": "37", "Image YResolution": "37", "Image ResolutionUnit": "Pixels/Centimeter", "Image Software": "SlidePlayer", "Image YCbCrPositioning": "Centered"}