Citizendia
Your Ad Here

A binary hash tree
A binary hash tree

In cryptography and computer science Hash trees or Merkle trees are a type of data structure which contains a tree of summary information about a larger piece of data – for instance a file – used to verify its contents. Cryptography (or cryptology; from Greek grc κρυπτός kryptos, "hidden secret" and grc γράφω gráphō, "I write" Computer science (or computing science) is the study and the Science of the theoretical foundations of Information and Computation and their A data structure in Computer science is a way of storing Data in a computer so that it can be used efficiently In Computer science, a tree is a widely-used Data structure that emulates a Tree structure with a set of linked nodes Hash trees are an extension of hash lists, which in turn is an extension of hashing. In Computer science, a hash list is typically a list of hashes of the data blocks in a file or set of files A hash function is any well-defined procedure or mathematical function for turning some kind of Data into a relatively small integer, that may Hash trees where the underlying hash function is Tiger are often called Tiger trees or Tiger tree hashes. In Cryptography, Tiger is a Cryptographic hash function designed by Ross Anderson and Eli Biham in 1995 for efficiency on 64-bit

Contents

Uses

Hash trees can be used to protect any kind of data stored, handled and transferred in and between computers. Currently the main use of hash trees is to make sure that data blocks received from other peers in a peer-to-peer network are received undamaged and unaltered, and even to check that the other peers do not lie and send fake blocks. For other uses of the term see Peer-to-peer (disambiguation For peer-to-peer networks used for file sharing see File sharing Suggestions have been made to use hash trees in trusted computing systems. Trusted Computing (TC is a technology developed and promoted by the Trusted Computing Group. Sun Microsystems have used Merkle Trees in the ZFS filesystem[1]. Sun Microsystems Inc ( is a multinational vendor of Computers computer components Computer software, and Information technology services In Computing, ZFS is a File system designed by Sun Microsystems for the Solaris Operating System.

Hash trees were invented in 1979 by Ralph Merkle [2]. Ralph C Merkle (born February 2, 1952) is a pioneer in Public key cryptography, and more recently a researcher and speaker on Molecular nanotechnology The original purpose was to make it possible to efficiently handle many Lamport one-time signatures. In Cryptography, a Lamport signature or Lamport one-time signature scheme is a method for constructing a Digital signature. Lamport signatures are believed to still be secure in the event that quantum computers become reality. A quantum computer is a device for Computation that makes direct use of distinctively Quantum mechanical Phenomena, such as superposition Unfortunately each Lamport key can only be used to sign one single message. But combined with hash trees they can be used for many messages and then become a fairly efficient digital signature scheme. A digital signature or digital signature scheme is a type of asymmetric cryptography used to simulate the security properties of a handwritten Signature

How hash trees work

A hash tree is a tree of hashes in which the leaves are hashes of data blocks in, for instance, a file or set of files. In Computer science, a binary tree is a tree data structure in which each node has at most two children. A hash function is any well-defined procedure or mathematical function for turning some kind of Data into a relatively small integer, that may Nodes further up in the tree are the hashes of their respective children. For example, in the picture hash 0 is the result of hashing hash 0-0 and then hash 0-1. That is, hash 0 = hash( hash 0-0 || hash 0-1 ) where || denotes concatenation.

Most hash tree implementations are binary (two child nodes under each node) but they can just as well use many more child nodes under each node.

Usually, a cryptographic hash function such as SHA-1, Whirlpool, or Tiger is used for the hashing. A cryptographic Hash function is a transformation that takes an input (or 'message' and returns a fixed-size string which is called the hash value (sometimes "WHIRLPOOL" redirects here This article is about the algorithm In Cryptography, Tiger is a Cryptographic hash function designed by Ross Anderson and Eli Biham in 1995 for efficiency on 64-bit If the hash tree only needs to protect against unintentional damage, the much less secure checksums such as CRCs can be used. A checksum is a form of Redundancy check, a simple way to protect the integrity of data by detecting errors in data that are sent through space ( Telecommunications A cyclic redundancy check (CRC is a type of function that takes as input a data stream of any length and produces as output a value of a certain space commonly a 32-bit integer

In the top of a hash tree there is a top hash (or root hash or master hash). Before downloading a file on a p2p network, in most cases the top hash is acquired from a trusted source, for instance a friend or a web site that is known to have good recommendations of files to download. When the top hash is available, the hash tree can be received from any non-trusted source, like any peer in the p2p network. Then, the received hash tree is checked against the trusted top hash, and if the hash tree is damaged or fake, another hash tree from another source will be tried until the program finds one that matches the top hash.

The main difference from a hash list is that one branch of the hash tree can be downloaded at a time and the integrity of each branch can be checked immediately, even though the whole tree is not available yet. This can be an advantage since it is efficient to split files up in very small data blocks so that only small blocks have to be redownloaded if they get damaged. If the hashed file is very big, such a hash tree or hash list becomes fairly big. But if it is a tree, one small branch can be downloaded quickly, the integrity of the branch can be checked, and then the downloading of data blocks can start.

There are several additional tricks, benefits and details regarding hash trees. See the references and external links below for more in-depth information.

Tiger tree hash

The Tiger tree hash is probably the most widely used form of hash tree. It uses a binary hash tree (two child nodes under each node), usually has a data block size of 1024-bytes and uses the cryptographically secure Tiger hash. A byte (pronounced "bite" baɪt is the basic unit of measurement of information storage in Computer science. In Cryptography, Tiger is a Cryptographic hash function designed by Ross Anderson and Eli Biham in 1995 for efficiency on 64-bit

Tiger tree hashes are used in the Gnutella, Gnutella2, and Direct Connect P2P file sharing protocols and in file sharing applications such as Phex, BearShare, LimeWire, Shareaza, DC++ and Valknut. Gnutella (nʊˈtɛlə with a silent g, or alternatively /gnʊˈtɛlə/ is a File sharing network Gnutella2 ( G2) is a Peer-to-peer protocol developed mainly by Michael Stokes and released 2002. Direct connect is a Peer-to-peer file-sharing protocol. Direct connect clients connect to a central hub and can download files directly from For other uses of the term see Peer-to-peer (disambiguation For peer-to-peer networks used for file sharing see File sharing See Shared resource for the conventional meaning of file sharing File sharing refers to the providing and receiving of digital files over a Phex is a Peer-to-peer File sharing client for the Gnutella network Shareaza is a Peer-to-peer file sharing client which supports the Gnutella, Gnutella2, EDonkey Network, BitTorrent, FTP DC++ is a free and open-source, Peer-to-peer file-sharing client that can be used to connect to the Direct Connect network Valknut is a program that uses the Direct Connect protocol. It is compatible with other DC clients such as the original DC from Neomodus

See also

References

  1. ^ Jeff Bonwick's Blog ZFS End-to-End Data Integrity
  2. ^ R. C. Merkle, A digital signature based on a conventional encryption function, Crypto '87

External links


© 2009 citizendia.org; parts available under the terms of GNU Free Documentation License, from http://en.wikipedia.org
Dapyx Software network: MP3 Explorer | Ebook Manager | Zenithic