Thursday, July 23, 2015

[Design] Cryptographic Hash, MD5 and Digital signature - Shuatiblog.com



[Design] Cryptographic Hash, MD5 and Digital signature - Shuatiblog.com

Cryptographic hash function is a hash function which is considered practically impossible to invert.

The input is arbitrary length, and output is fixed length.

The input is called 'message' and output (the hash value) is called 'digest'.

Common examples are:

  1. MD5
    1. 128-bit (16-byte) hash value, typically expressed with 32 digit hex number
    2. have colllision attack risks
  2. SHA-1 (said to be better than MD5)
    1. 160-bit (20-byte) hash value, typically expressed with 40 digit hex number
    2. No known collision found so far

Properties

  1. Computationally efficient
  2. Collision resistant
  3. Hide information
  4. Look random

Examples

I generated checksum values on an important file I backed up to ensure that everything went OK. source

To verify that the latest version of Firefox I was downloading is correct, I ran a cryptographic hash function, SHA-1 to be exact, on the download and compared that checksum with the one published on Mozilla's site. source

Digital signature

Digital signature is a mathematical scheme for demonstrating the authenticity of a digital message. It uses public/private keys.

In practice, the signature is not used directly on the file, but rather on the digest of the file.

Video on digital signature.


Read full article from [Design] Cryptographic Hash, MD5 and Digital signature - Shuatiblog.com

Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts