Knowledge (XXG)

SipHash

Source 📝

2272: 170:
For example, suppose a network server is designed to be able to handle up to a million requests at once. It keeps track of incoming requests in a hash table with two million entries, using a hash function to map identifying information from each request to one of the two million possible table
748:
SipHash designer here, haven't changed my opinion about SipHash-1-3 :-) There's a "distinguisher" on 4 rounds, or in simplest terms a statistical bias that shows up given a specific difference pattern in the input of the 4-round sequence. But you can't inject that pattern in SipHash-1-3
205:
is the number of finalization rounds. The recommended parameters are SipHash-2-4 for best performance, and SipHash-4-8 for conservative security. A few languages use Siphash-1-3 for performance at the risk of yet-unknown DoS attacks.
697:
Intellectual property: We aren't aware of any patents or patent applications relevant to SipHash, and we aren't planning to apply for any. The reference code of SipHash is released under CC0 license, a public domain-like
171:
entries. An attacker who knows the hash function need only feed it arbitrary inputs; one out of two million will have a specific hash value. If the attacker now sends a few hundred requests all chosen to have the
148:
from a variable-length message and 128-bit secret key. It was designed to be efficient even for short inputs, with performance comparable to non-cryptographic hash functions, such as
2252: 2082: 167:
output, such as an index into a hash table of practical size, then no algorithm can prevent collisions; an attacker need only make as many attempts as there are possible outputs.
182:
By using a key unknown to the attacker, a keyed hash function like SipHash prevents this sort of attack. While it is possible to add a key to an unkeyed hash function (
2305: 1935: 1855: 1243: 2300: 1272: 175:
hash value to the server, that will produce a large number of hash collisions, slowing (or possibly stopping) the server with an effect similar to a
2310: 431: 522: 733:"Comment on: change Siphash to use one of the faster variants of the algorithm (Siphash13, Highwayhash) · Issue #29754 · rust-lang/rust" 631:
The recently proposed SipHash offers a good balance as it provides collision resistance and comparable performance to non-crypto hashes
1799: 648: 1632: 1928: 609: 1011: 1236: 45: 1130: 572: 2131: 1840: 1325: 1277: 749:
because you don't control all the state. And even if you could inject that pattern the bias wouldn't be exploitable anyway.
1627: 1075: 285: 1921: 1845: 308: 49: 1118: 2247: 2202: 2015: 1614: 1256: 1252: 982: 503:
Dobraunig, Christoph; Mendel, Florian; Schläffer, Martin (29 November 2014). "Differential Cryptanalysis of SipHash".
479: 469: 302: 296: 291: 163:
An unkeyed hash function such as SHA is collision-resistant only if the entire output is used. If used to generate a
145: 57: 977: 2126: 1229: 932: 377: 2242: 1871: 1510: 371: 2232: 2222: 2077: 1850: 1686: 1385: 1380: 210: 176: 38: 2227: 2217: 2020: 1980: 1973: 1963: 1958: 1773: 1593: 762: 1968: 1881: 1267: 824: 484: 260: 214: 53: 681: 2275: 2121: 2067: 1896: 1546: 1500: 1390: 1348: 1333: 1315: 732: 27: 963:"Feature #13017: Switch SipHash from SipHash24 to SipHash13 - Ruby master - Ruby Issue Tracking System" 2237: 2161: 1566: 1470: 1420: 1395: 1193: 240: 2000: 1891: 1768: 1717: 1656: 1475: 1435: 1415: 644: 549: 31: 1041: 865: 2106: 2090: 2037: 1825: 1809: 1758: 1343: 1095: 1007: 615: 590:
So, Won; Narayanan, Ashok; Oran, David; Stapp, Mark (2013). "Named data networking on a router".
2166: 2156: 2027: 1702: 819: 711: 605: 518: 2101: 1789: 1743: 1505: 661: 597: 510: 317: 142: 35: 1061: 1804: 1753: 1748: 1536: 1027: 421: 68:). That is, SHA is designed so that it is difficult for an attacker to find two messages 2176: 2096: 2057: 2005: 1990: 1794: 1522: 1201: 717: 157: 48:. Although it can be used to ensure security, SipHash is fundamentally different from 2294: 2257: 2212: 2171: 2151: 2047: 2010: 1985: 1886: 1763: 1465: 1181: 591: 474: 2207: 2052: 2042: 2032: 1995: 1944: 619: 463: 381: 279: 23: 911: 514: 2186: 1876: 1722: 1651: 1647: 1556: 411: 2146: 2116: 2111: 2072: 1169: 250: 231: 153: 1131:"Bbloom/SipHash.go at 73e3f896a4f8bbed8589df6ff5c28ebfbd728e31 · ipfs/Bbloom" 2136: 1551: 891: 788: 601: 349: 1338: 436: 962: 2181: 2141: 1830: 1727: 1712: 1707: 1697: 1661: 1581: 1495: 1375: 1192:
Jean-Philippe Aumasson; Daniel J. Bernstein; Martin Boßlet (2012-12-29).
426: 149: 845: 400: 1622: 1400: 1016: 793: 509:. Lecture Notes in Computer Science. Vol. 8781. pp. 165–182. 441: 361: 344: 339: 334: 327: 255: 245: 446: 2062: 1835: 1576: 1571: 1541: 1531: 1490: 1485: 1480: 1460: 1455: 1430: 1425: 1410: 1370: 1159: 1135: 1080: 1046: 993: 948: 937: 916: 804: 406: 416: 403:(Wassenberg & Alakuijala 2017, part of their "highwayhash" work) 1154: 933:"Implement SipHash, use as our hashing function w/ 64-bit hashvals" 553: 504: 394: 368: 1561: 1450: 1405: 1353: 1310: 1305: 1299: 451: 322: 270: 766: 152:; this can be used to prevent denial-of-service attacks against 1676: 1671: 1642: 1637: 1601: 275: 183: 65: 1917: 1225: 1445: 1440: 1293: 1012:"shared: switch our hash table implementation over to SipHash" 685: 657: 218: 160:. A variant was later added which produces a 128-bit result. 761:
Aumasson, Jean-Philippe; Bernstein, Daniel J. (2016-08-01).
1076:"Use siphash for hashtables · WireGuard/Wg-dynamic@360b9c8" 1180:
Jean-Philippe Aumasson; Daniel J. Bernstein (2012-08-15).
1168:
Jean-Philippe Aumasson; Daniel J. Bernstein (2012-09-18).
1153:
Jean-Philippe Aumasson; Daniel J. Bernstein (2016-08-01).
573:"Hash Table Vulnerability Enables Wide-Scale DDoS Attacks" 593:
Proceedings of the ACM SIGCOMM 2013 conference on SIGCOMM
186:
is a popular technique), SipHash is much more efficient.
1182:"SipHash: a fast short-input PRF – Presentation slides" 2083:
Cryptographically secure pseudorandom number generator
892:"PEP 456 – Secure and interchangeable hash algorithm" 658:
Application Security Forum – Western Switzerland 2012
189:
Functions in SipHash family are specified as SipHash-
64:
hash-function-like hash message authentication code (
1213: 713:
Denial of Service via Algorithmic Complexity Attacks
2195: 1951: 1864: 1818: 1782: 1736: 1685: 1613: 1590: 1519: 1363: 1324: 1286: 789:"build: enable v8's SipHash for hash seed creation" 1194:"Hash-flooding DoS reloaded: attacks and defenses" 1062:"[base] Index of /Head/Sys/Crypto/Siphash" 1042:"SRC/Sys/Crypto/Siphash.h at master · openbsd/SRC" 357:The following programs use SipHash in other ways: 1210:– describes when SipHash is not fast enough 288:(starting in version 3.4, SipHash 1-3 since 3.11) 88:). SipHash instead guarantees that, having seen 1155:"SipHash: a fast short-input PRF – Project Page" 866:"Perl security – Algorithmic Complexity Attacks" 820:"Optionally use halfsiphash for integer hashing" 731:Aumasson, Jean-Philippe (veorq) (Nov 12, 2015). 710:Crosby, Scott A.; Wallach, Dan S. (2003-08-06). 650:Hash-flooding DoS reloaded: attacks and defenses 201:is the number of rounds per message block and 1929: 1237: 8: 1936: 1922: 1914: 1244: 1230: 1222: 1218: 1214: 676: 674: 506:Selected Areas in Cryptography -- SAC 2014 106:), an attacker who does not know the key 763:"SipHash: a fast short-input PRF, Users" 397:(Public domain reference implementation) 2306:Public-domain software with source code 543: 541: 495: 56:(SHA) in that it is only suitable as a 156:("hash flooding"), or to authenticate 84:), even though anyone may compute SHA( 30:created by Jean-Philippe Aumasson and 7: 263:(available as a compile-time option) 110:cannot find (any information about) 133:} which they have not seen before. 34:in 2012, in response to a spate of 978:"std: use siphash-1-3 for HashMap" 14: 2301:Hash function (non-cryptographic) 1170:"SipHash: a fast short-input PRF" 682:"SipHash: a fast short-input PRF" 554:"SipHash: a fast short-input PRF" 2271: 2270: 890:Heimes, Christian (2013-09-27). 2311:Creative Commons-licensed works 647:; Boßlet, Martin (2012-11-08). 46:non-cryptographic hash function 2132:Information-theoretic security 1841:NIST hash function competition 931:McVey, Samantha (2018-07-16). 912:"Moving to SipHash-1-3 #73596" 1: 976:McArthur, Sean (2016-06-30). 548:Jean-Philippe Aumasson & 466:(application for fast hashes) 1846:Password Hashing Competition 1257:message authentication codes 1253:Cryptographic hash functions 684:. 2016-08-01. Archived from 515:10.1007/978-3-319-13051-4_10 50:cryptographic hash functions 2248:Message authentication code 2203:Cryptographic hash function 2016:Cryptographic hash function 1800:Merkle–Damgård construction 571:Lennon, Mike (2011-12-28). 480:Message authentication code 470:Cryptographic hash function 146:message authentication code 58:message authentication code 2327: 2127:Harvest now, decrypt later 378:InterPlanetary File System 179:of many million requests. 2266: 2243:Post-quantum cryptography 1913: 1263: 1221: 1217: 1206:The Rust Performance Book 718:Usenix Security Symposium 643:Aumasson, Jean-Philippe; 558:Cryptology ePrint Archive 364:for short transaction IDs 44:SipHash is designed as a 39:denial-of-service attacks 2233:Quantum key distribution 2223:Authenticated encryption 2078:Random number generation 1594:key derivation functions 846:"OCaml Library: Hashtbl" 818:Guo, Yang (2019-01-09). 787:Vagg, Rod (2019-02-28). 211:reference implementation 41:(HashDoS) in late 2011. 2228:Public-key cryptography 2218:Symmetric-key algorithm 2021:Key derivation function 1981:Cryptographic primitive 1974:Authentication protocol 1964:Outline of cryptography 1959:History of cryptography 1872:Hash-based cryptography 1774:Length extension attack 1119:bslh_siphashalgorithm.h 602:10.1145/2486001.2491699 1969:Cryptographic protocol 1882:Message authentication 485:List of hash functions 261:V8 (JavaScript engine) 215:public domain software 54:Secure Hash Algorithms 28:pseudorandom functions 26:(ARX) based family of 2122:End-to-end encryption 2068:Cryptojacking malware 1096:"Compact Block Relay" 380:(IPFS) for its seven 241:Programming languages 236:of various software: 2238:Quantum cryptography 2162:Trusted timestamping 645:Bernstein, Daniel J. 596:. pp. 495–496. 2001:Cryptographic nonce 1769:Side-channel attack 1008:Poettering, Lennart 550:Daniel J. Bernstein 367:Bloomberg BDE as a 229:SipHash is used in 141:SipHash computes a 32:Daniel J. Bernstein 2107:Subliminal channel 2091:Pseudorandom noise 2038:Key (cryptography) 1826:CAESAR Competition 1810:HAIFA construction 1759:Brute-force attack 720:. Washington, D.C. 278:5 (available as a 122:) for any message 2288: 2287: 2284: 2283: 2167:Key-based routing 2157:Trapdoor function 2028:Digital signature 1909: 1908: 1905: 1904: 1703:ChaCha20-Poly1305 1520:Password hashing/ 524:978-3-319-13050-7 318:Operating systems 2318: 2274: 2273: 2102:Insecure channel 1938: 1931: 1924: 1915: 1790:Avalanche effect 1744:Collision attack 1287:Common functions 1246: 1239: 1232: 1223: 1219: 1215: 1209: 1197: 1188: 1186: 1176: 1174: 1164: 1141: 1140: 1127: 1121: 1116: 1110: 1109: 1107: 1106: 1092: 1086: 1085: 1072: 1066: 1065: 1058: 1052: 1051: 1038: 1032: 1031: 1025: 1024: 1004: 998: 997: 991: 990: 973: 967: 966: 959: 953: 952: 946: 945: 928: 922: 921: 908: 902: 901: 899: 898: 887: 881: 880: 878: 877: 862: 856: 855: 853: 852: 842: 836: 835: 833: 832: 815: 809: 808: 802: 801: 784: 778: 777: 775: 774: 765:. Archived from 758: 752: 751: 745: 743: 728: 722: 721: 707: 701: 700: 694: 693: 678: 669: 668: 666: 660:. Archived from 655: 640: 634: 633: 628: 626: 587: 581: 580: 568: 562: 561: 545: 536: 535: 533: 531: 500: 213:was released as 2326: 2325: 2321: 2320: 2319: 2317: 2316: 2315: 2291: 2290: 2289: 2280: 2262: 2191: 1947: 1942: 1901: 1860: 1819:Standardization 1814: 1805:Sponge function 1778: 1754:Birthday attack 1749:Preimage attack 1732: 1688: 1681: 1609: 1592: 1591:General purpose 1586: 1521: 1515: 1364:Other functions 1359: 1326:SHA-3 finalists 1320: 1282: 1259: 1250: 1200: 1191: 1184: 1179: 1172: 1167: 1152: 1149: 1144: 1129: 1128: 1124: 1117: 1113: 1104: 1102: 1094: 1093: 1089: 1074: 1073: 1069: 1060: 1059: 1055: 1040: 1039: 1035: 1028:freedesktop.org 1022: 1020: 1006: 1005: 1001: 988: 986: 975: 974: 970: 961: 960: 956: 943: 941: 930: 929: 925: 910: 909: 905: 896: 894: 889: 888: 884: 875: 873: 870:Perldoc Browser 864: 863: 859: 850: 848: 844: 843: 839: 830: 828: 817: 816: 812: 799: 797: 786: 785: 781: 772: 770: 760: 759: 755: 741: 739: 730: 729: 725: 709: 708: 704: 691: 689: 680: 679: 672: 664: 653: 642: 641: 637: 624: 622: 612: 589: 588: 584: 570: 569: 565: 547: 546: 539: 529: 527: 525: 502: 501: 497: 493: 460: 389:Implementations 234:implementations 227: 158:network packets 139: 131: 100: 93: 36:"hash flooding" 17: 12: 11: 5: 2324: 2322: 2314: 2313: 2308: 2303: 2293: 2292: 2286: 2285: 2282: 2281: 2279: 2278: 2267: 2264: 2263: 2261: 2260: 2255: 2253:Random numbers 2250: 2245: 2240: 2235: 2230: 2225: 2220: 2215: 2210: 2205: 2199: 2197: 2193: 2192: 2190: 2189: 2184: 2179: 2177:Garlic routing 2174: 2169: 2164: 2159: 2154: 2149: 2144: 2139: 2134: 2129: 2124: 2119: 2114: 2109: 2104: 2099: 2097:Secure channel 2094: 2088: 2087: 2086: 2075: 2070: 2065: 2060: 2058:Key stretching 2055: 2050: 2045: 2040: 2035: 2030: 2025: 2024: 2023: 2018: 2008: 2006:Cryptovirology 2003: 1998: 1993: 1991:Cryptocurrency 1988: 1983: 1978: 1977: 1976: 1966: 1961: 1955: 1953: 1949: 1948: 1943: 1941: 1940: 1933: 1926: 1918: 1911: 1910: 1907: 1906: 1903: 1902: 1900: 1899: 1894: 1889: 1884: 1879: 1874: 1868: 1866: 1862: 1861: 1859: 1858: 1853: 1848: 1843: 1838: 1833: 1828: 1822: 1820: 1816: 1815: 1813: 1812: 1807: 1802: 1797: 1795:Hash collision 1792: 1786: 1784: 1780: 1779: 1777: 1776: 1771: 1766: 1761: 1756: 1751: 1746: 1740: 1738: 1734: 1733: 1731: 1730: 1725: 1720: 1715: 1710: 1705: 1700: 1694: 1692: 1683: 1682: 1680: 1679: 1674: 1669: 1664: 1659: 1654: 1645: 1640: 1635: 1630: 1625: 1619: 1617: 1611: 1610: 1608: 1607: 1604: 1598: 1596: 1588: 1587: 1585: 1584: 1579: 1574: 1569: 1564: 1559: 1554: 1549: 1544: 1539: 1534: 1528: 1526: 1523:key stretching 1517: 1516: 1514: 1513: 1508: 1503: 1498: 1493: 1488: 1483: 1478: 1473: 1468: 1463: 1458: 1453: 1448: 1443: 1438: 1433: 1428: 1423: 1418: 1413: 1408: 1403: 1398: 1393: 1388: 1383: 1378: 1373: 1367: 1365: 1361: 1360: 1358: 1357: 1351: 1346: 1341: 1336: 1330: 1328: 1322: 1321: 1319: 1318: 1313: 1308: 1303: 1297: 1290: 1288: 1284: 1283: 1281: 1280: 1275: 1270: 1264: 1261: 1260: 1251: 1249: 1248: 1241: 1234: 1226: 1212: 1211: 1198: 1189: 1177: 1165: 1148: 1147:External links 1145: 1143: 1142: 1122: 1111: 1087: 1067: 1053: 1033: 1010:(2013-12-22). 999: 968: 954: 923: 903: 882: 857: 837: 810: 779: 753: 723: 702: 670: 667:on 2013-09-13. 635: 610: 582: 563: 552:(2012-09-18). 537: 523: 494: 492: 489: 488: 487: 482: 477: 472: 467: 459: 456: 455: 454: 449: 444: 439: 434: 429: 424: 419: 414: 409: 404: 398: 386: 385: 375: 365: 355: 354: 353: 352: 347: 342: 337: 332: 331: 330: 314: 313: 312: 311: 306: 300: 294: 289: 283: 273: 268: 267: 266: 265: 264: 248: 226: 223: 138: 135: 129: 98: 91: 76:such that SHA( 24:add–rotate–xor 16:Hash functions 15: 13: 10: 9: 6: 4: 3: 2: 2323: 2312: 2309: 2307: 2304: 2302: 2299: 2298: 2296: 2277: 2269: 2268: 2265: 2259: 2258:Steganography 2256: 2254: 2251: 2249: 2246: 2244: 2241: 2239: 2236: 2234: 2231: 2229: 2226: 2224: 2221: 2219: 2216: 2214: 2213:Stream cipher 2211: 2209: 2206: 2204: 2201: 2200: 2198: 2194: 2188: 2185: 2183: 2180: 2178: 2175: 2173: 2172:Onion routing 2170: 2168: 2165: 2163: 2160: 2158: 2155: 2153: 2152:Shared secret 2150: 2148: 2145: 2143: 2140: 2138: 2135: 2133: 2130: 2128: 2125: 2123: 2120: 2118: 2115: 2113: 2110: 2108: 2105: 2103: 2100: 2098: 2095: 2092: 2089: 2084: 2081: 2080: 2079: 2076: 2074: 2071: 2069: 2066: 2064: 2061: 2059: 2056: 2054: 2051: 2049: 2048:Key generator 2046: 2044: 2041: 2039: 2036: 2034: 2031: 2029: 2026: 2022: 2019: 2017: 2014: 2013: 2012: 2011:Hash function 2009: 2007: 2004: 2002: 1999: 1997: 1994: 1992: 1989: 1987: 1986:Cryptanalysis 1984: 1982: 1979: 1975: 1972: 1971: 1970: 1967: 1965: 1962: 1960: 1957: 1956: 1954: 1950: 1946: 1939: 1934: 1932: 1927: 1925: 1920: 1919: 1916: 1912: 1898: 1895: 1893: 1890: 1888: 1887:Proof of work 1885: 1883: 1880: 1878: 1875: 1873: 1870: 1869: 1867: 1863: 1857: 1854: 1852: 1849: 1847: 1844: 1842: 1839: 1837: 1834: 1832: 1829: 1827: 1824: 1823: 1821: 1817: 1811: 1808: 1806: 1803: 1801: 1798: 1796: 1793: 1791: 1788: 1787: 1785: 1781: 1775: 1772: 1770: 1767: 1765: 1764:Rainbow table 1762: 1760: 1757: 1755: 1752: 1750: 1747: 1745: 1742: 1741: 1739: 1735: 1729: 1726: 1724: 1721: 1719: 1716: 1714: 1711: 1709: 1706: 1704: 1701: 1699: 1696: 1695: 1693: 1690: 1687:Authenticated 1684: 1678: 1675: 1673: 1670: 1668: 1665: 1663: 1660: 1658: 1655: 1653: 1649: 1646: 1644: 1641: 1639: 1636: 1634: 1631: 1629: 1626: 1624: 1621: 1620: 1618: 1616: 1615:MAC functions 1612: 1605: 1603: 1600: 1599: 1597: 1595: 1589: 1583: 1580: 1578: 1575: 1573: 1570: 1568: 1565: 1563: 1560: 1558: 1555: 1553: 1550: 1548: 1545: 1543: 1540: 1538: 1535: 1533: 1530: 1529: 1527: 1524: 1518: 1512: 1509: 1507: 1504: 1502: 1499: 1497: 1494: 1492: 1489: 1487: 1484: 1482: 1479: 1477: 1474: 1472: 1469: 1467: 1464: 1462: 1459: 1457: 1454: 1452: 1449: 1447: 1444: 1442: 1439: 1437: 1434: 1432: 1429: 1427: 1424: 1422: 1419: 1417: 1414: 1412: 1409: 1407: 1404: 1402: 1399: 1397: 1394: 1392: 1389: 1387: 1384: 1382: 1379: 1377: 1374: 1372: 1369: 1368: 1366: 1362: 1355: 1352: 1350: 1347: 1345: 1342: 1340: 1337: 1335: 1332: 1331: 1329: 1327: 1323: 1317: 1314: 1312: 1309: 1307: 1304: 1302:(compromised) 1301: 1298: 1296:(compromised) 1295: 1292: 1291: 1289: 1285: 1279: 1278:Known attacks 1276: 1274: 1271: 1269: 1266: 1265: 1262: 1258: 1254: 1247: 1242: 1240: 1235: 1233: 1228: 1227: 1224: 1220: 1216: 1207: 1203: 1199: 1195: 1190: 1183: 1178: 1171: 1166: 1162: 1161: 1156: 1151: 1150: 1146: 1138: 1137: 1132: 1126: 1123: 1120: 1115: 1112: 1101: 1097: 1091: 1088: 1083: 1082: 1077: 1071: 1068: 1063: 1057: 1054: 1049: 1048: 1043: 1037: 1034: 1029: 1019: 1018: 1013: 1009: 1003: 1000: 995: 985: 984: 979: 972: 969: 964: 958: 955: 950: 940: 939: 934: 927: 924: 919: 918: 913: 907: 904: 893: 886: 883: 871: 867: 861: 858: 847: 841: 838: 827: 826: 821: 814: 811: 806: 796: 795: 790: 783: 780: 769:on 2017-02-02 768: 764: 757: 754: 750: 738: 734: 727: 724: 719: 715: 714: 706: 703: 699: 688:on 2017-02-02 687: 683: 677: 675: 671: 663: 659: 652: 651: 646: 639: 636: 632: 621: 617: 613: 611:9781450320566 607: 603: 599: 595: 594: 586: 583: 578: 574: 567: 564: 559: 555: 551: 544: 542: 538: 526: 520: 516: 512: 508: 507: 499: 496: 490: 486: 483: 481: 478: 476: 475:Hash function 473: 471: 468: 465: 462: 461: 457: 453: 450: 448: 445: 443: 440: 438: 435: 433: 430: 428: 425: 423: 420: 418: 415: 413: 410: 408: 405: 402: 399: 396: 393: 392: 391: 390: 383: 379: 376: 373: 370: 366: 363: 360: 359: 358: 351: 348: 346: 343: 341: 338: 336: 333: 329: 326: 325: 324: 321: 320: 319: 316: 315: 310: 307: 305:(SipHash 1-3) 304: 301: 299:(SipHash 1-3) 298: 295: 293: 290: 287: 284: 281: 277: 274: 272: 269: 262: 259: 258: 257: 254: 253: 252: 249: 247: 244: 243: 242: 239: 238: 237: 235: 233: 224: 222: 220: 216: 212: 207: 204: 200: 196: 192: 187: 185: 180: 178: 174: 168: 166: 161: 159: 155: 151: 147: 144: 136: 134: 132: 125: 121: 117: 113: 109: 105: 101: 94: 87: 83: 79: 75: 71: 67: 63: 59: 55: 51: 47: 42: 40: 37: 33: 29: 25: 21: 2208:Block cipher 2053:Key schedule 2043:Key exchange 2033:Kleptography 1996:Cryptosystem 1945:Cryptography 1666: 1205: 1158: 1134: 1125: 1114: 1103:. Retrieved 1099: 1090: 1079: 1070: 1056: 1045: 1036: 1026:– via 1021:. Retrieved 1015: 1002: 992:– via 987:. Retrieved 981: 971: 957: 947:– via 942:. Retrieved 936: 926: 915: 906: 895:. Retrieved 885: 874:. Retrieved 872:. 2016-05-16 869: 860: 849:. Retrieved 840: 829:. Retrieved 823: 813: 803:– via 798:. Retrieved 792: 782: 771:. Retrieved 767:the original 756: 747: 740:. Retrieved 736: 726: 712: 705: 696: 690:. Retrieved 686:the original 662:the original 649: 638: 630: 623:. Retrieved 592: 585: 577:SecurityWeek 576: 566: 557: 528:. Retrieved 505: 498: 464:Bloom filter 388: 387: 382:Bloom filter 356: 280:compile time 230: 228: 208: 202: 198: 194: 190: 188: 181: 177:packet flood 172: 169: 164: 162: 140: 127: 123: 119: 115: 111: 107: 103: 96: 95:and SipHash( 89: 85: 81: 77: 73: 69: 61: 43: 19: 18: 2196:Mathematics 2187:Mix network 1877:Merkle tree 1865:Utilization 1851:NSA Suite B 742:28 February 625:28 February 530:28 February 154:hash tables 114:or SipHash( 2295:Categories 2147:Ciphertext 2117:Decryption 2112:Encryption 2073:Ransomware 1689:encryption 1466:RadioGatún 1273:Comparison 1105:2018-09-27 1023:2017-01-21 989:2017-01-21 944:2018-07-16 897:2017-01-21 876:2021-10-21 851:2024-02-17 831:2021-10-21 800:2021-10-21 773:2017-01-21 692:2017-01-21 491:References 427:JavaScript 251:JavaScript 232:hash table 217:under the 2137:Plaintext 1606:KDF1/KDF2 1525:functions 1511:Whirlpool 1202:"Hashing" 350:Wireguard 2276:Category 2182:Kademlia 2142:Codetext 2085:(CSPRNG) 1831:CRYPTREC 1662:Poly1305 1582:yescrypt 1496:Streebog 1376:CubeHash 1356:(winner) 698:license. 458:See also 432:PicoLisp 412:Crypto++ 197:, where 150:CityHash 137:Overview 80:) = SHA( 1952:General 1737:Attacks 1667:SipHash 1623:CBC-MAC 1557:LM hash 1537:Balloon 1401:HAS-160 1017:systemd 794:Node.js 620:1457918 447:Verilog 422:Haskell 362:Bitcoin 345:OpenDNS 340:FreeBSD 335:OpenBSD 328:systemd 282:option) 256:Node.js 246:Haskell 20:SipHash 2063:Keygen 1897:Pepper 1836:NESSIE 1783:Design 1577:scrypt 1572:PBKDF2 1547:Catena 1542:bcrypt 1532:Argon2 1491:Snefru 1486:Shabal 1481:SWIFFT 1461:RIPEMD 1456:N-hash 1431:MASH-2 1426:MASH-1 1411:Kupyna 1371:BLAKE3 1354:Keccak 1339:Grøstl 1316:BLAKE2 1160:GitHub 1136:GitHub 1100:GitHub 1081:GitHub 1047:GitHub 994:GitHub 949:GitHub 938:MoarVM 917:GitHub 805:GitHub 737:GitHub 618:  608:  521:  384:hashes 374:hasher 372:object 286:Python 143:64-bit 22:is an 2093:(PRN) 1691:modes 1567:Makwa 1562:Lyra2 1552:crypt 1501:Tiger 1451:MDC-2 1406:HAVAL 1391:Fugue 1349:Skein 1334:BLAKE 1311:SHA-3 1306:SHA-2 1300:SHA-1 1185:(PDF) 1173:(PDF) 665:(PDF) 654:(PDF) 616:S2CID 442:Swift 323:Linux 309:Swift 271:OCaml 225:Usage 165:small 62:keyed 52:like 1892:Salt 1856:CNSA 1723:IAPM 1677:VMAC 1672:UMAC 1657:PMAC 1652:CMAC 1648:OMAC 1643:NMAC 1638:HMAC 1633:GMAC 1602:HKDF 1471:SIMD 1421:Lane 1396:GOST 1381:ECOH 1268:List 1255:and 983:Rust 744:2024 627:2018 606:ISBN 532:2018 519:ISBN 452:VHDL 437:Rust 303:Rust 297:Ruby 292:Raku 276:Perl 209:The 184:HMAC 173:same 72:and 66:HMAC 60:: a 1728:OCB 1718:GCM 1713:EAX 1708:CWC 1698:CCM 1628:DAA 1506:VSH 1476:SM3 1446:MD6 1441:MD4 1436:MD2 1416:LSH 1386:FSB 1294:MD5 598:doi 511:doi 401:C++ 369:C++ 219:CC0 126:∉ { 2297:: 1344:JH 1204:. 1157:. 1133:. 1098:. 1078:. 1044:. 1014:. 980:. 935:. 914:. 868:. 825:V8 822:. 791:. 746:. 735:. 716:. 695:. 673:^ 656:. 629:. 614:. 604:. 575:. 556:. 540:^ 517:. 417:Go 407:C# 221:. 118:, 102:, 1937:e 1930:t 1923:v 1650:/ 1245:e 1238:t 1231:v 1208:. 1196:. 1187:. 1175:. 1163:. 1139:. 1108:. 1084:. 1064:. 1050:. 1030:. 996:. 965:. 951:. 920:. 900:. 879:. 854:. 834:. 807:. 776:. 600:: 579:. 560:. 534:. 513:: 395:C 203:d 199:c 195:d 193:- 191:c 130:i 128:X 124:Y 120:k 116:Y 112:k 108:k 104:k 99:i 97:X 92:i 90:X 86:X 82:Y 78:X 74:Y 70:X

Index

add–rotate–xor
pseudorandom functions
Daniel J. Bernstein
"hash flooding"
denial-of-service attacks
non-cryptographic hash function
cryptographic hash functions
Secure Hash Algorithms
message authentication code
HMAC
64-bit
message authentication code
CityHash
hash tables
network packets
packet flood
HMAC
reference implementation
public domain software
CC0
hash table
Programming languages
Haskell
JavaScript
Node.js
V8 (JavaScript engine)
OCaml
Perl
compile time
Python

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