Knowledge

Merkle tree

Source đź“ť

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:.

Index


cryptography
computer science
tree
node
cryptographic hash
data structure
hash list
hash chain
logarithm
cryptographic commitment scheme
Ralph Merkle
blocks
peer-to-peer network
hash-based cryptography
InterPlanetary File System
BitTorrent
Btrfs
ZFS
data degradation
Dat
Apache Wave
Git
Mercurial
directed acyclic graphs
Tahoe-LAFS
Zeronet
Bitcoin
Ethereum
Certificate Transparency

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑