[{"data":1,"prerenderedAt":334},["ShallowReactive",2],{"project-26256726":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":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":42,"post_text":44,"what":45,"said":77,"maker_in_thread":195,"shape":204,"grid":208,"attempts":298,"same_week":299,"maker_shows":39,"maker_hidden":327,"reader_version":328,"card":329},"26256726","Horcrux","A Playground for Shamir Secret Sharing","title","Show HN: Horcrux, a Playground for Shamir Secret Sharing","https:\u002F\u002Ffrancoisbest.com\u002Fhorcrux","francoisbest.com","franky47",1614204425,2021,151,40,327,2533,13,"notable","security_privacy","secret sharing","web_app",[24,25,26,27],"shamir secret sharing","secret splitting","threshold cryptography","key backup","mixed",-0.03,{"positive":31,"neutral":32,"mixed":33,"critical":32},4,6,1,17,{"idea":36,"design":38,"execution":41},{"positive":33,"critical":37},3,{"positive":39,"critical":40},2,0,{"positive":40,"critical":37},[37,40,40,40,33,40,40,40,40,40,40,40,43,37,40,40,40,43,40,33,37,43,43,40,37,37,37,33,40,33,40,37,40,33,40,33,40,40,40,40],5,null,{"problem":46,"audience":44,"pricing":44,"motivation":53,"time_to_build":57,"stack":61,"openness":74,"stage":75,"team_size":76},{"value":47,"source":48,"evidence":49},"Explore how Shamir secret sharing splits a secret into shares","maker",[50],{"id":51,"by":11,"text":52},"26261961","Hi, OP here. I made this little tool in a few hours to play with SSS, for an upcoming interactive article on end-to-end encryption. It uses the @stablelib\u002Ftss NPM package to do…",{"value":54,"source":48,"evidence":55},"Play with SSS for an upcoming interactive article on end-to-end encryption",[56],{"id":51,"by":11,"text":52},{"value":58,"source":48,"evidence":59},"A few hours",[60],{"id":51,"by":11,"text":52},[62,66,70],{"value":63,"source":48,"evidence":64},"Next.js",[65],{"id":51,"by":11,"text":52},{"value":67,"source":48,"evidence":68},"Chakra UI",[69],{"id":51,"by":11,"text":52},{"value":71,"source":48,"evidence":72},"@stablelib\u002Ftss npm package",[73],{"id":51,"by":11,"text":52},"open_source","prototype","solo",{"praise":78,"objections":95,"requests":132,"questions":147,"alternatives":163},[79],{"value":80,"source":81,"evidence":82},"Nice UI wrapper and a cool project","commenter",[83,87,91],{"id":84,"by":85,"text":86},"26262310","mvolfik","to be fair - this cool, but the heavy lifting part is actually the interesting one",{"id":88,"by":89,"text":90},"26261887","onion2k","This is a really nice UI wrapper around the @stablelib\u002Ftss (https:\u002F\u002Fwww.stablelib.com\u002Fmodules\u002F_tss_tss_.html) library if you fancy building your own.",{"id":92,"by":93,"text":94},"26259909","slaymaker1907","One idea this inspired me with is to create a single html file which contains both the code to assemble a SSS secret (from other HTML files or the base64 encoded secrets). The…",[96,103,110,121],{"value":97,"source":81,"evidence":98},"Implementation is flawed: shares use substitution cipher, enabling frequency analysis",[99],{"id":100,"by":101,"text":102},"26265773","Nerdyfro","This implementation is flawed. Each shard gets a unique substitution cipher making this nothing more than a cryptogram generator. Input \"aaaaabbbbbcccccdddddeeeee\" with any…",{"value":104,"source":81,"evidence":105},"Shamir secret sharing is often misused and mostly snake oil",[106],{"id":107,"by":108,"text":109},"26259959","nullc","My experience with Shamir Secret Sharing software is that it's mostly snake oil, pushed by snakeoil vendors: https:\u002F\u002Fen.bitcoin.it\u002Fwiki\u002FShamir_Secret_Snakeoil Probably the best…",{"value":111,"source":81,"evidence":112},"Entering a higher number needed causes an unexpected error",[113,117],{"id":114,"by":115,"text":116},"26257751","m00dy","just go to https:\u002F\u002Ffrancoisbest.com\u002Fhorcrux and set Number needed to 10. It blows up",{"id":118,"by":119,"text":120},"26258458","nanidin","Typing any additional number into the \"number needed\" field with keyboard on Chrome immediately shows \"An unexpected error has occurred.\"",{"value":122,"source":81,"evidence":123},"Name Horcrux is a poor fit since Horcruxes are the opposite of threshold sharing",[124,128],{"id":125,"by":126,"text":127},"26257571","forty","It's not a great choice though. The idea of horcrux is that any piece is enough which is basically exactly the opposite of what shamir secret does ;) It was a much better choice…",{"id":129,"by":130,"text":131},"26258278","627467","Exactly (about it being the opposite of an \"actual\" horcrux). But this is not even the first (or the second) split-secret mechanism to make this same reverse analogy",[133,140],{"value":134,"source":81,"evidence":135},"Standard format for shares so they can be recovered without the program",[136],{"id":137,"by":138,"text":139},"26261930","PaulAJ","Is there any kind of standard for this? Every SSS implementation I've seen has its own custom format for the shards, so if you lose the program that reassembles them you can't…",{"value":141,"source":81,"evidence":142},"Explain why some replacement characters in a share still work",[143],{"id":144,"by":145,"text":146},"26256995","jjazwiecki","that's really cool, I've been playing w\u002F Shamir a bit. I noticed I could change the last character of one share and still get back the secret. not every replacement character…",[148,155],{"value":149,"source":81,"evidence":150},"How to store shares on hardware tokens",[151],{"id":152,"by":153,"text":154},"26258668","fovc","On the topic of shamir shares, plugging a question I asked yesterday[1]: how do you manage them if you want to get them onto hardware? Do you just ask your tokens to encrypt the…",{"value":156,"source":81,"evidence":157},"Why some last-character changes in a share still recover the secret",[158,159],{"id":144,"by":145,"text":146},{"id":160,"by":161,"text":162},"26257444","vlfig","Base64 padding, probably.",[164,171,181,188],{"value":165,"source":81,"evidence":166},"ssss command line tool",[167],{"id":168,"by":169,"text":170},"26257532","st_goliath","For \"everyday\" practical use, there is also a really simple command line utility around called `ssss` which is available in many distro repos[1]. Debian has it since Jessie[2]…",{"value":172,"source":81,"evidence":173},"libgfshare",[174,178],{"id":175,"by":176,"text":177},"26258740","encryptluks2","There is also libgfshare which seems to be the recommend tool.",{"id":179,"by":176,"text":180},"26258881","Something cool you can do that I recently found out about is use libgfshare to split a text file using whatever C and T shares you want. Then use scrypt on the split shares with…",{"value":182,"source":81,"evidence":183},"Ian Coleman's Shamir tool",[184],{"id":185,"by":186,"text":187},"26262123","rkagerer","Ian Coleman made one of these a few years back which is also great: https:\u002F\u002Fiancoleman.io\u002Fshamir\u002F",{"value":189,"source":81,"evidence":190},"Polychain Labs horcrux CLI",[191],{"id":192,"by":193,"text":194},"26258234","lrvick","Polychain Labs open sourced a Shamir's secret sharing CLI tool by the same name 2 years ago. https:\u002F\u002Fgithub.com\u002Fpolychainlabs\u002Fhorcrux",{"comments":43,"answered":33,"key":196},[197,198,201],{"id":51,"text":52},{"id":199,"text":200},"26258255","I set the maximum to 8, what browser are you on ?",{"id":202,"text":203},"26258606","Thanks, I hardened the logic a little.",{"commenters":205,"max_depth":32,"maker_replies":43,"first_comment_mins":206,"lifespan_hours":207},26,21,25,[209,211,214,215,218,220,224,226,229,231,233,236,238,240,244,245,247,249,251,252,254,255,260,262,265,268,269,271,273,275,276,278,282,285,286,287,290,292,294,296],[168,40,37,210,169,40],"project\u002Fneutral\u002Fnone",[212,40,40,213,153,40],"26258679","other\u002Fneutral\u002Fnone",[175,40,40,213,176,40],[216,40,40,213,217,40],"26259103","compressedgas",[107,40,33,219,108,40],"project\u002Fcritical\u002Fidea",[221,40,40,222,223,40],"26260274","commenter\u002Fneutral\u002Fidea","sterlind",[225,40,40,222,108,40],"26260954",[227,40,40,222,228,40],"26261344","dcow",[230,40,40,222,228,40],"26261286",[232,40,40,222,108,40],"26265717",[234,40,40,235,228,40],"26269428","commenter\u002Fneutral\u002Fnone",[237,40,40,222,228,40],"26261319",[92,33,43,239,93,40],"project\u002Fpositive\u002Fidea",[241,33,37,242,243,40],"26265429","project\u002Fneutral\u002Fidea","Ruphin",[192,39,40,213,193,40],[246,39,40,213,130,40],"26258253",[51,37,40,248,11,33],"maker\u002Fneutral\u002Fnone",[84,37,43,250,85,40],"project\u002Fpositive\u002Fdesign",[185,31,40,213,186,40],[100,43,33,253,101,40],"project\u002Fcritical\u002Fexecution",[152,32,37,242,153,40],[256,257,43,258,259,40],"26259331",7,"project\u002Fpositive\u002Fnone","lanecwagner",[88,261,43,250,89,40],8,[179,263,40,264,176,40],9,"other\u002Fneutral\u002Fidea",[144,266,37,267,145,40],10,"project\u002Fneutral\u002Fexecution",[160,266,37,267,161,40],[137,270,37,267,138,40],11,[114,272,33,253,115,40],12,[199,272,40,274,11,33],"maker\u002Fneutral\u002Fexecution",[118,272,33,253,119,40],[202,272,40,277,11,33],"maker\u002Fpositive\u002Fexecution",[279,18,37,280,281,40],"26257456","project\u002Fmixed\u002Fnone","Widdershin",[283,18,40,213,284,40],"26257478","ajfapoiawejf",[125,18,33,219,126,40],[129,18,40,235,130,40],[288,18,33,219,289,40],"26260271","sidpatil",[291,18,40,213,281,40],"26260681",[293,18,40,248,11,33],"26260970",[295,18,40,235,281,40],"26261338",[297,18,40,248,11,33],"26261604",[],[300,305,310,315,319,323],{"id":301,"name":302,"points":303,"category":304},"26253281","Everyday Data Science",632,"learning_science",{"id":306,"name":307,"points":308,"category":309},"26226805","Call a Dev",451,"web_saas",{"id":311,"name":312,"points":313,"category":314},"26179311","Split Keyboards",249,"dev_tools",{"id":316,"name":317,"points":318,"category":314},"26250809","CalcuLaTeX",230,{"id":320,"name":321,"points":322,"category":309},"26215378","Tiny Ads",218,{"id":324,"name":325,"points":326,"category":304},"26206712","Vellum",140,false,"v2",{"id":330,"name":5,"line":6,"ai":327,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":331,"maker":11,"domain":10,"tier":19,"attempts":40,"strip":332,"url":9,"mix":333,"praise":80,"objection":97,"sub":21},26256726,[24,25,26,27],"3000100000005300050135503331010301010000",[31,32,33,32],1794036603648]