343:, 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.
2331:
501:
830:
exchange Merkle trees to identify parts of their replicated key ranges which are out of sync. A Merkle tree is a hierarchical hash verification: if the hash over the entire keyspace is not the same between two replicas, they will exchange hashes of smaller and smaller portions of the replicated keyspace until the out-of-sync keys are identified. This approach reduces unnecessary data transfer between replicas which contain mostly similar data.
1198:
20:
387:. 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 re-downloaded if they get damaged. If the hashed file is big, such a hash list or hash chain 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.
659:
829:
When a replica is down for an extended period of time, or the machine storing hinted handoffs for an unavailable replica goes down as well, replicas must synchronize from one another. In this case, Cassandra and Riak implement a Dynamo-inspired process called anti-entropy. In anti-entropy, replicas
427:, and helps in making some proofs tighter. Some implementations limit the tree depth using hash tree depth prefixes before hashes, so any extracted hash chain is defined to be valid only if the prefix decreases at each step and is still positive when the leaf is reached.
350:
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. For example, in the picture, the integrity of
399:
in which an attacker creates a document other than the original that has the same Merkle hash root. For the example above, an attacker can create a new document containing two data blocks, where the first is
948:
Elena
Andreeva; Charles Bouillaguet; Pierre-Alain Fouque; Jonathan J. Hoch; John Kelsey; Adi Shamir; Sebastien Zimmer (2008). "Second Preimage Attacks on Dithered Hash Functions". In Smart, Nigel (ed.).
1188:
423:: when computing leaf node hashes, a 0x00 byte is prepended to the hash data, while 0x01 is prepended when computing internal node hashes. Limiting the hash tree size is a prerequisite of some
86:
of the number of leaf nodes in the tree. Conversely, in a hash list, the number is proportional to the number of leaf nodes itself. A Merkle tree is therefore an efficient example of a
1186:
23:
An example of a binary hash tree. Hashes 0-0 and 0-1 are the hash values of data blocks L1 and L2, respectively, and hash 0 is the hash of the concatenation of hashes 0-0 and 0-1.
657:, Ralph Merkle, "Method of providing digital signatures", published Jan 5, 1982, assigned to The Board of Trustees of the Leland Stanford Junior University
1187:
2311:
2141:
1048:
915:
Elena
Andreeva; Charles Bouillaguet; Orr Dunkelman; John Kelsey (January 2009). "Herding, Second Preimage and Trojan Message Attacks beyond Merkle-DamgĂĄrd".
435:
The Tiger tree hash is a 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
67:) is labelled with the cryptographic hash of the labels of its child nodes. A hash tree allows efficient and secure verification of the contents of a large
565:
270:
in, for instance, a file or set of files. Nodes farther up in the tree are the hashes of their respective children. For example, in the above picture
305:
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.
722:
990:
1979:
1158:
1899:
105:
Hash trees can be used to verify any kind of data stored, handled and transferred in and between computers. They can help ensure that data
1287:
1005:
90:, in which the root of the tree is seen as a commitment and leaf nodes may be revealed and proven to be part of the original commitment.
682:
1316:
2883:
82:
Demonstrating that a leaf node is a part of a given binary hash tree requires computing a number of hashes proportional to the
2888:
2620:
1915:
966:
932:
638:
2827:
250:
applies the compression step of the hash function to an excessive degree, which is mitigated by using Fast Merkle Trees.
2371:
1676:
1843:
1972:
806:
1056:
2898:
1240:
87:
2487:
1280:
2190:
2121:
1884:
1369:
1321:
572:
113:
are received undamaged and unaltered, and even to check that the other peers do not lie and send fake blocks.
1671:
1155: – explains both the hash tree structure and the use of it to handle many one-time signatures
455:
1965:
1889:
424:
2306:
2261:
2064:
1658:
1300:
1296:
704:
506:
309:
52:
48:
316:
is used for the hashing. If the hash tree only needs to protect against unintentional damage, unsecured
2452:
2185:
1273:
751:
Koblitz, Neal; Menezes, Alfred J. (January 2016). "Cryptocash, cryptocurrencies, and cryptocontracts".
126:
654:
2837:
2301:
1554:
1222:
843:
730:
1359:
947:
765:
2393:
2291:
2281:
2136:
1894:
1730:
1429:
1424:
420:
202:
2286:
2276:
2069:
2029:
2022:
2007:
2002:
1817:
1637:
1203:
873:
321:
232:
120:
1023:
2364:
2074:
2017:
1925:
1311:
760:
524:
396:
171:
1009:
2531:
2380:
2334:
2180:
2126:
1940:
1590:
1544:
1434:
1392:
1377:
674:
440:
44:
2521:
2476:
2296:
2220:
1610:
1514:
1464:
1439:
1218:
8:
2635:
2049:
1935:
1812:
1761:
1700:
1600:
1519:
1479:
1459:
953:. Lecture Notes in Computer Science. Vol. 4965. Istanbul, Turkey. pp. 270–288.
914:
621:
Merkle, R. C. (1988). "A Digital
Signature Based on a Conventional Encryption Function".
539:
266:
in which the leaves (i.e., leaf nodes, sometimes also called "leafs") are hashes of data
209:
2802:
2761:
2587:
2577:
2491:
2456:
2411:
2165:
2149:
2091:
1869:
1853:
1802:
1387:
984:
972:
778:
1231:
A C implementation of a dynamically re-sizeable binary SHA-256 hash tree (Merkle tree)
796:
2696:
2397:
2357:
2225:
2215:
2081:
1746:
1254:, an open source command-line tool, which can calculate TTH and magnet links with TTH
1122:
962:
928:
802:
634:
240:
976:
782:
2893:
2787:
2160:
2012:
1833:
1787:
1549:
954:
920:
897:
854:
770:
626:
247:
224:
145:
32:
1104:
2731:
2481:
1848:
1797:
1792:
1580:
1295:
958:
924:
2684:
2679:
2562:
2496:
2235:
2155:
2111:
2054:
2039:
1838:
1566:
1079:
163:
151:
68:
1151:
774:
2877:
2832:
2812:
2655:
2544:
2471:
2316:
2271:
2230:
2210:
2101:
2059:
2034:
1930:
1807:
1246:
1206:
was created from a revision of this article dated 17 September 2013
859:
801:
PhD thesis, Faculty of
Science, Utrecht, The Netherlands. January 2006. p.21
630:
275:
263:
1509:
919:. Lecture Notes in Computer Science. Vol. 5867. SAC. pp. 393–414.
170:
distributed revision control systems (although, strictly speaking, they use
2792:
2756:
2572:
2567:
2549:
2461:
2406:
2266:
2106:
2096:
2086:
2044:
1988:
486:
462:
458:
110:
94:
28:
889:
2807:
2797:
2711:
2645:
2640:
2630:
2539:
2388:
2245:
1766:
1695:
1691:
514:
340:
259:
157:
820:
2852:
2822:
2782:
2625:
2554:
2501:
2421:
2349:
2205:
2175:
2170:
2131:
1235:
544:
529:
519:
482:
267:
178:
132:
106:
76:
1230:
625:. Lecture Notes in Computer Science. Vol. 293. pp. 369–378.
2857:
2817:
2664:
2592:
2582:
2195:
1595:
1474:
901:
534:
470:
451:
347:
167:
83:
72:
1382:
500:
363:
by hashing the data block and iteratively combining the result with
2862:
2746:
2736:
2716:
2689:
2674:
2436:
2426:
2240:
2200:
1874:
1771:
1756:
1751:
1741:
1705:
1625:
1539:
1419:
478:
474:
447:
317:
213:
195:
395:
The Merkle hash root does not indicate the tree depth, enabling a
2847:
2751:
2726:
2669:
2516:
2446:
2441:
2416:
1710:
1666:
1444:
596:
191:
184:
1251:
566:"Merkle Signature Schemes, Merkle Trees and Their Cryptanalysis"
2766:
2741:
2721:
2706:
2615:
2506:
2431:
2116:
1879:
1620:
1615:
1585:
1575:
1534:
1529:
1524:
1504:
1499:
1469:
1454:
1414:
2610:
2511:
2466:
1605:
1494:
1449:
1397:
1354:
1349:
1343:
313:
220:
137:
55:
of a data block, and every node that is not a leaf (called a
19:
2602:
1720:
1715:
1686:
1681:
1645:
466:
436:
228:
1489:
1484:
1337:
355:
can be verified immediately if the tree already contains
141:
1161: – a detailed description of Tiger trees
2142:
Cryptographically secure pseudorandom number generator
246:
The initial
Bitcoin implementation of Merkle trees by
1077:
571:. Ruhr-Universität Bochum. p. 16. Archived from
1257:
844:"Improved efficient arguments (preliminary version)"
496:
1247:
Tiger Tree Hash (TTH) implementations in C and Java
887:
888:Laurie, B.; Langley, A.; Kasper, E. (June 2013).
2875:
798:The Purely Functional Software Deployment Model.
239:Suggestions have been made to use hash trees in
750:
2365:
1973:
1281:
1003:
2372:
2358:
1980:
1966:
1288:
1274:
989:: CS1 maint: location missing publisher (
371:and finally comparing the result with the
93:The concept of a hash tree is named after
1004:Chapweske, J.; Mohr, G. (March 4, 2003).
858:
764:
390:
2379:
1214:, and does not reflect subsequent edits.
1197:
653:
379:can be verified if the tree already has
18:
1241:Tiger Tree Hash (TTH) source code in C#
951:Advances in Cryptology – EUROCRYPT 2008
818:
672:
666:
71:. A hash tree is a generalization of a
2876:
1049:"Audit: P2P DirectConnect Application"
841:
620:
563:
2353:
1961:
1269:
883:
881:
705:"Bitrot Resistance on a Single Drive"
702:
327:In the top of a hash tree there is a
1078:Arne Babenhauserheide (7 Jan 2007).
874:Mark Friedenbach: Fast Merkle Trees
623:Advances in Cryptology – CRYPTO '87
302:) where "+" denotes concatenation.
13:
1236:Merkle tree implementation in Java
1184:
1144:
1006:"Tree Hash EXchange format (THEX)"
878:
685:from the original on April 3, 2012
597:"Handbook of Applied Cryptography"
430:
339:). Before downloading a file on a
14:
2910:
1165:
2330:
2329:
1987:
1196:
1159:Tree Hash EXchange format (THEX)
499:
1115:
1097:
1071:
1041:
1016:
997:
941:
908:
867:
835:
812:
753:Designs, Codes and Cryptography
723:"General Verifiable Federation"
675:"ZFS End-to-End Data Integrity"
109:received from other peers in a
88:cryptographic commitment scheme
2884:Error detection and correction
2191:Information-theoretic security
1885:NIST hash function competition
917:Selected Areas in Cryptography
789:
744:
715:
696:
647:
614:
589:
557:
461:file sharing protocols and in
446:Tiger tree hashes are used in
375:. Similarly, the integrity of
1:
550:
419:One simple fix is defined in
274:is the result of hashing the
2889:Cryptographic hash functions
1890:Password Hashing Competition
1301:message authentication codes
1297:Cryptographic hash functions
1152:Merkle tree patent 4,309,569
1024:"tigertree.c File Reference"
959:10.1007/978-3-540-78967-3_16
925:10.1007/978-3-642-05445-7_25
673:Bonwick, Jeff (2005-12-08).
564:Becker, Georg (2008-07-18).
7:
2307:Message authentication code
2262:Cryptographic hash function
2065:Cryptographic hash function
1844:Merkle–Damgård construction
507:Computer programming portal
492:
346:The main difference from a
310:cryptographic hash function
253:
97:, who patented it in 1979.
10:
2915:
2186:Harvest now, decrypt later
1109:dcplusplus.sourceforge.net
890:"Certificate Transparency"
127:InterPlanetary File System
2775:
2654:
2601:
2530:
2387:
2325:
2302:Post-quantum cryptography
2254:
1995:
1957:
1908:
1862:
1826:
1780:
1729:
1657:
1634:
1563:
1407:
1368:
1330:
1307:
1265:
1261:
775:10.1007/s10623-015-0148-5
144:file systems (to counter
116:Hash trees are used in:
2828:Left-child right-sibling
2292:Quantum key distribution
2282:Authenticated encryption
2137:Random number generation
1638:key derivation functions
860:10.1007/3-540-44750-4_25
631:10.1007/3-540-48184-2_32
421:Certificate Transparency
203:Certificate Transparency
2899:Trees (data structures)
2658:data partitioning trees
2616:C-trie (compressed ADT)
2287:Public-key cryptography
2277:Symmetric-key algorithm
2070:Key derivation function
2030:Cryptographic primitive
2023:Authentication protocol
2008:Outline of cryptography
2003:History of cryptography
1916:Hash-based cryptography
1818:Length extension attack
172:directed acyclic graphs
121:hash-based cryptography
100:
2075:Secure Hash Algorithms
2018:Cryptographic protocol
1926:Message authentication
1192:
1172:Listen to this article
525:Distributed hash table
425:formal security proofs
397:second-preimage attack
391:Second preimage attack
198:peer-to-peer networks;
47:in which every "leaf"
24:
16:Type of data structure
2181:End-to-end encryption
2127:Cryptojacking malware
1191:
1105:"DC++'s feature list"
1080:"Phex 3.0.0 released"
821:"The NoSQL Ecosystem"
655:US patent 4309569
465:applications such as
212:and descendants like
51:is labelled with the
22:
2838:Log-structured merge
2381:Tree data structures
2297:Quantum cryptography
2221:Trusted timestamping
1223:More spoken articles
727:Google Wave Protocol
408:, and the second is
111:peer-to-peer network
2050:Cryptographic nonce
1813:Side-channel attack
1059:on January 29, 2015
842:Kilian, J. (1995).
540:Linked timestamping
210:Nix package manager
2803:Fractal tree index
2398:associative arrays
2166:Subliminal channel
2150:Pseudorandom noise
2092:Key (cryptography)
1870:CAESAR Competition
1854:HAIFA construction
1803:Brute-force attack
1193:
53:cryptographic hash
25:
2871:
2870:
2347:
2346:
2343:
2342:
2226:Key-based routing
2216:Trapdoor function
2082:Digital signature
1953:
1952:
1949:
1948:
1747:ChaCha20-Poly1305
1564:Password hashing/
1189:
968:978-3-540-78966-6
934:978-3-642-05443-3
640:978-3-540-18796-7
601:cacr.uwaterloo.ca
258:A hash tree is a
241:trusted computing
2906:
2374:
2367:
2360:
2351:
2350:
2333:
2332:
2161:Insecure channel
2013:Classical cipher
1982:
1975:
1968:
1959:
1958:
1834:Avalanche effect
1788:Collision attack
1331:Common functions
1290:
1283:
1276:
1267:
1266:
1263:
1262:
1259:
1258:
1243:, by Gil Schmidt
1213:
1211:
1200:
1199:
1190:
1180:
1178:
1173:
1154:
1138:
1137:
1135:
1133:
1119:
1113:
1112:
1101:
1095:
1094:
1092:
1090:
1075:
1069:
1068:
1066:
1064:
1055:. Archived from
1045:
1039:
1038:
1036:
1034:
1020:
1014:
1013:
1008:. Archived from
1001:
995:
994:
988:
980:
945:
939:
938:
912:
906:
905:
902:10.17487/rfc6962
885:
876:
871:
865:
864:
862:
848:
839:
833:
832:
816:
810:
793:
787:
786:
768:
748:
742:
741:
739:
738:
729:. Archived from
719:
713:
712:
700:
694:
693:
691:
690:
679:blogs.oracle.com
670:
664:
663:
662:
658:
651:
645:
644:
618:
612:
611:
609:
608:
603:. Section 13.4.1
593:
587:
586:
584:
583:
577:
570:
561:
509:
504:
503:
248:Satoshi Nakamoto
225:Apache Cassandra
223:systems such as
146:data degradation
33:computer science
2914:
2913:
2909:
2908:
2907:
2905:
2904:
2903:
2874:
2873:
2872:
2867:
2771:
2650:
2597:
2526:
2522:Weight-balanced
2477:Order statistic
2391:
2383:
2378:
2348:
2339:
2321:
2250:
1991:
1986:
1945:
1904:
1863:Standardization
1858:
1849:Sponge function
1822:
1798:Birthday attack
1793:Preimage attack
1776:
1732:
1725:
1653:
1636:
1635:General purpose
1630:
1565:
1559:
1408:Other functions
1403:
1370:SHA-3 finalists
1364:
1326:
1303:
1294:
1227:
1226:
1215:
1209:
1207:
1204:This audio file
1201:
1194:
1185:
1182:
1176:
1175:
1171:
1168:
1150:
1147:
1145:Further reading
1142:
1141:
1131:
1129:
1121:
1120:
1116:
1103:
1102:
1098:
1088:
1086:
1076:
1072:
1062:
1060:
1047:
1046:
1042:
1032:
1030:
1022:
1021:
1017:
1002:
998:
982:
981:
969:
946:
942:
935:
913:
909:
886:
879:
872:
868:
846:
840:
836:
817:
813:
794:
790:
766:10.1.1.701.8721
749:
745:
736:
734:
721:
720:
716:
701:
697:
688:
686:
671:
667:
660:
652:
648:
641:
619:
615:
606:
604:
595:
594:
590:
581:
579:
575:
568:
562:
558:
553:
505:
498:
495:
433:
431:Tiger tree hash
393:
256:
103:
17:
12:
11:
5:
2912:
2902:
2901:
2896:
2891:
2886:
2869:
2868:
2866:
2865:
2860:
2855:
2850:
2845:
2840:
2835:
2830:
2825:
2820:
2815:
2810:
2805:
2800:
2795:
2790:
2785:
2779:
2777:
2773:
2772:
2770:
2769:
2764:
2759:
2754:
2749:
2744:
2739:
2734:
2729:
2724:
2719:
2714:
2709:
2704:
2687:
2682:
2677:
2672:
2667:
2661:
2659:
2652:
2651:
2649:
2648:
2643:
2638:
2636:Ternary search
2633:
2628:
2623:
2618:
2613:
2607:
2605:
2599:
2598:
2596:
2595:
2590:
2585:
2580:
2575:
2570:
2565:
2560:
2552:
2547:
2542:
2536:
2534:
2528:
2527:
2525:
2524:
2519:
2514:
2509:
2504:
2499:
2494:
2484:
2479:
2474:
2469:
2464:
2459:
2449:
2444:
2439:
2434:
2429:
2424:
2419:
2414:
2409:
2403:
2401:
2385:
2384:
2377:
2376:
2369:
2362:
2354:
2345:
2344:
2341:
2340:
2338:
2337:
2326:
2323:
2322:
2320:
2319:
2314:
2312:Random numbers
2309:
2304:
2299:
2294:
2289:
2284:
2279:
2274:
2269:
2264:
2258:
2256:
2252:
2251:
2249:
2248:
2243:
2238:
2236:Garlic routing
2233:
2228:
2223:
2218:
2213:
2208:
2203:
2198:
2193:
2188:
2183:
2178:
2173:
2168:
2163:
2158:
2156:Secure channel
2153:
2147:
2146:
2145:
2134:
2129:
2124:
2119:
2114:
2112:Key stretching
2109:
2104:
2099:
2094:
2089:
2084:
2079:
2078:
2077:
2072:
2067:
2057:
2055:Cryptovirology
2052:
2047:
2042:
2040:Cryptocurrency
2037:
2032:
2027:
2026:
2025:
2015:
2010:
2005:
1999:
1997:
1993:
1992:
1985:
1984:
1977:
1970:
1962:
1955:
1954:
1951:
1950:
1947:
1946:
1944:
1943:
1938:
1933:
1928:
1923:
1918:
1912:
1910:
1906:
1905:
1903:
1902:
1897:
1892:
1887:
1882:
1877:
1872:
1866:
1864:
1860:
1859:
1857:
1856:
1851:
1846:
1841:
1839:Hash collision
1836:
1830:
1828:
1824:
1823:
1821:
1820:
1815:
1810:
1805:
1800:
1795:
1790:
1784:
1782:
1778:
1777:
1775:
1774:
1769:
1764:
1759:
1754:
1749:
1744:
1738:
1736:
1727:
1726:
1724:
1723:
1718:
1713:
1708:
1703:
1698:
1689:
1684:
1679:
1674:
1669:
1663:
1661:
1655:
1654:
1652:
1651:
1648:
1642:
1640:
1632:
1631:
1629:
1628:
1623:
1618:
1613:
1608:
1603:
1598:
1593:
1588:
1583:
1578:
1572:
1570:
1567:key stretching
1561:
1560:
1558:
1557:
1552:
1547:
1542:
1537:
1532:
1527:
1522:
1517:
1512:
1507:
1502:
1497:
1492:
1487:
1482:
1477:
1472:
1467:
1462:
1457:
1452:
1447:
1442:
1437:
1432:
1427:
1422:
1417:
1411:
1409:
1405:
1404:
1402:
1401:
1395:
1390:
1385:
1380:
1374:
1372:
1366:
1365:
1363:
1362:
1357:
1352:
1347:
1341:
1334:
1332:
1328:
1327:
1325:
1324:
1319:
1314:
1308:
1305:
1304:
1293:
1292:
1285:
1278:
1270:
1256:
1255:
1249:
1244:
1238:
1233:
1216:
1202:
1195:
1183:
1170:
1169:
1167:
1166:External links
1164:
1163:
1162:
1156:
1146:
1143:
1140:
1139:
1114:
1096:
1070:
1040:
1015:
1012:on 2009-08-03.
996:
967:
940:
933:
907:
877:
866:
834:
811:
788:
743:
714:
695:
665:
646:
639:
613:
588:
555:
554:
552:
549:
548:
547:
542:
537:
532:
527:
522:
517:
511:
510:
494:
491:
456:Direct Connect
432:
429:
392:
389:
255:
252:
237:
236:
217:
206:
199:
188:
182:
181:backup system;
175:
161:
155:
149:
135:
130:
124:
102:
99:
69:data structure
15:
9:
6:
4:
3:
2:
2911:
2900:
2897:
2895:
2892:
2890:
2887:
2885:
2882:
2881:
2879:
2864:
2861:
2859:
2856:
2854:
2851:
2849:
2846:
2844:
2841:
2839:
2836:
2834:
2831:
2829:
2826:
2824:
2821:
2819:
2816:
2814:
2813:Hash calendar
2811:
2809:
2806:
2804:
2801:
2799:
2796:
2794:
2791:
2789:
2786:
2784:
2781:
2780:
2778:
2774:
2768:
2765:
2763:
2760:
2758:
2755:
2753:
2750:
2748:
2745:
2743:
2740:
2738:
2735:
2733:
2730:
2728:
2725:
2723:
2720:
2718:
2715:
2713:
2710:
2708:
2705:
2702:
2700:
2694:
2692:
2688:
2686:
2683:
2681:
2678:
2676:
2673:
2671:
2668:
2666:
2663:
2662:
2660:
2657:
2653:
2647:
2644:
2642:
2639:
2637:
2634:
2632:
2629:
2627:
2624:
2622:
2619:
2617:
2614:
2612:
2609:
2608:
2606:
2604:
2600:
2594:
2591:
2589:
2588:van Emde Boas
2586:
2584:
2581:
2579:
2578:Skew binomial
2576:
2574:
2571:
2569:
2566:
2564:
2561:
2559:
2557:
2553:
2551:
2548:
2546:
2543:
2541:
2538:
2537:
2535:
2533:
2529:
2523:
2520:
2518:
2515:
2513:
2510:
2508:
2505:
2503:
2500:
2498:
2495:
2493:
2489:
2485:
2483:
2480:
2478:
2475:
2473:
2470:
2468:
2465:
2463:
2460:
2458:
2457:Binary search
2454:
2450:
2448:
2445:
2443:
2440:
2438:
2435:
2433:
2430:
2428:
2425:
2423:
2420:
2418:
2415:
2413:
2410:
2408:
2405:
2404:
2402:
2399:
2395:
2390:
2386:
2382:
2375:
2370:
2368:
2363:
2361:
2356:
2355:
2352:
2336:
2328:
2327:
2324:
2318:
2317:Steganography
2315:
2313:
2310:
2308:
2305:
2303:
2300:
2298:
2295:
2293:
2290:
2288:
2285:
2283:
2280:
2278:
2275:
2273:
2272:Stream cipher
2270:
2268:
2265:
2263:
2260:
2259:
2257:
2253:
2247:
2244:
2242:
2239:
2237:
2234:
2232:
2231:Onion routing
2229:
2227:
2224:
2222:
2219:
2217:
2214:
2212:
2211:Shared secret
2209:
2207:
2204:
2202:
2199:
2197:
2194:
2192:
2189:
2187:
2184:
2182:
2179:
2177:
2174:
2172:
2169:
2167:
2164:
2162:
2159:
2157:
2154:
2151:
2148:
2143:
2140:
2139:
2138:
2135:
2133:
2130:
2128:
2125:
2123:
2120:
2118:
2115:
2113:
2110:
2108:
2105:
2103:
2102:Key generator
2100:
2098:
2095:
2093:
2090:
2088:
2085:
2083:
2080:
2076:
2073:
2071:
2068:
2066:
2063:
2062:
2061:
2060:Hash function
2058:
2056:
2053:
2051:
2048:
2046:
2043:
2041:
2038:
2036:
2035:Cryptanalysis
2033:
2031:
2028:
2024:
2021:
2020:
2019:
2016:
2014:
2011:
2009:
2006:
2004:
2001:
2000:
1998:
1994:
1990:
1983:
1978:
1976:
1971:
1969:
1964:
1963:
1960:
1956:
1942:
1939:
1937:
1934:
1932:
1931:Proof of work
1929:
1927:
1924:
1922:
1919:
1917:
1914:
1913:
1911:
1907:
1901:
1898:
1896:
1893:
1891:
1888:
1886:
1883:
1881:
1878:
1876:
1873:
1871:
1868:
1867:
1865:
1861:
1855:
1852:
1850:
1847:
1845:
1842:
1840:
1837:
1835:
1832:
1831:
1829:
1825:
1819:
1816:
1814:
1811:
1809:
1808:Rainbow table
1806:
1804:
1801:
1799:
1796:
1794:
1791:
1789:
1786:
1785:
1783:
1779:
1773:
1770:
1768:
1765:
1763:
1760:
1758:
1755:
1753:
1750:
1748:
1745:
1743:
1740:
1739:
1737:
1734:
1731:Authenticated
1728:
1722:
1719:
1717:
1714:
1712:
1709:
1707:
1704:
1702:
1699:
1697:
1693:
1690:
1688:
1685:
1683:
1680:
1678:
1675:
1673:
1670:
1668:
1665:
1664:
1662:
1660:
1659:MAC functions
1656:
1649:
1647:
1644:
1643:
1641:
1639:
1633:
1627:
1624:
1622:
1619:
1617:
1614:
1612:
1609:
1607:
1604:
1602:
1599:
1597:
1594:
1592:
1589:
1587:
1584:
1582:
1579:
1577:
1574:
1573:
1571:
1568:
1562:
1556:
1553:
1551:
1548:
1546:
1543:
1541:
1538:
1536:
1533:
1531:
1528:
1526:
1523:
1521:
1518:
1516:
1513:
1511:
1508:
1506:
1503:
1501:
1498:
1496:
1493:
1491:
1488:
1486:
1483:
1481:
1478:
1476:
1473:
1471:
1468:
1466:
1463:
1461:
1458:
1456:
1453:
1451:
1448:
1446:
1443:
1441:
1438:
1436:
1433:
1431:
1428:
1426:
1423:
1421:
1418:
1416:
1413:
1412:
1410:
1406:
1399:
1396:
1394:
1391:
1389:
1386:
1384:
1381:
1379:
1376:
1375:
1373:
1371:
1367:
1361:
1358:
1356:
1353:
1351:
1348:
1346:(compromised)
1345:
1342:
1340:(compromised)
1339:
1336:
1335:
1333:
1329:
1323:
1322:Known attacks
1320:
1318:
1315:
1313:
1310:
1309:
1306:
1302:
1298:
1291:
1286:
1284:
1279:
1277:
1272:
1271:
1268:
1264:
1260:
1253:
1250:
1248:
1245:
1242:
1239:
1237:
1234:
1232:
1229:
1228:
1224:
1220:
1205:
1160:
1157:
1153:
1149:
1148:
1128:
1124:
1123:"Development"
1118:
1110:
1106:
1100:
1085:
1081:
1074:
1058:
1054:
1050:
1044:
1029:
1025:
1019:
1011:
1007:
1000:
992:
986:
978:
974:
970:
964:
960:
956:
952:
944:
936:
930:
926:
922:
918:
911:
903:
899:
895:
891:
884:
882:
875:
870:
861:
856:
852:
845:
838:
831:
826:
822:
819:Adam Marcus.
815:
808:
807:90-393-4130-3
804:
800:
799:
792:
784:
780:
776:
772:
767:
762:
759:(1): 87–102.
758:
754:
747:
733:on 2018-04-08
732:
728:
724:
718:
710:
706:
699:
684:
680:
676:
669:
656:
650:
642:
636:
632:
628:
624:
617:
602:
598:
592:
578:on 2014-12-22
574:
567:
560:
556:
546:
543:
541:
538:
536:
533:
531:
528:
526:
523:
521:
518:
516:
513:
512:
508:
502:
497:
490:
488:
484:
480:
476:
472:
468:
464:
460:
457:
453:
449:
444:
442:
439:and uses the
438:
428:
426:
422:
417:
415:
411:
407:
403:
398:
388:
386:
382:
378:
377:data block L3
374:
370:
366:
362:
358:
354:
353:data block L2
349:
344:
342:
338:
334:
330:
325:
324:can be used.
323:
319:
315:
311:
306:
303:
301:
297:
293:
289:
285:
281:
277:
276:concatenation
273:
269:
265:
261:
251:
249:
244:
242:
234:
230:
226:
222:
218:
215:
211:
207:
204:
200:
197:
193:
189:
186:
183:
180:
176:
174:, not trees);
173:
169:
165:
162:
159:
156:
153:
150:
147:
143:
139:
136:
134:
131:
128:
125:
122:
119:
118:
117:
114:
112:
108:
98:
96:
91:
89:
85:
80:
78:
74:
70:
66:
62:
58:
54:
50:
46:
42:
38:
34:
30:
21:
2842:
2698:
2690:
2555:
2488:Left-leaning
2394:dynamic sets
2389:Search trees
2267:Block cipher
2107:Key schedule
2097:Key exchange
2087:Kleptography
2045:Cryptosystem
1989:Cryptography
1920:
1132:23 September
1130:. Retrieved
1127:GTK-Gnutella
1126:
1117:
1108:
1099:
1089:23 September
1087:. Retrieved
1083:
1073:
1063:23 September
1061:. Retrieved
1057:the original
1052:
1043:
1033:23 September
1031:. Retrieved
1028:Gtk-Gnutella
1027:
1018:
1010:the original
999:
950:
943:
916:
910:
893:
869:
850:
837:
828:
825:aosabook.org
824:
814:
797:
795:Dolstra, E.
791:
756:
752:
746:
735:. Retrieved
731:the original
726:
717:
708:
698:
687:. Retrieved
678:
668:
649:
622:
616:
605:. Retrieved
600:
591:
580:. Retrieved
573:the original
559:
487:gtk-gnutella
463:file sharing
445:
434:
418:
413:
409:
405:
401:
394:
384:
380:
376:
372:
368:
364:
360:
356:
352:
345:
336:
332:
328:
326:
307:
304:
299:
295:
291:
287:
283:
279:
271:
257:
245:
238:
115:
104:
95:Ralph Merkle
92:
81:
64:
60:
56:
40:
36:
29:cryptography
26:
2788:Exponential
2776:Other trees
2255:Mathematics
2246:Mix network
1921:Merkle tree
1909:Utilization
1895:NSA Suite B
896:: RFC6962.
703:Likai Liu.
515:Binary tree
341:P2P network
337:master hash
308:Usually, a
286:. That is,
158:Apache Wave
41:Merkle tree
2878:Categories
2732:Priority R
2482:Palindrome
2206:Ciphertext
2176:Decryption
2171:Encryption
2132:Ransomware
1733:encryption
1510:RadioGatĂşn
1317:Comparison
1219:Audio help
1210:2013-09-17
737:2017-03-09
689:2013-09-19
607:2024-03-07
582:2013-11-20
551:References
545:Radix tree
530:Hash table
520:Blockchain
441:Tiger hash
219:number of
205:framework;
179:Tahoe-LAFS
133:BitTorrent
77:hash chain
61:inner node
2818:iDistance
2697:implicit
2685:Hilbert R
2680:Cartesian
2563:Fibonacci
2497:Scapegoat
2492:Red–black
2196:Plaintext
1650:KDF1/KDF2
1569:functions
1555:Whirlpool
985:cite book
761:CiteSeerX
709:likai.org
535:Hash trie
471:BearShare
452:Gnutella2
367:and then
348:hash list
333:root hash
318:checksums
243:systems.
168:Mercurial
160:protocol;
154:protocol;
84:logarithm
73:hash list
37:hash tree
2833:Link/cut
2545:Binomial
2472:Interval
2335:Category
2241:Kademlia
2201:Codetext
2144:(CSPRNG)
2122:Machines
1875:CRYPTREC
1706:Poly1305
1626:yescrypt
1540:Streebog
1420:CubeHash
1400:(winner)
1221: ·
1053:Symantec
977:12844017
783:16594958
683:Archived
493:See also
479:Shareaza
475:LimeWire
448:Gnutella
414:hash 1-1
410:hash 1-0
406:hash 0-1
402:hash 0-0
381:hash 1-1
373:top hash
365:hash 0-0
357:hash 0-0
329:top hash
320:such as
312:such as
300:hash 0-1
296:hash 0-0
284:hash 0-1
280:hash 0-0
254:Overview
214:GNU Guix
196:Ethereum
2894:Hashing
2793:Fenwick
2757:Segment
2656:Spatial
2573:Pairing
2568:Leftist
2490:)
2462:Dancing
2455:)
2453:Optimal
1996:General
1781:Attacks
1711:SipHash
1667:CBC-MAC
1601:LM hash
1581:Balloon
1445:HAS-160
1208: (
1179:minutes
192:Bitcoin
185:Zeronet
129:(IPFS),
2843:Merkle
2808:Fusion
2798:Finger
2722:Octree
2712:Metric
2646:Y-fast
2641:X-fast
2631:Suffix
2550:Brodal
2540:Binary
2117:Keygen
1941:Pepper
1880:NESSIE
1827:Design
1621:scrypt
1616:PBKDF2
1591:Catena
1586:bcrypt
1576:Argon2
1535:Snefru
1530:Shabal
1525:SWIFFT
1505:RIPEMD
1500:N-hash
1475:MASH-2
1470:MASH-1
1455:Kupyna
1415:BLAKE3
1398:Keccak
1383:Grøstl
1360:BLAKE2
975:
965:
931:
851:CRYPTO
805:
781:
763:
661:
637:
454:, and
385:hash 0
369:hash 1
361:hash 1
288:hash 0
272:hash 0
268:blocks
264:hashes
233:Dynamo
231:, and
107:blocks
75:and a
57:branch
2853:Range
2823:K-ary
2783:Cover
2626:Radix
2611:Ctrie
2603:Tries
2532:Heaps
2512:Treap
2502:Splay
2467:HTree
2422:(a,b)
2412:2–3–4
2152:(PRN)
1735:modes
1611:Makwa
1606:Lyra2
1596:crypt
1545:Tiger
1495:MDC-2
1450:HAVAL
1435:Fugue
1393:Skein
1378:BLAKE
1355:SHA-3
1350:SHA-2
1344:SHA-1
1252:RHash
973:S2CID
847:(PDF)
779:S2CID
576:(PDF)
569:(PDF)
437:bytes
314:SHA-2
221:NoSQL
138:Btrfs
65:inode
63:, or
43:is a
2858:SPQR
2737:Quad
2665:Ball
2621:Hash
2593:Weak
2583:Skew
2558:-ary
1936:Salt
1900:CNSA
1767:IAPM
1721:VMAC
1716:UMAC
1701:PMAC
1696:CMAC
1692:OMAC
1687:NMAC
1682:HMAC
1677:GMAC
1646:HKDF
1515:SIMD
1465:Lane
1440:GOST
1425:ECOH
1312:List
1299:and
1134:2018
1091:2018
1084:Phex
1065:2018
1035:2018
991:link
963:ISBN
929:ISBN
894:IETF
803:ISBN
635:ISBN
485:and
483:DC++
467:Phex
383:and
359:and
331:(or
322:CRCs
292:hash
282:and
260:tree
229:Riak
208:the
201:the
194:and
190:the
177:the
166:and
140:and
101:Uses
49:node
45:tree
35:, a
31:and
2863:Top
2717:MVP
2675:BSP
2427:AVL
2407:2–3
1772:OCB
1762:GCM
1757:EAX
1752:CWC
1742:CCM
1672:DAA
1550:VSH
1520:SM3
1490:MD6
1485:MD4
1480:MD2
1460:LSH
1430:FSB
1338:MD5
955:doi
921:doi
898:doi
855:doi
771:doi
627:doi
459:P2P
335:or
278:of
262:of
164:Git
152:Dat
142:ZFS
39:or
27:In
2880::
2848:PQ
2762:VP
2752:R*
2747:R+
2727:PH
2701:-d
2693:-d
2670:BK
2517:UB
2442:B*
2437:B+
2417:AA
1388:JH
1125:.
1107:.
1082:.
1051:.
1026:.
987:}}
983:{{
971:.
961:.
927:.
892:.
880:^
853:.
849:.
827:.
823:.
777:.
769:.
757:78
755:.
725:.
707:.
681:.
677:.
633:.
599:.
489:.
481:,
477:,
473:,
469:,
450:,
443:.
416:.
412:+
404:+
298:+
294:(
290:=
227:,
148:);
79:.
59:,
2767:X
2742:R
2707:M
2703:)
2699:k
2695:(
2691:k
2556:d
2507:T
2486:(
2451:(
2447:B
2432:B
2400:)
2396:/
2392:(
2373:e
2366:t
2359:v
1981:e
1974:t
1967:v
1694:/
1289:e
1282:t
1275:v
1225:)
1217:(
1212:)
1181:)
1177:5
1174:(
1136:.
1111:.
1093:.
1067:.
1037:.
993:)
979:.
957::
937:.
923::
904:.
900::
863:.
857::
809:.
785:.
773::
740:.
711:.
692:.
643:.
629::
610:.
585:.
235:.
216:;
187:;
123:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.