[{"data":1,"prerenderedAt":405},["ShallowReactive",2],{"project-12175830":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":42,"post_text":43,"what":44,"said":74,"maker_in_thread":133,"shape":140,"grid":145,"attempts":367,"same_week":368,"maker_shows":286,"maker_hidden":397,"reader_version":398,"card":399},"12175830","sha256-simd","Accelerating SHA256 by 100x in Golang on ARM","title","Show HN: Accelerating SHA256 by 100x in Golang on ARM","https:\u002F\u002Fblog.minio.io\u002Faccelerating-sha256-by-100x-in-golang-on-arm-1517225f5ff4#.jmo3osv3q","blog.minio.io","y4m4b4",1469647913,2016,156,86,207,2264,10,"notable","languages","crypto library","library",[24,25,26,27,28],"sha256","golang","arm64","hashing","simd","curious",-0.129,{"positive":32,"neutral":33,"mixed":34,"critical":35},3,17,1,5,26,{"idea":38,"execution":40,"performance":41},{"positive":39,"critical":34},0,{"positive":32,"critical":34},{"positive":39,"critical":32},[39,39,39,39,39,39,39,39,32,32,39,32,32,35,32,32,34,32,34,39,39,32,39,39,32,34,39,32,35,35,32,34,34,32,39,39,39,39,39,39],null,{"problem":45,"audience":43,"pricing":43,"motivation":43,"time_to_build":43,"stack":55,"openness":72,"stage":73,"team_size":73},{"value":46,"source":47,"evidence":48},"Slow SHA256 hashing in Go on ARM processors","inferred",[49,51],{"id":50},"post",{"id":52,"by":53,"text":54},"12176386","fwessels","No, there are no algorithm changes (otherwise the results would be different), it is just taking advantage of the ARM SHA accelerations when they are available.",[56,60],{"value":57,"source":47,"evidence":58},"Go",[59],{"id":50},{"value":61,"source":62,"evidence":63},"ARM64 assembly","commenter",[64,68],{"id":65,"by":66,"text":67},"12177453","akovaski","Judging from the source code[1] in the author's repository, it is the latter. (what I see is: perform 96 instructions, then subtract 64 from the message length, and repeat until…",{"id":69,"by":70,"text":71},"12180287","yalue","This article is referring specifically to ARM64 assembly which is actually quite a bit more RISC-y than previous versions of the ARM ISA. In favor of simplicity, many of the more…","open_source","unknown",{"praise":75,"objections":83,"requests":106,"questions":107,"alternatives":115},[76],{"value":77,"source":78,"evidence":79},"Nice share, looking forward to it","maker",[80],{"id":81,"by":11,"text":82},"12177630","Thanks this is a nice share, we are definitely looking forward to this.",[84,95],{"value":85,"source":62,"evidence":86},"Go relies too much on hand-written assembly",[87,91],{"id":88,"by":89,"text":90},"12176496","theparanoid","The amount of assembly in the Go ecosystem is crazy, ~1% of the standard library is assembly. There are better ways.",{"id":92,"by":93,"text":94},"12176244","anonymous7777","ok mentioning Go here is a bit pointless. How did Go help compared to any other language when Arm has hardware instructions for SHA1&2?",{"value":96,"source":62,"evidence":97},"SHA256 is too fast for password storage",[98,102],{"id":99,"by":100,"text":101},"12176180","niftich","> but I'm not sure how this illustrates that SHA2 just got even faster, so it illustrates rather well that you wouldn't want to use it for password storage -- of course that was…",{"id":103,"by":104,"text":105},"12176470","creshal","If you're using any hash directly for password storage you're doing it wrong, regardless of the specifics. PBKDF2-SHA2 with a reasonably high amount of rounds (>100000) is still…",[],[108],{"value":109,"source":62,"evidence":110},"Can this be used to mine bitcoin cheaper than an ASIC",[111],{"id":112,"by":113,"text":114},"12176216","gnaritas","So with hardware sha256, can this mine bitcoin cheaper than an ASIC?",[116,126],{"value":117,"source":62,"evidence":118},"SHA512 and Blake2b",[119,123],{"id":120,"by":121,"text":122},"12176915","DanielDent","Did you compare performance to SHA512? Despite being a theoretically more secure\u002F\"harder\" algorithm, on 64 bit platforms it can sometimes be faster than SHA256. If you don't want…",{"id":124,"by":11,"text":125},"12177728","Yes true. OpenSSL version gives a great boost. Rather than SHA512 we ended up using Blake2b - https:\u002F\u002Fgithub.com\u002Fminio\u002Fblake2b-simd (also optimized with SIMD instructions)…",{"value":127,"source":62,"evidence":128},"OpenSSL",[129],{"id":130,"by":131,"text":132},"12177609","pbsd","SHA-512 should be much faster than SHA-256 on AVX2-capable processors. Go's implementation is subpar; try OpenSSL instead. On Skylake, SHA-512 is about as fast as MD5 now --…",{"comments":32,"answered":34,"key":134},[135,136,139],{"id":81,"text":82},{"id":137,"text":138},"12177097","For comparison with other checksums you should look here https:\u002F\u002Fgithub.com\u002Fminio\u002Fsha256-simd#comparison-to-other-hashing-techniques",{"id":124,"text":125},{"commenters":141,"max_depth":142,"maker_replies":32,"first_comment_mins":143,"lifespan_hours":144},53,9,33,19,[146,150,154,157,160,163,165,168,170,174,175,178,181,183,185,188,190,195,199,201,204,207,210,212,214,217,219,220,223,226,228,231,232,234,235,238,242,244,248,251,254,257,259,262,265,269,272,274,277,279,281,285,288,290,293,295,299,302,304,307,310,312,314,317,320,323,325,328,330,334,337,339,343,347,349,352,354,356,358,361,362,364],[147,39,39,148,149,39],"12178100","other\u002Fneutral\u002Fidea","userbinator",[151,39,39,152,153,39],"12178401","commenter\u002Fneutral\u002Fnone","bostik",[155,39,39,148,156,39],"12178442","femto",[158,39,39,148,159,39],"12179039","cmrx64",[161,39,39,152,162,39],"12178980","ridiculous_fish",[164,39,39,152,159,39],"12179014",[166,39,39,167,149,39],"12179537","commenter\u002Fneutral\u002Fperformance",[169,39,39,148,159,39],"12179078",[171,39,39,172,173,39],"12179695","other\u002Fneutral\u002Fnone","pjmlp",[69,39,39,172,70,39],[176,34,39,172,177,39],"12176597","mrb",[179,34,39,172,180,39],"12176806","kalden_",[182,34,39,172,177,39],"12176956",[184,34,39,172,131,39],"12177932",[186,34,39,172,187,39],"12176929","nickpsecurity",[81,34,39,189,11,34],"maker\u002Fpositive\u002Fnone",[191,192,32,193,194,39],"12176095",2,"project\u002Fmixed\u002Fidea","wyldfire",[196,192,32,197,198,39],"12176238","project\u002Fneutral\u002Fexecution","lossolo",[52,192,32,200,53,39],"project\u002Fneutral\u002Fidea",[202,192,39,152,203,39],"12176826","webkike",[205,192,39,152,206,39],"12177712","halomru",[208,192,39,152,209,39],"12177978","sjolsen",[211,192,39,152,159,39],"12179048",[120,32,32,213,121,39],"project\u002Fneutral\u002Fperformance",[215,32,32,213,216,39],"12176984","cyphar",[218,32,32,213,121,39],"12177013",[65,32,32,197,66,39],[221,32,35,222,121,39],"12177959","project\u002Fpositive\u002Fexecution",[224,32,32,213,225,39],"12177806","tedunangst",[227,32,39,152,131,39],"12177981",[229,32,32,230,53,39],"12176988","maker\u002Fneutral\u002Fperformance",[137,32,39,230,11,34],[130,32,34,233,131,39],"project\u002Fcritical\u002Fperformance",[124,32,39,230,11,34],[236,32,32,200,237,39],"12178255","Buge",[239,240,32,200,241,39],"12179308",4,"dharma1",[88,35,34,243,89,39],"project\u002Fcritical\u002Fexecution",[245,35,39,246,247,39],"12176572","commenter\u002Fneutral\u002Fexecution","giovannibajo1",[249,35,39,246,250,39],"12178046","pcwalton",[252,35,39,152,253,39],"12178306","drchickensalad",[255,35,39,152,256,39],"12178430","dlsniper",[258,35,39,152,173,39],"12179722",[260,35,39,246,261,39],"12179293","Cthulhu_",[263,35,39,152,264,39],"12180120","shinigami",[266,35,32,267,268,39],"12176583","maker\u002Fneutral\u002Fexecution","bradleyjg",[270,35,39,172,271,39],"12176738","white-flame",[273,35,39,246,247,39],"12176817",[275,35,39,152,276,39],"12177359","DannyBee",[278,35,39,246,247,39],"12179927",[280,35,39,246,250,39],"12178037",[282,35,32,283,284,39],"12177262","maker\u002Fneutral\u002Fnone","sgmansfield",[92,286,34,287,93,39],6,"project\u002Fcritical\u002Fidea",[289,286,32,200,53,39],"12176368",[291,286,39,172,292,39],"12178448","shurcooL",[294,286,39,172,173,39],"12179734",[296,297,32,197,298,39],"12176646",7,"serge2k",[300,297,39,152,301,39],"12176690","nickcw",[303,297,39,152,173,39],"12179742",[305,297,35,306,53,39],"12177006","maker\u002Fpositive\u002Fexecution",[308,297,35,222,309,39],"12178542","chewxy",[311,297,39,172,53,39],"12178616",[112,313,32,213,113,39],8,[315,313,32,213,316,39],"12176254","argo_",[318,313,34,233,319,39],"12176359","astrodust",[321,313,39,322,113,39],"12177256","other\u002Fneutral\u002Fperformance",[324,313,34,233,53,39],"12176374",[326,142,39,172,327,39],"12176875","cloudjacker",[329,142,39,172,121,39],"12177708",[331,18,32,332,333,39],"12176084","project\u002Fneutral\u002Fnone","matt_wulfeck",[335,18,39,152,336,39],"12176135","loeg",[99,18,39,338,100,39],"other\u002Fneutral\u002Fprivacy",[340,18,39,341,342,39],"12176412","commenter\u002Fcritical\u002Fperformance","jerf",[344,18,39,345,346,39],"12176433","commenter\u002Fneutral\u002Fprivacy","WhitneyLand",[348,18,39,345,100,39],"12176548",[350,18,39,345,351,39],"12177204","cperciva",[353,18,39,345,225,39],"12177790",[355,18,39,345,351,39],"12177868",[357,18,39,345,225,39],"12178234",[359,18,39,345,360,39],"12176617","y7",[103,18,39,345,104,39],[363,18,39,152,333,39],"12176247",[365,18,39,345,366,39],"12176717","sbierwagen",[],[369,374,378,383,388,393],{"id":370,"name":371,"points":372,"category":373},"12166687","Web Design in 4 minutes",1624,"learning_science",{"id":375,"name":376,"points":377,"category":20},"12136011","Riko",283,{"id":379,"name":380,"points":381,"category":382},"12159249","Kubernetes Certificate Manager",186,"infrastructure",{"id":384,"name":385,"points":386,"category":387},"12163689","github-widget",176,"dev_tools",{"id":389,"name":390,"points":391,"category":392},"12166370","EventQL",90,"data",{"id":394,"name":395,"points":396,"category":387},"12137698","kilo",85,false,"v2",{"id":400,"name":5,"line":6,"ai":397,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":401,"top":18,"kw":402,"maker":11,"domain":10,"tier":19,"attempts":39,"strip":403,"url":9,"mix":404,"praise":77,"objection":85,"sub":21},12175830,-0.13,[24,25,26,27,28],"0000000033033533131003003103553113000000",[32,33,34,35],1794036546249]