log☇︎
900+ entries in 0.224s
asciilifeform: still fascinated with the question of whether a constant-spacetime 'divide&conquer' divisitron is possible.
asciilifeform: http://btcbase.org/log/2017-09-17#1715294 << computing an 'unchanged' TAKES SAME TIME as any other, omfg, it's constant time ☝︎
asciilifeform: in other olds , https://archive.is/ksYSr << DIV instruction on recent intel, NOT constant-time
asciilifeform: it reflects the reality of what a 'constantspacetime program' really is.
a111: Logged on 2017-09-13 17:17 asciilifeform: apeloyee: anything that beats multiply-then-divide is an improvement, so long as it meets the basic demands ( constant time, constant space, NO branches that depend on input bits, no use of approximations, no massively heavy - 100 loc is a good approx max - code )
asciilifeform: this is why barrett is only used in the field when the modulus stays constant.
asciilifeform: so this really makes the question of whether barrett could, in principle, be made in constant spacetime, academic.
asciilifeform: if you made the double-wide reciprocal ( i will leave aside the question of how to do this in provable constant time and provable correctness ) you're stuck using that width.
asciilifeform: ( instead of the constantspacetimeized knuth division currently in there )
asciilifeform: trinque: currently my angle is, to try and make constantspacetime recursive divide&conquer division
asciilifeform: apeloyee: anything that beats multiply-then-divide is an improvement, so long as it meets the basic demands ( constant time, constant space, NO branches that depend on input bits, no use of approximations, no massively heavy - 100 loc is a good approx max - code ) ☟︎
asciilifeform: re 'mechanism', also can restate : if something cannot be expressed as a boolean circuit, it is not constantspacetimeizable.
a111: Logged on 2017-09-12 23:12 mircea_popescu: and finally 3. the item there described is not exactly a function. it rather something i'd call a mechanism, a discrete item that does a fully defined thing. as we're looking more and more through ada eyes and constant time things and so on, a study of these mechanisms as an distinct category will prolly be useful. somewhere between conway's cells and commandline utils, they are.
mircea_popescu: and finally 3. the item there described is not exactly a function. it rather something i'd call a mechanism, a discrete item that does a fully defined thing. as we're looking more and more through ada eyes and constant time things and so on, a study of these mechanisms as an distinct category will prolly be useful. somewhere between conway's cells and commandline utils, they are. ☟︎
asciilifeform: it requires a constant-time gcd, however, to be constant-time. ( and has a problem same as above in that it takes much MORE time than naive algo if you don't reuse modulus forever )
mircea_popescu: if you want constant time, you feed the list 9, 0,0,0,0,8,0,0,1. it will do 18, 1, 18, 1, 18, 1, 18, 1 etc.
mircea_popescu: consider the number 97. is is 1100001. they do mp_mod (2^6, 2^5, 2^0) ; you can do (2^6, 2^5, 0* 2^4, 0* 2^3,0* 2^2,0* 2^1,2^0). the list method will sitll work, but this time in constanttime.
mircea_popescu: will necessarily have the modulus of the sum. this entire procedure is constant time.
mircea_popescu: and STILL be constant.
mircea_popescu: you write by hand a function which takes a list with a promise none of the items on it exceed a mod, and returns the mod of the sum of the sum of the elements, in constant time.
mircea_popescu: just write it all out by hand, the constanttime mod distributivetor.
asciilifeform: because again constanttime
mircea_popescu: that small cost can be slightly higher and constant time.
mircea_popescu: you can write this coda so it is constant.
asciilifeform: it ain't constanttimespace.
asciilifeform: that ain't constantspacetime
asciilifeform: ( EVERYBODY, without exception, 1) did something intrinsically nonconstanttime 2) lied about it in print )
phf: list, typically around 409,600 bytes. The kernel constant
ben_vulpes: also with shitty constants gleaned in a hurry
asciilifeform: type Round_Constants is array(Natural range 1 .. 24) of Lane;
asciilifeform: PeterL: if you have constants with explicit bitness, you gotta use, e.g., Unsigned_64
mircea_popescu: ideally you get something denser than trad printer. if you manage 2-3k dpi (with a tractor!) then you can just prepare your receiver on an endless sheet of paper (process upstream) and just print and print and print. constantly. sort-of how the correct re-asphalt road crew works.
asciilifeform: when it is not merely a place to look up a physical constant when lazy, but ~more important than own logz~
mircea_popescu: (this is a significant problem. consider a model : there's what, ten-twenty millions of bernsteins, kanzure , fyr and what have you on one hand ; and only a hundred or so of us. even if we were to work a full 200 hour's week, if on average one needs 1k man-hours of constant whipping to redress into humanity, we encounter the following birthday paradox : either the whipping is undirected, in which case every tard gets 15 minut
asciilifeform: valentinbuza: i regard the entire concept of 'real time automated public key crypto' as a scam, and anyone claiming to offer such a thing, as a scammer, until constant time rsa routines are public.
asciilifeform: incidentally all existing systems that do pubkey crypto in real time ( incl. 'noise' ) are trivially breakable by the enemy, because no constant-time numeric stack currently exists publicly.
asciilifeform: but hey, if mircea_popescu gets haetmail for not propping up btc to 1mil obummerbux per, asciilifeform gets 'you suck, why not derived constanttime gcd yet' , wonder what other folx get
mircea_popescu: the notion that the price of btc / the fall of constantinople / etc hjave anything to do with this is so much lulz.
mircea_popescu: "no sooner said than done" is the constant refrain of the folk tales ruinning through such goodfolk's heads at all times.
mircea_popescu: asciilifeform this is EXACTLY not the case. i am saying "7.62 is sufficient, because it will blow a hole through man, as result of interplay of actual universal constants" and you are saying "yes but 15.2 would be bigger".
asciilifeform: ( for reference : leaking 1/4 of your privkey is fatal; 10-20% -- you're breakable in polynomial time with large -- how large is unknown -- constant factor )
asciilifeform: sorta why i put the effort into crafting a demonstrably bug-free constantimetron, first thing, rather than 'let's use gnu gmp with massive keyz'
mircea_popescu: anyway. other than the above "can constantify mpfhf ?" question, also open is the matter of alternative padding. currently all we have is oaep.
a111: Logged on 2017-08-15 22:52 mircea_popescu: constant-time MPFHF is now an open question for teh interested.
mircea_popescu: constant-time MPFHF is now an open question for teh interested. ☟︎
mircea_popescu: so unless you're willing to do ALL the alternatives every time, you won't have "true" constantttime.
mircea_popescu: the ONE way to constant-mpfhf is to calculate ALL the tree of possibilities, 2^message length items EVERY TIME
mircea_popescu: oaep won;t constant spacetime either.
asciilifeform: well either it, or the constant-spacetime. and i'm quite sold on keeping the latter.
mircea_popescu: consequently this idiot's teahouse was constantly ringing of alarms on multiple voices from multiple points.
asciilifeform: ALL ffa ops take time that is not dependent on the hamming weight. that's what 'constant time' means.
asciilifeform: the basic, naive method for magicking a conventional algo into a constanttime algo, is to
asciilifeform still devising a constant time gcd
asciilifeform: the other thing, you don't need ANY trial-divisions in the prelude to miller-rabin, IF you have a constant-time gcd
asciilifeform: while we're on the subj of 'cryptographers' : a constant time gcd is also apparently not known.
mircea_popescu: asciilifeform amusingly, the guy complains about the modular exponentiation not being constant time. maybe write to him ask where he ever saw a sane algo ?
asciilifeform: meanwhile from literature search, every article ever, apparently, written re 'constant time modular exponentiation' proposes... tables
edivad: so, back to the question, is the fuckgoats device meant to be, for instance, if i run a bitcoin service that constantly need to generate private keys, let's say, for example, for an hot wallet?
asciilifeform: the output is muxed via constanttimemuxer
asciilifeform: ( because table lookups are nonconstanttime on just about any iron you can get your hands on. caches. )
asciilifeform: recall, constanttime karatsuba did not (afaik) publicly exist before i posted it...
asciilifeform: that's what constanttime is
asciilifeform: the sad and slow constantspacetime solution , is the same exponentiation-by-squaring ffa has now, http://wotpaste.cascadianhacker.com/pastes/BVxyN/?raw=true , but after FZ_Square(B, B, C_Sqr); we FZ_Mod(B, M B) every time.
asciilifeform: aite, nao all asciilifeform needs is a constantspacetime MODULAR exp algo that can be expressed with the mux primitive
asciilifeform: ( thing still runs in constant time: N always walks the range of 1 to last digit of the width of our ffa )
asciilifeform: i understand what is meant by 'prototype', but an rsatron (ignoring for a moment the constant-time thing) that uses fermat's primality test as the sole probe, is analogous to a grenade with a half second fuse
asciilifeform: nor even constantspace.
asciilifeform: PeterL: i have to rain on the parade, but i dun see what you win from writing own rsa in this one. py arithmetic is not constanttime
mircea_popescu: http://btcbase.org/log/2017-08-04#1694049 << cuntoo being the evident and correct solution, rather than the constant two weeks. ☝︎
mircea_popescu: constantinople wasn't so important militarily ; but certainly in the copying monk sense here discussed. even after the venetians sacked it, it still had shit.
asciilifeform: i thought constantinopol was 'all pasture inside' at that point..?
mircea_popescu: this is not happenstance. cairo fell in 1517 BECAUSE constantinople had fallen, and for no other reason.
mircea_popescu: this is not very clear. turks captured cairo because htey held constantinople.
asciilifeform: ( may have to change the constant in line 3 . )
asciilifeform: i was thinking constant 'e'
mircea_popescu: it's how i learned all the physics constants say, "fuck me if i have to check one more fucking time!"
mircea_popescu: hence the constant "you can either make it foolproof ; or else make it lordship only". which is how bots work etc.
asciilifeform: even the 'ffaishness' of ffa has certain natural limits. gcd, for instance, is not constanttimeable
mircea_popescu: "Pape-Dawson will continue to emphasize character and moral integrity; develop solutions in the best interest of the client and public; constantly re-evaluate and sharpen our engineering skills; provide an environment that encourages employee development and satisfaction; actively participate in professional, religious, and civic associations; nurture trusting relationships; and offer services only in our area of technical ca
asciilifeform: 'femaleworry' is idiotic because it's a decision algo that dun converge in constant time
sina: "today, until a constanttime solution is in place, gpg is the tool of choice for RSA encryption. any time you use it, you can't know whether you have completely compromised your private key. and we use it anyway."
sina: it's not an argument, only the next thought that pops into my head as a consequence of the discussion. all here seem on the same page re constanttime stuff, yet all here are using the tool in spite of that, so there must be some thought process which allows someone as reasonably paranoid as asciilifeform to do so, i.e. "I am not concerned with timing attacks of class X, Y, Z from adversary A, B,C when I
asciilifeform: the 1 constanttime implementation -- is mine
sina: my understandinf of your POV is that there is currently no adequate constanttime impl
mircea_popescu: sina you mean, is there a side channel for constant time ops ? or for rsa as commonly implemented atm ?
sina: asciilifeform: basically I am wondering about the "threat model" of constanttime sidechannel stuffs. for example, let's say I want to write you an email with RSA encrypted body, or receive same from you, is there really a sidechannel there? I guess I'm asking in terms of async vs sync encrypted comms
sina: asciilifeform: if you are about I have a question for the resident expert on constanttime stuff
mircea_popescu: see, cuz if they looked like "u of maryland goes on horseback", half the schmucks seated backwards or whatnot, then it'd make sense. but how did these people manage to acquire riding skills with the constant tapdistraction ?
mircea_popescu: correct play, too. he really has no interest in putting in the work to try and salvage the nonsense ; and the pantsuits will have a hell of a time arguing that "we put on the books laws that don't work because we expect they can be constantly patched as a matter of course -- and this is fine"
mircea_popescu: the sofas, to be clear, are teh young women and teh young men who aspire to them. the former will graze, and in between their legs which run perl sofas constantly grow to be burned.
a111: Logged on 2017-07-15 13:00 asciilifeform: btw if you're actually doing something that doesn't need constanttime, you can simply put the obvious check-for-zero in the karatsuba and get 2-9000x boost for mul.
asciilifeform: speaking of risc asm, asciilifeform found out that ppc has a nonconstanttime iron mul.
asciilifeform: mod6: other thing, since ffa is constant time, your N! is in O(N) (if mul were considered a constant op and brought outside of the brackets. which is is, 10! with 4096bit ffa, takes exactly C longer than 9! with 4096bit ffa. etc )
asciilifeform: mod6: notice, we could trivially trap on overflow, but that ain't constanttime!
asciilifeform: btw if you're actually doing something that doesn't need constanttime, you can simply put the obvious check-for-zero in the karatsuba and get 2-9000x boost for mul. ☟︎
phf: http://btcbase.org/log/2017-07-14#1683203 << glider specifically. you drop a glider from a balloon, you have known altitude, air foil and weight, you can figure out maximum distance, but that one's constantly changing, which you can track from rate of descent vs distance traveled. your drop point is also random because of the balloon drift, but it's somewhere around sites of interest ☝︎
phf: http://btcbase.org/log/2017-07-14#1683186 << traveling salesman has approximate solution strategies. besides in this case there's additional complexity of upper limit on travel distance, which is also constantly changing. so if your maximum distance is above shortest path, then you want tsp, but if it's below then you probably have to rely on nearest neighbor/nearest fragment heuristics anyway ☝︎
asciilifeform: ( how the constant here follows from the circuit -- is an exercise for the reader )
asciilifeform: i don't expect to see many reimplementations, sadly, however, because one of the items of said spec is 'the following ops are in constant spacetime...'
asciilifeform: constant-arity loops - equally fixed