0% found this document useful (0 votes)
11 views10 pages

Crypotographic Primitives-I

The document outlines the cryptographic primitives used in blockchain technology, focusing on hash functions and digital signatures. It explains the properties of cryptographic hash functions, including determinism, collision resistance, and puzzle friendliness, which are essential for ensuring data integrity and security in blockchain. Additionally, it discusses the computational challenges involved in finding hash collisions and the efficiency of using hash values as message digests.

Uploaded by

Meenakshi Rajput
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views10 pages

Crypotographic Primitives-I

The document outlines the cryptographic primitives used in blockchain technology, focusing on hash functions and digital signatures. It explains the properties of cryptographic hash functions, including determinism, collision resistance, and puzzle friendliness, which are essential for ensuring data integrity and security in blockchain. Additionally, it discusses the computational challenges involved in finding hash collisions and the efficiency of using hash values as message digests.

Uploaded by

Meenakshi Rajput
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 10

Cryptographic Primitives used in Blockchain are:

1. Hash Function
2. SHA 256
3. Puzzle friendly

We will see
● Basic Cryptographic Primitives behind blockchain technology
○ Cryptographically secure hash functions
○ Digital Signatures
● Hash functions used to connect “blocks’ in a ‘chain” in “tamper
proof way”
● Digital Signature: digitally sign the data so that no one can deny
about their own activities, also others can check whether it is
authentic
Cryptographic Hash Function
1. It takes arbitrarily sized string as input (Input M: Message)
2. Fixed Size Output (typically 256 bits used in blockchain)
3. Output H(M): this is called message digest
4. Efficiently computable
Important Properties Cryptographic Hash Function
1. Deterministic
Always yields identical hash value for identical input data
2. Collision Free
It two messages are different their digests should also
differ.
3. Hiding
Hide the original message; remember about avalanche effect.
4. Puzzle friendly
Given X &Y , find out k such that Y = H(X||k) - used to solve the
mining puzzle in bitcoin Proof of Work
Collision Free
Hash functions are one way; Given an x it is easy to find H(x); However given H(x)
one cannot find x.

It is difficult to find x and y, where x ≠ y; but H(x) = H(y)

Phrase difficult to find means collision is not possible.

Try with randomly chosen inputs to find out a collision - but it takes too
long
Collision Free: How do we gurantee
If a hash function produces N bits of output, an attacker needs to compute
2N/2
Hash operations on a random input to find two matching outputs with
probability > 0.98

For a 256 bits hash function the attacker needs to compute


2128 hash operations.
It is significantly time consuming. If every hash computation takes 0.1 microseconds, it will
need approx.
1025 years to find out two such a messages which have the same hash value
Hash as a message digest
● If we observe H(x) = H(y); it is safe to assume that x = y
● We need to remember just the hash value rather than the entire
message - we call this as a message digest
● To check if two messages x & y are same i.e. whether x = y ;
simply check if H(x) = H (y)
● This is efficient bcoz the size of the digest is significantly less
than the size of the original message
Hashing Illustrations
http://www.blockchain-basics.com/HashFunctions.html
Information Hiding through Hashing
● Given an H(x) it is computationally difficult to find H(x)
● The difficulty depends upon the size of message
digests
● Hiding helps to commit a value and then check it later
● Compute the message digest and store it in a digest
store - commit
● To check whether a message has been committed
match the message digest at the digest store.
Puzzle friendliness
Say M is chosen from a widely spread distribution; it is computationally difficult to
find a k such that Z= H(M||k), where M and Z are known priori.

A Search Puzzle used in bitcoin mining

M & Z are given , k is the search solution.

Note: It might be not exactly a particular value Z but some properties Z


satisfies.i.e. Z could be a set of possible values.

Puzzle friendly property implies that random searching is the best strategy to solve
the above puzzle.

You might also like