[{"data":1,"prerenderedAt":11975},["ShallowReactive",2],{"evidence-index":3,"evidence-doc-sha-256-encryption":314},[4,19,31,44,58,71,84,95,108,120,132,143,154,168,178,189,202,213,223,233,243,255,266,277,289,303],{"path":5,"title":6,"description":7,"keywords":8,"field":17,"order":18},"\u002Fevidence\u002Fmaxwells-equations","Maxwell's Equations","Four equations that joined electricity, magnetism and light, and set physics on the road to relativity.",[9,10,11,12,13,14,15,16],"electromagnetism","electric fields","magnetic fields","electromagnetic waves","light","Gauss law","Faraday law","Ampere law","Physical",1,{"path":20,"title":21,"description":22,"keywords":23,"field":30,"order":18},"\u002Fevidence\u002Fnumerology-origin","Numerology Origin","How ancient number symbolism, built to describe cosmic order and interpret sacred texts, became modern personality numerology.",[24,25,26,27,28,29],"number symbolism","Pythagoras","gematria","sacred numbers","divination","history of mathematics","Historical",{"path":32,"title":33,"description":34,"keywords":35,"field":43,"order":18},"\u002Fevidence\u002Forigin-of-life","Origin of Life","What chemistry, geology and genomics currently tell us about how non-living matter became the first living cells.",[36,37,38,39,40,41,42],"abiogenesis","RNA world","Miller-Urey experiment","prebiotic chemistry","hydrothermal vents","protocells","LUCA","Biological",{"path":45,"title":46,"description":47,"keywords":48,"field":57,"order":18},"\u002Fevidence\u002Fsuffering","Suffering","How Siddhartha Gautama tested both luxury and severe self-denial, and what his diagnosis of suffering became.",[49,50,51,52,53,54,55,56],"Buddhism","Buddha","Siddhartha Gautama","dukkha","Four Noble Truths","Middle Way","Eightfold Path","craving","Cultural",{"path":59,"title":60,"description":61,"keywords":62,"field":70,"order":18},"\u002Fevidence\u002Fthe-evolution-of-trust","The Evolution of Trust","How the prisoner's dilemma, Axelrod's tournaments, and later models explain when cooperation beats selfishness, and when it does not.",[63,64,65,66,67,68,69],"game theory","prisoners dilemma","cooperation","Robert Axelrod","tit for tat","reciprocity","evolutionary dynamics","Social",{"path":72,"title":73,"description":74,"keywords":75,"field":43,"order":83},"\u002Fevidence\u002Fplacebo","Placebo","How an inert treatment can change pain, symptoms and brain chemistry, why it works, and where its power ends.",[76,77,78,79,80,81,82],"placebo effect","nocebo","expectation","conditioning","pain relief","clinical trials","endogenous opioids",2,{"path":85,"title":86,"description":87,"keywords":88,"field":70,"order":83},"\u002Fevidence\u002Fpuer-aeternus","Puer Aeternus","The Jungian \"eternal youth\" archetype, what it describes, what empirical psychology can and cannot say about it, and where such people thrive or struggle.",[89,90,91,92,93,94],"Carl Jung","Jungian psychology","eternal youth","archetype","Peter Pan","adulthood",{"path":96,"title":97,"description":98,"keywords":99,"field":57,"order":83},"\u002Fevidence\u002Ftaoism","Taoism","What the Dao, wu wei and naturalness mean, and why Daoist texts separate caring for something from clinging to it.",[100,101,102,103,104,105,106,107],"Daoism","Laozi","Zhuangzi","Daodejing","Tao Te Ching","wu wei","yin and yang","attachment",{"path":109,"title":110,"description":111,"keywords":112,"field":17,"order":83},"\u002Fevidence\u002Ftime-dilation","Time Dilation","Why moving clocks and clocks deeper in gravity tick slower, and how the twin paradox resolves.",[113,114,115,116,117,118,119],"special relativity","general relativity","twin paradox","Lorentz factor","proper time","atomic clocks","GPS",{"path":121,"title":122,"description":123,"keywords":124,"field":17,"order":131},"\u002Fevidence\u002Fhiggs-field","Higgs Field","How an invisible field filling all of space gives mass to fundamental particles, and how it was found in 2012.",[125,126,127,128,129,130],"Higgs boson","particle physics","Standard Model","CERN","Large Hadron Collider","symmetry breaking",3,{"path":133,"title":134,"description":135,"keywords":136,"field":43,"order":131},"\u002Fevidence\u002Fmeditation","Meditation","What meditation trains, how it seems to work in the brain, and how strong the evidence really is.",[137,138,139,140,141,142],"mindfulness","attention","neuroscience","brain","stress","contemplative practice",{"path":144,"title":145,"description":146,"keywords":147,"field":57,"order":131},"\u002Fevidence\u002Fthe-god-of-the-gaps","The God of the Gaps","Why explaining unknowns by appeal to God keeps losing ground, and why many theologians reject the move themselves.",[148,149,150,151,152,153],"theology","religion and science","argument from ignorance","naturalism","cosmological argument","fine-tuning",{"path":155,"title":156,"description":157,"keywords":158,"field":43,"order":167},"\u002Fevidence\u002Fif-the-world-was-vegan","If the World Was Vegan","A scenario analysis of whether global agriculture could feed everyone without animals, and what it would mean for land, soil and ecosystems.",[159,160,161,162,163,164,165,166],"veganism","plant-based diet","agriculture","livestock","food security","soil fertility","biodiversity","nutrition",4,{"path":169,"title":170,"description":171,"keywords":172,"field":17,"order":167},"\u002Fevidence\u002Fkaluza-klein-reduction","Kaluza–Klein Reduction","How one extra, curled-up dimension turns Einstein's gravity into gravity plus electromagnetism, and why we have not seen it.",[173,174,175,9,176,177],"extra dimensions","compactification","gravity","unification","charge quantization",{"path":179,"title":180,"description":181,"keywords":182,"field":17,"order":188},"\u002Fevidence\u002F13-dimensional-models","13-Dimensional Models","Where the number 13 comes from in theoretical physics, why a universe with two time dimensions is mathematically possible, and why none of it is confirmed.",[183,184,185,186,173,187,174],"string theory","M-theory","F-theory","S-theory","two-time physics",5,{"path":190,"title":191,"description":192,"keywords":193,"field":57,"order":188},"\u002Fevidence\u002F1984","1984","What Orwell's Nineteen Eighty-Four is about, why he wrote it, and why rival governments have banned or challenged it as propaganda for the other side.",[194,195,196,197,198,199,200,201],"George Orwell","Nineteen Eighty-Four","dystopia","totalitarianism","surveillance","Big Brother","Newspeak","censorship",{"path":203,"title":204,"description":205,"keywords":206,"field":17,"order":212},"\u002Fevidence\u002Ftachyons","Tachyons","Hypothetical particles that always move faster than light, why they would carry messages into the past, and why modern physics reads them as a sign of instability instead.",[207,208,209,210,211,113],"faster than light","superluminal","causality","imaginary mass","instability",6,{"path":214,"title":215,"description":216,"keywords":217,"field":17,"order":222},"\u002Fevidence\u002Fclosed-timelike-curves","Closed Timelike Curves","How Einstein's equations permit paths through spacetime that return to their own past, and why no one has ever found one.",[218,114,209,219,220,221],"time travel","wormholes","Godel","chronology protection",7,{"path":224,"title":225,"description":226,"keywords":227,"field":17,"order":232},"\u002Fevidence\u002Fnovikov-self-consistency-principle","Novikov Self-Consistency Principle","Why a journey into the past might never change it, and why that need not require any force preventing change.",[218,228,229,230,209,231],"grandfather paradox","causal loops","closed timelike curves","consistency",8,{"path":234,"title":235,"description":236,"keywords":237,"field":17,"order":242},"\u002Fevidence\u002Fbootstrap-paradox","Bootstrap Paradox","Causal loops in which an object or idea exists only because it was carried into its own past, and whether physics can tolerate them.",[218,238,239,209,240,241],"causal loop","information paradox","entropy","self-consistency",9,{"path":244,"title":245,"description":246,"keywords":247,"field":17,"order":254},"\u002Fevidence\u002Fblock-universe","Block Universe","The view, motivated by relativity, that past, present and future all exist and time does not flow.",[248,249,250,251,252,253],"eternalism","spacetime","relativity","simultaneity","presentism","arrow of time",10,{"path":256,"title":257,"description":258,"keywords":259,"field":17,"order":265},"\u002Fevidence\u002Fdeterminism","Determinism","Whether the present fixes the entire future, what physics says about it, and why free will may survive either way.",[260,209,261,262,263,264],"free will","Laplace demon","compatibilism","chaos","quantum mechanics",11,{"path":267,"title":268,"description":269,"keywords":270,"field":17,"order":276},"\u002Fevidence\u002Fbig-bounce","Big Bounce","The idea that our universe began not from nothing but from the collapse of a previous one, and what physics can and cannot say about it.",[271,272,273,274,240,275],"cosmology","Big Bang","cyclic universe","loop quantum cosmology","eternal return",12,{"path":278,"title":279,"description":280,"keywords":281,"field":17,"order":288},"\u002Fevidence\u002Fgolden-ratio","Golden Ratio","Why one number, the golden ratio, keeps turning up in sunflowers, and why many famous claims about it are myths.",[282,283,284,285,286,287],"phi","Fibonacci","phyllotaxis","spirals","irrational numbers","geometry",13,{"path":290,"title":291,"description":292,"keywords":293,"field":17,"order":302},"\u002Fevidence\u002Fsha-256-encryption","SHA-256 Hashing","How the SHA-256 hash function works, why it cannot be run backwards, and what reversing it would actually require.",[294,295,296,297,298,299,300,301],"cryptography","hash function","SHA256","encryption","preimage resistance","collisions","Bitcoin","brute force",14,{"path":304,"title":305,"description":306,"keywords":307,"field":17,"order":313},"\u002Fevidence\u002Fgrovers-algorithm","Grover's Algorithm","How a quantum computer can search N possibilities in about √N steps, and why that is both remarkable and far less than popular accounts claim.",[308,309,310,311,312,294],"quantum computing","quantum search","qubits","amplitude amplification","oracle",15,{"id":315,"title":291,"body":316,"description":292,"extension":11968,"field":17,"keywords":11969,"meta":11970,"navigation":11971,"order":302,"path":290,"seo":11972,"stem":11973,"__hash__":11974},"evidence\u002Fevidence\u002Fsha-256-encryption.md",{"type":317,"value":318,"toc":11939},"minimark",[319,323,327,335,345,352,358,361,366,369,376,516,519,540,543,547,588,649,923,1267,1430,1704,1868,2136,2145,2149,2156,2161,2174,2178,2457,2850,2886,2923,3071,3075,3234,3237,3705,3711,5502,5505,5698,5850,6416,6419,6509,7167,7170,7680,7683,7834,7838,7845,7849,7861,7865,7868,7872,7940,7943,7947,7954,7971,7978,7982,7985,8150,8153,8224,8228,8231,8235,8305,8831,8896,8900,8903,8910,9098,9544,9609,9873,10037,10040,10314,10318,10383,10389,10393,10400,10720,11005,11228,11236,11246,11250,11253,11265,11271,11275,11282,11299,11303,11306,11310,11342,11346,11349,11538,11541,11553,11557,11572,11586,11601,11615,11629,11643,11657,11672,11687,11701,11718,11735,11752,11770,11784,11798,11813,11831,11845,11859,11869,11882,11897,11911,11925],[320,321,291],"h1",{"id":322},"sha-256-hashing",[324,325,326],"p",{},"Suppose you want to prove that you wrote a document on a certain day, without revealing the document. Or you want a server to check your password without the server ever storing the password itself. Or you want thousands of strangers to agree on a shared ledger without trusting each other. All three problems need the same strange tool: a way to turn any piece of data into a short fingerprint that is easy to compute, but practically impossible to trace back to the data.",[324,328,329,330,334],{},"SHA-256 is one of the most widely used tools of this kind. Type the three letters ",[331,332,333],"code",{},"abc"," into it and you get",[336,337,342],"pre",{"className":338,"code":340,"language":341},[339],"language-text","ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad\n","text",[331,343,340],{"__ignoreMap":344},"",[324,346,347,348,351],{},"Change one letter to ",[331,349,350],{},"abd"," and the output becomes",[336,353,356],{"className":354,"code":355,"language":341},[339],"a52d159f262b2c6ddb724a61840befc36eb30c88877a4030b65cbe86298449c9\n",[331,357,355],{"__ignoreMap":344},[324,359,360],{},"The two outputs differ in 122 of their 256 bits, about half, which is what you would expect from two unrelated random strings. Nothing in the second output hints that the input changed by only one letter.",[362,363,365],"h2",{"id":364},"first-a-correction-it-is-not-encryption","First, a Correction: It Is Not Encryption",[324,367,368],{},"The phrase \"SHA-256 encryption\" is common, but it is technically wrong, and the difference matters.",[324,370,371,375],{},[372,373,374],"strong",{},"Encryption"," is a two-way process. You lock a message with a key, and anyone holding the right key can unlock it and recover the original message exactly. Nothing is lost.",[324,377,378,381,382,504,505,511,512,515],{},[372,379,380],{},"SHA-256 is a cryptographic hash function."," It is a one-way process with no key and no unlocking step. It takes an input of almost any length (up to ",[383,384,387,423],"span",{"className":385},[386],"katex",[383,388,391],{"className":389},[390],"katex-mathml",[392,393,395],"math",{"xmlns":394},"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML",[396,397,398,418],"semantics",{},[399,400,401,411,415],"mrow",{},[402,403,404,408],"msup",{},[405,406,407],"mn",{},"2",[405,409,410],{},"64",[412,413,414],"mo",{},"−",[405,416,417],{},"1",[419,420,422],"annotation",{"encoding":421},"application\u002Fx-tex","2^{64}-1",[383,424,428,494],{"className":425,"ariaHidden":427},[426],"katex-html","true",[383,429,432,437,482,487,491],{"className":430},[431],"base",[383,433],{"className":434,"style":436},[435],"strut","height:0.8974em;vertical-align:-0.0833em;",[383,438,441,444],{"className":439},[440],"mord",[383,442,407],{"className":443},[440],[383,445,448],{"className":446},[447],"msupsub",[383,449,452],{"className":450},[451],"vlist-t",[383,453,456],{"className":454},[455],"vlist-r",[383,457,461],{"className":458,"style":460},[459],"vlist","height:0.8141em;",[383,462,464,469],{"style":463},"top:-3.063em;margin-right:0.05em;",[383,465],{"className":466,"style":468},[467],"pstrut","height:2.7em;",[383,470,476],{"className":471},[472,473,474,475],"sizing","reset-size6","size3","mtight",[383,477,479],{"className":478},[440,475],[383,480,410],{"className":481},[440,475],[383,483],{"className":484,"style":486},[485],"mspace","margin-right:0.2222em;",[383,488,414],{"className":489},[490],"mbin",[383,492],{"className":493,"style":486},[485],[383,495,497,501],{"className":496},[431],[383,498],{"className":499,"style":500},[435],"height:0.6444em;",[383,502,417],{"className":503},[440]," bits) and always produces exactly 256 bits. ",[506,507,510],"sup",{"className":508},[509],"c-cite","[1]"," A full-length film and the single letter ",[331,513,514],{},"a"," both produce 256-bit outputs. There is nothing to decrypt, because the output does not contain the input. It contains a fingerprint of it.",[324,517,518],{},"So when people ask how to \"decrypt\" SHA-256, the honest answer has two parts:",[520,521,522,529],"ol",{},[523,524,525,528],"li",{},[372,526,527],{},"In principle, the input is gone."," Countless different inputs share every possible output. A 256-bit output cannot store a one-gigabyte file.",[523,530,531,539],{},[372,532,533,534,538],{},"In practice, the question becomes: can you find ",[535,536,537],"em",{},"any"," input that produces a given output?"," That is the real problem, and it is the one SHA-256 is designed to make impossible in practice.",[324,541,542],{},"The rest of this article explains how SHA-256 works, why nobody knows how to run it backwards, and what doing so would take.",[362,544,546],{"id":545},"the-three-promises-of-a-hash-function","The Three Promises of a Hash Function",[324,548,549,550,583,584],{},"A cryptographic hash function ",[383,551,553,568],{"className":552},[386],[383,554,556],{"className":555},[390],[392,557,558],{"xmlns":394},[396,559,560,566],{},[399,561,562],{},[563,564,565],"mi",{},"H",[419,567,565],{"encoding":421},[383,569,571],{"className":570,"ariaHidden":427},[426],[383,572,574,578],{"className":573},[431],[383,575],{"className":576,"style":577},[435],"height:0.6833em;",[383,579,565],{"className":580,"style":582},[440,581],"mathnormal","margin-right:0.0813em;"," is expected to keep three promises. They were formalized carefully in the cryptographic literature, most clearly by Phillip Rogaway and Thomas Shrimpton. ",[506,585,587],{"className":586},[509],"[2]",[324,589,590,591,648],{},"Let ",[383,592,594,615],{"className":593},[386],[383,595,597],{"className":596},[390],[392,598,599],{"xmlns":394},[396,600,601,612],{},[399,602,603,606,609],{},[563,604,605],{},"n",[412,607,608],{},"=",[405,610,611],{},"256",[419,613,614],{"encoding":421},"n = 256",[383,616,618,639],{"className":617,"ariaHidden":427},[426],[383,619,621,625,628,632,636],{"className":620},[431],[383,622],{"className":623,"style":624},[435],"height:0.4306em;",[383,626,605],{"className":627},[440,581],[383,629],{"className":630,"style":631},[485],"margin-right:0.2778em;",[383,633,608],{"className":634},[635],"mrel",[383,637],{"className":638,"style":631},[485],[383,640,642,645],{"className":641},[431],[383,643],{"className":644,"style":500},[435],[383,646,611],{"className":647},[440]," be the output length in bits.",[324,650,651,654,655,686,687,716,717,789,790,859,860,922],{},[372,652,653],{},"Preimage resistance (one-wayness)."," Given an output ",[383,656,658,672],{"className":657},[386],[383,659,661],{"className":660},[390],[392,662,663],{"xmlns":394},[396,664,665,670],{},[399,666,667],{},[563,668,669],{},"y",[419,671,669],{"encoding":421},[383,673,675],{"className":674,"ariaHidden":427},[426],[383,676,678,682],{"className":677},[431],[383,679],{"className":680,"style":681},[435],"height:0.625em;vertical-align:-0.1944em;",[383,683,669],{"className":684,"style":685},[440,581],"margin-right:0.0359em;",", it should be infeasible to find any input ",[383,688,690,704],{"className":689},[386],[383,691,693],{"className":692},[390],[392,694,695],{"xmlns":394},[396,696,697,702],{},[399,698,699],{},[563,700,701],{},"x",[419,703,701],{"encoding":421},[383,705,707],{"className":706,"ariaHidden":427},[426],[383,708,710,713],{"className":709},[431],[383,711],{"className":712,"style":624},[435],[383,714,701],{"className":715},[440,581]," with ",[383,718,720,747],{"className":719},[386],[383,721,723],{"className":722},[390],[392,724,725],{"xmlns":394},[396,726,727,744],{},[399,728,729,731,735,737,740,742],{},[563,730,565],{},[412,732,734],{"stretchy":733},"false","(",[563,736,701],{},[412,738,739],{"stretchy":733},")",[412,741,608],{},[563,743,669],{},[419,745,746],{"encoding":421},"H(x) = y",[383,748,750,780],{"className":749,"ariaHidden":427},[426],[383,751,753,757,760,764,767,771,774,777],{"className":752},[431],[383,754],{"className":755,"style":756},[435],"height:1em;vertical-align:-0.25em;",[383,758,565],{"className":759,"style":582},[440,581],[383,761,734],{"className":762},[763],"mopen",[383,765,701],{"className":766},[440,581],[383,768,739],{"className":769},[770],"mclose",[383,772],{"className":773,"style":631},[485],[383,775,608],{"className":776},[635],[383,778],{"className":779,"style":631},[485],[383,781,783,786],{"className":782},[431],[383,784],{"className":785,"style":681},[435],[383,787,669],{"className":788,"style":685},[440,581],". The best generic method, guessing inputs at random, succeeds with probability ",[383,791,793,815],{"className":792},[386],[383,794,796],{"className":795},[390],[392,797,798],{"xmlns":394},[396,799,800,812],{},[399,801,802],{},[402,803,804,806],{},[405,805,407],{},[399,807,808,810],{},[412,809,414],{},[405,811,611],{},[419,813,814],{"encoding":421},"2^{-256}",[383,816,818],{"className":817,"ariaHidden":427},[426],[383,819,821,824],{"className":820},[431],[383,822],{"className":823,"style":460},[435],[383,825,827,830],{"className":826},[440],[383,828,407],{"className":829},[440],[383,831,833],{"className":832},[447],[383,834,836],{"className":835},[451],[383,837,839],{"className":838},[455],[383,840,842],{"className":841,"style":460},[459],[383,843,844,847],{"style":463},[383,845],{"className":846,"style":468},[467],[383,848,850],{"className":849},[472,473,474,475],[383,851,853,856],{"className":852},[440,475],[383,854,414],{"className":855},[440,475],[383,857,611],{"className":858},[440,475]," per guess, so it needs about ",[383,861,863,881],{"className":862},[386],[383,864,866],{"className":865},[390],[392,867,868],{"xmlns":394},[396,869,870,878],{},[399,871,872],{},[402,873,874,876],{},[405,875,407],{},[405,877,611],{},[419,879,880],{"encoding":421},"2^{256}",[383,882,884],{"className":883,"ariaHidden":427},[426],[383,885,887,890],{"className":886},[431],[383,888],{"className":889,"style":460},[435],[383,891,893,896],{"className":892},[440],[383,894,407],{"className":895},[440],[383,897,899],{"className":898},[447],[383,900,902],{"className":901},[451],[383,903,905],{"className":904},[455],[383,906,908],{"className":907,"style":460},[459],[383,909,910,913],{"style":463},[383,911],{"className":912,"style":468},[467],[383,914,916],{"className":915},[472,473,474,475],[383,917,919],{"className":918},[440,475],[383,920,611],{"className":921},[440,475]," guesses.",[324,924,925,928,929,957,958,716,1089,1204,1205,1266],{},[372,926,927],{},"Second-preimage resistance."," Given a specific input ",[383,930,932,945],{"className":931},[386],[383,933,935],{"className":934},[390],[392,936,937],{"xmlns":394},[396,938,939,943],{},[399,940,941],{},[563,942,701],{},[419,944,701],{"encoding":421},[383,946,948],{"className":947,"ariaHidden":427},[426],[383,949,951,954],{"className":950},[431],[383,952],{"className":953,"style":624},[435],[383,955,701],{"className":956},[440,581],", it should be infeasible to find a different input ",[383,959,961,987],{"className":960},[386],[383,962,964],{"className":963},[390],[392,965,966],{"xmlns":394},[396,967,968,984],{},[399,969,970,979,982],{},[402,971,972,974],{},[563,973,701],{},[412,975,978],{"mathvariant":976,"lspace":977,"rspace":977},"normal","0em","′",[412,980,981],{"mathvariant":976},"≠",[563,983,701],{},[419,985,986],{"encoding":421},"x' \\neq x",[383,988,990,1080],{"className":989,"ariaHidden":427},[426],[383,991,993,997,1030,1033,1077],{"className":992},[431],[383,994],{"className":995,"style":996},[435],"height:0.9463em;vertical-align:-0.1944em;",[383,998,1000,1003],{"className":999},[440],[383,1001,701],{"className":1002},[440,581],[383,1004,1006],{"className":1005},[447],[383,1007,1009],{"className":1008},[451],[383,1010,1012],{"className":1011},[455],[383,1013,1016],{"className":1014,"style":1015},[459],"height:0.7519em;",[383,1017,1018,1021],{"style":463},[383,1019],{"className":1020,"style":468},[467],[383,1022,1024],{"className":1023},[472,473,474,475],[383,1025,1027],{"className":1026},[440,475],[383,1028,978],{"className":1029},[440,475],[383,1031],{"className":1032,"style":631},[485],[383,1034,1036,1070,1074],{"className":1035},[635],[383,1037,1039],{"className":1038},[635],[383,1040,1043],{"className":1041},[440,1042],"vbox",[383,1044,1047],{"className":1045},[1046],"thinbox",[383,1048,1051,1055,1066],{"className":1049},[1050],"rlap",[383,1052],{"className":1053,"style":1054},[435],"height:0.8889em;vertical-align:-0.1944em;",[383,1056,1059],{"className":1057},[1058],"inner",[383,1060,1062],{"className":1061},[440],[383,1063,1065],{"className":1064},[635],"",[383,1067],{"className":1068},[1069],"fix",[383,1071],{"className":1072},[485,1073],"nobreak",[383,1075,608],{"className":1076},[635],[383,1078],{"className":1079,"style":631},[485],[383,1081,1083,1086],{"className":1082},[431],[383,1084],{"className":1085,"style":624},[435],[383,1087,701],{"className":1088},[440,581],[383,1090,1092,1126],{"className":1091},[386],[383,1093,1095],{"className":1094},[390],[392,1096,1097],{"xmlns":394},[396,1098,1099,1123],{},[399,1100,1101,1103,1105,1111,1113,1115,1117,1119,1121],{},[563,1102,565],{},[412,1104,734],{"stretchy":733},[402,1106,1107,1109],{},[563,1108,701],{},[412,1110,978],{"mathvariant":976,"lspace":977,"rspace":977},[412,1112,739],{"stretchy":733},[412,1114,608],{},[563,1116,565],{},[412,1118,734],{"stretchy":733},[563,1120,701],{},[412,1122,739],{"stretchy":733},[419,1124,1125],{"encoding":421},"H(x') = H(x)",[383,1127,1129,1186],{"className":1128,"ariaHidden":427},[426],[383,1130,1132,1136,1139,1142,1174,1177,1180,1183],{"className":1131},[431],[383,1133],{"className":1134,"style":1135},[435],"height:1.0019em;vertical-align:-0.25em;",[383,1137,565],{"className":1138,"style":582},[440,581],[383,1140,734],{"className":1141},[763],[383,1143,1145,1148],{"className":1144},[440],[383,1146,701],{"className":1147},[440,581],[383,1149,1151],{"className":1150},[447],[383,1152,1154],{"className":1153},[451],[383,1155,1157],{"className":1156},[455],[383,1158,1160],{"className":1159,"style":1015},[459],[383,1161,1162,1165],{"style":463},[383,1163],{"className":1164,"style":468},[467],[383,1166,1168],{"className":1167},[472,473,474,475],[383,1169,1171],{"className":1170},[440,475],[383,1172,978],{"className":1173},[440,475],[383,1175,739],{"className":1176},[770],[383,1178],{"className":1179,"style":631},[485],[383,1181,608],{"className":1182},[635],[383,1184],{"className":1185,"style":631},[485],[383,1187,1189,1192,1195,1198,1201],{"className":1188},[431],[383,1190],{"className":1191,"style":756},[435],[383,1193,565],{"className":1194,"style":582},[440,581],[383,1196,734],{"className":1197},[763],[383,1199,701],{"className":1200},[440,581],[383,1202,739],{"className":1203},[770],". This also costs about ",[383,1206,1208,1225],{"className":1207},[386],[383,1209,1211],{"className":1210},[390],[392,1212,1213],{"xmlns":394},[396,1214,1215,1223],{},[399,1216,1217],{},[402,1218,1219,1221],{},[405,1220,407],{},[405,1222,611],{},[419,1224,880],{"encoding":421},[383,1226,1228],{"className":1227,"ariaHidden":427},[426],[383,1229,1231,1234],{"className":1230},[431],[383,1232],{"className":1233,"style":460},[435],[383,1235,1237,1240],{"className":1236},[440],[383,1238,407],{"className":1239},[440],[383,1241,1243],{"className":1242},[447],[383,1244,1246],{"className":1245},[451],[383,1247,1249],{"className":1248},[455],[383,1250,1252],{"className":1251,"style":460},[459],[383,1253,1254,1257],{"style":463},[383,1255],{"className":1256,"style":468},[467],[383,1258,1260],{"className":1259},[472,473,474,475],[383,1261,1263],{"className":1262},[440,475],[383,1264,611],{"className":1265},[440,475]," guesses generically.",[324,1268,1269,1272,1273,1275,1276,1393,1394,1397,1398,1429],{},[372,1270,1271],{},"Collision resistance."," It should be infeasible to find ",[535,1274,537],{}," two different inputs ",[383,1277,1279,1301],{"className":1278},[386],[383,1280,1282],{"className":1281},[390],[392,1283,1284],{"xmlns":394},[396,1285,1286,1298],{},[399,1287,1288,1290,1292],{},[563,1289,701],{},[412,1291,981],{"mathvariant":976},[402,1293,1294,1296],{},[563,1295,701],{},[412,1297,978],{"mathvariant":976,"lspace":977,"rspace":977},[419,1299,1300],{"encoding":421},"x \\neq x'",[383,1302,1304,1355],{"className":1303,"ariaHidden":427},[426],[383,1305,1307,1310,1313,1316,1352],{"className":1306},[431],[383,1308],{"className":1309,"style":1054},[435],[383,1311,701],{"className":1312},[440,581],[383,1314],{"className":1315,"style":631},[485],[383,1317,1319,1346,1349],{"className":1318},[635],[383,1320,1322],{"className":1321},[635],[383,1323,1325],{"className":1324},[440,1042],[383,1326,1328],{"className":1327},[1046],[383,1329,1331,1334,1343],{"className":1330},[1050],[383,1332],{"className":1333,"style":1054},[435],[383,1335,1337],{"className":1336},[1058],[383,1338,1340],{"className":1339},[440],[383,1341,1065],{"className":1342},[635],[383,1344],{"className":1345},[1069],[383,1347],{"className":1348},[485,1073],[383,1350,608],{"className":1351},[635],[383,1353],{"className":1354,"style":631},[485],[383,1356,1358,1361],{"className":1357},[431],[383,1359],{"className":1360,"style":1015},[435],[383,1362,1364,1367],{"className":1363},[440],[383,1365,701],{"className":1366},[440,581],[383,1368,1370],{"className":1369},[447],[383,1371,1373],{"className":1372},[451],[383,1374,1376],{"className":1375},[455],[383,1377,1379],{"className":1378,"style":1015},[459],[383,1380,1381,1384],{"style":463},[383,1382],{"className":1383,"style":468},[467],[383,1385,1387],{"className":1386},[472,473,474,475],[383,1388,1390],{"className":1389},[440,475],[383,1391,978],{"className":1392},[440,475]," with the same output. This is easier for an attacker, because of the ",[372,1395,1396],{},"birthday paradox",": in a room of just 23 people, two probably share a birthday, even though there are 365 possible days. The number of pairs grows with the square of the number of people. For hash outputs, after trying ",[383,1399,1401,1415],{"className":1400},[386],[383,1402,1404],{"className":1403},[390],[392,1405,1406],{"xmlns":394},[396,1407,1408,1413],{},[399,1409,1410],{},[563,1411,1412],{},"k",[419,1414,1412],{"encoding":421},[383,1416,1418],{"className":1417,"ariaHidden":427},[426],[383,1419,1421,1425],{"className":1420},[431],[383,1422],{"className":1423,"style":1424},[435],"height:0.6944em;",[383,1426,1412],{"className":1427,"style":1428},[440,581],"margin-right:0.0315em;"," random inputs, the chance that some pair collides is roughly",[383,1431,1434],{"className":1432},[1433],"katex-display",[383,1435,1437,1488],{"className":1436},[386],[383,1438,1440],{"className":1439},[390],[392,1441,1443],{"xmlns":394,"display":1442},"block",[396,1444,1445,1485],{},[399,1446,1447,1457,1460,1482],{},[1448,1449,1450,1453],"msub",{},[563,1451,1452],{},"P",[1454,1455,1456],"mtext",{},"collision",[412,1458,1459],{},"≈",[1461,1462,1463,1469],"mfrac",{},[402,1464,1465,1467],{},[563,1466,1412],{},[405,1468,407],{},[402,1470,1471,1473],{},[405,1472,407],{},[399,1474,1475,1477,1480],{},[563,1476,605],{},[412,1478,1479],{},"+",[405,1481,417],{},[563,1483,1484],{"mathvariant":976},".",[419,1486,1487],{"encoding":421},"P_{\\text{collision}} \\approx \\frac{k^2}{2^{n+1}}.",[383,1489,1491,1560],{"className":1490,"ariaHidden":427},[426],[383,1492,1494,1498,1551,1554,1557],{"className":1493},[431],[383,1495],{"className":1496,"style":1497},[435],"height:0.8333em;vertical-align:-0.15em;",[383,1499,1501,1505],{"className":1500},[440],[383,1502,1452],{"className":1503,"style":1504},[440,581],"margin-right:0.1389em;",[383,1506,1508],{"className":1507},[447],[383,1509,1512,1542],{"className":1510},[451,1511],"vlist-t2",[383,1513,1515,1537],{"className":1514},[455],[383,1516,1519],{"className":1517,"style":1518},[459],"height:0.3361em;",[383,1520,1522,1525],{"style":1521},"top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;",[383,1523],{"className":1524,"style":468},[467],[383,1526,1528],{"className":1527},[472,473,474,475],[383,1529,1531],{"className":1530},[440,475],[383,1532,1534],{"className":1533},[440,341,475],[383,1535,1456],{"className":1536},[440,475],[383,1538,1541],{"className":1539},[1540],"vlist-s","​",[383,1543,1545],{"className":1544},[455],[383,1546,1549],{"className":1547,"style":1548},[459],"height:0.15em;",[383,1550],{},[383,1552],{"className":1553,"style":631},[485],[383,1555,1459],{"className":1556},[635],[383,1558],{"className":1559,"style":631},[485],[383,1561,1563,1567,1701],{"className":1562},[431],[383,1564],{"className":1565,"style":1566},[435],"height:2.1771em;vertical-align:-0.686em;",[383,1568,1570,1574,1698],{"className":1569},[440],[383,1571],{"className":1572},[763,1573],"nulldelimiter",[383,1575,1577],{"className":1576},[1461],[383,1578,1580,1689],{"className":1579},[451,1511],[383,1581,1583,1686],{"className":1582},[455],[383,1584,1587,1637,1648],{"className":1585,"style":1586},[459],"height:1.4911em;",[383,1588,1590,1594],{"style":1589},"top:-2.314em;",[383,1591],{"className":1592,"style":1593},[467],"height:3em;",[383,1595,1597],{"className":1596},[440],[383,1598,1600,1603],{"className":1599},[440],[383,1601,407],{"className":1602},[440],[383,1604,1606],{"className":1605},[447],[383,1607,1609],{"className":1608},[451],[383,1610,1612],{"className":1611},[455],[383,1613,1616],{"className":1614,"style":1615},[459],"height:0.7401em;",[383,1617,1619,1622],{"style":1618},"top:-2.989em;margin-right:0.05em;",[383,1620],{"className":1621,"style":468},[467],[383,1623,1625],{"className":1624},[472,473,474,475],[383,1626,1628,1631,1634],{"className":1627},[440,475],[383,1629,605],{"className":1630},[440,581,475],[383,1632,1479],{"className":1633},[490,475],[383,1635,417],{"className":1636},[440,475],[383,1638,1640,1643],{"style":1639},"top:-3.23em;",[383,1641],{"className":1642,"style":1593},[467],[383,1644],{"className":1645,"style":1647},[1646],"frac-line","border-bottom-width:0.04em;",[383,1649,1651,1654],{"style":1650},"top:-3.677em;",[383,1652],{"className":1653,"style":1593},[467],[383,1655,1657],{"className":1656},[440],[383,1658,1660,1663],{"className":1659},[440],[383,1661,1412],{"className":1662,"style":1428},[440,581],[383,1664,1666],{"className":1665},[447],[383,1667,1669],{"className":1668},[451],[383,1670,1672],{"className":1671},[455],[383,1673,1675],{"className":1674,"style":460},[459],[383,1676,1677,1680],{"style":463},[383,1678],{"className":1679,"style":468},[467],[383,1681,1683],{"className":1682},[472,473,474,475],[383,1684,407],{"className":1685},[440,475],[383,1687,1541],{"className":1688},[1540],[383,1690,1692],{"className":1691},[455],[383,1693,1696],{"className":1694,"style":1695},[459],"height:0.686em;",[383,1697],{},[383,1699],{"className":1700},[770,1573],[383,1702,1484],{"className":1703},[440],[324,1705,1706,1707,1803,1804,1867],{},"Setting this near 1 gives ",[383,1708,1710,1739],{"className":1709},[386],[383,1711,1713],{"className":1712},[390],[392,1714,1715],{"xmlns":394},[396,1716,1717,1736],{},[399,1718,1719,1721,1723],{},[563,1720,1412],{},[412,1722,1459],{},[402,1724,1725,1727],{},[405,1726,407],{},[399,1728,1729,1731,1734],{},[563,1730,605],{},[563,1732,1733],{"mathvariant":976},"\u002F",[405,1735,407],{},[419,1737,1738],{"encoding":421},"k \\approx 2^{n\u002F2}",[383,1740,1742,1760],{"className":1741,"ariaHidden":427},[426],[383,1743,1745,1748,1751,1754,1757],{"className":1744},[431],[383,1746],{"className":1747,"style":1424},[435],[383,1749,1412],{"className":1750,"style":1428},[440,581],[383,1752],{"className":1753,"style":631},[485],[383,1755,1459],{"className":1756},[635],[383,1758],{"className":1759,"style":631},[485],[383,1761,1763,1767],{"className":1762},[431],[383,1764],{"className":1765,"style":1766},[435],"height:0.888em;",[383,1768,1770,1773],{"className":1769},[440],[383,1771,407],{"className":1772},[440],[383,1774,1776],{"className":1775},[447],[383,1777,1779],{"className":1778},[451],[383,1780,1782],{"className":1781},[455],[383,1783,1785],{"className":1784,"style":1766},[459],[383,1786,1787,1790],{"style":463},[383,1788],{"className":1789,"style":468},[467],[383,1791,1793],{"className":1792},[472,473,474,475],[383,1794,1796,1799],{"className":1795},[440,475],[383,1797,605],{"className":1798},[440,581,475],[383,1800,1802],{"className":1801},[440,475],"\u002F2",". For SHA-256, that is about ",[383,1805,1807,1826],{"className":1806},[386],[383,1808,1810],{"className":1809},[390],[392,1811,1812],{"xmlns":394},[396,1813,1814,1823],{},[399,1815,1816],{},[402,1817,1818,1820],{},[405,1819,407],{},[405,1821,1822],{},"128",[419,1824,1825],{"encoding":421},"2^{128}",[383,1827,1829],{"className":1828,"ariaHidden":427},[426],[383,1830,1832,1835],{"className":1831},[431],[383,1833],{"className":1834,"style":460},[435],[383,1836,1838,1841],{"className":1837},[440],[383,1839,407],{"className":1840},[440],[383,1842,1844],{"className":1843},[447],[383,1845,1847],{"className":1846},[451],[383,1848,1850],{"className":1849},[455],[383,1851,1853],{"className":1852,"style":460},[459],[383,1854,1855,1858],{"style":463},[383,1856],{"className":1857,"style":468},[467],[383,1859,1861],{"className":1860},[472,473,474,475],[383,1862,1864],{"className":1863},[440,475],[383,1865,1822],{"className":1866},[440,475]," hash evaluations.",[1869,1870,1872],"equation",{"label":1871},"Generic attack costs for an n-bit hash",[383,1873,1875],{"className":1874},[1433],[383,1876,1878,1939],{"className":1877},[386],[383,1879,1881],{"className":1880},[390],[392,1882,1883],{"xmlns":394,"display":1442},[396,1884,1885,1936],{},[399,1886,1887,1890,1893,1899,1902,1905,1908,1910,1916,1918,1920,1922,1924],{},[1454,1888,1889],{},"preimage",[412,1891,1892],{},"∼",[402,1894,1895,1897],{},[405,1896,407],{},[563,1898,605],{},[412,1900,1901],{"separator":427},",",[485,1903],{"width":1904},"2em",[1454,1906,1907],{},"second preimage",[412,1909,1892],{},[402,1911,1912,1914],{},[405,1913,407],{},[563,1915,605],{},[412,1917,1901],{"separator":427},[485,1919],{"width":1904},[1454,1921,1456],{},[412,1923,1892],{},[402,1925,1926,1928],{},[405,1927,407],{},[399,1929,1930,1932,1934],{},[563,1931,605],{},[563,1933,1733],{"mathvariant":976},[405,1935,407],{},[419,1937,1938],{"encoding":421},"\\text{preimage} \\sim 2^{n},\n\\qquad\n\\text{second preimage} \\sim 2^{n},\n\\qquad\n\\text{collision} \\sim 2^{n\u002F2}",[383,1940,1942,1964,2032,2094],{"className":1941,"ariaHidden":427},[426],[383,1943,1945,1949,1955,1958,1961],{"className":1944},[431],[383,1946],{"className":1947,"style":1948},[435],"height:0.8623em;vertical-align:-0.1944em;",[383,1950,1952],{"className":1951},[440,341],[383,1953,1889],{"className":1954},[440],[383,1956],{"className":1957,"style":631},[485],[383,1959,1892],{"className":1960},[635],[383,1962],{"className":1963,"style":631},[485],[383,1965,1967,1971,2005,2009,2013,2017,2023,2026,2029],{"className":1966},[431],[383,1968],{"className":1969,"style":1970},[435],"height:0.9088em;vertical-align:-0.1944em;",[383,1972,1974,1977],{"className":1973},[440],[383,1975,407],{"className":1976},[440],[383,1978,1980],{"className":1979},[447],[383,1981,1983],{"className":1982},[451],[383,1984,1986],{"className":1985},[455],[383,1987,1990],{"className":1988,"style":1989},[459],"height:0.7144em;",[383,1991,1993,1996],{"style":1992},"top:-3.113em;margin-right:0.05em;",[383,1994],{"className":1995,"style":468},[467],[383,1997,1999],{"className":1998},[472,473,474,475],[383,2000,2002],{"className":2001},[440,475],[383,2003,605],{"className":2004},[440,581,475],[383,2006,1901],{"className":2007},[2008],"mpunct",[383,2010],{"className":2011,"style":2012},[485],"margin-right:2em;",[383,2014],{"className":2015,"style":2016},[485],"margin-right:0.1667em;",[383,2018,2020],{"className":2019},[440,341],[383,2021,1907],{"className":2022},[440],[383,2024],{"className":2025,"style":631},[485],[383,2027,1892],{"className":2028},[635],[383,2030],{"className":2031,"style":631},[485],[383,2033,2035,2038,2070,2073,2076,2079,2085,2088,2091],{"className":2034},[431],[383,2036],{"className":2037,"style":1970},[435],[383,2039,2041,2044],{"className":2040},[440],[383,2042,407],{"className":2043},[440],[383,2045,2047],{"className":2046},[447],[383,2048,2050],{"className":2049},[451],[383,2051,2053],{"className":2052},[455],[383,2054,2056],{"className":2055,"style":1989},[459],[383,2057,2058,2061],{"style":1992},[383,2059],{"className":2060,"style":468},[467],[383,2062,2064],{"className":2063},[472,473,474,475],[383,2065,2067],{"className":2066},[440,475],[383,2068,605],{"className":2069},[440,581,475],[383,2071,1901],{"className":2072},[2008],[383,2074],{"className":2075,"style":2012},[485],[383,2077],{"className":2078,"style":2016},[485],[383,2080,2082],{"className":2081},[440,341],[383,2083,1456],{"className":2084},[440],[383,2086],{"className":2087,"style":631},[485],[383,2089,1892],{"className":2090},[635],[383,2092],{"className":2093,"style":631},[485],[383,2095,2097,2101],{"className":2096},[431],[383,2098],{"className":2099,"style":2100},[435],"height:0.938em;",[383,2102,2104,2107],{"className":2103},[440],[383,2105,407],{"className":2106},[440],[383,2108,2110],{"className":2109},[447],[383,2111,2113],{"className":2112},[451],[383,2114,2116],{"className":2115},[455],[383,2117,2119],{"className":2118,"style":2100},[459],[383,2120,2121,2124],{"style":1992},[383,2122],{"className":2123,"style":468},[467],[383,2125,2127],{"className":2126},[472,473,474,475],[383,2128,2130,2133],{"className":2129},[440,475],[383,2131,605],{"className":2132},[440,581,475],[383,2134,1802],{"className":2135},[440,475],[324,2137,2138,2139,2141,2142,2144],{},"These numbers describe what ",[535,2140,537],{}," attacker can do against ",[535,2143,537],{}," hash function, without exploiting its internal structure. A hash function is considered secure as long as no attack does meaningfully better.",[362,2146,2148],{"id":2147},"how-sha-256-works","How SHA-256 Works",[324,2150,2151,2152,2155],{},"SHA-256 was designed by the US National Security Agency and published by NIST in the early 2000s as part of the SHA-2 family. The current specification is FIPS 180-4, the Secure Hash Standard. ",[506,2153,510],{"className":2154},[509]," The algorithm is completely public. Its security does not depend on secrecy, only on the difficulty of the mathematics.",[2157,2158,2160],"h3",{"id":2159},"step-1-padding","Step 1: Padding",[324,2162,2163,2164,2166,2167,2170,2171],{},"The message is first extended so that its length is a multiple of 512 bits. SHA-256 appends a single ",[331,2165,417],{}," bit, then enough ",[331,2168,2169],{},"0"," bits, then the original message length written as a 64-bit number. Including the length stops certain tricks in which two messages of different lengths are made to look alike. ",[506,2172,510],{"className":2173},[509],[2157,2175,2177],{"id":2176},"step-2-the-merkledamgård-chain","Step 2: The Merkle–Damgård chain",[324,2179,2180,2181,2384,2385,2456],{},"The padded message is split into 512-bit blocks ",[383,2182,2184,2225],{"className":2183},[386],[383,2185,2187],{"className":2186},[390],[392,2188,2189],{"xmlns":394},[396,2190,2191,2222],{},[399,2192,2193,2200,2202,2208,2210,2213,2215],{},[1448,2194,2195,2198],{},[563,2196,2197],{},"M",[405,2199,417],{},[412,2201,1901],{"separator":427},[1448,2203,2204,2206],{},[563,2205,2197],{},[405,2207,407],{},[412,2209,1901],{"separator":427},[412,2211,2212],{},"…",[412,2214,1901],{"separator":427},[1448,2216,2217,2219],{},[563,2218,2197],{},[563,2220,2221],{},"N",[419,2223,2224],{"encoding":421},"M_1, M_2, \\ldots, M_N",[383,2226,2228],{"className":2227,"ariaHidden":427},[426],[383,2229,2231,2235,2278,2281,2284,2324,2327,2330,2334,2337,2340,2343],{"className":2230},[431],[383,2232],{"className":2233,"style":2234},[435],"height:0.8778em;vertical-align:-0.1944em;",[383,2236,2238,2242],{"className":2237},[440],[383,2239,2197],{"className":2240,"style":2241},[440,581],"margin-right:0.109em;",[383,2243,2245],{"className":2244},[447],[383,2246,2248,2270],{"className":2247},[451,1511],[383,2249,2251,2267],{"className":2250},[455],[383,2252,2255],{"className":2253,"style":2254},[459],"height:0.3011em;",[383,2256,2258,2261],{"style":2257},"top:-2.55em;margin-left:-0.109em;margin-right:0.05em;",[383,2259],{"className":2260,"style":468},[467],[383,2262,2264],{"className":2263},[472,473,474,475],[383,2265,417],{"className":2266},[440,475],[383,2268,1541],{"className":2269},[1540],[383,2271,2273],{"className":2272},[455],[383,2274,2276],{"className":2275,"style":1548},[459],[383,2277],{},[383,2279,1901],{"className":2280},[2008],[383,2282],{"className":2283,"style":2016},[485],[383,2285,2287,2290],{"className":2286},[440],[383,2288,2197],{"className":2289,"style":2241},[440,581],[383,2291,2293],{"className":2292},[447],[383,2294,2296,2316],{"className":2295},[451,1511],[383,2297,2299,2313],{"className":2298},[455],[383,2300,2302],{"className":2301,"style":2254},[459],[383,2303,2304,2307],{"style":2257},[383,2305],{"className":2306,"style":468},[467],[383,2308,2310],{"className":2309},[472,473,474,475],[383,2311,407],{"className":2312},[440,475],[383,2314,1541],{"className":2315},[1540],[383,2317,2319],{"className":2318},[455],[383,2320,2322],{"className":2321,"style":1548},[459],[383,2323],{},[383,2325,1901],{"className":2326},[2008],[383,2328],{"className":2329,"style":2016},[485],[383,2331,2212],{"className":2332},[2333],"minner",[383,2335],{"className":2336,"style":2016},[485],[383,2338,1901],{"className":2339},[2008],[383,2341],{"className":2342,"style":2016},[485],[383,2344,2346,2349],{"className":2345},[440],[383,2347,2197],{"className":2348,"style":2241},[440,581],[383,2350,2352],{"className":2351},[447],[383,2353,2355,2376],{"className":2354},[451,1511],[383,2356,2358,2373],{"className":2357},[455],[383,2359,2362],{"className":2360,"style":2361},[459],"height:0.3283em;",[383,2363,2364,2367],{"style":2257},[383,2365],{"className":2366,"style":468},[467],[383,2368,2370],{"className":2369},[472,473,474,475],[383,2371,2221],{"className":2372,"style":2241},[440,581,475],[383,2374,1541],{"className":2375},[1540],[383,2377,2379],{"className":2378},[455],[383,2380,2382],{"className":2381,"style":1548},[459],[383,2383],{},". SHA-256 keeps a 256-bit running state, starting from a fixed initial value ",[383,2386,2388,2406],{"className":2387},[386],[383,2389,2391],{"className":2390},[390],[392,2392,2393],{"xmlns":394},[396,2394,2395,2403],{},[399,2396,2397],{},[1448,2398,2399,2401],{},[563,2400,565],{},[405,2402,2169],{},[419,2404,2405],{"encoding":421},"H_0",[383,2407,2409],{"className":2408,"ariaHidden":427},[426],[383,2410,2412,2415],{"className":2411},[431],[383,2413],{"className":2414,"style":1497},[435],[383,2416,2418,2421],{"className":2417},[440],[383,2419,565],{"className":2420,"style":582},[440,581],[383,2422,2424],{"className":2423},[447],[383,2425,2427,2448],{"className":2426},[451,1511],[383,2428,2430,2445],{"className":2429},[455],[383,2431,2433],{"className":2432,"style":2254},[459],[383,2434,2436,2439],{"style":2435},"top:-2.55em;margin-left:-0.0813em;margin-right:0.05em;",[383,2437],{"className":2438,"style":468},[467],[383,2440,2442],{"className":2441},[472,473,474,475],[383,2443,2169],{"className":2444},[440,475],[383,2446,1541],{"className":2447},[1540],[383,2449,2451],{"className":2450},[455],[383,2452,2454],{"className":2453,"style":1548},[459],[383,2455],{},". It then feeds in one block at a time:",[1869,2458,2460],{"label":2459},"Merkle–Damgård iteration",[383,2461,2463],{"className":2462},[1433],[383,2464,2466,2552],{"className":2465},[386],[383,2467,2469],{"className":2468},[390],[392,2470,2471],{"xmlns":394,"display":1442},[396,2472,2473,2549],{},[399,2474,2475,2482,2484,2487,2489,2501,2503,2506,2512,2514,2516,2518,2520,2522,2524,2526,2528,2530,2532,2534,2536,2539,2541,2547],{},[1448,2476,2477,2479],{},[563,2478,565],{},[563,2480,2481],{},"i",[412,2483,608],{},[563,2485,2486],{},"f",[412,2488,734],{"stretchy":733},[1448,2490,2491,2493],{},[563,2492,565],{},[399,2494,2495,2497,2499],{},[563,2496,2481],{},[412,2498,414],{},[405,2500,417],{},[412,2502,1901],{"separator":427},[1454,2504,2505],{}," ",[1448,2507,2508,2510],{},[563,2509,2197],{},[563,2511,2481],{},[412,2513,739],{"stretchy":733},[412,2515,1901],{"separator":427},[485,2517],{"width":1904},[563,2519,2481],{},[412,2521,608],{},[405,2523,417],{},[412,2525,1901],{"separator":427},[412,2527,2212],{},[412,2529,1901],{"separator":427},[563,2531,2221],{},[412,2533,1901],{"separator":427},[485,2535],{"width":1904},[1454,2537,2538],{},"output",[412,2540,608],{},[1448,2542,2543,2545],{},[563,2544,565],{},[563,2546,2221],{},[563,2548,1484],{"mathvariant":976},[419,2550,2551],{"encoding":421},"H_i = f(H_{i-1},\\, M_i), \\qquad i = 1, \\ldots, N,\n\\qquad\n\\text{output} = H_N.",[383,2553,2555,2611,2747,2801],{"className":2554,"ariaHidden":427},[426],[383,2556,2558,2561,2602,2605,2608],{"className":2557},[431],[383,2559],{"className":2560,"style":1497},[435],[383,2562,2564,2567],{"className":2563},[440],[383,2565,565],{"className":2566,"style":582},[440,581],[383,2568,2570],{"className":2569},[447],[383,2571,2573,2594],{"className":2572},[451,1511],[383,2574,2576,2591],{"className":2575},[455],[383,2577,2580],{"className":2578,"style":2579},[459],"height:0.3117em;",[383,2581,2582,2585],{"style":2435},[383,2583],{"className":2584,"style":468},[467],[383,2586,2588],{"className":2587},[472,473,474,475],[383,2589,2481],{"className":2590},[440,581,475],[383,2592,1541],{"className":2593},[1540],[383,2595,2597],{"className":2596},[455],[383,2598,2600],{"className":2599,"style":1548},[459],[383,2601],{},[383,2603],{"className":2604,"style":631},[485],[383,2606,608],{"className":2607},[635],[383,2609],{"className":2610,"style":631},[485],[383,2612,2614,2617,2621,2624,2674,2677,2680,2683,2723,2726,2729,2732,2735,2738,2741,2744],{"className":2613},[431],[383,2615],{"className":2616,"style":756},[435],[383,2618,2486],{"className":2619,"style":2620},[440,581],"margin-right:0.1076em;",[383,2622,734],{"className":2623},[763],[383,2625,2627,2630],{"className":2626},[440],[383,2628,565],{"className":2629,"style":582},[440,581],[383,2631,2633],{"className":2632},[447],[383,2634,2636,2665],{"className":2635},[451,1511],[383,2637,2639,2662],{"className":2638},[455],[383,2640,2642],{"className":2641,"style":2579},[459],[383,2643,2644,2647],{"style":2435},[383,2645],{"className":2646,"style":468},[467],[383,2648,2650],{"className":2649},[472,473,474,475],[383,2651,2653,2656,2659],{"className":2652},[440,475],[383,2654,2481],{"className":2655},[440,581,475],[383,2657,414],{"className":2658},[490,475],[383,2660,417],{"className":2661},[440,475],[383,2663,1541],{"className":2664},[1540],[383,2666,2668],{"className":2667},[455],[383,2669,2672],{"className":2670,"style":2671},[459],"height:0.2083em;",[383,2673],{},[383,2675,1901],{"className":2676},[2008],[383,2678],{"className":2679,"style":2016},[485],[383,2681],{"className":2682,"style":2016},[485],[383,2684,2686,2689],{"className":2685},[440],[383,2687,2197],{"className":2688,"style":2241},[440,581],[383,2690,2692],{"className":2691},[447],[383,2693,2695,2715],{"className":2694},[451,1511],[383,2696,2698,2712],{"className":2697},[455],[383,2699,2701],{"className":2700,"style":2579},[459],[383,2702,2703,2706],{"style":2257},[383,2704],{"className":2705,"style":468},[467],[383,2707,2709],{"className":2708},[472,473,474,475],[383,2710,2481],{"className":2711},[440,581,475],[383,2713,1541],{"className":2714},[1540],[383,2716,2718],{"className":2717},[455],[383,2719,2721],{"className":2720,"style":1548},[459],[383,2722],{},[383,2724,739],{"className":2725},[770],[383,2727,1901],{"className":2728},[2008],[383,2730],{"className":2731,"style":2012},[485],[383,2733],{"className":2734,"style":2016},[485],[383,2736,2481],{"className":2737},[440,581],[383,2739],{"className":2740,"style":631},[485],[383,2742,608],{"className":2743},[635],[383,2745],{"className":2746,"style":631},[485],[383,2748,2750,2753,2756,2759,2762,2765,2768,2771,2774,2777,2780,2783,2786,2792,2795,2798],{"className":2749},[431],[383,2751],{"className":2752,"style":2234},[435],[383,2754,417],{"className":2755},[440],[383,2757,1901],{"className":2758},[2008],[383,2760],{"className":2761,"style":2016},[485],[383,2763,2212],{"className":2764},[2333],[383,2766],{"className":2767,"style":2016},[485],[383,2769,1901],{"className":2770},[2008],[383,2772],{"className":2773,"style":2016},[485],[383,2775,2221],{"className":2776,"style":2241},[440,581],[383,2778,1901],{"className":2779},[2008],[383,2781],{"className":2782,"style":2012},[485],[383,2784],{"className":2785,"style":2016},[485],[383,2787,2789],{"className":2788},[440,341],[383,2790,2538],{"className":2791},[440],[383,2793],{"className":2794,"style":631},[485],[383,2796,608],{"className":2797},[635],[383,2799],{"className":2800,"style":631},[485],[383,2802,2804,2807,2847],{"className":2803},[431],[383,2805],{"className":2806,"style":1497},[435],[383,2808,2810,2813],{"className":2809},[440],[383,2811,565],{"className":2812,"style":582},[440,581],[383,2814,2816],{"className":2815},[447],[383,2817,2819,2839],{"className":2818},[451,1511],[383,2820,2822,2836],{"className":2821},[455],[383,2823,2825],{"className":2824,"style":2361},[459],[383,2826,2827,2830],{"style":2435},[383,2828],{"className":2829,"style":468},[467],[383,2831,2833],{"className":2832},[472,473,474,475],[383,2834,2221],{"className":2835,"style":2241},[440,581,475],[383,2837,1541],{"className":2838},[1540],[383,2840,2842],{"className":2841},[455],[383,2843,2845],{"className":2844,"style":1548},[459],[383,2846],{},[383,2848,1484],{"className":2849},[440],[324,2851,2852,2853,2881,2882,2885],{},"Here ",[383,2854,2856,2869],{"className":2855},[386],[383,2857,2859],{"className":2858},[390],[392,2860,2861],{"xmlns":394},[396,2862,2863,2867],{},[399,2864,2865],{},[563,2866,2486],{},[419,2868,2486],{"encoding":421},[383,2870,2872],{"className":2871,"ariaHidden":427},[426],[383,2873,2875,2878],{"className":2874},[431],[383,2876],{"className":2877,"style":1054},[435],[383,2879,2486],{"className":2880,"style":2620},[440,581]," is the ",[372,2883,2884],{},"compression function",": it takes the current 256-bit state and a 512-bit block and produces a new 256-bit state. The final state is the hash.",[324,2887,2888,2889,2893,2894,2922],{},"This structure was proposed independently by Ralph Merkle and Ivan Damgård in 1989. ",[506,2890,2892],{"className":2891},[509],"[3,4]"," Their key result was a guarantee: if the compression function ",[383,2895,2897,2910],{"className":2896},[386],[383,2898,2900],{"className":2899},[390],[392,2901,2902],{"xmlns":394},[396,2903,2904,2908],{},[399,2905,2906],{},[563,2907,2486],{},[419,2909,2486],{"encoding":421},[383,2911,2913],{"className":2912,"ariaHidden":427},[426],[383,2914,2916,2919],{"className":2915},[431],[383,2917],{"className":2918,"style":1054},[435],[383,2920,2486],{"className":2921,"style":2620},[440,581]," is collision-resistant, and the length is included in the padding, then the full hash function is collision-resistant too. That lets designers focus all their effort on one fixed-size function.",[324,2924,2925,2926,2929,2930,2933,2934,2979,2980,3008,3009,3037,3038,3066,3067],{},"The construction has one known quirk, called ",[372,2927,2928],{},"length extension",". Because the output ",[535,2931,2932],{},"is"," the internal state, someone who knows ",[383,2935,2937,2958],{"className":2936},[386],[383,2938,2940],{"className":2939},[390],[392,2941,2942],{"xmlns":394},[396,2943,2944,2955],{},[399,2945,2946,2948,2950,2953],{},[563,2947,565],{},[412,2949,734],{"stretchy":733},[563,2951,2952],{},"m",[412,2954,739],{"stretchy":733},[419,2956,2957],{"encoding":421},"H(m)",[383,2959,2961],{"className":2960,"ariaHidden":427},[426],[383,2962,2964,2967,2970,2973,2976],{"className":2963},[431],[383,2965],{"className":2966,"style":756},[435],[383,2968,565],{"className":2969,"style":582},[440,581],[383,2971,734],{"className":2972},[763],[383,2974,2952],{"className":2975},[440,581],[383,2977,739],{"className":2978},[770]," and the length of ",[383,2981,2983,2996],{"className":2982},[386],[383,2984,2986],{"className":2985},[390],[392,2987,2988],{"xmlns":394},[396,2989,2990,2994],{},[399,2991,2992],{},[563,2993,2952],{},[419,2995,2952],{"encoding":421},[383,2997,2999],{"className":2998,"ariaHidden":427},[426],[383,3000,3002,3005],{"className":3001},[431],[383,3003],{"className":3004,"style":624},[435],[383,3006,2952],{"className":3007},[440,581]," can compute the hash of ",[383,3010,3012,3025],{"className":3011},[386],[383,3013,3015],{"className":3014},[390],[392,3016,3017],{"xmlns":394},[396,3018,3019,3023],{},[399,3020,3021],{},[563,3022,2952],{},[419,3024,2952],{"encoding":421},[383,3026,3028],{"className":3027,"ariaHidden":427},[426],[383,3029,3031,3034],{"className":3030},[431],[383,3032],{"className":3033,"style":624},[435],[383,3035,2952],{"className":3036},[440,581]," followed by extra data, without knowing ",[383,3039,3041,3054],{"className":3040},[386],[383,3042,3044],{"className":3043},[390],[392,3045,3046],{"xmlns":394},[396,3047,3048,3052],{},[399,3049,3050],{},[563,3051,2952],{},[419,3053,2952],{"encoding":421},[383,3055,3057],{"className":3056,"ariaHidden":427},[426],[383,3058,3060,3063],{"className":3059},[431],[383,3061],{"className":3062,"style":624},[435],[383,3064,2952],{"className":3065},[440,581],". This does not help reverse the hash, but it means SHA-256 should not be used naively as a keyed authentication code. The standard fix is HMAC, which wraps the hash in two keyed passes. ",[506,3068,3070],{"className":3069},[509],"[5]",[2157,3072,3074],{"id":3073},"step-3-the-compression-function","Step 3: The compression function",[324,3076,3077,3078,3106,3107,3233],{},"Inside ",[383,3079,3081,3094],{"className":3080},[386],[383,3082,3084],{"className":3083},[390],[392,3085,3086],{"xmlns":394},[396,3087,3088,3092],{},[399,3089,3090],{},[563,3091,2486],{},[419,3093,2486],{"encoding":421},[383,3095,3097],{"className":3096,"ariaHidden":427},[426],[383,3098,3100,3103],{"className":3099},[431],[383,3101],{"className":3102,"style":1054},[435],[383,3104,2486],{"className":3105,"style":2620},[440,581],", the 256-bit state is held as eight 32-bit words, traditionally called ",[383,3108,3110,3158],{"className":3109},[386],[383,3111,3113],{"className":3112},[390],[392,3114,3115],{"xmlns":394},[396,3116,3117,3155],{},[399,3118,3119,3121,3123,3126,3128,3131,3133,3136,3138,3141,3143,3145,3147,3150,3152],{},[563,3120,514],{},[412,3122,1901],{"separator":427},[563,3124,3125],{},"b",[412,3127,1901],{"separator":427},[563,3129,3130],{},"c",[412,3132,1901],{"separator":427},[563,3134,3135],{},"d",[412,3137,1901],{"separator":427},[563,3139,3140],{},"e",[412,3142,1901],{"separator":427},[563,3144,2486],{},[412,3146,1901],{"separator":427},[563,3148,3149],{},"g",[412,3151,1901],{"separator":427},[563,3153,3154],{},"h",[419,3156,3157],{"encoding":421},"a, b, c, d, e, f, g, h",[383,3159,3161],{"className":3160,"ariaHidden":427},[426],[383,3162,3164,3167,3170,3173,3176,3179,3182,3185,3188,3191,3194,3197,3200,3203,3206,3209,3212,3215,3218,3221,3224,3227,3230],{"className":3163},[431],[383,3165],{"className":3166,"style":1054},[435],[383,3168,514],{"className":3169},[440,581],[383,3171,1901],{"className":3172},[2008],[383,3174],{"className":3175,"style":2016},[485],[383,3177,3125],{"className":3178},[440,581],[383,3180,1901],{"className":3181},[2008],[383,3183],{"className":3184,"style":2016},[485],[383,3186,3130],{"className":3187},[440,581],[383,3189,1901],{"className":3190},[2008],[383,3192],{"className":3193,"style":2016},[485],[383,3195,3135],{"className":3196},[440,581],[383,3198,1901],{"className":3199},[2008],[383,3201],{"className":3202,"style":2016},[485],[383,3204,3140],{"className":3205},[440,581],[383,3207,1901],{"className":3208},[2008],[383,3210],{"className":3211,"style":2016},[485],[383,3213,2486],{"className":3214,"style":2620},[440,581],[383,3216,1901],{"className":3217},[2008],[383,3219],{"className":3220,"style":2016},[485],[383,3222,3149],{"className":3223,"style":685},[440,581],[383,3225,1901],{"className":3226},[2008],[383,3228],{"className":3229,"style":2016},[485],[383,3231,3154],{"className":3232},[440,581],". The 512-bit block is expanded into 64 words, and the state is scrambled in 64 rounds, one word per round.",[324,3235,3236],{},"All operations act on 32-bit words. The building blocks are:",[3238,3239,3240,3274,3339,3493,3610],"ul",{},[523,3241,3242,3273],{},[383,3243,3245,3260],{"className":3244},[386],[383,3246,3248],{"className":3247},[390],[392,3249,3250],{"xmlns":394},[396,3251,3252,3257],{},[399,3253,3254],{},[412,3255,3256],{},"⊕",[419,3258,3259],{"encoding":421},"\\oplus",[383,3261,3263],{"className":3262,"ariaHidden":427},[426],[383,3264,3266,3270],{"className":3265},[431],[383,3267],{"className":3268,"style":3269},[435],"height:0.6667em;vertical-align:-0.0833em;",[383,3271,3256],{"className":3272},[440],": bitwise XOR (\"exclusive or\").",[523,3275,3276,3307,3308,3338],{},[383,3277,3279,3294],{"className":3278},[386],[383,3280,3282],{"className":3281},[390],[392,3283,3284],{"xmlns":394},[396,3285,3286,3291],{},[399,3287,3288],{},[412,3289,3290],{},"∧",[419,3292,3293],{"encoding":421},"\\wedge",[383,3295,3297],{"className":3296,"ariaHidden":427},[426],[383,3298,3300,3304],{"className":3299},[431],[383,3301],{"className":3302,"style":3303},[435],"height:0.5556em;",[383,3305,3290],{"className":3306},[440],", ",[383,3309,3311,3326],{"className":3310},[386],[383,3312,3314],{"className":3313},[390],[392,3315,3316],{"xmlns":394},[396,3317,3318,3323],{},[399,3319,3320],{},[563,3321,3322],{"mathvariant":976},"¬",[419,3324,3325],{"encoding":421},"\\neg",[383,3327,3329],{"className":3328,"ariaHidden":427},[426],[383,3330,3332,3335],{"className":3331},[431],[383,3333],{"className":3334,"style":624},[435],[383,3336,3322],{"className":3337},[440],": bitwise AND and NOT.",[523,3340,3341,3434,3435,3463,3464,3492],{},[383,3342,3344,3379],{"className":3343},[386],[383,3345,3347],{"className":3346},[390],[392,3348,3349],{"xmlns":394},[396,3350,3351,3376],{},[399,3352,3353,3370,3372,3374],{},[402,3354,3355,3368],{},[399,3356,3357,3360,3363,3366],{},[563,3358,3359],{"mathvariant":976},"R",[563,3361,3362],{"mathvariant":976},"O",[563,3364,3365],{"mathvariant":976},"T",[563,3367,3359],{"mathvariant":976},[563,3369,1412],{},[412,3371,734],{"stretchy":733},[563,3373,701],{},[412,3375,739],{"stretchy":733},[419,3377,3378],{"encoding":421},"\\mathrm{ROTR}^k(x)",[383,3380,3382],{"className":3381,"ariaHidden":427},[426],[383,3383,3385,3389,3425,3428,3431],{"className":3384},[431],[383,3386],{"className":3387,"style":3388},[435],"height:1.1723em;vertical-align:-0.25em;",[383,3390,3392,3400],{"className":3391},[440],[383,3393,3395],{"className":3394},[440],[383,3396,3399],{"className":3397},[440,3398],"mathrm","ROTR",[383,3401,3403],{"className":3402},[447],[383,3404,3406],{"className":3405},[451],[383,3407,3409],{"className":3408},[455],[383,3410,3413],{"className":3411,"style":3412},[459],"height:0.9223em;",[383,3414,3416,3419],{"style":3415},"top:-3.1362em;margin-right:0.05em;",[383,3417],{"className":3418,"style":468},[467],[383,3420,3422],{"className":3421},[472,473,474,475],[383,3423,1412],{"className":3424,"style":1428},[440,581,475],[383,3426,734],{"className":3427},[763],[383,3429,701],{"className":3430},[440,581],[383,3432,739],{"className":3433},[770],": rotate the bits of ",[383,3436,3438,3451],{"className":3437},[386],[383,3439,3441],{"className":3440},[390],[392,3442,3443],{"xmlns":394},[396,3444,3445,3449],{},[399,3446,3447],{},[563,3448,701],{},[419,3450,701],{"encoding":421},[383,3452,3454],{"className":3453,"ariaHidden":427},[426],[383,3455,3457,3460],{"className":3456},[431],[383,3458],{"className":3459,"style":624},[435],[383,3461,701],{"className":3462},[440,581]," right by ",[383,3465,3467,3480],{"className":3466},[386],[383,3468,3470],{"className":3469},[390],[392,3471,3472],{"xmlns":394},[396,3473,3474,3478],{},[399,3475,3476],{},[563,3477,1412],{},[419,3479,1412],{"encoding":421},[383,3481,3483],{"className":3482,"ariaHidden":427},[426],[383,3484,3486,3489],{"className":3485},[431],[383,3487],{"className":3488,"style":1424},[435],[383,3490,1412],{"className":3491,"style":1428},[440,581]," positions, with bits falling off the end reappearing at the front.",[523,3494,3495,3580,3581,3609],{},[383,3496,3498,3529],{"className":3497},[386],[383,3499,3501],{"className":3500},[390],[392,3502,3503],{"xmlns":394},[396,3504,3505,3526],{},[399,3506,3507,3520,3522,3524],{},[402,3508,3509,3518],{},[399,3510,3511,3514,3516],{},[563,3512,3513],{"mathvariant":976},"S",[563,3515,565],{"mathvariant":976},[563,3517,3359],{"mathvariant":976},[563,3519,1412],{},[412,3521,734],{"stretchy":733},[563,3523,701],{},[412,3525,739],{"stretchy":733},[419,3527,3528],{"encoding":421},"\\mathrm{SHR}^k(x)",[383,3530,3532],{"className":3531,"ariaHidden":427},[426],[383,3533,3535,3538,3571,3574,3577],{"className":3534},[431],[383,3536],{"className":3537,"style":3388},[435],[383,3539,3541,3548],{"className":3540},[440],[383,3542,3544],{"className":3543},[440],[383,3545,3547],{"className":3546},[440,3398],"SHR",[383,3549,3551],{"className":3550},[447],[383,3552,3554],{"className":3553},[451],[383,3555,3557],{"className":3556},[455],[383,3558,3560],{"className":3559,"style":3412},[459],[383,3561,3562,3565],{"style":3415},[383,3563],{"className":3564,"style":468},[467],[383,3566,3568],{"className":3567},[472,473,474,475],[383,3569,1412],{"className":3570,"style":1428},[440,581,475],[383,3572,734],{"className":3573},[763],[383,3575,701],{"className":3576},[440,581],[383,3578,739],{"className":3579},[770],": shift right by ",[383,3582,3584,3597],{"className":3583},[386],[383,3585,3587],{"className":3586},[390],[392,3588,3589],{"xmlns":394},[396,3590,3591,3595],{},[399,3592,3593],{},[563,3594,1412],{},[419,3596,1412],{"encoding":421},[383,3598,3600],{"className":3599,"ariaHidden":427},[426],[383,3601,3603,3606],{"className":3602},[431],[383,3604],{"className":3605,"style":1424},[435],[383,3607,1412],{"className":3608,"style":1428},[440,581]," positions, discarding bits.",[523,3611,3612,3640,3641,3704],{},[383,3613,3615,3628],{"className":3614},[386],[383,3616,3618],{"className":3617},[390],[392,3619,3620],{"xmlns":394},[396,3621,3622,3626],{},[399,3623,3624],{},[412,3625,1479],{},[419,3627,1479],{"encoding":421},[383,3629,3631],{"className":3630,"ariaHidden":427},[426],[383,3632,3634,3637],{"className":3633},[431],[383,3635],{"className":3636,"style":3269},[435],[383,3638,1479],{"className":3639},[440],": addition modulo ",[383,3642,3644,3663],{"className":3643},[386],[383,3645,3647],{"className":3646},[390],[392,3648,3649],{"xmlns":394},[396,3650,3651,3660],{},[399,3652,3653],{},[402,3654,3655,3657],{},[405,3656,407],{},[405,3658,3659],{},"32",[419,3661,3662],{"encoding":421},"2^{32}",[383,3664,3666],{"className":3665,"ariaHidden":427},[426],[383,3667,3669,3672],{"className":3668},[431],[383,3670],{"className":3671,"style":460},[435],[383,3673,3675,3678],{"className":3674},[440],[383,3676,407],{"className":3677},[440],[383,3679,3681],{"className":3680},[447],[383,3682,3684],{"className":3683},[451],[383,3685,3687],{"className":3686},[455],[383,3688,3690],{"className":3689,"style":460},[459],[383,3691,3692,3695],{"style":463},[383,3693],{"className":3694,"style":468},[467],[383,3696,3698],{"className":3697},[472,473,474,475],[383,3699,3701],{"className":3700},[440,475],[383,3702,3659],{"className":3703},[440,475],", meaning ordinary addition with any overflow past 32 bits thrown away.",[324,3706,3707,3708],{},"From these, FIPS 180-4 defines six functions: ",[506,3709,510],{"className":3710},[509],[383,3712,3714],{"className":3713},[1433],[383,3715,3717,4259],{"className":3716},[386],[383,3718,3720],{"className":3719},[390],[392,3721,3722],{"xmlns":394,"display":1442},[396,3723,3724,4256],{},[3725,3726,3729,3796,3871,3968,4065,4161],"mtable",{"rowspacing":3727,"columnalign":3728,"columnspacing":977},"0.25em","right left",[3730,3731,3732,3762],"mtr",{},[3733,3734,3735],"mtd",{},[3736,3737,3738],"mstyle",{"scriptlevel":2169,"displaystyle":427},[399,3739,3740,3747,3749,3751,3753,3755,3757,3760],{},[399,3741,3742,3745],{},[563,3743,3744],{"mathvariant":976},"C",[563,3746,3154],{"mathvariant":976},[412,3748,734],{"stretchy":733},[563,3750,701],{},[412,3752,1901],{"separator":427},[563,3754,669],{},[412,3756,1901],{"separator":427},[563,3758,3759],{},"z",[412,3761,739],{"stretchy":733},[3733,3763,3764],{},[3736,3765,3766],{"scriptlevel":2169,"displaystyle":427},[399,3767,3768,3770,3772,3774,3776,3778,3780,3782,3784,3786,3788,3790,3792,3794],{},[399,3769],{},[412,3771,608],{},[412,3773,734],{"stretchy":733},[563,3775,701],{},[412,3777,3290],{},[563,3779,669],{},[412,3781,739],{"stretchy":733},[412,3783,3256],{},[412,3785,734],{"stretchy":733},[563,3787,3322],{"mathvariant":976},[563,3789,701],{},[412,3791,3290],{},[563,3793,3759],{},[412,3795,739],{"stretchy":733},[3730,3797,3798,3827],{},[3733,3799,3800],{},[3736,3801,3802],{"scriptlevel":2169,"displaystyle":427},[399,3803,3804,3813,3815,3817,3819,3821,3823,3825],{},[399,3805,3806,3808,3810],{},[563,3807,2197],{"mathvariant":976},[563,3809,514],{"mathvariant":976},[563,3811,3812],{"mathvariant":976},"j",[412,3814,734],{"stretchy":733},[563,3816,701],{},[412,3818,1901],{"separator":427},[563,3820,669],{},[412,3822,1901],{"separator":427},[563,3824,3759],{},[412,3826,739],{"stretchy":733},[3733,3828,3829],{},[3736,3830,3831],{"scriptlevel":2169,"displaystyle":427},[399,3832,3833,3835,3837,3839,3841,3843,3845,3847,3849,3851,3853,3855,3857,3859,3861,3863,3865,3867,3869],{},[399,3834],{},[412,3836,608],{},[412,3838,734],{"stretchy":733},[563,3840,701],{},[412,3842,3290],{},[563,3844,669],{},[412,3846,739],{"stretchy":733},[412,3848,3256],{},[412,3850,734],{"stretchy":733},[563,3852,701],{},[412,3854,3290],{},[563,3856,3759],{},[412,3858,739],{"stretchy":733},[412,3860,3256],{},[412,3862,734],{"stretchy":733},[563,3864,669],{},[412,3866,3290],{},[563,3868,3759],{},[412,3870,739],{"stretchy":733},[3730,3872,3873,3892],{},[3733,3874,3875],{},[3736,3876,3877],{"scriptlevel":2169,"displaystyle":427},[399,3878,3879,3886,3888,3890],{},[1448,3880,3881,3884],{},[563,3882,3883],{"mathvariant":976},"Σ",[405,3885,2169],{},[412,3887,734],{"stretchy":733},[563,3889,701],{},[412,3891,739],{"stretchy":733},[3733,3893,3894],{},[3736,3895,3896],{"scriptlevel":2169,"displaystyle":427},[399,3897,3898,3900,3902,3916,3918,3920,3922,3924,3939,3941,3943,3945,3947,3962,3964,3966],{},[399,3899],{},[412,3901,608],{},[402,3903,3904,3914],{},[399,3905,3906,3908,3910,3912],{},[563,3907,3359],{"mathvariant":976},[563,3909,3362],{"mathvariant":976},[563,3911,3365],{"mathvariant":976},[563,3913,3359],{"mathvariant":976},[405,3915,407],{},[412,3917,734],{"stretchy":733},[563,3919,701],{},[412,3921,739],{"stretchy":733},[412,3923,3256],{},[402,3925,3926,3936],{},[399,3927,3928,3930,3932,3934],{},[563,3929,3359],{"mathvariant":976},[563,3931,3362],{"mathvariant":976},[563,3933,3365],{"mathvariant":976},[563,3935,3359],{"mathvariant":976},[405,3937,3938],{},"13",[412,3940,734],{"stretchy":733},[563,3942,701],{},[412,3944,739],{"stretchy":733},[412,3946,3256],{},[402,3948,3949,3959],{},[399,3950,3951,3953,3955,3957],{},[563,3952,3359],{"mathvariant":976},[563,3954,3362],{"mathvariant":976},[563,3956,3365],{"mathvariant":976},[563,3958,3359],{"mathvariant":976},[405,3960,3961],{},"22",[412,3963,734],{"stretchy":733},[563,3965,701],{},[412,3967,739],{"stretchy":733},[3730,3969,3970,3988],{},[3733,3971,3972],{},[3736,3973,3974],{"scriptlevel":2169,"displaystyle":427},[399,3975,3976,3982,3984,3986],{},[1448,3977,3978,3980],{},[563,3979,3883],{"mathvariant":976},[405,3981,417],{},[412,3983,734],{"stretchy":733},[563,3985,701],{},[412,3987,739],{"stretchy":733},[3733,3989,3990],{},[3736,3991,3992],{"scriptlevel":2169,"displaystyle":427},[399,3993,3994,3996,3998,4013,4015,4017,4019,4021,4036,4038,4040,4042,4044,4059,4061,4063],{},[399,3995],{},[412,3997,608],{},[402,3999,4000,4010],{},[399,4001,4002,4004,4006,4008],{},[563,4003,3359],{"mathvariant":976},[563,4005,3362],{"mathvariant":976},[563,4007,3365],{"mathvariant":976},[563,4009,3359],{"mathvariant":976},[405,4011,4012],{},"6",[412,4014,734],{"stretchy":733},[563,4016,701],{},[412,4018,739],{"stretchy":733},[412,4020,3256],{},[402,4022,4023,4033],{},[399,4024,4025,4027,4029,4031],{},[563,4026,3359],{"mathvariant":976},[563,4028,3362],{"mathvariant":976},[563,4030,3365],{"mathvariant":976},[563,4032,3359],{"mathvariant":976},[405,4034,4035],{},"11",[412,4037,734],{"stretchy":733},[563,4039,701],{},[412,4041,739],{"stretchy":733},[412,4043,3256],{},[402,4045,4046,4056],{},[399,4047,4048,4050,4052,4054],{},[563,4049,3359],{"mathvariant":976},[563,4051,3362],{"mathvariant":976},[563,4053,3365],{"mathvariant":976},[563,4055,3359],{"mathvariant":976},[405,4057,4058],{},"25",[412,4060,734],{"stretchy":733},[563,4062,701],{},[412,4064,739],{"stretchy":733},[3730,4066,4067,4086],{},[3733,4068,4069],{},[3736,4070,4071],{"scriptlevel":2169,"displaystyle":427},[399,4072,4073,4080,4082,4084],{},[1448,4074,4075,4078],{},[563,4076,4077],{},"σ",[405,4079,2169],{},[412,4081,734],{"stretchy":733},[563,4083,701],{},[412,4085,739],{"stretchy":733},[3733,4087,4088],{},[3736,4089,4090],{"scriptlevel":2169,"displaystyle":427},[399,4091,4092,4094,4096,4111,4113,4115,4117,4119,4134,4136,4138,4140,4142,4155,4157,4159],{},[399,4093],{},[412,4095,608],{},[402,4097,4098,4108],{},[399,4099,4100,4102,4104,4106],{},[563,4101,3359],{"mathvariant":976},[563,4103,3362],{"mathvariant":976},[563,4105,3365],{"mathvariant":976},[563,4107,3359],{"mathvariant":976},[405,4109,4110],{},"7",[412,4112,734],{"stretchy":733},[563,4114,701],{},[412,4116,739],{"stretchy":733},[412,4118,3256],{},[402,4120,4121,4131],{},[399,4122,4123,4125,4127,4129],{},[563,4124,3359],{"mathvariant":976},[563,4126,3362],{"mathvariant":976},[563,4128,3365],{"mathvariant":976},[563,4130,3359],{"mathvariant":976},[405,4132,4133],{},"18",[412,4135,734],{"stretchy":733},[563,4137,701],{},[412,4139,739],{"stretchy":733},[412,4141,3256],{},[402,4143,4144,4152],{},[399,4145,4146,4148,4150],{},[563,4147,3513],{"mathvariant":976},[563,4149,565],{"mathvariant":976},[563,4151,3359],{"mathvariant":976},[405,4153,4154],{},"3",[412,4156,734],{"stretchy":733},[563,4158,701],{},[412,4160,739],{"stretchy":733},[3730,4162,4163,4181],{},[3733,4164,4165],{},[3736,4166,4167],{"scriptlevel":2169,"displaystyle":427},[399,4168,4169,4175,4177,4179],{},[1448,4170,4171,4173],{},[563,4172,4077],{},[405,4174,417],{},[412,4176,734],{"stretchy":733},[563,4178,701],{},[412,4180,739],{"stretchy":733},[3733,4182,4183],{},[3736,4184,4185],{"scriptlevel":2169,"displaystyle":427},[399,4186,4187,4189,4191,4206,4208,4210,4212,4214,4229,4231,4233,4235,4237,4250,4252,4254],{},[399,4188],{},[412,4190,608],{},[402,4192,4193,4203],{},[399,4194,4195,4197,4199,4201],{},[563,4196,3359],{"mathvariant":976},[563,4198,3362],{"mathvariant":976},[563,4200,3365],{"mathvariant":976},[563,4202,3359],{"mathvariant":976},[405,4204,4205],{},"17",[412,4207,734],{"stretchy":733},[563,4209,701],{},[412,4211,739],{"stretchy":733},[412,4213,3256],{},[402,4215,4216,4226],{},[399,4217,4218,4220,4222,4224],{},[563,4219,3359],{"mathvariant":976},[563,4221,3362],{"mathvariant":976},[563,4223,3365],{"mathvariant":976},[563,4225,3359],{"mathvariant":976},[405,4227,4228],{},"19",[412,4230,734],{"stretchy":733},[563,4232,701],{},[412,4234,739],{"stretchy":733},[412,4236,3256],{},[402,4238,4239,4247],{},[399,4240,4241,4243,4245],{},[563,4242,3513],{"mathvariant":976},[563,4244,565],{"mathvariant":976},[563,4246,3359],{"mathvariant":976},[405,4248,4249],{},"10",[412,4251,734],{"stretchy":733},[563,4253,701],{},[412,4255,739],{"stretchy":733},[419,4257,4258],{"encoding":421},"\\begin{aligned}\n\\mathrm{Ch}(x,y,z) &= (x \\wedge y) \\oplus (\\neg x \\wedge z) \\\\\n\\mathrm{Maj}(x,y,z) &= (x \\wedge y) \\oplus (x \\wedge z) \\oplus (y \\wedge z) \\\\\n\\Sigma_0(x) &= \\mathrm{ROTR}^{2}(x) \\oplus \\mathrm{ROTR}^{13}(x) \\oplus \\mathrm{ROTR}^{22}(x) \\\\\n\\Sigma_1(x) &= \\mathrm{ROTR}^{6}(x) \\oplus \\mathrm{ROTR}^{11}(x) \\oplus \\mathrm{ROTR}^{25}(x) \\\\\n\\sigma_0(x) &= \\mathrm{ROTR}^{7}(x) \\oplus \\mathrm{ROTR}^{18}(x) \\oplus \\mathrm{SHR}^{3}(x) \\\\\n\\sigma_1(x) &= \\mathrm{ROTR}^{17}(x) \\oplus \\mathrm{ROTR}^{19}(x) \\oplus \\mathrm{SHR}^{10}(x)\n\\end{aligned}",[383,4260,4262],{"className":4261,"ariaHidden":427},[426],[383,4263,4265,4269],{"className":4264},[431],[383,4266],{"className":4267,"style":4268},[435],"height:8.8894em;vertical-align:-4.1947em;",[383,4270,4272],{"className":4271},[440],[383,4273,4275,4622],{"className":4274},[3725],[383,4276,4279],{"className":4277},[4278],"col-align-r",[383,4280,4282,4613],{"className":4281},[451,1511],[383,4283,4285,4610],{"className":4284},[455],[383,4286,4289,4333,4376,4435,4493,4552],{"className":4287,"style":4288},[459],"height:4.6947em;",[383,4290,4292,4295],{"style":4291},"top:-6.8547em;",[383,4293],{"className":4294,"style":1593},[467],[383,4296,4298,4305,4308,4311,4314,4317,4320,4323,4326,4330],{"className":4297},[440],[383,4299,4301],{"className":4300},[440],[383,4302,4304],{"className":4303},[440,3398],"Ch",[383,4306,734],{"className":4307},[763],[383,4309,701],{"className":4310},[440,581],[383,4312,1901],{"className":4313},[2008],[383,4315],{"className":4316,"style":2016},[485],[383,4318,669],{"className":4319,"style":685},[440,581],[383,4321,1901],{"className":4322},[2008],[383,4324],{"className":4325,"style":2016},[485],[383,4327,3759],{"className":4328,"style":4329},[440,581],"margin-right:0.044em;",[383,4331,739],{"className":4332},[770],[383,4334,4336,4339],{"style":4335},"top:-5.3547em;",[383,4337],{"className":4338,"style":1593},[467],[383,4340,4342,4349,4352,4355,4358,4361,4364,4367,4370,4373],{"className":4341},[440],[383,4343,4345],{"className":4344},[440],[383,4346,4348],{"className":4347},[440,3398],"Maj",[383,4350,734],{"className":4351},[763],[383,4353,701],{"className":4354},[440,581],[383,4356,1901],{"className":4357},[2008],[383,4359],{"className":4360,"style":2016},[485],[383,4362,669],{"className":4363,"style":685},[440,581],[383,4365,1901],{"className":4366},[2008],[383,4368],{"className":4369,"style":2016},[485],[383,4371,3759],{"className":4372,"style":4329},[440,581],[383,4374,739],{"className":4375},[770],[383,4377,4379,4382],{"style":4378},"top:-3.8073em;",[383,4380],{"className":4381,"style":1593},[467],[383,4383,4385,4426,4429,4432],{"className":4384},[440],[383,4386,4388,4391],{"className":4387},[440],[383,4389,3883],{"className":4390},[440],[383,4392,4394],{"className":4393},[447],[383,4395,4397,4418],{"className":4396},[451,1511],[383,4398,4400,4415],{"className":4399},[455],[383,4401,4403],{"className":4402,"style":2254},[459],[383,4404,4406,4409],{"style":4405},"top:-2.55em;margin-left:0em;margin-right:0.05em;",[383,4407],{"className":4408,"style":468},[467],[383,4410,4412],{"className":4411},[472,473,474,475],[383,4413,2169],{"className":4414},[440,475],[383,4416,1541],{"className":4417},[1540],[383,4419,4421],{"className":4420},[455],[383,4422,4424],{"className":4423,"style":1548},[459],[383,4425],{},[383,4427,734],{"className":4428},[763],[383,4430,701],{"className":4431},[440,581],[383,4433,739],{"className":4434},[770],[383,4436,4438,4441],{"style":4437},"top:-2.26em;",[383,4439],{"className":4440,"style":1593},[467],[383,4442,4444,4484,4487,4490],{"className":4443},[440],[383,4445,4447,4450],{"className":4446},[440],[383,4448,3883],{"className":4449},[440],[383,4451,4453],{"className":4452},[447],[383,4454,4456,4476],{"className":4455},[451,1511],[383,4457,4459,4473],{"className":4458},[455],[383,4460,4462],{"className":4461,"style":2254},[459],[383,4463,4464,4467],{"style":4405},[383,4465],{"className":4466,"style":468},[467],[383,4468,4470],{"className":4469},[472,473,474,475],[383,4471,417],{"className":4472},[440,475],[383,4474,1541],{"className":4475},[1540],[383,4477,4479],{"className":4478},[455],[383,4480,4482],{"className":4481,"style":1548},[459],[383,4483],{},[383,4485,734],{"className":4486},[763],[383,4488,701],{"className":4489},[440,581],[383,4491,739],{"className":4492},[770],[383,4494,4496,4499],{"style":4495},"top:-0.7127em;",[383,4497],{"className":4498,"style":1593},[467],[383,4500,4502,4543,4546,4549],{"className":4501},[440],[383,4503,4505,4508],{"className":4504},[440],[383,4506,4077],{"className":4507,"style":685},[440,581],[383,4509,4511],{"className":4510},[447],[383,4512,4514,4535],{"className":4513},[451,1511],[383,4515,4517,4532],{"className":4516},[455],[383,4518,4520],{"className":4519,"style":2254},[459],[383,4521,4523,4526],{"style":4522},"top:-2.55em;margin-left:-0.0359em;margin-right:0.05em;",[383,4524],{"className":4525,"style":468},[467],[383,4527,4529],{"className":4528},[472,473,474,475],[383,4530,2169],{"className":4531},[440,475],[383,4533,1541],{"className":4534},[1540],[383,4536,4538],{"className":4537},[455],[383,4539,4541],{"className":4540,"style":1548},[459],[383,4542],{},[383,4544,734],{"className":4545},[763],[383,4547,701],{"className":4548},[440,581],[383,4550,739],{"className":4551},[770],[383,4553,4555,4558],{"style":4554},"top:0.8347em;",[383,4556],{"className":4557,"style":1593},[467],[383,4559,4561,4601,4604,4607],{"className":4560},[440],[383,4562,4564,4567],{"className":4563},[440],[383,4565,4077],{"className":4566,"style":685},[440,581],[383,4568,4570],{"className":4569},[447],[383,4571,4573,4593],{"className":4572},[451,1511],[383,4574,4576,4590],{"className":4575},[455],[383,4577,4579],{"className":4578,"style":2254},[459],[383,4580,4581,4584],{"style":4522},[383,4582],{"className":4583,"style":468},[467],[383,4585,4587],{"className":4586},[472,473,474,475],[383,4588,417],{"className":4589},[440,475],[383,4591,1541],{"className":4592},[1540],[383,4594,4596],{"className":4595},[455],[383,4597,4599],{"className":4598,"style":1548},[459],[383,4600],{},[383,4602,734],{"className":4603},[763],[383,4605,701],{"className":4606},[440,581],[383,4608,739],{"className":4609},[770],[383,4611,1541],{"className":4612},[1540],[383,4614,4616],{"className":4615},[455],[383,4617,4620],{"className":4618,"style":4619},[459],"height:4.1947em;",[383,4621],{},[383,4623,4626],{"className":4624},[4625],"col-align-l",[383,4627,4629,5494],{"className":4628},[451,1511],[383,4630,4632,5491],{"className":4631},[455],[383,4633,4635,4709,4810,4981,5151,5321],{"className":4634,"style":4288},[459],[383,4636,4637,4640],{"style":4291},[383,4638],{"className":4639,"style":1593},[467],[383,4641,4643,4646,4649,4652,4655,4658,4661,4664,4667,4670,4673,4676,4679,4682,4685,4688,4691,4694,4697,4700,4703,4706],{"className":4642},[440],[383,4644],{"className":4645},[440],[383,4647],{"className":4648,"style":631},[485],[383,4650,608],{"className":4651},[635],[383,4653],{"className":4654,"style":631},[485],[383,4656,734],{"className":4657},[763],[383,4659,701],{"className":4660},[440,581],[383,4662],{"className":4663,"style":486},[485],[383,4665,3290],{"className":4666},[490],[383,4668],{"className":4669,"style":486},[485],[383,4671,669],{"className":4672,"style":685},[440,581],[383,4674,739],{"className":4675},[770],[383,4677],{"className":4678,"style":486},[485],[383,4680,3256],{"className":4681},[490],[383,4683],{"className":4684,"style":486},[485],[383,4686,734],{"className":4687},[763],[383,4689,3322],{"className":4690},[440],[383,4692,701],{"className":4693},[440,581],[383,4695],{"className":4696,"style":486},[485],[383,4698,3290],{"className":4699},[490],[383,4701],{"className":4702,"style":486},[485],[383,4704,3759],{"className":4705,"style":4329},[440,581],[383,4707,739],{"className":4708},[770],[383,4710,4711,4714],{"style":4335},[383,4712],{"className":4713,"style":1593},[467],[383,4715,4717,4720,4723,4726,4729,4732,4735,4738,4741,4744,4747,4750,4753,4756,4759,4762,4765,4768,4771,4774,4777,4780,4783,4786,4789,4792,4795,4798,4801,4804,4807],{"className":4716},[440],[383,4718],{"className":4719},[440],[383,4721],{"className":4722,"style":631},[485],[383,4724,608],{"className":4725},[635],[383,4727],{"className":4728,"style":631},[485],[383,4730,734],{"className":4731},[763],[383,4733,701],{"className":4734},[440,581],[383,4736],{"className":4737,"style":486},[485],[383,4739,3290],{"className":4740},[490],[383,4742],{"className":4743,"style":486},[485],[383,4745,669],{"className":4746,"style":685},[440,581],[383,4748,739],{"className":4749},[770],[383,4751],{"className":4752,"style":486},[485],[383,4754,3256],{"className":4755},[490],[383,4757],{"className":4758,"style":486},[485],[383,4760,734],{"className":4761},[763],[383,4763,701],{"className":4764},[440,581],[383,4766],{"className":4767,"style":486},[485],[383,4769,3290],{"className":4770},[490],[383,4772],{"className":4773,"style":486},[485],[383,4775,3759],{"className":4776,"style":4329},[440,581],[383,4778,739],{"className":4779},[770],[383,4781],{"className":4782,"style":486},[485],[383,4784,3256],{"className":4785},[490],[383,4787],{"className":4788,"style":486},[485],[383,4790,734],{"className":4791},[763],[383,4793,669],{"className":4794,"style":685},[440,581],[383,4796],{"className":4797,"style":486},[485],[383,4799,3290],{"className":4800},[490],[383,4802],{"className":4803,"style":486},[485],[383,4805,3759],{"className":4806,"style":4329},[440,581],[383,4808,739],{"className":4809},[770],[383,4811,4812,4815],{"style":4378},[383,4813],{"className":4814,"style":1593},[467],[383,4816,4818,4821,4824,4827,4830,4866,4869,4872,4875,4878,4881,4884,4919,4922,4925,4928,4931,4934,4937,4972,4975,4978],{"className":4817},[440],[383,4819],{"className":4820},[440],[383,4822],{"className":4823,"style":631},[485],[383,4825,608],{"className":4826},[635],[383,4828],{"className":4829,"style":631},[485],[383,4831,4833,4839],{"className":4832},[440],[383,4834,4836],{"className":4835},[440],[383,4837,3399],{"className":4838},[440,3398],[383,4840,4842],{"className":4841},[447],[383,4843,4845],{"className":4844},[451],[383,4846,4848],{"className":4847},[455],[383,4849,4852],{"className":4850,"style":4851},[459],"height:0.8873em;",[383,4853,4854,4857],{"style":3415},[383,4855],{"className":4856,"style":468},[467],[383,4858,4860],{"className":4859},[472,473,474,475],[383,4861,4863],{"className":4862},[440,475],[383,4864,407],{"className":4865},[440,475],[383,4867,734],{"className":4868},[763],[383,4870,701],{"className":4871},[440,581],[383,4873,739],{"className":4874},[770],[383,4876],{"className":4877,"style":486},[485],[383,4879,3256],{"className":4880},[490],[383,4882],{"className":4883,"style":486},[485],[383,4885,4887,4893],{"className":4886},[440],[383,4888,4890],{"className":4889},[440],[383,4891,3399],{"className":4892},[440,3398],[383,4894,4896],{"className":4895},[447],[383,4897,4899],{"className":4898},[451],[383,4900,4902],{"className":4901},[455],[383,4903,4905],{"className":4904,"style":4851},[459],[383,4906,4907,4910],{"style":3415},[383,4908],{"className":4909,"style":468},[467],[383,4911,4913],{"className":4912},[472,473,474,475],[383,4914,4916],{"className":4915},[440,475],[383,4917,3938],{"className":4918},[440,475],[383,4920,734],{"className":4921},[763],[383,4923,701],{"className":4924},[440,581],[383,4926,739],{"className":4927},[770],[383,4929],{"className":4930,"style":486},[485],[383,4932,3256],{"className":4933},[490],[383,4935],{"className":4936,"style":486},[485],[383,4938,4940,4946],{"className":4939},[440],[383,4941,4943],{"className":4942},[440],[383,4944,3399],{"className":4945},[440,3398],[383,4947,4949],{"className":4948},[447],[383,4950,4952],{"className":4951},[451],[383,4953,4955],{"className":4954},[455],[383,4956,4958],{"className":4957,"style":4851},[459],[383,4959,4960,4963],{"style":3415},[383,4961],{"className":4962,"style":468},[467],[383,4964,4966],{"className":4965},[472,473,474,475],[383,4967,4969],{"className":4968},[440,475],[383,4970,3961],{"className":4971},[440,475],[383,4973,734],{"className":4974},[763],[383,4976,701],{"className":4977},[440,581],[383,4979,739],{"className":4980},[770],[383,4982,4983,4986],{"style":4437},[383,4984],{"className":4985,"style":1593},[467],[383,4987,4989,4992,4995,4998,5001,5036,5039,5042,5045,5048,5051,5054,5089,5092,5095,5098,5101,5104,5107,5142,5145,5148],{"className":4988},[440],[383,4990],{"className":4991},[440],[383,4993],{"className":4994,"style":631},[485],[383,4996,608],{"className":4997},[635],[383,4999],{"className":5000,"style":631},[485],[383,5002,5004,5010],{"className":5003},[440],[383,5005,5007],{"className":5006},[440],[383,5008,3399],{"className":5009},[440,3398],[383,5011,5013],{"className":5012},[447],[383,5014,5016],{"className":5015},[451],[383,5017,5019],{"className":5018},[455],[383,5020,5022],{"className":5021,"style":4851},[459],[383,5023,5024,5027],{"style":3415},[383,5025],{"className":5026,"style":468},[467],[383,5028,5030],{"className":5029},[472,473,474,475],[383,5031,5033],{"className":5032},[440,475],[383,5034,4012],{"className":5035},[440,475],[383,5037,734],{"className":5038},[763],[383,5040,701],{"className":5041},[440,581],[383,5043,739],{"className":5044},[770],[383,5046],{"className":5047,"style":486},[485],[383,5049,3256],{"className":5050},[490],[383,5052],{"className":5053,"style":486},[485],[383,5055,5057,5063],{"className":5056},[440],[383,5058,5060],{"className":5059},[440],[383,5061,3399],{"className":5062},[440,3398],[383,5064,5066],{"className":5065},[447],[383,5067,5069],{"className":5068},[451],[383,5070,5072],{"className":5071},[455],[383,5073,5075],{"className":5074,"style":4851},[459],[383,5076,5077,5080],{"style":3415},[383,5078],{"className":5079,"style":468},[467],[383,5081,5083],{"className":5082},[472,473,474,475],[383,5084,5086],{"className":5085},[440,475],[383,5087,4035],{"className":5088},[440,475],[383,5090,734],{"className":5091},[763],[383,5093,701],{"className":5094},[440,581],[383,5096,739],{"className":5097},[770],[383,5099],{"className":5100,"style":486},[485],[383,5102,3256],{"className":5103},[490],[383,5105],{"className":5106,"style":486},[485],[383,5108,5110,5116],{"className":5109},[440],[383,5111,5113],{"className":5112},[440],[383,5114,3399],{"className":5115},[440,3398],[383,5117,5119],{"className":5118},[447],[383,5120,5122],{"className":5121},[451],[383,5123,5125],{"className":5124},[455],[383,5126,5128],{"className":5127,"style":4851},[459],[383,5129,5130,5133],{"style":3415},[383,5131],{"className":5132,"style":468},[467],[383,5134,5136],{"className":5135},[472,473,474,475],[383,5137,5139],{"className":5138},[440,475],[383,5140,4058],{"className":5141},[440,475],[383,5143,734],{"className":5144},[763],[383,5146,701],{"className":5147},[440,581],[383,5149,739],{"className":5150},[770],[383,5152,5153,5156],{"style":4495},[383,5154],{"className":5155,"style":1593},[467],[383,5157,5159,5162,5165,5168,5171,5206,5209,5212,5215,5218,5221,5224,5259,5262,5265,5268,5271,5274,5277,5312,5315,5318],{"className":5158},[440],[383,5160],{"className":5161},[440],[383,5163],{"className":5164,"style":631},[485],[383,5166,608],{"className":5167},[635],[383,5169],{"className":5170,"style":631},[485],[383,5172,5174,5180],{"className":5173},[440],[383,5175,5177],{"className":5176},[440],[383,5178,3399],{"className":5179},[440,3398],[383,5181,5183],{"className":5182},[447],[383,5184,5186],{"className":5185},[451],[383,5187,5189],{"className":5188},[455],[383,5190,5192],{"className":5191,"style":4851},[459],[383,5193,5194,5197],{"style":3415},[383,5195],{"className":5196,"style":468},[467],[383,5198,5200],{"className":5199},[472,473,474,475],[383,5201,5203],{"className":5202},[440,475],[383,5204,4110],{"className":5205},[440,475],[383,5207,734],{"className":5208},[763],[383,5210,701],{"className":5211},[440,581],[383,5213,739],{"className":5214},[770],[383,5216],{"className":5217,"style":486},[485],[383,5219,3256],{"className":5220},[490],[383,5222],{"className":5223,"style":486},[485],[383,5225,5227,5233],{"className":5226},[440],[383,5228,5230],{"className":5229},[440],[383,5231,3399],{"className":5232},[440,3398],[383,5234,5236],{"className":5235},[447],[383,5237,5239],{"className":5238},[451],[383,5240,5242],{"className":5241},[455],[383,5243,5245],{"className":5244,"style":4851},[459],[383,5246,5247,5250],{"style":3415},[383,5248],{"className":5249,"style":468},[467],[383,5251,5253],{"className":5252},[472,473,474,475],[383,5254,5256],{"className":5255},[440,475],[383,5257,4133],{"className":5258},[440,475],[383,5260,734],{"className":5261},[763],[383,5263,701],{"className":5264},[440,581],[383,5266,739],{"className":5267},[770],[383,5269],{"className":5270,"style":486},[485],[383,5272,3256],{"className":5273},[490],[383,5275],{"className":5276,"style":486},[485],[383,5278,5280,5286],{"className":5279},[440],[383,5281,5283],{"className":5282},[440],[383,5284,3547],{"className":5285},[440,3398],[383,5287,5289],{"className":5288},[447],[383,5290,5292],{"className":5291},[451],[383,5293,5295],{"className":5294},[455],[383,5296,5298],{"className":5297,"style":4851},[459],[383,5299,5300,5303],{"style":3415},[383,5301],{"className":5302,"style":468},[467],[383,5304,5306],{"className":5305},[472,473,474,475],[383,5307,5309],{"className":5308},[440,475],[383,5310,4154],{"className":5311},[440,475],[383,5313,734],{"className":5314},[763],[383,5316,701],{"className":5317},[440,581],[383,5319,739],{"className":5320},[770],[383,5322,5323,5326],{"style":4554},[383,5324],{"className":5325,"style":1593},[467],[383,5327,5329,5332,5335,5338,5341,5376,5379,5382,5385,5388,5391,5394,5429,5432,5435,5438,5441,5444,5447,5482,5485,5488],{"className":5328},[440],[383,5330],{"className":5331},[440],[383,5333],{"className":5334,"style":631},[485],[383,5336,608],{"className":5337},[635],[383,5339],{"className":5340,"style":631},[485],[383,5342,5344,5350],{"className":5343},[440],[383,5345,5347],{"className":5346},[440],[383,5348,3399],{"className":5349},[440,3398],[383,5351,5353],{"className":5352},[447],[383,5354,5356],{"className":5355},[451],[383,5357,5359],{"className":5358},[455],[383,5360,5362],{"className":5361,"style":4851},[459],[383,5363,5364,5367],{"style":3415},[383,5365],{"className":5366,"style":468},[467],[383,5368,5370],{"className":5369},[472,473,474,475],[383,5371,5373],{"className":5372},[440,475],[383,5374,4205],{"className":5375},[440,475],[383,5377,734],{"className":5378},[763],[383,5380,701],{"className":5381},[440,581],[383,5383,739],{"className":5384},[770],[383,5386],{"className":5387,"style":486},[485],[383,5389,3256],{"className":5390},[490],[383,5392],{"className":5393,"style":486},[485],[383,5395,5397,5403],{"className":5396},[440],[383,5398,5400],{"className":5399},[440],[383,5401,3399],{"className":5402},[440,3398],[383,5404,5406],{"className":5405},[447],[383,5407,5409],{"className":5408},[451],[383,5410,5412],{"className":5411},[455],[383,5413,5415],{"className":5414,"style":4851},[459],[383,5416,5417,5420],{"style":3415},[383,5418],{"className":5419,"style":468},[467],[383,5421,5423],{"className":5422},[472,473,474,475],[383,5424,5426],{"className":5425},[440,475],[383,5427,4228],{"className":5428},[440,475],[383,5430,734],{"className":5431},[763],[383,5433,701],{"className":5434},[440,581],[383,5436,739],{"className":5437},[770],[383,5439],{"className":5440,"style":486},[485],[383,5442,3256],{"className":5443},[490],[383,5445],{"className":5446,"style":486},[485],[383,5448,5450,5456],{"className":5449},[440],[383,5451,5453],{"className":5452},[440],[383,5454,3547],{"className":5455},[440,3398],[383,5457,5459],{"className":5458},[447],[383,5460,5462],{"className":5461},[451],[383,5463,5465],{"className":5464},[455],[383,5466,5468],{"className":5467,"style":4851},[459],[383,5469,5470,5473],{"style":3415},[383,5471],{"className":5472,"style":468},[467],[383,5474,5476],{"className":5475},[472,473,474,475],[383,5477,5479],{"className":5478},[440,475],[383,5480,4249],{"className":5481},[440,475],[383,5483,734],{"className":5484},[763],[383,5486,701],{"className":5487},[440,581],[383,5489,739],{"className":5490},[770],[383,5492,1541],{"className":5493},[1540],[383,5495,5497],{"className":5496},[455],[383,5498,5500],{"className":5499,"style":4619},[459],[383,5501],{},[324,5503,5504],{},"Each has a simple job:",[3238,5506,5507,5627,5632],{},[523,5508,5509,5511,5512,5540,5541,5569,5570,5598,5599,1484],{},[372,5510,4304],{}," (\"choose\") uses each bit of ",[383,5513,5515,5528],{"className":5514},[386],[383,5516,5518],{"className":5517},[390],[392,5519,5520],{"xmlns":394},[396,5521,5522,5526],{},[399,5523,5524],{},[563,5525,701],{},[419,5527,701],{"encoding":421},[383,5529,5531],{"className":5530,"ariaHidden":427},[426],[383,5532,5534,5537],{"className":5533},[431],[383,5535],{"className":5536,"style":624},[435],[383,5538,701],{"className":5539},[440,581]," as a switch: where ",[383,5542,5544,5557],{"className":5543},[386],[383,5545,5547],{"className":5546},[390],[392,5548,5549],{"xmlns":394},[396,5550,5551,5555],{},[399,5552,5553],{},[563,5554,701],{},[419,5556,701],{"encoding":421},[383,5558,5560],{"className":5559,"ariaHidden":427},[426],[383,5561,5563,5566],{"className":5562},[431],[383,5564],{"className":5565,"style":624},[435],[383,5567,701],{"className":5568},[440,581]," has a 1, take the bit from ",[383,5571,5573,5586],{"className":5572},[386],[383,5574,5576],{"className":5575},[390],[392,5577,5578],{"xmlns":394},[396,5579,5580,5584],{},[399,5581,5582],{},[563,5583,669],{},[419,5585,669],{"encoding":421},[383,5587,5589],{"className":5588,"ariaHidden":427},[426],[383,5590,5592,5595],{"className":5591},[431],[383,5593],{"className":5594,"style":681},[435],[383,5596,669],{"className":5597,"style":685},[440,581],"; where it has a 0, take the bit from ",[383,5600,5602,5615],{"className":5601},[386],[383,5603,5605],{"className":5604},[390],[392,5606,5607],{"xmlns":394},[396,5608,5609,5613],{},[399,5610,5611],{},[563,5612,3759],{},[419,5614,3759],{"encoding":421},[383,5616,5618],{"className":5617,"ariaHidden":427},[426],[383,5619,5621,5624],{"className":5620},[431],[383,5622],{"className":5623,"style":624},[435],[383,5625,3759],{"className":5626,"style":4329},[440,581],[523,5628,5629,5631],{},[372,5630,4348],{}," (\"majority\") outputs, bit by bit, whichever value appears in at least two of its three inputs.",[523,5633,5634,5635,5697],{},"The ",[372,5636,5637,5666,5667,5696],{},[383,5638,5640,5654],{"className":5639},[386],[383,5641,5643],{"className":5642},[390],[392,5644,5645],{"xmlns":394},[396,5646,5647,5651],{},[399,5648,5649],{},[563,5650,3883],{"mathvariant":976},[419,5652,5653],{"encoding":421},"\\Sigma",[383,5655,5657],{"className":5656,"ariaHidden":427},[426],[383,5658,5660,5663],{"className":5659},[431],[383,5661],{"className":5662,"style":577},[435],[383,5664,3883],{"className":5665},[440]," and ",[383,5668,5670,5684],{"className":5669},[386],[383,5671,5673],{"className":5672},[390],[392,5674,5675],{"xmlns":394},[396,5676,5677,5681],{},[399,5678,5679],{},[563,5680,4077],{},[419,5682,5683],{"encoding":421},"\\sigma",[383,5685,5687],{"className":5686,"ariaHidden":427},[426],[383,5688,5690,5693],{"className":5689},[431],[383,5691],{"className":5692,"style":624},[435],[383,5694,4077],{"className":5695,"style":685},[440,581]," functions"," combine three rotated copies of a word, so that every output bit depends on several distant input bits.",[324,5699,5700,5703,5704,5849],{},[372,5701,5702],{},"The message schedule."," The first 16 words ",[383,5705,5707,5739],{"className":5706},[386],[383,5708,5710],{"className":5709},[390],[392,5711,5712],{"xmlns":394},[396,5713,5714,5736],{},[399,5715,5716,5723,5725,5727,5729],{},[1448,5717,5718,5721],{},[563,5719,5720],{},"W",[405,5722,2169],{},[412,5724,1901],{"separator":427},[412,5726,2212],{},[412,5728,1901],{"separator":427},[1448,5730,5731,5733],{},[563,5732,5720],{},[405,5734,5735],{},"15",[419,5737,5738],{"encoding":421},"W_0, \\ldots, W_{15}",[383,5740,5742],{"className":5741,"ariaHidden":427},[426],[383,5743,5745,5748,5788,5791,5794,5797,5800,5803,5806],{"className":5744},[431],[383,5746],{"className":5747,"style":2234},[435],[383,5749,5751,5754],{"className":5750},[440],[383,5752,5720],{"className":5753,"style":1504},[440,581],[383,5755,5757],{"className":5756},[447],[383,5758,5760,5780],{"className":5759},[451,1511],[383,5761,5763,5777],{"className":5762},[455],[383,5764,5766],{"className":5765,"style":2254},[459],[383,5767,5768,5771],{"style":1521},[383,5769],{"className":5770,"style":468},[467],[383,5772,5774],{"className":5773},[472,473,474,475],[383,5775,2169],{"className":5776},[440,475],[383,5778,1541],{"className":5779},[1540],[383,5781,5783],{"className":5782},[455],[383,5784,5786],{"className":5785,"style":1548},[459],[383,5787],{},[383,5789,1901],{"className":5790},[2008],[383,5792],{"className":5793,"style":2016},[485],[383,5795,2212],{"className":5796},[2333],[383,5798],{"className":5799,"style":2016},[485],[383,5801,1901],{"className":5802},[2008],[383,5804],{"className":5805,"style":2016},[485],[383,5807,5809,5812],{"className":5808},[440],[383,5810,5720],{"className":5811,"style":1504},[440,581],[383,5813,5815],{"className":5814},[447],[383,5816,5818,5841],{"className":5817},[451,1511],[383,5819,5821,5838],{"className":5820},[455],[383,5822,5824],{"className":5823,"style":2254},[459],[383,5825,5826,5829],{"style":1521},[383,5827],{"className":5828,"style":468},[467],[383,5830,5832],{"className":5831},[472,473,474,475],[383,5833,5835],{"className":5834},[440,475],[383,5836,5735],{"className":5837},[440,475],[383,5839,1541],{"className":5840},[1540],[383,5842,5844],{"className":5843},[455],[383,5845,5847],{"className":5846,"style":1548},[459],[383,5848],{}," are simply the 16 32-bit pieces of the block. The remaining 48 are generated from earlier ones:",[383,5851,5853],{"className":5852},[1433],[383,5854,5856,5968],{"className":5855},[386],[383,5857,5859],{"className":5858},[390],[392,5860,5861],{"xmlns":394,"display":1442},[396,5862,5863,5965],{},[399,5864,5865,5872,5874,5880,5882,5894,5896,5898,5910,5912,5918,5920,5932,5934,5936,5949,5951,5953,5955,5958,5960,5962],{},[1448,5866,5867,5869],{},[563,5868,5720],{},[563,5870,5871],{},"t",[412,5873,608],{},[1448,5875,5876,5878],{},[563,5877,4077],{},[405,5879,417],{},[412,5881,734],{"stretchy":733},[1448,5883,5884,5886],{},[563,5885,5720],{},[399,5887,5888,5890,5892],{},[563,5889,5871],{},[412,5891,414],{},[405,5893,407],{},[412,5895,739],{"stretchy":733},[412,5897,1479],{},[1448,5899,5900,5902],{},[563,5901,5720],{},[399,5903,5904,5906,5908],{},[563,5905,5871],{},[412,5907,414],{},[405,5909,4110],{},[412,5911,1479],{},[1448,5913,5914,5916],{},[563,5915,4077],{},[405,5917,2169],{},[412,5919,734],{"stretchy":733},[1448,5921,5922,5924],{},[563,5923,5720],{},[399,5925,5926,5928,5930],{},[563,5927,5871],{},[412,5929,414],{},[405,5931,5735],{},[412,5933,739],{"stretchy":733},[412,5935,1479],{},[1448,5937,5938,5940],{},[563,5939,5720],{},[399,5941,5942,5944,5946],{},[563,5943,5871],{},[412,5945,414],{},[405,5947,5948],{},"16",[412,5950,1901],{"separator":427},[485,5952],{"width":1904},[405,5954,5948],{},[412,5956,5957],{},"≤",[563,5959,5871],{},[412,5961,5957],{},[405,5963,5964],{},"63.",[419,5966,5967],{"encoding":421},"W_t = \\sigma_1(W_{t-2}) + W_{t-7} + \\sigma_0(W_{t-15}) + W_{t-16},\n\\qquad 16 \\le t \\le 63.",[383,5969,5971,6027,6137,6202,6312,6388,6407],{"className":5970,"ariaHidden":427},[426],[383,5972,5974,5977,6018,6021,6024],{"className":5973},[431],[383,5975],{"className":5976,"style":1497},[435],[383,5978,5980,5983],{"className":5979},[440],[383,5981,5720],{"className":5982,"style":1504},[440,581],[383,5984,5986],{"className":5985},[447],[383,5987,5989,6010],{"className":5988},[451,1511],[383,5990,5992,6007],{"className":5991},[455],[383,5993,5996],{"className":5994,"style":5995},[459],"height:0.2806em;",[383,5997,5998,6001],{"style":1521},[383,5999],{"className":6000,"style":468},[467],[383,6002,6004],{"className":6003},[472,473,474,475],[383,6005,5871],{"className":6006},[440,581,475],[383,6008,1541],{"className":6009},[1540],[383,6011,6013],{"className":6012},[455],[383,6014,6016],{"className":6015,"style":1548},[459],[383,6017],{},[383,6019],{"className":6020,"style":631},[485],[383,6022,608],{"className":6023},[635],[383,6025],{"className":6026,"style":631},[485],[383,6028,6030,6033,6073,6076,6125,6128,6131,6134],{"className":6029},[431],[383,6031],{"className":6032,"style":756},[435],[383,6034,6036,6039],{"className":6035},[440],[383,6037,4077],{"className":6038,"style":685},[440,581],[383,6040,6042],{"className":6041},[447],[383,6043,6045,6065],{"className":6044},[451,1511],[383,6046,6048,6062],{"className":6047},[455],[383,6049,6051],{"className":6050,"style":2254},[459],[383,6052,6053,6056],{"style":4522},[383,6054],{"className":6055,"style":468},[467],[383,6057,6059],{"className":6058},[472,473,474,475],[383,6060,417],{"className":6061},[440,475],[383,6063,1541],{"className":6064},[1540],[383,6066,6068],{"className":6067},[455],[383,6069,6071],{"className":6070,"style":1548},[459],[383,6072],{},[383,6074,734],{"className":6075},[763],[383,6077,6079,6082],{"className":6078},[440],[383,6080,5720],{"className":6081,"style":1504},[440,581],[383,6083,6085],{"className":6084},[447],[383,6086,6088,6117],{"className":6087},[451,1511],[383,6089,6091,6114],{"className":6090},[455],[383,6092,6094],{"className":6093,"style":2254},[459],[383,6095,6096,6099],{"style":1521},[383,6097],{"className":6098,"style":468},[467],[383,6100,6102],{"className":6101},[472,473,474,475],[383,6103,6105,6108,6111],{"className":6104},[440,475],[383,6106,5871],{"className":6107},[440,581,475],[383,6109,414],{"className":6110},[490,475],[383,6112,407],{"className":6113},[440,475],[383,6115,1541],{"className":6116},[1540],[383,6118,6120],{"className":6119},[455],[383,6121,6123],{"className":6122,"style":2671},[459],[383,6124],{},[383,6126,739],{"className":6127},[770],[383,6129],{"className":6130,"style":486},[485],[383,6132,1479],{"className":6133},[490],[383,6135],{"className":6136,"style":486},[485],[383,6138,6140,6144,6193,6196,6199],{"className":6139},[431],[383,6141],{"className":6142,"style":6143},[435],"height:0.8917em;vertical-align:-0.2083em;",[383,6145,6147,6150],{"className":6146},[440],[383,6148,5720],{"className":6149,"style":1504},[440,581],[383,6151,6153],{"className":6152},[447],[383,6154,6156,6185],{"className":6155},[451,1511],[383,6157,6159,6182],{"className":6158},[455],[383,6160,6162],{"className":6161,"style":2254},[459],[383,6163,6164,6167],{"style":1521},[383,6165],{"className":6166,"style":468},[467],[383,6168,6170],{"className":6169},[472,473,474,475],[383,6171,6173,6176,6179],{"className":6172},[440,475],[383,6174,5871],{"className":6175},[440,581,475],[383,6177,414],{"className":6178},[490,475],[383,6180,4110],{"className":6181},[440,475],[383,6183,1541],{"className":6184},[1540],[383,6186,6188],{"className":6187},[455],[383,6189,6191],{"className":6190,"style":2671},[459],[383,6192],{},[383,6194],{"className":6195,"style":486},[485],[383,6197,1479],{"className":6198},[490],[383,6200],{"className":6201,"style":486},[485],[383,6203,6205,6208,6248,6251,6300,6303,6306,6309],{"className":6204},[431],[383,6206],{"className":6207,"style":756},[435],[383,6209,6211,6214],{"className":6210},[440],[383,6212,4077],{"className":6213,"style":685},[440,581],[383,6215,6217],{"className":6216},[447],[383,6218,6220,6240],{"className":6219},[451,1511],[383,6221,6223,6237],{"className":6222},[455],[383,6224,6226],{"className":6225,"style":2254},[459],[383,6227,6228,6231],{"style":4522},[383,6229],{"className":6230,"style":468},[467],[383,6232,6234],{"className":6233},[472,473,474,475],[383,6235,2169],{"className":6236},[440,475],[383,6238,1541],{"className":6239},[1540],[383,6241,6243],{"className":6242},[455],[383,6244,6246],{"className":6245,"style":1548},[459],[383,6247],{},[383,6249,734],{"className":6250},[763],[383,6252,6254,6257],{"className":6253},[440],[383,6255,5720],{"className":6256,"style":1504},[440,581],[383,6258,6260],{"className":6259},[447],[383,6261,6263,6292],{"className":6262},[451,1511],[383,6264,6266,6289],{"className":6265},[455],[383,6267,6269],{"className":6268,"style":2254},[459],[383,6270,6271,6274],{"style":1521},[383,6272],{"className":6273,"style":468},[467],[383,6275,6277],{"className":6276},[472,473,474,475],[383,6278,6280,6283,6286],{"className":6279},[440,475],[383,6281,5871],{"className":6282},[440,581,475],[383,6284,414],{"className":6285},[490,475],[383,6287,5735],{"className":6288},[440,475],[383,6290,1541],{"className":6291},[1540],[383,6293,6295],{"className":6294},[455],[383,6296,6298],{"className":6297,"style":2671},[459],[383,6299],{},[383,6301,739],{"className":6302},[770],[383,6304],{"className":6305,"style":486},[485],[383,6307,1479],{"className":6308},[490],[383,6310],{"className":6311,"style":486},[485],[383,6313,6315,6318,6367,6370,6373,6376,6379,6382,6385],{"className":6314},[431],[383,6316],{"className":6317,"style":6143},[435],[383,6319,6321,6324],{"className":6320},[440],[383,6322,5720],{"className":6323,"style":1504},[440,581],[383,6325,6327],{"className":6326},[447],[383,6328,6330,6359],{"className":6329},[451,1511],[383,6331,6333,6356],{"className":6332},[455],[383,6334,6336],{"className":6335,"style":2254},[459],[383,6337,6338,6341],{"style":1521},[383,6339],{"className":6340,"style":468},[467],[383,6342,6344],{"className":6343},[472,473,474,475],[383,6345,6347,6350,6353],{"className":6346},[440,475],[383,6348,5871],{"className":6349},[440,581,475],[383,6351,414],{"className":6352},[490,475],[383,6354,5948],{"className":6355},[440,475],[383,6357,1541],{"className":6358},[1540],[383,6360,6362],{"className":6361},[455],[383,6363,6365],{"className":6364,"style":2671},[459],[383,6366],{},[383,6368,1901],{"className":6369},[2008],[383,6371],{"className":6372,"style":2012},[485],[383,6374],{"className":6375,"style":2016},[485],[383,6377,5948],{"className":6378},[440],[383,6380],{"className":6381,"style":631},[485],[383,6383,5957],{"className":6384},[635],[383,6386],{"className":6387,"style":631},[485],[383,6389,6391,6395,6398,6401,6404],{"className":6390},[431],[383,6392],{"className":6393,"style":6394},[435],"height:0.7719em;vertical-align:-0.136em;",[383,6396,5871],{"className":6397},[440,581],[383,6399],{"className":6400,"style":631},[485],[383,6402,5957],{"className":6403},[635],[383,6405],{"className":6406,"style":631},[485],[383,6408,6410,6413],{"className":6409},[431],[383,6411],{"className":6412,"style":500},[435],[383,6414,5964],{"className":6415},[440],[324,6417,6418],{},"This spreads every bit of the message across many rounds, so that no part of the input affects only one round.",[324,6420,6421,6424,6425,6508],{},[372,6422,6423],{},"The rounds."," In each round ",[383,6426,6428,6455],{"className":6427},[386],[383,6429,6431],{"className":6430},[390],[392,6432,6433],{"xmlns":394},[396,6434,6435,6452],{},[399,6436,6437,6439,6441,6443,6445,6447,6449],{},[563,6438,5871],{},[412,6440,608],{},[405,6442,2169],{},[412,6444,1901],{"separator":427},[412,6446,2212],{},[412,6448,1901],{"separator":427},[405,6450,6451],{},"63",[419,6453,6454],{"encoding":421},"t = 0, \\ldots, 63",[383,6456,6458,6477],{"className":6457,"ariaHidden":427},[426],[383,6459,6461,6465,6468,6471,6474],{"className":6460},[431],[383,6462],{"className":6463,"style":6464},[435],"height:0.6151em;",[383,6466,5871],{"className":6467},[440,581],[383,6469],{"className":6470,"style":631},[485],[383,6472,608],{"className":6473},[635],[383,6475],{"className":6476,"style":631},[485],[383,6478,6480,6484,6487,6490,6493,6496,6499,6502,6505],{"className":6479},[431],[383,6481],{"className":6482,"style":6483},[435],"height:0.8389em;vertical-align:-0.1944em;",[383,6485,2169],{"className":6486},[440],[383,6488,1901],{"className":6489},[2008],[383,6491],{"className":6492,"style":2016},[485],[383,6494,2212],{"className":6495},[2333],[383,6497],{"className":6498,"style":2016},[485],[383,6500,1901],{"className":6501},[2008],[383,6503],{"className":6504,"style":2016},[485],[383,6506,6451],{"className":6507},[440],", two temporary values are computed:",[383,6510,6512],{"className":6511},[1433],[383,6513,6515,6666],{"className":6514},[386],[383,6516,6518],{"className":6517},[390],[392,6519,6520],{"xmlns":394,"display":1442},[396,6521,6522,6663],{},[3725,6523,6524,6603],{"rowspacing":3727,"columnalign":3728,"columnspacing":977},[3730,6525,6526,6536],{},[3733,6527,6528],{},[3736,6529,6530],{"scriptlevel":2169,"displaystyle":427},[1448,6531,6532,6534],{},[563,6533,3365],{},[405,6535,417],{},[3733,6537,6538],{},[3736,6539,6540],{"scriptlevel":2169,"displaystyle":427},[399,6541,6542,6544,6546,6548,6550,6556,6558,6560,6562,6564,6570,6572,6574,6576,6578,6580,6582,6584,6586,6593,6595,6601],{},[399,6543],{},[412,6545,608],{},[563,6547,3154],{},[412,6549,1479],{},[1448,6551,6552,6554],{},[563,6553,3883],{"mathvariant":976},[405,6555,417],{},[412,6557,734],{"stretchy":733},[563,6559,3140],{},[412,6561,739],{"stretchy":733},[412,6563,1479],{},[399,6565,6566,6568],{},[563,6567,3744],{"mathvariant":976},[563,6569,3154],{"mathvariant":976},[412,6571,734],{"stretchy":733},[563,6573,3140],{},[412,6575,1901],{"separator":427},[563,6577,2486],{},[412,6579,1901],{"separator":427},[563,6581,3149],{},[412,6583,739],{"stretchy":733},[412,6585,1479],{},[1448,6587,6588,6591],{},[563,6589,6590],{},"K",[563,6592,5871],{},[412,6594,1479],{},[1448,6596,6597,6599],{},[563,6598,5720],{},[563,6600,5871],{},[412,6602,1901],{"separator":427},[3730,6604,6605,6615],{},[3733,6606,6607],{},[3736,6608,6609],{"scriptlevel":2169,"displaystyle":427},[1448,6610,6611,6613],{},[563,6612,3365],{},[405,6614,407],{},[3733,6616,6617],{},[3736,6618,6619],{"scriptlevel":2169,"displaystyle":427},[399,6620,6621,6623,6625,6631,6633,6635,6637,6639,6647,6649,6651,6653,6655,6657,6659,6661],{},[399,6622],{},[412,6624,608],{},[1448,6626,6627,6629],{},[563,6628,3883],{"mathvariant":976},[405,6630,2169],{},[412,6632,734],{"stretchy":733},[563,6634,514],{},[412,6636,739],{"stretchy":733},[412,6638,1479],{},[399,6640,6641,6643,6645],{},[563,6642,2197],{"mathvariant":976},[563,6644,514],{"mathvariant":976},[563,6646,3812],{"mathvariant":976},[412,6648,734],{"stretchy":733},[563,6650,514],{},[412,6652,1901],{"separator":427},[563,6654,3125],{},[412,6656,1901],{"separator":427},[563,6658,3130],{},[412,6660,739],{"stretchy":733},[412,6662,1901],{"separator":427},[419,6664,6665],{"encoding":421},"\\begin{aligned}\nT_1 &= h + \\Sigma_1(e) + \\mathrm{Ch}(e,f,g) + K_t + W_t, \\\\\nT_2 &= \\Sigma_0(a) + \\mathrm{Maj}(a,b,c),\n\\end{aligned}",[383,6667,6669],{"className":6668,"ariaHidden":427},[426],[383,6670,6672,6676],{"className":6671},[431],[383,6673],{"className":6674,"style":6675},[435],"height:2.7em;vertical-align:-1.1em;",[383,6677,6679],{"className":6678},[440],[383,6680,6682,6804],{"className":6681},[3725],[383,6683,6685],{"className":6684},[4278],[383,6686,6688,6795],{"className":6687},[451,1511],[383,6689,6691,6792],{"className":6690},[455],[383,6692,6695,6744],{"className":6693,"style":6694},[459],"height:1.6em;",[383,6696,6698,6701],{"style":6697},"top:-3.76em;",[383,6699],{"className":6700,"style":1593},[467],[383,6702,6704],{"className":6703},[440],[383,6705,6707,6710],{"className":6706},[440],[383,6708,3365],{"className":6709,"style":1504},[440,581],[383,6711,6713],{"className":6712},[447],[383,6714,6716,6736],{"className":6715},[451,1511],[383,6717,6719,6733],{"className":6718},[455],[383,6720,6722],{"className":6721,"style":2254},[459],[383,6723,6724,6727],{"style":1521},[383,6725],{"className":6726,"style":468},[467],[383,6728,6730],{"className":6729},[472,473,474,475],[383,6731,417],{"className":6732},[440,475],[383,6734,1541],{"className":6735},[1540],[383,6737,6739],{"className":6738},[455],[383,6740,6742],{"className":6741,"style":1548},[459],[383,6743],{},[383,6745,6746,6749],{"style":4437},[383,6747],{"className":6748,"style":1593},[467],[383,6750,6752],{"className":6751},[440],[383,6753,6755,6758],{"className":6754},[440],[383,6756,3365],{"className":6757,"style":1504},[440,581],[383,6759,6761],{"className":6760},[447],[383,6762,6764,6784],{"className":6763},[451,1511],[383,6765,6767,6781],{"className":6766},[455],[383,6768,6770],{"className":6769,"style":2254},[459],[383,6771,6772,6775],{"style":1521},[383,6773],{"className":6774,"style":468},[467],[383,6776,6778],{"className":6777},[472,473,474,475],[383,6779,407],{"className":6780},[440,475],[383,6782,1541],{"className":6783},[1540],[383,6785,6787],{"className":6786},[455],[383,6788,6790],{"className":6789,"style":1548},[459],[383,6791],{},[383,6793,1541],{"className":6794},[1540],[383,6796,6798],{"className":6797},[455],[383,6799,6802],{"className":6800,"style":6801},[459],"height:1.1em;",[383,6803],{},[383,6805,6807],{"className":6806},[4625],[383,6808,6810,7159],{"className":6809},[451,1511],[383,6811,6813,7156],{"className":6812},[455],[383,6814,6816,7042],{"className":6815,"style":6694},[459],[383,6817,6818,6821],{"style":6697},[383,6819],{"className":6820,"style":1593},[467],[383,6822,6824,6827,6830,6833,6836,6839,6842,6845,6848,6888,6891,6894,6897,6900,6903,6906,6912,6915,6918,6921,6924,6927,6930,6933,6936,6939,6942,6945,6948,6990,6993,6996,6999,7039],{"className":6823},[440],[383,6825],{"className":6826},[440],[383,6828],{"className":6829,"style":631},[485],[383,6831,608],{"className":6832},[635],[383,6834],{"className":6835,"style":631},[485],[383,6837,3154],{"className":6838},[440,581],[383,6840],{"className":6841,"style":486},[485],[383,6843,1479],{"className":6844},[490],[383,6846],{"className":6847,"style":486},[485],[383,6849,6851,6854],{"className":6850},[440],[383,6852,3883],{"className":6853},[440],[383,6855,6857],{"className":6856},[447],[383,6858,6860,6880],{"className":6859},[451,1511],[383,6861,6863,6877],{"className":6862},[455],[383,6864,6866],{"className":6865,"style":2254},[459],[383,6867,6868,6871],{"style":4405},[383,6869],{"className":6870,"style":468},[467],[383,6872,6874],{"className":6873},[472,473,474,475],[383,6875,417],{"className":6876},[440,475],[383,6878,1541],{"className":6879},[1540],[383,6881,6883],{"className":6882},[455],[383,6884,6886],{"className":6885,"style":1548},[459],[383,6887],{},[383,6889,734],{"className":6890},[763],[383,6892,3140],{"className":6893},[440,581],[383,6895,739],{"className":6896},[770],[383,6898],{"className":6899,"style":486},[485],[383,6901,1479],{"className":6902},[490],[383,6904],{"className":6905,"style":486},[485],[383,6907,6909],{"className":6908},[440],[383,6910,4304],{"className":6911},[440,3398],[383,6913,734],{"className":6914},[763],[383,6916,3140],{"className":6917},[440,581],[383,6919,1901],{"className":6920},[2008],[383,6922],{"className":6923,"style":2016},[485],[383,6925,2486],{"className":6926,"style":2620},[440,581],[383,6928,1901],{"className":6929},[2008],[383,6931],{"className":6932,"style":2016},[485],[383,6934,3149],{"className":6935,"style":685},[440,581],[383,6937,739],{"className":6938},[770],[383,6940],{"className":6941,"style":486},[485],[383,6943,1479],{"className":6944},[490],[383,6946],{"className":6947,"style":486},[485],[383,6949,6951,6955],{"className":6950},[440],[383,6952,6590],{"className":6953,"style":6954},[440,581],"margin-right:0.0715em;",[383,6956,6958],{"className":6957},[447],[383,6959,6961,6982],{"className":6960},[451,1511],[383,6962,6964,6979],{"className":6963},[455],[383,6965,6967],{"className":6966,"style":5995},[459],[383,6968,6970,6973],{"style":6969},"top:-2.55em;margin-left:-0.0715em;margin-right:0.05em;",[383,6971],{"className":6972,"style":468},[467],[383,6974,6976],{"className":6975},[472,473,474,475],[383,6977,5871],{"className":6978},[440,581,475],[383,6980,1541],{"className":6981},[1540],[383,6983,6985],{"className":6984},[455],[383,6986,6988],{"className":6987,"style":1548},[459],[383,6989],{},[383,6991],{"className":6992,"style":486},[485],[383,6994,1479],{"className":6995},[490],[383,6997],{"className":6998,"style":486},[485],[383,7000,7002,7005],{"className":7001},[440],[383,7003,5720],{"className":7004,"style":1504},[440,581],[383,7006,7008],{"className":7007},[447],[383,7009,7011,7031],{"className":7010},[451,1511],[383,7012,7014,7028],{"className":7013},[455],[383,7015,7017],{"className":7016,"style":5995},[459],[383,7018,7019,7022],{"style":1521},[383,7020],{"className":7021,"style":468},[467],[383,7023,7025],{"className":7024},[472,473,474,475],[383,7026,5871],{"className":7027},[440,581,475],[383,7029,1541],{"className":7030},[1540],[383,7032,7034],{"className":7033},[455],[383,7035,7037],{"className":7036,"style":1548},[459],[383,7038],{},[383,7040,1901],{"className":7041},[2008],[383,7043,7044,7047],{"style":4437},[383,7045],{"className":7046,"style":1593},[467],[383,7048,7050,7053,7056,7059,7062,7102,7105,7108,7111,7114,7117,7120,7126,7129,7132,7135,7138,7141,7144,7147,7150,7153],{"className":7049},[440],[383,7051],{"className":7052},[440],[383,7054],{"className":7055,"style":631},[485],[383,7057,608],{"className":7058},[635],[383,7060],{"className":7061,"style":631},[485],[383,7063,7065,7068],{"className":7064},[440],[383,7066,3883],{"className":7067},[440],[383,7069,7071],{"className":7070},[447],[383,7072,7074,7094],{"className":7073},[451,1511],[383,7075,7077,7091],{"className":7076},[455],[383,7078,7080],{"className":7079,"style":2254},[459],[383,7081,7082,7085],{"style":4405},[383,7083],{"className":7084,"style":468},[467],[383,7086,7088],{"className":7087},[472,473,474,475],[383,7089,2169],{"className":7090},[440,475],[383,7092,1541],{"className":7093},[1540],[383,7095,7097],{"className":7096},[455],[383,7098,7100],{"className":7099,"style":1548},[459],[383,7101],{},[383,7103,734],{"className":7104},[763],[383,7106,514],{"className":7107},[440,581],[383,7109,739],{"className":7110},[770],[383,7112],{"className":7113,"style":486},[485],[383,7115,1479],{"className":7116},[490],[383,7118],{"className":7119,"style":486},[485],[383,7121,7123],{"className":7122},[440],[383,7124,4348],{"className":7125},[440,3398],[383,7127,734],{"className":7128},[763],[383,7130,514],{"className":7131},[440,581],[383,7133,1901],{"className":7134},[2008],[383,7136],{"className":7137,"style":2016},[485],[383,7139,3125],{"className":7140},[440,581],[383,7142,1901],{"className":7143},[2008],[383,7145],{"className":7146,"style":2016},[485],[383,7148,3130],{"className":7149},[440,581],[383,7151,739],{"className":7152},[770],[383,7154,1901],{"className":7155},[2008],[383,7157,1541],{"className":7158},[1540],[383,7160,7162],{"className":7161},[455],[383,7163,7165],{"className":7164,"style":6801},[459],[383,7166],{},[324,7168,7169],{},"and then the eight words shift along like a conveyor belt:",[383,7171,7173],{"className":7172},[1433],[383,7174,7176,7288],{"className":7175},[386],[383,7177,7179],{"className":7178},[390],[392,7180,7181],{"xmlns":394,"display":1442},[396,7182,7183,7285],{},[399,7184,7185,7187,7190,7192,7194,7197,7199,7201,7203,7205,7207,7209,7211,7213,7215,7217,7219,7221,7223,7225,7231,7233,7235,7237,7239,7241,7243,7245,7247,7249,7251,7253,7255,7257,7259,7261,7263,7265,7267,7269,7275,7277,7283],{},[563,7186,3154],{},[412,7188,7189],{},"←",[563,7191,3149],{},[412,7193,1901],{"separator":427},[485,7195],{"width":7196},"1em",[563,7198,3149],{},[412,7200,7189],{},[563,7202,2486],{},[412,7204,1901],{"separator":427},[485,7206],{"width":7196},[563,7208,2486],{},[412,7210,7189],{},[563,7212,3140],{},[412,7214,1901],{"separator":427},[485,7216],{"width":7196},[563,7218,3140],{},[412,7220,7189],{},[563,7222,3135],{},[412,7224,1479],{},[1448,7226,7227,7229],{},[563,7228,3365],{},[405,7230,417],{},[412,7232,1901],{"separator":427},[485,7234],{"width":7196},[563,7236,3135],{},[412,7238,7189],{},[563,7240,3130],{},[412,7242,1901],{"separator":427},[485,7244],{"width":7196},[563,7246,3130],{},[412,7248,7189],{},[563,7250,3125],{},[412,7252,1901],{"separator":427},[485,7254],{"width":7196},[563,7256,3125],{},[412,7258,7189],{},[563,7260,514],{},[412,7262,1901],{"separator":427},[485,7264],{"width":7196},[563,7266,514],{},[412,7268,7189],{},[1448,7270,7271,7273],{},[563,7272,3365],{},[405,7274,417],{},[412,7276,1479],{},[1448,7278,7279,7281],{},[563,7280,3365],{},[405,7282,407],{},[563,7284,1484],{"mathvariant":976},[419,7286,7287],{"encoding":421},"h \\leftarrow g,\\quad g \\leftarrow f,\\quad f \\leftarrow e,\\quad e \\leftarrow d + T_1,\\quad\nd \\leftarrow c,\\quad c \\leftarrow b,\\quad b \\leftarrow a,\\quad a \\leftarrow T_1 + T_2.",[383,7289,7291,7309,7340,7370,7400,7419,7486,7516,7546,7576,7631],{"className":7290,"ariaHidden":427},[426],[383,7292,7294,7297,7300,7303,7306],{"className":7293},[431],[383,7295],{"className":7296,"style":1424},[435],[383,7298,3154],{"className":7299},[440,581],[383,7301],{"className":7302,"style":631},[485],[383,7304,7189],{"className":7305},[635],[383,7307],{"className":7308,"style":631},[485],[383,7310,7312,7315,7318,7321,7325,7328,7331,7334,7337],{"className":7311},[431],[383,7313],{"className":7314,"style":681},[435],[383,7316,3149],{"className":7317,"style":685},[440,581],[383,7319,1901],{"className":7320},[2008],[383,7322],{"className":7323,"style":7324},[485],"margin-right:1em;",[383,7326],{"className":7327,"style":2016},[485],[383,7329,3149],{"className":7330,"style":685},[440,581],[383,7332],{"className":7333,"style":631},[485],[383,7335,7189],{"className":7336},[635],[383,7338],{"className":7339,"style":631},[485],[383,7341,7343,7346,7349,7352,7355,7358,7361,7364,7367],{"className":7342},[431],[383,7344],{"className":7345,"style":1054},[435],[383,7347,2486],{"className":7348,"style":2620},[440,581],[383,7350,1901],{"className":7351},[2008],[383,7353],{"className":7354,"style":7324},[485],[383,7356],{"className":7357,"style":2016},[485],[383,7359,2486],{"className":7360,"style":2620},[440,581],[383,7362],{"className":7363,"style":631},[485],[383,7365,7189],{"className":7366},[635],[383,7368],{"className":7369,"style":631},[485],[383,7371,7373,7376,7379,7382,7385,7388,7391,7394,7397],{"className":7372},[431],[383,7374],{"className":7375,"style":681},[435],[383,7377,3140],{"className":7378},[440,581],[383,7380,1901],{"className":7381},[2008],[383,7383],{"className":7384,"style":7324},[485],[383,7386],{"className":7387,"style":2016},[485],[383,7389,3140],{"className":7390},[440,581],[383,7392],{"className":7393,"style":631},[485],[383,7395,7189],{"className":7396},[635],[383,7398],{"className":7399,"style":631},[485],[383,7401,7403,7407,7410,7413,7416],{"className":7402},[431],[383,7404],{"className":7405,"style":7406},[435],"height:0.7778em;vertical-align:-0.0833em;",[383,7408,3135],{"className":7409},[440,581],[383,7411],{"className":7412,"style":486},[485],[383,7414,1479],{"className":7415},[490],[383,7417],{"className":7418,"style":486},[485],[383,7420,7422,7425,7465,7468,7471,7474,7477,7480,7483],{"className":7421},[431],[383,7423],{"className":7424,"style":1054},[435],[383,7426,7428,7431],{"className":7427},[440],[383,7429,3365],{"className":7430,"style":1504},[440,581],[383,7432,7434],{"className":7433},[447],[383,7435,7437,7457],{"className":7436},[451,1511],[383,7438,7440,7454],{"className":7439},[455],[383,7441,7443],{"className":7442,"style":2254},[459],[383,7444,7445,7448],{"style":1521},[383,7446],{"className":7447,"style":468},[467],[383,7449,7451],{"className":7450},[472,473,474,475],[383,7452,417],{"className":7453},[440,475],[383,7455,1541],{"className":7456},[1540],[383,7458,7460],{"className":7459},[455],[383,7461,7463],{"className":7462,"style":1548},[459],[383,7464],{},[383,7466,1901],{"className":7467},[2008],[383,7469],{"className":7470,"style":7324},[485],[383,7472],{"className":7473,"style":2016},[485],[383,7475,3135],{"className":7476},[440,581],[383,7478],{"className":7479,"style":631},[485],[383,7481,7189],{"className":7482},[635],[383,7484],{"className":7485,"style":631},[485],[383,7487,7489,7492,7495,7498,7501,7504,7507,7510,7513],{"className":7488},[431],[383,7490],{"className":7491,"style":681},[435],[383,7493,3130],{"className":7494},[440,581],[383,7496,1901],{"className":7497},[2008],[383,7499],{"className":7500,"style":7324},[485],[383,7502],{"className":7503,"style":2016},[485],[383,7505,3130],{"className":7506},[440,581],[383,7508],{"className":7509,"style":631},[485],[383,7511,7189],{"className":7512},[635],[383,7514],{"className":7515,"style":631},[485],[383,7517,7519,7522,7525,7528,7531,7534,7537,7540,7543],{"className":7518},[431],[383,7520],{"className":7521,"style":1054},[435],[383,7523,3125],{"className":7524},[440,581],[383,7526,1901],{"className":7527},[2008],[383,7529],{"className":7530,"style":7324},[485],[383,7532],{"className":7533,"style":2016},[485],[383,7535,3125],{"className":7536},[440,581],[383,7538],{"className":7539,"style":631},[485],[383,7541,7189],{"className":7542},[635],[383,7544],{"className":7545,"style":631},[485],[383,7547,7549,7552,7555,7558,7561,7564,7567,7570,7573],{"className":7548},[431],[383,7550],{"className":7551,"style":681},[435],[383,7553,514],{"className":7554},[440,581],[383,7556,1901],{"className":7557},[2008],[383,7559],{"className":7560,"style":7324},[485],[383,7562],{"className":7563,"style":2016},[485],[383,7565,514],{"className":7566},[440,581],[383,7568],{"className":7569,"style":631},[485],[383,7571,7189],{"className":7572},[635],[383,7574],{"className":7575,"style":631},[485],[383,7577,7579,7582,7622,7625,7628],{"className":7578},[431],[383,7580],{"className":7581,"style":1497},[435],[383,7583,7585,7588],{"className":7584},[440],[383,7586,3365],{"className":7587,"style":1504},[440,581],[383,7589,7591],{"className":7590},[447],[383,7592,7594,7614],{"className":7593},[451,1511],[383,7595,7597,7611],{"className":7596},[455],[383,7598,7600],{"className":7599,"style":2254},[459],[383,7601,7602,7605],{"style":1521},[383,7603],{"className":7604,"style":468},[467],[383,7606,7608],{"className":7607},[472,473,474,475],[383,7609,417],{"className":7610},[440,475],[383,7612,1541],{"className":7613},[1540],[383,7615,7617],{"className":7616},[455],[383,7618,7620],{"className":7619,"style":1548},[459],[383,7621],{},[383,7623],{"className":7624,"style":486},[485],[383,7626,1479],{"className":7627},[490],[383,7629],{"className":7630,"style":486},[485],[383,7632,7634,7637,7677],{"className":7633},[431],[383,7635],{"className":7636,"style":1497},[435],[383,7638,7640,7643],{"className":7639},[440],[383,7641,3365],{"className":7642,"style":1504},[440,581],[383,7644,7646],{"className":7645},[447],[383,7647,7649,7669],{"className":7648},[451,1511],[383,7650,7652,7666],{"className":7651},[455],[383,7653,7655],{"className":7654,"style":2254},[459],[383,7656,7657,7660],{"style":1521},[383,7658],{"className":7659,"style":468},[467],[383,7661,7663],{"className":7662},[472,473,474,475],[383,7664,407],{"className":7665},[440,475],[383,7667,1541],{"className":7668},[1540],[383,7670,7672],{"className":7671},[455],[383,7673,7675],{"className":7674,"style":1548},[459],[383,7676],{},[383,7678,1484],{"className":7679},[440],[324,7681,7682],{},"After 64 rounds, the result is added word by word to the state that went in. That final addition means that even if someone could run the 64 rounds backwards, they would still not know which starting state to subtract.",[324,7684,7685,7688,7689,7759,7760,7829,7830,7833],{},[372,7686,7687],{},"The constants."," The 64 round constants ",[383,7690,7692,7710],{"className":7691},[386],[383,7693,7695],{"className":7694},[390],[392,7696,7697],{"xmlns":394},[396,7698,7699,7707],{},[399,7700,7701],{},[1448,7702,7703,7705],{},[563,7704,6590],{},[563,7706,5871],{},[419,7708,7709],{"encoding":421},"K_t",[383,7711,7713],{"className":7712,"ariaHidden":427},[426],[383,7714,7716,7719],{"className":7715},[431],[383,7717],{"className":7718,"style":1497},[435],[383,7720,7722,7725],{"className":7721},[440],[383,7723,6590],{"className":7724,"style":6954},[440,581],[383,7726,7728],{"className":7727},[447],[383,7729,7731,7751],{"className":7730},[451,1511],[383,7732,7734,7748],{"className":7733},[455],[383,7735,7737],{"className":7736,"style":5995},[459],[383,7738,7739,7742],{"style":6969},[383,7740],{"className":7741,"style":468},[467],[383,7743,7745],{"className":7744},[472,473,474,475],[383,7746,5871],{"className":7747},[440,581,475],[383,7749,1541],{"className":7750},[1540],[383,7752,7754],{"className":7753},[455],[383,7755,7757],{"className":7756,"style":1548},[459],[383,7758],{}," are the first 32 bits of the fractional parts of the cube roots of the first 64 prime numbers. The initial state ",[383,7761,7763,7780],{"className":7762},[386],[383,7764,7766],{"className":7765},[390],[392,7767,7768],{"xmlns":394},[396,7769,7770,7778],{},[399,7771,7772],{},[1448,7773,7774,7776],{},[563,7775,565],{},[405,7777,2169],{},[419,7779,2405],{"encoding":421},[383,7781,7783],{"className":7782,"ariaHidden":427},[426],[383,7784,7786,7789],{"className":7785},[431],[383,7787],{"className":7788,"style":1497},[435],[383,7790,7792,7795],{"className":7791},[440],[383,7793,565],{"className":7794,"style":582},[440,581],[383,7796,7798],{"className":7797},[447],[383,7799,7801,7821],{"className":7800},[451,1511],[383,7802,7804,7818],{"className":7803},[455],[383,7805,7807],{"className":7806,"style":2254},[459],[383,7808,7809,7812],{"style":2435},[383,7810],{"className":7811,"style":468},[467],[383,7813,7815],{"className":7814},[472,473,474,475],[383,7816,2169],{"className":7817},[440,475],[383,7819,1541],{"className":7820},[1540],[383,7822,7824],{"className":7823},[455],[383,7825,7827],{"className":7826,"style":1548},[459],[383,7828],{}," comes from the fractional parts of the square roots of the first 8 primes. ",[506,7831,510],{"className":7832},[509]," These are sometimes called \"nothing-up-my-sleeve numbers\": they are chosen from an obvious public recipe, so that the designers could not have hidden a secret weakness in carefully tuned values.",[2157,7835,7837],{"id":7836},"why-the-mixture-matters","Why the mixture matters",[324,7839,7840,7841,7844],{},"Each individual operation is easy to undo. XOR is its own inverse. Rotation can be reversed. Addition can be subtracted. The difficulty comes from ",[372,7842,7843],{},"mixing operations that belong to different kinds of algebra",". XOR behaves nicely in one mathematical system (bits added without carries); modular addition behaves nicely in another (whole numbers with carries). Ch and Maj are nonlinear in both. An equation that is simple in one language becomes a tangle in the other, and after 64 rounds, each output bit depends on every input bit through an enormous, interlocking expression.",[2157,7846,7848],{"id":7847},"the-avalanche-effect","The avalanche effect",[324,7850,7851,7852,7855,7856,5666,7858,7860],{},"The visible result is the ",[372,7853,7854],{},"avalanche effect",": changing a single input bit changes each output bit with probability close to one half, as if the output had been redrawn at random. That is what the ",[331,7857,333],{},[331,7859,350],{}," example shows. Without an avalanche, an attacker could make small changes to an input and watch the output move closer to a target. With it, every guess gives no information about how close you are. Being \"one bit away\" from the right input looks exactly like being completely wrong.",[362,7862,7864],{"id":7863},"why-it-cannot-be-reversed","Why It Cannot Be Reversed",[324,7866,7867],{},"There are two distinct reasons, and they should be kept apart.",[2157,7869,7871],{"id":7870},"reason-1-information-is-destroyed-mathematical-fact","Reason 1: Information is destroyed (mathematical fact)",[324,7873,7874,7875,7936,7937,7939],{},"SHA-256 maps an effectively unlimited set of inputs into ",[383,7876,7878,7895],{"className":7877},[386],[383,7879,7881],{"className":7880},[390],[392,7882,7883],{"xmlns":394},[396,7884,7885,7893],{},[399,7886,7887],{},[402,7888,7889,7891],{},[405,7890,407],{},[405,7892,611],{},[419,7894,880],{"encoding":421},[383,7896,7898],{"className":7897,"ariaHidden":427},[426],[383,7899,7901,7904],{"className":7900},[431],[383,7902],{"className":7903,"style":460},[435],[383,7905,7907,7910],{"className":7906},[440],[383,7908,407],{"className":7909},[440],[383,7911,7913],{"className":7912},[447],[383,7914,7916],{"className":7915},[451],[383,7917,7919],{"className":7918},[455],[383,7920,7922],{"className":7921,"style":460},[459],[383,7923,7924,7927],{"style":463},[383,7925],{"className":7926,"style":468},[467],[383,7928,7930],{"className":7929},[472,473,474,475],[383,7931,7933],{"className":7932},[440,475],[383,7934,611],{"className":7935},[440,475]," outputs. By the pigeonhole principle, most outputs have enormous numbers of inputs that produce them. Even an all-powerful computer could not tell you which one was \"the\" original. At best it could give you ",[535,7938,514],{}," matching input.",[324,7941,7942],{},"This is also why encryption and hashing are fundamentally different. An encryption function must be reversible, or you could never read your own messages. A hash function is designed to throw information away.",[2157,7944,7946],{"id":7945},"reason-2-no-shortcut-is-known-empirical-not-proven","Reason 2: No shortcut is known (empirical, not proven)",[324,7948,7949,7950,7953],{},"Finding ",[535,7951,7952],{},"some"," matching input is still a well-defined problem. The question is whether there is any method faster than guessing. Here the status is more subtle:",[3238,7955,7956,7965],{},[523,7957,7958,7961,7962,7964],{},[372,7959,7960],{},"No one has proved that SHA-256 is one-way."," In fact, no one has proved that ",[535,7963,537],{}," one-way function exists. A proof would settle famous open problems in computer science, including a version of the P versus NP question.",[523,7966,7967,7970],{},[372,7968,7969],{},"What exists instead is evidence from failed attacks."," For more than two decades, cryptographers around the world have tried to find structure in SHA-256 that could be exploited. Their best results only work on weakened versions.",[324,7972,7973,7974,7977],{},"So \"SHA-256 cannot be reversed\" is best described as an ",[372,7975,7976],{},"accepted, well-tested assumption",", not a theorem. It is similar in status to a physical theory that has survived every experiment so far.",[2157,7979,7981],{"id":7980},"what-the-best-attacks-achieve","What the best attacks achieve",[324,7983,7984],{},"The standard way to measure progress is to attack SHA-256 with fewer than its 64 rounds and see how many rounds can be broken.",[3238,7986,7987,8140],{},[523,7988,7989,7992,7993,8056,8057,8061,8062,8066,8067,8071,8072,8135,8136],{},[372,7990,7991],{},"Collisions."," In 2013, Florian Mendel, Tomislav Nad and Martin Schläffer described a collision attack on 31 of the 64 steps, with a cost of about ",[383,7994,7996,8015],{"className":7995},[386],[383,7997,7999],{"className":7998},[390],[392,8000,8001],{"xmlns":394},[396,8002,8003,8012],{},[399,8004,8005],{},[402,8006,8007,8009],{},[405,8008,407],{},[405,8010,8011],{},"65.5",[419,8013,8014],{"encoding":421},"2^{65.5}",[383,8016,8018],{"className":8017,"ariaHidden":427},[426],[383,8019,8021,8024],{"className":8020},[431],[383,8022],{"className":8023,"style":460},[435],[383,8025,8027,8030],{"className":8026},[440],[383,8028,407],{"className":8029},[440],[383,8031,8033],{"className":8032},[447],[383,8034,8036],{"className":8035},[451],[383,8037,8039],{"className":8038},[455],[383,8040,8042],{"className":8041,"style":460},[459],[383,8043,8044,8047],{"style":463},[383,8045],{"className":8046,"style":468},[467],[383,8048,8050],{"className":8049},[472,473,474,475],[383,8051,8053],{"className":8052},[440,475],[383,8054,8011],{"className":8055},[440,475],", and a practical attack on 38 steps in a weaker \"semi-free-start\" setting, where the attacker may also choose the starting state. ",[506,8058,8060],{"className":8059},[509],"[7]"," In 2024, Yingxin Li, Fukang Liu and Gaoli Wang extended the semi-free-start result to 39 steps, and in a separate paper with co-authors produced the first actual colliding pair for 31-step SHA-256. ",[506,8063,8065],{"className":8064},[509],"[8,9]"," After more than a decade stuck at 31 steps, a 2026 paper pushed the collision attack to 37 steps using automated searches for better differential trails. ",[506,8068,8070],{"className":8069},[509],"[25]"," A 2026 preprint, not yet peer reviewed at the time of writing, reports an actual colliding pair for 36 steps and a theoretical attack on 38 steps costing about ",[383,8073,8075,8094],{"className":8074},[386],[383,8076,8078],{"className":8077},[390],[392,8079,8080],{"xmlns":394},[396,8081,8082,8091],{},[399,8083,8084],{},[402,8085,8086,8088],{},[405,8087,407],{},[405,8089,8090],{},"104",[419,8092,8093],{"encoding":421},"2^{104}",[383,8095,8097],{"className":8096,"ariaHidden":427},[426],[383,8098,8100,8103],{"className":8099},[431],[383,8101],{"className":8102,"style":460},[435],[383,8104,8106,8109],{"className":8105},[440],[383,8107,407],{"className":8108},[440],[383,8110,8112],{"className":8111},[447],[383,8113,8115],{"className":8114},[451],[383,8116,8118],{"className":8117},[455],[383,8119,8121],{"className":8120,"style":460},[459],[383,8122,8123,8126],{"style":463},[383,8124],{"className":8125,"style":468},[467],[383,8127,8129],{"className":8128},[472,473,474,475],[383,8130,8132],{"className":8131},[440,475],[383,8133,8090],{"className":8134},[440,475],". ",[506,8137,8139],{"className":8138},[509],"[26]",[523,8141,8142,8145,8146],{},[372,8143,8144],{},"Preimages."," The best preimage attacks, using a technique called bicliques, reach about 45 of the 64 rounds, and even then they are only marginally faster than brute force. ",[506,8147,8149],{"className":8148},[509],"[10]",[324,8151,8152],{},"No attack is known on full 64-round SHA-256 that beats the generic bounds. The remaining margin, roughly 25 rounds for collision attacks and about 19 for preimages, is the reason SHA-256 is still trusted. The recent progress is also a reminder that this margin is measured, not guaranteed.",[324,8154,8155,8156,8218,8219,8223],{},"It is worth remembering that this is how older hash functions fell. MD5 and SHA-1 were broken gradually, round by round, until a full collision for SHA-1 was finally computed in 2017, at a cost of about ",[383,8157,8159,8177],{"className":8158},[386],[383,8160,8162],{"className":8161},[390],[392,8163,8164],{"xmlns":394},[396,8165,8166,8174],{},[399,8167,8168],{},[402,8169,8170,8172],{},[405,8171,407],{},[405,8173,6451],{},[419,8175,8176],{"encoding":421},"2^{63}",[383,8178,8180],{"className":8179,"ariaHidden":427},[426],[383,8181,8183,8186],{"className":8182},[431],[383,8184],{"className":8185,"style":460},[435],[383,8187,8189,8192],{"className":8188},[440],[383,8190,407],{"className":8191},[440],[383,8193,8195],{"className":8194},[447],[383,8196,8198],{"className":8197},[451],[383,8199,8201],{"className":8200},[455],[383,8202,8204],{"className":8203,"style":460},[459],[383,8205,8206,8209],{"style":463},[383,8207],{"className":8208,"style":468},[467],[383,8210,8212],{"className":8211},[472,473,474,475],[383,8213,8215],{"className":8214},[440,475],[383,8216,6451],{"className":8217},[440,475]," operations. ",[506,8220,8222],{"className":8221},[509],"[6]"," That history is why cryptographers watch round-reduced results closely. SHA-256 shows no sign of following the same path, but \"no sign yet\" is the honest form of the claim.",[362,8225,8227],{"id":8226},"what-reversing-it-would-take","What Reversing It Would Take",[324,8229,8230],{},"Since no shortcut is known, reversing SHA-256 means guessing. How much guessing is that?",[2157,8232,8234],{"id":8233},"the-brute-force-numbers","The brute-force numbers",[324,8236,8237,8238,8304],{},"Imagine a machine that performs ",[383,8239,8241,8260],{"className":8240},[386],[383,8242,8244],{"className":8243},[390],[392,8245,8246],{"xmlns":394},[396,8247,8248,8257],{},[399,8249,8250],{},[402,8251,8252,8254],{},[405,8253,4249],{},[405,8255,8256],{},"21",[419,8258,8259],{"encoding":421},"10^{21}",[383,8261,8263],{"className":8262,"ariaHidden":427},[426],[383,8264,8266,8269,8272],{"className":8265},[431],[383,8267],{"className":8268,"style":460},[435],[383,8270,417],{"className":8271},[440],[383,8273,8275,8278],{"className":8274},[440],[383,8276,2169],{"className":8277},[440],[383,8279,8281],{"className":8280},[447],[383,8282,8284],{"className":8283},[451],[383,8285,8287],{"className":8286},[455],[383,8288,8290],{"className":8289,"style":460},[459],[383,8291,8292,8295],{"style":463},[383,8293],{"className":8294,"style":468},[467],[383,8296,8298],{"className":8297},[472,473,474,475],[383,8299,8301],{"className":8300},[440,475],[383,8302,8256],{"className":8303},[440,475]," SHA-256 evaluations per second. That is roughly the scale of the entire worldwide Bitcoin mining network in the mid-2020s, the largest hashing effort humans have ever built.",[3238,8306,8307,8591],{},[523,8308,8309,8312,8313,8459,8460,8524,8525,8590],{},[372,8310,8311],{},"Finding a collision"," needs about ",[383,8314,8316,8349],{"className":8315},[386],[383,8317,8319],{"className":8318},[390],[392,8320,8321],{"xmlns":394},[396,8322,8323,8346],{},[399,8324,8325,8331,8333,8336,8339],{},[402,8326,8327,8329],{},[405,8328,407],{},[405,8330,1822],{},[412,8332,1459],{},[405,8334,8335],{},"3.4",[412,8337,8338],{},"×",[402,8340,8341,8343],{},[405,8342,4249],{},[405,8344,8345],{},"38",[419,8347,8348],{"encoding":421},"2^{128} \\approx 3.4 \\times 10^{38}",[383,8350,8352,8399,8418],{"className":8351,"ariaHidden":427},[426],[383,8353,8355,8358,8390,8393,8396],{"className":8354},[431],[383,8356],{"className":8357,"style":460},[435],[383,8359,8361,8364],{"className":8360},[440],[383,8362,407],{"className":8363},[440],[383,8365,8367],{"className":8366},[447],[383,8368,8370],{"className":8369},[451],[383,8371,8373],{"className":8372},[455],[383,8374,8376],{"className":8375,"style":460},[459],[383,8377,8378,8381],{"style":463},[383,8379],{"className":8380,"style":468},[467],[383,8382,8384],{"className":8383},[472,473,474,475],[383,8385,8387],{"className":8386},[440,475],[383,8388,1822],{"className":8389},[440,475],[383,8391],{"className":8392,"style":631},[485],[383,8394,1459],{"className":8395},[635],[383,8397],{"className":8398,"style":631},[485],[383,8400,8402,8406,8409,8412,8415],{"className":8401},[431],[383,8403],{"className":8404,"style":8405},[435],"height:0.7278em;vertical-align:-0.0833em;",[383,8407,8335],{"className":8408},[440],[383,8410],{"className":8411,"style":486},[485],[383,8413,8338],{"className":8414},[490],[383,8416],{"className":8417,"style":486},[485],[383,8419,8421,8424,8427],{"className":8420},[431],[383,8422],{"className":8423,"style":460},[435],[383,8425,417],{"className":8426},[440],[383,8428,8430,8433],{"className":8429},[440],[383,8431,2169],{"className":8432},[440],[383,8434,8436],{"className":8435},[447],[383,8437,8439],{"className":8438},[451],[383,8440,8442],{"className":8441},[455],[383,8443,8445],{"className":8444,"style":460},[459],[383,8446,8447,8450],{"style":463},[383,8448],{"className":8449,"style":468},[467],[383,8451,8453],{"className":8452},[472,473,474,475],[383,8454,8456],{"className":8455},[440,475],[383,8457,8345],{"className":8458},[440,475]," evaluations. At ",[383,8461,8463,8480],{"className":8462},[386],[383,8464,8466],{"className":8465},[390],[392,8467,8468],{"xmlns":394},[396,8469,8470,8478],{},[399,8471,8472],{},[402,8473,8474,8476],{},[405,8475,4249],{},[405,8477,8256],{},[419,8479,8259],{"encoding":421},[383,8481,8483],{"className":8482,"ariaHidden":427},[426],[383,8484,8486,8489,8492],{"className":8485},[431],[383,8487],{"className":8488,"style":460},[435],[383,8490,417],{"className":8491},[440],[383,8493,8495,8498],{"className":8494},[440],[383,8496,2169],{"className":8497},[440],[383,8499,8501],{"className":8500},[447],[383,8502,8504],{"className":8503},[451],[383,8505,8507],{"className":8506},[455],[383,8508,8510],{"className":8509,"style":460},[459],[383,8511,8512,8515],{"style":463},[383,8513],{"className":8514,"style":468},[467],[383,8516,8518],{"className":8517},[472,473,474,475],[383,8519,8521],{"className":8520},[440,475],[383,8522,8256],{"className":8523},[440,475]," per second, that takes about ",[383,8526,8528,8546],{"className":8527},[386],[383,8529,8531],{"className":8530},[390],[392,8532,8533],{"xmlns":394},[396,8534,8535,8543],{},[399,8536,8537],{},[402,8538,8539,8541],{},[405,8540,4249],{},[405,8542,4249],{},[419,8544,8545],{"encoding":421},"10^{10}",[383,8547,8549],{"className":8548,"ariaHidden":427},[426],[383,8550,8552,8555,8558],{"className":8551},[431],[383,8553],{"className":8554,"style":460},[435],[383,8556,417],{"className":8557},[440],[383,8559,8561,8564],{"className":8560},[440],[383,8562,2169],{"className":8563},[440],[383,8565,8567],{"className":8566},[447],[383,8568,8570],{"className":8569},[451],[383,8571,8573],{"className":8572},[455],[383,8574,8576],{"className":8575,"style":460},[459],[383,8577,8578,8581],{"style":463},[383,8579],{"className":8580,"style":468},[467],[383,8582,8584],{"className":8583},[472,473,474,475],[383,8585,8587],{"className":8586},[440,475],[383,8588,4249],{"className":8589},[440,475]," years, comparable to the age of the universe.",[523,8592,8593,8312,8596,8740,8741,8830],{},[372,8594,8595],{},"Finding a preimage",[383,8597,8599,8631],{"className":8598},[386],[383,8600,8602],{"className":8601},[390],[392,8603,8604],{"xmlns":394},[396,8605,8606,8628],{},[399,8607,8608,8614,8616,8619,8621],{},[402,8609,8610,8612],{},[405,8611,407],{},[405,8613,611],{},[412,8615,1459],{},[405,8617,8618],{},"1.2",[412,8620,8338],{},[402,8622,8623,8625],{},[405,8624,4249],{},[405,8626,8627],{},"77",[419,8629,8630],{"encoding":421},"2^{256} \\approx 1.2 \\times 10^{77}",[383,8632,8634,8681,8699],{"className":8633,"ariaHidden":427},[426],[383,8635,8637,8640,8672,8675,8678],{"className":8636},[431],[383,8638],{"className":8639,"style":460},[435],[383,8641,8643,8646],{"className":8642},[440],[383,8644,407],{"className":8645},[440],[383,8647,8649],{"className":8648},[447],[383,8650,8652],{"className":8651},[451],[383,8653,8655],{"className":8654},[455],[383,8656,8658],{"className":8657,"style":460},[459],[383,8659,8660,8663],{"style":463},[383,8661],{"className":8662,"style":468},[467],[383,8664,8666],{"className":8665},[472,473,474,475],[383,8667,8669],{"className":8668},[440,475],[383,8670,611],{"className":8671},[440,475],[383,8673],{"className":8674,"style":631},[485],[383,8676,1459],{"className":8677},[635],[383,8679],{"className":8680,"style":631},[485],[383,8682,8684,8687,8690,8693,8696],{"className":8683},[431],[383,8685],{"className":8686,"style":8405},[435],[383,8688,8618],{"className":8689},[440],[383,8691],{"className":8692,"style":486},[485],[383,8694,8338],{"className":8695},[490],[383,8697],{"className":8698,"style":486},[485],[383,8700,8702,8705,8708],{"className":8701},[431],[383,8703],{"className":8704,"style":460},[435],[383,8706,417],{"className":8707},[440],[383,8709,8711,8714],{"className":8710},[440],[383,8712,2169],{"className":8713},[440],[383,8715,8717],{"className":8716},[447],[383,8718,8720],{"className":8719},[451],[383,8721,8723],{"className":8722},[455],[383,8724,8726],{"className":8725,"style":460},[459],[383,8727,8728,8731],{"style":463},[383,8729],{"className":8730,"style":468},[467],[383,8732,8734],{"className":8733},[472,473,474,475],[383,8735,8737],{"className":8736},[440,475],[383,8738,8627],{"className":8739},[440,475]," evaluations. At the same rate, that takes about ",[383,8742,8744,8768],{"className":8743},[386],[383,8745,8747],{"className":8746},[390],[392,8748,8749],{"xmlns":394},[396,8750,8751,8765],{},[399,8752,8753,8756,8758],{},[405,8754,8755],{},"4",[412,8757,8338],{},[402,8759,8760,8762],{},[405,8761,4249],{},[405,8763,8764],{},"48",[419,8766,8767],{"encoding":421},"4 \\times 10^{48}",[383,8769,8771,8789],{"className":8770,"ariaHidden":427},[426],[383,8772,8774,8777,8780,8783,8786],{"className":8773},[431],[383,8775],{"className":8776,"style":8405},[435],[383,8778,8755],{"className":8779},[440],[383,8781],{"className":8782,"style":486},[485],[383,8784,8338],{"className":8785},[490],[383,8787],{"className":8788,"style":486},[485],[383,8790,8792,8795,8798],{"className":8791},[431],[383,8793],{"className":8794,"style":460},[435],[383,8796,417],{"className":8797},[440],[383,8799,8801,8804],{"className":8800},[440],[383,8802,2169],{"className":8803},[440],[383,8805,8807],{"className":8806},[447],[383,8808,8810],{"className":8809},[451],[383,8811,8813],{"className":8812},[455],[383,8814,8816],{"className":8815,"style":460},[459],[383,8817,8818,8821],{"style":463},[383,8819],{"className":8820,"style":468},[467],[383,8822,8824],{"className":8823},[472,473,474,475],[383,8825,8827],{"className":8826},[440,475],[383,8828,8764],{"className":8829},[440,475]," years.",[324,8832,8833,8834,8895],{},"For scale, ",[383,8835,8837,8854],{"className":8836},[386],[383,8838,8840],{"className":8839},[390],[392,8841,8842],{"xmlns":394},[396,8843,8844,8852],{},[399,8845,8846],{},[402,8847,8848,8850],{},[405,8849,407],{},[405,8851,611],{},[419,8853,880],{"encoding":421},[383,8855,8857],{"className":8856,"ariaHidden":427},[426],[383,8858,8860,8863],{"className":8859},[431],[383,8861],{"className":8862,"style":460},[435],[383,8864,8866,8869],{"className":8865},[440],[383,8867,407],{"className":8868},[440],[383,8870,8872],{"className":8871},[447],[383,8873,8875],{"className":8874},[451],[383,8876,8878],{"className":8877},[455],[383,8879,8881],{"className":8880,"style":460},[459],[383,8882,8883,8886],{"style":463},[383,8884],{"className":8885,"style":468},[467],[383,8887,8889],{"className":8888},[472,473,474,475],[383,8890,8892],{"className":8891},[440,475],[383,8893,611],{"className":8894},[440,475]," is within a few orders of magnitude of common estimates for the number of atoms in the observable universe.",[2157,8897,8899],{"id":8898},"the-thermodynamic-argument","The thermodynamic argument",[324,8901,8902],{},"Faster computers do not change this picture much, because physics sets a floor on the energy cost of ordinary computation.",[324,8904,8905,8906],{},"In 1961 Rolf Landauer argued that erasing one bit of information must release at least a minimum amount of heat: ",[506,8907,8909],{"className":8908},[509],"[11]",[1869,8911,8913],{"label":8912},"Landauer's bound",[383,8914,8916],{"className":8915},[1433],[383,8917,8919,8960],{"className":8918},[386],[383,8920,8922],{"className":8921},[390],[392,8923,8924],{"xmlns":394,"display":1442},[396,8925,8926,8957],{},[399,8927,8928,8939,8941,8948,8950,8953,8955],{},[1448,8929,8930,8933,8936],{},[563,8931,8932],{},"E",[563,8934,8935],{},"min",[412,8937,8938],{},"⁡",[412,8940,608],{},[1448,8942,8943,8945],{},[563,8944,1412],{},[563,8946,8947],{},"B",[563,8949,3365],{},[563,8951,8952],{},"ln",[412,8954,8938],{},[405,8956,407],{},[419,8958,8959],{"encoding":421},"E_{\\min} = k_B T \\ln 2",[383,8961,8963,9034],{"className":8962,"ariaHidden":427},[426],[383,8964,8966,8969,9025,9028,9031],{"className":8965},[431],[383,8967],{"className":8968,"style":1497},[435],[383,8970,8972,8976],{"className":8971},[440],[383,8973,8932],{"className":8974,"style":8975},[440,581],"margin-right:0.0576em;",[383,8977,8979],{"className":8978},[447],[383,8980,8982,9017],{"className":8981},[451,1511],[383,8983,8985,9014],{"className":8984},[455],[383,8986,8989],{"className":8987,"style":8988},[459],"height:0.3175em;",[383,8990,8992,8995],{"style":8991},"top:-2.55em;margin-left:-0.0576em;margin-right:0.05em;",[383,8993],{"className":8994,"style":468},[467],[383,8996,8998],{"className":8997},[472,473,474,475],[383,8999,9001],{"className":9000},[440,475],[383,9002,9005,9008,9011],{"className":9003},[9004,475],"mop",[383,9006,2952],{"className":9007},[475],[383,9009,2481],{"className":9010},[475],[383,9012,605],{"className":9013},[475],[383,9015,1541],{"className":9016},[1540],[383,9018,9020],{"className":9019},[455],[383,9021,9023],{"className":9022,"style":1548},[459],[383,9024],{},[383,9026],{"className":9027,"style":631},[485],[383,9029,608],{"className":9030},[635],[383,9032],{"className":9033,"style":631},[485],[383,9035,9037,9041,9083,9086,9089,9092,9095],{"className":9036},[431],[383,9038],{"className":9039,"style":9040},[435],"height:0.8444em;vertical-align:-0.15em;",[383,9042,9044,9047],{"className":9043},[440],[383,9045,1412],{"className":9046,"style":1428},[440,581],[383,9048,9050],{"className":9049},[447],[383,9051,9053,9075],{"className":9052},[451,1511],[383,9054,9056,9072],{"className":9055},[455],[383,9057,9059],{"className":9058,"style":2361},[459],[383,9060,9062,9065],{"style":9061},"top:-2.55em;margin-left:-0.0315em;margin-right:0.05em;",[383,9063],{"className":9064,"style":468},[467],[383,9066,9068],{"className":9067},[472,473,474,475],[383,9069,8947],{"className":9070,"style":9071},[440,581,475],"margin-right:0.0502em;",[383,9073,1541],{"className":9074},[1540],[383,9076,9078],{"className":9077},[455],[383,9079,9081],{"className":9080,"style":1548},[459],[383,9082],{},[383,9084,3365],{"className":9085,"style":1504},[440,581],[383,9087],{"className":9088,"style":2016},[485],[383,9090,8952],{"className":9091},[9004],[383,9093],{"className":9094,"style":2016},[485],[383,9096,407],{"className":9097},[440],[324,9099,2852,9100,9274,9275,9303,9304,9366,9367,9539,9540],{},[383,9101,9103,9142],{"className":9102},[386],[383,9104,9106],{"className":9105},[390],[392,9107,9108],{"xmlns":394},[396,9109,9110,9139],{},[399,9111,9112,9118,9120,9123,9125,9136],{},[1448,9113,9114,9116],{},[563,9115,1412],{},[563,9117,8947],{},[412,9119,1459],{},[405,9121,9122],{},"1.38",[412,9124,8338],{},[402,9126,9127,9129],{},[405,9128,4249],{},[399,9130,9131,9133],{},[412,9132,414],{},[405,9134,9135],{},"23",[1454,9137,9138],{}," J\u002FK",[419,9140,9141],{"encoding":421},"k_B \\approx 1.38 \\times 10^{-23}\\ \\text{J\u002FK}",[383,9143,9145,9200,9218],{"className":9144,"ariaHidden":427},[426],[383,9146,9148,9151,9191,9194,9197],{"className":9147},[431],[383,9149],{"className":9150,"style":9040},[435],[383,9152,9154,9157],{"className":9153},[440],[383,9155,1412],{"className":9156,"style":1428},[440,581],[383,9158,9160],{"className":9159},[447],[383,9161,9163,9183],{"className":9162},[451,1511],[383,9164,9166,9180],{"className":9165},[455],[383,9167,9169],{"className":9168,"style":2361},[459],[383,9170,9171,9174],{"style":9061},[383,9172],{"className":9173,"style":468},[467],[383,9175,9177],{"className":9176},[472,473,474,475],[383,9178,8947],{"className":9179,"style":9071},[440,581,475],[383,9181,1541],{"className":9182},[1540],[383,9184,9186],{"className":9185},[455],[383,9187,9189],{"className":9188,"style":1548},[459],[383,9190],{},[383,9192],{"className":9193,"style":631},[485],[383,9195,1459],{"className":9196},[635],[383,9198],{"className":9199,"style":631},[485],[383,9201,9203,9206,9209,9212,9215],{"className":9202},[431],[383,9204],{"className":9205,"style":8405},[435],[383,9207,9122],{"className":9208},[440],[383,9210],{"className":9211,"style":486},[485],[383,9213,8338],{"className":9214},[490],[383,9216],{"className":9217,"style":486},[485],[383,9219,9221,9225,9228,9263,9267],{"className":9220},[431],[383,9222],{"className":9223,"style":9224},[435],"height:1.0641em;vertical-align:-0.25em;",[383,9226,417],{"className":9227},[440],[383,9229,9231,9234],{"className":9230},[440],[383,9232,2169],{"className":9233},[440],[383,9235,9237],{"className":9236},[447],[383,9238,9240],{"className":9239},[451],[383,9241,9243],{"className":9242},[455],[383,9244,9246],{"className":9245,"style":460},[459],[383,9247,9248,9251],{"style":463},[383,9249],{"className":9250,"style":468},[467],[383,9252,9254],{"className":9253},[472,473,474,475],[383,9255,9257,9260],{"className":9256},[440,475],[383,9258,414],{"className":9259},[440,475],[383,9261,9135],{"className":9262},[440,475],[383,9264,9266],{"className":9265},[485]," ",[383,9268,9270],{"className":9269},[440,341],[383,9271,9273],{"className":9272},[440],"J\u002FK"," is Boltzmann's constant, ",[383,9276,9278,9291],{"className":9277},[386],[383,9279,9281],{"className":9280},[390],[392,9282,9283],{"xmlns":394},[396,9284,9285,9289],{},[399,9286,9287],{},[563,9288,3365],{},[419,9290,3365],{"encoding":421},[383,9292,9294],{"className":9293,"ariaHidden":427},[426],[383,9295,9297,9300],{"className":9296},[431],[383,9298],{"className":9299,"style":577},[435],[383,9301,3365],{"className":9302,"style":1504},[440,581]," is the temperature of the computer in kelvin, and ",[383,9305,9307,9330],{"className":9306},[386],[383,9308,9310],{"className":9309},[390],[392,9311,9312],{"xmlns":394},[396,9313,9314,9327],{},[399,9315,9316,9318,9320,9322,9324],{},[563,9317,8952],{},[412,9319,8938],{},[405,9321,407],{},[412,9323,1459],{},[405,9325,9326],{},"0.693",[419,9328,9329],{"encoding":421},"\\ln 2 \\approx 0.693",[383,9331,9333,9357],{"className":9332,"ariaHidden":427},[426],[383,9334,9336,9339,9342,9345,9348,9351,9354],{"className":9335},[431],[383,9337],{"className":9338,"style":1424},[435],[383,9340,8952],{"className":9341},[9004],[383,9343],{"className":9344,"style":2016},[485],[383,9346,407],{"className":9347},[440],[383,9349],{"className":9350,"style":631},[485],[383,9352,1459],{"className":9353},[635],[383,9355],{"className":9356,"style":631},[485],[383,9358,9360,9363],{"className":9359},[431],[383,9361],{"className":9362,"style":500},[435],[383,9364,9326],{"className":9365},[440],". At room temperature (300 K), ",[383,9368,9370,9407],{"className":9369},[386],[383,9371,9373],{"className":9372},[390],[392,9374,9375],{"xmlns":394},[396,9376,9377,9404],{},[399,9378,9379,9387,9389,9392,9394],{},[1448,9380,9381,9383,9385],{},[563,9382,8932],{},[563,9384,8935],{},[412,9386,8938],{},[412,9388,1459],{},[405,9390,9391],{},"2.9",[412,9393,8338],{},[402,9395,9396,9398],{},[405,9397,4249],{},[399,9399,9400,9402],{},[412,9401,414],{},[405,9403,8256],{},[419,9405,9406],{"encoding":421},"E_{\\min} \\approx 2.9 \\times 10^{-21}",[383,9408,9410,9477,9495],{"className":9409,"ariaHidden":427},[426],[383,9411,9413,9416,9468,9471,9474],{"className":9412},[431],[383,9414],{"className":9415,"style":1497},[435],[383,9417,9419,9422],{"className":9418},[440],[383,9420,8932],{"className":9421,"style":8975},[440,581],[383,9423,9425],{"className":9424},[447],[383,9426,9428,9460],{"className":9427},[451,1511],[383,9429,9431,9457],{"className":9430},[455],[383,9432,9434],{"className":9433,"style":8988},[459],[383,9435,9436,9439],{"style":8991},[383,9437],{"className":9438,"style":468},[467],[383,9440,9442],{"className":9441},[472,473,474,475],[383,9443,9445],{"className":9444},[440,475],[383,9446,9448,9451,9454],{"className":9447},[9004,475],[383,9449,2952],{"className":9450},[475],[383,9452,2481],{"className":9453},[475],[383,9455,605],{"className":9456},[475],[383,9458,1541],{"className":9459},[1540],[383,9461,9463],{"className":9462},[455],[383,9464,9466],{"className":9465,"style":1548},[459],[383,9467],{},[383,9469],{"className":9470,"style":631},[485],[383,9472,1459],{"className":9473},[635],[383,9475],{"className":9476,"style":631},[485],[383,9478,9480,9483,9486,9489,9492],{"className":9479},[431],[383,9481],{"className":9482,"style":8405},[435],[383,9484,9391],{"className":9485},[440],[383,9487],{"className":9488,"style":486},[485],[383,9490,8338],{"className":9491},[490],[383,9493],{"className":9494,"style":486},[485],[383,9496,9498,9501,9504],{"className":9497},[431],[383,9499],{"className":9500,"style":460},[435],[383,9502,417],{"className":9503},[440],[383,9505,9507,9510],{"className":9506},[440],[383,9508,2169],{"className":9509},[440],[383,9511,9513],{"className":9512},[447],[383,9514,9516],{"className":9515},[451],[383,9517,9519],{"className":9518},[455],[383,9520,9522],{"className":9521,"style":460},[459],[383,9523,9524,9527],{"style":463},[383,9525],{"className":9526,"style":468},[467],[383,9528,9530],{"className":9529},[472,473,474,475],[383,9531,9533,9536],{"className":9532},[440,475],[383,9534,414],{"className":9535},[440,475],[383,9537,8256],{"className":9538},[440,475]," joules per erased bit. This bound was confirmed experimentally in 2012 using a single microscopic bead in an optical trap. ",[506,9541,9543],{"className":9542},[509],"[12]",[324,9545,9546,9547,9608],{},"A brute-force search has to step through its candidates, and an ordinary counter moving through ",[383,9548,9550,9567],{"className":9549},[386],[383,9551,9553],{"className":9552},[390],[392,9554,9555],{"xmlns":394},[396,9556,9557,9565],{},[399,9558,9559],{},[402,9560,9561,9563],{},[405,9562,407],{},[405,9564,611],{},[419,9566,880],{"encoding":421},[383,9568,9570],{"className":9569,"ariaHidden":427},[426],[383,9571,9573,9576],{"className":9572},[431],[383,9574],{"className":9575,"style":460},[435],[383,9577,9579,9582],{"className":9578},[440],[383,9580,407],{"className":9581},[440],[383,9583,9585],{"className":9584},[447],[383,9586,9588],{"className":9587},[451],[383,9589,9591],{"className":9590},[455],[383,9592,9594],{"className":9593,"style":460},[459],[383,9595,9596,9599],{"style":463},[383,9597],{"className":9598,"style":468},[467],[383,9600,9602],{"className":9601},[472,473,474,475],[383,9603,9605],{"className":9604},[440,475],[383,9606,611],{"className":9607},[440,475]," states must change bits at least that many times. Even under the generous assumption of one bit erased per candidate:",[383,9610,9612],{"className":9611},[1433],[383,9613,9615,9669],{"className":9614},[386],[383,9616,9618],{"className":9617},[390],[392,9619,9620],{"xmlns":394,"display":1442},[396,9621,9622,9666],{},[399,9623,9624,9630,9632,9634,9636,9646,9649,9651,9653,9655,9662,9664],{},[402,9625,9626,9628],{},[405,9627,407],{},[405,9629,611],{},[412,9631,8338],{},[405,9633,9391],{},[412,9635,8338],{},[402,9637,9638,9640],{},[405,9639,4249],{},[399,9641,9642,9644],{},[412,9643,414],{},[405,9645,8256],{},[1454,9647,9648],{}," J",[412,9650,1459],{},[405,9652,4154],{},[412,9654,8338],{},[402,9656,9657,9659],{},[405,9658,4249],{},[405,9660,9661],{},"56",[1454,9663,9648],{},[563,9665,1484],{"mathvariant":976},[419,9667,9668],{"encoding":421},"2^{256} \\times 2.9 \\times 10^{-21}\\ \\text{J} \\approx 3 \\times 10^{56}\\ \\text{J}.",[383,9670,9672,9721,9739,9802,9820],{"className":9671,"ariaHidden":427},[426],[383,9673,9675,9679,9712,9715,9718],{"className":9674},[431],[383,9676],{"className":9677,"style":9678},[435],"height:0.9474em;vertical-align:-0.0833em;",[383,9680,9682,9685],{"className":9681},[440],[383,9683,407],{"className":9684},[440],[383,9686,9688],{"className":9687},[447],[383,9689,9691],{"className":9690},[451],[383,9692,9694],{"className":9693},[455],[383,9695,9698],{"className":9696,"style":9697},[459],"height:0.8641em;",[383,9699,9700,9703],{"style":1992},[383,9701],{"className":9702,"style":468},[467],[383,9704,9706],{"className":9705},[472,473,474,475],[383,9707,9709],{"className":9708},[440,475],[383,9710,611],{"className":9711},[440,475],[383,9713],{"className":9714,"style":486},[485],[383,9716,8338],{"className":9717},[490],[383,9719],{"className":9720,"style":486},[485],[383,9722,9724,9727,9730,9733,9736],{"className":9723},[431],[383,9725],{"className":9726,"style":8405},[435],[383,9728,9391],{"className":9729},[440],[383,9731],{"className":9732,"style":486},[485],[383,9734,8338],{"className":9735},[490],[383,9737],{"className":9738,"style":486},[485],[383,9740,9742,9745,9748,9783,9786,9793,9796,9799],{"className":9741},[431],[383,9743],{"className":9744,"style":9697},[435],[383,9746,417],{"className":9747},[440],[383,9749,9751,9754],{"className":9750},[440],[383,9752,2169],{"className":9753},[440],[383,9755,9757],{"className":9756},[447],[383,9758,9760],{"className":9759},[451],[383,9761,9763],{"className":9762},[455],[383,9764,9766],{"className":9765,"style":9697},[459],[383,9767,9768,9771],{"style":1992},[383,9769],{"className":9770,"style":468},[467],[383,9772,9774],{"className":9773},[472,473,474,475],[383,9775,9777,9780],{"className":9776},[440,475],[383,9778,414],{"className":9779},[440,475],[383,9781,8256],{"className":9782},[440,475],[383,9784,9266],{"className":9785},[485],[383,9787,9789],{"className":9788},[440,341],[383,9790,9792],{"className":9791},[440],"J",[383,9794],{"className":9795,"style":631},[485],[383,9797,1459],{"className":9798},[635],[383,9800],{"className":9801,"style":631},[485],[383,9803,9805,9808,9811,9814,9817],{"className":9804},[431],[383,9806],{"className":9807,"style":8405},[435],[383,9809,4154],{"className":9810},[440],[383,9812],{"className":9813,"style":486},[485],[383,9815,8338],{"className":9816},[490],[383,9818],{"className":9819,"style":486},[485],[383,9821,9823,9826,9829,9861,9864,9870],{"className":9822},[431],[383,9824],{"className":9825,"style":9697},[435],[383,9827,417],{"className":9828},[440],[383,9830,9832,9835],{"className":9831},[440],[383,9833,2169],{"className":9834},[440],[383,9836,9838],{"className":9837},[447],[383,9839,9841],{"className":9840},[451],[383,9842,9844],{"className":9843},[455],[383,9845,9847],{"className":9846,"style":9697},[459],[383,9848,9849,9852],{"style":1992},[383,9850],{"className":9851,"style":468},[467],[383,9853,9855],{"className":9854},[472,473,474,475],[383,9856,9858],{"className":9857},[440,475],[383,9859,9661],{"className":9860},[440,475],[383,9862,9266],{"className":9863},[485],[383,9865,9867],{"className":9866},[440,341],[383,9868,9792],{"className":9869},[440],[383,9871,1484],{"className":9872},[440],[324,9874,9875,9876,9965,9966,10032,10033,10036],{},"The Sun radiates about ",[383,9877,9879,9903],{"className":9878},[386],[383,9880,9882],{"className":9881},[390],[392,9883,9884],{"xmlns":394},[396,9885,9886,9900],{},[399,9887,9888,9891,9893],{},[405,9889,9890],{},"3.8",[412,9892,8338],{},[402,9894,9895,9897],{},[405,9896,4249],{},[405,9898,9899],{},"26",[419,9901,9902],{"encoding":421},"3.8 \\times 10^{26}",[383,9904,9906,9924],{"className":9905,"ariaHidden":427},[426],[383,9907,9909,9912,9915,9918,9921],{"className":9908},[431],[383,9910],{"className":9911,"style":8405},[435],[383,9913,9890],{"className":9914},[440],[383,9916],{"className":9917,"style":486},[485],[383,9919,8338],{"className":9920},[490],[383,9922],{"className":9923,"style":486},[485],[383,9925,9927,9930,9933],{"className":9926},[431],[383,9928],{"className":9929,"style":460},[435],[383,9931,417],{"className":9932},[440],[383,9934,9936,9939],{"className":9935},[440],[383,9937,2169],{"className":9938},[440],[383,9940,9942],{"className":9941},[447],[383,9943,9945],{"className":9944},[451],[383,9946,9948],{"className":9947},[455],[383,9949,9951],{"className":9950,"style":460},[459],[383,9952,9953,9956],{"style":463},[383,9954],{"className":9955,"style":468},[467],[383,9957,9959],{"className":9958},[472,473,474,475],[383,9960,9962],{"className":9961},[440,475],[383,9963,9899],{"className":9964},[440,475]," watts. Over its entire ten-billion-year life, that is roughly ",[383,9967,9969,9988],{"className":9968},[386],[383,9970,9972],{"className":9971},[390],[392,9973,9974],{"xmlns":394},[396,9975,9976,9985],{},[399,9977,9978],{},[402,9979,9980,9982],{},[405,9981,4249],{},[405,9983,9984],{},"44",[419,9986,9987],{"encoding":421},"10^{44}",[383,9989,9991],{"className":9990,"ariaHidden":427},[426],[383,9992,9994,9997,10000],{"className":9993},[431],[383,9995],{"className":9996,"style":460},[435],[383,9998,417],{"className":9999},[440],[383,10001,10003,10006],{"className":10002},[440],[383,10004,2169],{"className":10005},[440],[383,10007,10009],{"className":10008},[447],[383,10010,10012],{"className":10011},[451],[383,10013,10015],{"className":10014},[455],[383,10016,10018],{"className":10017,"style":460},[459],[383,10019,10020,10023],{"style":463},[383,10021],{"className":10022,"style":468},[467],[383,10024,10026],{"className":10025},[472,473,474,475],[383,10027,10029],{"className":10028},[440,475],[383,10030,9984],{"className":10031},[440,475]," joules. ",[372,10034,10035],{},"A brute-force preimage search on conventional hardware would need a few trillion times the Sun's total lifetime output",", and that is before counting the thousands of operations inside each actual SHA-256 evaluation. Running the computer at the 3 K temperature of deep space lowers the figure by a factor of 100, which does not change the conclusion.",[324,10038,10039],{},"Two honest caveats belong here:",[520,10041,10042,10057],{},[523,10043,10044,10047,10048,10052,10053,10056],{},[372,10045,10046],{},"The argument assumes irreversible computing."," Landauer's bound applies to erasing information. In principle, logically reversible computers can avoid it. Other physical limits still apply. The Margolus–Levitin theorem caps how many operations per second a system with a given energy can perform, and Seth Lloyd used such limits to estimate the \"ultimate laptop\". ",[506,10049,10051],{"className":10050},[509],"[13,14]"," Those ultimate limits are far looser than anything engineering can approach, so the thermodynamic argument is best read as a ",[372,10054,10055],{},"strong sanity check, not a proof"," of impossibility.",[523,10058,10059,10185,10186,10247,10248,10313],{},[372,10060,10061,10062,10123,10124,1484],{},"The argument protects ",[383,10063,10065,10082],{"className":10064},[386],[383,10066,10068],{"className":10067},[390],[392,10069,10070],{"xmlns":394},[396,10071,10072,10080],{},[399,10073,10074],{},[402,10075,10076,10078],{},[405,10077,407],{},[405,10079,611],{},[419,10081,880],{"encoding":421},[383,10083,10085],{"className":10084,"ariaHidden":427},[426],[383,10086,10088,10091],{"className":10087},[431],[383,10089],{"className":10090,"style":460},[435],[383,10092,10094,10097],{"className":10093},[440],[383,10095,407],{"className":10096},[440],[383,10098,10100],{"className":10099},[447],[383,10101,10103],{"className":10102},[451],[383,10104,10106],{"className":10105},[455],[383,10107,10109],{"className":10108,"style":460},[459],[383,10110,10111,10114],{"style":463},[383,10112],{"className":10113,"style":468},[467],[383,10115,10117],{"className":10116},[472,473,474,475],[383,10118,10120],{"className":10119},[440,475],[383,10121,611],{"className":10122},[440,475],", not ",[383,10125,10127,10144],{"className":10126},[386],[383,10128,10130],{"className":10129},[390],[392,10131,10132],{"xmlns":394},[396,10133,10134,10142],{},[399,10135,10136],{},[402,10137,10138,10140],{},[405,10139,407],{},[405,10141,1822],{},[419,10143,1825],{"encoding":421},[383,10145,10147],{"className":10146,"ariaHidden":427},[426],[383,10148,10150,10153],{"className":10149},[431],[383,10151],{"className":10152,"style":460},[435],[383,10154,10156,10159],{"className":10155},[440],[383,10157,407],{"className":10158},[440],[383,10160,10162],{"className":10161},[447],[383,10163,10165],{"className":10164},[451],[383,10166,10168],{"className":10167},[455],[383,10169,10171],{"className":10170,"style":460},[459],[383,10172,10173,10176],{"style":463},[383,10174],{"className":10175,"style":468},[467],[383,10177,10179],{"className":10178},[472,473,474,475],[383,10180,10182],{"className":10181},[440,475],[383,10183,1822],{"className":10184},[440,475]," Repeating the Landauer calculation for ",[383,10187,10189,10206],{"className":10188},[386],[383,10190,10192],{"className":10191},[390],[392,10193,10194],{"xmlns":394},[396,10195,10196,10204],{},[399,10197,10198],{},[402,10199,10200,10202],{},[405,10201,407],{},[405,10203,1822],{},[419,10205,1825],{"encoding":421},[383,10207,10209],{"className":10208,"ariaHidden":427},[426],[383,10210,10212,10215],{"className":10211},[431],[383,10213],{"className":10214,"style":460},[435],[383,10216,10218,10221],{"className":10217},[440],[383,10219,407],{"className":10220},[440],[383,10222,10224],{"className":10223},[447],[383,10225,10227],{"className":10226},[451],[383,10228,10230],{"className":10229},[455],[383,10231,10233],{"className":10232,"style":460},[459],[383,10234,10235,10238],{"style":463},[383,10236],{"className":10237,"style":468},[467],[383,10239,10241],{"className":10240},[472,473,474,475],[383,10242,10244],{"className":10243},[440,475],[383,10245,1822],{"className":10246},[440,475]," steps gives roughly ",[383,10249,10251,10269],{"className":10250},[386],[383,10252,10254],{"className":10253},[390],[392,10255,10256],{"xmlns":394},[396,10257,10258,10266],{},[399,10259,10260],{},[402,10261,10262,10264],{},[405,10263,4249],{},[405,10265,4133],{},[419,10267,10268],{"encoding":421},"10^{18}",[383,10270,10272],{"className":10271,"ariaHidden":427},[426],[383,10273,10275,10278,10281],{"className":10274},[431],[383,10276],{"className":10277,"style":460},[435],[383,10279,417],{"className":10280},[440],[383,10282,10284,10287],{"className":10283},[440],[383,10285,2169],{"className":10286},[440],[383,10288,10290],{"className":10289},[447],[383,10291,10293],{"className":10292},[451],[383,10294,10296],{"className":10295},[455],[383,10297,10299],{"className":10298,"style":460},[459],[383,10300,10301,10304],{"style":463},[383,10302],{"className":10303,"style":468},[467],[383,10305,10307],{"className":10306},[472,473,474,475],[383,10308,10310],{"className":10309},[440,475],[383,10311,4133],{"className":10312},[440,475]," joules, which is small by national energy standards. What protects 128-bit security is time and the real cost of hardware, not thermodynamics. That is still an enormous margin, but it is a different kind of margin.",[2157,10315,10317],{"id":10316},"the-small-input-exception","The small-input exception",[324,10319,10320,10321,10382],{},"There is one situation in which SHA-256 is \"reversed\" routinely: when the input comes from a small, guessable set. If the input is a common password, a date, or a word in the dictionary, an attacker does not need to search ",[383,10322,10324,10341],{"className":10323},[386],[383,10325,10327],{"className":10326},[390],[392,10328,10329],{"xmlns":394},[396,10330,10331,10339],{},[399,10332,10333],{},[402,10334,10335,10337],{},[405,10336,407],{},[405,10338,611],{},[419,10340,880],{"encoding":421},[383,10342,10344],{"className":10343,"ariaHidden":427},[426],[383,10345,10347,10350],{"className":10346},[431],[383,10348],{"className":10349,"style":460},[435],[383,10351,10353,10356],{"className":10352},[440],[383,10354,407],{"className":10355},[440],[383,10357,10359],{"className":10358},[447],[383,10360,10362],{"className":10361},[451],[383,10363,10365],{"className":10364},[455],[383,10366,10368],{"className":10367,"style":460},[459],[383,10369,10370,10373],{"style":463},[383,10371],{"className":10372,"style":468},[467],[383,10374,10376],{"className":10375},[472,473,474,475],[383,10377,10379],{"className":10378},[440,475],[383,10380,611],{"className":10381},[440,475]," possibilities. They simply hash every likely candidate and compare. Precomputed lookup tables for common inputs make this even faster.",[324,10384,10385,10386],{},"This does not break SHA-256. It exploits the fact that the input had very little uncertainty to begin with. ",[372,10387,10388],{},"A hash can only be as hard to reverse as its input is hard to guess.",[362,10390,10392],{"id":10391},"what-quantum-computers-change","What Quantum Computers Change",[324,10394,10395,10396,10399],{},"Quantum computers are often described as a threat to all cryptography. For hash functions the effect is real but limited. (See ",[514,10397,10398],{"href":304},"Grover's algorithm"," for how the relevant algorithm works.)",[324,10401,10402,10404,10405,10433,10434,10592,10593,8135,10653,10657,10658,10719],{},[372,10403,8144],{}," Lov Grover's search algorithm can find a preimage of an ",[383,10406,10408,10421],{"className":10407},[386],[383,10409,10411],{"className":10410},[390],[392,10412,10413],{"xmlns":394},[396,10414,10415,10419],{},[399,10416,10417],{},[563,10418,605],{},[419,10420,605],{"encoding":421},[383,10422,10424],{"className":10423,"ariaHidden":427},[426],[383,10425,10427,10430],{"className":10426},[431],[383,10428],{"className":10429,"style":624},[435],[383,10431,605],{"className":10432},[440,581],"-bit hash with about ",[383,10435,10437,10472],{"className":10436},[386],[383,10438,10440],{"className":10439},[390],[392,10441,10442],{"xmlns":394},[396,10443,10444,10469],{},[399,10445,10446,10455,10457],{},[3736,10447,10448],{"scriptlevel":2169,"displaystyle":733},[1461,10449,10450,10453],{},[563,10451,10452],{},"π",[405,10454,8755],{},[1454,10456,2505],{},[402,10458,10459,10461],{},[405,10460,407],{},[399,10462,10463,10465,10467],{},[563,10464,605],{},[563,10466,1733],{"mathvariant":976},[405,10468,407],{},[419,10470,10471],{"encoding":421},"\\tfrac{\\pi}{4}\\,2^{n\u002F2}",[383,10473,10475],{"className":10474,"ariaHidden":427},[426],[383,10476,10478,10482,10554,10557],{"className":10477},[431],[383,10479],{"className":10480,"style":10481},[435],"height:1.233em;vertical-align:-0.345em;",[383,10483,10485,10488,10551],{"className":10484},[440],[383,10486],{"className":10487},[763,1573],[383,10489,10491],{"className":10490},[1461],[383,10492,10494,10542],{"className":10493},[451,1511],[383,10495,10497,10539],{"className":10496},[455],[383,10498,10501,10516,10524],{"className":10499,"style":10500},[459],"height:0.6954em;",[383,10502,10504,10507],{"style":10503},"top:-2.655em;",[383,10505],{"className":10506,"style":1593},[467],[383,10508,10510],{"className":10509},[472,473,474,475],[383,10511,10513],{"className":10512},[440,475],[383,10514,8755],{"className":10515},[440,475],[383,10517,10518,10521],{"style":1639},[383,10519],{"className":10520,"style":1593},[467],[383,10522],{"className":10523,"style":1647},[1646],[383,10525,10527,10530],{"style":10526},"top:-3.394em;",[383,10528],{"className":10529,"style":1593},[467],[383,10531,10533],{"className":10532},[472,473,474,475],[383,10534,10536],{"className":10535},[440,475],[383,10537,10452],{"className":10538,"style":685},[440,581,475],[383,10540,1541],{"className":10541},[1540],[383,10543,10545],{"className":10544},[455],[383,10546,10549],{"className":10547,"style":10548},[459],"height:0.345em;",[383,10550],{},[383,10552],{"className":10553},[770,1573],[383,10555],{"className":10556,"style":2016},[485],[383,10558,10560,10563],{"className":10559},[440],[383,10561,407],{"className":10562},[440],[383,10564,10566],{"className":10565},[447],[383,10567,10569],{"className":10568},[451],[383,10570,10572],{"className":10571},[455],[383,10573,10575],{"className":10574,"style":1766},[459],[383,10576,10577,10580],{"style":463},[383,10578],{"className":10579,"style":468},[467],[383,10581,10583],{"className":10582},[472,473,474,475],[383,10584,10586,10589],{"className":10585},[440,475],[383,10587,605],{"className":10588},[440,581,475],[383,10590,1802],{"className":10591},[440,475]," evaluations of the hash on a quantum computer, instead of ",[383,10594,10596,10614],{"className":10595},[386],[383,10597,10599],{"className":10598},[390],[392,10600,10601],{"xmlns":394},[396,10602,10603,10611],{},[399,10604,10605],{},[402,10606,10607,10609],{},[405,10608,407],{},[563,10610,605],{},[419,10612,10613],{"encoding":421},"2^n",[383,10615,10617],{"className":10616,"ariaHidden":427},[426],[383,10618,10620,10624],{"className":10619},[431],[383,10621],{"className":10622,"style":10623},[435],"height:0.6644em;",[383,10625,10627,10630],{"className":10626},[440],[383,10628,407],{"className":10629},[440],[383,10631,10633],{"className":10632},[447],[383,10634,10636],{"className":10635},[451],[383,10637,10639],{"className":10638},[455],[383,10640,10642],{"className":10641,"style":10623},[459],[383,10643,10644,10647],{"style":463},[383,10645],{"className":10646,"style":468},[467],[383,10648,10650],{"className":10649},[472,473,474,475],[383,10651,605],{"className":10652},[440,581,475],[506,10654,10656],{"className":10655},[509],"[15]"," For SHA-256 that is about ",[383,10659,10661,10678],{"className":10660},[386],[383,10662,10664],{"className":10663},[390],[392,10665,10666],{"xmlns":394},[396,10667,10668,10676],{},[399,10669,10670],{},[402,10671,10672,10674],{},[405,10673,407],{},[405,10675,1822],{},[419,10677,1825],{"encoding":421},[383,10679,10681],{"className":10680,"ariaHidden":427},[426],[383,10682,10684,10687],{"className":10683},[431],[383,10685],{"className":10686,"style":460},[435],[383,10688,10690,10693],{"className":10689},[440],[383,10691,407],{"className":10692},[440],[383,10694,10696],{"className":10695},[447],[383,10697,10699],{"className":10698},[451],[383,10700,10702],{"className":10701},[455],[383,10703,10705],{"className":10704,"style":460},[459],[383,10706,10707,10710],{"style":463},[383,10708],{"className":10709,"style":468},[467],[383,10711,10713],{"className":10712},[472,473,474,475],[383,10714,10716],{"className":10715},[440,475],[383,10717,1822],{"className":10718},[440,475]," steps. This speedup is provably the best possible for generic search. However:",[3238,10721,10722,10873],{},[523,10723,10724,10725,10753,10754,10123,10845,1484],{},"Grover's steps must run largely one after another. Splitting the work across ",[383,10726,10728,10741],{"className":10727},[386],[383,10729,10731],{"className":10730},[390],[392,10732,10733],{"xmlns":394},[396,10734,10735,10739],{},[399,10736,10737],{},[563,10738,1452],{},[419,10740,1452],{"encoding":421},[383,10742,10744],{"className":10743,"ariaHidden":427},[426],[383,10745,10747,10750],{"className":10746},[431],[383,10748],{"className":10749,"style":577},[435],[383,10751,1452],{"className":10752,"style":1504},[440,581]," quantum machines only reduces the time by a factor of ",[383,10755,10757,10774],{"className":10756},[386],[383,10758,10760],{"className":10759},[390],[392,10761,10762],{"xmlns":394},[396,10763,10764,10771],{},[399,10765,10766],{},[10767,10768,10769],"msqrt",{},[563,10770,1452],{},[419,10772,10773],{"encoding":421},"\\sqrt P",[383,10775,10777],{"className":10776,"ariaHidden":427},[426],[383,10778,10780,10784],{"className":10779},[431],[383,10781],{"className":10782,"style":10783},[435],"height:1.04em;vertical-align:-0.1133em;",[383,10785,10788],{"className":10786},[440,10787],"sqrt",[383,10789,10791,10836],{"className":10790},[451,1511],[383,10792,10794,10833],{"className":10793},[455],[383,10795,10798,10810],{"className":10796,"style":10797},[459],"height:0.9267em;",[383,10799,10803,10806],{"className":10800,"style":10802},[10801],"svg-align","top:-3em;",[383,10804],{"className":10805,"style":1593},[467],[383,10807,1452],{"className":10808,"style":10809},[440,581],"margin-right:0.1389em;padding-left:0.833em;",[383,10811,10813,10816],{"style":10812},"top:-2.8867em;",[383,10814],{"className":10815,"style":1593},[467],[383,10817,10821],{"className":10818,"style":10820},[10819],"hide-tail","min-width:0.853em;height:1.08em;",[10822,10823,10829],"svg",{"xmlns":10824,"width":10825,"height":10826,"viewBox":10827,"preserveAspectRatio":10828},"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg","400em","1.08em","0 0 400000 1080","xMinYMin slice",[10830,10831],"path",{"d":10832},"M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z",[383,10834,1541],{"className":10835},[1540],[383,10837,10839],{"className":10838},[455],[383,10840,10843],{"className":10841,"style":10842},[459],"height:0.1133em;",[383,10844],{},[383,10846,10848,10861],{"className":10847},[386],[383,10849,10851],{"className":10850},[390],[392,10852,10853],{"xmlns":394},[396,10854,10855,10859],{},[399,10856,10857],{},[563,10858,1452],{},[419,10860,1452],{"encoding":421},[383,10862,10864],{"className":10863,"ariaHidden":427},[426],[383,10865,10867,10870],{"className":10866},[431],[383,10868],{"className":10869,"style":577},[435],[383,10871,1452],{"className":10872,"style":1504},[440,581],[523,10874,10875,10876,10939,10940,8135,11001],{},"Each step requires running a full, reversible SHA-256 circuit on error-corrected qubits. A 2016 cost estimate by Amy and colleagues put a Grover preimage attack on SHA-256 at around ",[383,10877,10879,10898],{"className":10878},[386],[383,10880,10882],{"className":10881},[390],[392,10883,10884],{"xmlns":394},[396,10885,10886,10895],{},[399,10887,10888],{},[402,10889,10890,10892],{},[405,10891,407],{},[405,10893,10894],{},"166",[419,10896,10897],{"encoding":421},"2^{166}",[383,10899,10901],{"className":10900,"ariaHidden":427},[426],[383,10902,10904,10907],{"className":10903},[431],[383,10905],{"className":10906,"style":460},[435],[383,10908,10910,10913],{"className":10909},[440],[383,10911,407],{"className":10912},[440],[383,10914,10916],{"className":10915},[447],[383,10917,10919],{"className":10918},[451],[383,10920,10922],{"className":10921},[455],[383,10923,10925],{"className":10924,"style":460},[459],[383,10926,10927,10930],{"style":463},[383,10928],{"className":10929,"style":468},[467],[383,10931,10933],{"className":10932},[472,473,474,475],[383,10934,10936],{"className":10935},[440,475],[383,10937,10894],{"className":10938},[440,475]," logical-qubit-cycles once error correction is included, far above the naive ",[383,10941,10943,10960],{"className":10942},[386],[383,10944,10946],{"className":10945},[390],[392,10947,10948],{"xmlns":394},[396,10949,10950,10958],{},[399,10951,10952],{},[402,10953,10954,10956],{},[405,10955,407],{},[405,10957,1822],{},[419,10959,1825],{"encoding":421},[383,10961,10963],{"className":10962,"ariaHidden":427},[426],[383,10964,10966,10969],{"className":10965},[431],[383,10967],{"className":10968,"style":460},[435],[383,10970,10972,10975],{"className":10971},[440],[383,10973,407],{"className":10974},[440],[383,10976,10978],{"className":10977},[447],[383,10979,10981],{"className":10980},[451],[383,10982,10984],{"className":10983},[455],[383,10985,10987],{"className":10986,"style":460},[459],[383,10988,10989,10992],{"style":463},[383,10990],{"className":10991,"style":468},[467],[383,10993,10995],{"className":10994},[472,473,474,475],[383,10996,10998],{"className":10997},[440,475],[383,10999,1822],{"className":11000},[440,475],[506,11002,11004],{"className":11003},[509],"[19]",[324,11006,11007,11009,11010,11082,11083,11146,11147,11151,11152,11223,11224],{},[372,11008,7991],{}," The Brassard–Høyer–Tapp algorithm reduces collision search to about ",[383,11011,11013,11037],{"className":11012},[386],[383,11014,11016],{"className":11015},[390],[392,11017,11018],{"xmlns":394},[396,11019,11020,11034],{},[399,11021,11022],{},[402,11023,11024,11026],{},[405,11025,407],{},[399,11027,11028,11030,11032],{},[563,11029,605],{},[563,11031,1733],{"mathvariant":976},[405,11033,4154],{},[419,11035,11036],{"encoding":421},"2^{n\u002F3}",[383,11038,11040],{"className":11039,"ariaHidden":427},[426],[383,11041,11043,11046],{"className":11042},[431],[383,11044],{"className":11045,"style":1766},[435],[383,11047,11049,11052],{"className":11048},[440],[383,11050,407],{"className":11051},[440],[383,11053,11055],{"className":11054},[447],[383,11056,11058],{"className":11057},[451],[383,11059,11061],{"className":11060},[455],[383,11062,11064],{"className":11063,"style":1766},[459],[383,11065,11066,11069],{"style":463},[383,11067],{"className":11068,"style":468},[467],[383,11070,11072],{"className":11071},[472,473,474,475],[383,11073,11075,11078],{"className":11074},[440,475],[383,11076,605],{"className":11077},[440,581,475],[383,11079,11081],{"className":11080},[440,475],"\u002F3"," quantum queries, around ",[383,11084,11086,11105],{"className":11085},[386],[383,11087,11089],{"className":11088},[390],[392,11090,11091],{"xmlns":394},[396,11092,11093,11102],{},[399,11094,11095],{},[402,11096,11097,11099],{},[405,11098,407],{},[405,11100,11101],{},"85",[419,11103,11104],{"encoding":421},"2^{85}",[383,11106,11108],{"className":11107,"ariaHidden":427},[426],[383,11109,11111,11114],{"className":11110},[431],[383,11112],{"className":11113,"style":460},[435],[383,11115,11117,11120],{"className":11116},[440],[383,11118,407],{"className":11119},[440],[383,11121,11123],{"className":11122},[447],[383,11124,11126],{"className":11125},[451],[383,11127,11129],{"className":11128},[455],[383,11130,11132],{"className":11131,"style":460},[459],[383,11133,11134,11137],{"style":463},[383,11135],{"className":11136,"style":468},[467],[383,11138,11140],{"className":11139},[472,473,474,475],[383,11141,11143],{"className":11142},[440,475],[383,11144,11101],{"className":11145},[440,475]," for SHA-256, but only by storing a similar number of values in quantum memory. ",[506,11148,11150],{"className":11149},[509],"[16]"," Daniel Bernstein argued that, once hardware cost is counted, this is not better than well-engineered classical parallel collision search, which already runs at about ",[383,11153,11155,11179],{"className":11154},[386],[383,11156,11158],{"className":11157},[390],[392,11159,11160],{"xmlns":394},[396,11161,11162,11176],{},[399,11163,11164],{},[402,11165,11166,11168],{},[405,11167,407],{},[399,11169,11170,11172,11174],{},[563,11171,605],{},[563,11173,1733],{"mathvariant":976},[405,11175,407],{},[419,11177,11178],{"encoding":421},"2^{n\u002F2}",[383,11180,11182],{"className":11181,"ariaHidden":427},[426],[383,11183,11185,11188],{"className":11184},[431],[383,11186],{"className":11187,"style":1766},[435],[383,11189,11191,11194],{"className":11190},[440],[383,11192,407],{"className":11193},[440],[383,11195,11197],{"className":11196},[447],[383,11198,11200],{"className":11199},[451],[383,11201,11203],{"className":11202},[455],[383,11204,11206],{"className":11205,"style":1766},[459],[383,11207,11208,11211],{"style":463},[383,11209],{"className":11210,"style":468},[467],[383,11212,11214],{"className":11213},[472,473,474,475],[383,11215,11217,11220],{"className":11216},[440,475],[383,11218,605],{"className":11219},[440,581,475],[383,11221,1802],{"className":11222},[440,475]," total work spread across many cheap machines. ",[506,11225,11227],{"className":11226},[509],"[17,18]",[324,11229,11230,11231,11235],{},"NIST's assessment is that large quantum computers would break today's public-key systems such as RSA and elliptic curves, while for hash functions like SHA-2 a \"larger output\" is sufficient. ",[506,11232,11234],{"className":11233},[509],"[20]"," In practice, SHA-256's 128-bit post-quantum preimage margin is widely regarded as adequate, and SHA-384 or SHA-512 are available where extra margin is wanted.",[324,11237,11238,11241,11242,11245],{},[372,11239,11240],{},"Established fact:"," Grover's algorithm gives a quadratic speedup for preimage search, and no quantum algorithm can do better for generic search.\n",[372,11243,11244],{},"Current engineering reality:"," no existing quantum computer can run even a small fraction of a SHA-256 circuit with error correction.",[362,11247,11249],{"id":11248},"where-sha-256-is-used","Where SHA-256 Is Used",[2157,11251,300],{"id":11252},"bitcoin",[324,11254,11255,11256,11260,11261,11264],{},"Bitcoin uses SHA-256 in two central places. ",[506,11257,11259],{"className":11258},[509],"[21]"," Transactions are hashed together into a tree, so that changing any transaction changes the fingerprint of the entire block. And ",[372,11262,11263],{},"mining"," is a deliberate preimage-style search: miners repeatedly change a small field in a block header and hash it (twice) until the output happens to fall below a target number, meaning it begins with a long run of zeros.",[324,11266,11267,11268,11270],{},"Because no shortcut exists, the only way to find such a hash is to try enormous numbers of candidates. That is exactly the point: the cost of the search is the \"proof of work\" that makes rewriting history expensive. Notice that miners are not reversing SHA-256. They are solving a much easier problem, finding ",[535,11269,7952],{}," input whose output lands in a large target range, and the difficulty is tuned so that the whole network succeeds about once every ten minutes.",[2157,11272,11274],{"id":11273},"passwords-a-common-mistake","Passwords: a common mistake",[324,11276,11277,11278,11281],{},"SHA-256 is often misused for storing passwords. The problem is that SHA-256 is designed to be ",[535,11279,11280],{},"fast",". That is ideal for checking file integrity and terrible for passwords, because it lets an attacker test billions of password guesses per second on ordinary graphics hardware.",[324,11283,11284,11285,11289,11290,11294,11295],{},"The Open Worldwide Application Security Project (OWASP) states plainly that fast hashes such as SHA-256 are unsuitable for password storage. ",[506,11286,11288],{"className":11287},[509],"[22]"," Password storage should use functions designed to be slow and memory-hungry, with a unique random \"salt\" for each user: Argon2id is the current first recommendation, followed by scrypt and bcrypt, with PBKDF2 where specific compliance rules require it. ",[506,11291,11293],{"className":11292},[509],"[22,23]"," NIST's digital identity guidelines give similar advice. ",[506,11296,11298],{"className":11297},[509],"[24]",[2157,11300,11302],{"id":11301},"everywhere-else","Everywhere else",[324,11304,11305],{},"SHA-256 also underpins software update verification, digital signatures (which sign a hash of the document rather than the document itself), secure web connections, version control systems, and file deduplication. In each case it provides the same guarantee: if two fingerprints match, the data almost certainly matches too.",[362,11307,11309],{"id":11308},"limitations-and-open-questions","Limitations and Open Questions",[3238,11311,11312,11318,11324,11330,11336],{},[523,11313,11314,11317],{},[372,11315,11316],{},"Security is not proven."," SHA-256's one-wayness and collision resistance rest on decades of failed attacks, not on a mathematical proof.",[523,11319,11320,11323],{},[372,11321,11322],{},"Structural quirks exist."," Length extension is a real property of the Merkle–Damgård design. It is harmless when SHA-256 is used correctly (for example inside HMAC) and harmful when it is not.",[523,11325,11326,11329],{},[372,11327,11328],{},"Attacks improve unevenly."," Collision attacks stalled at 31 steps from 2013 until 2026, then jumped to 37. The full 64 rounds remain far out of reach, but progress can come in bursts, so monitoring continues.",[523,11331,11332,11335],{},[372,11333,11334],{},"Inputs matter."," No hash protects a guessable input.",[523,11337,11338,11341],{},[372,11339,11340],{},"Quantum effects are bounded but not zero."," A mature, error-corrected quantum computer would halve the security exponent for preimages. That remains an engineering prospect, not a present capability.",[362,11343,11345],{"id":11344},"the-bet-inside-every-hash","The Bet Inside Every Hash",[324,11347,11348],{},"SHA-256 is a piece of pure mathematics that behaves, for all practical purposes, like a physical law: data goes in, a fingerprint comes out, and no one can walk the path backwards.",[324,11350,11351,11352,11413,11414,11475,11476,11537],{},"The algorithm is public and precisely specified. The best attacks reach only reduced versions; generic attacks cost ",[383,11353,11355,11372],{"className":11354},[386],[383,11356,11358],{"className":11357},[390],[392,11359,11360],{"xmlns":394},[396,11361,11362,11370],{},[399,11363,11364],{},[402,11365,11366,11368],{},[405,11367,407],{},[405,11369,1822],{},[419,11371,1825],{"encoding":421},[383,11373,11375],{"className":11374,"ariaHidden":427},[426],[383,11376,11378,11381],{"className":11377},[431],[383,11379],{"className":11380,"style":460},[435],[383,11382,11384,11387],{"className":11383},[440],[383,11385,407],{"className":11386},[440],[383,11388,11390],{"className":11389},[447],[383,11391,11393],{"className":11392},[451],[383,11394,11396],{"className":11395},[455],[383,11397,11399],{"className":11398,"style":460},[459],[383,11400,11401,11404],{"style":463},[383,11402],{"className":11403,"style":468},[467],[383,11405,11407],{"className":11406},[472,473,474,475],[383,11408,11410],{"className":11409},[440,475],[383,11411,1822],{"className":11412},[440,475]," for collisions and ",[383,11415,11417,11434],{"className":11416},[386],[383,11418,11420],{"className":11419},[390],[392,11421,11422],{"xmlns":394},[396,11423,11424,11432],{},[399,11425,11426],{},[402,11427,11428,11430],{},[405,11429,407],{},[405,11431,611],{},[419,11433,880],{"encoding":421},[383,11435,11437],{"className":11436,"ariaHidden":427},[426],[383,11438,11440,11443],{"className":11439},[431],[383,11441],{"className":11442,"style":460},[435],[383,11444,11446,11449],{"className":11445},[440],[383,11447,407],{"className":11448},[440],[383,11450,11452],{"className":11451},[447],[383,11453,11455],{"className":11454},[451],[383,11456,11458],{"className":11457},[455],[383,11459,11461],{"className":11460,"style":460},[459],[383,11462,11463,11466],{"style":463},[383,11464],{"className":11465,"style":468},[467],[383,11467,11469],{"className":11468},[472,473,474,475],[383,11470,11472],{"className":11471},[440,475],[383,11473,611],{"className":11474},[440,475]," for preimages; and ordinary computation at the ",[383,11477,11479,11496],{"className":11478},[386],[383,11480,11482],{"className":11481},[390],[392,11483,11484],{"xmlns":394},[396,11485,11486,11494],{},[399,11487,11488],{},[402,11489,11490,11492],{},[405,11491,407],{},[405,11493,611],{},[419,11495,880],{"encoding":421},[383,11497,11499],{"className":11498,"ariaHidden":427},[426],[383,11500,11502,11505],{"className":11501},[431],[383,11503],{"className":11504,"style":460},[435],[383,11506,11508,11511],{"className":11507},[440],[383,11509,407],{"className":11510},[440],[383,11512,11514],{"className":11513},[447],[383,11515,11517],{"className":11516},[451],[383,11518,11520],{"className":11519},[455],[383,11521,11523],{"className":11522,"style":460},[459],[383,11524,11525,11528],{"style":463},[383,11526],{"className":11527,"style":468},[467],[383,11529,11531],{"className":11530},[472,473,474,475],[383,11532,11534],{"className":11533},[440,475],[383,11535,611],{"className":11536},[440,475]," scale would demand far more energy than the Sun will ever produce.",[324,11539,11540],{},"A mathematical shortcut could still be discovered. Nothing proves that it cannot, and the histories of MD5 and SHA-1 show how suddenly confidence in a hash function can change. At a deeper level, computer science has not proved that true one-way functions exist at all. Every use of SHA-256, from a password check to a Bitcoin block, quietly bets that they do.",[324,11542,11543,11544,11546,11547,5666,11550,1484],{},"For related ideas about what physics allows and forbids a computer to do, see ",[514,11545,10398],{"href":304},". For a very different kind of irreversibility, the one built into thermodynamics and time, see ",[514,11548,11549],{"href":244},"the block universe",[514,11551,11552],{"href":256},"determinism",[320,11554,11556],{"id":11555},"references","References",[324,11558,11559,11562,11563,11566,11567],{},[372,11560,510,11561],{}," National Institute of Standards and Technology (2015)."," \"Secure Hash Standard (SHS).\" ",[535,11564,11565],{},"Federal Information Processing Standards Publication"," FIPS 180-4.\n",[514,11568,11569],{"href":11569,"rel":11570},"https:\u002F\u002Fdoi.org\u002F10.6028\u002FNIST.FIPS.180-4",[11571],"nofollow",[324,11573,11574,11577,11578,11581,11582],{},[372,11575,587,11576],{}," Rogaway, P., & Shrimpton, T. (2004)."," \"Cryptographic Hash-Function Basics: Definitions, Implications, and Separations for Preimage Resistance, Second-Preimage Resistance, and Collision Resistance.\"\n",[535,11579,11580],{},"Fast Software Encryption (FSE 2004)",", Lecture Notes in Computer Science, 371–388.\n",[514,11583,11584],{"href":11584,"rel":11585},"https:\u002F\u002Fdoi.org\u002F10.1007\u002F978-3-540-25937-4_24",[11571],[324,11587,11588,11592,11593,11596,11597],{},[372,11589,11590,11591],{},"[3]"," Merkle, R. C. (1990)."," \"One Way Hash Functions and DES.\"\n",[535,11594,11595],{},"Advances in Cryptology – CRYPTO '89 Proceedings",", Lecture Notes in Computer Science, 428–446.\n",[514,11598,11599],{"href":11599,"rel":11600},"https:\u002F\u002Fdoi.org\u002F10.1007\u002F0-387-34805-0_40",[11571],[324,11602,11603,11607,11608,11610,11611],{},[372,11604,11605,11606],{},"[4]"," Damgård, I. B. (1990)."," \"A Design Principle for Hash Functions.\"\n",[535,11609,11595],{},", Lecture Notes in Computer Science, 416–427.\n",[514,11612,11613],{"href":11613,"rel":11614},"https:\u002F\u002Fdoi.org\u002F10.1007\u002F0-387-34805-0_39",[11571],[324,11616,11617,11620,11621,11624,11625],{},[372,11618,3070,11619],{}," Krawczyk, H., Bellare, M., & Canetti, R. (1997)."," \"HMAC: Keyed-Hashing for Message Authentication.\"\n",[535,11622,11623],{},"RFC 2104",", Internet Engineering Task Force.\n",[514,11626,11627],{"href":11627,"rel":11628},"https:\u002F\u002Fdoi.org\u002F10.17487\u002FRFC2104",[11571],[324,11630,11631,11634,11635,11638,11639],{},[372,11632,8222,11633],{}," Stevens, M., Bursztein, E., Karpman, P., Albertini, A., & Markov, Y. (2017)."," \"The First Collision for Full SHA-1.\"\n",[535,11636,11637],{},"Advances in Cryptology – CRYPTO 2017",", Lecture Notes in Computer Science, 570–596.\n",[514,11640,11641],{"href":11641,"rel":11642},"https:\u002F\u002Fdoi.org\u002F10.1007\u002F978-3-319-63688-7_19",[11571],[324,11644,11645,11648,11649,11652,11653],{},[372,11646,8060,11647],{}," Mendel, F., Nad, T., & Schläffer, M. (2013)."," \"Improving Local Collisions: New Attacks on Reduced SHA-256.\"\n",[535,11650,11651],{},"Advances in Cryptology – EUROCRYPT 2013",", Lecture Notes in Computer Science, 262–278.\n",[514,11654,11655],{"href":11655,"rel":11656},"https:\u002F\u002Fdoi.org\u002F10.1007\u002F978-3-642-38348-9_16",[11571],[324,11658,11659,11663,11664,11667,11668],{},[372,11660,11661,11662],{},"[8]"," Li, Y., Liu, F., & Wang, G. (2024)."," \"New Records in Collision Attacks on SHA-2.\"\n",[535,11665,11666],{},"Advances in Cryptology – EUROCRYPT 2024",", Lecture Notes in Computer Science, 158–186.\n",[514,11669,11670],{"href":11670,"rel":11671},"https:\u002F\u002Fdoi.org\u002F10.1007\u002F978-3-031-58716-0_6",[11571],[324,11673,11674,11678,11679,11682,11683],{},[372,11675,11676,11677],{},"[9]"," Li, Y., Liu, F., Wang, G., Dong, X., & Sun, S. (2024)."," \"The First Practical Collision for 31-Step SHA-256.\"\n",[535,11680,11681],{},"Advances in Cryptology – ASIACRYPT 2024",", Lecture Notes in Computer Science, 237–266.\n",[514,11684,11685],{"href":11685,"rel":11686},"https:\u002F\u002Fdoi.org\u002F10.1007\u002F978-981-96-0941-3_8",[11571],[324,11688,11689,11692,11693,11696,11697],{},[372,11690,8149,11691],{}," Khovratovich, D., Rechberger, C., & Savelieva, A. (2012)."," \"Bicliques for Preimages: Attacks on Skein-512 and the SHA-2 Family.\"\n",[535,11694,11695],{},"Fast Software Encryption (FSE 2012)",", Lecture Notes in Computer Science, 244–263.\n",[514,11698,11699],{"href":11699,"rel":11700},"https:\u002F\u002Fdoi.org\u002F10.1007\u002F978-3-642-34047-5_15",[11571],[324,11702,11703,11706,11707,3307,11710,11713,11714],{},[372,11704,8909,11705],{}," Landauer, R. (1961)."," \"Irreversibility and Heat Generation in the Computing Process.\"\n",[535,11708,11709],{},"IBM Journal of Research and Development",[372,11711,11712],{},"5","(3), 183–191.\n",[514,11715,11716],{"href":11716,"rel":11717},"https:\u002F\u002Fdoi.org\u002F10.1147\u002Frd.53.0183",[11571],[324,11719,11720,11723,11724,3307,11727,11730,11731],{},[372,11721,9543,11722],{}," Bérut, A., Arakelyan, A., Petrosyan, A., Ciliberto, S., Dillenschneider, R., & Lutz, E. (2012)."," \"Experimental verification of Landauer's principle linking information and thermodynamics.\"\n",[535,11725,11726],{},"Nature",[372,11728,11729],{},"483",", 187–189.\n",[514,11732,11733],{"href":11733,"rel":11734},"https:\u002F\u002Fdoi.org\u002F10.1038\u002Fnature10872",[11571],[324,11736,11737,11741,11742,3307,11744,11747,11748],{},[372,11738,11739,11740],{},"[13]"," Lloyd, S. (2000)."," \"Ultimate physical limits to computation.\"\n",[535,11743,11726],{},[372,11745,11746],{},"406",", 1047–1054.\n",[514,11749,11750],{"href":11750,"rel":11751},"https:\u002F\u002Fdoi.org\u002F10.1038\u002F35023282",[11571],[324,11753,11754,11758,11759,3307,11762,11765,11766],{},[372,11755,11756,11757],{},"[14]"," Margolus, N., & Levitin, L. B. (1998)."," \"The maximum speed of dynamical evolution.\"\n",[535,11760,11761],{},"Physica D: Nonlinear Phenomena",[372,11763,11764],{},"120","(1–2), 188–195.\n",[514,11767,11768],{"href":11768,"rel":11769},"https:\u002F\u002Fdoi.org\u002F10.1016\u002FS0167-2789(98)00054-2",[11571],[324,11771,11772,11775,11776,11779,11780],{},[372,11773,10656,11774],{}," Grover, L. K. (1996)."," \"A fast quantum mechanical algorithm for database search.\"\n",[535,11777,11778],{},"Proceedings of the 28th Annual ACM Symposium on Theory of Computing (STOC '96)",", 212–219.\n",[514,11781,11782],{"href":11782,"rel":11783},"https:\u002F\u002Fdoi.org\u002F10.1145\u002F237814.237866",[11571],[324,11785,11786,11789,11790,11793,11794],{},[372,11787,11150,11788],{}," Brassard, G., Høyer, P., & Tapp, A. (1998)."," \"Quantum cryptanalysis of hash and claw-free functions.\"\n",[535,11791,11792],{},"LATIN'98: Theoretical Informatics",", Lecture Notes in Computer Science, 163–169.\n",[514,11795,11796],{"href":11796,"rel":11797},"https:\u002F\u002Fdoi.org\u002F10.1007\u002FBFb0054319",[11571],[324,11799,11800,11804,11805,11808,11809],{},[372,11801,11802,11803],{},"[17]"," Bernstein, D. J. (2009)."," \"Cost analysis of hash collisions: Will quantum computers make SHARCS obsolete?\"\n",[535,11806,11807],{},"SHARCS'09 Workshop Record",".\n",[514,11810,11811],{"href":11811,"rel":11812},"https:\u002F\u002Fcr.yp.to\u002Fhash\u002Fcollisioncost-20090823.pdf",[11571],[324,11814,11815,11819,11820,3307,11823,11826,11827],{},[372,11816,11817,11818],{},"[18]"," van Oorschot, P. C., & Wiener, M. J. (1999)."," \"Parallel Collision Search with Cryptanalytic Applications.\"\n",[535,11821,11822],{},"Journal of Cryptology",[372,11824,11825],{},"12","(1), 1–28.\n",[514,11828,11829],{"href":11829,"rel":11830},"https:\u002F\u002Fdoi.org\u002F10.1007\u002FPL00003816",[11571],[324,11832,11833,11836,11837,11840,11841],{},[372,11834,11004,11835],{}," Amy, M., Di Matteo, O., Gheorghiu, V., Mosca, M., Parent, A., & Schanck, J. (2017)."," \"Estimating the Cost of Generic Quantum Pre-image Attacks on SHA-2 and SHA-3.\"\n",[535,11838,11839],{},"Selected Areas in Cryptography – SAC 2016",", Lecture Notes in Computer Science, 317–337.\n",[514,11842,11843],{"href":11843,"rel":11844},"https:\u002F\u002Fdoi.org\u002F10.1007\u002F978-3-319-69453-5_18",[11571],[324,11846,11847,11850,11851,11854,11855],{},[372,11848,11234,11849],{}," Chen, L., Jordan, S., Liu, Y.-K., Moody, D., Peralta, R., Perlner, R., & Smith-Tone, D. (2016)."," \"Report on Post-Quantum Cryptography.\" ",[535,11852,11853],{},"NIST Interagency Report"," NISTIR 8105.\n",[514,11856,11857],{"href":11857,"rel":11858},"https:\u002F\u002Fdoi.org\u002F10.6028\u002FNIST.IR.8105",[11571],[324,11860,11861,11864,11865],{},[372,11862,11259,11863],{}," Nakamoto, S. (2008)."," \"Bitcoin: A Peer-to-Peer Electronic Cash System.\"\n",[514,11866,11867],{"href":11867,"rel":11868},"https:\u002F\u002Fbitcoin.org\u002Fbitcoin.pdf",[11571],[324,11870,11871,11874,11875,11808,11878],{},[372,11872,11288,11873],{}," OWASP Foundation."," \"Password Storage Cheat Sheet.\" ",[535,11876,11877],{},"OWASP Cheat Sheet Series",[514,11879,11880],{"href":11880,"rel":11881},"https:\u002F\u002Fcheatsheetseries.owasp.org\u002Fcheatsheets\u002FPassword_Storage_Cheat_Sheet.html",[11571],[324,11883,11884,11888,11889,11892,11893],{},[372,11885,11886,11887],{},"[23]"," Biryukov, A., Dinu, D., & Khovratovich, D. (2016)."," \"Argon2: New Generation of Memory-Hard Functions for Password Hashing and Other Applications.\"\n",[535,11890,11891],{},"2016 IEEE European Symposium on Security and Privacy (EuroS&P)",", 292–302.\n",[514,11894,11895],{"href":11895,"rel":11896},"https:\u002F\u002Fdoi.org\u002F10.1109\u002FEuroSP.2016.31",[11571],[324,11898,11899,11902,11903,11906,11907],{},[372,11900,11298,11901],{}," Grassi, P. A., Fenton, J. L., Newton, E. M., et al. (2017)."," \"Digital Identity Guidelines: Authentication and Lifecycle Management.\" ",[535,11904,11905],{},"NIST Special Publication"," 800-63B.\n",[514,11908,11909],{"href":11909,"rel":11910},"https:\u002F\u002Fdoi.org\u002F10.6028\u002FNIST.SP.800-63b",[11571],[324,11912,11913,11916,11917,11920,11921],{},[372,11914,8070,11915],{}," Zhang, Z., Li, M., Gao, L., & Wang, M. (2026)."," \"Collision Attacks on SHA-256 up to 37 Steps with Improved Trail Search.\"\n",[535,11918,11919],{},"Advances in Cryptology – EUROCRYPT 2026",", Lecture Notes in Computer Science, 91–120.\n",[514,11922,11923],{"href":11923,"rel":11924},"https:\u002F\u002Fdoi.org\u002F10.1007\u002F978-3-032-25333-0_4",[11571],[324,11926,11927,11930,11931,11934,11935],{},[372,11928,8139,11929],{}," Li, Y., Zhang, Z., Li, M., Liu, F., Qian, H., & Zhu, J. (2026)."," \"Pushing Collision Attacks on SHA-2 to 39 Steps.\" ",[535,11932,11933],{},"IACR Cryptology ePrint Archive",", Paper 2026\u002F1120 (preprint).\n",[514,11936,11937],{"href":11937,"rel":11938},"https:\u002F\u002Feprint.iacr.org\u002F2026\u002F1120",[11571],{"title":344,"searchDepth":83,"depth":83,"links":11940},[11941,11942,11943,11950,11955,11960,11961,11966,11967],{"id":364,"depth":83,"text":365},{"id":545,"depth":83,"text":546},{"id":2147,"depth":83,"text":2148,"children":11944},[11945,11946,11947,11948,11949],{"id":2159,"depth":131,"text":2160},{"id":2176,"depth":131,"text":2177},{"id":3073,"depth":131,"text":3074},{"id":7836,"depth":131,"text":7837},{"id":7847,"depth":131,"text":7848},{"id":7863,"depth":83,"text":7864,"children":11951},[11952,11953,11954],{"id":7870,"depth":131,"text":7871},{"id":7945,"depth":131,"text":7946},{"id":7980,"depth":131,"text":7981},{"id":8226,"depth":83,"text":8227,"children":11956},[11957,11958,11959],{"id":8233,"depth":131,"text":8234},{"id":8898,"depth":131,"text":8899},{"id":10316,"depth":131,"text":10317},{"id":10391,"depth":83,"text":10392},{"id":11248,"depth":83,"text":11249,"children":11962},[11963,11964,11965],{"id":11252,"depth":131,"text":300},{"id":11273,"depth":131,"text":11274},{"id":11301,"depth":131,"text":11302},{"id":11308,"depth":83,"text":11309},{"id":11344,"depth":83,"text":11345},"md",[294,295,296,297,298,299,300,301],{},true,{"title":291,"description":292},"evidence\u002Fsha-256-encryption","emg8UrPxQHlBKZW0iK2nt2b-e8da58nHD_QOpOnXR6M",1789530370346]